Monday, March 03, 2008

Metabolomics Ontologies: SKOS-ified the ArMet specification

The MetWare project is going to make use of ontology technologies to control the content of the database, and a first step is to convert our MetWare database design into something using a formal ontology language. I have played with OWL in the past (see for example its use in Bioclipse), but was not overly happy with it in all situations.

Then I read about SKOS, Simplified Knowledge Organisation System. Unlike OWL, SKOS is less strict on relations between concepts being marked up. Often these concepts are loosely bound, instead following a strict is_a hierarchy. ArMet is a Metabolomics knowledge system which does not have a strong hierarchy, and SKOS seemed to me to be the most suitable markup candidate. So, I SKOS-ified the ArMet specification, resulting in this rather simple document. The document is SKOS, but has an associated skos2html.xsl XSLT stylesheet, so that Firefox converts it to XHTML on the fly.

An entry looks like:
<skos:Concept rdf:about="GenotypeID">

<skos:definition>A unique identifier for the genotype.</skos:definition>
<skos:broader rdf:about="GenotypeProperty"/>

The full SKOS specification allows capturing much of what we want to do, including i18n via the label system, loos hierarchical relations via skos:broader, and the concepts of skos:Collection to aggregate concepts. Where needed, it allows borrowing from other languages. For example, to link concepts from MetWare to the original ArMet specification owl:sameAs can be used.