- From: Noah Mendelsohn <nrm@arcanedomain.com>
- Date: Tue, 21 Sep 2010 21:29:16 -0400
- To: Jonathan Rees <jar@creativecommons.org>
- CC: "Martin J. Dürst" <duerst@it.aoyama.ac.jp>, "Roy T. Fielding" <fielding@gbiv.com>, Norman Walsh <ndw@nwalsh.com>, www-tag@w3.org, MURATA Makoto <eb2m-mrt@asahi-net.or.jp>, Chris Lilley <chris@w3.org>
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