SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
HyperGraphQL
A GraphQL interface for
querying and serving
linked data
HyperGraphQL = linked data + GraphQL
Linked Data:
- A set of specifications and good practices
developed and recommended by W3C for
publishing (connected) data on the Web.
- In a narrow sense, a graph data model (RDF)
based on the use of URIs for identifying
resources and describing them with
subject-predicate-object triples.
GraphQL:
- A query language for APIs and a runtime
environment for fulfilling data requests.
- Originally developed by Facebook and
released in 2015.
- Predicted one of the most promising web
development technologies for 2018.
Linked data
Pros:
- Very flexible and expressive open-world,
schema-on-read, graph data model.
- Accompanied by highly expressive query
language SPARQL, along with a range of
other dedicated tools and standards (OWL,
SHACL, JSON-LD, RDFa).
Cons:
- The flexibility and the expressiveness of the
stack makes it sometimes demanding to
work with for developers (esp. front-end).
- Querying data from multiple sources
(federated querying) might easily get
complex and unreliable.
Overview
Objectives
- hiding the complexities of the Semantic Web
stack behind GraphQL interface
- enforcing a uniform, strict view over
heterogeneous linked data sources residing
in disconnected services
- restricting access to RDF stores down to
simple yet expressive (tree-shaped) GraphQL
queries
- facilitating construction of
microservice-based linked data
architectures in a “plug-and-play” fashion
Bridging the models
dbr:Albert_Einstein
dbo:Person dbr:Ulm
dbr:Germanydbo:City
dbo:Country
“Albert Einstein”
“Ulm”
“Germany”
rdf:type
rdf:type
rdf:type
dbo:birthPlace
dbo:country
foaf:name
rdfs:label
rdfs:label
Bridging the models
dbr:Albert_Einstein
dbo:Person dbr:Ulm
dbr:Germanydbo:City
dbo:Country
“Albert Einstein”
“Ulm”
“Germany”
rdf:type
rdf:type
rdf:type
dbo:birthPlace
dbo:country
foaf:name
rdfs:label
rdfs:label
type __Context {
Person: _@href(iri: "http://dbpedia.org/ontology/Person")
City: _@href(iri: "http://dbpedia.org/ontology/City")
Country: _@href(iri: "http://dbpedia.org/ontology/Country")
name: _@href(iri: "http://xmlns.com/foaf/0.1/name")
birthPlace: _@href(iri: "http://dbpedia.org/ontology/birthPlace")
country: _@href(iri: "http://dbpedia.org/ontology/country")
label: _@href(iri: "http://www.w3.org/2000/01/rdf-schema#label")
}
type Person @service(id:"dbpedia") {
name: [String] @service(id:"dbpedia")
birthPlace: City @service(id:"dbpedia")
}
type City @service(id:"dbpedia") {
label: [String] @service(id:"dbpedia")
country: Country @service(id:"dbpedia")
}
type Country @service(id:"dbpedia") {
label: [String] @service(id:"dbpedia")
}
Bridging the models
{
Person_GET {
_id
name
birthPlace {
label
country {
label
}
}
}
}
dbr:Albert_Einstein
dbo:Person dbr:Ulm
dbr:Germanydbo:City
dbo:Country
“Albert Einstein”
“Ulm”
“Germany”
rdf:type
rdf:type
rdf:type
dbo:birthPlace
dbo:country
foaf:name
rdfs:label
rdfs:label
Bridging the models
dbr:Albert_Einstein
dbo:Person dbr:Ulm
dbr:Germanydbo:City
dbo:Country
“Albert Einstein”
“Ulm”
“Germany”
rdf:type
rdf:type
rdf:type
dbo:birthPlace
dbo:country
foaf:name
rdfs:label
rdfs:label
{
Person_GET {
_id
name
birthPlace {
label
country {
label
}
}
}
}
Bridging the models
dbr:Albert_Einstein
dbo:Person dbr:Ulm
dbr:Germanydbo:City
dbo:Country
“Albert Einstein”
“Ulm”
“Germany”
rdf:type
rdf:type
rdf:type
dbo:birthPlace
dbo:country
foaf:name
rdfs:label
rdfs:label
{
"Person_GET": [{
"_id": "dbr:Albert_Einstein",
"name": "Albert Einstein",
"birthPlace": {
"label": "Ulm",
"country": {
"label": "Germany"
}
}
}]
"@context": { … } }
Querying SPARQL endpoint
Live demo (http://bit.ly/2Dd8rVa)
- Queries are rewritten to SPARQL and
delegated to the remote endpoint, from where
the relevant portion of data is fetched.
- Configuration:
{
"id": "dbpedia-sparql",
"type": "SPARQLEndpointService",
"url": "http://dbpedia.org/sparql/",
"graph": "http://dbpedia.org",
"user": "",
"password": ""
}
Exposing data from local file
Live demo (http://bit.ly/2DdeKIq)
- Queries are rewritten to SPARQL and
executed at the local in-memory triple store
where the RDF data from the file resides.
- Configuration:
{
"id": "agrovoc-local",
"type": "LocalModelSPARQLService",
"filepath": "agrovoc.ttl",
"filetype": "TTL"
}
Federated querying
Live demo (http://bit.ly/2mx04si)
- Query is partitioned into largest possible
subqueries that can be handled via single
request by each individual service within the
federation.
- Whenever possible such subqueries are
executed concurrently.
Summary & outlook
- HyperGraphQL is a lightweight, extensible
GraphQL query interface for linked data
services.
- Currently, it supports access to and
federation of SPARQL endpoints, local RDF
data, other HyperGraphQL endpoints.
- Setting up an instance requires providing a
simple configuration and a schema.
- Schema must be defined manually, but could
be automated under certain data modelling
assumptions.
- It supports a number of response formats,
including JSON-LD, RDF/XML, TURTLE,
N-TRIPLE.
Docs / demo / tutorial: http://hypergraphql.org
Twitter: @HyperGraphQL

Más contenido relacionado

La actualidad más candente

ORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate OverviewORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate Overview
Brett Meyer
 
MongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema DesignMongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema Design
MongoDB
 

La actualidad más candente (20)

MongoDB - Aggregation Pipeline
MongoDB - Aggregation PipelineMongoDB - Aggregation Pipeline
MongoDB - Aggregation Pipeline
 
JSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social WebJSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social Web
 
ORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate OverviewORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate Overview
 
MongoDB Aggregation Framework
MongoDB Aggregation FrameworkMongoDB Aggregation Framework
MongoDB Aggregation Framework
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQL
 
Choosing the Right Graph Database to Succeed in Your Project
Choosing the Right Graph Database to Succeed in Your ProjectChoosing the Right Graph Database to Succeed in Your Project
Choosing the Right Graph Database to Succeed in Your Project
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
 
Intro GraphQL
Intro GraphQLIntro GraphQL
Intro GraphQL
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
 
SPARQL introduction and training (130+ slides with exercices)
SPARQL introduction and training (130+ slides with exercices)SPARQL introduction and training (130+ slides with exercices)
SPARQL introduction and training (130+ slides with exercices)
 
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slidesSpring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
Spring - Part 2 - Autowiring, Annotations, Java based Configuration - slides
 
GraphQL
GraphQLGraphQL
GraphQL
 
Functional Domain Modeling - The ZIO 2 Way
Functional Domain Modeling - The ZIO 2 WayFunctional Domain Modeling - The ZIO 2 Way
Functional Domain Modeling - The ZIO 2 Way
 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDB
 
MongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema DesignMongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data: Schema Design
 
Building Applications with a Graph Database
Building Applications with a Graph DatabaseBuilding Applications with a Graph Database
Building Applications with a Graph Database
 
Introduction to sqoop
Introduction to sqoopIntroduction to sqoop
Introduction to sqoop
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
Neural Text Embeddings for Information Retrieval (WSDM 2017)
Neural Text Embeddings for Information Retrieval (WSDM 2017)Neural Text Embeddings for Information Retrieval (WSDM 2017)
Neural Text Embeddings for Information Retrieval (WSDM 2017)
 
SHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data MudSHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data Mud
 

Similar a HyperGraphQL

Triplestore and SPARQL
Triplestore and SPARQLTriplestore and SPARQL
Triplestore and SPARQL
Lino Valdivia
 
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Databricks
 

Similar a HyperGraphQL (20)

Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2
 
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
 
Composable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and WeldComposable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and Weld
 
Triplestore and SPARQL
Triplestore and SPARQLTriplestore and SPARQL
Triplestore and SPARQL
 
Danbri Drupalcon Export
Danbri Drupalcon ExportDanbri Drupalcon Export
Danbri Drupalcon Export
 
Graph databases & data integration - the case of RDF
Graph databases & data integration - the case of RDFGraph databases & data integration - the case of RDF
Graph databases & data integration - the case of RDF
 
Overview of GraphQL & Clients
Overview of GraphQL & ClientsOverview of GraphQL & Clients
Overview of GraphQL & Clients
 
GraphQL in Symfony
GraphQL in SymfonyGraphQL in Symfony
GraphQL in Symfony
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
 
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
 
Introduction to MongoDB and Workshop
Introduction to MongoDB and WorkshopIntroduction to MongoDB and Workshop
Introduction to MongoDB and Workshop
 
Intro to Spark and Spark SQL
Intro to Spark and Spark SQLIntro to Spark and Spark SQL
Intro to Spark and Spark SQL
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"
 
React & GraphQL
React & GraphQLReact & GraphQL
React & GraphQL
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your Analytics
 
Graphql usage
Graphql usageGraphql usage
Graphql usage
 
Linked data-tooling-xml
Linked data-tooling-xmlLinked data-tooling-xml
Linked data-tooling-xml
 
Semantic Web talk TEMPLATE
Semantic Web talk TEMPLATESemantic Web talk TEMPLATE
Semantic Web talk TEMPLATE
 
Document Model for High Speed Spark Processing
Document Model for High Speed Spark ProcessingDocument Model for High Speed Spark Processing
Document Model for High Speed Spark Processing
 
Applying large scale text analytics with graph databases
Applying large scale text analytics with graph databasesApplying large scale text analytics with graph databases
Applying large scale text analytics with graph databases
 

Más de Szymon Klarman

Más de Szymon Klarman (11)

Formal Verification of Data Provenance Records
Formal Verification of Data Provenance RecordsFormal Verification of Data Provenance Records
Formal Verification of Data Provenance Records
 
Data driven approaches to empirical discovery
Data driven approaches to empirical discoveryData driven approaches to empirical discovery
Data driven approaches to empirical discovery
 
ABox Abduction in the Description Logic
ABox Abduction in the Description LogicABox Abduction in the Description Logic
ABox Abduction in the Description Logic
 
Judgment Aggregation as Maximization of Epistemic and Social Utility
Judgment Aggregation as Maximization of Epistemic and Social UtilityJudgment Aggregation as Maximization of Epistemic and Social Utility
Judgment Aggregation as Maximization of Epistemic and Social Utility
 
Description Logics of Context
Description Logics of ContextDescription Logics of Context
Description Logics of Context
 
Prediction and Explanation over DL-Lite Data Streams
Prediction and Explanation over DL-Lite Data StreamsPrediction and Explanation over DL-Lite Data Streams
Prediction and Explanation over DL-Lite Data Streams
 
Querying Temporal Databases via OWL 2 QL
Querying Temporal Databases via OWL 2 QLQuerying Temporal Databases via OWL 2 QL
Querying Temporal Databases via OWL 2 QL
 
Ontology learning from interpretations in lightweight description logics
Ontology learning from interpretations in lightweight description logicsOntology learning from interpretations in lightweight description logics
Ontology learning from interpretations in lightweight description logics
 
Knowledge Assembly at Scale with Semantic and Probabilistic Techniques
Knowledge Assembly at Scale with Semantic and Probabilistic TechniquesKnowledge Assembly at Scale with Semantic and Probabilistic Techniques
Knowledge Assembly at Scale with Semantic and Probabilistic Techniques
 
What makes a linked data pattern interesting?
What makes a linked data pattern interesting?What makes a linked data pattern interesting?
What makes a linked data pattern interesting?
 
SKOS: Building taxonomies with minimum ontological commitment
SKOS: Building taxonomies  with minimum ontological commitmentSKOS: Building taxonomies  with minimum ontological commitment
SKOS: Building taxonomies with minimum ontological commitment
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Último (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

HyperGraphQL

  • 1. HyperGraphQL A GraphQL interface for querying and serving linked data
  • 2. HyperGraphQL = linked data + GraphQL Linked Data: - A set of specifications and good practices developed and recommended by W3C for publishing (connected) data on the Web. - In a narrow sense, a graph data model (RDF) based on the use of URIs for identifying resources and describing them with subject-predicate-object triples. GraphQL: - A query language for APIs and a runtime environment for fulfilling data requests. - Originally developed by Facebook and released in 2015. - Predicted one of the most promising web development technologies for 2018.
  • 3. Linked data Pros: - Very flexible and expressive open-world, schema-on-read, graph data model. - Accompanied by highly expressive query language SPARQL, along with a range of other dedicated tools and standards (OWL, SHACL, JSON-LD, RDFa). Cons: - The flexibility and the expressiveness of the stack makes it sometimes demanding to work with for developers (esp. front-end). - Querying data from multiple sources (federated querying) might easily get complex and unreliable.
  • 5. Objectives - hiding the complexities of the Semantic Web stack behind GraphQL interface - enforcing a uniform, strict view over heterogeneous linked data sources residing in disconnected services - restricting access to RDF stores down to simple yet expressive (tree-shaped) GraphQL queries - facilitating construction of microservice-based linked data architectures in a “plug-and-play” fashion
  • 6. Bridging the models dbr:Albert_Einstein dbo:Person dbr:Ulm dbr:Germanydbo:City dbo:Country “Albert Einstein” “Ulm” “Germany” rdf:type rdf:type rdf:type dbo:birthPlace dbo:country foaf:name rdfs:label rdfs:label
  • 7. Bridging the models dbr:Albert_Einstein dbo:Person dbr:Ulm dbr:Germanydbo:City dbo:Country “Albert Einstein” “Ulm” “Germany” rdf:type rdf:type rdf:type dbo:birthPlace dbo:country foaf:name rdfs:label rdfs:label type __Context { Person: _@href(iri: "http://dbpedia.org/ontology/Person") City: _@href(iri: "http://dbpedia.org/ontology/City") Country: _@href(iri: "http://dbpedia.org/ontology/Country") name: _@href(iri: "http://xmlns.com/foaf/0.1/name") birthPlace: _@href(iri: "http://dbpedia.org/ontology/birthPlace") country: _@href(iri: "http://dbpedia.org/ontology/country") label: _@href(iri: "http://www.w3.org/2000/01/rdf-schema#label") } type Person @service(id:"dbpedia") { name: [String] @service(id:"dbpedia") birthPlace: City @service(id:"dbpedia") } type City @service(id:"dbpedia") { label: [String] @service(id:"dbpedia") country: Country @service(id:"dbpedia") } type Country @service(id:"dbpedia") { label: [String] @service(id:"dbpedia") }
  • 8. Bridging the models { Person_GET { _id name birthPlace { label country { label } } } } dbr:Albert_Einstein dbo:Person dbr:Ulm dbr:Germanydbo:City dbo:Country “Albert Einstein” “Ulm” “Germany” rdf:type rdf:type rdf:type dbo:birthPlace dbo:country foaf:name rdfs:label rdfs:label
  • 9. Bridging the models dbr:Albert_Einstein dbo:Person dbr:Ulm dbr:Germanydbo:City dbo:Country “Albert Einstein” “Ulm” “Germany” rdf:type rdf:type rdf:type dbo:birthPlace dbo:country foaf:name rdfs:label rdfs:label { Person_GET { _id name birthPlace { label country { label } } } }
  • 10. Bridging the models dbr:Albert_Einstein dbo:Person dbr:Ulm dbr:Germanydbo:City dbo:Country “Albert Einstein” “Ulm” “Germany” rdf:type rdf:type rdf:type dbo:birthPlace dbo:country foaf:name rdfs:label rdfs:label { "Person_GET": [{ "_id": "dbr:Albert_Einstein", "name": "Albert Einstein", "birthPlace": { "label": "Ulm", "country": { "label": "Germany" } } }] "@context": { … } }
  • 11. Querying SPARQL endpoint Live demo (http://bit.ly/2Dd8rVa) - Queries are rewritten to SPARQL and delegated to the remote endpoint, from where the relevant portion of data is fetched. - Configuration: { "id": "dbpedia-sparql", "type": "SPARQLEndpointService", "url": "http://dbpedia.org/sparql/", "graph": "http://dbpedia.org", "user": "", "password": "" }
  • 12. Exposing data from local file Live demo (http://bit.ly/2DdeKIq) - Queries are rewritten to SPARQL and executed at the local in-memory triple store where the RDF data from the file resides. - Configuration: { "id": "agrovoc-local", "type": "LocalModelSPARQLService", "filepath": "agrovoc.ttl", "filetype": "TTL" }
  • 13. Federated querying Live demo (http://bit.ly/2mx04si) - Query is partitioned into largest possible subqueries that can be handled via single request by each individual service within the federation. - Whenever possible such subqueries are executed concurrently.
  • 14. Summary & outlook - HyperGraphQL is a lightweight, extensible GraphQL query interface for linked data services. - Currently, it supports access to and federation of SPARQL endpoints, local RDF data, other HyperGraphQL endpoints. - Setting up an instance requires providing a simple configuration and a schema. - Schema must be defined manually, but could be automated under certain data modelling assumptions. - It supports a number of response formats, including JSON-LD, RDF/XML, TURTLE, N-TRIPLE. Docs / demo / tutorial: http://hypergraphql.org Twitter: @HyperGraphQL