- From: Michael Schneider <schneid@fzi.de>
- Date: Fri, 13 Jul 2012 19:08:57 +0200
- 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