W3C home > Mailing lists > Public > www-rdf-interest@w3.org > February 2001

Re: What are allowable property URIs?

From: Gabe Beged-Dov <begeddov@jfinity.com>
Date: Wed, 14 Feb 2001 19:40:15 -0800
Message-ID: <3A8B4F9F.B3BE50AF@jfinity.com>
To: Graham Klyne <GK@ninebynine.org>
CC: Aaron Swartz <aswartz@swartzfam.com>, Dan Brickley <danbri@w3.org>, www-rdf-interest@w3.org
Graham Klyne wrote:

<snip />

> 
> Not every URI can be used as an RDF property identifier in the RDF
> syntax.  e.g. http://acme.com/property/

I was thinking about this in the context of round-tripping arbitrary
URI for properties (and maybe rdf:type for pretty printing). This gets
back to my point that there are two types of round-trips. The first
starts from the syntax thru the abstract model and the second starts
with the abstract model and goes through the syntax. 

You are pushing on the model->syntax->model round trip with this
question. So here is an approach. Lets focus on your example for
simplicity. This is a case of a singleton property URI as opposed to a
property that is specified via a URIref. A singleton property can be
an arbitrary URI that shouldn't need to have any constraints on its
trailing characters (not that there is such a constraint on the
fragment id either but that's a separate issue). 

As far as I can tell, there isn't an operational need for a qname to
have a non-empty local-part. There is a semantic need if there will be
more than one qname with the same URI-part but that isn't relavent for
a singleton property URI. In that case, you can use a degenerate qname
like in the example below. I've tried it in several RDF parsers and it
seems to work fine.

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:uniprop="http://foobar.com/unipropURI/">
  <rdf:Description rdf:about="subj">
    <uniprop:>unipropvalue</uniprop:>
  </rdf:Description>
</rdf:RDF>

resulting triple:

{ subj, http://foobar/com/unipropURI/, "unipropvalue" }

Given this ability to use degenerate qnames you have a straightforward
mapping from an abstract model to the syntax where each unique
propertyURI is mapped to a unique namespace prefix. The qname for the
property is made up of the namespaceprefix with a ":" appended to it. 

It would obviously be preferable to have access to metadata that is
necessary for doing the syntax->model->syntax round-tripping, but
that's a separate issue.

Gabe
Received on Wednesday, 14 February 2001 21:41:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:48 GMT