What is the ModelAnnotator?

The ModelAnnotator is a WebService implemented by the openmodel initiative which deals mainly with assigning meta-information to model elements. It deals mainly with assigning meta-information to model elements. This Web Application is written in Java to annotate Model Elements and to store these notes into a database. The main approach was to integrate this Application as a Portlet into Liferay thus userspecific interactions are possible.

This WebService consists of three major parts: the annotation, publishing and tagging functionality.


Annotating Model Elements

The ModelAnnotator is an Upgrade of the ModelPublisher that allows the User to annotate desired Model Elements with private (just visible for the user) and public (visible for everyone) notes.


Publishing Functionality

Beside annotating Model Elements, the User can still publish models to a pdf document like the ModelPublisher. Now, with the ModelAnnotator, also available annotations will appear in the document.



Also a Tagging Functionality comes along with the ModelAnnotator. This functionality will be fundamental for further development e.g. search purposes.


What do i need to run the ModelAnnotator?

What do i need to run the ModelAnnotator?

  • Java 6 or 7
  • Servlet Container - Apache Tomcat (6.x, 7.x) or Glassfish (3.x)
  • ModelAnnotator Core Application
  • MySQL Server
  • prepared and empty ModelAnnotator Database
  • Web Portal 
  • Model-Annotator-Portlet for Liferay

Whereas the Web Portal and Model-Annotator-Portlet for the Web Portal are optional. You do not need these if you do not want to have userspecific annotations or userspecific interaction with the Web Portal.



Welcome to the ModelAnnotator Service!

The ModelAnnotator is a Web Application written in Java to annotate Model Elements and store these notes into a database. The main approach was to integrate this Application as a Portlet into Liferay thus userspecific interactions are possible.

The Introduction should give you a basic knowledge of this Service, how to handle it and consists of the following points:

What is the ModelAnnotator really?
Video Tutorial for Beginners
Background Information how the Service interacts with Liferay


What is it realy?

This is a picture of the ModelAnnotator Environment:

This Environment consists of different components:

  • Model Server Panel (on the top-left)
  • Model Navigator (Folder Browser on the left side)
  • Model Viewer (Area where the model is shown)
  • Annotation Panel (on the bottom)

The Server Panel lets you choose between different Model Server. The Server Locations can be predefined in a config file of the Application. Please take a look to the Documentation WIKI where to find and how to configure this file.

The Navigator is a Browser of all Models which are in context with the chosen Server in the Server Panel.

Once you have clicked on a Model in the Navigator, the Model will be shown at the Model Viewer Area.

The Annotation Panel lists the annotations of a Model Element when you click on them.


Video Tutorial for Beginners

The following link leads to a Video Tutorial where the basic handling with the ModelAnnotator is presented for first use.

ModelAnnotator Video Tutorial First Use


Portal Interaction

One thought was, how can we integrate this Application into the web portal. We came to the following solution:

Instead of compeltely merging the Application with the web portal, we decided to let the Application as a "Stand-alone" Service on another Web Container. The Application appears in the web portal as an IFrame where parameters can be sent from the web portal to the Application.

  1. As the User visits the ModelAnnotator Portlet in the web portal, the Portlet gets the current logged-in UserID from the web portal.
  2. The ModelAnnotator Portlet encrypts this UserID with a predefined key and constructs an URI with an UserID-Parameter. (e.g. "http://localhost:8080/ModelAnnotator/Publishing.html?id=[encrypted UserID]")
  3. This URI links to the ModelAnnotator Core Application where the encrypted UserID is filtered out of the URI and forwarded to the Authorization Service. This Service decrypts the encrypted UserID with the same key as specified in the Portlet. If there is a wrong encrypted UserID or the User is just not logged-in on the web portal, then the authorization precedure cancels here.
  4. Now the decrypted UserID is sent back to the web portal via the SOAP User Service (Axis Service). This Service checks the UserID if it's exisiting.
  5. If Step 4 succeeds, the User is authenticated and informs the Authorization Service and can also send a Username with it.
  6. Finally the Authorization Service responds either an OK or a Failure to the Client. Failure means, that the User will not be able to post userspecific annotations.



Our intentions of any further development of the ModelAnnotator have more technically aspects to deliver this Application more comfortable to the User.

So the current long-term goals of the ModelAnnotator, which can also be developed simultaneously, are the following:

  1. Intelligent Cashing of AdoScript Executions
  2. Search Engine (to find annotations quickly also in context with their tags)
  3. More userspecfic interaction with Liferay (more parameters can be passed to the ModelAnnotator e.g. to provide userspecific Model Server etc.)


Fill, Hans-Georg; Schremser, Daniela; Karagiannis, Dimitris (2012): A Generic Approach for the Semantic Annotation of Conceptual Models using a Service-oriented Architecture, accepted for International Journal of Knowledge Management.


This Tool/Service is open-source.

It is published under the GNU General Public License.