How do I do this?

From: Jim Hendler (
Date: 05/22/01

  I want to define something with a property that is a collection of a 
set of entities in some class - basically like:

Proof :a class.

ProofStep :a class.

ProofBody :a property;
  range Proof;         (or is that domain :->)
  domain [
    daml: Collection
  [Thing :a ProofStep ]]

meaning a Proof has a property of its ProofBody, which is a 
Collection of things, all of type ProofStep.

Above is clearly not how to do it syntactically, but I couldn't find 
an example in our docs, and the only thing it says about using 
collection is:

>DAML+OIL needs to represent unordered collections of items (also 
>known as bags, or multisets) in a number of
>constructions, such as intersectionOf, unionOf, oneOf, 
>disjointUnionOf and Disjoint. DAML+OIL exploits the
>rdf:parseType attribute to extend the syntax for RDF with a 
>convenient notation for such collections. Whenever an
>element has the rdf:parseType attribute with value 
>"daml:collection", the enclosed elements must be interpreted as
>elements in a list structure, constructed using the elements List, 
>first, rest and nil.

which doesn't include this example.  I tried to figure out how to do 
this with cardinality, but short of saying something like "At most 
1000 ProofSteps" I couldn't figure it out - I can say min, max or 
specific cardinality, but don't seem able to say "undetermined 

I'm sure I'm missing something obvious, but the docs don't give an 
example of this usage, and I couldn't find a good example anywhere.

Dr. James Hendler
Chief Scientist, DARPA/ISO	703-696-2238 (phone)
3701 N. Fairfax Dr.		703-696-2201 (Fax)
Arlington, VA 22203

This archive was generated by hypermail 2.1.4 : 04/02/02 EST