Re: Question: DAML cardinality restrictions

This is not a naive question at all.

DAML+OIL does not require that you have the actual father, just that you
know that you have one.  This is very different from the situation in
databases.  To see why it is a good thing to be able to talk about your
father without knowing who he is, all you have to do is remember the
problems with (and endless debate about) null values.

DAML+OIL does not have a finite model restriction.  It is entirely possible
to have DAML+OIL models with an infinite number of objects that are not
datatype values.

[Yes, there are many world views where everyone having a father (even an
unknown one) is contrary to fact, but I don't think that this is the
question.]

Peter Patel-Schneider



From: David Allsopp <dallsopp@signal.dera.gov.uk>
Subject: Question: DAML cardinality restrictions
Date: Fri, 30 Mar 2001 10:05:41 +0100

> Dear all,
> 
> I hope you'll forgive a (probably very naive) question: In the DAML+OIL
> walkthrough, we have the following example of a cardinality restriction
> (plus another minCardinality restriction).
> 
>  <rdfs:subClassOf>
>     <daml:Restriction daml:cardinality="1">
>       <daml:onProperty rdf:resource="#hasFather"/>
>     </daml:Restriction>
>   </rdfs:subClassOf>
>   <rdfs:subClassOf>
>      <daml:Restriction>
>        <daml:onProperty rdf:resource="#shoesize"/>
>        <daml:minCardinality>1</daml:minCardinality>
>      </daml:Restriction>
>   </rdfs:subClassOf>
> 
> "This requires that any person must have exactly 1 father and at least
> one shoe size. Again, this is done by first using a Restriction to
> define an anonymous class (in this case the class of all things that
> have exactly one father), and then demanding that Person is a subClassOf
> this anonymous
> class (i.e., demanding that every Person satisfies this Restriction)."
> 
> My question is: how can such a restriction (cardinality=1) be enforced
> in practice, since we always deal with finite datasets - at some point
> our family tree will run out and we shall have an instance of Person
> without a corresponding Father instance.  Can one specify a
> 'placeholder' of some kind or is there some other solution? Or will such
> data always cause a warning when validated against the ontology/schema?
> 
> David Allsopp
> DERA Malvern
> UK
> 
> -- 
> /d{def}def/u{dup}d[0 -185 u 0 300 u]concat/q 5e-3 d/m{mul}d/z{A u m B u
> m}d/r{rlineto}d/X -2 q 1{d/Y -2 q 2{d/A 0 d/B 0 d 64 -1 1{/f exch d/B
> A/A z sub X add d B 2 m m Y add d z add 4 gt{exit}if/f 64 d}for f 64 div
> setgray X Y moveto 0 q neg u 0 0 q u 0 r r r r fill/Y}for/X}for showpage
> 

Received on Friday, 30 March 2001 06:22:01 UTC