- From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
- Date: Tue, 26 Oct 2004 15:28:27 +0100
- To: Mark Birbeck <mark.birbeck@x-port.net>
- CC: "'public-rdf-in-xhtml task force''" <public-rdf-in-xhtml-tf@w3.org>
Jeremy: >> I think it is significantly cleaner not to provide such >>syntax, but require, say: >> >> >><link nodeID="a" rel="foaf:knows"> >> <link nodeID="b"/> >></link> >> >>which cannot be read as introducing URIref nodes. > Mark Birbeck wrote: > > I looked first at doing what you describe, since that's effectively what > RDF/XML does -- allow @nodeID in the position of either subject or object. > However, your example won't work, because in the second line we cannot tell > whether we have a subject or an object. You can get away with this in > RDF/XML since there cannot be such a confusion, but in RDF/A we need to > distinguish between them. > I was going from: 4.4.3 http://www.formsplayer.com/notes/rdf-a.html#div392784408 Point [[ 2. The second line does not contain a predicate or an object, so nothing is generated. However, the [context statement] has no object so a [triple] is generated with the subject and object provided by the [context statement], and the object provided by the subject in the statement being evaluated. The [triple] generated would be: _:a foaf:depiction <http://www.ilrt.bristol.ac.uk/people/cmdjb/events/dc7/orig/eric.png> . ]] I think "with the subject and object provided by the [context statement]" is a typo for "with the subject and predicate provided by the [context statement]" and we see that while the about attribute introduces a subject, it is used as the object of a context statement containing a rel and a subject but no object (and presumably as the subject of a context statement containing a rev and a subject). So I think my proposed solution will in fact work, and is already implicit in RDF/A point 2 section 4.4.3 I take it that point 2 section 4.4.3 will apply to multiple statements so that <link nodeID="a" rel="foaf:description"> <link about="http://www.ex.org/a"/> <link about="http://www.ex.org/b"/> </link> generates _:a foaf:description <http://www.ex.org/a> . _:a foaf:description <http://www.ex.org/b> . The initial para of 4.4.3 seems clear enough on this one: [[ During the processing of each statement, a check is made on the [context statement] to see if it has a predicate but no object. If it does, then a triple is generated which has the subject and predicate provided by the [context statement], but with the object set to the subject of the statement being evaluated. ]] and also makes my earlier example legal. Hence, I suggest simply deleting the #node(a) stuff and making the quoted para do all the work for the complex bnode cases. One somewhat confusing thing is that even if there is no attributes at all on the element being evaluated it still has a subject, the gensym-ed bnode, so that <link nodeID="a" rel="foaf:description"> <link about="http://www.ex.org/a"/> <b>Hello World</b> </link> would generate _:a foaf:description <http://www.ex.org/a> . _:a foaf:description _:b . with _:b being the gensym for the <b> element. Jeremy
Received on Tuesday, 26 October 2004 14:30:21 UTC