- From: Ralph R. Swick <swick@w3.org>
- Date: Fri, 17 Feb 2006 11:12:42 -0500
- To: Alistair Miles <a.j.miles@rl.ac.uk>
- Cc: public-swbp-wg@w3.org
At 05:56 PM 2/15/2006 +0000, Alistair Miles wrote:
>... and I so foolishly remarked in the last telecon that 'I've said all I'm ever going to say about hash URIs' ...
:)
oh dear.
>Sorry, I should have sent an email explicitly explaining my decision to revert your changes.
As clearly I should also have done when I made them. We missed
a bunch of telecons where I was planning to mention this.
> I did send an email [10] noting some technical issues regarding 'namespace URIs' and 'vocabulary URIs'.
right; I overlooked your last paragraph (which you cited):
... we have to be careful not to confuse the 'vocabulary URI' ...
and the 'namespace URI' ...
I should have flagged this issue then, as I disagree with your
conclusion -- though I respect the underlying implementation
issue that you identified in that message.
>Typically (in my experience), RDF schemas and OWL ontologies do something like the following:
>
><rdf:RDF xml:base="http://example.com/foo"
> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
> xmlns:owl="http://www.w3.org/2002/07/owl#">
>
> <owl:Ontology rdf:about="">
> <rdfs:comment>An Example OWL Ontology</rdfs:comment>
> </owl:Ontology>
>
> <owl:Class rdf:ID="Bar">
> <rdfs:label>Bar</rdfs:label>
> </owl:Class>
>
></rdf:RDF>
>
>This document contains the following triples:
>
><http://example.com/foo> rdfs:comment "An Example OWL Ontology".
><http://example.com/foo#Bar> rdfs:label "Bar".
Right you are, plus the crucial triple
<http://example.com/foo> rdf:type <http://www.w3.org/2002/07/owl#Ontology>
I missed this detail in reading the OWL Language Reference.
Indeed, [1]7.2 Ontology header explicitly recommends exactly
this practice, though it only shows an actual usage of xml:base
in [2]Appendix B RDF Schema of OWL.
[1] http://www.w3.org/TR/owl-ref/#Ontology-def
[2] http://www.w3.org/TR/owl-ref/#appB
I am just so accustomed to citing vocabularies by their namespace URI.
>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.
Though as Bjoern and Jeremy subsequently pointed out [3], it's
not clear whether this is the specified behavior or a [mis]feature
of implementations.
[3] http://lists.w3.org/Archives/Public/public-swbp-wg/2006Jan/0103.html
>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>
> ...
> </owl:Ontology>
No, you could write
<rdf:RDF xml:base="http://example.com/foo"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<owl:Ontology rdf:about="#">
<rdfs:comment>An Example OWL Ontology</rdfs:comment>
</owl:Ontology>
</rdf:RDF>
>... 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.
Good idea to consult Swoogle, but clearly the normative OWL ontology
does exactly the pattern you show so I concede that there are likely
very few that use the rdf:about="#" idiom.
...
>I saw no need to complicate the cookbook with this distinction between namespace URI and vocabulary URI.
all right, I concede your point for now.
> 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.
I understand. Now that we've had this discussion, I would have
preferred that the choice was made instead to refer only to
'namespace URI' but rather than standing on that editorial point
I'll propose instead the following addition to [4].
SKOS Core [SKOS] is an example of a vocabulary that uses a hash
namespace. ... In this case, the URIs for the classes and
properties are constructed by appending first a hash character
('#') and then a 'local name' to the vocabulary URI. /+(Within
an RDF document, the hash character is typically appended
via the namespace declaration.)+/ The 'local name' is ...
[4] http://www.w3.org/2001/sw/BestPractices/VM/http-examples/2006-01-18/#naming
Received on Friday, 17 February 2006 16:13:34 UTC