W3C

SKOS Implementation Report

XX March 2008


Implementations

This document reports on SKOS implementations. It assumes the following definitions of a SKOS reader, SKOS writer and SKOS checker.

SKOS Reader

A SKOS reader is a tool or application that takes as input a KOS represented using SKOS (in some concrete syntax, e.g. RDF/XML, turtle, N3 etc.), and parses that representation into some internal data structure. This document says nothing about what the tool must do with that data structure, or whether the data structure should conform to any standard. A SKOS reader is expected to accept all of the SKOS vocabulary, but may not necessarily provide internal representation for all constructs (for example, not all readers may fully understand/represent Collections).

SKOS Writer

A SKOS writer is a tool or application that is able to provide as output a SKOS representation of a KOS in an appropriate concrete syntax (e.g. RDF/XML, turtle, N3 etc.). The SKOS representation produced should respect the semantic conditions as given in the SKOS reference. Note that, depending on the internals of the application, a SKOS writer may not make use of all the SKOS vocabulary -- for example a simple hierarchy sketch-pad may just produce concept hierarchies using hierarchical semantic relations and lexical labels.

SKOS Checker

A SKOS checker is a tool or application that takes as input a KOS represented using SKOS (in some concrete syntax, e.g. RDF/XML, turtle, N3 etc.) and returns either true or false, depending on whether the SKOS representation provided respects the semantic conditions as given in the SKOS reference. A SKOS checker is expected to understand all of the SKOS core vocabulary. If the document does not respect the conditions, a detailed report may be provided. This document provides no statement as to how such a report should represented.

A single application or tool may play the role of reader, writer and checker.

Note that there are as yet, no formal tests provided for SKOS implementations.

The table below provides a summary template for SKOS implementations.

Name Home Reader Notes Writer Notes Checker Notes
mytool http://example.org/mytool Yes All Yes Lexical Labels
Notations
Documentation Properties
Semantic Relations
No --

SKOS API

Overview

The SKOS API [SKOS-API] provides a programmatic interface for working with SKOS vocabularies. The API consists of a collection of Java classes representing the SKOS data model, along with functionality for the parsing, creation and manipulation of SKOS vocabularies.

The API has been designed to work with SKOS models at a high level of abstraction to aid developers of applications that use SKOS, insulating them from underlying issues of concrete syntax.

The API is built on the OWL API, a set of Java libraries for the creation and manipulation of OWL ontologies. The SKOS API takes advantage of the fact that the SKOS vocabulary is defined as an OWL ontology. This provides benefits in terms of principled extensibility, for example, the definition of subproperties, and the potential for support of inference, such as querying across skos:broaderTransitive.

Name Home Reader Notes Writer Notes Checker Notes
SKOS API http://skosapi.sourceforge.net/ Yes As the SKOS API is built on OWL infrastructure, the API will, in principle, handle all SKOS constructs. Yes All No --

Additional Notes

As the SKOS API is built on OWL infrastructure, the API will, in principle, handle all SKOS constructs.

The SKOS API is implemented in Java and available as open source code.

SKOSEd

Overview

SKOSEd [SKOS-Ed] is an editor for SKOS vocabularies. The editor is implemented as a plugin for the Protege-4 framework, and makes use of the SKOS API and OWL API.

The editor allows users to load, create, edit and store SKOS vocabularies, and does not require users to be familiar with underlying concrete representations such as RDF/XML.

SKOSEd makes use of lexical labelling properties to provide human readable labels, and provides explicit support for multiple languages.

Name Home Reader Notes Writer Notes Checker Notes
SKOSEd http://code.google.com/p/skoseditor/ Yes As the SKOS API is built on the SKOS API the tool will, in principle, handle all SKOS constructs. Yes All No --

Additional Notes

SKOSEd has been successfully used with vocabularies up to nnn in size

The implementation of SKOSEd has also provided additional benefits, adding generic infrastructure to Protege-4, allowing the use of SKOS properties in ontology annotations.

SKOSEd is implemented in Java and available as open source code.

Constructs supported

Explicit support is provided for semantic relations, lexical properties, documentation and annotation properties.

References

[SKOS-API]
SKOS API. http://skosapi.sourceforge.net/
[SKOSEd]
SKOSEd. http://code.google.com/p/skoseditor/