Re: more thoughts on daml+oil.daml

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