I am an ontology "newbie" (a term I detest but it's probably appropriate in this context - gotta start somewhere I guess). My initial introduction to ontologies was a course I took at the University of Manchester (taught by Dr. Robert Stevens) as part of an MSc program in Bioinformatics (now called Computational Molecular Biology). I developed a Hearing Loss Ontology for my thesis and realized very early that narrowing the scope to representing only gene variants "associated" with hearing loss was a starting point that I could not finish because:
I could not, using OWL, figure out a concise way to explicitly model cause and effect, e.g, in the context of genetic variants, how to infer (via a reasoner) a specific phenotype change given a specific coding variation in a gene - even without knowing the cascade of physical and physiological changes occurring on many scales from nucleotide to hair cell. Subsumption just didn't seem to be the appropriate relationship. I was looking for a "Causes" relationship.
The topic of cause and effect appears to be quite controversial - there's event calculus, situational calculus, Granger causality, structural, statistical, and probabilistic approaches to modeling cause, effect and inference (and Pearl's unification of many of these in a graphical approach), and more, but all I wanted to do was associate two entities on opposite ends of the gene expression pathway by a simple "if A then B" construct I am so accustomed to in software development. Probably a bit naive. I'd worry about modeling all the stuff that happens from A to B later.
Even if I could produce an "if A then B" construct in OWL and have an existing reasoner understand the construct, existing tools could not distinguish (and thus appropriately render) a causal relationship from a general inference.
Anyway, I look forward to solving this problem! It may take a while, but in the mean time, I hope to learn from the experts in this group and to contribute where I can when I can.