- From: Chris Mungall <cjm@fruitfly.org>
- Date: Tue, 12 Feb 2008 22:18:02 -0800
- To: Alan Ruttenberg <alanruttenberg@gmail.com>
- Cc: "Colin Batchelor" <BatchelorC@rsc.org>, <samwald@gmx.at>, <public-semweb-lifesci@w3.org>, <holger.stenzhorn@deri.org>
On Feb 12, 2008, at 8:31 PM, Alan Ruttenberg wrote: > On Feb 12, 2008, at 8:59 AM, Colin Batchelor wrote: > >> How do you propose we cope with hedging, that is "It is not >> impossible >> that bananas are green", "Taken together, these results would >> indicate >> that bananas are blue" and so forth? This is much more common >> that the >> unwary reader might suspect. > > When you say cope with, can I assume that you mean at the > representation level? (as opposed to the text mining aspect, which > is harder, I think). > > At the representational level, I think there are several choices. > > For starters, one could use some scheme like the GO evidence codes, > and use them in the way we did for the HCLS demo representation of > gene ontology annotations. The idea is to define a class, then mark > the class as to whether the claim is that it exists or not, and > associate with that class an evidence code, which in turn cites a > paper. > > In this case we could either state that there exist blue bananas, > or that there doesn't exist bananas that are not blue. > > e.g. > > "There are no green bananas" > Class(claim1 Complete intersectionOf(banana restriction(has_color > someValuesFrom(green)))) > Class(claim1 Annotation(sc:has_denying_evidence Individual > (evidence1))) > Individual(evidence1 type(<some ECO class>) value > (sc:cites_evidence_source pmid:<this paper's pmid>)) This seems a bit odd claim1 is your name for GreenBanana (this is the first confusing part - bananas are not claims) So in order to deny the existence of something, you first have to name it, then create a logically invisible annotation property silently denying it. This seems to be asking for trouble. > "There are only blue bananas" > Class(claim2 Complete intersectionOf(banana restriction(has_color > someValuesFrom(complementOf(blue))))) > Class(claim2 Annotation(sc:has_denying_evidence Individual > (evidence2))) > Individual(evidence2 type(<some ECO class>) value > (sc:cites_evidence_source pmid:<this paper's pmid>)) claim2 = banana that has_color some non-blue to go from the negation of this claim to "there are only blue bananas" you need to be sure there are other axioms in place - i.e. all bananas has_color 1. Changing these axioms results in changing of meaning of the owl:annotation. This is all presuming people can get there heads round the twisted double negation logic in the first place. Why not have the logic mirror what is being claimed? You can then have an annotation on the axiom. SubClassOf(Annotation(has_supporting_evidence Individual(ev2)) Annotation(comment "all bananas are some shade of blue, and blue only") banana restriction(has_color 1 blue)) > Some further discussion of this at > http://sourceforge.net/tracker/index.php? > func=detail&aid=1887478&group_id=177891&atid=886178 > > Evidence code ontology: http://purl.org/obo/owl/ECO > http://purl.org/science/owl/sciencecommons > (note that we currently have sc:has_supporting_evidence, but not > sc:has_denying_evidence - easy enough to add) > > -Alan
Received on Wednesday, 13 February 2008 06:18:48 UTC