Re: Calling the rdf file an ontology?

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 Tuesday, 17 July 2007 16:46:12 UTC