- From: <Patrick.Stickler@nokia.com>
- Date: Wed, 15 Aug 2001 13:23:53 +0300
- To: sean@mysterylights.com, kevin@globalplatforms.com, phayes@ai.uwf.edu
- Cc: www-rdf-logic@w3.org, www-rdf-interest@w3.org
Since some of the key points of this issue seem to be getting obscured by the meat of the various threads covering this topic, and divergences from or other discussions related to this topic, I wanted to try to give a summary of those key points, with some limited comments, in the interest of maintaining clarity and focus in these discussions. -- Firstly... The QName to URI mapping issue is totally unrelated to all of the following issues (all of which have cropped up here or there in the recent discussions): * Name versus Location and whether 'URL' vs 'URN' should have any official meaning with regards to URI schemes. * The persistence of uniqueness or any other characteristics of a particular URI scheme used to represent the identity of RDF resources, which might motivate the selection of one URI scheme over another for use with RDF. * The pros and cons of anonymous nodes, RDF collections, and other graph related issues (except for when anonymous node-based representations are proposed as solutions to the QName to URI mapping problem). Though all of the above are interesting and important issues, they are not what is summarized here; and none of them IMO are critical to the success of the SW as I believe the issue detailed here is. -- A. QNames are neither URIs nor URI references: Even though QNames include a URI as a component, representing the namespace of the QName, the QName itself is not equivalent to a URI, nor is there any clear, explicit function for deriving a URI or URI ref from a QName defined by the XML Namespace spec. Any such QName to URI mapping function is outside the scope of the XML Namespace spec as it is presently written. -- B. The RDF QName to URI mapping function is broken and unreliable: The RDF spec and the XML Schema spec are the only places I am aware of where any such QName to URI mapping function is defined. The scope of the XML Schema function (which is ns:name -> ns#name) is limited solely to XML Schema instances and ID attribute values within those instances, and is not sufficiently broad to address all combinations of URI schemes and MIME content type fragment syntaxes. So it can be disregarded. The scope of the RDF function (which is ns:name -> nsname) is supposed to apply to all cases, for all URI schemes, yet unfortunately, because the partition between the namespace and name is lost, can produce collisions resulting in ambiguity (which is anathema to the SW). I.e. if 'ns1:' = "urn:x:abc" and 'ns2:' = "urn:x:abcd" then both 'ns1:defg' and 'ns2:efg' are mapped to the same URI "urn:x:abcdefg"! Yet these are clearly separate resources per their disjunct QName identities (the fact that the above example is contrived in no way lessens the seriousness of this problem) What is interesting is that, if XML Namespaces did not exist, then RDF would either have to: 1. Require that all property identities be defined with full, explicit URIs, just as it is necessary to do so with subject and object resource identity. (which presently cannot be done, given the limitations of the defined XML serialization model) or 2. Employ an element name to URI mapping construct similar to my proposed rdf:Map element. However, XML Namespaces came along at just the right (or wrong) time and so RDF was able to require that all property element names be QNames and could derive (in most cases) something that looks like a URI from direct concatenation of namespace + name. This has simply resulted in the whole QName to URI mapping problem being hidden from view -- so long as namespaces end in '#" or '/' and only concatenative syntax URI schemes are used; which has been the case since nearly everyone using RDF has simply been using HTTP URLs with HTML/XML fragment syntax. -- C. No QName to URI mapping function is workable for all SW contexts: If the entire scope of any arbitrary URI scheme being used for namespaces or for resource identity is taken into consideration, the RDF mapping function is clearly woefully inadequate. Nor can a single, reliable function be defined that will be compatible for any arbitrary (possibly yet undefined) URI scheme or MIME content type fragment syntax. Therefore, the QName to URI mapping must be defined for each QName irrespective of any URI scheme or any MIME content type fragment syntax. -- D. RDF must have an explicit QName to URI mapping construct: The fact that Namespaces exist actually does not change the above two choices that RDF must make (it has only postponed the realization that such a choice *has* to be made). RDF must either: 1. Sidestep the QName to URI mapping problem entirely by redefining the serialization model to require explicit URIs for property identity in serialized instances (bringing it closer in nature to e.g. BSWL or NTriples). or 2. Adopt an explicit QName to URI mapping construct to bridge the gap between Ontologies and resource identities within the knowledge base and serializations of those ontologies and resource identities. Since QNames are not going to go away (nor should they) and since also QNames are much easier for humans to work with than full URIs (I wish RDF would allow QNames also in attribute values for subject and object URIs as does XML Schema...), and since RDF is unlikely to change in a way that does not maintain backwards compatibility with current systems, the first option above is not feasible. Therefore, the second option is left. My proposal suggests one possible way to define such an explicit mapping construct, in a fully backwards compatible manner, with the added benefit of XML literal to RDF resource mapping as well as basic RDF literal data type validation. I'm sure there are other ways to achieve the same end, and I welcome discussion of any alternatives. The bottom line is that *some* such solution has be adopted, and soon. Cheers, Patrick -- Patrick Stickler Phone: +358 3 356 0209 Senior Research Scientist Mobile: +358 50 483 9453 Software Technology Laboratory Fax: +358 7180 35409 Nokia Research Center Video: +358 3 356 0209 / 4227 Visiokatu 1, 33720 Tampere, Finland Email: patrick.stickler@nokia.com
Received on Wednesday, 15 August 2001 06:24:08 UTC