- From: María Poveda <mpoveda@delicias.dia.fi.upm.es>
- Date: Mon, 10 Sep 2012 16:09:34 +0200
- To: Bernard Vatant <bernard.vatant@mondeca.com>
- Cc: Semantic Web <semantic-web@w3.org>, Pierre-Yves Vandenbussche <pierre-yves.vandenbussche@mondeca.com>
Hi Bernard, Thanks for sharing! I've also been looking at this topic. Very interesting. I've got a few similar cases to add. For example: I realized that in the ontologies importing "http://purl.org/NET/c4dm/event.owl" the relationships "http://purl.org/NET/c4dm/event.owl#place" and "http://purl.org/NET/c4dm/event.owl#time" are not defined as functional object properties. However, in the file I downloaded from "http://motools.sourceforge.net/event/event.html" they are defined as functional object properties. It shouldn't happen when your are using owl:imports. It should be note that "http://purl.org/NET/c4dm/event.owl" is redirected to "http://motools.sourceforge.net/event/event.html" when using a web browser or when the http request asks for an html document. From this website I manually downloaded a .n3 file (http://motools.sf.net/event/event.122.n3) that I consider the reference file for this ontology. However, when accesing the "http://purl.org/NET/c4dm/event.owl" URI using JENA, Ontology editors, or asking for rdf+xml content type, the server redirects to "http://motools.sourceforge.net/event/event.rdf". The problem was the properties (#time and #place) are defined as funcional in the n3 file but not in the rdf one. Just to note, in both files the base ontology URI is "http://purl.org/NET/c4dm/event.owl". Cheers, María On Fri, Aug 31, 2012 at 1:19 PM, Bernard Vatant <bernard.vatant@mondeca.com> wrote: > 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 > > -------------------------------------------------------- > Mondeca > 3 cité Nollez 75018 Paris, France > www.mondeca.com > Follow us on Twitter : @mondecanews >
Received on Monday, 10 September 2012 15:13:59 UTC