Help TOC > Instructions for DEX developers > Software > Protégé
Protégé Date: 2008/02/29 19:18:03
Revision: 1.15


Protégé is a free, open source ontology editor and knowledge-base framework, developed by Stanford Medical Informatics at the Stanford University School of Medicine It supports Frames, XML Schema, RDF(S) and OWL (via its OWL plug-in). In the PLCS comunity, it is used for the development of Reference Data OWL ontologies.

In June 2007 the capability of "Ontology Repositories" in Protégé 3.2.1 led to the use of folders in DEXlib to ease the management of the PLCS RD during its life cycle. The development of Protégé and the OWL Plug-in continues so care should be taken to test any newer releases before committing to their use for Reference Data development.

Protégé and its OWL plug-in can be downloaded from (

Installation Requirements

Download before starting (see URL's at end of page MISSING!)

Please review FAQ and user guides for more details.


  1. Protégé is available from the Stanford University Web site. Please download the version appropriate to your computer operating system. For PLCS DEX Reference Data development, please use version 3.2.1( or newer. As the PLCS Reference Data is developed using OWL, you will require the OWL plug-in which is automatically included if you install the full version of Protégé.

  2. Note that if you don't already have a Java Virtual Machine (JVM) installed, you should download one. The Sun and IBM Web sites have downloads available. Protégé also has a download that comes bundled with a JVM. In order to operate Protégé you only need the Java Runtime Environment (JRE), not the full System Developers Kit (SDK).

  3. Once the JVM/JRE is ready, install Protégé as directed. Note that you can test by verifying JRE is available to system (Windows: Use Control Panel) if you are unsure.

  4. Install Protégé using all defaults. Choose the JRE you just installed or that already existed. During installation you will be asked which components of Protégé to include. Select "Everything" to ensure that the OWL plug-ins are installed.

  5. Test by starting and opening test "newspaper" ontology.

  6. Test the OWL plug-in by creating new "OWL Files" Ontology.

  7. Open an OWL File from the DEXlib RD folders and look at the Ontology Repository list, under the OWL tab, to see that the correct order is defined (see Figures 1 and 2)

Figure 1 —  Selecting OWL Tab, Ontology Repository

Figure 1 —  Selecting OWL Tab, Ontology Repository

Figure 2 —  Managing Ontology Repositories

Figure 2 —  Managing Ontology Repositories


  1. Installing each new version of Protégé in a new folder is recommeded.
  2. Reference data files should be stored in a separate folder from the installed software. Use of the dexlib folders is recommended.

Protégé Project Files

A Protégé project is actually made up of more than one file. For each project (e.g. plcs-std-rdl) there are three related files from version 3.2.1 onward.

Note that when opening an existing Protégé project selecting either the .owl or .pprj file will work. When "Creating a new project from existing sources" Protégé reads a .owl file and creates the other Protégé-specific files.

.owl file
The OWL file that contains the RD itself. This is the OWL XML file that can be read by any conforming OWL application. When you update RD, this file must be checked back into the DEXlib repository.
.pprj file
The Protégé-specific file where you set your preferences for the particular project. Please do not check this file back into DEXlib as other developers may have different preferences.
.repository file
The Protégé-specific file where your Ontology Repository setting are stored. Please do not check this file back into DEXlib as other developers may have different settings.

RD Development with Protégé

This section explains how to use the Protégé tool to specify various aspects of the PLCS Reference Data.

Complete On Superclass

create a Necessary & Sufficient Condition and define that a Superclass is made up of a union of subclasses. In Protégé:

Disjoint On Subclasses

you add a disjoint statement for each subclass. In Protégé:

Equivalent classes and other relationships

The OWL Language has the built in capability to state that two classes have exactly the same members. From the OWL Web Ontology Language Guide : The property owl:equivalentClass is used to indicate that two classes have precisely the same instances. Note that in OWL DL, classes simply denote sets of individuals, and are not individuals themselves. See Section 3.2.2 of the OWL Web Ontology Language Reference (

The OWL Language also has the built in capability to state that one class is defined as the unionOf, intersectionOf or complementOf of other classes. For the creation of PLCS Reference Data, this set theory capability of OWL is included in OWL DL and so may be used. See Section 3.1.3 of the OWL Web Ontology Language Reference(

Class equivalence can be created in Protege by:

  1. Selecting on of the equivalent classes.
  2. Select the "NECESSARY & SUFFICIENT" header in the "Asserted Conditions Widget".
  3. Click the "Add named class..." button to display a dialog containing the class hierarchy. Select the equivalent class and click the "OK" button to close the dialog.

An example screen shot of Protege is shown in Figure 3.

Figure 3 —  Qualifier classes

Figure 3 —  Qualifier classes

The resulting OWL is (using the RDF/XML abbreviated syntax which DEXlib RD no longer uses but which is simpler for a human to read):

  <owl:Class rdf:ID="y">
      <owl:Class rdf:ID="x"/>
  <owl:Class rdf:about="#x">
    <owl:equivalentClass rdf:resource="#y"/>

Multi-language class names and definitions

Define an rdfs:label annotation property to specify a human readable label for each class. At least an English label is required, using the 'en' language symbol. Additional labels in other natural languages may be added.

Define an rdfs:comment annotation property to specify the definition for each class. At least an English label is required, using the 'en' language symbol. Additional comments in other natural languages may be added.

Identifying classes as used in a DEX

This section has not yet been reviewed or agreed.

Identifying classes as used in a contract

This section has not yet been reviewed or agreed.

Who uses the class - which organization has contracted against an ontology or a subset of the ontologies?

How to identify classes that are used/required by a capability

This section has not yet been reviewed or agreed.

We may need to identify the Reference Data...

How does an organization extend/use the ontology.

An organization can extend the OASIS PLCS TC standard Reference Data by simply importing the plcs-std-rdl ontology into an OWL ontology of their own. The organization can then add new classes to their own OWL ontology as required. The OWL ontology owned by the organization that imports the standard RD provides the context for the data exchange. Any validation should occur with respect to the organization OWL ontology, including anything it imports.

Are there types of Reference Data classes to be taken into account?

This section has not yet been reviewed or agreed.


The PLCS information model is represented by converting the EXPRESS entities to OWL classes - EXPRESS/OWL classes. Reference data is generated by creating new OWL classes, not in the EXPRESS schema namespace though, that are related to the PLCS EXPRESS classes ususally via being a subClassOf, either directly or indirectly.

Model classes

This section has not yet been reviewed or agreed.

There is some Reference Data that is used to provide additional semantics to the PLCS information model or to clarify the ambiguity of the model. This Reference Data is typically used where the PLCS model is inadequate, but was not be modified in order to preserve compatibility with existing parts of the STEP standard.

Qualifier classes

This section has not yet been reviewed or agreed.

Qualifier classes are used to qualify an assignment. For example, a typical or actual date is represented by qualifying a express_ref linkend="date_time_assignment:arm:Date_time_assignment_arm.Date_or_date_time_assignment" as being typical or actual.

The application of a qualifier class is achieved by making the EXPRESS entity to which the qualifier applies a sub class. An example is shown in Figure 4.

Figure 4 —  Qualifier classes

Figure 4 —  Qualifier classes

Domain classes

This section has not yet been reviewed or agreed.

The majority of OWL classes are classes particular to a given domain.

Example classes

This section has not yet been reviewed or agreed.

During the development of the capabilities, some Reference Data is used as examples in the text describing the capability. Rather than including this Reference Data in the standard set of reference data to be published, it is stored in a separate OWL file plcs-rdl-examples.owl(../../data/refdata/plcs-rdl-examples.owl).


The Protégé Ontology Editor and Knowledge Acquisition System (

Protégé FAQ(

OWL Plugin FAQ(

Sun Java(