SlideShare a Scribd company logo
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

More Related Content

What's hot

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
MongoDB
 
When to Use MongoDB...and When You Should Not...
When to Use MongoDB...and When You Should Not...When to Use MongoDB...and When You Should Not...
When to Use MongoDB...and When You Should Not...
MongoDB
 
GraphQL
GraphQLGraphQL
RDF 개념 및 구문 소개
RDF 개념 및 구문 소개RDF 개념 및 구문 소개
RDF 개념 및 구문 소개
Dongbum Kim
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and Transactions
Steven Francia
 
Introduction of Knowledge Graphs
Introduction of Knowledge GraphsIntroduction of Knowledge Graphs
Introduction of Knowledge Graphs
Jeff Z. Pan
 
An Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and KibanaAn Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and Kibana
ObjectRocket
 
Mongoose: MongoDB object modelling for Node.js
Mongoose: MongoDB object modelling for Node.jsMongoose: MongoDB object modelling for Node.js
Mongoose: MongoDB object modelling for Node.js
Yuriy Bogomolov
 
MongoDB presentation
MongoDB presentationMongoDB presentation
MongoDB presentation
Hyphen Call
 
Mongodb
MongodbMongodb
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
MongoDB
 
Building a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and OntologiesBuilding a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and Ontologies
Neo4j
 
An Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBAn Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDB
MongoDB
 
Towards Digital Twin standards following an open source approach
Towards Digital Twin standards following an open source approachTowards Digital Twin standards following an open source approach
Towards Digital Twin standards following an open source approach
FIWARE
 
Introduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & BahrainIntroduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & Bahrain
Neo4j
 
Neo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real WorldNeo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real World
Neo4j
 
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdfNeo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j
 
Sentry - An Introduction
Sentry - An Introduction Sentry - An Introduction
Sentry - An Introduction
Alexander Alten
 
Applicative style programming
Applicative style programmingApplicative style programming
Applicative style programming
José Luis García Hernández
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
Bishal Khanal
 

What's hot (20)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
When to Use MongoDB...and When You Should Not...
When to Use MongoDB...and When You Should Not...When to Use MongoDB...and When You Should Not...
When to Use MongoDB...and When You Should Not...
 
GraphQL
GraphQLGraphQL
GraphQL
 
RDF 개념 및 구문 소개
RDF 개념 및 구문 소개RDF 개념 및 구문 소개
RDF 개념 및 구문 소개
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and Transactions
 
Introduction of Knowledge Graphs
Introduction of Knowledge GraphsIntroduction of Knowledge Graphs
Introduction of Knowledge Graphs
 
An Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and KibanaAn Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and Kibana
 
Mongoose: MongoDB object modelling for Node.js
Mongoose: MongoDB object modelling for Node.jsMongoose: MongoDB object modelling for Node.js
Mongoose: MongoDB object modelling for Node.js
 
MongoDB presentation
MongoDB presentationMongoDB presentation
MongoDB presentation
 
Mongodb
MongodbMongodb
Mongodb
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
 
Building a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and OntologiesBuilding a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and Ontologies
 
An Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBAn Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDB
 
Towards Digital Twin standards following an open source approach
Towards Digital Twin standards following an open source approachTowards Digital Twin standards following an open source approach
Towards Digital Twin standards following an open source approach
 
Introduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & BahrainIntroduction to Neo4j for the Emirates & Bahrain
Introduction to Neo4j for the Emirates & Bahrain
 
Neo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real WorldNeo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real World
 
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdfNeo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
Neo4j Generative AI workshop at GraphSummit London 14 Nov 2023.pdf
 
Sentry - An Introduction
Sentry - An Introduction Sentry - An Introduction
Sentry - An Introduction
 
Applicative style programming
Applicative style programmingApplicative style programming
Applicative style programming
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
 

Similar to HyperGraphQL

Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2
Dimitris Kontokostas
 
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...
Databricks
 
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
Databricks
 
Triplestore and SPARQL
Triplestore and SPARQLTriplestore and SPARQL
Triplestore and SPARQLLino Valdivia
 
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
Dimitris Kontokostas
 
Overview of GraphQL & Clients
Overview of GraphQL & ClientsOverview of GraphQL & Clients
Overview of GraphQL & Clients
Pokai Chang
 
GraphQL in Symfony
GraphQL in SymfonyGraphQL in Symfony
GraphQL in Symfony
Bernd Alter
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
Paolo Pareti
 
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
 
Introduction to MongoDB and Workshop
Introduction to MongoDB and WorkshopIntroduction to MongoDB and Workshop
Introduction to MongoDB and Workshop
AhmedabadJavaMeetup
 
Intro to Spark and Spark SQL
Intro to Spark and Spark SQLIntro to Spark and Spark SQL
Intro to Spark and Spark SQL
jeykottalam
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"
George Stathis
 
React & GraphQL
React & GraphQLReact & GraphQL
React & GraphQL
Nikolas Burk
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your Analytics
Dr. Neil Brittliff
 
Graphql usage
Graphql usageGraphql usage
Graphql usage
Valentin Buryakov
 
Linked data-tooling-xml
Linked data-tooling-xmlLinked data-tooling-xml
Linked data-tooling-xml
Felix Sasaki
 
Semantic Web talk TEMPLATE
Semantic Web talk TEMPLATESemantic Web talk TEMPLATE
Semantic Web talk TEMPLATE
Oleksiy Pylypenko
 
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
MongoDB
 
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
Data Ninja API
 

Similar to 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
 

More from Szymon Klarman

Formal Verification of Data Provenance Records
Formal Verification of Data Provenance RecordsFormal Verification of Data Provenance Records
Formal Verification of Data Provenance Records
Szymon Klarman
 
Data driven approaches to empirical discovery
Data driven approaches to empirical discoveryData driven approaches to empirical discovery
Data driven approaches to empirical discovery
Szymon Klarman
 
ABox Abduction in the Description Logic
ABox Abduction in the Description LogicABox Abduction in the Description Logic
ABox Abduction in the Description Logic
Szymon Klarman
 
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
Szymon Klarman
 
Description Logics of Context
Description Logics of ContextDescription Logics of Context
Description Logics of Context
Szymon Klarman
 
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
Szymon Klarman
 
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
Szymon Klarman
 
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
Szymon Klarman
 
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
Szymon Klarman
 
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?
Szymon Klarman
 
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
Szymon Klarman
 

More from 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
 

Recently uploaded

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 

Recently uploaded (20)

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 

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