RE: Last call on XLink -> RDF mapping

Hi Jonathan,

Thanks for checking out the document.  Some replies to your questions:

> 1) Where the heck did the RDF 'convention' of creating URIs via (the XSLT)
> concat(namespace-uri(.),local-name(.)) arise? It really really ought be:
> concat(namespace-uri(.),'#',local-name(.)) unless the namespace-uri ends
> in
> a non-NameChar (e.g. '#','/'.'\') but even then we do really really need a
> URI generation mechanism that can be deconstructed into a namespace and
> local-name.
	[Ron Daniel]  The simple concatenation convention came
	about because the '#' character is not appropriate in all
	cases, so it could not be required. Also, at the time the
	RDF group was working, there was some discussion of adding
	a new character, '|', in addition to the #, /, and ?
	characters. So the RDF group ended up saying that the
	namespace URI needed to end in one of those characters and
	simple concatenation should be used.

	For the purposes of turning XML documents containing XLinks
	into RDF, we can't rely on that rule being followed. Therefore,
	you are correct that the right rule should be to add a character
	such as # or / or ? if the namespace URI does not already end
	in one. I'll make that change.

	As for your last point - about needing a URI mechanism so we
	can deconstruct a URI into its namespace URI and local part -
	well, yes. That is very important when it comes time to
	serialize an RDF model. But it is beyond the scope of this
	document. It really needs to be taken up in an errata to the
	RDF spec.
> 2) From the paper:
> "If an xlink:role attribute is specified on the simple link, it shall
> result
> in an additional statement being added to the model. The object of the
> statement is the ending resource of the simple link, its predicate is
> "rdf:type", and its subject is the resource identified by the role
> attribute.
> If an implementation wishes to use facilities defined in the RDF Schema
> specification [RDFSchema], it may add a second statement to the RDF model
> when an xlink:role attribute is specified. The object of the second
> statement is the resource identified by the role attribute, its predicate
> is
> "rdf:type", and its subject is the resource "rdfs:Class".
> "
> Do you really mean (p,s,o) =>
> (rdf:type,xlink:role,xlink:href)
> (rdf:type,rdfs:Class,xlink:role)
> or ought it be:
> (rdf:type, xlink:href, xlink:role)
> (rdf:type, xlink:role, rdfs:Class)
	[Ron Daniel]  Whoops. Good catch. I'll reverse those.

	Thanks also for your earlier comments. I did not see
	any of them asking for changes in the document, is that
	correct? (FYI, on ChildSeq for the synthesized XPointer...
	ChildSeq can start with a NAME, which is to be the value
	of an attribute of type ID. That is probably the best
	way to identify elements if possible.)


Received on Thursday, 14 September 2000 11:47:11 UTC