From: Peter F. Patel-Schneider ([email protected])
Date: 10/03/01
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: <!-- List terminology. --> <rdfs:Class rdf:ID="List"> <rdfs:subClassOf> <#Restriction> <#onProperty rdf:resource="#rest"> <#toClass rdf:resource="#List"> </#Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <#Restriction #maxCardinality="1"> <#onProperty rdf:resource="#rest"> </#Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <#Restriction #maxCardinality="1"> <#onProperty rdf:resource="#first"> </#Restriction> </rdfs:subClassOf> </rdfs:Class> <rdfs: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> </rdfs:Class> <Empty rdf:ID="nil"> </Empty> We could also define typed lists for things like unionOf. <daml:Class rdf:ID="ClassList"> <rdfs:subClassOf rdf:resource="#List"> <daml:intersectionOf> <daml:List> <daml:first> <daml:Restriction> <daml:onProperty rdf:resource="#first"> <daml:toClass rdf:resource="#Class"> </daml:Restriction> </daml:first> <daml:rest> <daml:List> <daml:first> <daml:Restriction> <daml:onProperty rdf:resource="#rest"> <daml:toClass rdf:resource="#ClassList"> </daml:Restriction> </daml:first> <daml:rest rdf:resource="#nil"> </daml:List> </daml:rest> </daml:List> </daml:intersectionOf> </daml:Class> <rdf:Property rdf:ID="unionOf"> <rdfs:domain rdf:resource="#Class"/> <rdfs:range rdf:resource="#ClassList"/> </rdf:Property> Comments? peter
This archive was generated by hypermail 2.1.4 : 04/02/02 EST