W3C home > Mailing lists > Public > www-webont-wg@w3.org > July 2003

Re: Revisiting AllDisjoint (was Proposed (parital) response to Ken Laskey and questions for WG)

From: Ian Horrocks <horrocks@cs.man.ac.uk>
Date: Thu, 17 Jul 2003 12:21:58 +0100
Message-ID: <16150.34518.867127.747811@merlin.horrocks.net>
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&nbsp;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>&nbsp;</div>
> <div>hair-genes&nbsp;:=&nbsp;oneOf(red-hair-gene, brown-hair-gene,
> blond-hair-gene)</div>
> <div>patient has cardinality=1 hair-genes</div>
> <div>&nbsp;</div>
> <div>as opposed to saying</div>
> <div>&nbsp;</div>
> <div>AllDisjoint(RedHeads, Brunettes, Blondes)</div>
> <div>patient rdf:type RedHeads</div>
> <div>&nbsp;</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>&nbsp;</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).&nbsp; 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.&nbsp; 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.&nbsp; 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)&nbsp;&nbsp; 160</div>
> <div>Sauria (lizards)&nbsp;&nbsp; 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&nbsp; -- writing this down as 6 lists with 4675 clauses in
> one of the lists is bad enough!</div>
> <div>&nbsp;-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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> </x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> </x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>&nbsp;
> hendler@cs.umd.edu<br>
> Director, Semantic Web and Agent
> Technologies<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>&nbsp;
> 301-405-2696<br>
> Maryland Information and Network Dynamics Lab.<x-tab>&nbsp;&nbsp;&nbsp;
> </x-tab>&nbsp; 301-405-6707 (Fax)<br>
> Univ of Maryland, College Park, MD 20742<x-tab>&nbsp;&nbsp;&nbsp;
> </x-tab>&nbsp; *** 240-277-3388 (Cell)<br>
> http://www.cs.umd.edu/users/hendler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ***
> NOTE CHANGED CELL NUMBER ***</div>
> </body>
> </html>
Received on Thursday, 17 July 2003 07:23:01 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:01 GMT