The eResearch Ontology Repository
This ontology repository allows you to store and retrieve ontologies and metadata about the ontologies. It keeps track of who uploaded ontologies and in which versions and it allows comparing different versions of one ontology.
The system is designed to work well in modern web browsers, in particular it allows using the back button and most pages can be bookmarked or sent as links (exception: the additional filters in the browse view will not be remembered). There is also extra styling information for printing that is intended to make printouts more efficient by suppressing the navigation elements.
The following sections give an overview of the features and their use.
Finding ontologies
The fastest way to access the repository is through searching on the front page. This will search the repository for ontologies matching your query terms in the title, in class or property names, in its description or keywords, or in comments within some file uploaded into the system. The results are displayed grouped by the field the match was found in.
Alternatively you can browse the categories used to classify ontologies. The repository uses a taxonomy according to which the ontology are classified. This can be accessed through the "Browse" section of the site, where you find a menu at the top that contains all categories available. Note that the taxonomy can contain categories with multiple parents in which case a category will appear under each of the parents.
On the right hand side is a checkbox to include or exclude ontologies that are not directly assigned to a category but to more specific categories. By default only categories assigned to the exact category are shown, if you check this box the results will show ontologies classified as belonging to more specific categories. If you toggle the feature without selecting a category, all ontologies will be shown -- depending on the number of ontologies that can mean accessing a large data set.
Once ontologies matching your selection are found a browsing view will appear below the navigation menu. It will show all ontologies matching the category selection, including their title and description. On the right hand side you will see further options to filter the selection, e.g. by selecting some keywords or by entering some text that should be in the ontology's metadata. Clicking on the title of one of the matches will take you to the description of that ontology.
Looking at an ontology
It is important to understand that the ontology repository distinguishes between an ontology as an abstract concept and the particular version of it expressed in the files uploaded. There is some metadata attached to the abstract notion of an ontology, e.g. its classification into a category, the title, a description and keywords and some information on who has what role regarding this ontology.
Ontology versions store the actual definition of the ontology, e.g. as an uploaded OWL file. A particular ontology might have only one version, but even then the file for this ontology will be attached to a version, not the ontology itself. Ontology versions also store some metadata as the submission date (the time the file was uploaded) and the user who uploaded the file.
There are a number of ways you can interact with the display of an ontology. In general URLs such as homepages of a project or organisation will be clickable and every occurance of a name of a user in the system links to that user's description. Clicking on a keyword automatically creates a query for that keyword so you can easily see if there is some other ontology using the same keyword.
Each version in the list will have a number of icons behind it that allow
getting more detailled information about this version. You can display an ontology
version in a page in the browser
(
),
look at the class hiearchy in a graphical view
(
)
or download the file that defines that version
(
).
More on the different views below.
If the ontology has multiple versions you will also find a button that allows showing the history of those versions. This is also described further below. The last section of the page allows viewing comments made on the ontology and logged-in users can leave their own comments.
Looking at an ontology version
There are two ways to look at the contents of an ontology version: either as a page listing all the contents or as a graphical display of the class hierarchy. Both views can be accessed through buttons in the list of the versions on the ontology page.
The textual view
The textual view lists the version's metadata at the top: who submitted it and when, it's status (e.g. "draft" or "final"), the name of the uploaded file and the description given when uploading. Below this buttons for the graphical view and for download are available.
The main part of the page lists the contents grouped into sections corresponding to different types of axioms in OWL. Each of these sections start collapsed showing only the number of entries available. Clicking on the section header of a collapsed section expands it, clicking onto a header of an open section collapses it. Within each of the sections all class and property names have a little marker which allows quickly searching for all ontologies that have a class or property with the same name.
The graphical view
The class hierarchy of an ontology can be shown as a graphical tree using a Java applet. There are some requirements for this to work:
- the browser must have a recent version of the Java plugin installed (Java 6 / JRE 1.6 is required)
- the ontology does not refer to external files (unsigned applets are not allowed to connect to other servers than the original one)
If both these conditions are met, the class hierarchy of an ontology can be seen as interactive graph. The basic functions of this view are:
- left click changes the zoom to the default and centers the view at the mouse position
- using the left mouse button to drag moves the view around
- right click changes the zoom to display the whole graph at once
- the mouse wheel changes the zoom (centered at the mouse position)
- entering text in the search field at the bottom will highlight all class names that start with the given text
The back button of the browser can be used to leave this view.
Comparing ontologies
If an ontology has at least two versions then a comparison of its versions can be shown in the Version History view. This view shows an overview of the class and property names used and allows comparing two particular versions against each other in a more detailled fashion.
The usage matrices of class and property names can be seen directly on the page by clicking on the matching section headers. Each matrix can also be downloaded in three text-based formats in either the displayed form or a transposed version. The three formats supported are:
- comma-separated values (CSV)
- A format commonly used for further processing in a spreadsheet application such as Excel or in relational databases
- object-attribute lists (OAL)
- A format listing each row of the matrix with the row label followed by a colon and then a semicolon-separated list of labels of columns that are set in that row
- formal context (CXT)
- A standard interchange format for tools used in Formal Concept Analysis (FCA), described elsewhere
The last section of the version history page contains links to compare two particular version against each other. Each link represents one comparison of two versions, usually intended to be used with an older version as "from" version, although both directions will be offered. By clicking on one of these links a comparison page similar to the page showing an ontology's contents is displayed.
The main difference between the normal content view and this comparison view is that the page is split into three main sections, showing the new axioms, the removed axioms and shared axioms. Each of these section is then furthered structured in the same way as the normal content page.
It is also to display the changes in the class hiearchy using the graphical view. This is accessed using the button on the top of the comparison page. The same graphical view as for the normal class hiearchies is opened, but this way it will show a hiearchy made of combining both hierarchies into one and marking removed classes red and added classes green. Shared classes use the normal blue color.
Creating your own entries
To add an ontology into the repository two steps have to be done: first an entry containing the metadata has to be created and then one or more versions have to be attached by uploading files.
Creating the main entry
Every logged in user can create a new entry for an ontology using the "New" item in the lefthand navigation. To create a new entry the basic metadata such as a title, a description, a category and some keywords (keywords are entered as comma-separated list). The user currently logged in will automatically be the owner of this ontology entry.
Some metadata is not requested for a new entry but can be added later by editing the metadata using the link on the ontology's page. Information such as the administering organisation and individuals attached in roles are not necessary to create an entry, but can be added later.
Uploading a version
The owner of an ontology entry can upload versions on the ontology page. To upload a version the form under the list of existing versions needs to be filled in. It contains a version number or identifier (the field allows any text to be entered), a status such as "draft" or "final" and a description. The last field allows chosing a file to be uploaded.
Once this form is submitted, the file will be uploaded and the repository will try to extract some information out of the file. For example the class and property names of OWL or OBO files will be extracted so they can be found using the search tools later. If this process should fail an error message will be displayed, but the file will still be uploaded and available for later download. Its contents will not be available for search, though.
Advanced search
If you want to be more specific about your queries you have two options: you can use more complex query syntax or you can use the "Advanced Search" page to query specific fields.
The query syntax used in the system is that of the underlying Lucene search engine. It is described in Lucene's online documentation. You can use nearly all the features described there, only the field that the search runs against is determined by the search field you use in the query forms. The query syntax can be used both in the quick search field on the front page as well as in the advanced search form.
By using the "Advanced Search" menu entry you can define a query against particular fields. You can enter terms into each form field, the query will be combined out of all these parts. Note that unless you precede a term with a plus symbol matching any given term is sufficient for a match, although the results should be ordered by match quality.
Features planned
You can not yet (but hopefully soon):
- delete comments
- rate ontologies
- attach references such as projects, publications and presentations to the ontologies
Known issues
Here are some known glitches:
- error handling can be bad in some situations, not providing any decent feedback to the user
- behaviour for large ontologies is not too nice -- we get massive load and often run out of memory (large = 10s of thousands classes/individuals/etc)
- the ontology viewer applet will try to access external references in an ontology (if they are exist), which will cause an exception since it runs in a sandbox without any permissions set
Ideas
Features that may or may not be implemented one day:
- manage who is able to edit an ontology (currently only the submitter)
- manage who is able to see an ontology (currently everyone)
- create administrative reports
- support for further file types
- get an overview of namespaces used by different ontologies and the overlap between ontologies
- mappings between ontologies as separate entities in the system
- a hot backup solution
- export/import of the metadata stored in the repository
- an integrated browser for the content of the ontologies
- better grouping of the diffs, most significantly putting domains and ranges onto the properties and classes involved
- allow threaded comments
- allow comments on ontology versions
- allow markup for comments and/or descriptions (and use DHTML component to edit those)
- download the difference between two ontology version in some machine-readable format (see e.g. Tim Berners-Lee's take on this)
- an auditing trail for all changes
- subscribe to changes to an ontology RSS and/or email notification
