- From: Michael Schneider <schneid@fzi.de>
- Date: Tue, 21 Jul 2009 12:32:33 +0200
- To: "Ian Horrocks" <ian.horrocks@comlab.ox.ac.uk>
- Cc: "W3C OWL Working Group" <public-owl-wg@w3.org>
- Message-ID: <0EF30CAA69519C4CB91D01481AEA06A001546585@judith.fzi.de>
Hi! A few days ago I have started working on my list of axiomatic triples for the RDF-Based Semantics, but then decided to additionally work on owl(2).owl, at least to see whether some reasonable alignment/relationship is possible. So I have analyzed owl.owl for its common and specific features, see below for the result (boring list, I know, but better than trying to understand owl.owl from scratch, I guess. :)) Based on this analysis, I have created a proposal on (a) how an owl2.owl could look like, and (b) how this would be related to my axiomatic triples. See below! Comments welcome! Cheers, Michael == Analysis of owl.owl == These are the different features of owl.owl: 0) General: 0.1) Ontology Header 0.1.1) imports RDFS ontology 0.1.2) builds rdfs:isDefinedBy relations to OWL Semantics spec, the OWL testcases, and the OWL Features. 0.1.3) States in a comment that importing this ontology will render ontology to be OWL Full. 0.1.4) Has owl:versionInfo with date of recommendation (2004-02-10). 0.2) There is a rdfs:label for every definition of an OWL term. 1) Covered Vocabulary Terms: 1.1) Provides schema definitions for all vocabulary terms in the OWL namespace (classes and properties). 1.2) _No_ re-definitions for RDF/RDFS vocabulary terms. 1.3) _No_ definitions for the mandatory datatypes of OWL (xsd:string, xsd:integer). 2) Expressed Semantic Relationships: 2.1) Definition for classes: 2.1.1) always provides rdf:type axiom: generally rdfs:Class, but owl:Class of owl:Nothing, owl:Thing 2.1.2) generally provides rdfs:subClassOf axiom to upper class. 2.1.2.1) The subclass axiom is omitted whenever sub class of rdfs:Resource. 2.2.2.2) The super class of the "syntactic category" owl:Class is rdfs:Class. 2.2.2.3) _No_ explicit superclass is defined for owl:DataRange. 2.2.2.4) The super class of owl:ObjectProperty, owl:DatatypeProperty, owl:OntologyProperty and owl:AnnotationProperty is rdf:Property. 2.2.2.5) The superclass of owl:FunctionalProperty is rdf:Property, while for owl:SymmetricProperty it is owl:ObjectProperty. 2.1.3) special: definition of owl:Nothing and owl:Thing use OWL terms owl:complementOf and owl:unionOf to express additional semantics 2.2) For properties: 2.2.1) always provides rdf:type axiom: generally rdf:Property, but also owl:AnnotationProperty and owl:OntologyProperty. 2.2.1.1) For ontology properties, the typing triple for owl:OntologyProperty is in addition to rdf:Property. 2.2.1.2) Only for owl:versionInfo there is an additional typing triple for owl:AnnotationProperty in *addition* to rdf:Property (elsewhere there is only a typing triple for owl:AnnotationProperty). 2.2.2) generally provides rdfs:domain and rdfs:range axioms. 2.2.2.1) The range (domain) axiom is omitted whenever the range (or domain) is rdfs:Resource. 2.2.2.2) If the domain or range is the class of classes, then it is sometimes it is rdfs:Class (e.g. owl:someValuesFrom), and sometimes it is owl:Class (e.g. owl:disjointWith). 2.2.2.3) If the domain or range is the class of properties, then it is alway rdf:Property, never owl:ObjectProperty (e.g. owl:onProperty). 2.2.2.4) For ontology properties the domain and range are both owl:Ontology. 2.2.2.5) For multi-argument constructs s.a. owl:unionOf the range is rdf:List. 2.2.3) special: owl:equivalentClass specified as sub property of rdfs:subClassOf. analog for owl:equivalentProperty. 3) Missing OWL Full Semantic Relationships: 3.1) _No_ equivalences are defined for: 3.1.1) owl:Thing and rdfs:Resource 3.1.2) owl:Class and rdfs:Class (but the former is explicitly defined to be a subclass of the latter) 3.1.3) owl:ObjectProperty and rdf:Property (but the former is explicitly defined to be a subclass of the latter) 3.2) _No_ additional hierarchy relationships are defined for: 3.2.1) owl:DatatypeProperty and owl:ObjectProperty 3.2.2) owl:OntologyProperty and owl:ObjectProperty 3.2.3) owl:AnnotationProperty and owl:ObjectProperty 3.2.4) owl:DataRange and owl:Class == Discussion == For owl2.owl: I believe we should be more consequently go for a "clean" RDF Schema. There are a few strange things happening in owl.owl that I think should be changed/dropped: * The use of OWL axioms (owl:complementOf, (2.1.3)) to "define" owl:Thing and owl:Nothing. In fact, the OWL terms used there are highly underspecified and do not really define what they are intended to define. Also, there are only very few uses of this, why not elsewhere? Why at all? * Similar, terms s.a. owl:equivalentClass should not be "defined" with other terms via a sub property relationship (2.2.3). * I would propose to keep with RDFS terms as often as possible. For example, there are cases where the super class or domain/range of some defined OWL class term is owl:Class, and other cases where it is rdfs:Class. Most of these terms are not really owl:Classes, so I would suggest to generally use rdfs:Class. The only exception is owl:Thing, owl:Nothing, (top|bottom)(Object|Data)Property, and the annotation properties, since these are "real" classes and properties even in DL. Beyond the RDFS-ishness that cannot be avoided, there shouldn't be any additional Full-ishnesses like the equivalence of owl:Class with rdfs:Class. This would then just be as in owl.owl (3). But maybe someone else has another opinion? owl.owl omits the treatment datatypes, and this is probably a reasonable idea in our case as well, given that we have >30 of them. :) Maybe, for completeness, we should always give the full specification with datatype and subclass for classes, and with type, domain and range for properties, even if the type, domain or range is rdfs:Resource? It's often omitted in owl.owl, which I found more confusing then helpful. What I have in mind will be slightly incompatible with owl.owl, but will make things more regular (while there's semantically no difference). And I don't think that strict compatibility with owl.owl is an issue here. Ok, here is my proposal, for both owl2.owl and the axiomatic triples in the RDF-Based Semantics: == Proposal == === owl2.owl === * We reuse/update the content of the ontology header (0.1), but we need to think a bit about the references made by rdfs:isDefinedBy statements. * We use labels for each definitions, as in (0.2). * There will only be definitions for the OWL 2 vocabulary, i.e. ** no repetitions of RDF(S) vocabulary (1.2) *** exception: the RDFS annotation properties, since they need to be defined as annotation properties ** no definitions for datatypes, not even from the OWL namespace (1.3) ** no definitions for facets * Classes will generally have type rdfs:Class, and a subclass, being one of the RDF(S) classes. ** Exceptions: owl:Thing, owl:Nothing *** Type is owl:Class *** Superclass of owl:Nothing is owl:Thing *** No superclass is given for owl:Thing * Properties will generally have type rdf:Property, and domain and range being one of the RDF(S) classes. ** Exceptions: (top|bottom)(Object|Data)Property *** Type of (top|bottom)ObjectProperty is owl:ObjectProperty. *** Type of (top|bottom)DataProperty is owl:DatatypeProperty. *** Domain of (top|bottom)(Object|Data)Property is owl:Thing. *** Range of (top|bottom)ObjectProperty is owl:Thing . *** Range of (top|bottom)DataProperty is rdfs:Literal . ** Exception: Property restriction vocabulary terms have domain owl:Restriction (as in owl.owl). ** Exception: Multi-argument constructs, such as owl:unionOf, have range rdf:List (as in owl.owl). ** Exception: Ontology properties have type owl:OntologyProperty, and domain/range owl:Ontology (as in owl.owl). *** we omit the additional (redundant) rdf:type rdf:Property triple. ** Exception: Annotation properties have type owl:AnnotationProperty (as in owl.owl). * No kind of axioms beyond this schema: ** no "pseudo" OWL axioms, deviating from owl.owl (2.1.3) ** no definition of OWL properties in terms of RDF(S) properties, deviating from owl.owl (2.2.3) ** no OWL Full equivalences, following owl.owl (3.1) ** no OWL Full hierarchy relationships, following owl.owl (3.2) === Axiomatic Triples in the RDF-Based Semantics === Differences to owl.owl: * There will be no use of RDF/XML, but single triples are written, as throughout the document. * There will be no ontology header, only the relevant axiomatic triples. * There will be no labels. * There will be additional triples for the "missing OWL Full Semantics Relationships" (3). * There will be additional typing and subclass triples for the datatypes of OWL 2 (1.3). * There will be additional typing and domain/range triples for the facets of OWL 2. The additional stuff will be separated editorially in a form that allows for easy selection of the owl2.owl part by copy and paste, for those who care. === END === >-----Original Message----- >From: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org] >On Behalf Of Ian Horrocks >Sent: Tuesday, July 21, 2009 7:47 AM >To: W3C OWL Working Group >Subject: OWL dot OWL file > >I believe that what we were referring to in our discussion last week, >and what Holger is asking for [1], is what in OWL 1 was called the >"RDF Schema of OWL" [2]. As is explained in Section 1.7 [3]: > >"This schema provides information about the OWL vocabulary that could >be a useful reference point for ontology builders and tool >developers. The restrictions provided by the schema on the OWL >classes and properties are informative and not complete. Also, this >schema does not make distinctions between OWL Full, OWL DL and OWL >Lite." > >The idea is to use RDFS to describe the structure of OWL syntax -- >i.e., it aims to be a kind of "meta-schema". For example, it >specifies the range and domain of the properties used in the OWL >syntax. Unfortunately, RDFS isn't even close to being capable of >describing the structure completely, so the schema is highly >incomplete, and so of limited utility. However, I don't immediately >see the harm in updating it slightly for OWL 2 given that we have had >more than one request. I believe that this is what was proposed by >several people during the teleconf. Presumably we would arrange for >this updated version to be served from [4]? > >Note that this shouldn't be confused with Michael's suggestion to >augment the RDF-based semantics with a set of axiomatic triples >(which is, IMHO, a reasonable but completely unrelated proposal). > >Regards, >Ian > >[1] http://lists.w3.org/Archives/Public/public-owl-comments/2009Jul/ >0007.html >[2] http://www.w3.org/TR/owl-ref/#appB >[3] http://www.w3.org/TR/owl-ref/#AppendixList >[4] http://www.w3.org/2002/07/owl# -- Dipl.-Inform. Michael Schneider Research Scientist, Dept. Information Process Engineering (IPE) Tel : +49-721-9654-726 Fax : +49-721-9654-727 Email: michael.schneider@fzi.de WWW : http://www.fzi.de/michael.schneider ======================================================================= FZI Forschungszentrum Informatik an der Universität Karlsruhe Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe Tel.: +49-721-9654-0, Fax: +49-721-9654-959 Stiftung des bürgerlichen Rechts, Az 14-0563.1, RP Karlsruhe Vorstand: Prof. Dr.-Ing. Rüdiger Dillmann, Dipl. Wi.-Ing. Michael Flor, Prof. Dr. Dr. h.c. Wolffried Stucky, Prof. Dr. Rudi Studer Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus =======================================================================
Received on Tuesday, 21 July 2009 10:33:15 UTC