RE: DTTF: List Ontology test case

Jeremy,

taking your testcase

/////////////
List Ontology
Premise
_:a owl:first _:b .
_:r rdf:type owl:Restriction .
_:r owl:onProperty owl:first .
_:r owl:hasValue owl:Thing .

Conclusion
_:a rdf:type _:r .
\\\\\\\\\\\\\\\\\\

and taking one of our possible working assumptions
that first/rest statements are unasserted except
within the context of their own subject (which is making
the dereferencing approach working as well btw)
then I think we could have

/////////////
List Ontology
Premise
this owl:first _:b .
_:r rdf:type owl:Restriction .
_:r owl:onProperty owl:first .
_:r owl:hasValue owl:Thing .

Conclusion
<premisedocument> rdf:type _:r .
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

--
Jos






"Jeremy Carroll" <jjc@hplb.hpl.hp.com>@w3.org on 2002-04-29 11:25:16 PM

Sent by:    www-webont-wg-request@w3.org


To:    "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
cc:    <www-webont-wg@w3.org>
Subject:    RE: DTTF: List Ontology test case



> -----Original Message-----
> From: www-webont-wg-request@w3.org
> [mailto:www-webont-wg-request@w3.org]On Behalf Of Peter F.
> Patel-Schneider
> Sent: 27 April 2002 16:04
> To: jjc@hplb.hpl.hp.com
> Cc: www-webont-wg@w3.org
> Subject: Re: DTTF: List Ontology test case
>
>
> From: "Jeremy Carroll" <jjc@hplb.hpl.hp.com>
> Subject: DTTF: List Ontology test case
> Date: Thu, 25 Apr 2002 14:18:52 +0100
>
> > > I still need to send a message introducing the "List
> Ontology" test case.
> >
> > I think of daml:Lists as a vocabulary:
> >   daml:first
> >   daml:rest
> >   daml:List
> >   daml:nil
> >
> > and as an ontology for using this vocab that could be
> described in daml.
> >
> > e.g.
> >
> > (using rdf:aboutq with qnames instead of rdf:about with URIrefs!)
> >
> > <daml:Class rdf:about="#EmptyList">
> >    <daml:oneOf>
> >      <rdf:Description rdf:aboutq="daml:nil">
> >    </daml:oneOf>
> > </daml:Class>
> > <daml:Class rdf:aboutq="daml:List">
> >   <daml:unionOf rdf:parseType="daml:collection">
> >     <daml:Class rdf:about="#EmptyList"/>
> >     <daml:Class rdf:about="#NonEmptyList"/>
> >   </daml:unionOf>
> > </daml:Class>
> > <daml:ObjectProperty rdf:aboutq="daml:rest>
> >   <daml:range rdf:resourceq="daml:List"/>
> > </daml:ObjectProperty>
> > <daml:ObjectProperty rdf:aboutq="daml:first"/>
> > <daml:Class rdf:about="#NonEmptyList">
> >   <daml:sameClassAs>
> >     <daml:Restriction>
> >       <daml:onProperty rdf:resourceq="daml:rest"/>
> >       <daml:hasValue rdf:resourceq="daml:Thing"/>
> >     </daml:Restriction>
> >   </daml:sameClassAs>
> > </daml:Class>
> >
> > etc. etc.
> >
> > Ths test case is meant to capture that intent.
> > If daml:Lists are dark, then this sort of ontology has little formal
> > meaning.
> >
> > Jeremy
>
> Well, I don't think that you get want you need out of this sort of thing.
> In particular, making you are not capturing the fact that there
> can only be
> one daml:first and one daml:rest triple for any particular list head.  In
> fact, you can't capture this at all in DAML+OIL or FOWL.
>

Sorry I don't understand; you're going to have to spell it out for this
bear of little brain.


Suppose I replace daml by foo (a prefix for http://example.org/foo#)
(I am not sure whether you are saying my approach doesn't work because of
the self-reference - so I'll remove it).

I can capture the nil-terminated list of cons cells semantics in daml can't
I? [Detail below]
(I note I can't capture the syntactic restriction because of the lack of
unique naming...)

I guess I can't capture that the list has finite length.

Does daml:List have to have that syntactic restiction or would a semantic
restriction like this suffice?


Jeremy

Appendix: Sketch of Detail

I form three classes

foo:EmptyList = oneOf { foo:nil }
foo:NonEmptyList
foo:List = disjointUnion { foo:EmptyList, foo:NonEmptyList }

foo:rest has range foo:List

foo:first and foo:rest have cardinality 1 on foo:NonEmptyList and
cardinality 0 on foo:EmptyList.

(I might have missed something, but I think the idea is clear)

Received on Monday, 29 April 2002 19:09:48 UTC