This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 3230 - Atomic = not decomposable?
Summary: Atomic = not decomposable?
Status: CLOSED FIXED
Alias: None
Product: XML Schema
Classification: Unclassified
Component: Datatypes: XSD Part 2 (show other bugs)
Version: 1.1 only
Hardware: PC Windows XP
: P2 normal
Target Milestone: ---
Assignee: C. M. Sperberg-McQueen
QA Contact: XML Schema comments list
URL:
Whiteboard: thimble, work (or maybe easy)
Keywords: resolved
Depends on:
Blocks:
 
Reported: 2006-05-09 10:02 UTC by Michael Kay
Modified: 2008-01-30 15:24 UTC (History)
0 users

See Also:


Attachments

Description Michael Kay 2006-05-09 10:02:44 UTC
QT approved comment:

In 2.6.1.1, it's wishful thinking to say that atomic values are "not
decomposable". The ordering relation for a dateTime or duration, for
example, relies on decomposing the value.
Comment 1 C. M. Sperberg-McQueen 2006-09-20 00:26:49 UTC
You are of course correct.  A good principled definition of atomicity
seems elusive, so fixing this appears to require non-trivial editorial
ingenuity.  Reviewing some literature on the relational model, I 
wonder whether it would be better not to say that the values are
atomic, or not decomposable, but only that they are treated as such
in the framework of schema-validity assessment.  (It would be too much
to say "treated as atomic by this specification", because of course
the seven-property model of dates and times explicitly treats the
values of numerous types as tuples.)

A more formal response on behalf of the working group will follow, when
we have approved a wording change, or when the editors have torn all
their hair out and given up.
Comment 2 C. M. Sperberg-McQueen 2007-09-21 03:11:01 UTC
Coming back to this issue, I wonder if matters would be improved if we
(a) changed the phrase "for purposes of this specification" in the
first sentence of section 2.4.1.1, Atomic Datatypes, to speak instead
of determining type validity, and (b) added a Note.

The first sentence now reads:

    An ·atomic· datatype has a ·value space· consisting of a set of
    "atomic" values which for purposes of this specification are not
    further decomposable.

With the changes, the section as a whole would read:

    2.4.1.1 Atomic Datatypes

    An ·atomic· datatype has a ·value space· consisting of a set of
    "atomic" or elementary values.

      Note: Atomic values are sometimes regarded, and described, as
      "not decomposable", but in fact the values in several datatypes
      defined here do have internal structure.  Except insofar as that
      internal structure is appealed to in checking whether particular
      values satisfy various constraints (e.g. upper and lower bounds
      on a datatype), however, that internal structure is not
      systematically exposed by this specification.  Other
      specifications which use the datatypes defined here may define
      operations which attribute internal structure to values and
      expose or act upon that structure.

    The ·lexical space· of an ·atomic· datatype is a set of ·literals·
    whose internal structure is specific to the datatype in question.
    There is one ·special· ·atomic· datatype (anyAtomicType), and a
    number of ·primitive· ·atomic· datatypes which have anyAtomicType
    as their ·base type·.  All other ·atomic· datatypes are derived
    either from one of the ·primitive· ·atomic· datatypes or from
    another ·ordinary· ·atomic· datatype.  No ·user-defined· datatype
    may have anyAtomicType as its ·base type·.

