Still the animal ontology, here we add some restictions on the classes.
<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>
"Animal" can have only one value for "hasMother",PDDL fact and two values for "hasParent".PDDL fact
<daml:Class rdf:ID="Animal">
<daml:subClassOf>
<daml:Restriction>
<daml:onProperty rdf:resource="#hasMother"/>
<daml:cardinality>1</daml:cardinality>
</daml:Restriction>
</daml:subClassOf>
<daml:subClassOf>
<daml:Restriction cardinality="2">
<daml:onProperty rdf:resource="#hasParent"/>
</daml:Restriction>
</daml:subClassOf>
</daml:Class>
"Person" can have at most one value for "hasSpouse"PDDL fact
<daml:Class rdf:ID="Person">
<rdfs:subClassOf rdf:resource="#Animal"/>
<daml:subclassOf>
<daml:Restriction maxCardinality="1">
<daml:onProperty rdf:resource="#hasSpouse"/>
</daml:Restriction>
</daml:subclassOf>
</daml:Class>
"Person" can have at most one value of Class "FullTimeOccupation" for Property "hasOccupation"PDDL fact
<daml:Class rdf:about="#Person">
<daml:subClassOf>
<daml:Restriction maxCardinalityQ="1">
<daml:onProperty rdf:resource="#hasOccupation"/>
<daml:hasClassQ rdf:resource="#FullTimeOccupation"/>
</daml:Restriction>
</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="FullTimeOccupation">
</daml:Class>
<daml:ObjectProperty rdf:ID="hasParent">
<rdfs:domain rdf:resource="#Animal"/>
<rdfs:range rdf:resource="#Animal"/>
</daml:ObjectProperty>
<daml:UniqueProperty rdf:ID="hasMother">
<rdfs:subPropertyOf rdf:resource="hasParent"/>
<rdfs:domain rdf:resource="#Animal"/>
<rdfs:range rdf:resource="#Female"/>
</daml:UniqueProperty>
<daml:ObjectProperty rdf:ID="hasSpouse">
<rdfs:domain rdf:resource="#Animal"/>
<rdfs:range rdf:resource="#Animal"/>
</daml:ObjectProperty>
<daml:ObjectProperty rdf:ID="hasOccupation">
<rdfs:domain rdf:resource="#Person"/>
</daml:ObjectProperty>
</rdf:RDF>
Translated PDDL version of the above DAML ontology
(define (domain animal-ont)
)