- From: Reto Bachmann-Gmür <reto@gmuer.ch>
- Date: Wed, 18 Jul 2007 11:05:30 +0200
- To: Leo Sauermann <leo@gnowsis.com>
- CC: Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>, semantic-web@w3.org, Tim Berners-Lee <timbl@w3.org>
- Message-ID: <469DD7DA.8030201@gmuer.ch>
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