The prose from "The lexical space ..." through to the end is
unchanged.
Comment 3 Dave Peterson 2007-09-21 03:30:56 UTC
(In reply to comment #2)
> Coming back to this issue, I wonder if matters would be improved if we
> (a) changed the phrase "for purposes of this specification" in the
> first sentence of section 2.4.1.1, Atomic Datatypes, to speak instead
> of determining type validity, and (b) added a Note.

I think the atomicity of the primitive datatype values lies in the fact that they are not constructable by any means we provide from simpler datatypes' values (in the sense that lists and unions are so constructable).  Though in that respect it seems odd that a union of atomic datatypes is not atomic.

> With the changes, the section as a whole would read:
> 
>     2.4.1.1 Atomic Datatypes
> 
>     An ·atomic· datatype has a ·value space· consisting of a set of
>     "atomic" or elementary values.
> 
>       Note: Atomic values are sometimes regarded, and described, as
>       "not decomposable", but in fact the values in several datatypes
>       defined here do have internal structure.  Except insofar as that
>       internal structure is appealed to in checking whether particular
>       values satisfy various constraints (e.g. upper and lower bounds
>       on a datatype), however, that internal structure is not
>       systematically exposed by this specification.

We maintain that equality and order are defined for datatypes for the convenience of other users as well as Schema; we define equality and order for those structured values in terms of the internal structure.  Therefore it seems inappropriate to assert that the structure is only relevant to checking various Schema constraints.

>                                                      Other
>       specifications which use the datatypes defined here may define
>       operations which attribute internal structure to values and
>       expose or act upon that structure.
> 
>     The ·lexical space· of an ·atomic· datatype is a set of ·literals·
>     whose internal structure is specific to the datatype in question.

If we break off the first sentence by inserting the note, I think we should break the remaining paragraph here.

>     There is one ·special· ·atomic· datatype (anyAtomicType), and a
>     number of ·primitive· ·atomic· datatypes which have anyAtomicType
>     as their ·base type·.  All other ·atomic· datatypes are derived
>     either from one of the ·primitive· ·atomic· datatypes or from
>     another ·ordinary· ·atomic· datatype.  No ·user-defined· datatype
>     may have anyAtomicType as its ·base type·.
> 
> The prose from "The lexical space ..." through to the end is
> unchanged.
> 

Comment 4 David Ezell 2007-09-24 16:59:19 UTC
From the telcon on 2007-09-24 (Editors' call)


<MSM> on 3230, delete sentence "Except ... specification" and insert "       , which is appealed to in checking whether particular values
<MSM>        satisfy various constraints (e.g. upper and lower bounds on a
<MSM>        datatype).
<MSM> "
Comment 5 David Ezell 2007-09-24 17:01:07 UTC
From the Editor's call 2007-09-24:
<MSM> MSM converges on:
<MSM>     2.4.1.1 Atomic Datatypes
<MSM>     An ·atomic· datatype has a ·value space· consisting of a set of
<MSM>     "atomic" or elementary values.
<MSM>       Note: Atomic values are sometimes regarded, and described, as
<MSM>       "not decomposable", but in fact the values in several datatypes
<MSM>       defined here do have internal structure, which is appealed to in
<MSM>       checking whether particular values satisfy various constraints
<MSM>       (e.g. upper and lower bounds on a datatype).  Other
<MSM>       specifications which use the datatypes defined here may define
<MSM>       operations which attribute internal structure to values and
<MSM>       expose or act upon that structure.
<MSM>     The ·lexical space· of an ·atomic· datatype is a set of ·literals·
<MSM>     whose internal structure is specific to the datatype in question.
<MSM>     There is one ·special· ·atomic· datatype (anyAtomicType), and a
<MSM>     number of ·primitive· ·atomic· datatypes which have anyAtomicType
Comment 6 C. M. Sperberg-McQueen 2007-09-25 01:03:38 UTC
The editors have converged on text slightly different from the wording
given in comment #5, namely:

    2.4.1.1 Atomic Datatypes

    An ·atomic· datatype has a ·value space· consisting of a set of
    "atomic" or elementary values.

        Note: Atomic values are sometimes regarded, and described, as
        "not decomposable", but in fact the values in several
        datatypes defined here are described with internal structure,
        which is appealed to in checking whether particular values
        satisfy various constraints (e.g. upper and lower bounds on a
        datatype).  Other specifications which use the datatypes
        defined here may define operations which attribute internal
        structure to values and expose or act upon that structure.

    The ·lexical space· of an ·atomic· datatype is a set of ·literals·
    whose internal structure is specific to the datatype in question.

    There is one ·special· ·atomic· datatype (anyAtomicType), and a
    number of ·primitive· ·atomic· datatypes which have anyAtomicType
    as their ·base type·.  All other ·atomic· datatypes are derived
    either from one of the ·primitive· ·atomic· datatypes or from
    another ·ordinary· ·atomic· datatype.  No ·user-defined· datatype
    may have anyAtomicType as its ·base type·.

This wording is now ready for review by the Working Group.
Comment 7 Dave Peterson 2007-09-28 15:39:48 UTC
decided by wg this date
Comment 8 Dave Peterson 2007-09-28 15:41:26 UTC
decided by wg this date; as shown in previous comment
Comment 9 C. M. Sperberg-McQueen 2008-01-30 15:16:23 UTC
The change outlined in comment #6 and approved in September 2007 was
integrated into the status-quo document in October 2007.  (That fact should
have been noted here earlier, but there were distractions.)

Michael, as the individual who entered the issue on behalf of QT, 
could you at some convenient point report the WG's disposition of the 
issue back to QT and let us know in the usual way whether QT is content
with that disposition or not, by changing the status either to CLOSED
or to REOPENED?  Thank you.  
Comment 10 Michael Kay 2008-01-30 15:24:39 UTC
I think this is as good as we're going to get, so I'm closing it. Thanks.