Web Ontology Language and GeoNetwork ebRIM
GeoNetwork TV Research & Development
Presentation on Semantics in CSW/ebRIM at FOSS4G 2010
OWL and ebRIM
In a project for Juliet Gwenzi's Master thesis at the University Twente, the Netherlands, GeoNetwork TV has investigated the integration of OWL semantics into GeoNetwork ebRIM. OWL (Web Ontology Language) is a W3C recommendation that specifies a formal semantics for ontologies, intended to help the Semantic Web become a reality.
An OWL document is an ontology, or thesaurus. It describes a classification and categorization of concepts in some domain along with any relations between its classes.
Juliet Gwenzi's idea is that GeoNetwork's discovery function (i.e. search and browse) could be enhanced by providing an integration point with OWL ontologies. This would allow a user to discover metadata by querying and traversing the classification in the thesaurus, which can be an important addition to GeoNetwork's excellent full text search capabilities and its limited structured semantic search facilities (like metadata keywords). Compare it to the difference of finding web sites using Google (text search created by automatic indexing of content) or using Open Directory, which is a hierarchical categorization of web sites, created by humans.
Within GeoNetwork, the natural integration point for something like this is its CSW/ebRIM interface. Because ebRIM comes equipped with an integral extension mechanism, it is straightforward to add new, domain-specific extension packages to it. There is no need to change anything at all to the basics of the GeoNetwork CSW/ebRIM application source code to integrate and expose your custom extensions.
The general idea of the implementation is: you have an OWL ontology document. You transform it into an ebRIM Extension Package, which can easily be loaded into a GeoNetwork CSW/ebRIM installation. You apply terms from your ontology to repository items (ISO19139 documents) by associating registry objects that describe your repository items, with registry objects that describe your ontology. You can then query the ebRIM interface using queries that employ the concepts from your ontology. If all this sounds a bit abstract, hopefully we'll make it more clear in the sections below.
The work performed on the OWL - ebRIM integration in GeoNetwork is very recent and far from a finished, polished solution. It is intended as a starting point to encourage further development. This page describes the work done so far; it was done in a dedicated "sandbox" branch of GeoNetwork's SVN and when we think it is sufficiently useful we will include it in the general-audience GeoNetwork 3.0.x branch which contains your standard CSW/ebRIM interface.
implementation
The implementation of OWL integration in GeoNetwork CSW/ebRIM consists of the following:
- A transformation of OWL documents to an ebRIM Extension Package
- Some facilities to make it more easy to load Extension Packagages in your GeoNetwork CSW/ebRIM installation
- A GUI to make it more easy to relate elements of your OWL ontology to ISO19139 metadata registered in your GeoNetwork CSW/ebRIM installation
- A test case demonstrating querying your GeoNetwork CSW/ebRIM interface using ontology concepts
These are further explained in the following sections.
owl-to-ebrim transformation
The most challenging part of this work is to create a transformation from OWL documents into ebRIM Extension Packages. OWL is a rich language with various constructs such as multiple inheritance and anonymous inner classes, that takes some thought on how to best represent all its information content in ebRIM-format.
We have found related work Enriching ebXML Registries with OWL Ontologies for Efficient Service Discovery (pdf) that has been done at Middle East Technical University, Ankara, Turkey, by Dogac, Kabak & Laleci. They say they have already implemented a complete transformation from OWL to ebRIM as described in their paper. We have contacted Mr. Dogac to ask if he were willing to share their implementation, but we have received no reply. Therefore we proceeded to create our own transformation from OWL to ebRIM.
Our implementation of the OWL-to-ebRIM transformation covers part of the OWL language, but certainly not yet all of it. We are looking for organizations interested in funding the further development of this work.
You can see some examples of this on GeoNetwork TV:
- an example OWL ontology document, dealing with Severe Weather. It expresses things like "A typhoon is a tropical storm".
- the OWL-to-ebRIM XSLT transformation as it is at the time of writing. It covers such OWL constructs as (non-anonymous) classes and various relations between them, like SubClass etc etc.
- the result of applying the transformation to the example OWL document is this ebRIM Extension Package.
extension package loading
The standard GeoNetwork CSW/ebRIM implementation automatically loads the ebRIM Canonical data, the Basic Extension Package and the CIM Extension Package when the application starts. It does not provide an obvious way to load other arbitrary Extension Packages. We have created a function that automatically loads all extension packages that, at application start-up time, are sitting (as XML files) in a certain directory. This should be further improved by creating a function to upload, unload and delete extension packages at runtime.
association gui
In order to use the OWL ontology in the GeoNetwork/ebRIM installation, the terms from the ontology need to be applied to metadata in the system. We have created a simple GUI with a page containing a list of all the ISO19139 metadata in the system, and a list of the ontology terms loaded as an ebRIM Extension Package. The user can associate one or more ontology terms to ISO19139 metadata; they're saved as ebRIM Associations.
It may be possible to partially automate the association of ontology terms and metadata, for example by matching geographic regions in OWL documents to bounding boxes in the metadata.
Once the ontology terms are associated to the metadata, they can be used in searches. A CSW GetRecords search operation can include the desired associations in a Filter element to ask for e.g. all metadata associated to the ontology term "typhoon".
future work
The current implementation is more like a proof-of-concept than a finished, polished product. However with relatively little effort it can be made much more useful and usable, by expanding on the foundation work we've laid. Important points for future work are:
- Increase the range of OWL language contructs that are covered by the OWL-to-ebRIM transformation
- Create a GUI displaying the ontology in a pleasing and easy to navigate graph-like structure
- Use the ontology-graph-GUI in the already existing GUI where you can associate ontology items with ISO metadata
- Create a GUI using the ontology-graph-GUI to facilitate constructing and submitting queries to the CSW/ebRIM interface.