Skip to content
forked from Swirrl/cubiql

Experimental graphql service for querying multidimensional Linked Data Cubes

License

Notifications You must be signed in to change notification settings

zeginis/graphql-qb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CubiQL

Build Status

CubiQL (formerly called graphql-qb) is a proof of concept GraphQL service for querying Linked Data Cubes that was produced as part of the Open Gov Intelligence project.

The primary aim of graphql-qb is to facilitate the querying of multidimensional QB datasets through GraphQL in an easier more familiar way than through SPARQL.

Example

We have hosted an example graphql-qb service at graphql-qb.publishmydata.com which is currently using data from from statistics.gov.scot.

The graphql endpoint for this service can be found at: http://graphql-qb.publishmydata.com/graphql

Example Queries

Pagination

As CubiQL provides access to datacubes and slices containing potentially large amounts of observations, observations are paginated following the graphql recommendation. Paginating through the data might not however suit all consumers, and might even timeout on larger datasets. So we anticipate providing a download_link field into the observations schema #43.

You can see an example of a pagination query here. You'll notice that this query has been parameterised by a $page parameter, which is provided in the supplied variable map. So to get the next page of results you just need to supply a new map of variables with page bound to the last value of the next_page field.

Using graphql voyager

You can browse our schema by following these steps:

  1. Run the graphql voyager introspection query on our endpoint
  2. Copy the result of the above query to your clipboard
  3. Visit https://apis.guru/graphql-voyager/
  4. Select custom schema
  5. Paste the schema into the text area
  6. Click change schema.

You'll see something like: screen shot 2017-09-08 at 15 48 29

Running yourself

$ java -jar graphql-qb-0.1.0-standalone.jar OPTIONS

The available options are:

Name Default
port 8080
endpoint

For example to run the server against a remote SPARQL endpoint on port 9000:

$ java -jar graphql-qb-standalone.jar --port 9000 --endpoint http://remote-endpoint/sparql/query

If the endpoint is not specified the built-in test data will be used.

The server hosts a GraphQL endpoint at http://localhost:PORT/graphql which follows the protocol described here.

License

Copyright © 2017 Swirrl IT Ltd.

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

About

Experimental graphql service for querying multidimensional Linked Data Cubes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Clojure 100.0%