ontodev / robot

ROBOT is an OBO Tool
http://robot.obolibrary.org
BSD 3-Clause "New" or "Revised" License
261 stars 74 forks source link

Rename for properties as well as IRIs #462

Open daniwelter opened 5 years ago

daniwelter commented 5 years ago

Feature request:

I would like to see the rename function extended (or a new function added) so I can change the name or property type of annotations for a set of selected classes.

Use case: Having renamed the IRIs for a set of FMA classes to matching Uberon classes, I want to merge my FMA ontology fragment with my custom Uberon slim. The resulting merged ontology has two rdfs:label annotations for any classes that were in both fragments. I would like to be able (pre-merge) to change the FMA labels to synonyms so that in the merged ontology, only the Uberon rdfs:label exists for mapped classes.

jamesaoverton commented 5 years ago

The rename command applies to all IRIs, including properties. In general, I suggest using other ROBOT commands to get exactly the subset of FMA you want before using rename:

  1. use extract, remove, and filter to create a file with just the FMA terms and annotations that you want
  2. use rename to make the changes you want to that file, including renaming rdfs:label to oio:hasExactSynonym (or whatever annotation you prefer)
  3. merge into your Uberon slim

But I'm worried that I don't understand the use case. I can see why you would use rename to "splice" FMA terms on to Uberon parents by modifying their 'subClassOf' axioms. I don't see why you would want to just change the IRI of an FMA class to an Uberon class, merging the FMA axioms and annotations with the Uberon axioms and annotations. Doing the latter means not just multiple labels, but multiple definitions and all other annotations and axioms jumbled together.

daniwelter commented 5 years ago

In my specific use case, my FMA extract contains a total of about 130 classes, 30 of which have direct equivalents in Uberon - different IRIs but the same label etc. I would like to keep all the FMA annotations and axioms on these classes as well as the ones on the matching Uberon classes, except for the FMA labels as they follow FMA capitalisation conventions and I prefer the Uberon ones.

I could absolutely isolate the 30 FMA/Uberon overlap classes and the 100 FMA-specific classes into separate fragments, rename the label IRIs to synonyms for the overlaps and then merge both fragments with the Uberon slim. I'll give that chain a try, I was just hoping for a slightly simpler process as each of these steps has the potential for accidental information loss or hiccups.