Instantly share code, notes, and snippets.

Embed
What would you like to do?

GraphQL-LD

GraphQL-LD is a way to query Linked Data using GraphQL.

Instead of querying GraphQL interfaces, Linked Data interfaces are queried, such as SPARQL endpoints, TPF interfaces, Linked Data documents, ... This is done by semantifying GraphQL queries using a JSON-LD context.

Try it out from your browser: http://query.linkeddatafragments.org/

Alternatively, install Comunica SPARQL and execute GraphQL-LD queries on your machine

The basics

In order to execute queries, you'll need to parts:

  1. A GraphQL query: to select data
  2. A JSON-LD context: to map query fields to URIs

With this, GraphQL queries can be translated into a SPARQL query, using which any Linked Data source can be queried.

Example

Find all labels in a dataset

GraphQL query:

{
  label
}

JSON-LD context:

{
  "@context": {
    "label": { "@id": "http://www.w3.org/2000/01/rdf-schema#label" }
  }
}

This query will be translated into the following triple pattern:

_:b <http://www.w3.org/2000/01/rdf-schema#label> ?label

More information

If you want more details on how GraphQL-LD works, please refer to our article or our GraphQL to SPARQL tool

@elf-pavlik

This comment has been minimized.

Copy link

elf-pavlik commented Dec 13, 2018

Does it fully support JSON-LD @reverse? In other words, can GraphQL query include property only defined in JSON-LD context as @reverse of actual instance of rdf:Property used in the dataset?

@rubensworks

This comment has been minimized.

Copy link
Owner

rubensworks commented Jan 10, 2019

@elf-pavlik Yep, @reverse on properties is fully supported!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment