Developped during the MOST Project.
Based on OWLText.
To use the OWLizer, there are two ways:
If the default transformation algorithmn does not create the desired result, one can adapt the behaviour as follows. First create a subclass of
org.emftext.runtime.owltext.transformation.Ecore2Owl. This is not strictly necessary, but will ease the use of the new behaviour.
To define a new transformation algorithmn, create a class implementing the interface org.emftext.runtime.owltext.transformation.TransformationStrategy and start the transformation, call either Ecore2Owl.transform(Collection
This interface requires four methods to be implemented, but one of them, transformEObject(EObject), is the most important, as it defines the way how each object encountered during
parsing of the model will be transformed.
The other methods include a pre-, a postprocessor method and a way to make the necessary data available to the strategy.
In the class Ecore2Owl, there are already two default strategies implemented, which are used by this class to perform the two different transformation scenarios (model and metamodel). If there are only small changes needed to fulfill the desired transformation, one can also subclass these default strategies, e.g. changing the way how EAttributes are transformed.
To describe the different objects, which an ontology can have (including the ontology itself), a seperate language is used. This language is generated from a metamodel and can be found in the org.emftext.language.owl plugin or at http://www.emftext.org/index.php/EMFText_Concrete_Syntax_Zoo_OWL2_Manchester. Internally, it uses the OWL-API, but it has also a parser and pretty-printer generated to easily store the modelled ontology.
Using this way to transform models into an ontology, an extra UI-plugin has to be created, which uses the created subclass of Ecore2Owl.