- From: Alistair Miles <alimanfoo@googlemail.com>
- Date: Tue, 1 Feb 2011 17:26:14 +0000
- To: Simon Spero <ses@unc.edu>
- Cc: Stella Dextre Clarke <stella@lukehouse.org>, SKOS <public-esw-thes@w3.org>, Antoine Isaac <aisaac@few.vu.nl>
Some very clever use of OWL, nice! Cheers, Alistair On Fri, Jan 28, 2011 at 02:22:21PM -0500, Simon Spero wrote: > On Fri, Jan 28, 2011 at 11:53 AM, Stella Dextre Clarke <stella@lukehouse.org > > wrote: > > > This sounds to me like either a red herring or a sledgehammer to crack a > > nut. If I understand the original proposition correctly, during a mapping > > exercise a housekeeping device is needed to keep track of what concepts have > > been dealt with, and which ones still await investigation. In the old days I > > used to print out a simple list of all the concepts to be mapped, work > > systematically through them and tick them off in pencil when they were done > > (whether or not a valid mapping turned out to be feasible). > > > > It is easy to deal with the issue false positives without making any changes > to SKOS; OWL allows for negative property assertions (explicitly stating > that a relationship does not hold). For example, if there are two Concepts , > *A* and *B , *and you want to explicitly record the fact that *A *is not an > exact match for *B* , you can simply assert: > > NegativeObjectPropertyAssertion(skos:exactMatch :A :B) > > It's also possible to use OWL to explicitly close off the membership of a > conceptScheme which requires listing all the things that are members of the > scheme, using an owl restriction class. > > EquivalentClasses(ObjectHasValue(skos:inScheme :aScheme) > ObjectOneOf(:B :A)) > ) > > This says (in Attempto controlled English): > > Everything that isInScheme aScheme is > something that is A or that is B. > Everything that is A or that is B isInScheme aScheme > > Note that any additional Concepts that are declared to be in aScheme will be > inferred to be identical to one of the listed members. > > We can define a class ASchemeMember to be the class of everything that is in > scheme aScheme: > > EquivalentClasses(:ASchemeMember > ObjectHasValue(:isInScheme :aScheme)) > > > That is to say: > > Every ASchemeMember isInScheme aScheme. > Everything that isInScheme aScheme is an ASchemeMember. > > > > One can then state that there are no exact matches amongst members of the > scheme. > > No ASchemeMember exactMatches an ASchemeMember . > > ---> > > DisjointClasses(:ASchemeMember > ObjectSomeValuesFrom(:exactMatch :ASchemeMember)) > > One could also declare a second conceptScheme bScheme, and declare that > nothing in bScheme is an exactMatch for A. > > Every BSchemeMember isInScheme bScheme. > Everything that isInScheme bScheme is a BSchemeMember. > > No BSchemeMember exactMatch A. > > ----> > > EquivalentClasses(:BSchemeMember ObjectHasValue(:isInScheme :bScheme)) > DisjointClasses(:BSchemeMember ObjectHasValue(skos:exactMatch :A)) > > > Since OWL does not allow you to state the context in which certain > assertions are true (c.f. the use of Microtherory in Cyc ), any additions > to a concept Scheme that change the truth conditions of the exactMatch > assertion require the creation of a new ConceptScheme object. > > Simon -- Alistair Miles Head of Epidemiological Informatics Centre for Genomics and Global Health <http://cggh.org> The Wellcome Trust Centre for Human Genetics Roosevelt Drive Oxford OX3 7BN United Kingdom Web: http://purl.org/net/aliman Email: alimanfoo@gmail.com Tel: +44 (0)1865 287669
Received on Tuesday, 1 February 2011 17:26:54 UTC