(Removed from public-html to avoid distracting the thread)

Jonas Sicking wrote:
One of the problems with namespacing a'la XML Namespaces is that an
objects identifing name isn't a single string, it's a tuple. Everyone
has to lug around two separate values, localName and namespaceURI.
(Many times implementations have to lug around three values,
localName, namespaceURI, and prefix).

RDF has not chosen to use this. Instead it concatenates the expanded
prefix together with the localName-esq value in order to form a single
string. Each part of an RDF triplet, subject, predicate and object, is
identified by a single string (though in the case of object there's
additionally a datatype). The triplet does not consist of 3 string
tuples.

So while RDFa keeps one (what I perceive) complexity of XML
Namespaces, the use of prefixes, it has done away with another
complexity, namely the use of string tuples as identifiers.

This seems to be mixing RDF and its serialisations a little.

To be slightly more precise: RDF (as in http://www.w3.org/TR/rdf-concepts/) does not have any concept of prefixes or localNames or namespaces at all, it just has single strings. It does not do any concatenation.

Many *serialisations* of RDF, like RDF/XML and RDFa and Turtle, do have the concept of prefixes and localNames and namespaces, and they get mapped onto the RDF data model (usually with concatenation), at which point they're necessarily just strings. Some other serialisations of RDF, like NTriples and HTML5 microdata, don't have the namespace concept.

So it's RDF (not RDFa) that has done away with string tuples as identifiers, and RDFa CURIEs (not RDF) that provide a mapping from namespaceURI/localName tuples to RDF's strings.

Anyway, I don't think this matters much to the general point, that (given xmlns:foo=foo and xmlns:foob=foob) the identifiers written as "foo:bar" and "foob:ar" are distinct in XML Namespaces but equivalent in RDFa.

--
Philip Taylor
pj...@cam.ac.uk

Reply via email to