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

Re: OWL DL restriction clarification, please

From: Danny Ayers <danny666@virgilio.it>
Date: Thu, 10 Jun 2004 17:49:21 +0200
Message-ID: <40C88301.3040103@virgilio.it>
To: Benjamin Nowack <bnowack@appmosphere.com>
Cc: www-rdf-interest@w3.org

Benjamin Nowack wrote:

>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 
>   descriptions"
>]]
>  
>

But that doesn't exclude the use of rdfs:Class as well, nor does it 
explain *why*. In fact the very next point in the reference says:

[[
NOTE: |owl:Class| is defined as a subclass of |rdfs:Class|. The 
rationale for having a separate OWL class construct lies in the 
restrictions on OWL DL (and thus also on OWL Lite), which imply that not 
all RDFS classes are legal OWL DL classes. In OWL Full these 
restrictions do not exist and therefore |owl:Class| and |rdfs:Class| are 
equivalent in OWL Full.
]]

Which implies all OWL classes are RDFS classes, and some RDFS classes 
are indeed legal OWL DL classes. Which again doesn't rule out the use of 
both descriptions of a single concept.

http://www.w3.org/TR/owl-ref/#ClassDescription

>It seems to be more a syntactical than a semantical problem.
>  
>

Yep, it seems so, but that certainly isn't clear from the documentation.


>>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 
>>way?
>>    
>>
>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"/>
>  </rdfs:Class>
>
>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. 
>

Yep. Amongst many other messages, the WonderWeb species checker gives a 
warning about the use of rdfs:Class in the example below.

>Did you already try your example on e.g. protege's OWL 
>plug-in? 
>

Not yet, I shall (I've got it set up with RACER here).

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

How? That's a pretty key question. My impression was that if you started 
in the DL universe (i.e. DL or Lite) then you'd stay there.

>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.. ;)
>  
>

I have seen a few in that style, but given that owl:Class is a subclass 
of rdfs:Class, it seems to me that everything else being equal the OWL 
version should be the first choice for new vocabularies, unless the 
meta-definitions of RDFS are needed. So most data would be susceptible 
to DL reasoning *and* whatever OWL Full/RDF reasoning was available.

As an aside, I realise people in the SWBP WG don't want to tread on each 
other's toes, but the issue of DL or Full is one which every 
ontology/schema author will encounter. There is no need for them to 
commit to advice pointing towards either OWL Full or DL (or Lite) 
exclusively, but there should be information available on the 
implications of any choice based on known facts. The mess won't clean 
itself up, quite the opposite if people are implementing without full 
knowledge of the relative strengths/merits of the alternatives.

Cheers,
Danny.

>><rdf:RDF
>>   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>
>></rdf:RDF>
>>
>>-- 
>>
>>Raw
>>http://dannyayers.com
>>
>>
>>
>>    
>>
>
>
>  
>


-- 

Raw
http://dannyayers.com
Received on Thursday, 10 June 2004 11:51:03 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:07 GMT