The Explorer can be used standalone (just download and use) or can be embedded into your own site. Recline builds on the powerful but lightweight Backbone framework making it extremely easy to extend and adapt. The library's modular design mean means you only have to take what you need.
Usage instructions are built into the Data Explorer itself so no specific additional documentation is provided on usage.
To embed the data explorer in another site you can use a simple iframe in your web page:
Alternatively, you can initialize the explorer yourself from javascript. To see how to do this just take at look at the Explorer's initialization javascript in: app.js.
Note: A quick read through of the Concepts section will likely be useful in understanding the details of the examples.
Note: for all the following examples you should have included relevant Recline dependencies.
// Some data you have
// Your data must be in the form of list of documents / rows
// Each document/row is an Object with keys and values
var data = [
{id: 0, x: 1, y: 2, z: 3, country: 'UK', label: 'first'}
, {id: 1, x: 2, y: 4, z: 6, country: 'UK', label: 'second'}
, {id: 2, x: 3, y: 6, z: 9, country: 'US', label: 'third'}
];
// Create a Dataset object from local in-memory data
// Dataset object is a Backbone model - more info on attributes in model docs below
var dataset = recline.Backend.createDataset(data);
// Now create the main explorer view (it will create other views as needed)
// DataExplorer is a Backbone View
var explorer = recline.View.DataExplorer({
model: dataset,
// you can specify any element to bind to in the dom
el: $('.data-explorer-here')
});
// Start Backbone routing (if you want routing support)
Backbone.history.start();
// Connect to ElasticSearch index/type as our data source
// There are many other backends you can use (and you can write your own)
var backend = new recline.Backend.ElasticSearch();
// Dataset is a Backbone model so the first hash become model attributes
var dataset = recline.Model.Dataset({
id: 'my-id',
// url for source of this dataset - will be used by backend
url: 'http://localhost:9200/my-index/my-type',
// any other metadata e.g.
title: 'My Dataset Title'
},
backend
);
Recline has a simple structure layered on top of the basic Model/View distinction inherent in Backbone.
There are two main model objects:
Additional, related models:
More detail of how these work can be found in the Model source docs.
Backends connect Dataset and Documents to data from a specific 'Backend' data source. They provide methods for loading and saving Datasets and individuals Documents as well as for bulk loading via a query API and doing bulk transforms on the backend.
A template Base class can be found in the Backend base module of the source docs. It documents both the relevant methods a Backend must have and (optionally) provides a base 'class' for inheritance. You can also find detailed examples of backend implementations in the source documentation below.
Complementing the model are various Views (you can also easily write your own). Each view holds a pointer to a Dataset:
There are additional views which do not display a whole dataset but which are useful:
Max Ogden was developing Recline as the frontend data browser and editor for his http://datacouch.com/ project. Meanwhile, Rufus Pollock and the CKAN team at the Open Knowledge Foundation had been working on a Data Explorer for use in the DataHub and CKAN software.
When they met up, they realized that they were pretty much working on the same thing and so decided to join forces to produce the new Recline Data Explorer.
The new project forked off Max's original recline codebase combining some portions of the original Data Explorer. However, it has been rewritten from the ground up using Backbone.