Re: What are allowable property URIs?

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 UTC