W3C home > Mailing lists > Public > semantic-web@w3.org > September 2012

Re: Vocabulary (ontology) URI vs namespace

From: María Poveda <mpoveda@delicias.dia.fi.upm.es>
Date: Tue, 11 Sep 2012 13:02:54 +0200
Message-ID: <CA+mx6Z3NFPUji=WU0WArakpx4=PtyFNvbHxsR1pU64u5ga4oWA@mail.gmail.com>
To: Yves Raimond <yves.raimond@gmail.com>
Cc: Bernard Vatant <bernard.vatant@mondeca.com>, Semantic Web <semantic-web@w3.org>, Pierre-Yves Vandenbussche <pierre-yves.vandenbussche@mondeca.com>
Hello,

On Tue, Sep 11, 2012 at 12:35 PM, Yves Raimond <yves.raimond@gmail.com> wrote:
> Hello!
>
> On Mon, Sep 10, 2012 at 3:09 PM, María Poveda
> <mpoveda@delicias.dia.fi.upm.es> wrote:
>> 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.
>
> I am bit confused about that - where do you see them defined as
> functional? They shouldn't be, and I can't find this statement neither
> in the HTML spec, neither in the Turtle and RDF/XML.
>

I see this in the .n3 file I was talking about:

event:time a owl:FunctionalProperty;
	a owl:ObjectProperty;
	vs:term_status "stable";
	rdfs:domain event:Event;
	rdfs:range time:TemporalEntity;
	rdfs:label "time";
	rdfs:comment """
		Relates an event to a time object, classifying a time region (either
instantaneous or having an extent).
		By using the Timeline ontology here, you can define event happening
on a recorded track or on any
		media with a temporal extent.
		""";
	.

event:place a owl:FunctionalProperty;
	a owl:ObjectProperty;
	vs:term_status "stable";
	rdfs:domain event:Event;
	rdfs:range geo:SpatialThing;
	rdfs:label "place";
	rdfs:comment """
		Relates an event to a spatial object.
		""";
	.


When I process it using JENA it is understood as a functional property.

Cheers,

María

>
>>
>>   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.
>
> You should be able to get to the latest Turtle using content negotiation, e.g.
>
> $  curl -H"Accept: application/turtle"
> http://purl.org/NET/c4dm/event.owl -L | vim -
> (which doesn't have any functional property)
>
> Best,
> Yves
>
>> 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 Tuesday, 11 September 2012 11:03:42 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:51 GMT