W3C home > Mailing lists > Public > public-rdf-in-xhtml-tf@w3.org > October 2004

RE: comments on nodeID in RDF/A

From: Mark Birbeck <mark.birbeck@x-port.net>
Date: Mon, 25 Oct 2004 18:04:29 +0100
To: "'Jeremy Carroll'" <jjc@hplb.hpl.hp.com>
Cc: "'public-rdf-in-xhtml task force''" <public-rdf-in-xhtml-tf@w3.org>
Message-ID: <009f01c4bab4$b43183c0$6701a8c0@W100>

Hi Jeremy,

Thanks for your continued comments.

> Friday I took an action to review RDF/A 
> http://www.formsplayer.com/notes/rdf-a.html
> 11 October 2004
> to see whether it addresses the nodeID issue.
> It seems to, but I felt there were still a few rough edges.
> Two were:
> 1)
> from section 5.2 the example
> [[
> <link nodeID="a" rel="foaf:mbox" 
> href="mailto:daniel.brickley@bristol.ac.uk" />
> <link nodeID="b" rel="foaf:mbox" 
> href="mailto:libby.miller@bristol.ac.uk" /> <link 
> about="#bnode(a)" rel="foaf:knows" href="#bnode(b)" /> ]]
> the x-ppinter like notation #bnode(a) seems to confuse blank 
> nodes and 
> URIref nodes. 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.

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.

So, the alternatives that came to mind were:

 * have a different attribute for the object if the target is a bnode,

     <link nodeID="a" rel="foaf:knows" foo="b" />
     <link nodeID="b" rel="foaf:knows" foo="a" />

 * modify the @href in some way to indicate that it is
   actually a bnode that is being referred to.

I thought we had enough attributes already (!) so opted for the latter, and
although there seemed to be a couple of ways that this could be done, the
most likely to be accepted seemed to be to create an XPointer.

I of course agree with you that we have actually created a URIref, but I
looked at this for quite a while and concluded that the definition of blank
node identifiers in RDF-CONCEPTS allowed the graph representation syntax
some leeway to decide what exactly a blank node identifier was. As far as I
could see, as long as the processor (or GRDDLiser) knew to map these to
something else, all would be well.

However, looking at it again I can see that there is no way with this
approach to prevent the following (i.e., someone making statements about
your blank nodes):

  <link about="http://example.com/your-doc#bnode(b)" ... />

so it would seem the XPointer approach is flawed in that it breaks a
fundamental aspect of blank nodes.

Thanks again for the extremely useful input and for spotting this; it would
seem we need another attribute then (although I'm all out of attribute names
at the moment). 



Mark Birbeck
x-port.net Ltd.

e: Mark.Birbeck@x-port.net
t: +44 (0) 20 7689 9232
w: http://www.formsPlayer.com/

Download our XForms processor from
Received on Monday, 25 October 2004 17:21:28 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:50:18 UTC