Musing on URI references vs. URI-s as string

Dear all,

this is just wondering about an idea...

One of the frequent issues that the non-RDF developers' community has with RDF in general and RDFa in particular is the fact that RDF makes a sharp difference between a URI as a string and a URI as a unique ID in RDF. Many time they do not understand it or, if they do, their claim is that the lambda Web designer would not understand it. Witness the format chosen by Facebook for their vocabulary; I have also received a set of comments from Kavi Goel, from Google, who had a similar issue with RDFa (in his formulation it is the differentiation between @rel and @property). (I have not yet received an authorization of Kavi to forward his comments on the public mailing list, unfortunately, but that is the issue that stuck to me.)

While I do believe this distinction is important on the RDF level, I wonder whether we can do something about it on the serialization level. A very simple approach would be the following additional rule:

[[[
if the value of a literal for a @property (either as retrieved from @content or the real text) is a valid absolute URI, and there is no @datatype present, then the value should be considered as a URI reference (in RDF terms) rather than a literal. (A variation of this is that the literal is an absolute URI or a valid CURIE.)
]]]

Ie, something like

<span property="foaf:homepage">http://www.w3.org<span>

would generate

<> foaf:homepage <http://www.w3.org> .

instead of

<> foaf:homepage "http://www.w3.org" .

If the user wants to have a literal, then he/she should use

<span property="foaf:homepage" datatype="">http://www.w3.org</span>

which is of course a bit more convoluted, but that is for expert users anyway, who _know_ about subtleties like URI strings vs. URI as identifiers.

Of course, what this means is that:

- there is a backward incompatibilities with previous versions of RDFa. I wonder whether this is a danger we would have to accept (but that is something we have to ask around)
- in practice I think people will use @property almost everywhere instead of @rel, which will mean some sort of an educational challenge: why would people use

<... rel="a:b" resource="http://..." />

instead of

<... property="a:b" content="http://..." />

when the two are identical in effect! Why wouldn't people use

<... rel="a:b" content="http://..." />

or

<... property="a:b" resource="http://..."/>

A way of reducing that confusion is to modify the rule insofar as the the value of @content of the consideration above...

Thoughts?

Ivan

----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
PGP Key: http://www.ivan-herman.net/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Tuesday, 21 September 2010 17:09:52 UTC