W3C home > Mailing lists > Public > semantic-web@w3.org > July 2007

Re: Calling the rdf file an ontology?

From: Tim Berners-Lee <timbl@w3.org>
Date: Sun, 15 Jul 2007 09:03:55 -0400
Message-Id: <E4375A77-72EC-4F38-B609-DB4ED599D227@w3.org>
Cc: Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>, semantic-web@w3.org
To: =?ISO-8859-1?Q? "Reto_Bachmann-Gm=FCr" ?= <reto@gmuer.ch>


On 2007-07 -13, at 16:33, Reto Bachmann-Gmür 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").


> An rdf/xml document is just one representation of an ontology, I  
> would assume a URI ending with .rdf to name such a representation  
> rather than the ontology itself. The ontology can savely have  
> different representations targetted for humans (xhtml, pdf, etc.)  
> or machines (different rdf serialization).

It is best to always quote the URI *without* the .rdf, and allow  
content negotiation to give the server the option of serving rdf/xml  
or N3 or whatever comes later.

The ".rdf" should only be used to specifically refer to the ontology  
as expressed in RDF.  See http://www.w3.org/DesignIssues/Generic.

>
> If  <http://ont.example.org/myOnt/example> is a owl:Class then a  
> webserver would have to return a 303 response since a class is not  
> an information resource.


In this case it isn't a class, it is an ontology.

> An approach for your single-term ontologies would be:
> <http://ont.example.org/myOnt/example> rdf:type owl:Ontology.
> <http://ont.example.org/myOnt/example#> rdf:type owl:Class.

It is very unwise to use a trailing hash for anything other than a  
namespace  URI.
It dentifieshe thing identified by  the localid (emptystring) in the  
document <http://ont.example.org/myOnt/example>.

Most languages do not permit the empty string as a local  
identifier.   Don't do this.
Use   #this   for example if there is only one term in the ontology.


> It is however a bit unconventional to have a trailing pound-sign at  
> the end of the name of a class, as this usually separates the name  
> of the ontology from the local name of the term. Also this approach  
> doesn't allow graphs using these ontologies to make a very  
> effective use of namespaces when serialized as rdf/xml or n3.

Exactly.

> If your concern is that one should be able to get a description of  
> a term without having to download a huge ontology I would rather  
> use URIs like
>
> http://example.org/myOnt/myClass
>
> for an individual class, and configure the webserver to send a 303  
> pointing to
>
> http://example.org/myOnt/myClass-description
>
> which dereferences to some rdf containing the description of the  
> class inclusing the triple
>
> <http://example.org/myOnt/myClass> rdfs:isDefinedBy <http:// 
> example.org/myOnt>.
>
> http://example.org/myOnt would dereference to the whole ontology  
> but a typical way to retrieve the definition of a single term  
> wouldn't require to download this huge thing.

Single term ontology pattern:

A more efficient approach is to make the URI for the class to be

	http://example.org/myOnt/Bear#class

so obviously the  ontology <http://example.org/myOnt/Bear> will have  
it just the basics about bears
and closely related things.  I recommend all the statements in the  
larger ontology which involve  zoo:Bear
except those which would be too numerous, such all known things of  
type bear.

Advantages:

1.  You can maintain this on a web server where you can't or don't  
want to manage HTTP 303

2.  The actual use of your ontology will be twice as fast in terms of  
network round trips.

3. The server load will be lower.

Disadvantage:

1.  Doesn't serialize well in N3 and RDF/XML as one needs a namespace  
URI per term.

Tim


>
> reto
>
> - original message -
> Subject:	Calling the rdf file an ontology?
> From:	Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>
> Date:		11/07/2007 10:40
>
>
> Hi all,
>
> I have two questions on what should be called as owl:Ontology.
>
> (1)
> Let's assume we have the following assertion:
>
> <http://ont.example.org/myOnt/example> rdf:type owl:Ontology.  ...(A)
>
> Now if the vocabulary is defined in http://ont.example.org/myOnt/ 
> example.rdf,
> and what is retrieved by
>
> GET /myOnt/example HTTP/1.1
> Host: ont.example.org
> Accept: application/rdf+xml
>
> is http://ont.example.org/myOnt/example.rdf,
>
> then does the following make sense and mean the same thing as (A)?
>
> <http://ont.example.org/myOnt/example.rdf> rdf:type  
> owl:Ontology.  ...(B)
>
> If (A) and (B) mean different things, then which should we use in  
> this situation?
>
> Will the decision change if one receives its accompanying html  
> document
> (example.html) by
>
> GET /myOnt/example HTTP/1.1
> Host: ont.example.org
> Accept: text/html
>
> or
>
> GET /myOnt/example HTTP/1.1
> Host: ont.example.org
> Accept: application/xhtml+xml
>
> ?
>
> (2)
> If (A) and (B) above mean different things, does the following make  
> any sense?
>
> -----
> <rdf:RDF xmlns="http://www.w3.org/2002/07/owl#"
>     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
>
>     <Ontology rdf:about="http://ont.example.org/myOnt/example.rdf"/>
>
>     <Class rdf:about="http://ont.example.org/myOnt/example"/>
>
> </rdf:RDF>
> -----
> (this should be in /myOnt/example.rdf )
>
> What I want to do is to put each terms in the vocabulary in mind
> into separate files defining only that term and name the file
> after the term name. But I want to remain in DL.
> That's why I don't write
>
>     <Ontology rdf:about="http://ont.example.org/myOnt/example"/>
>
> in the example above (to separate the Class name from Ontology name).
>
> Is that so weird a practice?
>
> -- 
> Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>
> Network Development Center,
> Matsushita Electric Industrial Co., Ltd.
>
>
>
>
Received on Sunday, 15 July 2007 13:04:13 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:41:58 UTC