SlideShare a Scribd company logo
APIs and the Semantic Web
Publishing information instead of data
About me
• Data Specialist
• API First fanatic
• Co-Founder Apiwise
• Ex-Freshheads
• PostcodeAPI.nu
• Apiranto Docs
About me
“The only bad thing about API is
that it’s the inverse of IPA”
About me
• Brewmaster
• MQTT API driven brewery
“De Brouwtoren”
• Crowdfunding starting
next week (hint!)
0641011744
• Registration number
• Flight number
• Bank account
• Mobile phone number
641.011.744
Remember phone numbers and Excel?
“0641011744”
Now it’s a meaningless string!
Paris + Hilton
Semantics
• Context
• Meaning
• Vocabularies & Ontologies
Vocabularies
• Schema.org
• FOAF (Friend-Of-A-Friend): VCard
• XSD (XML Schema Definition Language)
Linked Data
• Alias The Semantic Web, Web 3.0
• Defines what data means
• Queries across multiple datasets
• Provides links to external resources
Triples
Subject ObjectPredicate
Triples
Dimitri Apiwiseworks at
Triples
Dimitri Endpointattends
Triples
Endpoint Amsterdamheld in
Triples
Amsterdam
The
Netherlands
capital of
Triples
Apiwise Tilburgresides in
Triples
Tilburg
The
Netherlands
located in
Tilburg
The
NetherlandsApiwise
Amsterdam
Endpoint
Dimitri
capitalof
URIs
Subject Predicate Object
dimitrivanhees.com schema.org/worksFor apiwise.nl
dimitrivanhees.com schema.org/attends endpointcon.com
endpointcon.com schema.org/location dbpedia.org/Amsterdam*
apiwise.nl schema.org/foundingLocation dbpedia.org/Tilburg
dbpedia.org/Tilburg dbpedia.org/ontology/country dbpedia.org/Netherlands
dbpedia.org/Amsterdam dbpedia.org/ontology/capital dbpedia.org/Netherlands
*Real DBPedia URL: http://dbpedia.org/resource/Amsterdam
DBPedia.org
• Wikipedia as a Linked Open Dataset
• http://dbpedia.org/resource/Amsterdam
Bank
Account Name CoC Contact Address PC City Balance
54.31.23.650 Apiwise 62956787 D. van Hees Kronenburgersingel 49 6511AL Nijmegen € 100
Cadastre (Land Register)
Number Street Number Postcode Place Value Surface Function
12345 Kronenburgersingel 49 6511AL Nijmegen € 100.000 65m² Living
Chamber of Commerce
Number Official name Type Founded Address
62956787 Apiwise V.O.F. V.O.F. 2015/04/01 Kronenburgersingel 49, 6511AL, Nijmegen
Linking datasets
Bank
Account Name CoC Contact Address PC City Balance
54.31.23.650 Apiwise 62956787 D. van Hees Kronenburgersingel 49 6511AL Nijmegen € 100
Chamber of Commerce
Number Official name Type Founded Address
62956787 Apiwise V.O.F. V.O.F. 2015/04/01 Kronenburgersingel 49, 6511AL, Nijmegen
Linking datasets
Cadastre (Land Register)
Number Street Number Postcode Place Value Surface Function
12345 Kronenburgersingel 49 6511AL Nijmegen € 100.000 65m² Living
Bank
Account CoC Contact Balance
54.31.23.650 62956787 D. van Hees € 100
Chamber of Commerce
Number Official name Type Founded Cadastre
62956787 Apiwise V.O.F. V.O.F. 2015/04/01 12345
Linking datasets
Cadastre (Land Register)
Number Street Number Postcode Place Value Surface Function
12345 Kronenburgersingel 49 6511AL Nijmegen € 100.000 65m² Living
Bank
Contact CoC LinkedIn Facebook
D. van Hees 62956787 dimitrivanhees dvanhees
CoC
Number Cadastre
62956787 12345
20106830 67890
Cadastre
Street Place
Kronenburgersingel Nijmegen
Wilhelminapark Tilburg
Facebook
Residence Places Sports
Nijmegen Tilburg Football
LinkedIn
Company Birthplace School
Apiwise,
Freshheads
Nijmegen Tilburg University
Bank
Contact CoC LinkedIn Facebook
D. van Hees 62956787 dimitrivanhees dvanhees
CoC
Number Cadastre
62956787 12345
20106830 67890
Cadastre
Street Place
Kronenburgersingel Nijmegen
Wilhelminapark Tilburg
Facebook
Residence Places Sports
Nijmegen Tilburg Football
LinkedIn
Company Birthplace School
Apiwise,
Freshheads
Nijmegen Tilburg University
Open Data
Location Province Avg. income Inhabitants
Nijmegen Gelderland € 12.600 168.840
Tilburg Noord-Brabant € 13.900 191.275
Open Data
Location Founded Rector
Tilburg 1927 P. Eijlander
Open Data
Category Type
Ball sport Team
Query for people who:
• Live in a city with more than 170.000
inhabitants
• Like team sports and went to a school that
was founded before 1930
• Are connected to a V.O.F. company from
Gelderland with a negative balance
• Like ball games and own an office larger than
150m² in a place where the average value is
less than € 200.000
“Linked Data makes it possible to get
new insights in data which were
technically impossible in the past. It’s
up to marketing people to come up
with challenging queries.”
“That’s awesome!”
But… I want APIs…
Five stars of Sir Tim Berners-Lee
★
“Make your stuff available on the
Web (whatever format) under an
open license”
★ ★
“Make it available as structured
data (e.g., Excel instead of image
scan of a table)”
★ ★ ★
“Use non-proprietary formats
(e.g., CSV instead of Excel)”
★ ★ ★ ★
“Use URIs to denote things, so
that people can point at your
stuff (RDF)”
★ ★ ★ ★ ★
“Link your data to other data to
provide context (Linked Data)”
Data landscape
• Data consumers
• Data publishers
• Open Data community
• API community
• Linked Data community
Data consumers
• Provide us the developer-friendliest way to access your
data and we MIGHT use it
Data publishers
• HOW should we publish our data?
• What are the COSTS of doing it that way?
• What are the BENEFITS of doing it that way?
Open Data community
• We don’t care HOW the data is published
• We only care IF the data is open
API community
• Every publisher SHOULD provide RESTful JSON APIs
• Because every consumer KNOWS RESTful JSON APIs
• We DON’T believe in Linked Data
Linked Data community
• Every publisher SHOULD provide five star data
• Every consumer SHOULD learn SPARQL*
• So we DON’T need APIs
*Linked Data query language
SPARQL And RDF Query Language
?S ?O?P
All Endpoint attendees
?S Endpointattends
All events I(’ve) attend(ed)
Dimitri ?Oattends
Basic SPARQL Query
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
SELECT ?country_name ?population
WHERE {
?country a type:LandlockedCountries ;
rdfs:label ?country_name ;
prop:populationEstimate ?population .
FILTER (?population > 15000000) .
}
WTF is SPARQL?
Benefits
According to EU studies the amount of apps being
developed with Linked Open Government Data is
negligible.
https://joinup.ec.europa.eu/sites/default/files/85/31
/25/Study_on_business_models_for_Linked_Open_
Government_Data_BM4LOGD_v1.00.pdf
Costs
• Knowledge investment (unknown technology)
• Technical investment (hosting infrastructure)
• Time investment (change management)
• Low ROI
“The quality of many datasets is
AT MOST three stars”
Five stars of Sir Tim Berners-Lee
Six stars of Dimitri van Hees
★ ★ ★ ★
“Provide online access via
webservices so developers can
use your stuff the way they are
used to (RESTful JSON API)”
★ ★ ★ ★ ★
“Add context to your API so it can be
linked to other datasets, developers
know what the data means and LD
guys can convert it to triples, store it
in triplestores and use SPARQL if they
want to (JSON-LD)”
★ ★ ★ ★ ★ ★
JSON
JSON-LD
Triples
JSON
{
"id": 43274,
"name": "Dimitri van Hees",
“geslacht": "m",
"birthDate": "1984-03-14",
"birthPlace": "Nijmegen",
"facebookLikes": [
69116329538,
272002449634285,
114690771875816
]
}
JSON-LD Context
"@context“: {
"id": "@id",
"name": "http://xmlns.com/foaf/0.1/name",
“geslacht": "http://xmlns.com/foaf/0.1/gender",
"birthDate": "http://schema.org/birthDate",
"birthPlace": "http://dbpedia.org/ontology/birthPlace",
"facebookLike": "http://xmlns.com/foaf/0.1/interest"
}
JSON-LD Context
"@context": {
"foaf": "http://xmlns.com/foaf/0.1/",
"schema": "http://schema.org/",
"dbo": "http://dbpedia.org/ontology/",
"id": "@id",
"name": "foaf:name",
“geslacht": "foaf:gender",
"birthDate": "schema:birthDate",
"birthPlace": "dbo:birthPlace",
"facebookLikes": "foaf:interest"
}
JSON-LD
{
"id": "http://example.com/customers/43274",
"type": "schema:Person",
"name": "Dimitri van Hees",
“geslacht": "m",
"birthDate": "1984-03-14",
"birthPlace": {
"id": "http://dbpedia.org/resource/Nijmegen", "type": "schema:City"
},
"facebookLikes": [
{ "id": "http://graph.facebook.com/69116329538", "type": "schema:MusicGroup“ },
{ "id": "http://graph.facebook.com/272002449634285", "type": "schema:TVSeries“ },
{ "id": "http://graph.facebook.com/114690771875816", "type": "schema:City“ }
]
}
Mapping through semantic APIs
API
Den Haag
The Hague
‘s-Gravenhage
http://dbpedia.org/resource/The_Hague
JSON-LD
{
"id": "http://example.com/customers/43274",
"type": "schema:Person",
"name": "Dimitri van Hees",
“geslacht": "m",
"birthDate": "1984-03-14",
"birthPlace": {
"id": "http://dbpedia.org/resource/Nijmegen", "type": "schema:City"
},
"facebookLikes": [
{ "id": "http://dbpedia.org/resource/The_Beatles", "type": "schema:MusicGroup“ },
{ "id": "http://dbpedia.org/resource/Monty_Python", "type": "schema:TVSeries“ },
{ "id": "http://dbpedia.org/resource/Nijmegen", "type": "schema:City“ }
]
}
JsonLd2RDF()
And there’s your Linked Data!
Step 1: JSON support
Step 2: JSON-LD support
Step 3: Triples support
Triplestore: Allegrograph
• Database for triples
• Free up to 5.000.000 triples
• SPARQL 1.1 support
• REST API
• Local installation (privacy)
APIs and the Semantic Web: publishing information instead of data
★ ★ ★ ★ ★ ★
One more thing!
It gets even better…
Data Information
Property Value
id AB-01-CD
type ?
brand AUDI
kleur ROOD
A?2JKs=- 1932
application/json
Property Value
id rdw.nl/AB-01-CD
rdf:type schema.org/Car
schema.org/brand dbpedia.org/Audi
schema.org/color dbpedia.org/Red
dbpedia.org/foundingYear 1932
application/ld+json
Structured Data
Gmail
Siri, Cortana, Now
Separation of concerns
• It’s all about conversion
• A website is just another representation of
information
• People WILL skip the restaurant’s website if they’re
hungry and can get food by just yelling HUNGRY at
their mobile phone
• Publish information instead of data!
“The Semantic Web does exist and goes hand
in hand with APIs. Using six stars instead of
five, APIs are part of the deployment scheme
while making live easier for both data
publishers and consumers. Let’s bridge the
gap, bring the best of both worlds, and let’s
change the web together by publishing
information instead of data.”
Thank you!
• Twitter: @dvh
• E-mail: dimitri@apiwise.nl
• LinkedIn: linkedin.com/in/dimitrivanhees
• GitHub: github.com/dvh
• PostcodeAPI: github.com/apiwise/postcodeapi
• Apiranto: github.com/apiwise/apiranto
Thank you!
• Twitter: @dvh
• E-mail: dimitri@apiwise.nl
• LinkedIn: linkedin.com/in/dimitrivanhees
• GitHub: github.com/dvh
• PostcodeAPI: github.com/apiwise/postcodeapi
• Apiranto: github.com/apiwise/apiranto
• Brewery: www.brouwtoren.nlAd

More Related Content

What's hot (20)

PDF
ISWC 2014 - Dandelion: from raw data to dataGEMs for developers
SpazioDati
 
PPTX
Intro to Neo4j with Ruby
Max De Marzi
 
PPT
MuseoTorino, first italian project using a GraphDB, RDFa, Linked Open Data
21Style
 
PDF
Data Curation @ SpazioDati - NEXA Lunch Seminar
SpazioDati
 
PDF
Geschäftliches Potential für System-Integratoren und Berater - Graphdatenban...
Neo4j
 
PDF
Intro to Cypher
Neo4j
 
ODP
Building a semantic website
CJ Jenkins
 
PDF
RDF Data Quality Assessment - connecting the pieces
Connected Data World
 
PDF
Let your data shine... with OpenRefine
Open Knowledge Belgium
 
PPT
Follow the stars 25/11/2011
Miel Vander Sande
 
KEY
Semantically Enabled Personal Information Management with Cluug.com
Bernhard Schandl
 
PDF
Text analytics for Google Spreadsheets using Text Mining add-on
SpazioDati
 
PPTX
INEGI ESS big data workshop
Abel Alejandro Coronado Iruegas
 
PDF
Schneller Nutzen mit Neo4j: das Beispiel Panama Papers
Neo4j
 
PDF
(PROJEKTURA) Big Data Open Data story for TGG
Ratko Mutavdzic
 
PDF
GraphConnect 2014 SF: From Zero to Graph in 120: Model
Neo4j
 
PPTX
Linked Open Data at SAAM: Past, Present, and Future
Sara Snyder
 
PPT
NTEN Webinar - Data Cleaning and Visualization Tools for Nonprofits
Azavea
 
KEY
Library Mashups & APIs
librarywebchic
 
PDF
S4: The Self-Service Semantic Suite
Marin Dimitrov
 
ISWC 2014 - Dandelion: from raw data to dataGEMs for developers
SpazioDati
 
Intro to Neo4j with Ruby
Max De Marzi
 
MuseoTorino, first italian project using a GraphDB, RDFa, Linked Open Data
21Style
 
Data Curation @ SpazioDati - NEXA Lunch Seminar
SpazioDati
 
Geschäftliches Potential für System-Integratoren und Berater - Graphdatenban...
Neo4j
 
Intro to Cypher
Neo4j
 
Building a semantic website
CJ Jenkins
 
RDF Data Quality Assessment - connecting the pieces
Connected Data World
 
Let your data shine... with OpenRefine
Open Knowledge Belgium
 
Follow the stars 25/11/2011
Miel Vander Sande
 
Semantically Enabled Personal Information Management with Cluug.com
Bernhard Schandl
 
Text analytics for Google Spreadsheets using Text Mining add-on
SpazioDati
 
INEGI ESS big data workshop
Abel Alejandro Coronado Iruegas
 
Schneller Nutzen mit Neo4j: das Beispiel Panama Papers
Neo4j
 
(PROJEKTURA) Big Data Open Data story for TGG
Ratko Mutavdzic
 
GraphConnect 2014 SF: From Zero to Graph in 120: Model
Neo4j
 
Linked Open Data at SAAM: Past, Present, and Future
Sara Snyder
 
NTEN Webinar - Data Cleaning and Visualization Tools for Nonprofits
Azavea
 
Library Mashups & APIs
librarywebchic
 
S4: The Self-Service Semantic Suite
Marin Dimitrov
 

Viewers also liked (6)

PDF
RDF: what and why plus a SPARQL tutorial
Jerven Bolleman
 
PDF
Inaugural lecture
Katrien Verbert
 
PDF
Data analytics to support awareness and recommendation
Katrien Verbert
 
PDF
WebTech Tutorial Querying DBPedia
Katrien Verbert
 
PDF
DBpedia Tutorial - Feb 2015, Dublin
m_ackermann
 
PDF
Querying Linked Data with SPARQL
Olaf Hartig
 
RDF: what and why plus a SPARQL tutorial
Jerven Bolleman
 
Inaugural lecture
Katrien Verbert
 
Data analytics to support awareness and recommendation
Katrien Verbert
 
WebTech Tutorial Querying DBPedia
Katrien Verbert
 
DBpedia Tutorial - Feb 2015, Dublin
m_ackermann
 
Querying Linked Data with SPARQL
Olaf Hartig
 
Ad

Similar to APIs and the Semantic Web: publishing information instead of data (20)

PPTX
One day workshop Linked Data and Semantic Web
Victor de Boer
 
PPTX
Hack U Barcelona 2011
Peter Mika
 
PPT
Publishing data on the Semantic Web
Peter Mika
 
ODP
State of the Semantic Web
Ivan Herman
 
PPT
Linked Data Tutorial
Sören Auer
 
PDF
Open data and linked data
Marie Gustafsson Friberger
 
PPTX
Knowledge Graph Introduction
Sören Auer
 
PPTX
Madrid Building blocks of Linked Data
Victor de Boer
 
PDF
Graphs, Stores and API
Bart Hanssens
 
PPT
Re-using Media on the Web: Media fragment re-mixing and playout
MediaMixerCommunity
 
PDF
Transforming Your Data with GraphDB: GraphDB Fundamentals, Jan 2018
Ontotext
 
PDF
Danbri Drupalcon Export
Drupalcon Paris
 
PDF
Linked Data
Anja Jentzsch
 
PPTX
Triplestore and SPARQL
Lino Valdivia
 
PDF
Linked Open Data
Laura Hollink
 
ODP
Linked Data
Danny Ayers
 
PDF
Adventures in Linked Data Land (presentation by Richard Light)
jottevanger
 
PPTX
A Little SPARQL in your Analytics
Dr. Neil Brittliff
 
PDF
Linked Open Data for Digital Humanities
Christophe Guéret
 
PDF
Introduction to RDF & SPARQL
Open Data Support
 
One day workshop Linked Data and Semantic Web
Victor de Boer
 
Hack U Barcelona 2011
Peter Mika
 
Publishing data on the Semantic Web
Peter Mika
 
State of the Semantic Web
Ivan Herman
 
Linked Data Tutorial
Sören Auer
 
Open data and linked data
Marie Gustafsson Friberger
 
Knowledge Graph Introduction
Sören Auer
 
Madrid Building blocks of Linked Data
Victor de Boer
 
Graphs, Stores and API
Bart Hanssens
 
Re-using Media on the Web: Media fragment re-mixing and playout
MediaMixerCommunity
 
Transforming Your Data with GraphDB: GraphDB Fundamentals, Jan 2018
Ontotext
 
Danbri Drupalcon Export
Drupalcon Paris
 
Linked Data
Anja Jentzsch
 
Triplestore and SPARQL
Lino Valdivia
 
Linked Open Data
Laura Hollink
 
Linked Data
Danny Ayers
 
Adventures in Linked Data Land (presentation by Richard Light)
jottevanger
 
A Little SPARQL in your Analytics
Dr. Neil Brittliff
 
Linked Open Data for Digital Humanities
Christophe Guéret
 
Introduction to RDF & SPARQL
Open Data Support
 
Ad

Recently uploaded (20)

PPTX
apidays Singapore 2025 - From Data to Insights: Building AI-Powered Data APIs...
apidays
 
PPTX
b6057ea5-8e8c-4415-90c0-ed8e9666ffcd.pptx
Anees487379
 
PPTX
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
PPTX
apidays Helsinki & North 2025 - Agentic AI: A Friend or Foe?, Merja Kajava (A...
apidays
 
PPTX
apidays Munich 2025 - Building an AWS Serverless Application with Terraform, ...
apidays
 
PDF
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
apidays
 
PDF
apidays Helsinki & North 2025 - API-Powered Journeys: Mobility in an API-Driv...
apidays
 
PDF
Driving Employee Engagement in a Hybrid World.pdf
Mia scott
 
PPTX
Aict presentation on dpplppp sjdhfh.pptx
vabaso5932
 
PDF
Context Engineering for AI Agents, approaches, memories.pdf
Tamanna
 
PDF
Research Methodology Overview Introduction
ayeshagul29594
 
PDF
apidays Singapore 2025 - How APIs can make - or break - trust in your AI by S...
apidays
 
PDF
OOPs with Java_unit2.pdf. sarthak bookkk
Sarthak964187
 
PDF
Avatar for apidays apidays PRO June 07, 2025 0 5 apidays Helsinki & North 2...
apidays
 
PDF
Using AI/ML for Space Biology Research
VICTOR MAESTRE RAMIREZ
 
PPTX
apidays Helsinki & North 2025 - Vero APIs - Experiences of API development in...
apidays
 
PDF
apidays Helsinki & North 2025 - APIs in the healthcare sector: hospitals inte...
apidays
 
PDF
Data Retrieval and Preparation Business Analytics.pdf
kayserrakib80
 
PDF
JavaScript - Good or Bad? Tips for Google Tag Manager
📊 Markus Baersch
 
PPT
AI Future trends and opportunities_oct7v1.ppt
SHIKHAKMEHTA
 
apidays Singapore 2025 - From Data to Insights: Building AI-Powered Data APIs...
apidays
 
b6057ea5-8e8c-4415-90c0-ed8e9666ffcd.pptx
Anees487379
 
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
apidays Helsinki & North 2025 - Agentic AI: A Friend or Foe?, Merja Kajava (A...
apidays
 
apidays Munich 2025 - Building an AWS Serverless Application with Terraform, ...
apidays
 
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
apidays
 
apidays Helsinki & North 2025 - API-Powered Journeys: Mobility in an API-Driv...
apidays
 
Driving Employee Engagement in a Hybrid World.pdf
Mia scott
 
Aict presentation on dpplppp sjdhfh.pptx
vabaso5932
 
Context Engineering for AI Agents, approaches, memories.pdf
Tamanna
 
Research Methodology Overview Introduction
ayeshagul29594
 
apidays Singapore 2025 - How APIs can make - or break - trust in your AI by S...
apidays
 
OOPs with Java_unit2.pdf. sarthak bookkk
Sarthak964187
 
Avatar for apidays apidays PRO June 07, 2025 0 5 apidays Helsinki & North 2...
apidays
 
Using AI/ML for Space Biology Research
VICTOR MAESTRE RAMIREZ
 
apidays Helsinki & North 2025 - Vero APIs - Experiences of API development in...
apidays
 
apidays Helsinki & North 2025 - APIs in the healthcare sector: hospitals inte...
apidays
 
Data Retrieval and Preparation Business Analytics.pdf
kayserrakib80
 
JavaScript - Good or Bad? Tips for Google Tag Manager
📊 Markus Baersch
 
AI Future trends and opportunities_oct7v1.ppt
SHIKHAKMEHTA
 

APIs and the Semantic Web: publishing information instead of data

  • 1. APIs and the Semantic Web Publishing information instead of data
  • 2. About me • Data Specialist • API First fanatic • Co-Founder Apiwise • Ex-Freshheads • PostcodeAPI.nu • Apiranto Docs
  • 3. About me “The only bad thing about API is that it’s the inverse of IPA”
  • 4. About me • Brewmaster • MQTT API driven brewery “De Brouwtoren” • Crowdfunding starting next week (hint!)
  • 5. 0641011744 • Registration number • Flight number • Bank account • Mobile phone number
  • 7. “0641011744” Now it’s a meaningless string!
  • 9. Semantics • Context • Meaning • Vocabularies & Ontologies
  • 10. Vocabularies • Schema.org • FOAF (Friend-Of-A-Friend): VCard • XSD (XML Schema Definition Language)
  • 11. Linked Data • Alias The Semantic Web, Web 3.0 • Defines what data means • Queries across multiple datasets • Provides links to external resources
  • 20. URIs Subject Predicate Object dimitrivanhees.com schema.org/worksFor apiwise.nl dimitrivanhees.com schema.org/attends endpointcon.com endpointcon.com schema.org/location dbpedia.org/Amsterdam* apiwise.nl schema.org/foundingLocation dbpedia.org/Tilburg dbpedia.org/Tilburg dbpedia.org/ontology/country dbpedia.org/Netherlands dbpedia.org/Amsterdam dbpedia.org/ontology/capital dbpedia.org/Netherlands *Real DBPedia URL: http://dbpedia.org/resource/Amsterdam
  • 21. DBPedia.org • Wikipedia as a Linked Open Dataset • http://dbpedia.org/resource/Amsterdam
  • 22. Bank Account Name CoC Contact Address PC City Balance 54.31.23.650 Apiwise 62956787 D. van Hees Kronenburgersingel 49 6511AL Nijmegen € 100 Cadastre (Land Register) Number Street Number Postcode Place Value Surface Function 12345 Kronenburgersingel 49 6511AL Nijmegen € 100.000 65m² Living Chamber of Commerce Number Official name Type Founded Address 62956787 Apiwise V.O.F. V.O.F. 2015/04/01 Kronenburgersingel 49, 6511AL, Nijmegen Linking datasets
  • 23. Bank Account Name CoC Contact Address PC City Balance 54.31.23.650 Apiwise 62956787 D. van Hees Kronenburgersingel 49 6511AL Nijmegen € 100 Chamber of Commerce Number Official name Type Founded Address 62956787 Apiwise V.O.F. V.O.F. 2015/04/01 Kronenburgersingel 49, 6511AL, Nijmegen Linking datasets Cadastre (Land Register) Number Street Number Postcode Place Value Surface Function 12345 Kronenburgersingel 49 6511AL Nijmegen € 100.000 65m² Living
  • 24. Bank Account CoC Contact Balance 54.31.23.650 62956787 D. van Hees € 100 Chamber of Commerce Number Official name Type Founded Cadastre 62956787 Apiwise V.O.F. V.O.F. 2015/04/01 12345 Linking datasets Cadastre (Land Register) Number Street Number Postcode Place Value Surface Function 12345 Kronenburgersingel 49 6511AL Nijmegen € 100.000 65m² Living
  • 25. Bank Contact CoC LinkedIn Facebook D. van Hees 62956787 dimitrivanhees dvanhees CoC Number Cadastre 62956787 12345 20106830 67890 Cadastre Street Place Kronenburgersingel Nijmegen Wilhelminapark Tilburg Facebook Residence Places Sports Nijmegen Tilburg Football LinkedIn Company Birthplace School Apiwise, Freshheads Nijmegen Tilburg University
  • 26. Bank Contact CoC LinkedIn Facebook D. van Hees 62956787 dimitrivanhees dvanhees CoC Number Cadastre 62956787 12345 20106830 67890 Cadastre Street Place Kronenburgersingel Nijmegen Wilhelminapark Tilburg Facebook Residence Places Sports Nijmegen Tilburg Football LinkedIn Company Birthplace School Apiwise, Freshheads Nijmegen Tilburg University Open Data Location Province Avg. income Inhabitants Nijmegen Gelderland € 12.600 168.840 Tilburg Noord-Brabant € 13.900 191.275 Open Data Location Founded Rector Tilburg 1927 P. Eijlander Open Data Category Type Ball sport Team
  • 27. Query for people who: • Live in a city with more than 170.000 inhabitants • Like team sports and went to a school that was founded before 1930 • Are connected to a V.O.F. company from Gelderland with a negative balance • Like ball games and own an office larger than 150m² in a place where the average value is less than € 200.000
  • 28. “Linked Data makes it possible to get new insights in data which were technically impossible in the past. It’s up to marketing people to come up with challenging queries.”
  • 30. Five stars of Sir Tim Berners-Lee
  • 31. ★ “Make your stuff available on the Web (whatever format) under an open license”
  • 32. ★ ★ “Make it available as structured data (e.g., Excel instead of image scan of a table)”
  • 33. ★ ★ ★ “Use non-proprietary formats (e.g., CSV instead of Excel)”
  • 34. ★ ★ ★ ★ “Use URIs to denote things, so that people can point at your stuff (RDF)”
  • 35. ★ ★ ★ ★ ★ “Link your data to other data to provide context (Linked Data)”
  • 36. Data landscape • Data consumers • Data publishers • Open Data community • API community • Linked Data community
  • 37. Data consumers • Provide us the developer-friendliest way to access your data and we MIGHT use it
  • 38. Data publishers • HOW should we publish our data? • What are the COSTS of doing it that way? • What are the BENEFITS of doing it that way?
  • 39. Open Data community • We don’t care HOW the data is published • We only care IF the data is open
  • 40. API community • Every publisher SHOULD provide RESTful JSON APIs • Because every consumer KNOWS RESTful JSON APIs • We DON’T believe in Linked Data
  • 41. Linked Data community • Every publisher SHOULD provide five star data • Every consumer SHOULD learn SPARQL* • So we DON’T need APIs *Linked Data query language
  • 42. SPARQL And RDF Query Language ?S ?O?P
  • 43. All Endpoint attendees ?S Endpointattends
  • 44. All events I(’ve) attend(ed) Dimitri ?Oattends
  • 45. Basic SPARQL Query PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX type: <http://dbpedia.org/class/yago/> PREFIX prop: <http://dbpedia.org/property/> SELECT ?country_name ?population WHERE { ?country a type:LandlockedCountries ; rdfs:label ?country_name ; prop:populationEstimate ?population . FILTER (?population > 15000000) . }
  • 47. Benefits According to EU studies the amount of apps being developed with Linked Open Government Data is negligible. https://joinup.ec.europa.eu/sites/default/files/85/31 /25/Study_on_business_models_for_Linked_Open_ Government_Data_BM4LOGD_v1.00.pdf
  • 48. Costs • Knowledge investment (unknown technology) • Technical investment (hosting infrastructure) • Time investment (change management) • Low ROI
  • 49. “The quality of many datasets is AT MOST three stars”
  • 50. Five stars of Sir Tim Berners-Lee
  • 51. Six stars of Dimitri van Hees
  • 52. ★ ★ ★ ★ “Provide online access via webservices so developers can use your stuff the way they are used to (RESTful JSON API)”
  • 53. ★ ★ ★ ★ ★ “Add context to your API so it can be linked to other datasets, developers know what the data means and LD guys can convert it to triples, store it in triplestores and use SPARQL if they want to (JSON-LD)”
  • 54. ★ ★ ★ ★ ★ ★
  • 56. JSON { "id": 43274, "name": "Dimitri van Hees", “geslacht": "m", "birthDate": "1984-03-14", "birthPlace": "Nijmegen", "facebookLikes": [ 69116329538, 272002449634285, 114690771875816 ] }
  • 57. JSON-LD Context "@context“: { "id": "@id", "name": "http://xmlns.com/foaf/0.1/name", “geslacht": "http://xmlns.com/foaf/0.1/gender", "birthDate": "http://schema.org/birthDate", "birthPlace": "http://dbpedia.org/ontology/birthPlace", "facebookLike": "http://xmlns.com/foaf/0.1/interest" }
  • 58. JSON-LD Context "@context": { "foaf": "http://xmlns.com/foaf/0.1/", "schema": "http://schema.org/", "dbo": "http://dbpedia.org/ontology/", "id": "@id", "name": "foaf:name", “geslacht": "foaf:gender", "birthDate": "schema:birthDate", "birthPlace": "dbo:birthPlace", "facebookLikes": "foaf:interest" }
  • 59. JSON-LD { "id": "http://example.com/customers/43274", "type": "schema:Person", "name": "Dimitri van Hees", “geslacht": "m", "birthDate": "1984-03-14", "birthPlace": { "id": "http://dbpedia.org/resource/Nijmegen", "type": "schema:City" }, "facebookLikes": [ { "id": "http://graph.facebook.com/69116329538", "type": "schema:MusicGroup“ }, { "id": "http://graph.facebook.com/272002449634285", "type": "schema:TVSeries“ }, { "id": "http://graph.facebook.com/114690771875816", "type": "schema:City“ } ] }
  • 60. Mapping through semantic APIs API Den Haag The Hague ‘s-Gravenhage http://dbpedia.org/resource/The_Hague
  • 61. JSON-LD { "id": "http://example.com/customers/43274", "type": "schema:Person", "name": "Dimitri van Hees", “geslacht": "m", "birthDate": "1984-03-14", "birthPlace": { "id": "http://dbpedia.org/resource/Nijmegen", "type": "schema:City" }, "facebookLikes": [ { "id": "http://dbpedia.org/resource/The_Beatles", "type": "schema:MusicGroup“ }, { "id": "http://dbpedia.org/resource/Monty_Python", "type": "schema:TVSeries“ }, { "id": "http://dbpedia.org/resource/Nijmegen", "type": "schema:City“ } ] }
  • 63. Step 1: JSON support
  • 64. Step 2: JSON-LD support
  • 65. Step 3: Triples support
  • 66. Triplestore: Allegrograph • Database for triples • Free up to 5.000.000 triples • SPARQL 1.1 support • REST API • Local installation (privacy)
  • 68. ★ ★ ★ ★ ★ ★
  • 69. One more thing! It gets even better…
  • 70. Data Information Property Value id AB-01-CD type ? brand AUDI kleur ROOD A?2JKs=- 1932 application/json Property Value id rdw.nl/AB-01-CD rdf:type schema.org/Car schema.org/brand dbpedia.org/Audi schema.org/color dbpedia.org/Red dbpedia.org/foundingYear 1932 application/ld+json
  • 72. Gmail
  • 74. Separation of concerns • It’s all about conversion • A website is just another representation of information • People WILL skip the restaurant’s website if they’re hungry and can get food by just yelling HUNGRY at their mobile phone • Publish information instead of data!
  • 75. “The Semantic Web does exist and goes hand in hand with APIs. Using six stars instead of five, APIs are part of the deployment scheme while making live easier for both data publishers and consumers. Let’s bridge the gap, bring the best of both worlds, and let’s change the web together by publishing information instead of data.”
  • 76. Thank you! • Twitter: @dvh • E-mail: [email protected] • LinkedIn: linkedin.com/in/dimitrivanhees • GitHub: github.com/dvh • PostcodeAPI: github.com/apiwise/postcodeapi • Apiranto: github.com/apiwise/apiranto
  • 77. Thank you! • Twitter: @dvh • E-mail: [email protected] • LinkedIn: linkedin.com/in/dimitrivanhees • GitHub: github.com/dvh • PostcodeAPI: github.com/apiwise/postcodeapi • Apiranto: github.com/apiwise/apiranto • Brewery: www.brouwtoren.nlAd

Editor's Notes

  • #8: We still need human intelligence to interpret the column header
  • #62: Your API now supports semantics and publishes information instead of data!