W3C home > Mailing lists > Public > public-swbp-wg@w3.org > February 2006

Re: [VM] cookbook issue in naming 'hash namespaces'

From: Alistair Miles <a.j.miles@rl.ac.uk>
Date: Wed, 15 Feb 2006 17:56:38 +0000
Message-ID: <43F36B56.8010900@rl.ac.uk>
To: "Ralph R. Swick" <swick@w3.org>
CC: public-swbp-wg@w3.org

Hi Ralph,

... and I so foolishly remarked in the last telecon that 'I've said all 
I'm ever going to say about hash URIs' ...

Sorry, I should have sent an email explicitly explaining my decision to 
revert your changes. I did send an email [10] noting some technical 
issues regarding 'namespace URIs' and 'vocabulary URIs'.

Typically (in my experience), RDF schemas and OWL ontologies do 
something like the following:

<rdf:RDF xml:base="http://example.com/foo"

   <owl:Ontology rdf:about="">
     <rdfs:comment>An Example OWL Ontology</rdfs:comment>

   <owl:Class rdf:ID="Bar">


This document contains the following triples:

<http://example.com/foo> rdfs:comment "An Example OWL Ontology".
<http://example.com/foo#Bar> rdfs:label "Bar".

Note that, as I documented at [10], if the value of the xml:base 
attribute were changed to "http://example.com/foo#" this does not change 
the triples at all.

In this example, although the ontology uses a 'hash namespace', the URI 
that actually identifies the ontology is <http://example.com/foo>.

This is what all the examples in the OWL specifications do. This is also 
the situation you get any time the ontology uses an empty rdf:about 

In order to use the namespace URI as the ontology URI you have to do 
something like:

   <owl:Ontology rdf:about="http://example.com/foo#">
     <rdfs:comment>An Example OWL Ontology</rdfs:comment>

... I've not seen that done. I haven't eyeballed a particularly large 
number of ontologies in my time, so I could be wrong about this - we 
should ask SWOOGLE.

In [10] I noted the following:

... we have to be careful not to confuse the 'vocabulary URI' (a.k.a. 
the 'ontology URI', i.e. the URI that identifies the 
vocabulary/ontology) and the 'namespace URI' (i.e. the actual URI you 
append the local name of each term to). E.g. [for vocabularies that use 
a hash namespace ...]

http://example.com/vocab - vocabulary URI.
http://example.com/vocab# - namespace URI.

For RDFS/OWL vocabularies/ontologies that use a slash namespace both the 
vocabulary URI and the namespace URI are the same, e.g.

http://example.com/anothervocab/ - vocabulary URI.
http://example.com/anothervocab/ - namespace URI.

I saw no need to complicate the cookbook with this distinction between 
namespace URI and vocabulary URI.  I therefore only ever made reference 
to a 'vocabulary URI', removed all references to 'namespace URI' in the 
main body of the text (although I missed some in the apache directive 
comments, and in the PURLs section). I also removed the trailing hash 
from any 'vocabulary URI' to be consistent with what I understood to be 
the most widely deployed practice.


[10] http://lists.w3.org/Archives/Public/public-swbp-wg/2006Jan/0088.html

Ralph R. Swick wrote:
> Alistair,
> I just noticed an issue in the way the current cookbook editor's draft
> refers to hash namespace URIs.  Sorry for not explicitly raising this
> earlier, as I suspect that it may represent something fundamental
> in your view of vocabulary naming.
> In recipes 1, 3, 1a, and 3a the current editor's draft [1], rev 1.10 refers
> to vocabulary names as:
>    For vocabulary ...
>    http://isegserv.itd.rl.ac.uk/VM/http-examples/example1
>    ... defining classes ...
>    http://isegserv.itd.rl.ac.uk/VM/http-examples/example1#ClassA
>    http://isegserv.itd.rl.ac.uk/VM/http-examples/example1#ClassB
> i.e. the trailing '#' is consistently omitted from the vocabulary name.
> I claim this is a fundamental mistake and would argue it on the
> basis of both semantics and what the RDF core specifications
> state.  The semantic point is that [1] should be the name of the
> vocabulary while [2] is the name of a document that might (should)
> describe that vocabulary.
> [1] http://isegserv.itd.rl.ac.uk/VM/http-examples/example1#
> [2] http://isegserv.itd.rl.ac.uk/VM/http-examples/example1
> I believe that the terms "namespace name" and "vocabulary
> name" should be considered synonymous when they apply
> to URI references for use within the Semantic Web.
> This is certainly related to the discussion thread [3] (continued
> at [4], [5], and [6]) but I hope we can resolve this without forking
> those threads yet again.
> The RDF core specifications state [7] that RDF URI references
> are constructed by simple concatenation of the local name to
> the namespace name.  There is nothing in the RDF specifications
> that endorse an inference that clients should insert a '#' under
> some conditions.
> The RDF specification [8] uses the phrasing
>   "The RDF namespace URI reference (or namespace name) is
>    http://www.w3.org/1999/02/22-rdf-syntax-ns# ... The RDF Vocabulary
>    is identified by this namespace name ..."
> So it is a mistake for us to suggest in this cookbook that clients
> add a "missing" '#'.
> (I will raise a similar issue with respect to the SKOS Working Draft
> in a separate message.)
> I'd noticed this in the 2005-11-18 editor's draft [9] and thought it was
> simply a typo so I corrected it in rev 12.  That change was subsequently
> reverted in rev 15 but I can't tell from your commit comment whether
> you'd intentionally reverted it or not.  So I don't know whether you mean
> to draw some distinction here -- and if so we'd better explain that 
> distinction with more words -- or whether simply adding the trailing
> '#' to the vocabulary names is acceptable to you.
> [3] http://lists.w3.org/Archives/Public/public-swbp-wg/2006Jan/thread.html#msg113
> [4] http://lists.w3.org/Archives/Public/public-swbp-wg/2006Jan/thread.html#msg129
> [5] http://lists.w3.org/Archives/Public/public-swbp-wg/2006Feb/thread.html#msg6
> [6] http://lists.w3.org/Archives/Public/public-swbp-wg/2006Feb/thread.html#msg0
> [7] http://www.w3.org/TR/rdf-syntax-grammar/#section-Identifiers
> [8] http://www.w3.org/TR/rdf-syntax-grammar/#section-Namespace
> [9] http://www.w3.org/2001/sw/BestPractices/VM/http-examples/2006-01-18/
> -Ralph

Alistair Miles
Research Associate
CCLRC - Rutherford Appleton Laboratory
Building R1 Room 1.60
Fermi Avenue
Oxfordshire OX11 0QX
United Kingdom
Email: a.j.miles@rl.ac.uk
Tel: +44 (0)1235 445440
Received on Wednesday, 15 February 2006 17:56:49 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:09:46 UTC