Collaborative Protege

From Protege Wiki
Jump to: navigation, search

Collaborative Protege

by Tania Tudorache


Type Project
Author(s) Tania Tudorache
Last Update February 13, 2009
License Mozilla Public License
Homepage Collaborative Protege website
For Application

Collaborative Protege is an extension of the existing Protege system that supports collaborative ontology editing as well as annotation of both ontology components and ontology changes.

Versions & Compatibility

This section lists available versions of Collaborative Protege.

No version information available.

If you click on the button below to add a new version of Collaborative Protege, you will be asked to define a page title for the new version. Please adhere to the naming convention of Collaborative Protege X.X.X when you define the new page!


No version information available.

The format of the Changes and Annotation ontology (ChAO) has changed in Protege 3.4.2 release. If have an existing ChAO project created with an earlier version of Protege and would like to take advantage of the new features, please follow the upgrade instructions from here.


Collaborative Protege is an extension of the existing Protege system that supports collaborative ontology editing. In addition to the common ontology editing operations, it enables annotation of both ontology components and ontology changes. It supports the searching and filtering of user annotations, also known as notes, based on different criteria. We have implemented two types of voting mechanisms that can be used for voting of change proposals. Multiple users may edit the same ontology at the same time. In multi-user mode, all changes made by one user are seen immediately by other users. There are two working modes available for Collaborative Protege. Both modes support multiple users working on an ontology:

  1. The multi-user mode - allows multiple clients to edit simultaneously the same ontology hosted on a Protege server. All changes made by one client are immediately visible by other clients. This mode is also referred to as client-server mode, or concurrent mode and requires a client-server setup. This mode is based on the implementation of the multi-user Protege and is the preferred mode in which Collaborative Protege should be run.
  2. The standalone mode - allows multiple users to access the same ontology in succession. The ontology can be stored on a shared network drive and all clients will access the same project files. However, simultaneous access is not possible. This mode is also referred to as the consecutive mode.

This user guide applies to both multi-user and standalone mode of Collaborative Protege.

Installation Guide

Collaborative Protege is distributed with the full installation of Protege. You may use Collaborative Protege both in stand-alone mode and in multi-user mode. The installation guide will use as an example the Newspaper project distributed in the examples/newspaper folder in the Protege installation directory.

Stand-alone mode

  1. Install the full distribution of the latest version of Protege 3.*. Note, Protege 4.* is not compatible with collaborative Protege yet.
  2. Start Protege.
  3. Open the newspaper.pprj project from the examples/newspaper folder in the Protege installation directory.
  4. In the Collaboration menu, click on Show Collaboration Panel
  5. A dialog will come up that asks what type of Changes and Annotations ontology (ChAO) to create. You may choose between RDF(S) file, database backend, or existing ChAO knowledgebase. See below the screenshot of the ChAO creation dialog.

    ChAO CreationDialog.png

    If you want to track changes, please enable the Enable change tracking checkbox. If the checkbox is enabled, change tracking will be started right away. If this checkbox is not enabled, changes will not be tracked.
    The Change tracking can be restored later in the Project menu -> Configure -> Options -> Track Changes (Protege restared required).

    After the ChAO project is created, the collaboration panel should come up. You should see something like this:

    Chao Newspaper.png

  6. Save the project. In the examples/newspaper folder, a project annotation_newspaper.pprj was created that contains the ChAO knowledgebase.

Multi-user mode

If you want to use Collaborative Protege in multi-user mode, you will need to do some additional steps.

  1. Do all the steps for the installation in Stand-alone mode.
  2. Open the metaproject.pprj project from the examples/server folder in the Protege installation directory.
  3. In the InstanceTab, create a new instance of Project for the annotation_newspaper.pprj. The name of the instance is not important. The location slot should point to the location of the annotation project. For this example, the value of the location slot should be: examples/newspaper/annotation_newspaper.pprj.
  4. Select the Newspaper instance and set as value of annotationProject slot the Project instance created in the previous step.
  5. Save the project and close Protege.

In the multi-user mode, you may also configure the access policies of the ontology users in the metaproject as described here.

