SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
BOSA.be
20 March 2019 – Brussels
Bart Hanssens
BOSA DG Digital Transformation
Graphs,
Stores
and APIs
Agenda
▪ Introduction
▪ Layers
▪ (Labeled) Property Graphs
▪ The case for identifiers
▪ Semantic Graphs (triples/quads in RDF)
▪ Similarities and differences
▪ Questions ?
Introduction
Source: https://xkcd.com/927/
Creative Commons Attribution-NonCommercial 2.5 License.
“No Highlander” rule of IT
▪ There will not be “only one”
▪ P (N  1) > P (1)
▪ See also: Not Invented Here Syndrome
▪ Also applies to
▪ “unique” identifiers
▪ Query languages
▪ File formats
▪ “generic” APIs
Layers
File
format
API
Model
Back-endBack-end
Model
Query LanguageQuery Language
API API API
File
format
File
format
File format
File formats
▪ No one format fits all
▪ CSV is fine for tabular data, but what about hierarchy
▪ XML and JSON not the fastest to produce / consume
▪ Did someone just say YAML ?
▪ … or binary / protocol buffers / thrift ?
API / Query Language
▪ Typically one wants to hide/shield the QL
▪ Security (SQL-injections, anyone ?)
▪ Flexibility (system may change, API should be stable)
▪ The distinction can be very thin
▪ SPARQL over HTTP, is it an API ?
▪ Query language often tied to model
▪ Translations may be possible, but may not be efficient
APIs with benefits
▪ Swagger / OpenAPI
▪ Hydra
▪ HyperMedia API, “next”, “previous”, “search”
▪ GraphQL
▪ “query language for API”
▪ Also provides pagination support
Query languages
▪ RDBMS: SQL
▪ Triple stores: SPARQL + some others
▪ Graph stores: (open)Cypher + others
▪ I-want-to-query-them-all-as-a-graph:
▪ Gremlin (Apache Tinkerpop)
GraphQL
▪ Created by Facebook
▪ https://graphql.org/learn/
▪ Often JSON
▪ API and query language
▪ E.g. use it to wrap REST-responses in one call
▪ Mappings/translations to e.g. SQL exist
▪ “shaping” results, data types,
▪ Pagination etc
▪ Not “linked” out-of-the box
Hydra + SHACL for linked data
▪ SHACL for validation (store) and shaping (results)
▪ Hydra Hypermedia API
▪ Often JSON-LD
▪ See also
▪ http://www.hydra-cg.com/
▪ https://github.com/Informatievlaanderen/generieke-
hypermedia-api
▪ Linked out of the box
Models / stores / backends
▪ RDBMS / graph / key-value (hello NoSQL, Big Data…)
▪ RDBMS: Oracle, Postgres
▪ Triple stores: RDF4J, Ontotext GraphDB, StarDog
▪ Graph stores: Neo4j, ArangoDB
▪ Storage underneath it can again be something else
▪ Maybe RDBMS uses key-value
▪ Graph / triple store : perhaps RDBMS, HashMaps, …
Hybrid stores
▪ Boundaries are blurring anyway
▪ IBM DB2 / Oracle + Spatial & Graph
▪ Virtuoso
▪ PostgreSQL (table inheritance, binary JSON …)
▪ BitNine AgensGraph (based on PostgreSQL)
Ha ! Your RDBMS can’t do XML, JSON, graphs …
▪ Yes it can !
▪ Although it might not be the most efficient way
▪ Recursive queries: SQL 1999
▪ Oracle: CONNECT BY… PRIOR
▪ WITH… RECURSIVE
▪ XML, XQuery: SQL 2003/2006
▪ JSON: SQL 2016
▪ And geo data too ! (e.g. PostGIS)
(Labeled) property graphs
Apple iPadProduces
AAPL
2010 -
shiny
Property Graphs
▪ Nodes/edges connected by vertex/vertices
▪ Can have additional labels / properties on “relations”
▪ E.g. a comment, date range…
▪ Not “linked” in the semantic web sense
▪ Similar to RDBMS export, it’s all about identifiers
The case for identifiers
Data wants to be combined
▪ Data (files) from =/= sources will be combined
▪ Hence there is a need for “keys” or “identifiers”
▪ Preferably
▪ globally unique
▪ (Semi-)decentralized
▪ API to get more info about the “thing”, if needed
Many options
▪ Specific schemes like EAN / UPC / ISBN / DOI
▪ More generic solutions: UUID, OID
▪ You could even use IPv6
▪ Reverse domain name dev style: be.bosa.dto.pkg
▪ Or… URL as identifier
▪ People use URL all the time anyway to surf the web
▪ … so can machines
Semantic Graphs
Apple iPadProduces
HasTicker
AAPL shiny
Screenis
Resource Description Framework
▪ Triples
▪ <subject> <predicate> <object>
▪ <A> <something about> <B>
▪ The WWW can be half the API
▪ GET a URI for additional info
▪ Content / file format negotiation via HTTP-Accept
Cheating a little bit in RDF
▪ <object> can be a literal with a type OR a language
▪ “hello”@en
▪ “15”^^xsd:integer
▪ Not both, sorry, and not on <subject> or <predicate>
Cheating even more in RDF
▪ Quads: concept of “context” or “graph”
▪ Basically: one or more triples in named collection / graph
▪ This graph is again “URI” so it can be a <subject>
▪ <subject> <predicate> <object> <graph>
▪ But still no direct labels / properties on relations
Similarities and differences
Main differences
▪ Metadata on “relations”
▪ Property graphs can have metadata on relations
▪ Triples cannot do this directly (indirectly, very verbose)
▪ Semantics
▪ Not part of property graphs, on top op RDF
▪ Then again, few systems actually use reasoning
Main differences (2)
▪ Nice(r) visualization in PG products
▪ E.g. “local” data analysis
▪ Standardization in RDF !
▪ SKOS mapping, RDF(S), SHACL, Core Vocabularies…
▪ (meta)data exchange and linking/combining data
Similarities
▪ RDF and PG typically weaker enforcing than RDBMS
▪ RDBMS have triggers, constraints, type checks etc
▪ Often a specific “shape” of data is wanted by the user
▪ Work in progress
▪ Either GraphQL at the API level
▪ Hydra API + SHACL
Will they merge ?
▪ Industry would like to combine PG and RDF
▪ See also W3C event organized by Neo4J and Ontotext
▪ https://www.w3.org/Data/events/data-ws-2019/
▪ Suggestion for RDF* / SPARQL*
▪ http://olafhartig.de/slides/RDFStarInvitedTalkWSP2018.
pdf
Questions ?
Do I need a triple / graph store for linked data ?
▪ You don’t have an HTML-database for websites either
▪ It depends on queries, business case and developers
▪ If you want relations, constraints and data in the same
table-like structure, and your toolbox is all relational …
use an RDBMS
Who’s using RDF anyway ?
▪ Solid / Inrupt social, user-centric linked data apps
▪ https://solid.inrupt.com/about
▪ https://github.com/solid/solid
▪ https://ruben.verborgh.org/articles/redecentralizing-
the-web/
▪ Metadata exchange using EU CoreVocabularies
▪ SEO: schema.org embedded in web pages
▪ https://developers.google.com/search/docs/guides/intro
-structured-data
Can GraphQL query RDBMS, graphs, RDF ?
▪ Yes but… translations may be needed
▪ Performance ?
▪ It will most likely not the only API
▪ Remember SOAP, Swagger…
▪ But not “semantic” / “linked” out of the box
▪ See also https://comunica.github.io/Article-ISWC2018-
Demo-GraphQlLD/
Can SPARQL query RDBMS, map data to RDF ?
▪ Well, if you really want to …
▪ http://d2rq.org/
▪ http://rml.io/RML_Input.html
Interesting linked data resources
▪ Modular Linked data Javascript framework
▪ http://comunica.linkeddatafragments.org
▪ Linked Data Cubes for statistical data
▪ http://www.proxml.be/losd/cubes.html
▪ Metreeca linked data components
▪ https://www.metreeca.com/software/
BOSA.be
@BartHanssens
Thank you !

