[Bug 12535] [DM] Definition of 'tree' missing and apparently non-standard

http://www.w3.org/Bugs/Public/show_bug.cgi?id=12535

--- Comment #2 from C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com> 2011-05-31 19:55:19 UTC ---
Several of the changes suggested in comment 1 seem helpful, but on the
whole I don't think the reformulation renders the text satisfactory.
Sorry.

Norm writes: 

    I think it's very likely that you understand precisely what the
    Data Model is trying to describe.

I am much less certain than Norm seems to be that I already know what
the text is trying to tell me here.  In particular, it's not obvious
to me how much of the current text of this paragraph (or indeed some
other parts of 2.1) is intended as the normative statement of a
particular property, how much is mentioning facts normatively
established elsewhere, and how much is intended just to lay out some
of the logical consequences of the normative statements, for clarity.

But I can't suggest constructive improvements for that situation until
I understand the spec better.

Michael Kay's response in comment 2 of bug 12534 suggests that he
believes the point of this passage is (rephrasing slightly) that for
any set of XDM nodes, there is a unique set of trees defined
implicitly by the dm:parent relation and that each XDM node belongs to
exactly one tree in that set.  As formulated, I think this is still a
little loose, and I don't think we should follow MK's suggestion that
'tree' is or should be taken to denote a non-recursive data structure.

But if MK has correctly identified the gist of the paragraph, then for
the moment I'd suggest something like:

(VERSION A)

    Every node is one of the seven kinds of nodes defined in 6 Nodes.

    The dm:children, dm:attributes, and dm:namespace-nodes properties
    of nodes organize them naturally into trees (rooted, directed,
    connected, acyclic graphs), each of which contains all the nodes
    reachable directly or indirectly from the root node via the
    dm:children, dm:attributes, and dm:namespace-nodes accessors.
    Most references to 'trees' in this specification refer to such
    'natural' trees.

    NOTE: Each node belongs to a set of one or more such 'natural'
    trees, exactly one of which tree has a root node with no dm:parent
    and contains all the others.

or possibly 

(VERSION B)

    Every node is one of the seven kinds of nodes defined in 6 Nodes.

    The dm:children, dm:attributes, and dm:namespace-nodes properties
    of nodes organize them naturally into trees (rooted, directed,
    connected, acyclic graphs), each of which contains a root node
    with no dm:parent and also all the nodes reachable directly or
    indirectly from the root node via the dm:children, dm:attributes,
    and dm:namespace-nodes accessors.  Most references to 'trees' in
    this specification refer to such 'natural' trees.

    NOTE: Each node belongs to exactly one such 'natural' tree.

Version A assumes that the children of a document node are fragments;
version B assumes that the children of a document node are not
fragments.  I do not know which is intended; nothing in the XDM spec
depends on the difference.

Some differences between the proposals above and the current text (and
Norm's suggested rewording) may as well be noted explicitly here, in
case it saves time.

  - (deletion of 'a')

    Nodes are organized into trees, not into "a" tree.

  - (explicit specification in version B that root nodes have no
    dm:parent)

    We need to specify that the root has no dm:parent, or the
    uniqueness claim is false.

  - Optionally, we could follow the current text more closely by
    adding at the end "and each such tree has exactly one root node".
    It's a true statement.  

    I think it's better left unsaid, however: the fact that each
    non-empty tree has exactly one root node is a consequence of the
    definition of tree.  We don't need to make a normative statement
    of it, and if we do, some readers will wonder whether we are
    clueless, occupying some alternative universe, or (this is where
    we came in) using some alternative definition of 'tree'.

  - (didn't add Norm's remark about nodes having at most one parent) 

    That a node has at most one dm:parent is already stated
    normatively elsewhere (5.11); that a node has at most one parent
    in a tree is a fact about trees.

  - (didn't add Norm's remark about nodes having identity)

    That a node has identity tells us pretty much nothing except
    perhaps to signal that XDM expects the reader to be using
    Aristotelian and not fuzzy logic.  Every thing we take seriously
    as a thing has identity (No entity without identity, as the slogan
    says) with the possible exception of some objects in quantum
    theory.  I think what is meant is that they have a form of object
    identity or referential opacity.  (This is also a problem with
    section 2.3, which I expect to raise in due course.)

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Tuesday, 31 May 2011 19:55:21 UTC