Test the Protege server and client

  1. Start the Protege server by using the run_protege_server start script. Detailed information about starting the Protege server can be found in the Protege Client-Server Tutorial.
  2. Start a Protege client: Start Protege and select the Server mode in the Open Project dialog.
  3. In the Server panel, leave all the default entries like they are. (Hostname: localhost, User: Guest, Password: guest). Click on OK.
  4. In the Select Project panel, select the Newspaper project. When the project is displayed, you should see also the collaborative panel.

User Guide

The main feature of Collaborative Protege is the ability to create notes attached to different things. This is the same idea as if someone would read an article and would add marginal notes on the paper. In the same way, the notes mechanism of Collaborative Protege allows a user to create his own remarks about a certain part of the ontology. This feature can also be used to discuss the ontology with other users either in stand-alone or multi-user mode. The notes are also called annotation and we will use these two words interchangeably. However, we do prefer the word notes because annotation is overloaded with too many meanings. The notes types together with the icons used to represent them in the user interface are shown below:

CollabProtege noteTypes.png

Another important feature of Collaborative Protege is the ability to track changes as they happen, that is to show the change history of an entity in the ontology. We will talk about the change history in the Change tracking section from below.

This user guide gives a brief description of the main functionalities of Collaborative Protege, which are:

  • Annotation of classes, properties and instances with different types of notes (e.g., Comment, Advice, Example, etc.)
  • Annotation of changes (for example, class creation, renaming, etc.) with different types of notes
  • Notes on the ontology itself
  • Proposals and voting
  • Searching and filtering the notes using different criteria
  • Live discussion (chat) with other users connected to the same server

The collaboration menu

The Collaboration menu is shown each time you start Protege, even if you do not have the collaboration panel enabled:

CollabProtege collabMenu.png

The following items are shown in the Collaboration menu:

  • Show Collaboration Panel - this item allows the showing/hiding of the collaboration panel, which can be done anytime during a Protege working session. The first time you enable the collaboration panel, Protege will ask you to create the changes and annotations ontology (ChAO) which is used to store all notes and annotations attached to entities in the domain ontology. The ChAO creation dialog is shown in the Stand-alone installation section.
  • Collaboration User's Guide - will open a browser with this wiki page
  • Configure... - you may configure what collaboration tabs you want to see in the user interface, which is disscussed in the Configuring the collaboration tabs section.

The collaboration panel

The main panel of the graphical user interface has been divided in two main panels (see image from below):

  • The classical Protege display (classes, properties and instances view) on the left side, and
  • The collaboration panel on the right side.

The classical Protege display shows the details of the different ontology components, such as classes, properties (slots) and instances. The collaboration panel adds functionality to support the collaborative development of ontologies.

The collaboration panel is made up of two types of tabs.

  • The Entity notes and Changes tabs show information related to the selected item in the class tree (or property tree, etc.). For example, if you select in the class tree the class Person, you will see in these tabs the notes related to the class Person. In the InstancesTab of the main Protege display, the collaboration panel will show the notes attached to instances.
  • The Ontology notes, All notes, Search and Chat tabs are generic tabs that are not attached to a particular entity in the ontology, so they are "global" in nature.

The tabs in the collaboration panel are made up of a top component, which shows a notes tree. The notes tree corresponds to discussion threads in Internet forums. The bottom component shows the details of the selected note in the notes tree.

It is possible to search the notes by using the search component at the bottom of the annotations tree panel. You may use the * wildcard character for your search. The searching is done in the text of the notes.

Another feature is the filtering of notes and changes, which may be done by using the Filter component from the top of the annotations tree. You may choose between different types of filters that will be applied to the annotations tree: filtering by author, by annotation text, by annotation type or by creation date. The class tree in the main Protege display shows a little call-out icon next to the class name if the class has any annotations or change annotations attached to it. In the Slots Tab and Instance Tab in the main Protege display you will also see the call-out icon if a property (slot) or an instance have annotations attached to them.

Annotating classes, properties and instances with different types of notes

A user may add notes attached to a specific ontology component in the Entity Notes. By ontology component, we mean classes, properties (or slots) and instances. See image below.

CollabProtege entityNotes.png

The image shows an example of note attached to the DomainConcept class. The number of notes attached directly to DomainConcept is shown next to the Notes icon (in this case, 2); in paranthesis, we show the number of notes attached to the children (3), so that the user can easier navigate to the notes found very deep in the tree hierarchy.

