SlideShare a Scribd company logo
1 of 74
Download to read offline
RDF
principles and case studies
Diego Valerio Camarda
regesta.exe
www.regesta.com
diego.camarda@regesta.com
dvcama @ github&twitter
a brief
introduction to
linked open data
why things
instead of documents
Html
page
Html
pageHtml
page
Html
pageHtml
page
The nowadays WEB
why things
instead of documents
The nowadays WEB
at least 1.85 billion indexed documents
someone says 1 trillion online documents
Html
page
Html
pageHtml
page
Html
pageHtml
page
why things
instead of documents
The nowadays WEB
at least 1.85 billion indexed documents
someone says 1 trillion online documents
actually the best HTML parser is still the HUMAN BRAIN
Html
page
Html
pageHtml
page
Html
pageHtml
page
why things
instead of documents
The nowadays WEB
is not the WEB that
Tim proposed in 1998
why things
instead of documents
The nowadays WEB
is not the WEB that
Tim proposed in 1998
why things
instead of documents
The nowadays WEB
is not the WEB that
Tim proposed in 1998
what about URIs and RDF
a new way to publish data on the web
ids are ambiguous and suck!
Use URIs
as names for things
Use HTTP URIs
so that people can look up those names
Use the standards (RDF, SPARQL)
providing useful information
Include links to other URIs
so that they can discover more things
linked data principles
Tim Berners-Lee
July 27, 2006
HTTP://yourdomain.com/something
what about URIs and RDF
turning web pages in “real” data
ids are ambiguous and suck!
what about URIs and RDF
turning web pages in “real” data
ids are ambiguous and suck!
[…] l’animaletto venne indicato come:
“il tasso del tasso del Tasso”
Achille Campanile
It’s time for machine
(for parsing pages)
[…] l’animaletto venne indicato come:
“il tasso del tasso del Tasso”
Achille Campanile
It’s time for machine
(for parsing pages)
http://it.dbpedia.org/resource/Meles_meles
http://it.dbpedia.org/resource/Taxus
http://it.dbpedia.org/resource/Torquato_Tasso
http://it.dbpedia.org/resource/Achille_Campanile
(author of the sentence)
A new way to design
databases
RDF
(aka ’define knowledge’)
Go Triples, go!
the standard (old) approach
ID_P COGNOME NOME REF_ID_SOCIETA GENERE
1 Camarda Diego 1 maschio
2 … … … …
ID_SOCIETA DENOMINAZIONE SITO
1 Regesta.exe srl www.regesta.com
Go Triples, go!
the new (cool) approach
<http://www.regesta.com/diego>Subject
Go Triples, go!
the new (cool) approach
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName>
Subject
Predicate
Go Triples, go!
the new (cool) approach
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName>
‘Camarda’.
Subject
Predicate
Object
Go Triples, go!
the new (cool) approach
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName> ‘Camarda’.
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/firstName> ‘Diego’.
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/gender> ‘male’.
Go Triples, go!
the new (cool) approach
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ;
<http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ;
<http://xmlns.com/foaf/0.1/gender> ‘male’ .
Go Triples, go!
ok, but what a “diego” is?
Go Triples, go!
it’s a person!
<http://www.regesta.com/diego> a <http://xmlns.com/foaf/0.1/Person>
Go Triples, go!
adding a Class
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ;
<http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ;
<http://xmlns.com/foaf/0.1/gender> ‘male’ .
<http://www.regesta.com/diego>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://xmlns.com/foaf/0.1/Person> .
Go Triples, go!
building a graph
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ;
<http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ;
<http://xmlns.com/foaf/0.1/gender> ‘male’ ;
<http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> .
<http://www.regesta.com/diego>
<http://www.w3.org/ns/org#memberOf>
<http://www.regesta.com/about> .
Go Triples, go!
building a graph
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ;
<http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ;
<http://xmlns.com/foaf/0.1/gender> ‘male’ ;
<http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> ;
<http://www.w3.org/ns/org#memberOf> <http://www.regesta.com/about> .
<http://www.regesta.com/about>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.w3.org/ns/org#Organization> .
Go Triples, go!
building a graph
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ;
<http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ;
<http://xmlns.com/foaf/0.1/gender> ‘male’ ;
<http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> ;
<http://www.w3.org/ns/org#memberOf> <http://www.regesta.com/about> .
<http://www.regesta.com/about>
<http://www.w3.org/1999/...#type> <http://www.w3.org/ns/org#Organization> .
Go Triples, go!
building a graph
<http://www.regesta.com/diego>
<http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ;
<http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ;
<http://xmlns.com/foaf/0.1/gender> ‘male’ ;
<http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> ;
<http://www.w3.org/ns/org#memberOf> <http://www.regesta.com/about> .
<http://www.regesta.com/about>
<http://www.w3.org/1999/...#type> <http://www.w3.org/ns/org#Organization> ;
<http://www.w3.org/2004/02/skos/core#prefLabel> ‘Regesta.exe srl’ ;
<http://xmlns.com/foaf/0.1/homepage> <http://www.regesta.com> .
Go Triples, go!
Objects could be Subjects
diego
Go Triples, go!
considering diego and regesta
diego
regesta
Go Triples, go!
<diego> <memberOf> <regesta>
diego
regesta
Go Triples, go!
but, <regesta> <locatedIn> <rome>
diego
regesta
rome
Go Triples, go!
<diego> <placeOfBirth> <rome>
diego
regesta
rome
Go Triples, go!
<rome> <parentADM> <italy>
diego
regesta
rome
italy
Go Triples, go!
<silvia> <placeOfBirth> <italy>
diego
regesta
silvia
rome
italy
Go Triples, go!
<silvia> <…> <…>
diego
regesta
silvia
rome
italy
Go Triples, go!
<…> <…> <…> = a knowledge graph!
diego
regesta
silvia
rome
italy
A lot of sentence
to achieve (descriptive) freedom
<http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ .
<http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ .
<http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/gender> ‘male’ .
<http://www.regesta.com/diego> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<http://www.regesta.com/diego> <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com> .
<http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/familyName> ‘Mazzini’ .
<http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/firstName> ‘Silvia’ .
<http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/gender> ‘female’ .
<http://www.regesta.com/silvia> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<http://www.regesta.com/silvia> <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com> .
<http://www.regesta.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/org#Organization> .
<http://www.regesta.com> <http://www.w3.org/2004/02/skos/core#prefLabel> ‘Regesta.exe srl’ .
<http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/knows> <http://www.regesta.com/diego> .
<…> <…> <…>.
<noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>.<noBeer> <makeGoCreazy> <homer>. <noTv>
<makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer>
<makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy>
<homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>.
<noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer>
<makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy>
<homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>.
<noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer>
<makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy>
<homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>.
<noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> …
Standards for
semantic web
RDF
http://www.w3.org/standards/techs/rdf
SPARQL
http://www.w3.org/standards/techs/sparql
ONTOLOGIES
http://www.w3.org/standards/semanticweb/ontology
Did you studied HTML? Good!
it's time for a new standard
The Resource Description Framework
is a general-purpose language for representing
information in the Web.
It's time for a new standard
RDF
The SPARQL Protocol and RDF Query Language
is a query language and protocol for RDF.
It's time for a new standard
SPARQL
On the Semantic Web, vocabularies define
the concepts and relationships
(also referred to as “terms”)
used to describe and represent
an area of concern.
It's time for a new standard
Ontologies
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf:firstName
dc:title
rdfs:label
Pre:fixes (ontologies)
just a few words
Browsing the
web of data
Resource Description
Framework
› SPARQL endpoint
› dereferenceable URIs
› content negotiation
› standard ports, like 80 (HTTP)
› JSONP support
MUST!
Resource Description
Framework
› SPARQL endpoint
› dereferenceable URIs
› content negotiation
› standards port, like 80 (HTTP)
› JSONP support
› up-to-date
› the endpoint URL is easy to deduce from resources
› the resources are described by dc:title or rdfs:label
› the endpoint hosts a page for humans
› the resources and the endpoint are on the same domain
SHOULD!
(please do it, for me)
One single API
a world to explore
One single API
interlinking
<a href=“…”>click here</a>
owl:sameAs
rdfs:seeAlso
…
SELECT * {?minnesota ?banana ?sun}
SPARQL
a must know query language
SPARQL
group graph pattern
diego
regesta
silvia
rome
italy
diego
regesta
silvia
rome
italy
SPARQL
group graph pattern
diego
regesta
rome
silvia
italy
silvia
italy
SELECT ?person {
?person <placeOfBirth> ?place ;
<memberOf> ?company .
?company <locatedIn> ?place .
}
SPARQL
group graph pattern
<diego>
SELECT ?person ?prop ?obj {
?person <placeOfBirth> ?place ;
<memberOf> ?company ;
?prop ?obj .
?company <locatedIn> ?place .
}
SPARQL
group graph pattern
(turn the page)
person prop obj
<diego> rdf:type foaf:Person
<diego> foaf:firstName ‘Diego’
<diego> foaf:familyName ‘Camarda’
<diego> foaf:gender ‘male’
<diego> org:memberOf <regesta>
SPARQL
group graph pattern
DESCRIBE <diego>
SPARQL
describe
(turn the page)
<diego> rdf:type foaf:Person .
<diego> foaf:firstName ‘Diego’ .
<diego> foaf:familyName ‘Camarda’ .
<diego> foaf:gender ‘male’ .
<diego> org:memberOf <regesta> .
<silvia> foaf:knows <diego> .
SPARQL
describe
CONSTRUCT {<diego> foaf:donaldDuck ?c}
WHERE{<diego> ?b ?c. }
SPARQL
construct
(turn the page)
<diego> foaf:donaldDuck foaf:Person .
<diego> foaf:donaldDuck ‘Diego’ .
<diego> foaf:donaldDuck ‘Camarda’ .
<diego> foaf:donaldDuck ‘male’ .
<diego> foaf:donaldDuck <regesta> .
SPARQL
construct
DISTINCT, COUNT
GRAPH, PREFIX
isBlank, isIRI, isLiteral, isNumeric
FILTER, REGEX, STR
FILTER NOT EXISTS, MINUS
ORDER BY, OFFSET, LIMIT
for other stuff
http://www.w3.org/TR/sparql11-query/
SPARQL
minimum requirements
Please start negotiating content
right now!
Hi dude, I accept:
text/html,application/xhtml+xml
Html
pageGreat! I’ll serve you a web page
Hi dude, I accept:
application/rdf+xml
RDF
dataGreat… 303, redirect!
Hi dude, I accept:
pizza/margherita
406
errormmm… sorry
Please start negotiating content
right now!
application/rdf+xml
application/xml
text/plain
text/turtle
application/x-turtle
application/trix
application/x-trig
text/n3
text/rdf+n3
application/trix
application/x-trig
application/x-binary-rdf
text/x-nquads
application/ld+json
application/rdf+json
application/xhtml+xml
text/xml
application/json
application/rdf+xml
application/rdf+n3
application/sparql-results+xml
application/sparql-results+json
curl -L -H "Accept: application/rdf+xml"
http://dati.camera.it/ocd/governo.rdf/g102
curl -L -H "Accept: text/n3"
http://dati.camera.it/ocd/governo.rdf/g102
Please start negotiating content
using CURL…
Java : Sesame / Jena
Python : RDFLib
Ruby : RDF.rb
nodeJs : sparql-client
or, as I do,
simple HTTP GET +
parsing result as json or xml
Please start negotiating content
…or a framework!
RDF data
storing and deploying
It’s slow
so keep calm
1 record 15 triples
2.949.771 votes 64.948.856 triples
usually
eg. Chamber of deputies
data big data
RDF probably will transform
Virtuoso
Sesame
Fuseki (Jena)
Owlim / Bigdata (Sesame)
AllegroGraph
D2R server
ARC2
…
Triplestores
I just need a SPARQL endpoint
I just really need http://yourdomain/sparql
Case studies
select distinct ?o where {?s a ?o}
select ?o count(distinct ?s) where {?s a ?o}
select count(?s) where {?s ?p ?o}
select count(?s) ?class where {?s ?p ?o; a ?class}
select distinct ?p where {?s a <http://classe>; ?p ?o}
select ?p count(?p) where {?s a <http://classe>; ?p ?o}
select ?s where {?s a <http://classe>}
?p ?o where {<http://URI> ?p ?o} ?p ?o ?p1 ?o2
where {<http://URI> ?p ?o. OPTIONAL{?o ?p1 ?o2. FILTER(isBlank(?o))}}
select distinct ?s ?title where {?s a <http://classe>;
dc:title ?title. FILTER(REGEX(? title,’parola’,’i’))} LIMIT 100
SPARQL magic
a query for all seasons
Case studies
Chamber of deputies
http://dati.camera.it/sparql
http://storia.camera.it
From SPARQL
to html
Case studies
Central State Archive
http://acs.beniculturali.it/sparql
http://labs.regesta.com/reloadProject
From SPARQL
to html
Useful links
W3C standards
http://www.w3.org/standards/semanticweb/
OKFN endpoints status (and list)
http://sparqles.okfn.org
LodLive (a SPRQL navigator)
http://en.lodlive.it
a very good intro to RDF
https://github.com/JoshData/rdfabout/blob/gh-pages/intro-to-rdf.md
Tim Berners-Lee’s “Linked Data – 5 stars ranking”
http://www.w3.org/DesignIssues/LinkedData.html
My github page
http://github.com/dvcama
My email
mailto:diego.camarda@regesta.com

More Related Content

What's hot

Introduction to Linked Data
Introduction to Linked DataIntroduction to Linked Data
Introduction to Linked DataThomas Meehan
 
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...Benjamin Adrian
 
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
 
Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson Victor de Boer
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLMyungjin Lee
 
쉽게 이해하는 LOD
쉽게 이해하는 LOD쉽게 이해하는 LOD
쉽게 이해하는 LODMyungjin Lee
 
Querying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern FragmentsQuerying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern FragmentsRuben Verborgh
 
Exploring and using the Semantic Web - SSSW09 tutorial
Exploring and using the Semantic Web - SSSW09 tutorialExploring and using the Semantic Web - SSSW09 tutorial
Exploring and using the Semantic Web - SSSW09 tutorialMathieu d'Aquin
 
The Future is Federated
The Future is FederatedThe Future is Federated
The Future is FederatedRuben Verborgh
 
LD4 Wikidata Affinity Group - Shorthouse
LD4 Wikidata Affinity Group - ShorthouseLD4 Wikidata Affinity Group - Shorthouse
LD4 Wikidata Affinity Group - ShorthouseDavid Shorthouse
 
DBpedia's Triple Pattern Fragments
DBpedia's Triple Pattern FragmentsDBpedia's Triple Pattern Fragments
DBpedia's Triple Pattern FragmentsRuben Verborgh
 
Grouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/SolrGrouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/Solrlucenerevolution
 
20100614 ISWSA Keynote
20100614 ISWSA Keynote20100614 ISWSA Keynote
20100614 ISWSA KeynoteAxel Polleres
 
Intro to Neo4j - Nicole White
Intro to Neo4j - Nicole WhiteIntro to Neo4j - Nicole White
Intro to Neo4j - Nicole WhiteNeo4j
 
Schema.org: What It Means For You and Your Library
Schema.org: What It Means For You and Your LibrarySchema.org: What It Means For You and Your Library
Schema.org: What It Means For You and Your LibraryRichard Wallis
 
Identifying The Benefit of Linked Data
Identifying The Benefit of Linked DataIdentifying The Benefit of Linked Data
Identifying The Benefit of Linked DataRichard Wallis
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked DataRuben Verborgh
 
Linking media, data, and services
Linking media, data, and servicesLinking media, data, and services
Linking media, data, and servicesRuben Verborgh
 
semantic markup using schema.org
semantic markup using schema.orgsemantic markup using schema.org
semantic markup using schema.orgJoshua Shinavier
 

What's hot (20)

Introduction to Linked Data
Introduction to Linked DataIntroduction to Linked Data
Introduction to Linked Data
 
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
 
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
 
Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson Intro to Linked, Dutch Ships and Sailors and SPARQL handson
Intro to Linked, Dutch Ships and Sailors and SPARQL handson
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQL
 
쉽게 이해하는 LOD
쉽게 이해하는 LOD쉽게 이해하는 LOD
쉽게 이해하는 LOD
 
Querying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern FragmentsQuerying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern Fragments
 
Linked Data Fragments
Linked Data FragmentsLinked Data Fragments
Linked Data Fragments
 
Exploring and using the Semantic Web - SSSW09 tutorial
Exploring and using the Semantic Web - SSSW09 tutorialExploring and using the Semantic Web - SSSW09 tutorial
Exploring and using the Semantic Web - SSSW09 tutorial
 
The Future is Federated
The Future is FederatedThe Future is Federated
The Future is Federated
 
LD4 Wikidata Affinity Group - Shorthouse
LD4 Wikidata Affinity Group - ShorthouseLD4 Wikidata Affinity Group - Shorthouse
LD4 Wikidata Affinity Group - Shorthouse
 
DBpedia's Triple Pattern Fragments
DBpedia's Triple Pattern FragmentsDBpedia's Triple Pattern Fragments
DBpedia's Triple Pattern Fragments
 
Grouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/SolrGrouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/Solr
 
20100614 ISWSA Keynote
20100614 ISWSA Keynote20100614 ISWSA Keynote
20100614 ISWSA Keynote
 
Intro to Neo4j - Nicole White
Intro to Neo4j - Nicole WhiteIntro to Neo4j - Nicole White
Intro to Neo4j - Nicole White
 
Schema.org: What It Means For You and Your Library
Schema.org: What It Means For You and Your LibrarySchema.org: What It Means For You and Your Library
Schema.org: What It Means For You and Your Library
 
Identifying The Benefit of Linked Data
Identifying The Benefit of Linked DataIdentifying The Benefit of Linked Data
Identifying The Benefit of Linked Data
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked Data
 
Linking media, data, and services
Linking media, data, and servicesLinking media, data, and services
Linking media, data, and services
 
semantic markup using schema.org
semantic markup using schema.orgsemantic markup using schema.org
semantic markup using schema.org
 

Similar to Bigdive 2014 - RDF, principles and case studies

SINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERSINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERElber Ribeiro
 
Git-for-new-comers-and-absolute-beginners.pdf
Git-for-new-comers-and-absolute-beginners.pdfGit-for-new-comers-and-absolute-beginners.pdf
Git-for-new-comers-and-absolute-beginners.pdfAkorEmmanuel4
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單偉格 高
 
BDW - What is Semantics
BDW - What is SemanticsBDW - What is Semantics
BDW - What is Semanticsgordonbrander
 
YQL:: Select * from Internet
YQL:: Select * from InternetYQL:: Select * from Internet
YQL:: Select * from Internetdrgath
 
Hreflang - why and how and why not for International SEO
Hreflang - why and how and why not for International SEOHreflang - why and how and why not for International SEO
Hreflang - why and how and why not for International SEOGerry White
 
DOE IPPD Hive + MOUSE webmaker workshop
DOE IPPD Hive + MOUSE webmaker workshopDOE IPPD Hive + MOUSE webmaker workshop
DOE IPPD Hive + MOUSE webmaker workshopvalleraj
 
Building Go Web Apps
Building Go Web AppsBuilding Go Web Apps
Building Go Web AppsMark
 
Scalabay - API Design Antipatterns
Scalabay - API Design AntipatternsScalabay - API Design Antipatterns
Scalabay - API Design AntipatternsManish Pandit
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internetdrgath
 
api analytics redis bigquery. Lrug
api analytics redis bigquery. Lrugapi analytics redis bigquery. Lrug
api analytics redis bigquery. Lrugjavier ramirez
 
Creating Linked Data 2/5 Semtech2011
Creating Linked Data 2/5 Semtech2011Creating Linked Data 2/5 Semtech2011
Creating Linked Data 2/5 Semtech2011Juan Sequeda
 
Rise of the Machines: PHP and IoT - ZendCon 2017
Rise of the Machines: PHP and IoT - ZendCon 2017Rise of the Machines: PHP and IoT - ZendCon 2017
Rise of the Machines: PHP and IoT - ZendCon 2017Colin O'Dell
 
You're Going To Need A Bigger Toolbox
You're Going To Need A Bigger ToolboxYou're Going To Need A Bigger Toolbox
You're Going To Need A Bigger ToolboxGareth Rushgrove
 
Semantic Web
Semantic WebSemantic Web
Semantic Webgregreser
 

Similar to Bigdive 2014 - RDF, principles and case studies (20)

SINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERSINATRA + HAML + TWITTER
SINATRA + HAML + TWITTER
 
Git-for-new-comers-and-absolute-beginners.pdf
Git-for-new-comers-and-absolute-beginners.pdfGit-for-new-comers-and-absolute-beginners.pdf
Git-for-new-comers-and-absolute-beginners.pdf
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單
 
BDW - What is Semantics
BDW - What is SemanticsBDW - What is Semantics
BDW - What is Semantics
 
YQL:: Select * from Internet
YQL:: Select * from InternetYQL:: Select * from Internet
YQL:: Select * from Internet
 
Hardcore HTML
Hardcore HTMLHardcore HTML
Hardcore HTML
 
Hreflang - why and how and why not for International SEO
Hreflang - why and how and why not for International SEOHreflang - why and how and why not for International SEO
Hreflang - why and how and why not for International SEO
 
DOE IPPD Hive + MOUSE webmaker workshop
DOE IPPD Hive + MOUSE webmaker workshopDOE IPPD Hive + MOUSE webmaker workshop
DOE IPPD Hive + MOUSE webmaker workshop
 
Building Go Web Apps
Building Go Web AppsBuilding Go Web Apps
Building Go Web Apps
 
Scalabay - API Design Antipatterns
Scalabay - API Design AntipatternsScalabay - API Design Antipatterns
Scalabay - API Design Antipatterns
 
lecture0.pdf
lecture0.pdflecture0.pdf
lecture0.pdf
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internet
 
api analytics redis bigquery. Lrug
api analytics redis bigquery. Lrugapi analytics redis bigquery. Lrug
api analytics redis bigquery. Lrug
 
Creating Linked Data 2/5 Semtech2011
Creating Linked Data 2/5 Semtech2011Creating Linked Data 2/5 Semtech2011
Creating Linked Data 2/5 Semtech2011
 
Rise of the Machines: PHP and IoT - ZendCon 2017
Rise of the Machines: PHP and IoT - ZendCon 2017Rise of the Machines: PHP and IoT - ZendCon 2017
Rise of the Machines: PHP and IoT - ZendCon 2017
 
jQuery basics
jQuery basicsjQuery basics
jQuery basics
 
Artdm171 Week4 Tags
Artdm171 Week4 TagsArtdm171 Week4 Tags
Artdm171 Week4 Tags
 
You're Going To Need A Bigger Toolbox
You're Going To Need A Bigger ToolboxYou're Going To Need A Bigger Toolbox
You're Going To Need A Bigger Toolbox
 
Semantic Web
Semantic WebSemantic Web
Semantic Web
 

Recently uploaded

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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 

Recently uploaded (20)

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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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...
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 

Bigdive 2014 - RDF, principles and case studies

  • 1. RDF principles and case studies Diego Valerio Camarda regesta.exe www.regesta.com diego.camarda@regesta.com dvcama @ github&twitter
  • 3. why things instead of documents Html page Html pageHtml page Html pageHtml page The nowadays WEB
  • 4. why things instead of documents The nowadays WEB at least 1.85 billion indexed documents someone says 1 trillion online documents Html page Html pageHtml page Html pageHtml page
  • 5. why things instead of documents The nowadays WEB at least 1.85 billion indexed documents someone says 1 trillion online documents actually the best HTML parser is still the HUMAN BRAIN Html page Html pageHtml page Html pageHtml page
  • 6. why things instead of documents The nowadays WEB is not the WEB that Tim proposed in 1998
  • 7. why things instead of documents The nowadays WEB is not the WEB that Tim proposed in 1998
  • 8. why things instead of documents The nowadays WEB is not the WEB that Tim proposed in 1998
  • 9. what about URIs and RDF a new way to publish data on the web ids are ambiguous and suck! Use URIs as names for things Use HTTP URIs so that people can look up those names Use the standards (RDF, SPARQL) providing useful information Include links to other URIs so that they can discover more things linked data principles Tim Berners-Lee July 27, 2006
  • 10. HTTP://yourdomain.com/something what about URIs and RDF turning web pages in “real” data ids are ambiguous and suck!
  • 11. what about URIs and RDF turning web pages in “real” data ids are ambiguous and suck!
  • 12. […] l’animaletto venne indicato come: “il tasso del tasso del Tasso” Achille Campanile It’s time for machine (for parsing pages)
  • 13. […] l’animaletto venne indicato come: “il tasso del tasso del Tasso” Achille Campanile It’s time for machine (for parsing pages) http://it.dbpedia.org/resource/Meles_meles http://it.dbpedia.org/resource/Taxus http://it.dbpedia.org/resource/Torquato_Tasso http://it.dbpedia.org/resource/Achille_Campanile (author of the sentence)
  • 14. A new way to design databases RDF (aka ’define knowledge’)
  • 15. Go Triples, go! the standard (old) approach ID_P COGNOME NOME REF_ID_SOCIETA GENERE 1 Camarda Diego 1 maschio 2 … … … … ID_SOCIETA DENOMINAZIONE SITO 1 Regesta.exe srl www.regesta.com
  • 16. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego>Subject
  • 17. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> Subject Predicate
  • 18. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’. Subject Predicate Object
  • 19. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’. <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/firstName> ‘Diego’. <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/gender> ‘male’.
  • 20. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ; <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ; <http://xmlns.com/foaf/0.1/gender> ‘male’ .
  • 21. Go Triples, go! ok, but what a “diego” is?
  • 22. Go Triples, go! it’s a person! <http://www.regesta.com/diego> a <http://xmlns.com/foaf/0.1/Person>
  • 23. Go Triples, go! adding a Class <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ; <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ; <http://xmlns.com/foaf/0.1/gender> ‘male’ . <http://www.regesta.com/diego> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
  • 24. Go Triples, go! building a graph <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ; <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ; <http://xmlns.com/foaf/0.1/gender> ‘male’ ; <http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> . <http://www.regesta.com/diego> <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com/about> .
  • 25. Go Triples, go! building a graph <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ; <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ; <http://xmlns.com/foaf/0.1/gender> ‘male’ ; <http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> ; <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com/about> . <http://www.regesta.com/about> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/org#Organization> .
  • 26. Go Triples, go! building a graph <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ; <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ; <http://xmlns.com/foaf/0.1/gender> ‘male’ ; <http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> ; <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com/about> . <http://www.regesta.com/about> <http://www.w3.org/1999/...#type> <http://www.w3.org/ns/org#Organization> .
  • 27. Go Triples, go! building a graph <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ ; <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ ; <http://xmlns.com/foaf/0.1/gender> ‘male’ ; <http://www.w3.org/1999/...#type> <http://xmlns.com/foaf/0.1/Person> ; <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com/about> . <http://www.regesta.com/about> <http://www.w3.org/1999/...#type> <http://www.w3.org/ns/org#Organization> ; <http://www.w3.org/2004/02/skos/core#prefLabel> ‘Regesta.exe srl’ ; <http://xmlns.com/foaf/0.1/homepage> <http://www.regesta.com> .
  • 28. Go Triples, go! Objects could be Subjects diego
  • 29. Go Triples, go! considering diego and regesta diego regesta
  • 30. Go Triples, go! <diego> <memberOf> <regesta> diego regesta
  • 31. Go Triples, go! but, <regesta> <locatedIn> <rome> diego regesta rome
  • 32. Go Triples, go! <diego> <placeOfBirth> <rome> diego regesta rome
  • 33. Go Triples, go! <rome> <parentADM> <italy> diego regesta rome italy
  • 34. Go Triples, go! <silvia> <placeOfBirth> <italy> diego regesta silvia rome italy
  • 35. Go Triples, go! <silvia> <…> <…> diego regesta silvia rome italy
  • 36. Go Triples, go! <…> <…> <…> = a knowledge graph! diego regesta silvia rome italy
  • 37. A lot of sentence to achieve (descriptive) freedom <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’ . <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/firstName> ‘Diego’ . <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/gender> ‘male’ . <http://www.regesta.com/diego> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> . <http://www.regesta.com/diego> <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com> . <http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/familyName> ‘Mazzini’ . <http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/firstName> ‘Silvia’ . <http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/gender> ‘female’ . <http://www.regesta.com/silvia> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> . <http://www.regesta.com/silvia> <http://www.w3.org/ns/org#memberOf> <http://www.regesta.com> . <http://www.regesta.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/org#Organization> . <http://www.regesta.com> <http://www.w3.org/2004/02/skos/core#prefLabel> ‘Regesta.exe srl’ . <http://www.regesta.com/silvia> <http://xmlns.com/foaf/0.1/knows> <http://www.regesta.com/diego> . <…> <…> <…>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>.<noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> <makeGoCreazy> <homer>. <noTv> <makeGoCreazy> <homer>. <noBeer> …
  • 40. The Resource Description Framework is a general-purpose language for representing information in the Web. It's time for a new standard RDF
  • 41. The SPARQL Protocol and RDF Query Language is a query language and protocol for RDF. It's time for a new standard SPARQL
  • 42. On the Semantic Web, vocabularies define the concepts and relationships (also referred to as “terms”) used to describe and represent an area of concern. It's time for a new standard Ontologies
  • 43. PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf:firstName dc:title rdfs:label Pre:fixes (ontologies) just a few words
  • 45. Resource Description Framework › SPARQL endpoint › dereferenceable URIs › content negotiation › standard ports, like 80 (HTTP) › JSONP support MUST!
  • 46. Resource Description Framework › SPARQL endpoint › dereferenceable URIs › content negotiation › standards port, like 80 (HTTP) › JSONP support › up-to-date › the endpoint URL is easy to deduce from resources › the resources are described by dc:title or rdfs:label › the endpoint hosts a page for humans › the resources and the endpoint are on the same domain SHOULD! (please do it, for me)
  • 47. One single API a world to explore
  • 48. One single API interlinking <a href=“…”>click here</a> owl:sameAs rdfs:seeAlso …
  • 49. SELECT * {?minnesota ?banana ?sun} SPARQL a must know query language
  • 52. SELECT ?person { ?person <placeOfBirth> ?place ; <memberOf> ?company . ?company <locatedIn> ?place . } SPARQL group graph pattern <diego>
  • 53. SELECT ?person ?prop ?obj { ?person <placeOfBirth> ?place ; <memberOf> ?company ; ?prop ?obj . ?company <locatedIn> ?place . } SPARQL group graph pattern (turn the page)
  • 54. person prop obj <diego> rdf:type foaf:Person <diego> foaf:firstName ‘Diego’ <diego> foaf:familyName ‘Camarda’ <diego> foaf:gender ‘male’ <diego> org:memberOf <regesta> SPARQL group graph pattern
  • 56. <diego> rdf:type foaf:Person . <diego> foaf:firstName ‘Diego’ . <diego> foaf:familyName ‘Camarda’ . <diego> foaf:gender ‘male’ . <diego> org:memberOf <regesta> . <silvia> foaf:knows <diego> . SPARQL describe
  • 57. CONSTRUCT {<diego> foaf:donaldDuck ?c} WHERE{<diego> ?b ?c. } SPARQL construct (turn the page)
  • 58. <diego> foaf:donaldDuck foaf:Person . <diego> foaf:donaldDuck ‘Diego’ . <diego> foaf:donaldDuck ‘Camarda’ . <diego> foaf:donaldDuck ‘male’ . <diego> foaf:donaldDuck <regesta> . SPARQL construct
  • 59. DISTINCT, COUNT GRAPH, PREFIX isBlank, isIRI, isLiteral, isNumeric FILTER, REGEX, STR FILTER NOT EXISTS, MINUS ORDER BY, OFFSET, LIMIT for other stuff http://www.w3.org/TR/sparql11-query/ SPARQL minimum requirements
  • 60. Please start negotiating content right now! Hi dude, I accept: text/html,application/xhtml+xml Html pageGreat! I’ll serve you a web page Hi dude, I accept: application/rdf+xml RDF dataGreat… 303, redirect! Hi dude, I accept: pizza/margherita 406 errormmm… sorry
  • 61. Please start negotiating content right now! application/rdf+xml application/xml text/plain text/turtle application/x-turtle application/trix application/x-trig text/n3 text/rdf+n3 application/trix application/x-trig application/x-binary-rdf text/x-nquads application/ld+json application/rdf+json application/xhtml+xml text/xml application/json application/rdf+xml application/rdf+n3 application/sparql-results+xml application/sparql-results+json
  • 62. curl -L -H "Accept: application/rdf+xml" http://dati.camera.it/ocd/governo.rdf/g102 curl -L -H "Accept: text/n3" http://dati.camera.it/ocd/governo.rdf/g102 Please start negotiating content using CURL…
  • 63. Java : Sesame / Jena Python : RDFLib Ruby : RDF.rb nodeJs : sparql-client or, as I do, simple HTTP GET + parsing result as json or xml Please start negotiating content …or a framework!
  • 64. RDF data storing and deploying
  • 65. It’s slow so keep calm 1 record 15 triples 2.949.771 votes 64.948.856 triples usually eg. Chamber of deputies data big data RDF probably will transform
  • 66. Virtuoso Sesame Fuseki (Jena) Owlim / Bigdata (Sesame) AllegroGraph D2R server ARC2 … Triplestores I just need a SPARQL endpoint I just really need http://yourdomain/sparql
  • 68. select distinct ?o where {?s a ?o} select ?o count(distinct ?s) where {?s a ?o} select count(?s) where {?s ?p ?o} select count(?s) ?class where {?s ?p ?o; a ?class} select distinct ?p where {?s a <http://classe>; ?p ?o} select ?p count(?p) where {?s a <http://classe>; ?p ?o} select ?s where {?s a <http://classe>} ?p ?o where {<http://URI> ?p ?o} ?p ?o ?p1 ?o2 where {<http://URI> ?p ?o. OPTIONAL{?o ?p1 ?o2. FILTER(isBlank(?o))}} select distinct ?s ?title where {?s a <http://classe>; dc:title ?title. FILTER(REGEX(? title,’parola’,’i’))} LIMIT 100 SPARQL magic a query for all seasons
  • 74. W3C standards http://www.w3.org/standards/semanticweb/ OKFN endpoints status (and list) http://sparqles.okfn.org LodLive (a SPRQL navigator) http://en.lodlive.it a very good intro to RDF https://github.com/JoshData/rdfabout/blob/gh-pages/intro-to-rdf.md Tim Berners-Lee’s “Linked Data – 5 stars ranking” http://www.w3.org/DesignIssues/LinkedData.html My github page http://github.com/dvcama My email mailto:diego.camarda@regesta.com