- From: Bernard Vatant <bernard.vatant@mondeca.com>
- Date: Fri, 31 Aug 2012 13:19:03 +0200
- To: Semantic Web <semantic-web@w3.org>
- Cc: Pierre-Yves Vandenbussche <pierre-yves.vandenbussche@mondeca.com>
- Message-ID: <CAK4ZFVGQjq9wpqfsV-VzFFHgpry8Jj5BOKp0utsUjEuSUMi62A@mail.gmail.com>
Hello all Having harvested as of today 280 vocabularies/ontologies at http://lov.okfn.org/dataset/lov We have stumbled on all possible (I think) configurations regarding vocabulary URI (or IRI) and namespace, and it's sometimes driving me nuts :) A common (best?) practice is to declare the vocabulary URI as a base URI without any trailing # or /, to make it distinct from the ontology namespace. Example 1 : c4o URI : http://purl.org/spar/c4o namespace : http://purl.org/spar/c4o/ Example 2 : c4n URI : http://vocab.deri.ie/c4n namespace : http://vocab.deri.ie/c4n# In both cases the vocabulary URI is declared formally using owl:Ontology. In both cases the root URI and the namespace resolve and conneg nicely. In the second example the namespace is formally declared using vann:preferredNamespaceUri, which is nice to have There are also many cases where the namespace is used more or less explicitly as the vocabulary URI. Example 4 : dcterms Both http://purl.org/dc/terms/ and http://purl.org/dc/terms currently resolve to http://dublincore.org/2012/06/14/dcterms.rdf where one can find : <rdf:Description rdf:about="http://purl.org/dc/terms/"> etc although this is not a owl:Ontology declaration, this implicitly indicates http://purl.org/dc/terms/ as the URI of the vocabulary.(would be better if explicit ...) Using purl, it's often the case that the root URI does not even resolve. Example 4 : af The namespace URI : http://purl.org/ontology/af/ ... redirects to http://motools.sourceforge.net/doc/audio_features.rdf ... where one can read <owl:Ontology rdf:about=" file:///home/moustaki/work/workspace/motools/af/rdf/audio_features.n3"> whereas http://purl.org/ontology/af is 404 This example is a bit extreme (apologies to Yves for pointing that publicly)but we have all sorts of in-between, such as no owl:Ontology declaration at all, or lazy owl:Ontology rdf:about="" combined with redirection so it's to everyone guess what to put in the "" ... So my question is : should the practice of examples 1 and 2 be recommended as the best one, namely : - Use a root URI (without either trailing # or / or file extension) as the vocabulary URI - Declare it formally using a owl:Ontology declaration in the RDF, and explicitly in the HTML documentation - Make this root URI resolve to both vocabulary file and documentation using proper content negociation Plus (nice to have) - Declare explicitly the vocabulary namespace URI (either / or #) using vann:preferredNamespaceUri (not only xmlns) - Have the namespace resolve to the root URI Thanks for comments ! Bernard -- *Bernard Vatant * Vocabularies & Data Engineering Tel : + 33 (0)9 71 48 84 59 Skype : bernard.vatant Blog : the wheel and the hub <http://blog.hubjects.com/> -------------------------------------------------------- *Mondeca** ** * 3 cité Nollez 75018 Paris, France www.mondeca.com Follow us on Twitter : @mondecanews <http://twitter.com/#%21/mondecanews>
Received on Friday, 31 August 2012 11:20:00 UTC