- From: Reto Bachmann-Gmu <reto@gmuer.ch>
- Date: Tue, 17 Jul 2007 19:03:28 +0200
- To: Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>
- CC: semantic-web@w3.org, Tim Berners-Lee <timbl@w3.org>
- Message-ID: <469CF660.8040307@gmuer.ch>
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