BioPortal Reference Plugin

From Protege Wiki
Revision as of 17:08, July 28, 2009 by TaniaTudorache (talk | contribs)

Jump to: navigation, search

BioPortal Reference Plugin

by Tania Tudorache

The BioPortal Reference Plugin allows the user to insert into the ontology references to external ontologies and terminologies stored in BioPortal.

Versions & Compatibility

This section lists available versions of BioPortal Reference Plugin.

No version information available.

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


No version information available.


The BioPortal Reference Plugin allows the user to insert references to terms, classes, etc. from external ontologies and terminologies stored in BioPortal into his or her own ontology without the need to import the external ontology. The plugin allows the easy navigation from the domain ontology in Protege to the external ontology by simply clicking on the generated hyperlink of a reference. The hyperlink will take the user directly into BioPortal to the referenced term. The user may also search BioPortal for alternative terms.

The plugin is configurable and works with Protege OWL, RDF, Frames, client-server and all backends of Protege.

The plugin is a slot widget that can be attached to any object or annotation property in OWL, or any slot with value type instance, class or any in Frames.

How does it look like

Like this:


Under the hood

To store the internal representation of an external reference, the plugin creates by default an instance of a ExternalReference class. The plugin can be configured to create classes instead of instances for the external references. In OWL, the details of the external references are stored as values of predefined annotation properties (e.g., conceptId, ontologyName, url etc.).

An example of an external reference instance to class Country from the Galen ontology in BioPortal is shown below:


To search BioPortal, get the details of a reference, see a graph visualization, etc, the plugin invokes the BioPortal Restful Services.

How does it work

The usage of the plugin should be quite straightforward.

To create a new external reference just click on the link Create a new reference from BioPortal. After that you will see a popup window like this:


By default, the plugin will start a search in BioPortal using the selected class (or property, individual) name; in the case above, Heart. The panel shows the list of search results for the term from BioPortal: You will see the term name and the ontology in which it was found.

If you are not satisfied with the searched term or results, you may type in your own search term.

To import an external reference simply click on the Import link. A new external reference instance (or class, depending on your configuration) has been created for you.

Before importing, you also have the option of looking at the content of the term in BioPortal, by clicking on the little File icon on a row. You will see the details of the term from BioPortal (this will not be imported):


Alternatively, you may click on the little tree icon from a row to see a graph representation of the neighbourhood of the referenced term from BioPortal. A new window will open in your default web browser (e.g. Firefox, Safari, IE, etc.) showing the neighbourhood graph. You will need to have Flash installed to see the graph.


How to use it

The BioPortalReference plugin is just a slot widget, which means that it can be attached to properties at classes (also metaclasses) to be used instances (or classes).

Create a reference property

To use it with OWL projects, first decide on a property that will store as values the instances of external references. We suggest to use an annotation property, for example, externalReference. You may also use object properties, or just plain RDF properties. If you don't already have this property defined in your ontology, please create it.

Configure the form

Second step is to configure the form of the class where you want to use the plugin. For example, if you would like to add external references to all classes (e.g., Pizza class, Heart class, etc.), then you will have to configure the form of the owl:Class. To configure the form, click on a class in your ontology and click on the little F icon at the top-right hand side of the ClassesTab. You will get a dialog whether to make owl:Class visible, click OK.

Then go to the Forms Tab (you may already be there after closing the dialog), make sure that owl:Class is selected, and double click on an empty spot. You will get a dialog with all properties and their attached widget. For the reference property from step 1 (e.g., externalReference) associate the BioPortalReferenceWidget.

Note: The new widget will be created under the top widget (it's a bug), so just drag the top widget to right a little bit, and drag from underneath the BioPortalReference widget to a place of your choice in the UI.

Configure the widget

Normally, you would not change the default configuration of the widget, but in case you need to customize it for your own project please read this section. Otherwise, you may just skip it.

You may configure the widget in the Forms Tab by double clicking on the BioPortalReference widget. In the 'Columns Tab, you may configure what columns and the width of each column that should show up:


For example, you may remove the url slot and this will be removed from the display of the BioPortalReferenceWidget, or you may add other column, or switch the order.

In the Search Tab, you may configure the search parameters for BioPortal:


The result

Below is a screenshot that shows the OWLClasses tab, for which we have configured using the steps above, the BioPortalReference widget:

Pizza with BPRef.png

How to get the plugin

The plugin is a very recent development and did not make it into the Protege 3.4.1 release. We do plan to include it into the Protege 3.4.2 package release.

Until then, you will have to download from here and unzip it into your Protege 3.4.1 plugin folder.

Note: The plugin requires a change in the standard_extensions.jar, and hence, the zip does also contain the new version of standard_extensions.jar and will overwrite the existing jar.

The source code of the plugin is available in our SVN: and it is licensed under Mozilla Public License.

Where to get help and complain

If you have any problems with the plugin, please post a message on the protege mailing list (protege-owl for OWL ontologies, and protege-discussion for Protege frames ontologies). Instructions for posting on the lists are here:

Before posting, please check the email list archives, whether the question has already been answered:

Thank you!