To create a new top level note, first select the note type from the combo-box, and then click on the New thread button. A dialog will come up in which you may enter the text of your note. It is possible to use different types of fonts (bold, italic, underline, etc.), to highlight text, or to insert internal links to entities in the ontology. Such a dialog is shown in the image below:

CollabProtege Comment.png

An internal link is a link to a entity in the ontology. When the user clicks on the link, the class editor of that particular entity (e.g, class) will pop up. In the example above, the inserted link was: @'' . When a user clicks on this link, the Pizza class editor will show up.

A note can be Archived by checking the archived check-box. For example, a note can be archived, if the issue has already been addressed, and it is no longer needed to show it in the user interface. To hide the archived note, go to the Collaboration Menu -> Configure -> Options -> Hide archived notes. The display of the notes and the notes count will be updated.

Notes, changes and ontology components can also have a Status. The prefilled values of the status drop-down list come from the ChAO ontology as instance of Status. For example, if you would like to have as possible statuses for notes: Active and Deprecated, then edit the ChAO ontology: delete all existing instances of AnnotationStatus, and create two new instances, Active and Deprecated.

To reply to an existing note, select the note, and click on the Reply button. You may also choose the type of note you would like to use as your reply. Predefined notes type are:Comment, Advice, Example, SeeAlso, Vote, etc.

To view the details of an existing note, you may click on the magnifier icon on top of the notes tree. To refresh the display of the notes (maybe another user has added meanwhile a reply to a note), click on the Refresh icon on top of the notes tree.

Annotating changes with different note types

Collaborative Protege is continuously tracking the changes that users are making. You can see the change history of a certain ontology component (for example, a class) in the Changes tab of the collaboration panel.

Besides annotating ontology components themselves, you may also annotate changes to the ontology using different note types. For example, you may comment on a class rename operation or on the addition of a property to a class. Notes on changes are made in the Changes Tab (see image below). The user interface of the notes tree is identical to the one of the Entity Notes tab. Please read that section for more information.

CollabProtege changes.png

To create a note on a change, first select a note type from the combo-box at the top of the Changes tab. Then, select a change in the changes list and click on the Reply button.

Ontology notes

The Ontology Notes tab allows you to attach notes to the ontology itself, rather than to a specific ontology component. The user interface of the notes tree is identical to the one of the Entity Notes tab. Please read that section for more information. The Ontology Notes tab is show in the image below.

CollabProtege ontologyNotes.png

Ontology notes do not respond to the selection in the class tree (or other trees). In this sense, they are more "generic" type of notes. For example, an ontology note may describe naming conventions that should be kept throughout the entire ontology, or design guidelines for the ontology.

Browsing all entity and ontology notes

Very often, discussions about different ontology classes (or other entities) go on in parallel threads and are attached to the classes. There is no easy way of figuring out which classes have notes attached to them. The All Notes Tab shows all the ontology notes together with all the entity notes. It is an integrated view that gives the user an overview of what is going on in the ontology. As with the Ontology Notes, this tab is not dependent on the selection in the class tree (or other trees). The All Notes Tab is shown in the image below:

CollabProtege AllNotes.png

Proposals and Voting

Collaborative Protege supports two different types of proposals and voting:

  • Agree / Disagree proposals, which users may vote with a Agree / Disagree vote
  • Five Stars Vote proposals and the corresponding Five Star voting.

The current version does not support workflows for proposals (such as starting and closing a proposal), but we intend to add this feature in the near future.

You may start a proposal in one of the Entity Notes, Ontology Notes, All Notes or Changes tabs. You may start a proposal related to a certain ontology component, for example, a class. In this case, you should create the proposal in the Entity notes tab, after selecting the class in the Protege classes tree. Then, select in the notes type combo-box one of the AgreeDisagreeProposal or the FiveStarVoteProposal and click on the New thread button. You will see in the notes tree a new node that has as an icon containing the "p" letter.

It is also possible to start a proposal related to a change in the Changes tab of the collaboration panel. If you want to start a generic proposal not related to a particular ontology component, you may do this in the Ontology Notes tab.

After you have created a proposal, other users may vote for it by selecting in the notes type combo-box the corresponding vote type. Users may also add comments to their votes.

Searching the notes

Besides the simple search functionality available in all the tabs of the collaborative panel, users may also do complex searches in the Search tab.

CollabProtege search.png

