Semantic terminology services

The STAR project has developed a pilot set of semantic web services, based upon the SKOS Core data model for thesauri and related knowledge organization systems. The services provide term look up in vocabularies known to the system, browsing and semantic concept expansion.

The service is based on a subset of the SWAD Europe SKOS API (follow JavaDoc link to get API), with extensions for concept expansion. The service currently consists of 7 function calls, which could be integrated into a textual or metadata based search system.

The services currently provide term look up across the thesauri held in the system, along with browsing and semantic concept expansion within a chosen thesaurus. This allows search to be augmented by SKOS-based vocabulary and semantic resources (assuming the services are used in conjunction with a search system).

Users may browse a concept space to explore and become familiar with specialist terminology or as part of a broader application. A query is often expressed at a different level of generalisation from document content or metadata, or may employ a slightly different semantic perspective. In combination with a search system, the services allow queries to be expanded (automatically or interactively) by synonyms or by expansion over the SKOS semantic relationships. Expansion is based on a measure of 'semantic closeness’.

For background, see publications in 2004 and 2006 (on KOS-based semantic expansion more generally). An earlier version of the current service was integrated with the DelosDLMS prototype Digital Library management system, built on the OSIRIS middleware environment and a brief account published (2007) in the Second DELOS Conference Proceedings (Section 8).


You are welcome to download a client demonstrator which is currently configured to operate with a subset of English Heritage thesauri. However it is compatible with any thesaurus (or related KOS) expressed in SKOS. We’re keen to receive any feedback or suggestions.

It’s intended as an pilot demonstrator of core functionality rather than any final user interface. Any operational versions would be tailored to particular use cases and would include more elaborate browsing facilities. An example of a more elaborate browsing interface can be found in the previous FACET Project’s Web demonstrator – see Query Builder (preAJAX, uses IE specific servlets for partial screen refresh).

SKOS WS client
It should install and run automatically (possibly after one or two initial questions).
A WSDL file and service description are available and an outline of the API follows.

The work is ongoing and we welcome any feedback or interest in collaboration on developing an API to support a rich range of SKOS use cases. Future steps might include implementing the full SKOS API and improved string matching capability, along with mapping functionality and considering how best to incorporate SKOS-based semantic functionality with a query API.

Current API

GetTopmostConcepts(uri: String) : Concept[]

Get Concepts at the ‘top’ of the hierarchies for specified ConceptScheme – returns an array of Concept.

GetConceptScheme(uri: String) : ConceptScheme

Get the specified ConceptScheme. Returns a single ConceptScheme object.

GetConceptSchemes() : ConceptScheme[]

Get all ConceptSchemes supported by the service. Returns an array of ConceptScheme objects.

GetConcept(uri : String) : Concept[]

Get the specified Concept. Returns a single Concept object.

GetAllConceptRelatives(uri: String) : ConceptRelative[]

Get all Concepts directly related to the specified Concept. Returns an array of ConceptRelative objects.

GetKeywordMatch(keyword: String, includeNPT: Boolean): RDFTriple[]

Match a string to literal values in the SKOS entry vocabulary (preferred and alternate labels), returns array of triples where the match occurs. Allows use of MySQL Boolean query operators in the match. By returning triples instead of Concepts it is clearer where the match occurs

ExpandConcept(uri: String, costBT: Double, costNT: Double, costRT: Double) : ConceptRelative[]

Concept expansion function, allows specification of traversal costs, used by the semantic closeness measure, currently for the core relationship types. Returns an array of ConceptRelative objects.

Technical details

SKOS_WS is a SOAP web service for vocabularies represented in SKOS Core Vocabulary. The service is written in C#, running on Microsoft .NET framework (version v2.0.50727) and is based on a subset of the SWAD Europe SKOS API, with extensions for concept expansion. The current implementation is SOAP based but we believe that a REST based http version would be possible. without much difficulty.

The client employs caching to speed up response. GetKeywordMatch currently uses the MySQL full text (Boolean) search, allowing various operator to be used/combined as necessary (see for details).

SKOS is a formal RDF/XML representation standard for the large family of vocabularies and concept structures, with an informal semantics designed for information retrieval purposes. This offers a lightweight, cost effective approach for annotation, search and browsing oriented applications that don’t require first order logic.

The client browser application requires .NET framework version 2 runtime installed as a prerequisite The package loads .NET if needed automatically (this works ok in our tests but .NET could also be loaded manually).

Please discuss any continuing need for access to the service over the long term. We are not guaranteeing to maintain current server demonstrator permanently but we are planning to publish the server software as open source by the end of the STAR project.

Related work on terminology services