Personal page of Mariem Mahfoudh describing her research and publications.

This is the companion web page for our paper titled « Algebraic Graph Transformations for Formalizing Ontology Changes and Evolving Ontologies » submitted to Knowledge Based Systems – Elsevier journal.

This page describes the software of our research work on ontologies evolution and presents how to use the AGG framework to implement the ontology changes.

If you have any comments/questions regarding the research work or framework, please feel free to contact us.

Ontology changes implementation with AGG framework

The installation instructions of the AGG (Attributed Graph Grammar) tool can be found in a Readme File of the AGG package downloaded from this link.

AGG graphical user interface

The Figure 1 presents the graphical user interface of the AGG system. Different editors are shown:

  1. an editor for node and edge types that allows user to specify the elements of the type graph;
  2. a graphical editor for graphs that creates and shows the host graph and type graph;
  3. a graphical editor for rewriting rules that permits to define the NAC, LHS and RHS of each rule.

In Figure 1, we can also see an example of grammar graph. It is namely GraphTransformationSystem and it is consisting of :

  1. the type graph that presents the ontology meta-model;
  2. the host graph that should contain the ontology to be evolved;
  3. two rewriting rules (AddDataPropertyAssertion and AddDisjointClasses).

Note: AGG supports the possibility to set rule layers. The layers allow to control the graph transformations specifying thus, the order of rules application. Therefore, the system has first to apply the rules of layer 0, then the rules of layer 1, etc.


graphsystem
Figure1: AGG graphical user interface.

Ontology changes examples

We present here two examples of ontology changes formalized with typed graph grammars and implemented with AGG tool. The changes are applied on the EventCCalps ontology developed in the frame of the CCAlps European project.

The EventCCalps ontology and meta-model (type graph) are vailable here: EOCCAlps.ggx, metamodelOwl.ggx.

We also provide the codes of the two changes presented below: DisjointClasses(Meeting, Event), SplitClass(Company, CCI, NotCCI).

Note: You can convert OWL ontology to AGG (and back-and-forth) using our previous work : OWLToGGX / GGXToOWL.

1) AddDisjointClasses(Meeting, Event)

The Figure 2 presents the AddDisjointClasses (Meeting, Event) change that adds a disjunction axiom between the two classes « Meeting » and « Event ».

To apply the rewriting rule corresponding to this change, we have to specify the different components of graph grammar. Thus, the host graph is the EventCCAlps ontology, the type graph is the owl meta-model and the rewriting rule is a rule composed by five NACs.

The NACs permit to preserve consistency ontology and avoid contradictory axioms:

  • NAC 1 avoids redundancy;
  • NAC 2 forbids the application of the rule if the classes « Meeting » and « Event » are equivalent, because classes cannot be disjoint and equivalent at the same time;
  • NAC 3 prohibits the transformation if the class « Event » is a subclass of the class « Meeting ». Classes that share subsumption relation cannot be disjoint;
  • NAC 4 forbids the transformation if the class « Meeting » is a subclass of the class « Event »;
  • NAC 5 forbids the application of the rule if the classes have common individuals.

As the classes « Meeting » and « Event » share a subsumption relation (a « Meeting » is a subClassOf « Event ») then, the rewriting rule cannot be applied (violation of the NAC 4) and an alert box appears to inform user that the transformation cannot be achieved.


disjoinCls
Figure 2: AddDisjointClasses(Meeting, Event).

2) SplitClass(Company, CCI, NotCCI)

The Figure 3 presents the different rewriting rules required to apply the SplitClass(Company, CCI, NotCCI) change.

For this change, all the conditions are satisfied and then, a new ontology version is generated.

We can see the ontology result: the class « Company » is deleted and all its properties and axioms are attached to the « CCI » and « NotCCI » classes.


splitcls
Figure 3: SplitClass(Company, CCI, NotCCI).
 

Please cite as :

M. Mahfoudh, G. Forestier, L. Thiry, and M. Hassenforder.

Algebraic Graph Transformations for Formalizing Ontology Changes and Evolving Ontologies

Knowledge-Based System, vol 73, pages 212–226, 2015