From NeOn Wiki
|Developed by||Raul Palma|
|Current Version||[[current version:= <ask format="template" template="CurrentVersion" limit="1" searchlabel="" sort="version number" order="descending" default="no version available"> 1.x/Change Capturing *</ask>]]|
|Homepage||[http://oyster2.ontoware.org 1.x/Change Capturing Website]|
The purpose of this plug-in is to capture ontology changes from the NTK editor and log them into Oyster distributed registry. This plug-in also allows users to visualize the history of ontology changes. Additionally, this plug-in is in charge of applying changes received from other clients to the same ontology after Oyster synchronizes the changes in the distributed environment. Finally, this plug-in allows users to request Oyster to start the synchronization process. Specifically it provides the following functionalities:
- Start/Stop Ontology Logging: This functionality is available from the option "Log Changes" in the pop-up menu of the ontology objects in the NTK editor. When an ontology is being logged, the plug-in performs the following tasks on the background:
- Capture Ontology Changes: Every change from the NTK editor is captured.
- Transform Ontology Changes: Every change in the editor is transformed into instances of the change representation model (Change Ontology).
- Register Ontology Changes: The instances of the change ontology are registered into Oyster distributed registry.
- Visualize Ontology Changes: This functionality is available from the "Change Log View" provided by the plug-in. From this view, users can visualize the ontologies that are being logged and for each of them, the history of changes sorted in chronological order. The list of changes is displayed in a table that shows the most relevant information (e.g. author of the change, time of the change, type of the change, etc.) and when a change is selected the complete information is displayed in the interface.
- Start Synchronization: This functionality is available from the option "Synchronize" in the pop-up menu of the ontology objects in the NTK editor. When this option is selected, the plug-in performs the following tasks on the background:
- Launch Synchronization Process: This task request Oyster to start the Synchronization process.
- Apply Changes Received: After the synchronization finishes, the plug-in applies locally (if necessary) changes received from other clients to the same ontology. When changes are applied locally, they are reflected in the NTK editor updating the local ontology with the changes received.
Synchronization: Oyster follows a synchronization approach that is a combination of a push and pull mechanism. During the synchronization, nodes contact other nodes in the network to exchange updated information (pull changes) and optionally they can push their changes to a specific node (called the push node) such that if a node goes offline before all other nodes pull the new changes, the node changes are not lost.
How to install it
- Download the compressed Plugin release from http://ontoware.org/projects/oyster2
- Extract and copy the Change Capturing Plugin JAR into the plugins directory inside the filesystem location where NeOn Toolkit is installed.
How to use it
The following figures show the Plug-in functionalities:
- Start/Stop ontology logging:
The logging can be started/stopped from the option "Log Changes" in the pop-up menu of the ontology objects in the NTK editor (Figure1).
The status bar displays how many ontologies are being logged. Figure2 and Figure3 shows respectively when no ontology is being logged and when there is one ontology being logged.
- Visualize ontology changes:
Changes can be visualized from the "Change Log View" provided by the plug-in (Figure4).
- Start synchronization:
The synchronization can be started from the option "Synchronize" in the pop-up menu of the ontology objects in the NTK editor (Figure5).
Architecture Description of integration with NeOn toolkit
A high level conceptual architectural diagram of the involved components is shown in Figure6. The top layer represents the user related components for editing and visualizing ontologies (and related information) which consists of the NTK ontology editor and the "Change Log View" provided by this plug-in. The middle layer represents the change capturing component and finally the bottom layer consists of Oyster, our implementation of the registry services. The registry is one of the core services of the NeOn basic infrastructure layer (e.g. Repository services, Registry services, etc).
Intended use in case study
Oyster will be used in WP7 to support tasks related to the management of provenance and statistics.
- Motivation of using the change capturing plug-in
One of the goals of the FAO use case partner is that fisheries ontologies produced within WP7 will underpin the Fisheries Stock Depletion Assessment System (FSDAS). However, for such a dynamic domain like fisheries that is continuously evolving, we will need to provide the appropriate support for a successful implementation and service delivery of the FSDAS. In particular, for this task we need to support a collaborative editorial workflow that will allow Ontology editors to consult, validate and modify ontologies keeping track of all changes in a controlled and coherent manner. In this scenario, ontology editors are usually developing/maintaining ontologies collaboratively in a distributed environment. The change capturing plug-in is crucial component in the infrastructure to support the editorial workflow: first, changes have to be monitored and captured from the ontology editor. Those changes should be formally represented and stored in Oyster. Using the registry functionalities, those changes will be searched and retrieved by the change capturing plug-in to show the history of ontology changes. Finally, after the registry propagates those changes to the distributed copies of the same ontology, the change capturing plug-in updates the local copy of the ontology to reflect changes in the distributed copies.
- Benefits/Advantages of using the change capturing plug-in
- The change capturing plug-in automatically keeps track of the ontology changes
- The change capturing plug-in performs the required tasks on the background
- The change capturing plug-in allows users to check the history of ontology changes
- The change capturing plug-in applies locally changes received from the distributed copies of the same ontology after Oyster performs the synchronization process.
- Data sets
- A usage example aligning to WP7 case study.
For the use case UC-9.1 this plug-in is in charge of capturing ontology changes and for UC-9.2, this plug-in allows ontology editors to view the logs about changes to ontology elements. The information about each changes is represented according to the change ontology (see Figure7) and includes among others the following minimum fields:
- operation executed