A DAML ontology in which Classes have multiple subClassOf relations, and Properties have multiple domains or ranges.
<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/2000/10/daml-ont#"
xmlns:xsd ="http://www.w3.org/2000/10/XMLSchema#"
xmlns:dex ="http://www.daml.org/2001/03/daml+oil-ex#"
xmlns:exd ="http://www.daml.org/2001/03/daml+oil-ex-dt#"
xmlns ="http://www.daml.org/2001/03/daml+oil-ex#"
>
<daml:Ontology rdf:about="">
<daml:versionInfo>$Id: daml+oil-ex.daml,v 1.9 2001/05/03 16:38:38 mdean Exp $</daml:versionInfo>
<rdfs:comment>
An example ontology, with data types taken from XML Schema
</rdfs:comment>
<daml:imports rdf:resource="http://www.daml.org/2000/10/daml-ont"/>
</daml:Ontology>
<daml:Class rdf:ID="Animal">
</daml:subclassOf>
</daml:Class>
<daml:Class rdf:ID="Male">
<rdfs:subClassOf rdf:resource="#Animal"/>
</daml:Class>
<daml:Class rdf:ID="Female">
<rdfs:subClassOf rdf:resource="#Animal"/>
</daml:Class>
<daml:Class rdf:ID="Man">
<rdfs:subClassOf rdf:resource="#Male"/>
</daml:Class>
<daml:Class rdf:ID="Woman">
<rdfs:subClassOf rdf:resource="#Female"/>
</daml:Class>
<daml:Class rdf:ID="Person">
<rdfs:subClassOf rdf:resource="Animal"/>
</daml:Class>
<daml:Class rdf:ID="Student">
<rdfs:subClassOf rdf:resource="Person"/>
</daml:Class>
<daml:Class rdf:ID="Teenage">
<rdfs:subClassOf rdf:resource="Person"/>
</daml:Class>
"HighSchoolStudent" is the sub class of both "Student" and "Teenage", which two are not sub class of each other. So these three are all defined as unary predicates.PDDL predicateAnd new facts are added.PDDL facts
<daml:Class rdf:ID="HighSchoolStudent">
<rdfs:subClassOf rdf:resource="Student"/>
<rdfs:subClassOf rdf:resource="Teenage"/>
</daml:Class>
<daml:Class rdf:ID="Bachelor">
<rdfs:subClassOf rdf:resource="Male"/>
</daml:Class>
<daml:Class rdf:ID="UnmarriedMan">
<rdfs:subClassOf rdf:resource="Man"/>
</daml:Class>
"hasBoyfriend" has both "Bachelor" and "UnmarriedMan" as its ranges. Since these two Classes are not sub class of each other, unary predicates PDDL predicate and facts PDDL factare introdued into the translated PDDL file.
<daml:ObjectProperty rdf:ID="hasBoyfriend">
<rdfs:range rdf:resource="#Bachelor"/>
<rdfs:range rdf:resource="#UnmarriedMan"/>
</daml:ObjectProperty>
"isBoyfriend" has both "Bachelor" and "UnmarriedMan" as its domains. Since these two Classes are not sub class of each other, unary predicates PDDL predicate and facts PDDL factare introdued into the translated PDDL file.
<daml:ObjectProperty rdf:ID="isBoyfriend">
<rdfs:domain rdf:resource="#Bachelor"/>
<rdfs:domain rdf:resource="#UnmarriedMan"/>
</daml:ObjectProperty>
</rdf:RDF>
Translated PDDL version of the above DAML ontology
(define (domain animal-ont)
)
)