RE: OWL dot OWL file

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