- From: Ian Horrocks <horrocks@cs.man.ac.uk>
- Date: Thu, 17 Jul 2003 12:21:58 +0100
- To: Jim Hendler <hendler@cs.umd.edu>
- Cc: "Jonathan Borden" <jonathan@openhealth.org>, "webont" <www-webont-wg@w3.org>
On July 15, Jim Hendler writes:
> At 6:07 PM -0400 7/15/03, Jonathan Borden wrote:
> Jim, I think that all these disjoint statements and qualified
> cardinalities may very well be two heads of the same coin. If you are
> trying to say that a person may have at most one of a particular type
> of genetic disease, this seems to be a qualified cardinality. If we
> had QCRs you wouldn't be tempted to model this as a bazillion
> disjoints, eh? e.g. something akin to (and pardon my ad-hoc syntax)
>
> hair-genes := oneOf(red-hair-gene, brown-hair-gene, blond-hair-gene)
> patient has cardinality=1 hair-genes
>
> as opposed to saying
>
> AllDisjoint(RedHeads, Brunettes, Blondes)
> patient rdf:type RedHeads
This doesn't quite work because there is no guarantee that
red-hair-gene, brown-hair-gene and blond-hair-gene are distinct
individuals without adding a "DifferentIndividuals" axiom.
A related (and likely to be much more efficient) workaround that we
discussed in the past is to use a datatype property and suitable data
values as "keys" to guarantee uniqueness. E.g., for Jim's reptiles, we
could add:
SubClassOf(Reptile restriction(reptile-name cardinality(1)))
and for each reptile something like:
SubClassOf(Crocodile restriction(reptile-name value("Crocodile")))
Regards, Ian
>
> I'm a little lost though, are you saying that genes themselves, or
> genetic loci are _classes_? The relationship of a particular gene to
> a class of patient is as a _property restriction_ on the class of
> people who have a copy of the gene.
>
> Jonathan
>
>
> Jonathan - lets take a simpler example from outside medicine (so you
> have less advantage over me). Here's a use case that was sent in
> once earlier, and appears in our record [1] - If I had a list of all
> the different reptiles (for example), it would be very useful in
> classifying a zoological specimen to know that if it is a crocodile,
> it can't be an alligator, even though it might have many similar
> features. There may be reptiles as yet undiscovered, or there may be
> some in my database where I don't know a priori which class they are
> in, but if I do know the class and it is one I know is a particular
> kind of reptile, than it would sure be nice to help my classified
> avoid stupid mistakes. Thus, I'd like to say
>
> :Alligator owl:disjointWith :Crocodile
> :GilaMonster owl:disjointWith :Crocodile
> :GilaMonster owl:disjointWith :Alligator
> and etc -- pushing this example (and, by the way, it is one my group
> is working on in a new project) we would like to use a classifier to
> classify the reptiles in a large DB such as the one found at [2] --
> problem is there are
>
> The following number of reptile classes represented in [2]
>
> Amphisbaenia (amphisbaenians) 160
> Sauria (lizards) 4675
> Serpentes (snakes) 2940
> Testudines (turtles) 302
> Crocodylia (crocodiles) 23
> Rhynchocephalia (tuataras) 2
> Reptiles total 8101
>
> So in OWL, we would need 18 different statements to differentiate the
> 6 classes, but we would need a total of well over 14,000,000 disjoint
> statements if we really wanted to make these assertions explicitely
> -- writing this down as 6 lists with 4675 clauses in one of the lists
> is bad enough!
> -JH
> p.s. Note that in actual implementation we are using an extra-logical
> mechanism to deal with the reasoning because adding the 14M
> assertions would overwhelm any reasoner built to date -- but I think
> that is immaterial to the matter at hand -- our database scraper
> would like to note that the members of these classes are disjoint.
>
>
> [1] http://lists.w3.org/Archives/Public/www-webont-wg/2003May/0206.html
>
> [2] http://www.embl-heidelberg.de/~uetz/LivingReptiles.html
> --
> Professor James Hendler hendler@cs.umd.edu
> Director, Semantic Web and Agent Technologies 301-405-2696
> Maryland Information and Network Dynamics Lab. 301-405-6707 (Fax)
> Univ of Maryland, College Park, MD 20742 *** 240-277-3388 (Cell)
> http://www.cs.umd.edu/users/hendler *** NOTE CHANGED CELL NUMBER ***<!doctype html public "-//W3C//DTD W3 HTML//EN">
> <html><head><style type="text/css"><!--
> blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
> --></style><title>Re: Revisiting AllDisjoint (was Proposed (parital)
> res</title></head><body>
> <div>At 6:07 PM -0400 7/15/03, Jonathan Borden wrote:</div>
> <div>Jim, I think that all these disjoint statements and qualified
> cardinalities may very well be two heads of the same coin. If you are
> trying to say that a person may have at most one of a particular type
> of genetic disease, this seems to be a qualified cardinality. If we
> had QCRs you wouldn't be tempted to model this as a bazillion
> disjoints, eh? e.g. something akin to (and pardon my ad-hoc
> syntax)</div>
> <div> </div>
> <div>hair-genes := oneOf(red-hair-gene, brown-hair-gene,
> blond-hair-gene)</div>
> <div>patient has cardinality=1 hair-genes</div>
> <div> </div>
> <div>as opposed to saying</div>
> <div> </div>
> <div>AllDisjoint(RedHeads, Brunettes, Blondes)</div>
> <div>patient rdf:type RedHeads</div>
> <div> </div>
> <div>I'm a little lost though, are you saying that genes themselves,
> or genetic loci are _classes_? The relationship of a particular gene
> to a class of patient is as a _property restriction_ on the class of
> people who have a copy of the gene.</div>
> <div> </div>
> <div>Jonathan</div>
> <div><br></div>
> <div><br></div>
> <div>Jonathan - lets take a simpler example from outside medicine (so
> you have less advantage over me). Here's a use case that was
> sent in once earlier, and appears in our record [1] - If I had a list
> of all the different reptiles (for example), it would be very useful
> in classifying a zoological specimen to know that if it is a
> crocodile, it can't be an alligator, even though it might have many
> similar features. There may be reptiles as yet undiscovered, or
> there may be some in my database where I don't know a priori which
> class they are in, but if I do know the class and it is one I know is
> a particular kind of reptile, than it would sure be nice to help my
> classified avoid stupid mistakes. Thus, I'd like to say</div>
> <div><br></div>
> <div>:Alligator owl:disjointWith :Crocodile</div>
> <div>:GilaMonster owl:disjointWith :Crocodile</div>
> <div>:GilaMonster owl:disjointWith :Alligator</div>
> <div>and etc -- pushing this example (and, by the way, it is one my
> group is working on in a new project) we would like to use a
> classifier to classify the reptiles in a large DB such as the one
> found at [2] -- problem is there are</div>
> <div><br></div>
> <div>The following number of reptile classes represented in [2]</div>
> <div><br></div>
> <div>Amphisbaenia (amphisbaenians) 160</div>
> <div>Sauria (lizards) 4675</div>
> <div>Serpentes (snakes) 2940</div>
> <div>Testudines (turtles) 302</div>
> <div>Crocodylia (crocodiles) 23</div>
> <div>Rhynchocephalia (tuataras) 2</div>
> <div>Reptiles total 8101</div>
> <div><br></div>
> <div>So in OWL, we would need 18 different statements to differentiate
> the 6 classes, but we would need a total of well over 14,000,000
> disjoint statements if we really wanted to make these assertions
> explicitely -- writing this down as 6 lists with 4675 clauses in
> one of the lists is bad enough!</div>
> <div> -JH</div>
> <div>p.s. Note that in actual implementation we are using an
> extra-logical mechanism to deal with the reasoning because adding the
> 14M assertions would overwhelm any reasoner built to date -- but I
> think that is immaterial to the matter at hand -- our database scraper
> would like to note that the members of these classes are
> disjoint.</div>
> <div><br></div>
> <div><br></div>
> <div>[1]
> http://lists.w3.org/Archives/Public/www-webont-wg/2003May/0206.html</div
> >
> <div><br></div>
> <div>[2] http://www.embl-heidelberg.de/~uetz/LivingReptiles.html</div>
> <x-sigsep><pre>--
> </pre></x-sigsep>
> <div>Professor James Hendler<x-tab>
> </x-tab><x-tab>
> </x-tab><x-tab>
> </x-tab><x-tab> </x-tab>
> hendler@cs.umd.edu<br>
> Director, Semantic Web and Agent
> Technologies<x-tab> </x-tab>
> 301-405-2696<br>
> Maryland Information and Network Dynamics Lab.<x-tab>
> </x-tab> 301-405-6707 (Fax)<br>
> Univ of Maryland, College Park, MD 20742<x-tab>
> </x-tab> *** 240-277-3388 (Cell)<br>
> http://www.cs.umd.edu/users/hendler ***
> NOTE CHANGED CELL NUMBER ***</div>
> </body>
> </html>
Received on Thursday, 17 July 2003 07:23:01 UTC