API v1

The sections that follow can be experienced interactively via the swagger page for v1. That swagger page is also the reference documentation for the API.

Please be aware that due to the swagger implementation, rendering a lengthy result in your browser may take a very long time (minutes!). When calling the API from an application, keep in mind that all URL-provided parameters have to be URL encoded, as can be seen in the Request URL field after execution of an example call.

The GraphQL-LD endpoint

The endpoint /graphqlld is a versatile endpoint, providing full query access to the SKOS data.

Users need to understand the basics of the GraphQL query language and how it can be used to query linked data, with these details on queries you can write. The Comunica framework is used in this platform to provide this functionality.

Knowledge of JSON-LD is helpful, but not explicitly required, because the user does not need to provide a JSON-LD context; we're using a built-in context, covering the entire vocabulary used in our SKOS data.

A first input to this endpoint, query, is the GrapQL-LD query: a string. This is an example query, requesting information about a specific concept:

{
  TYPE(_:Concept)
  id(_:ID) @single
  prefLabel @single
  altLabel @optional
  definition @single @optional
}

In this example, ID is a parameter. Its value must be supplied in the second input of this endpoint, parameters, a simple JSON key-value structure. For the example, this JSON would do (we provide one of the available URIs that identify a specific concept):

{
  "ID": "http://ilearn.ilabt.imec.be/vocab/curr1/s-industrieel-onderhoud-en-ontwerp"
}

The endpoint returns a JSON-LD structure.

This way, we return information in a popular format, while keeping the semantic information in the payload.

Please note that, when trying out this endpoint using the swagger page, the example query and parameters are shown as a single line each, while the actual contents can contain newlines (as shown above). This is a limitation of the swagger presentation. When experimenting, these lines can be copied, formatted, modified and pasted back in those fields (including formatting).

The specific endpoints

These endpoints are in fact easy to use specialisations of what can be done using the GraphQL-LD endpoint. Possible users, not yet familiar with GraphQL-LD, can use them to quickly retrieve some typical information form the SKOS data.

The endpoints all return a JSON-LD structure, as described above for the GraphQL-LD endpoint.

The following endpoints provide resource-alike information.

The following endpoints provide overview-alike information.

The example endpoints

Available in v1 only

The endpoints that demonstrate example usage are not interesting in what they return as such, because these contents are based on example data, hardcoded in the demo code. They are interesting when having their implementation code at hand, to see how this code calls the endpoints described above.

Example endpoint /apps

This example starts from a (here hardcoded) set of "applications", all classified by means of one or more URIs of concepts in our metadata.

The intention of this endpoint is to see which of the known "applications" pass the filter that can be applied.

What the endpoint returns: a plain JSON structure, with contents depending on the parameters provided: