Posted:February 10, 2011

SKOS Now Interoperates with OWL 2

Image courtesy of Instigated by UMBEL May Benefit Others

In the semantic Web, arguably SKOS is the right vocabulary for representing simple knowledge structures [1] and OWL 2 is the right language for asserting axioms and ontological relationships. In the early days we chose a reliance on SKOS for the UMBEL reference concept ontology, because of UMBEL’s natural role as a knowledge structure. Most recently we also migrated UMBEL to OWL 2 to gain (among other reasons) the metamodeling advantages of “punning”, which allows us to treat things as either classes or instances depending on modeling needs, context and viewpoint [2].

But — until today — we could not get SKOS and OWL 2 to play together nicely. This meant we could not take full advantage of each language’s respective strengths.

Happily, that gap has now been closed. By action of a relatively minor change by the SKOS Work Group (WG) and the addition of a simple statement, SKOS more fully interoperates with OWL 2.

Brief Description of the Issue

SKOS was and is purposefully designed to be simple and to stick to its knowledge system scope. The authors of the language avoided many restrictions and kept axioms regarding the language to a minimum. As a result, since its inception, in relation to OWL, the core SKOS has been expressed as OWL Full (that is, undecidable and more free-form in interpretation).

However, also for some time it has been understood that, with some relatively minor changes, the core SKOS language could be modified to be OWL DL (decidable). In fact, since June 2009 there has been a DL version of SKOS, called by the editors the “DL prune” [3]. A useful discussion of the specific axioms that cause the core SKOS to require interpretation as OWL Full is provided by the Semantic Web and Interoperability Group at the University of Patras [4].

Most of the conditions in question relate to the various annotation properties in SKOS, such as skos:prefLabel, skos:altLabel and skos:hiddenLabel. These are core constructs within the use of “semsets” to describe and refer to reference concepts in UMBEL [5]. Among others, a simple explanation for one issue is that these labels within SKOS are defined as sub-properties of rdfs:label, which is not allowable in OWL 2. Where such conflicts exist, they are removed (“pruned”) from the SKOS DL version. There are only a minor few of these, and not (in our view) central to the purpose or usefulness of SKOS.

For UMBEL, and we think other vocabularies, the transition to OWL 2 is important for many reasons, including the “punning” of individuals and classes. Other reasons include better handling of annotation properties, a better emerging set of tools, and the use of inference and reasoning engines.

Thus, to square this circle when using SKOS in OWL 2, it is important to refer to the DL version of SKOS and not SKOS core. However, since there was no version acknowledgment to the core in the SKOS DL namespace, it was not possible to make this reference while retaining general SKOS namespace (skos:XXX) compatibility.

How the SKOS WG Resolved the Issue

My UMBEL co-editor, Fred Giasson, first brought this issue to the SKOS WG’s attention in November [6]. He further suggested a relatively simple means to resolve the problem. By including a version reference in the SKOS DL version to SKOS core, consistent with the current OWL 2 specification [7], OWL 2-compliant tools will now know how to discern the proper references. This fix looks as follows:

   <rdf:Description rdf:about="">
      <owl:versionIRI rdf:resource=""/>

Now, in our ontology (UMBEL), we define the skos namespace (N3 format):

   @prefix skos: <> .

and, then, import the SKOS DL version:

   <> rdf:type owl:Ontology ;
      <-- statements --> ;
      owl:imports <> .

Pretty simple and straightforward.

With the expeditious treatment of the SKOS group [8], this proposal was floated and commented upon and then passed and adopted today. The change was also posted as an erratum to the SKOS specification [9]. As Fred reported [10], his testing of the fix with available tools (such as Protégé 4.1 and reasoners) also appears to be working properly (on a 58 MB file with 28 K concepts and all of their annotations and relationships!).

Some Final Notes

This is a good example of how even simple changes may make major differences. It also shows how even simple changes may take some time and effort in a standards-making environment. But, even though simple, we think this will be highly useful to keeping SKOS a central vocabulary within OWL 2-based systems. Within the context of conceptual and domain vocabularies, such as represented by UMBEL or other ontologies based on the UMBEL vocabulary or similar approaches, we see this as a major win.

Finally, as for UMBEL itself, this change has allowed us to remove duplicate predicates in favor of those from SKOS. It has also caused a delay in our release of UMBEL v. 1.00, planned for today, until February 15 to complete testing and documentation revisions. But we’ll gladly take a change like this in trade for a minor delay any day.

Thanks, SKOS!

[1] SKOS, or Simplified Knowledge Organization System, is a family of formal languages designed for representation of thesauri, classification schemes, taxonomies, subject-heading systems, or any other type of structured controlled vocabulary. SKOS is built upon RDF and RDFS, and its main objective is to enable easy publication of controlled structured vocabularies for the semantic Web.
[2] For a full explanation of this topic and its rationale for our work, see M. K. Bergman, 2010. “Metamodeling in Domain Ontologies,” September 20, 2010 posting on the AI3:::Adaptive Information blog;
[3] The first appearance of the DL-compliant listing, SKOS-RDF-OWL1-DL, appears in the June 2009 version of the latest SKOS specifications. It is described as a “pruned” subset of the SKOS specifications that conforms to OWL DL. The RDF file itself helpfully annotates the specific issues in the core language; see next note.
[4] See Also, there is other useful discussion on the SKOS mailing list by Antoine Isaac and the OWL Working Group’s comments to the SKOS WG on their last efforts.
[5] See this section in the UMBEL Specifications regarding the use of labels and “semsets.”
[8] We’d like to thank Tom Baker for leading the effort with the SKOS group, and also thank former group members Rinke Hoekstra, Uli Sattler and Bijan Parsia for their expressions of support. Markup

SKOS Now Interoperates with OWL 2

Changes Instigated by UMBEL May Benefit Others



By action of a relatively minor change by the SKOS Work Group (WG) and the addition of a simple statement, SKOS more fully interoperates with OWL 2

see above


Leave a Reply

Your email address will not be published. Required fields are marked *