Rob Englebright edited this page Feb 26, 2014 · 23 revisions

Welcome to the XCRI-Aggregator wiki!

Important Note

Phase 1 of the XCRI aggregator development is drawing to a close. In this phase, we've been working on the processes and infrastructure to take in XCRI document feeds and make them available in a variety of aggregated data supply and search interfaces. Your feedback on both interfaces and data mappings is most welcome, but please be aware that this release is primarily functional, and we'll be addressing data issues in the next iteration. As data providers become more familiar with the tools we expect data quantity and quality to increase.

Web API Documentation

Retrieval / Data Access


Course data can be downloaded via the aggregator OAI interface, documented here: XCRI Aggregator OAI Interface.

Triple Store

Direct access to the Aggregator 4Store SPARQL engine is available and documented here: XCRI Aggregator SPARQL Interface.

Direct ElasticSearch

Direct access to the Aggregator ElasticSearch index is available and documented here: XCRI-CAP-Aggregator-Search-API-Description. The Elasticsearch REST API is defined here: http://www.elasticsearch.org/guide/reference/api/. This api is extensive and expressive, however you will need to geocode your own place names, and map coded vocabulary terms to human readable labels.

OpenSearch / Rest APIs

All discover URLs can be requested as REST-like services via content type negoitiation or the addition of ?format parameters. Search requests can be made for RSS or ATOM. More info is available at the XCRI Aggregator OpenSearch services. The OpenSearch interface is more restrictive than the direct ES interface, but has the advantage of being able to process placenames, towns and postcodes in the location parameter. The OpenSearch API also provides lookups so that facets like provider (which returns a coded facet) can be displayed with a human readable labels.

Language Specific APIs

The language specific APIs are here as a starter-for-10 to get you quickly going in different environments. They aren't fully featured applications, but should be enough to get you started. We welcome improvements, additions (As extensions to whats already present, new example apps, or new languages) and comments.


The sample .php code can be found in https://github.com/k-int/XCRI-Aggregator/tree/develop/toolkits/php. The sdk directory contains a helper class which is derived from the ES php snippet found on github. The example directory contains 2 pages, a search page and a list records page.

You might also like to checkout Elastica, a php ES client: https://github.com/ruflin/Elastica


Sample code can be found under https://github.com/k-int/XCRI-Aggregator/tree/develop/toolkits/dotnet


There is a XCRI java/grails sample application under https://github.com/k-int/XCRI-Aggregator/tree/develop/toolkits/java-grails.

Useful rest services