- From: Dan Connolly <connolly@w3.org>
- Date: Thu, 16 Aug 2001 16:41:01 -0500
- To: Patrick.Stickler@nokia.com
- CC: drew.mcdermott@yale.edu, www-rdf-logic@w3.org, www-rdf-interest@w3.org
Patrick.Stickler@nokia.com wrote:
>
> > -----Original Message-----
> > From: ext Dan Connolly [mailto:connolly@w3.org]
> > Sent: 16 August, 2001 16:43
> > To: Stickler Patrick (NRC/Tampere)
> > Cc: drew.mcdermott@yale.edu; www-rdf-logic@w3.org;
> > www-rdf-interest@w3.org
> > Subject: Re: Summary of the QName to URI Mapping Problem
> >
> >
> > [This will be my last message in this thread unless/until
> > I see some new information. We're convering well-trodden
> > ground here. cf
> > http://www.w3.org/2000/03/rdf-tracking/#rdfms-uri-substructure ]
>
> Well trodden but hidden ground? Sorry, I don't see how your reference
> does anything but reiterate that there is an issue here.
That's all the pointer was meant to do.
But I did get some new information out of your most recent
message: you're trying to match qnames in RDF without
expanding them to URIs; for example, using XSLT.
I have to admit I do that myself from time to time...
[...]
> > Subject to the limitation that some URIs aren't usable as
> > RDF 1.0 property names, there are simple, generic approaches.
> > The simplest one I can think of is:
> >
> > 1. scanning from the end
> > if you find an XML name start character, go to step 2
> > if you find something that's not an XML name character,
> > stop and throw an exception (you've run
> > into a limitation in RDF 1.0 syntax).
> > keep scanning
> > 2. split the string into a namespace name and a localname.
> >
> > So
> > mid:xyz@fooble
> > becomes
> > <e xmlns="mid:xyz@foobl">...</e>
> >
> > and
> > mid:xyz@fooble1
> > becomes
> > <e1 xmlns="mid:xyz@foobl">...</e1>
>
> Uhhh, but if the actual QNames needed, according to the actual
> ontology are (mid:xyz@foo)(ble) and (mid:xyz@foo)(ble1) and
> you have applications, style sheets, etc. etc. looking for the
> real QNames, just what do you expect them to do with the above
> guesses.
I don't expect "real ontologies" to deal with Qnames... just URIs.
But XSLT is kinda handy... the actual mapping convention I tend
to use in practice is:
I. If you're designing and RDF vocabulary and you
want to make it easy to use XSLT with it,
choose a namespace name that ends in a non-XML-name character
(e.g. # or / or ?)
II. to split a URI into a namespace-name/local-name pair,
use the last non-xml-name character as the split point.
So
mid:xyz@fooble
becomes
<fooble xmlns="mid:xyz@">...</fooble>
and
mid:xyz@fooble1
becomesow
<fooble1 xmlns="mid:xyz@">...</fooble>
In fact... this is what TimBL implemented in the semantic web toolkit
we're hacking on:
def figurePrefix(self, uriref, rawAttrs, prefixes):
i = len(uriref)
while i>0:
if uriref[i-1] in self._namechars:
i = i - 1
else:
break
ln = uriref[i:]
ns = uriref[:i]
[...]
-- excerpted from http://www.w3.org/2000/10/swap/notation3.py
--
Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Thursday, 16 August 2001 17:41:06 UTC