W3C home > Mailing lists > Public > semantic-web@w3.org > July 2007

Re: Calling the rdf file an ontology?

From: Reto Bachmann-Gmür <reto@gmuer.ch>
Date: Wed, 18 Jul 2007 11:05:30 +0200
Message-ID: <469DD7DA.8030201@gmuer.ch>
To: Leo Sauermann <leo@gnowsis.com>
CC: Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>, semantic-web@w3.org, Tim Berners-Lee <timbl@w3.org>
Thanks for the pointers. I don't like the idea of doing
content-negotiation on the redirection. If asked for a representation of
<http://ont.example.org/myOnt/ont/Bear> the server, neither being able
to return a bear in flesh and blood nor the abstract concept of the
class of bears should redirect me to description of
<http://ont.example.org/myOnt/ont/Bear> and not to a specific
representation of this description.

reto


Leo Sauermann wrote:
> which leads us to the relevant literature, I hope you have already
> pointed it out before:
>
> cool uris for the semantic web - about uris in general
> http://www.dfki.uni-kl.de/~sauermann/2006/11/cooluris/
>
> Best Practice Recipes for Publishing RDF Vocabularies
> http://www.w3.org/TR/swbp-vocab-pub/
>
> I assume you have read those, they go into DETAIL and they solve open
> questions.
>
> best
> Leo
>
> It was Reto Bachmann-Gmu"r <reto@gmuer.ch>" who said at the right time
> 17.07.2007 19:03 the following words:
>> Yoshio Fukushige wrote:
>>   
>>> Thank you, Reto and Tim, for your advices.
>>>
>>> If I understand them correctly:
>>>
>>> (1) One can get a serialization of an ontology by dereferencing the ontology's URI,
>>> which is (usually?) the non-local-name part of the URI's for the terms it defines.
>>>   
>>>     
>> It is true that, one can usually get triples describing a term by
>> dereferencing the non-local-name part of the URI's of the term, but in
>> general its not required for an ontology to be a dereferenceable resource.
>>
>> I don't know if or under what conditions the graph resulting from the
>> dereferenciation of the URI are to be considered of type owl:Ontology.
>>   
>>> (2) It is wise not to include .rdf (or any other extensions) in the URI of an ontology,
>>> so as to allow content negotiations.
>>>   
>>>     
>> HTTP allows content-negotiation independently of style of the URI, it's
>> just no longer a "cool URI".
>>   
>>> So I will avoid asserting the .rdf files as ontologies.
>>>
>>> What I wanted to do was:
>>>
>>> - to put the definition of a single term into a single (rdf)file (for ease of maintenance 
>>> and to let users to get the minimum amount of data necessary)
>>>
>>> - to ask the users to write minimum lines when they want to load the whole vocabulary
>>>
>>> - to remain in DL
>>>
>>> I came up with the following idea and would like to know how it looks to you:
>>> good/bad practice? good points/drawbacks? points to care?
>>>
>>> (I think I can avoid the disadvantage pointed by Tim: "one needs a namepsace URI per term")
>>>
>>> # I know the drawbacks in using slash namespaces used with PURLs...
>>>
>>> Many thanks in advance.
>>>
>>>   
>>>     
>> In your examples you unnecessarily declare the prefix ont and voc.
>> Serializations of graphs using your terms would just include the prefix
>> for "http://ont.example.org/myOnt/voc/", following your pattern this URI
>> is neither dereferenceable nor an ontology; this is of. As Tim pointed
>> the approach using HTTP 303 responses has disadvantages in performance
>> over the pattern using hashes, on the other side only the 303-approach
>> allows efficient use of namespaces.
>>   
>>> ------------ start of my idea -----------
>>> (i)
>>> Define each term (Class of property) in a file
>>>
>>> For an Ontology for the Bear class,
>>> in http://ont.example.org/myOnt/ont/Bear.rdf,
>>>
>>> -----------
>>> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>> 	xmlns:owl="http://www.w3.org/2002/07/owl#"
>>> 	xmlns:ont="http://ont.example.org/myOnt/ont/"
>>> 	xmlns:voc="http://ont.example.org/myOnt/voc/">
>>>
>>> 	<owl:Ontology rdf:about="http://ont.example.org/myOnt/ont/Bear"/>
>>>
>>> 	<owl:Class rdf:about="http://ont.example.org/myOnt/voc/Bear"/>
>>>
>>> </rdf:RDF>
>>> -----------
>>>
>>> and for an Ontology for the Donkey class,
>>> in http://ont.example.org/myOnt/ont/Donkey.rdf,
>>>
>>> -----------
>>> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>> 	xmlns:owl="http://www.w3.org/2002/07/owl#"
>>> 	xmlns:ont="http://ont.example.org/myOnt/ont/"
>>> 	xmlns:voc="http://ont.example.org/myOnt/voc/">
>>>
>>> 	<owl:Ontology rdf:about="http://ont.example.org/myOnt/ont/Donkey"/>
>>>
>>> 	<owl:Class rdf:about="http://ont.example.org/myOnt/voc/Donkey"/>
>>>
>>> </rdf:RDF>
>>> -----------
>>>
>>> (ii)
>>> Then for the whole ontology that includes all the term definitions,
>>> in http://ont.example.org/myOnt/ont/all.rdf
>>> -----------
>>> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>> 	xmlns:owl="http://www.w3.org/2002/07/owl#"
>>> 	xmlns:ont="http://ont.example.org/myOnt/ont/"
>>> 	xmlns:voc="http://ont.example.org/myOnt/voc/">
>>>
>>> 	<owl:Ontology rdf:about="http://ont.example.org/myOnt/ont">
>>> 		<owl:imports rdf:resource="http://ont.example.org/myOnt/ont/Bear"/>
>>> 		<owl:imports rdf:resource="http://ont.example.org/myOnt/ont/Donkey"/>
>>> 	</owl:Ontology>
>>> </rdf:RDF>
>>> -----------
>>>
>>> (iii)
>>> Lastly, add the rewrite directives such as
>>>
>>> ----
>>> RewriteBase /myOnt
>>>
>>> RewriteRule voc/(*) ont/$1.rdf
>>> RewriteRule ont/$ ont/all.rdf
>>> ---
>>>
>>> (I'm not certain about the rule grammer, though)
>>>
>>> (iv)
>>> When using the vocabulary,
>>> by declaring the common namespace for the terms,
>>> one doesn't need to declare each namespaces,
>>> like in
>>> -----------
>>> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>> 	xmlns:owl="http://www.w3.org/2002/07/owl#"
>>> 	xmlns:voc="http://ont.example.org/myOnt/voc/">
>>>
>>> 	<voc:Bear rdf:about="#Pooh"/>
>>> 	<voc:Donkey rdf:about="#Eeyore"/>
>>>
>>> </rdf:RDF>
>>> -----------
>>>
>>> (v)
>>> Then by requesting, for example,
>>>
>>> GET /myOnt/Bear HTTP/1.1
>>> Host: ont.example.org
>>> Accpet: application/rdf+xml
>>>
>>> one will get 
>>>
>>> HTTP/1.x 303 See Other
>>> Location http://ont.example.org/myOnt/ont/Bear.rdf
>>>
>>> and then by requesting the redirected URI, one will get
>>> the Bear.rdf file which is the minumum ontology defining the term.
>>>
>>> On the other hand, when requesting
>>>
>>> GET /myOnt/ont HTTP/1.1
>>> Host: ont.example.org
>>> Accept: application/rdf+xml
>>>
>>> one will get http://ont.example.org/myOnt/ont.rdf
>>> with the HTTP header containing
>>>
>>> HTTP/1.x 200 OK
>>> Content-Type: application/rdf+xml
>>>
>>> (Of course what one get is the list of importing declarations,
>>> and one needs to issue HTTP requests for each minimum files.
>>> But this time, it is the ontologies that are requested, 
>>> so 303 round-trips won't occur)
>>>
>>> ------------ end of my idea -----------
>>>
>>> Yoshio Fukushige
>>> fukushige.yoshio@jp.panasonic.com
>>>
>>>
>>> On Mon, 16 Jul 2007 12:44:06 +0200
>>> Reto Bachmann-Gm〓 <reto@gmuer.ch> wrote:
>>>   
>>>     
>> ...
>>   
>



Received on Wednesday, 18 July 2007 08:46:31 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:41:58 UTC