Open cmungall opened 1 year ago
I prefer the GCI approach where possible as it is transparent to explanations and can be OWL reasoner driven. However, I'm finding it hard to see how to make this work here compared to the GO example, where it is easy to see how to achieve without any increase in pattern vars. @cmungall Can you sketch how this could work?
This issue has not seen any activity in the past 6 months; it will be closed automatically one year from now if no action is taken.
Example of a problem:
There should be a part-of between cingulum-of-molar and crown-of-molar (because a cingulum is part of a crown)
The existing part-of (which comes from relaxation) is correct but not specific enough.
@balhoff @dosumis @matentzn we have discussed strategies in the past for inferring part-of, going back to inferring the many part-ofs in GO BP (e.g. development of nose part-of development of head).
The strategy we have previously arrived on (but AFAIK not codified in a central place is)
Note that materialize is necessary, and Protege will not directly show the entailments in a hierarchical view
I think the only ontology to have implemented this was OBA and TO, and the pipeline for the former may have changed.
UPDATE: currently trying this for GO
IMO this is quite a complex pattern to get your head around, involves coordinating a number of different pieces. It may work for ontologies like GO and OBA where we typically have simple edge inferences.
In uberon we want to recapitulate parallel structures in their entirety; the pieces should join-up via continuous-with, deep-to, proximal-to, drains, etc.
Previously in uberon I used prolog rules to infer these linkages, we could look at a datalog over dosdps approach
A single rule should cover all intra-pattern cases:
R is a TBox relationship, P is a pattern instance
P(defined_class, genus, additional_args....)
the intuition here is that we are "cloning" a generic pair of classes that stand in some relationship like part-of. E.g. cingulum to crown
if the cloned pair has the same differentia then the original relation can be "copied"
propagates_over would be curated tuples - e.g. part-of would propagate over patterns that use part of or laterality as differentia
(note this also works for R=is_a, but we already have owl reasoning to do this)
we can see how this works by grounding 2nd order predicates for
propagates_over(deep_to, intestinal_layer)
and an example grounding
in this was we can capture all superficial-deep relationships for all proximal-distal subdivisions.
we can also write custom rules for inter-pattern, but the above works as a generic rule
Parallel issues: