Let us consider that we want to remove an equivalent restriction class and swap it into annotations, see Figure 2 for example with concrete values. To accomplish this, we can use ontology transformation service and simply specify appropriate transformation pattern, where source ontology pattern (OP1) is as follows:
<op1> <entity_declarations> <placeholder type="ObjectProperty">?p</placeholder> <placeholder type="Class">?A</placeholder> <placeholder type="Individual">?a</placeholder> </entity_declarations> <axioms> <axiom>?A EquivalentTo: (?p value ?a)</axiom> </axioms> </op1>
Then, we can specify target ontology pattern (OP2) in the following way:
<op2> <entity_declarations> <placeholder type="Class">?B</placeholder> <placeholder type="Literal">?X</placeholder> <placeholder type="Literal">?Y</placeholder> </entity_declarations> <axioms> <axiom>?B annotation:discr_property ?X</axiom> <axiom>?B annotation:value ?Y</axiom> </axioms> </op2>
In order to specify how source ontology pattern can be transformed to target ontology pattern, we need to specify transformation links between any kinds of entities. This is captured within pattern alignment (PA) as follows:
<pt> <eq op1="?A" op2="?B"/> <eqAnn op1="?p" op2="?X"/> <eqAnn op1="?a" op2="?Y"/> <ntp entity="?B"> make_passive_verb(?a)+head_noun(?A) </ntp> </pt>