PROVING GROUND
about academic work proving ground  

HyperGraphQL

HyperGraphQL is a GraphQL interface for querying and serving linked data on the Web. It is designed to support federated querying and exposing data from multiple linked data services using GraphQL query language and schemas.

It serves several key objectives and application scenarios:

  • hiding the complexities of the Semantic Web stack behind the GraphQL interface, thus enabling access to linked data via a simpler and more familiar to many clients GraphQL interface;
  • enforcing a uniform, strict view over heterogenous linked data sources residing in disconnected multiple services, while preserving the original URIs and semantic links between them;
  • restricting access to linked data services (particularly RDF stores, as one of supported services) down to naturally definable subsets of (tree-shaped) queries, which can be more efficiently handled, thus minimising the impact on the service‚Äôs availability;
  • enabling easy deployment of reasonably sized linked datasets via embedded, in-memory Apache Jena storage, and exposing them via GraphQL endpoints;
  • facilitating construction of micorservice-based linked data architectures in a plug-and-play fashion.
As a response, HyperGraphQL returns a JSON-LD object that conveys full semantic context of the data. This makes HyperGraphQL a natural Linked Data Fragment interface for hypermedia-enabled Web APIs, backed by RDF stores.

Try it

A demo HyperGraphQL server running at http://hypergraphql.org/demo exposes small fragments of data from the http://dbpedia.org/sparql endpoint.

You can further expand and transform the resulting JSON-LD objects (attached to the data property of the responses) using JSON-LD playground.

Additional references

  • Szymon Klarman. Weaving Linked Data Cloud with (Hyper)GraphQL. Blog post, Semantic Integration, 2018. [post]

  • Szymon Klarman. Querying DBpedia with GraphQL. Blog post, Semantic Integration, 2017. [post]

  • GitHub repository

  • Project website