ontodev / robot

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

ROBOT reduce does not reduce subclasses between names by default #956

Open matentzn opened 2 years ago

matentzn commented 2 years ago

Currently:

robot reduce -i o.ofn  -o reduced.ofn

Does not reduce A = B, A Sub B , B Sub A to A = B (where A and B are names).

Only this does:

robot reduce -i o.ofn --named-classes-only true -o reduced.ofn

@cmungall if this is intended, we should clarify this in the docs

cmungall commented 2 years ago

The docs are indeed confusing here:

Reciprocal subclass axioms (e.g. A SubClassOf B, B SubClassOf A), entailing equivalence between A and B, may be removed by reduce. In this case it is important to assert an equivalence axiom (A EquivalentTo B) using the reason command before running reduce.

The "may" here is not helpful, as is the asymmetry between the two algorithms (NC only vs anonymous).

Leave this assigned to me and I will fix. There are some java docstrings that could be elevated up to the markdown.

Note there is a more detailed treatment of redundancy/transitive reduction here: https://github.com/balhoff/relation-graph/issues/63

cmungall commented 3 months ago

I think this is resolved now?

matentzn commented 3 months ago

I am not sure at all! I have not fixed this issue if it existed!