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

Add an axiom swapper command #84

Open
cmungall opened this issue Dec 12, 2018 · 2 comments
Open

Add an axiom swapper command #84

cmungall opened this issue Dec 12, 2018 · 2 comments

Comments

@cmungall
Copy link
Contributor

This would be useful both for GO-Rhea, but also for complex dosdp workflows.

Possibly implement as a robot command? Or specific to dosdp?

Inputs: two ontologies (src, tgt) plus configuration that can be used as an axiom filter

For every axiom in src, if axiom matches filter, then inject axiom into tgt. For a subset of these, this will be a replace operation.

Example: GO needs to do updates on MF terms based on Rhea, where we replace GO text defs, GO xrefs (other that the Rhea xref itself) and potentially is-as with the Rhea equiv (to implement this we could have a special OWL version of Rhea that uses GO IDs as primary)

@dosumis
Copy link

dosumis commented Dec 12, 2018

We currently do something like this as a three step process:
Step1: DOSDP pattern1 used as filter to find terms and populate tsv with IDs and fillers
Step2: Axiom stripping (Robot foo)
Step3: DOSDP pattern2, which has same filler slots (variable names) as pattern1 is used with the tsv from step one to generate new axioms.

Note step 1 (currently) only operates on a single equivalence axiom.

I agree that it makes sense to package this up into one step (although the power of this could be somewhat dangerous). Is this what you have in mind? Or were you thinking of something with the ability to take SPARQL patterns as a filter? The all DOSDP route could work well for many use cases (see Phenotype ontology work), but if we need to doing anything more that transform equivalent class axioms, we'll at least need more complete pattern matching in step 1 (if that's possible),

Example: GO needs to do updates on MF terms based on Rhea, where we replace GO text defs, GO xrefs (other that the Rhea xref itself) and potentially is-as with the Rhea equiv (to implement this we could have a special OWL version of Rhea that uses GO IDs as primary)

This example looks quite challenging whatever the approach.

Pattern match needs to retain and re-use: def_xrefs, xrefs - both possible (I think) with DOSDP approach. But we then need to strip rhea xref and use this to determine what logical OWL axiom to add? This last step would require some more sophisticated filter and transformation...

@cmungall
Copy link
Contributor Author

On second thoughts the Rhea case may be too special purpose and can be done with a standalone short ammonite script

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