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

Re: OWL equivalentClass question

From: Michael Schneider <schneid@fzi.de>
Date: Fri, 13 Jul 2012 19:08:57 +0200
Message-ID: <50005629.6060506@fzi.de>
To: <nathan@webr3.org>
CC: <semantic-web@w3.org>
Hi Nathan!

I'm not quite sure now what you want to know here. If the question is 
which of the two terms "owl:complementOf" and "owl:datatypeComplementOf" 
is to be used between datatypes (or data ranges), then (in OWL 2 DL, at 
least) the answer is "owl:datatypeComplementOf"; the use of 
"owl:complementOf" is restricted to classes (and class expressions) and 
not allowed to be used between datatypes.

If you want to know what the different meanings of the two terms are, then:

   * ":C2 owl:complementOf :C1" means: class :C2 represnts all the 
/individuals/ in the /object domain/ (denoted by owl:Thing), which are 
not in :C1.

   * ":D2 owl:datatypeComplement :D1" means: datatype :D2 represents all 
the /datavalues/ in the /data domain/ (denoted by rdfs:Literal), which 
are not in :D1.

If you want to know, why a different term was introduced for the 
complement of datatypes in OWL 2, while on the other hand the existing 
terms "owl:equivalentClass", "owl:intersectionOf" and "owl:unionOf" were 
all reused for datatypes, then I can say that this has (ugly) technical 
reasons, which have to do with the relationship between the OWL 2 Direct 
Semantics and the OWL 2 RDF-Based Semantics (or OWL 2 Full). The 
complement of datatypes was meant, under the OWL 2 Direct Semantics, to 
be relative to the whole domain of datavalues (as denoted by 
rdfs:Literal), but under the OWL 2 RDF-Based Semantics, the term 
"owl:complementOf" was (already in OWL 1) defined to be the complement 
w.r.t. all individuals (owl:Thing). The relevant bit here is that under 
the OWL 2 Direct Semantics, the data domain and the object domain are 
strictly separated (disjoint sets), while under the OWL 2 RDF-Based 
Semantics, the object domain includes the data domain, just as in RDFS, 
where rdfs:Literal is a sub class of rdfs:Resource (which is equivalent 
to owl:Thing under the OWL 2 RDF-Based Semantics). By introducing the 
new term "owl:datatypeComplementOf", it became possible to specify the 
meaning of the datatype complement in both semantics of OWL 2 in the 
same way: relative to the data domain.

Best,
Michael

Am 13.07.2012 16:30, schrieb Nathan:
> Sigh, I'm doing it now too..
>
> I actually meant owl:complementOf (according to owl 2 syntax 7.3
> example) or owl:datatypeComplementOf (according to table 12 in [2])
>
> Sorry for the confusion!
>
> Nathan wrote:
>> Thanks Michael!
>>
>> Much appreciated and thanks for the fast clear response. One other
>> question whilst I'm here if you don't mind:
>>
>> Under [1] (Owl Syntax 7.4 Enumeration of Literals) the example has:
>>
>>   Functional-Style Syntax:
>>     DataOneOf( "Peter" "1"^^xsd:integer )
>>   RDF:
>>     _:x rdf:type rdfs:Datatype .
>>     _:x owl:oneOf ( "Peter" "1"^^xsd:integer ) .
>>
>> note: *owl:oneOf*
>>
>> However, under [2] (3.2.4 Parsing of Expressions - Table 12) it
>> clearly shows:
>>
>>   _:x rdf:type rdfs:Datatype .
>>   _:x owl:datatypeComplementOf y .
>>
>> So which is it, owl:oneOf or owl:datatypeComplementOf ?
>>
>> Many thanks as always,
>>
>> Nathan
>>
>> [1] http://www.w3.org/TR/owl2-syntax/#Enumeration_of_Literals
>> [2]
>> http://www.w3.org/TR/2009/REC-owl2-mapping-to-rdf-20091027/#Parsing_of_Expressions
>>
>>
>>
>> Michael Schneider wrote:
>>> [Hrmph, I found another error in my first post. So forget
>>> all my previous posts, here is complete rewrite with the
>>> errors being fixed.]
>>>
>>> Hi Nathan!
>>>
>>> In the context of datatypes and data ranges (including
>>> datatype restrictions, as you use them in your examples),
>>> the term "owl:equivalentClass" is used in the RDF syntax
>>> of OWL 2 for stating /datatype definitions/; see [1] for
>>> the specification of datatype definitions, and Table 16
>>> in [2] for the reverse RDF mapping from the RDF encoding
>>> of datatype definitions to their OWL 2 functional syntax
>>> counterparts.
>>>
>>> Further, from the last entry of Table 12 in [2], you can
>>> see that the RDF encoding of /datatype restrictions/ is
>>> only defined for blank nodes (as in your first example),
>>> so the mapping of datatype definitions does not apply if
>>> a URI is used instead (as in your second example).
>>>
>>> Hence, only the first of your two examples is syntactically
>>> valid in OWL 2 DL, and its meaning is, as you certainly
>>> intended, to define a name (URI) for the given datatype
>>> restriction.
>>>
>>> [1]
>>> <http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Datatype_Definitions>
>>>
>>> [2] <http://www.w3.org/TR/2009/REC-owl2-mapping-to-rdf-20091027/>
>>>
>>> Best,
>>> Michael
>>>
>>>> Am 13.07.2012 14:17, schrieb Nathan:
>>>>> Hi all,
>>>>>
>>>>> I'm looking to define a few Datatype's, and wondered why
>>>>> owl:equivalentClass is used for all complex types in the
>>>>> primer/documentation.
>>>>>
>>>>> For example what's the difference between:
>>>>>
>>>>> :personAge  owl:equivalentClass
>>>>>    [ rdf:type  rdfs:Datatype;
>>>>>      owl:onDatatype  xsd:integer;
>>>>>      owl:withRestrictions (
>>>>>       [ xsd:minInclusive  "0"^^xsd:integer ]
>>>>>       [ xsd:maxInclusive  "150"^^xsd:integer ]
>>>>>      )
>>>>>    ] .
>>>>>
>>>>> and:
>>>>>
>>>>> :personAge rdf:type  rdfs:Datatype;
>>>>>    owl:onDatatype  xsd:integer;
>>>>>    owl:withRestrictions (
>>>>>     [ xsd:minInclusive  "0"^^xsd:integer ]
>>>>>     [ xsd:maxInclusive  "150"^^xsd:integer ]
>>>>>    ) .
>>>>>
>>>>> Is the second example valid, any reasons not to do it, what am I
>>>>> missing
>>>>> here?
>>>>>
>>>>> TIA,
>>>>>
>>>>> Nathan
>>>>>
>>>>
>>>
>>
>>
>

-- 
.........................................................
Dipl.-Inform. Michael Schneider
Research Scientist, IPE / WIM

FZI Forschungszentrum Informatik
Haid-und-Neu-Str. 10–14
76131 Karlsruhe, Germany
Tel.: +49 721 9654-726
Fax: +49 721 9654-727

michael.schneider@fzi.de
www.fzi.de

.........................................................
Forschungszentrum Informatik (FZI) an der Universität Karlsruhe
Stiftung des bürgerlichen Rechts
Stiftung Az: 14-0563.1 Regierungspräsidium Karlsruhe
Vorstand: Dipl. Wi.-Ing. Michael Flor, Prof. Dr. Ralf Reussner,
Prof. Dr. Rudi Studer, Prof. Dr.-Ing. J. Marius Zöllner
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
.........................................................
Received on Friday, 13 July 2012 17:09:22 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:35 UTC