Contenu connexe

Similaire à Graphs, Stores and API

RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itJose Luis Lopez Pino
 
SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?
SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?
SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?Mark Rittman
 
HTML5 표준 소개
HTML5 표준 소개HTML5 표준 소개
HTML5 표준 소개Chris
 
Publishing RDF SKOS with microservices
Publishing RDF SKOS with microservicesPublishing RDF SKOS with microservices
Publishing RDF SKOS with microservicesBart Hanssens
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and HowBigBlueHat
 
Apache spark on Hadoop Yarn Resource Manager
Apache spark on Hadoop Yarn Resource ManagerApache spark on Hadoop Yarn Resource Manager
Apache spark on Hadoop Yarn Resource Managerharidasnss
 
8th TUC Meeting - Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...
8th TUC Meeting -  Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...8th TUC Meeting -  Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...
8th TUC Meeting - Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...LDBC council
 
Improving Human–Semantic Web Interaction: The Rhizomer Experience
Improving Human–Semantic Web Interaction: The Rhizomer ExperienceImproving Human–Semantic Web Interaction: The Rhizomer Experience
Improving Human–Semantic Web Interaction: The Rhizomer ExperienceRoberto García
 
Transformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs PigTransformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs PigLester Martin
 
Scalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex GryzlovScalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex GryzlovVasil Remeniuk
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph DatabasesPaolo Pareti
 
Ruby semweb 2011-12-06
Ruby semweb 2011-12-06Ruby semweb 2011-12-06
Ruby semweb 2011-12-06Gregg Kellogg
 
Lightning Fast Dataframes with Polars
Lightning Fast Dataframes with PolarsLightning Fast Dataframes with Polars
Lightning Fast Dataframes with PolarsAlberto Danese
 

Similaire à Graphs, Stores and API (20)

Danbri Drupalcon Export
Danbri Drupalcon ExportDanbri Drupalcon Export
Danbri Drupalcon Export
 
Taming NoSQL with Spring Data
Taming NoSQL with Spring DataTaming NoSQL with Spring Data
Taming NoSQL with Spring Data
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use it
 
SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?
SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?
SQL-on-Hadoop for Analytics + BI: What Are My Options, What's the Future?
 
HTML5 표준 소개
HTML5 표준 소개HTML5 표준 소개
HTML5 표준 소개
 
Publishing RDF SKOS with microservices
Publishing RDF SKOS with microservicesPublishing RDF SKOS with microservices
Publishing RDF SKOS with microservices
 
ArangoDB
ArangoDBArangoDB
ArangoDB
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Drupal and the Semantic Web
Drupal and the Semantic WebDrupal and the Semantic Web
Drupal and the Semantic Web
 
Apache spark on Hadoop Yarn Resource Manager
Apache spark on Hadoop Yarn Resource ManagerApache spark on Hadoop Yarn Resource Manager
Apache spark on Hadoop Yarn Resource Manager
 
8th TUC Meeting - Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...
8th TUC Meeting -  Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...8th TUC Meeting -  Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...
8th TUC Meeting - Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...
 
Improving Human–Semantic Web Interaction: The Rhizomer Experience
Improving Human–Semantic Web Interaction: The Rhizomer ExperienceImproving Human–Semantic Web Interaction: The Rhizomer Experience
Improving Human–Semantic Web Interaction: The Rhizomer Experience
 
Big Data Journey
Big Data JourneyBig Data Journey
Big Data Journey
 
Transformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs PigTransformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs Pig
 
Scalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex GryzlovScalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex Gryzlov
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
 
Ruby semweb 2011-12-06
Ruby semweb 2011-12-06Ruby semweb 2011-12-06
Ruby semweb 2011-12-06
 
Uotm workshop
Uotm workshopUotm workshop
Uotm workshop
 
Lightning Fast Dataframes with Polars
Lightning Fast Dataframes with PolarsLightning Fast Dataframes with Polars
Lightning Fast Dataframes with Polars
 
RDFa
RDFaRDFa
RDFa
 

Plus de Bart Hanssens

OpenFed, a Drupal distribution
OpenFed, a Drupal distributionOpenFed, a Drupal distribution
OpenFed, a Drupal distributionBart Hanssens
 
Open Summer of Code in Belgium
Open Summer of Code in BelgiumOpen Summer of Code in Belgium
Open Summer of Code in BelgiumBart Hanssens
 
Open Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To CodeOpen Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To CodeBart Hanssens
 
Werkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mappingWerkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mappingBart Hanssens
 
Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9Bart Hanssens
 
Open Data at the Federal Level 2021
Open Data at the Federal Level 2021Open Data at the Federal Level 2021
Open Data at the Federal Level 2021Bart Hanssens
 
Open Data workshop Agoria ICT
Open Data workshop Agoria ICTOpen Data workshop Agoria ICT
Open Data workshop Agoria ICTBart Hanssens
 
Atelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICTAtelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICTBart Hanssens
 
Open Source and Open Data
Open Source and Open DataOpen Source and Open Data
Open Source and Open DataBart Hanssens
 
Open Community Projects
Open Community ProjectsOpen Community Projects
Open Community ProjectsBart Hanssens
 
From webform to API using microframeworks
From webform to API using microframeworksFrom webform to API using microframeworks
From webform to API using microframeworksBart Hanssens
 
Linked Data: Introductie
Linked Data: IntroductieLinked Data: Introductie
Linked Data: IntroductieBart Hanssens
 
Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020Bart Hanssens
 
BOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de servicesBOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de servicesBart Hanssens
 
Local and Regional digital transformation in Belgium
Local and Regional digital transformation in BelgiumLocal and Regional digital transformation in Belgium
Local and Regional digital transformation in BelgiumBart Hanssens
 
Voordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webVoordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webBart Hanssens
 

Plus de Bart Hanssens (20)

OpenFed, a Drupal distribution
OpenFed, a Drupal distributionOpenFed, a Drupal distribution
OpenFed, a Drupal distribution
 
Open Summer of Code in Belgium
Open Summer of Code in BelgiumOpen Summer of Code in Belgium
Open Summer of Code in Belgium
 
Open Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To CodeOpen Belgium 2022: Prepare To Code
Open Belgium 2022: Prepare To Code
 
Werkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mappingWerkgroep metadata: INSPIRE - DCAT-AP mapping
Werkgroep metadata: INSPIRE - DCAT-AP mapping
 
Overzicht DCAT-AP
Overzicht DCAT-APOverzicht DCAT-AP
Overzicht DCAT-AP
 
Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9Quarkus, Jib én OpenJ9
Quarkus, Jib én OpenJ9
 
Open Data at the Federal Level 2021
Open Data at the Federal Level 2021Open Data at the Federal Level 2021
Open Data at the Federal Level 2021
 
Open Data workshop Agoria ICT
Open Data workshop Agoria ICTOpen Data workshop Agoria ICT
Open Data workshop Agoria ICT
 
Atelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICTAtelier Open Data / Agoria ICT
Atelier Open Data / Agoria ICT
 
Open Source and Open Data
Open Source and Open DataOpen Source and Open Data
Open Source and Open Data
 
Données ouvertes
Données ouvertesDonnées ouvertes
Données ouvertes
 
Open Data
Open DataOpen Data
Open Data
 
Open Community Projects
Open Community ProjectsOpen Community Projects
Open Community Projects
 
From webform to API using microframeworks
From webform to API using microframeworksFrom webform to API using microframeworks
From webform to API using microframeworks
 
Linked Data: Introductie
Linked Data: IntroductieLinked Data: Introductie
Linked Data: Introductie
 
JavaVMs en GraalVM
JavaVMs en GraalVMJavaVMs en GraalVM
JavaVMs en GraalVM
 
Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020Open data, what's cooking at the federal level 2020
Open data, what's cooking at the federal level 2020
 
BOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de servicesBOSA DG DT: opendata et intégrateur de services
BOSA DG DT: opendata et intégrateur de services
 
Local and Regional digital transformation in Belgium
Local and Regional digital transformation in BelgiumLocal and Regional digital transformation in Belgium
Local and Regional digital transformation in Belgium
 
Voordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic webVoordeel halen uit zoekmachines en semantic web
Voordeel halen uit zoekmachines en semantic web
 

Dernier

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Dernier (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Graphs, Stores and API

  • 1. BOSA.be 20 March 2019 – Brussels Bart Hanssens BOSA DG Digital Transformation Graphs, Stores and APIs
  • 2. Agenda ▪ Introduction ▪ Layers ▪ (Labeled) Property Graphs ▪ The case for identifiers ▪ Semantic Graphs (triples/quads in RDF) ▪ Similarities and differences ▪ Questions ?
  • 3. Introduction Source: https://xkcd.com/927/ Creative Commons Attribution-NonCommercial 2.5 License.
  • 4. “No Highlander” rule of IT ▪ There will not be “only one” ▪ P (N 1) > P (1) ▪ See also: Not Invented Here Syndrome ▪ Also applies to ▪ “unique” identifiers ▪ Query languages ▪ File formats ▪ “generic” APIs
  • 6. File formats ▪ No one format fits all ▪ CSV is fine for tabular data, but what about hierarchy ▪ XML and JSON not the fastest to produce / consume ▪ Did someone just say YAML ? ▪ … or binary / protocol buffers / thrift ?
  • 7. API / Query Language ▪ Typically one wants to hide/shield the QL ▪ Security (SQL-injections, anyone ?) ▪ Flexibility (system may change, API should be stable) ▪ The distinction can be very thin ▪ SPARQL over HTTP, is it an API ? ▪ Query language often tied to model ▪ Translations may be possible, but may not be efficient
  • 8. APIs with benefits ▪ Swagger / OpenAPI ▪ Hydra ▪ HyperMedia API, “next”, “previous”, “search” ▪ GraphQL ▪ “query language for API” ▪ Also provides pagination support
  • 9. Query languages ▪ RDBMS: SQL ▪ Triple stores: SPARQL + some others ▪ Graph stores: (open)Cypher + others ▪ I-want-to-query-them-all-as-a-graph: ▪ Gremlin (Apache Tinkerpop)
  • 10. GraphQL ▪ Created by Facebook ▪ https://graphql.org/learn/ ▪ Often JSON ▪ API and query language ▪ E.g. use it to wrap REST-responses in one call ▪ Mappings/translations to e.g. SQL exist ▪ “shaping” results, data types, ▪ Pagination etc ▪ Not “linked” out-of-the box
  • 11. Hydra + SHACL for linked data ▪ SHACL for validation (store) and shaping (results) ▪ Hydra Hypermedia API ▪ Often JSON-LD ▪ See also ▪ http://www.hydra-cg.com/ ▪ https://github.com/Informatievlaanderen/generieke- hypermedia-api ▪ Linked out of the box
  • 12. Models / stores / backends ▪ RDBMS / graph / key-value (hello NoSQL, Big Data…) ▪ RDBMS: Oracle, Postgres ▪ Triple stores: RDF4J, Ontotext GraphDB, StarDog ▪ Graph stores: Neo4j, ArangoDB ▪ Storage underneath it can again be something else ▪ Maybe RDBMS uses key-value ▪ Graph / triple store : perhaps RDBMS, HashMaps, …
  • 13. Hybrid stores ▪ Boundaries are blurring anyway ▪ IBM DB2 / Oracle + Spatial & Graph ▪ Virtuoso ▪ PostgreSQL (table inheritance, binary JSON …) ▪ BitNine AgensGraph (based on PostgreSQL)
  • 14. Ha ! Your RDBMS can’t do XML, JSON, graphs … ▪ Yes it can ! ▪ Although it might not be the most efficient way ▪ Recursive queries: SQL 1999 ▪ Oracle: CONNECT BY… PRIOR ▪ WITH… RECURSIVE ▪ XML, XQuery: SQL 2003/2006 ▪ JSON: SQL 2016 ▪ And geo data too ! (e.g. PostGIS)
  • 15. (Labeled) property graphs Apple iPadProduces AAPL 2010 - shiny
  • 16. Property Graphs ▪ Nodes/edges connected by vertex/vertices ▪ Can have additional labels / properties on “relations” ▪ E.g. a comment, date range… ▪ Not “linked” in the semantic web sense ▪ Similar to RDBMS export, it’s all about identifiers
  • 17. The case for identifiers
  • 18. Data wants to be combined ▪ Data (files) from =/= sources will be combined ▪ Hence there is a need for “keys” or “identifiers” ▪ Preferably ▪ globally unique ▪ (Semi-)decentralized ▪ API to get more info about the “thing”, if needed
  • 19. Many options ▪ Specific schemes like EAN / UPC / ISBN / DOI ▪ More generic solutions: UUID, OID ▪ You could even use IPv6 ▪ Reverse domain name dev style: be.bosa.dto.pkg ▪ Or… URL as identifier ▪ People use URL all the time anyway to surf the web ▪ … so can machines
  • 21. Resource Description Framework ▪ Triples ▪ <subject> <predicate> <object> ▪ <A> <something about> <B> ▪ The WWW can be half the API ▪ GET a URI for additional info ▪ Content / file format negotiation via HTTP-Accept
  • 22. Cheating a little bit in RDF ▪ <object> can be a literal with a type OR a language ▪ “hello”@en ▪ “15”^^xsd:integer ▪ Not both, sorry, and not on <subject> or <predicate>
  • 23. Cheating even more in RDF ▪ Quads: concept of “context” or “graph” ▪ Basically: one or more triples in named collection / graph ▪ This graph is again “URI” so it can be a <subject> ▪ <subject> <predicate> <object> <graph> ▪ But still no direct labels / properties on relations
  • 25. Main differences ▪ Metadata on “relations” ▪ Property graphs can have metadata on relations ▪ Triples cannot do this directly (indirectly, very verbose) ▪ Semantics ▪ Not part of property graphs, on top op RDF ▪ Then again, few systems actually use reasoning
  • 26. Main differences (2) ▪ Nice(r) visualization in PG products ▪ E.g. “local” data analysis ▪ Standardization in RDF ! ▪ SKOS mapping, RDF(S), SHACL, Core Vocabularies… ▪ (meta)data exchange and linking/combining data
  • 27. Similarities ▪ RDF and PG typically weaker enforcing than RDBMS ▪ RDBMS have triggers, constraints, type checks etc ▪ Often a specific “shape” of data is wanted by the user ▪ Work in progress ▪ Either GraphQL at the API level ▪ Hydra API + SHACL
  • 28. Will they merge ? ▪ Industry would like to combine PG and RDF ▪ See also W3C event organized by Neo4J and Ontotext ▪ https://www.w3.org/Data/events/data-ws-2019/ ▪ Suggestion for RDF* / SPARQL* ▪ http://olafhartig.de/slides/RDFStarInvitedTalkWSP2018. pdf
  • 30. Do I need a triple / graph store for linked data ? ▪ You don’t have an HTML-database for websites either ▪ It depends on queries, business case and developers ▪ If you want relations, constraints and data in the same table-like structure, and your toolbox is all relational … use an RDBMS
  • 31. Who’s using RDF anyway ? ▪ Solid / Inrupt social, user-centric linked data apps ▪ https://solid.inrupt.com/about ▪ https://github.com/solid/solid ▪ https://ruben.verborgh.org/articles/redecentralizing- the-web/ ▪ Metadata exchange using EU CoreVocabularies ▪ SEO: schema.org embedded in web pages ▪ https://developers.google.com/search/docs/guides/intro -structured-data
  • 32. Can GraphQL query RDBMS, graphs, RDF ? ▪ Yes but… translations may be needed ▪ Performance ? ▪ It will most likely not the only API ▪ Remember SOAP, Swagger… ▪ But not “semantic” / “linked” out of the box ▪ See also https://comunica.github.io/Article-ISWC2018- Demo-GraphQlLD/
  • 33. Can SPARQL query RDBMS, map data to RDF ? ▪ Well, if you really want to … ▪ http://d2rq.org/ ▪ http://rml.io/RML_Input.html
  • 34. Interesting linked data resources ▪ Modular Linked data Javascript framework ▪ http://comunica.linkeddatafragments.org ▪ Linked Data Cubes for statistical data ▪ http://www.proxml.be/losd/cubes.html ▪ Metreeca linked data components ▪ https://www.metreeca.com/software/