Vocabulary Search and Reuse
Discoverability and search capabilities are needed to improve reuse among vocabulary authors and prevent duplication of terms with the same or similar meaning. CoPs and vocabulary authors are expected to look for existing vocabulary terms and IRIs for Verbs and Activity Types when possible (instead of building new ones from scratch). However, searching for xAPI Verbs and Activity Types have been limited and have not supported a decentralized approach until now. Embracing LD principles for publishing and exposing xAPI vocabulary datasets as RDF will allow them to be more searchable and discoverable, improving opportunities for reuse.
When IRIs resolve to RDF representations of vocabulary datasets, they can be imported into any RDF-based “triplestore,” such as the vocabulary server hosted by ADL, http://xapi.vocab.pub. A triplestore, or RDF, store is a purpose-built database for the storage and retrieval of triples through semantic queries. Vocabulary datasets represented as RDF can be semantically queried using SPARQL.
As previously discussed in Resolving IRIs and Content Negotiation, there are already methods to retrieve remote vocabulary datasets through content negotiation and HTTP GET requests. This method is useful for applications that might require immediate access to a whole vocabulary dataset or meaning of a single term. Another, more powerful method is with the SPARQL protocol, which allows a SQL-like query statement to be sent to a service endpoint. The endpoint service exposes the data from a specific dataset IRI (aka Graph IRI) through a SPARQL query interface or it can even be returned as raw data. This method is useful for applications such as repositories or registries that might need to aggregate multiple vocabulary datasets and provide a way to browse, search, and inspect the meaning of individual terms from several unique sources. Besides querying RDF datasets from a single triplestore, SPARQL can allow for a federated search or querying of RDF datasets from multiple triplestore endpoints.
The SPARQL query language is widely used for querying RDF data and is currently supported in the xAPI Vocabulary Server, http://xapi.vocab.pub/sparql. It is expected that other xAPI community resources that store xAPI vocabulary data will also provide SPARQL service endpoints upon implementing the requirements in this specification. See the Vocabulary Primer for examples of some SPARQL query statements used with xAPI vocabulary datasets and their results.