Difference between revisions of "KB-OWL"
Jim Balhoff (talk | contribs) (→Data model) |
Jim Balhoff (talk | contribs) (→Data model) |
||
Line 13: | Line 13: | ||
For a localized absence we would use a nested ''has_part'': | For a localized absence we would use a nested ''has_part'': | ||
* ''has_part'' some (head and ''has_part'' only (not scale)) | * ''has_part'' some (head and ''has_part'' only (not scale)) | ||
+ | |||
+ | The has_part formulation also provides the benefit of automatic "present" inferences for structures used in any phenotype, not just "present" phenotypes. | ||
==Reasoning== | ==Reasoning== |
Revision as of 21:16, 4 January 2012
This page describes the data model, data loading process, and query methods being developed for a new version of the Phenoscape Knowledgebase built on top of RDF and making use of standard OWL reasoners.
Contents
[hide]Data model
Phenotypes in the new data model are modeled as OWL class expressions. They are now constructed in an inverse fashion from the form in the original KB - rather than describing classes of particular qualities which inhere in particular structures, we describe parts which bear particular qualities (at the level of instance data the model is the same — inheres_in is the inverse of bearer_of).
For example, "serrated dorsal fin":
- old: exhibits some (serrated and inheres_in some dorsal_fin)
- new: has_part some (dorsal_fin and bearer_of some serrated)
We can now model absence correctly. The previous version of the KB uses a quality class called 'absent' in a way which produces unintended inferences. In the new model we use universal quantification with negation. For "dorsal fin, absent":
- has_part only (not dorsal_fin)
For a localized absence we would use a nested has_part:
- has_part some (head and has_part only (not scale))
The has_part formulation also provides the benefit of automatic "present" inferences for structures used in any phenotype, not just "present" phenotypes.