We want to be able to delete assertions, but we never want to lose them. They should be obsoleted/deprecated, using the same annotation properties we use for classes, etc
This will probably be implemented entirely in minerva, cc @hdietze
Summarizing a discussion with @kltm and @cmungall about implementation options:
Use the OWL built-in deprecated annotation approach
Pro: out-of-the box support, no/minimal changes required in minerva
Con: reasoners usually ignore the deprecation annotations and will use 'deleted' axioms, pre-processing of the ontology is possible, but not transparent for downstream users/consumers
Remove the axioms and store a shortform/alternate representation somewhere
Pro: No special handling for the reasoner
Con: How do we store the deleted axioms? (We want to avoid introducing an obsolete-relation counter-part for each existing one)
At least the ID and type of each individual and the relations (or the object property assertion) are required, preferably also the evidence is preserved.
A simple list/text field is not sufficient, as we probably need a machine readable format (to create redirects, obsolete pages, prevent duplicate annotation or at least warn users about it)
Where do we persist that information? In the model or as separate file?
Use a full log of edits, persist this change history
The most extreme would be to track all edits, WebProtege for example uses a binary-owl representation to append each axiom change.
Question: How do you quickly find all the relevant (deleted individuals and types) for validation or rendering (e.g. AmiGO) purposes in the log.
Pro: Persistent Undo-Redo over a server restart for free
Con: Relevant information about a model is split over multiple (at least two) files. Could this work with a triple store or other non-file persistence solutions
At a meeting with @DoctorBud @drseb @kltm
We want to be able to delete assertions, but we never want to lose them. They should be obsoleted/deprecated, using the same annotation properties we use for classes, etc
This will probably be implemented entirely in minerva, cc @hdietze