SKOS is a widely adopted W3C recommendation. It provides us with a standard way of expressing and exchanging concept schemes like taxonomies and thesauri. SKOS concept schemes are often managed in tools that provide a user-friendly way of managing these. Such tools typically have proprietary features, such as workflows, user management, audit trails, etc.
To enable machine interaction, most tools expose a proprietary web API. Unlike the data itself, which adhere to SKOS, these APIs do not adhere to a standard interface. This necessitates the creation of custom client software for machine interaction with each SKOS tool.
Based on recent developments in the semantic description of web APIs, a method of intelligent interaction between a SKOS client and API is proposed. This approach provides a way for machine clients to discover possible operations that the SKOS tool exposes at run-time, enabling the machine client to intelligently handle tasks. This allows for the creation of a generic intelligent SKOS client which can interact with multiple SKOS APIs.
With the rapid rise of semantic web technology, there is an increasing demand for the implementation of SKOS tools. As semantic web consultants, we are often required to migrate data from existing sources to some chosen SKOS environment. In order to leverage the capabilities of these tools, the specific tool’s API is used to automate tasks such as concept creation and organization. Working with multiple tools, the frustration of using different APIs to perform exactly the same tasks arises.
In this talk we introduce our approach to creating a client that can intelligently interact with SKOS web APIs. We introduce a SKOS API metamodel which describes the necessary SKOS resources and their properties, as well as the possible actions that can be performed on these.
We discuss the approach the intelligent client application must take to perform a requested task, how the client is able to discover the affordances that the SKOS API provides, and how it can interpret these and orchestrate the necessary actions to complete the task. Not every API is the same, and not all APIs will support all possible actions that the SKOS API metamodel enables. Therefore the client must be resilient and flexible.
We discuss how APIs must provide an RDF description which expresses how its operations implement the SKOS API metamodel, and which resources represent these, and how one can effectively create one if the API fails to do so.
Finally, we present the working SKOS API metamodel that we developed, and demonstrate our intelligent SKOS client as it interacts with a SKOS API of a SKOS tool implementation.