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