You may specify in the Search tabs different types of search criteria that can be combined by an AND or OR condition:

  • Author name
  • Note text
  • Note type
  • Status
  • Date

Once you click on the Search button, the results of the search are shown in the Search Results panel. You may see details on a certain result either in the bottom details panel or by clicking on the view icon from the top of the Search Results pane. If a note is attached to an ontology component, you may click on the second icon on top of the Results panel to browse the details of the annotated ontology component.

Chat with other users

You may chat with other users that are connected to the Protege server. Chat messages are broad casted to all users. You may see the users that are connected to the server in the task bar at the bottom of the main Protege display.

CollabProtege chat.png

If a chat message is received, while you are browsing another tab, the icon and font of the chat tab will change in red so that it attracts your attention (see image above). If there are no new messages in the Chat tab, you will see a smiley icon next to the Chat tab title. Just as in the notes text, you may send internal links to entities in the ontology. The other users receiving the chat message will be able to click on the link and a class browser will pop up showing the corresponding class. (The internal links work also with properties and individuals).


The Collaboration -> Configure menu allows different types of configuration of the collaboration features. For example, it is possible to configure which collaborative tabs should be shown in the user interface. Another thing that can be configured is the hiding of archived notes from the Options tab.

To enable and/or disable the collaborative tabs, go to the Collaboration menu. After clicking on Configure, you will get the panel from below:

CollabProtege configure.png

In this panel, enable the checkboxes corresponding to the tabs that you would like to see and disable the ones that you would like to hide. In the example from the screenshot, the user enabled the All notes and the Chat tab and disabled the rest. After the configuration, the Protege display will look like in the figure below:

CollabProtege afterConfiguration.png

To hide the archived notes in the user interface, go to the Collaboration menu -> Configure -> Options and enable the check-box for Hide archived notes. The user interface of the collaboration panels will be refreshed, as well as the note counts shown next to the Notes icon in the class tree. The filters and search will also take into account this configuration.

Adding your own note type

The notes type that you see in Collaborative Protege are read dynamically from the changes and annotations ontology (ChAO). The note types are actually subclasses of the Annotation class in the ChAO ontology. It is very easy to customize the note types available in Collaborative Protege by just editing the ChAO ontology directly. Let's say we want to add a new note type "ToDo". The steps are easy: in the corresponding ChAO ontology, create a subclass of Annotation called ToDo, add properties to it or whatever is necessary (optional), configure the form of the ToDo instances in the FormsTab (optional), and save the ChAO ontology. The next time you start Collaborative Protege, you will see in the combo-box of notes type the 'ToDo' type. Below is a step by step guide with screenshots.

The example uses the Collaborative Pizza project that has the annotation_collaborativePizza.pprj project associated to it. We want to add a ToDo type of note to Collaborative Pizza. Below are the steps.

1. Open annotation_collaborativePizza.pprj in Protege. Create a subclass ToDo of Annotation class. Add two template slots, priority and deadline to the ToDo class. It should look like this:

CollabProtege ChaoToDo.png

In the Forms tab, we have also configured the form of the 'ToDo' class. This form is used when creating a new ToDo instance in Collaborative Protege. We have also changed the browser slot pattern of the ToDo class. Save the project.

2. Open Collaborative Pizza project. In the notes type combo-box you will see the ToDo note type:

CollabProtege TodoType.png

3. Create a new ToDo attached to the ValuePartition class by selecting in the note types combo-box the ToDo type. After creating the to do note, you should see something like this:

CollabProtege ToDoNote.png

As you notice, the form of the to do note is different than the form of other note types. The form is the one that we have configured in the previous step in the ChAO project. In this way it is extremely easy to customize Collaborative Protege to the specific needs of a project without requiring any software change.

Contact and support

Collaborative Protege is actively developed and supported. It is currently just a prototype that we intend to extend into a full-fledged web-based application for collaborative ontology development. All your feedback is welcome! Please send comments, questions and bug-reports to tudorache at


For more information, please see the following links:

  1. The collaborative ontology development with Protege tutorial at the Protege Conference 2009 in Amsterdam
  2. ISWC 2008 Paper about Collaborative Protege
  3. A short paper describing Collaborative Protege
  4. A short presentation of Collaborative Protege
  5. Protege Client-Server Tutorial
  6. Protege user guides