Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Operation: Make a property subset #8

Closed
cmungall opened this issue Apr 14, 2015 · 2 comments
Closed

New Operation: Make a property subset #8

cmungall opened this issue Apr 14, 2015 · 2 comments

Comments

@cmungall
Copy link
Contributor

Motivation

Users commonly want to work with a graph involving a minimal set of core relations. Sometimes this involves simply removing an OP from the ontology, but this may weaken the graph too much.

For example, many users of GO do not want to see lumen_part_of in the OBO-basic graph. We would instead rewrite this as a part_of relation. Note it's only valid to rewrite an OP to its superProperty if the axiom is SubClassOf, not Equivalence. Hence this operation is related to #7. We would typically run the property slimming after equivalence weakening

In addition to removing all OPs from the ontology, we'd want to remove any axioms that use these OPs

Basic Operation

owltools1 code:

https://github.com/owlcollab/owltools/blob/master/OWLTools-Core/src/main/java/owltools/mooncat/Mooncat.java#L1144

Given a whitelist of properties P, create a blacklist NP that is all OPs in signature not in P

For each axiom A, get OPs in signature of A. If this intersects with NP, then remove axiom

Before removal, check if possible to rewrite to a weaker axiom. The general case is awkward to specify, but the main case we care about is C SubClassOf R some D axioms. In this case, replace R with the most specific property in the whitelist that is a superproperty (inferred) of R. If there are multiple MSPs (can happen if the RBox is a DAG) then write multiple SubClassOf axioms

Extensions

It may be simpler to break this into two operations. (1) A SubClassOf weakening or rewriting step, that maps up to whitelist properties as specified above (2) A simple property filter that removes all occurrences of the blacklist properties.

The user could choose to execute (2) without (1), but they would do this knowing that the graph may be significantly weakened.

Extensions

jamesaoverton added a commit that referenced this issue Apr 14, 2015
- add FilterOperation.filter() method to filter axioms by object property
- add unit tests and supporting files
- does not yet account for issue #7 or issue #8
cmungall added a commit that referenced this issue Apr 14, 2015
cmungall added a commit that referenced this issue Apr 14, 2015
cmungall added a commit that referenced this issue Apr 14, 2015
@cmungall
Copy link
Contributor Author

Input: map_properties_up_test.owl

Contains axiom:

Class: 'cavity of right ventricle'
SubClassOf: 'luminal space of' some 'heart right ventricle'

Expected axiom from step (1) (mapping up)

Class: 'cavity of right ventricle'
SubClassOf: 'luminal space of' some 'heart right ventricle'
SubClassOf: part_of some 'heart right ventricle'

Then subsequently after step (2) (filtering)

Class: 'cavity of right ventricle'
SubClassOf: part_of some 'heart right ventricle'

@beckyjackson
Copy link
Contributor

This can now be achieved by remove. Please re-open if this requires more discussion!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants