SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...Josef A. Habdank
 
Resilient Distributed DataSets - Apache SPARK
Resilient Distributed DataSets - Apache SPARKResilient Distributed DataSets - Apache SPARK
Resilient Distributed DataSets - Apache SPARKTaposh Roy
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQLvaluebound
 
Leveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache SparkLeveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache SparkNeo4j
 
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...Joshua Shinavier
 
JSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked DataJSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked DataGregg Kellogg
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registryconfluent
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patternsjoergreichert
 
Vectorized UDF: Scalable Analysis with Python and PySpark with Li Jin
Vectorized UDF: Scalable Analysis with Python and PySpark with Li JinVectorized UDF: Scalable Analysis with Python and PySpark with Li Jin
Vectorized UDF: Scalable Analysis with Python and PySpark with Li JinDatabricks
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4jNeo4j
 
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...Jeff Z. Pan
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema DesignMongoDB
 

Was ist angesagt? (20)

TinkerPop 2020
TinkerPop 2020TinkerPop 2020
TinkerPop 2020
 
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
Extreme Apache Spark: how in 3 months we created a pipeline that can process ...
 
Resilient Distributed DataSets - Apache SPARK
Resilient Distributed DataSets - Apache SPARKResilient Distributed DataSets - Apache SPARK
Resilient Distributed DataSets - Apache SPARK
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQL
 
Leveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache SparkLeveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache Spark
 
ShEx by Example
ShEx by ExampleShEx by Example
ShEx by Example
 
Apache Spark Overview
Apache Spark OverviewApache Spark Overview
Apache Spark Overview
 
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
 
JSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked DataJSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked Data
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registry
 
Spark SQL
Spark SQLSpark SQL
Spark SQL
 
SPARQL Cheat Sheet
SPARQL Cheat SheetSPARQL Cheat Sheet
SPARQL Cheat Sheet
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patterns
 
Vectorized UDF: Scalable Analysis with Python and PySpark with Li Jin
Vectorized UDF: Scalable Analysis with Python and PySpark with Li JinVectorized UDF: Scalable Analysis with Python and PySpark with Li Jin
Vectorized UDF: Scalable Analysis with Python and PySpark with Li Jin
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
 
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
 
Jena
JenaJena
Jena
 
Mongo DB Presentation
Mongo DB PresentationMongo DB Presentation
Mongo DB Presentation
 

Ähnlich wie HyperGraphQL

Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2Dimitris 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 WeldDatabricks
 
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 RDFDimitris Kontokostas
 
Overview of GraphQL & Clients
Overview of GraphQL & ClientsOverview of GraphQL & Clients
Overview of GraphQL & ClientsPokai Chang
 
GraphQL in Symfony
GraphQL in SymfonyGraphQL in Symfony
GraphQL in SymfonyBernd Alter
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph DatabasesPaolo 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 WorkshopAhmedabadJavaMeetup
 
Intro to Spark and Spark SQL
Intro to Spark and Spark SQLIntro to Spark and Spark SQL
Intro to Spark and Spark SQLjeykottalam
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"George Stathis
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsDr. Neil Brittliff
 
Linked data-tooling-xml
Linked data-tooling-xmlLinked data-tooling-xml
Linked data-tooling-xmlFelix Sasaki
 
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 ProcessingMongoDB
 
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 databasesData Ninja API
 

Ähnlich wie 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
 

Mehr von Szymon Klarman

Formal Verification of Data Provenance Records
Formal Verification of Data Provenance RecordsFormal Verification of Data Provenance Records
Formal Verification of Data Provenance RecordsSzymon Klarman
 
Data driven approaches to empirical discovery
Data driven approaches to empirical discoveryData driven approaches to empirical discovery
Data driven approaches to empirical discoverySzymon Klarman
 
ABox Abduction in the Description Logic
ABox Abduction in the Description LogicABox Abduction in the Description Logic
ABox Abduction in the Description LogicSzymon 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 UtilitySzymon Klarman
 
Description Logics of Context
Description Logics of ContextDescription Logics of Context
Description Logics of ContextSzymon 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 StreamsSzymon 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 QLSzymon 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 logicsSzymon 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 TechniquesSzymon 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 commitmentSzymon Klarman
 

Mehr von 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
 

Kürzlich hochgeladen

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Kürzlich hochgeladen (20)

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

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