- From: Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>
- Date: Wed, 18 Jul 2007 14:45:03 +0900
- To: semantic-web@w3.org, Reto Bachmann-Gmuer <reto@gmuer.ch>
- Cc: fukushige.yoshio@jp.panasonic.com, Tim Berners-Lee <timbl@w3.org>
Thank you, Reto, for your comment. On Tue, 17 Jul 2007 19:03:28 +0200 Reto Bachmann-Gmu"r <reto@gmuer.ch> wrote: > > (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". Would you explain a bit about "it's just no longer a "cool URI""? Which are you saying cool, URI with extension or without it? #sorry, it may be just because my understanding English is not sufficient to # resolve what you meant by "it"... > 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. It's true that the namespace http://ont.example.org/myOnt/ont/ doesn't appear, in most part of the graph users need or find interesting. They are introduced as shorthands in writing URIs of the ontologies, (or the space where one can retrieve the ontologies) My example splits the Web space for the vocabulary (http://ont.example/org/myOnt/voc/) from the one for the ontologies (http://ont.example/org/myOnt/ont/) . And a request for a term is redirected to the corresponding minimum ontology through 303... Oh, sorry, I (mis)dropped the response code specification(?) [R=303] in (iii) I meant ---- RewriteBase /myOnt RewriteRule voc/(*+) ont/$1.rdf [R=303] RewriteRule ont/$ ont/all.rdf [R=303] --- When just doing the redirection, the lines <owl:Ontology rdf:about="http://ont.example.org/myOnt/ont/Bear"/> <owl:Ontology rdf:about="http://ont.example.org/myOnt/ont/Donkey"/> are not necessary. But to let the interested users get the whole ontology, I need to "import" each "ontology" into a single "ontology". That's what the lines in (ii) <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> are for. Oh, I also needed ----------- RewriteRule voc/?$ ont/all.rdf [R=303] ----------- Is this what you pointed by "neither dereferenceable"? And because the object of owl:imports needs to be owl:Ontology, I put the assertions in the files (i) (using the 'ont:' prefix) Should I have added <rdf:Description rdf:about="http://ont.example.org/myOnt/voc/Bear"> <isDefinedBy rdf:resource="http://ont.example.org/myOnt/ont/Bear"/> </rdf:Description> in http://ont.example.org/myOnt/ont/Bear.rdf, for example? And is this what you pointed by "nor an ontology"? Best, Yoshio Fukushige fukushige.yoshio@jp.panasonic.com > > ------------ 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> Network Development Center, Matsushita Electric Industrial Co., Ltd.
Received on Wednesday, 18 July 2007 05:42:19 UTC