W3C home > Mailing lists > Public > www-rdf-interest@w3.org > June 2004

Re: OWL DL restriction clarification, please

From: Benjamin Nowack <bnowack@appmosphere.com>
Date: Thu, 10 Jun 2004 14:50:05 +0200
To: Danny Ayers <danny666@virgilio.it>
Cc: www-rdf-interest@w3.org
Message-ID: <PM-EH.20040610145005.C7EA1.1.1D@>

On 10.06.2004 13:37:41, Danny Ayers wrote:
>I can see why the meta aspects of RDF(S) can prevent a schema being 
>considered OWL DL, but I was wondering about the situation where a 
>class/property is defined using *both* RDFS and OWL constructs. It feels 
>like the inclusion of the OWL definition should apply the required 
>constraints, but my guess is that it doesn't - could someone please 
>clarify?  Example below.
I think the specs are quite clear, the reference for example says:
   "In OWL Lite and OWL DL, owl:Class must be used for all class 
It seems to be more a syntactical than a semantical problem.

>Assuming that  including the RDFS-based definitions does poke a hole in 
>completeness, might it still be possible in practice to apply a 
>remove-if-unknown (no imports) kind of rule to the statements outside of 
>the OWL DL universe, and hence use DL reasoners on combined schemas that 
from a theoretical point of view, I'd say your model is OK, but
in practice it (as usual) depends on the tools you plan to use. If
they provide a "clean-up before reasoning" function, it may well be
OK to have something such as

  <rdfs:Class rdf:ID="MyLittleClass">
   <rdf:type rdf:resource="&owl;Class"/>
   <rdfs:subClassOf rdf:resource="#MyBigClass"/>

A tool could then first read all the triples and then feed only
owl:Classes to a classifier. And pure RDFS tools could simply treat
OWL information like any other vocabulary or ignore it.

But if the tools start screaming as soon as the encounter an 
rdfs:Class, then this approach -pragmatically spoken- just won't
work. Did you already try your example on e.g. protege's OWL 
plug-in? I don't know if it could also happen that OWL-only tools
regard rdfs:Classes as individuals, therefore screaming again 
(classes as individuals issue) or that they rip of the additional
typing info, so that you couldn't re-serialize it this way again..

>The bottom line I guess is close to the (pending?) best practices 
>question - should you define schema against OWL Full or OWL DL or both? 
>Here the question is - if both, do they have to be separate?
I think one of the problems for deployed apps is that even if we had
DL/Lite-onts only, their combination could still result in an OWL Full
model. So I guess the DL stuff is more for specialized apps that use
some kind of manually maintained/controlled set of onts.

I *think* that many deployed vocabularies will be in the style
of the FOAF spec (rdfs:Classes with OWL information on top), maybe
offering a separate OWL DL version for those using DL reasoners.
(That's at least the scenario I'm optimizing my ont editor for.. ;)


Benjamin Nowack

Kruppstr. 100
45145 Essen, Germany

>    xmlns = "http://example.org/test#"
>    xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>    xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
>    xmlns:owl  ="http://www.w3.org/2002/07/owl#"
>    xml:base   ="http://example.org/test#">
>  <owl:Ontology rdf:about=""/>
>  <owl:Class rdf:ID="MyLittleClass">
>    <rdfs:subClassOf rdf:resource="#MyBigClass"/>
>  </owl:Class>
>  <owl:Class rdf:ID="MyBigClass">
>  </owl:Class>
>  <rdfs:Class rdf:ID="MyLittleClass">
>    <rdfs:subClassOf rdf:resource="#MyBigClass"/>
>  </rdfs:Class>
>  <rdf:Property rdf:ID="someCharacteristic">
>    <rdfs:domain rdf:resource="#MyBigClass"/>
>    <rdfs:range  rdf:resource="#MyBigClass"/>
>  </rdf:Property>
>  <owl:ObjectProperty rdf:ID="someCharacteristic">
>    <rdfs:domain rdf:resource="#MyBigClass"/>
>    <rdfs:range  rdf:resource="#MyBigClass"/>
>  </owl:ObjectProperty>
>  <rdf:Property rdf:ID="somethingLiteral">
>      <rdfs:domain rdf:resource="#MyBigClass"/>
>      <rdf:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
>  </rdf:Property>
>    <owl:DatatypeProperty rdf:ID="somethingLiteral">
>    <rdfs:domain rdf:resource="#MyBigClass"/>
>      <rdf:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
>  </owl:DatatypeProperty>
Received on Thursday, 10 June 2004 08:50:45 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:44:50 UTC