From: Peter F. Patel-Schneider (pfps@research.bell-labs.com)
Date: 10/09/01
The whole point would be to make it all work out, if possible. (I may have missed the requirement that rest be a daml:ObjectProperty.) In any case, I've put this on the back burner, a bit, instead concentrating on the ``friendly'' discussion with Pat. peter 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 > > > > > > <!-- 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