Re: Generic processing of Fragment IDs in RFC 3023bis

On 9/20/2010 10:28 PM, Jonathan Rees wrote:
> I think it
> does, but why? Something about the RDF/XML DTD?

As best I can tell, yes that's the case.  If 
http://www.w3.org/XML/9710rdf-dtd/rdf.dtd is the normative DTD (something I 
haven't managed to prove), it seems to declare rdf:id to be of type ID, 
which as best I can tell makes it subject to references by XPointer id() 
functions and thus barenames.  Obviously, it would be helpful if someone 
with a more solid knowledge of the details could confirm this.

> So suppose we have
> <foaf:Person rdf:ID="B">... and that a generic XML processor treats
> rdf:ID like xml:id. 3023bis says that A#B would have to "designate"
> the foaf:Person *element*.  I don't think there is any normative
> RDF-related document that says A#B has to "designate" anything other
> than the element (say, a foaf:Person), and in fact I would be
> distressed if there were. But in practice some applications act as if
> A#B does "identify" (variously, "name", "denote", etc.) a foaf:Person
> (i.e. that it does *not* identify an XML element), and it would be
> natural to insist that "designate" and "identify" have to be coherent.

Not my area of expertise, but I'm fairly sure that this whole thing came up 
because one or more TAG members asserted that, per the media type 
registration for application/rdf+xml, 
http://example.org/myrdf.xml#somename did NOT identify an element, but 
rather a node in an RDF graph.

So, if all that's true, we have a situation where:

* Code written to normative specification 3023bis would conclude that the 
above URI reference resolved to an element (I.e. because the DTD says that 
rdf:id is of type ID, which implies that it identifies an element).

* Code written to normative reference [media type registration for 
application/rdf+xml would conclude that the same URI reference, applied to 
the same retrieved representation, resolved to a node in an RDF graph.

That seems broken, hence the concern.  What am I misundertanding?

Now, if it turns out that the DTD does not apply, there still seems 
something disturbing about the situation:  3023bis implies that the range 
of such URI references is elements;  rdf+xml implies that it's graph nodes. 
  Code written to the latter concludes that the URI above has a referent (a 
graph node), and code written to the former concludes that the reference 
doesn't resolve.  I suppose that's less clearly broken than having them 
successfully resolve differently, but it still doesn't feel great to me.

By the way, one of the things I've convinced myself in drafting this note 
is that, if a normative DTD for rdf+xml says that rdf:id is of type ID, 
it's probably lying; the attribute is not an identifier for the element. 
Right?

Noah

Received on Wednesday, 22 September 2010 01:29:48 UTC