How OBO-Edit Understands Histories

Every time a user changes any part of an ontology, the user-interface creates a history object that represents the change. The history object is then sent to the operation model, which uses the history object to actually make changes to the ontology. The operation model can use a history object to change the ontology, or it can use a history object to undo changes to the ontology.

Every ontology change is mediated by history objects. After a history object is applied to the ontology, the objects are stored in a list called the history list. The history list makes Undo/Redo possible; when a user requests an undo, the most recently added item is pulled off the history list and sent to the operation model to be reversed.

The current history list can be viewed using The History Plugin. It is possible to save the history list to a file, or to load a history list from a file so that the edits are applied to the currently loaded ontology (this can be used to merge edits from two users who are working on the same ontology simultaneously). It is also possible to automatically examine two versions of an ontology and reconstruct the history list that would be necessary to change one version of the ontology to the other.