From: Peter F. Patel-Schneider (pfps@research.bell-labs.com)
Date: 10/09/01
From: Ian Horrocks <horrocks@cs.man.ac.uk> Subject: Re: more thoughts on daml+oil.daml Date: Tue, 9 Oct 2001 00:45:37 -0400 > On October 3, Peter F. Patel-Schneider writes: > > It occurs to me that we could include more of the ``semantics'' of DAML+OIL > > in daml+oil.daml. For example, we could do more with lists, perhaps > > something like: > > I was under the impression that we had decided NOT to do this kind of > thing, because it suggests some meaning that is not supported by the > semantics. For example, in the case of lists, the restrictions are > meaningless unless "rest" is a daml:ObjectProperty. Even if rest were > a daml:ObjectProperty, then specifying a list with multiple "rest" > lists would not (necessarily) lead to an inconsistency, but to the > inference that all these lists are "equivalent" (their elements are to > be interpreted as the same resources). > > What we really want to say is that lists should have a certain > structure, and that anything else is just an error. I don't think we > should be fostering the common misconception that this is what is > expressed by a DAML+OIL restriction. > > Ian How about the following? My goal is to see if it is possible to capture more of the semantics of DAML+OIL in daml+oil.daml without giving the impression that there is more there than there really is. The idea is that daml+oil.daml should still be valid RDF Schema, and loose nothing that was there before, but that it should also have a DAML+OIL reading. Note that there are a couple of substantive changes hidden in this new version of daml+oil.daml! peter <!-- $Revision: 1.8 $ of $Date: 2001/10/09 $. --> <!-- This is the official RDFS definition of the DAML+OIL constructs. It contains no labels or comments, to reduce the amount of information needed to define DAML+OIL. --> <rdf:RDF xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:daml="http://www.daml.org/2001/03/daml+oil#" xmlns ="http://www.daml.org/2001/03/daml+oil#" > <rdf:Description rdf:about=""> <versionInfo>$Id: daml+oil.daml,v 1.8 2001/10/09 pfps Exp $</versionInfo> <imports rdf:resource="http://www.w3.org/2000/01/rdf-schema" /> </rdf:Description> <!-- (meta) classes of "object" and datatype classes --> <Class rdf:ID="Class"> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" /> </Class> <Class rdf:ID="Datatype"> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" /> </Class> <!-- Pre-defined thing/nothing most/least-general (object) classes. --> <Class rdf:ID="Thing"> <sameClassAs rdf:resource="rdfs:Resource" /> <unionOf> <List> <first rdf:resource="#Nothing" /> <rest> <List> <first> <Class> <complementOf rdf:resource="#Nothing" /> </rdfs:Class> </first> <rest rdf:resource="#nil" /> </List> </rest> </List> </unionOf> </Class> <Class rdf:ID="Nothing"> <complementOf rdf:resource="#Thing" /> </Class> <!-- Terms for equivalence and difference. --> <ObjectProperty rdf:ID="equivalentTo"> </ObjectProperty> <ObjectProperty rdf:ID="sameClassAs"> <rdfs:subPropertyOf rdf:resource="#equivalentTo" /> <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf" /> <rdfs:domain rdf:resource="#Class" /> <rdfs:range rdf:resource="#Class" /> </ObjectProperty> <ObjectProperty rdf:ID="samePropertyAs"> <rdfs:subPropertyOf rdf:resource="#equivalentTo" /> <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#subPropertyOf" /> </ObjectProperty> <ObjectProperty rdf:ID="sameIndividualAs"> <rdfs:subPropertyOf rdf:resource="#equivalentTo" /> <rdfs:domain rdf:resource="#Thing" /> <rdfs:range rdf:resource="#Thing" /> </ObjectProperty> <ObjectProperty rdf:ID="disjointWith"> <rdfs:domain rdf:resource="#Class" /> <rdfs:range rdf:resource="#Class" /> </ObjectProperty> <ObjectProperty rdf:ID="differentIndividualFrom"> <rdfs:domain rdf:resource="#Thing" /> <rdfs:range rdf:resource="#Thing" /> </ObjectProperty> <!-- Terms for building classes from other classes. --> <Class rdf:ID="ClassList"> <rdfs:subClassOf rdf:resource="#List"> <intersectionOf> <List> <first> <Restriction> <onProperty rdf:resource="#first"> <toClass rdf:resource="#Class"> </Restriction> </first> <rest> <List> <first> <Restriction> <onProperty rdf:resource="#rest"> <toClass rdf:resource="#ClassList"> </Restriction> </first> <rest rdf:resource="#nil"> </List> </rest> </List> </intersectionOf> </Class> <ObjectProperty rdf:ID="unionOf"> <rdfs:domain rdf:resource="#Class" /> <rdfs:range rdf:resource="#ClassList" /> </ObjectProperty> <ObjectProperty rdf:ID="disjointUnionOf"> <rdfs:domain rdf:resource="#Class" /> <rdfs:range rdf:resource="#ClassList" /> </ObjectProperty> <ObjectProperty rdf:ID="intersectionOf"> <rdfs:domain rdf:resource="#Class" /> <rdfs:range rdf:resource="#ClassList" /> </ObjectProperty> <ObjectProperty rdf:ID="complementOf"> <rdfs:domain rdf:resource="#Class" /> <rdfs:range rdf:resource="#Class" /> </ObjectProperty> <!-- Term for building classes by enumerating their elements --> <ObjectProperty rdf:ID="oneOf"> <rdfs:domain rdf:resource="#Class" /> <rdfs:range rdf:resource="#List" /> </ObjectProperty> <!-- Terms for building classes by restricting their properties. --> <Class rdf:ID="Restriction"> <rdfs:subClassOf rdf:resource="#Class" /> </Class> <ObjectProperty rdf:ID="onProperty"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property" /> </ObjectProperty> <ObjectProperty rdf:ID="toClass"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" /> </ObjectProperty> <rdf:Property rdf:ID="hasValue"> <rdfs:domain rdf:resource="#Restriction" /> </rdf:Property> <ObjectProperty rdf:ID="hasClass"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" /> </ObjectProperty> <!-- Note that cardinality restrictions on transitive properties, or --> <!-- properties with transitive sub-properties, compromise decidability. --> <DatatypeProperty rdf:ID="minCardinality"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger" /> </DatatypeProperty> <DatatypeProperty rdf:ID="maxCardinality"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger" /> </DatatypeProperty> <DatatypeProperty rdf:ID="cardinality"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger" /> </DatatypeProperty> <ObjectProperty rdf:ID="hasClassQ"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" /> </ObjectProperty> <DatatypeProperty rdf:ID="minCardinalityQ"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger" /> </DatatypeProperty> <DatatypeProperty rdf:ID="maxCardinalityQ"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger" /> </DatatypeProperty> <DatatypeProperty rdf:ID="cardinalityQ"> <rdfs:domain rdf:resource="#Restriction" /> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger" /> </DatatypeProperty> <!-- Classes and Properties for different kinds of Property --> <Class rdf:ID="ObjectProperty"> <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property" /> </Class> <Class rdf:ID="DatatypeProperty"> <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property" /> </Class> <!-- Terms for building and limiting Properties --> <ObjectProperty rdf:ID="inverseOf"> <rdfs:domain rdf:resource="#ObjectProperty" /> <rdfs:range rdf:resource="#ObjectProperty" /> </ObjectProperty> <Class rdf:ID="TransitiveProperty"> <rdfs:subClassOf rdf:resource="#ObjectProperty" /> </Class> <Class rdf:ID="UniqueProperty"> <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property" /> </Class> <Class rdf:ID="UnambiguousProperty"> <rdfs:subClassOf rdf:resource="#ObjectProperty" /> </Class> <!-- List terminology. --> <Class rdf:ID="List"> <rdfs:subClassOf> <Restriction #maxCardinality="1"> <onProperty rdf:resource="#first"> </Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <Restriction #maxCardinality="1"> <onProperty rdf:resource="#rest"> </Restriction> </rdfs:subClassOf> </Class> <ObjectProperty rdf:ID="first"> <rdfs:domain rdf:resource="#List" /> <rdfs:range rdf:resource="#Thing" /> </ObjectProperty> <ObjectProperty rdf:ID="rest"> <rdfs:domain rdf:resource="#List" /> <rdfs:range rdf:resource="#List" /> </ObjectProperty> <Class rdf:ID="Empty"> <rdfs:subClassOf rdf:resource="List"> <rdfs:subClassOf> <Restriction #cardinality="0"> <onProperty rdf:resource="#rest"> </Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <Restriction #cardinality="0"> <onProperty rdf:resource="#first"> </Restriction> </rdfs:subClassOf> </Class> <Empty rdf:ID="nil"> </Empty> <!-- A class for ontologies themselves... --> <Class rdf:ID="Ontology"> </Class> <rdf:Property rdf:ID="versionInfo"> </rdf:Property> <!-- Importing, i.e. assertion by reference --> <rdf:Property rdf:ID="imports"> </rdf:Property> </rdf:RDF>
This archive was generated by hypermail 2.1.4 : 04/02/02 EST