Re: Calling the rdf file an ontology?

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.

(2) It is wise not to include .rdf (or any other extensions) in the URI of an ontology,
so as to allow content negotiations.

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.

Best,
Yoshio Fukushige

------------ 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:

> Tim Berners-Lee wrote:
> >
> > On 2007-07 -13, at 16:33, Reto Bachmann-Gm〓 wrote:
> >
> >>
> >> Hi Yoshio
> >>
> >> I think that an ontology can be seen as an information resource an
> >> thus have a derefernceable http-uri as its name (some ontolgies have
> >> a trailing pound sign, which may indicate that they authors consider
> >> an ontology as something more abstract than an information resource).
> >
> > Don't confuse the ontology d the namespace URI.  The namespace uri is
> > a syntactic device for abbreviating the URIs in RDF syntaxes.   RDF
> > defines the URI as the concatenation of the NS URI string and eth
> > local name.  This means that when a namespace URI ends in a #,
> >
> >     @prefix zoo: <http://ont.example.org/myOnt/example#>
> >
> >  the URIS  written as zoo:bear are shorthand for
> > <http://ont.example.org/myOnt/example#bear>
> >
> > In this case, when any term in that namepace s looked up, it is the
> > document <http://ont.example.org/myOnt/example> which is dereferenced.
> >
> > That resource is the ontology.  It sometimes has a statement in it ike
> >
> >     <> rdf:type owl:Ontology.
> >
> > ("This document has rdf:type owl:Ontology").
> I was referring to the different style of URI of what is asserted to be
> of rdf:type owl:Ontology in different ontologies (or "in different
> documents describing ontologies") such as for example rdfs and owl:
> 
> http://www.w3.org/2002/07/owl says that http://www.w3.org/2002/07/owl
> rdf:type owl:Ontology
> 
> while
> 
> http://www.w3.org/2000/01/rdf-schema says that
> http://www.w3.org/2000/01/rdf-schema# rdf:type owl:Ontology
> 
> Looking at http://www.w3.org/TR/owl-ref/ for clarification on
> owl:Ontology, I find the following section:
> 
>     A document describing an ontology typically contains information
>     about the ontology itself. An ontology is a resource, so it may be
>     described using properties from the OWL and other namespaces, e.g.:
> 
>     <owl:Ontology rdf:about="">
>       
> 
> This doesn't make it very clear if there is a difference between an ontology and the entity describing the ontology. The text and the triple can be interpreted as an owl:Ontology being a "document describing an ontology" rather than an ontology. Section 7.3 explaining owl:imports use the term "OWL ontology" to refer to a owl:Ontology as a loadable entity. So owl:Ontology = "OWL Ontology" = "document describing an ontology"
> 
> 
> reto


-- 
Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>
Network Development Center,
Matsushita Electric Industrial Co., Ltd.

Received on Tuesday, 17 July 2007 10:06:41 UTC