- From: Frank Manola <fmanola@mitre.org>
- Date: Mon, 25 Nov 2002 21:37:35 -0500
- To: Shelley Powers <shelleyp@burningbird.net>
- CC: www-rdf-comments@w3.org
Shelley Powers wrote:
> <snip>
>
>>>I need some clarification about your clarification. I understand what
>>>you say about the mapping between the RDF/XML of the collection and the
>>>generated graph (there is one; it's described in the Syntax
>>>specification, but reading it isn't for the faint of heart), and I'm
>>>concocting some words to try to describe it. However, I'm not sure I
>>>understand what you mean by the "long form" of the Collection. It seems
>>>to me that the graph is the "long form" (that is, it shows the consed
>>>list, in all its "glory"), and there's a drawn graph in the Primer. Are
>>>you saying that a *triples* version of that graph would be clearer, and
>>>would help people more than the drawing (he asked in astonishment)? If
>>>so, do you mean in addition to or instead of the drawing?
>>>
>>>
>>You're talking about the productions. I wouldn't recommend that for the
>>Primer, or as you say, for the faint of heart or only for those intensely
>>interested.
>>
>>People will programmatically access RDF as triples.
>>
>
>>But the triples are simply another way of describing the graph or,
>>putting it another way, it's pretty straightforward to construct the
>>triples from the drawing if you want to, but I suspect simply slopping
>>all those triples down on paper isn't going to help very much, since
>>there are no visual cues provided in triples.
>>
>
> What I'm trying to say is that one criticism of the RDF/XML is that the RDF
> graph isn't clear from the RDF/XML. You show Collection and a listing of
> resources, but the graph shows a collection type, and each resource is
> connected to each other through a rdf:rest, and there's an implicit rdf:nil
> at the end of the list, and then each resource points to a value and then to
> a type and so on. That is what I meant be a disconnect between the graph and
> the RDF/XML.
>
We may be talking past each other to a certain extent. What the Primer
presents about collections is an RDF/XML example, together with the
corresponding graph (drawn as nodes and arcs). I agree that the
connection between the graph and the RDF/XML isn't all that
straightforward, although there is a mapping, which I tried to explain
in the snippet below (did that make the mapping any clearer?) Regarding
triples, the nodes-and-arcs diagrams and groups of triples are both
representations of the graph, and there's one triple per arc in the
drawn graph. This is why I said it would be pretty straightforward to
create the triples from the nodes-and-arcs diagram.
>
>>And there is no mapping
>>between the RDF/XML and the triples if I read the graph correctly.
>>
>>
> snip
>
>
>>Sure there is. The property element with the rdf:parseType="Collection"
>>attribute describes the property that points to the head of the list in
>>the graph. The resource descriptions nested in that property element
>>are members of the collection. For each one of those member resources,
>>there's a corresponding resource of type rdf:List generated, with
>>rdf:first and rdf:rest properties connecting it to the member and the
>>rest of the list respectively. To indicate the end of the list, you
>>make rdf:rest property value be rdf:nil. It may be that the use of
>>s:student nested elements in the RDF/XML is causing the confusion. I've
>>changed the RDF/XML to:
>>
>
> <snip>
>
> (same graph).
>
>
> That's a lot to add to the model for parseType=Collection", isn't it?
>
> Frank, I am trying to point out things in the documents that people who have
> not lived and breathed RDF are going to get confused about. And I'm pretty
> darn sure Collection is going to be one of them.
I understand, and appreciate that. The problems I'm facing here are
limited time (there's other stuff that needs work too), and the Primer
having to serve multiple roles at the same time (there's a concern that
the longer the Primer gets, the fewer people will want to plow through
it). I hear about this a lot!
One of the particular problems with collections is that they are
intended to provide "data structure" support for closed groups, i.e.,
where you are saying "these members are all there are" (something you
can't do with containers), and they are really in there because OWL
needs them (rdf:Collection was originally daml:Collection). So the
RDF/XML is simple (it looks a lot like the way you would describe a kind
of Bag), but the graph it generates is complex (it's a list, because you
can't, in another RDF graph somewhere else, add additional members to
the list structure and still preserve the list structure). The problem
is that RDF doesn't itself provide the constraint that you need to
really guarantee that the group is closed, because someone somewhere
else could describe a completely separate list (in the example, a
separate list of students). That is, each list would be closed, due to
the data structure, but the group of students would not be. What you
need is a way of saying that there is only one s:students property with
courses/6.001 as the subject. OWL provides such a constraint, and they
are really the main users. What I probably need to do is say something
like this in the Primer; do you think that would help or make things worse?
>
>
>>I think it would help if you displayed the N-Tripes for the graph in
>>addition to the graph. I think you also need to walk through each aspect
>>
> of
>
>>the graph and explain what it means, and if there is an alternate syntax
>>
> for
>
>>same (as there is with rdf:Bag).
>>
>
>>I think this would be devoting more space to Collections than they're
>>probably worth. I'll see. But you can certainly construct your own
>>list structures using your own vocabulary if you want to (e.g., two-way
>>lists).
>>
>
> Again, trying to help point out areas that will generate confusion, and
> concern.
I know.
>
>
>>Also -- "Up to applications to interpret it". That's enough to ensure I
>>
> will
>
>>never use Collections in my vocabularies. What a nightmare. This is the
>>
> same
>
>>as relying on user agent's interpretation of <P> in the original HTML.
>>
>
>>This is no different than it being up to applications to interpret
>>rdf:Bag and rdf:_1 though (and I know there's been a separate thread on
>>this aspect of containers and reification, so we'll take it as read).
>>
>
> There is, and my attitude about all three now is that there is going to be
> confusion and incompatibility about all three, then all three shouldn't be
> used (as others have pointed out). And I'll write accordingly.
I understand. But part of this problem about the lack of semantics
associated with containers and reification has always existed, it just
wasn't always clear. That is, it wasn't clear how much of the intended
meaning of, say, an Alt could actually be controlled by RDF, and how
much had to be based on application writers doing appropriate things.
RDF never, for example, specified an API that defined operations on
containers, or had a way of controlling whether an application really
used the first member of an Alt as the default value. So this time
around we're trying to be very clear about what things RDF by itself
guarantees, and what things are not going to be interoperable unless
everyone understands and implements the intended structure and behavior
the same way. Of course, you can get quite a lot done with these kinds
of general understandings, and I expect people are successfully using
containers and reification based on them. It's just that we're trying
to make a distinction between what RDF itself can realistically
guarantee, and additional characteristics of these constructs that have
to rely on people to "do the right thing".
>
>>Also, you introduced the term 'consed-pair' in the document to reflect
>>Collections. This does need definition, it's not used anywhere else in any
>>of the documents.
>>
>>
>
>>What I said was that the RDF graph structure shown for collections was
>>known as a "consed-pair" construction. That's kind of a definition ("a
>>consed-pair construction is one of these thingies") right? I think what
>>you mean is I should explain why it's *called* a "consed-pair"
>>construction, but rather than waste the space on that, I'll take the
>>term out.
>>
>
>
> Frank, does consed-pair add to the meaning of the Collection? If so, then
> define it and say why you're using it for Collection. Don't necessarily drop
> it. Are you getting charged for the square inch that the primer takes?
It adds to the meaning for those who understand what a consed-pair is.
But explaining what it is for those who don't understand already would
be a diversion, I think. What I meant was, if it's going to create
confusion, it would be better to take the term out, and directly explain
what's going on more fully instead.
And since you ask, I sort of *am* being charged for the square inch the
Primer takes. I get beat over the head each time a new version of the
Primer comes out because it's long. And it's long because the
explanations get more thorough, and more stuff has to be explained (even
when I take other stuff out). What this really needs is a book; why
else are you writing one? :-)
>
> Look as I said earlier, I'm just trying to show you where you all are going
> to have problems with the "mess of humans" that don't think RDF but will be
> trying to use RDF/XML in the future.
>
I understand that you are, and in most cases I agree that we're going to
have problems in those places (and in other places too). But we don't
have an arbitrary amount of time to wrap this up.
--Frank
--
Frank Manola The MITRE Corporation
202 Burlington Road, MS A345 Bedford, MA 01730-1420
mailto:fmanola@mitre.org voice: 781-271-8147 FAX: 781-271-875
Received on Monday, 25 November 2002 21:20:31 UTC