SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
RDF + SPARQL
querying the web
of (lex)data
Diego Valerio Camarda
regesta.exe
www.regesta.com
diego.camarda@regesta.com
dvcama @ github&twitter
DiegoValerioCamarda @ slideshare
a (really) short
introduction to
linked open data
what about IRIs 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
The Children and Families Act 2014
http://www.legislation.gov.uk/id/uksi/2014/2270
what about IRIs and RDF
turning documents into data
ids are ambiguous and suck!
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)
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.
?person <memberOf> ?company .
?company <locatedIn> ?place .
}
SPARQL
group graph pattern
<diego>
SELECT ?person ?prop ?obj {
?person <placeOfBirth> ?place.
?person <memberOf> ?company.
?person ?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
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… 302, 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 results 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}
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
Senate of Republic
http://dati.camera.it/sparql
http://dati.senato.it/sparql
Useful links
All Bills filtered by year
SELECT DISTINCT * {?bill a ocd:atto; dc:title ?title; dc:date ?date .
FILTER(regex(?date,'^2014'))} ORDER BY ?date
Last voted Bills
SELECT distinct * WHERE {
?bill a ocd:atto; dc:title ?title.
?votazione a ocd:votazione; ocd:rif_attoCamera ?bill; dc:date ?data; dc:title ?denominazione;
dc:description ?descrizione; ocd:votanti ?votanti; ocd:votazioneFinale 1; ocd:favorevoli
?favorevoli; ocd:contrari ?contrari; ocd:astenuti ?astenuti;
ocd:rif_leg <http://dati.camera.it/ocd/legislatura.rdf/repubblica_17>}
ORDER BY DESC(?data)
Example queries
Chamber of deputies
All Bills filtered by year
PREFIX osr: <http://dati.senato.it/osr/>
SELECT DISTINCT * {?bill a osr:Ddl; osr:titolo ?title; osr:dataPresentazione ?date .
FILTER(regex(STR(?date),'^2014'))} ORDER BY ASC(?date)
Last approved Bills
PREFIX osr: <http://dati.senato.it/osr/>
SELECT DISTINCT ?ddl ?titolo ?titoloBreve ?natura ?stato ?dataApprovato
WHERE { ?ddl a osr:Ddl. ?ddl osr:statoDdl ?stato.
?ddl osr:ramo "S"^^<http://www.w3.org/2001/XMLSchema#string>.
?ddl osr:dataPresentazione ?dataPresentazione. ?ddl osr:titolo ?titolo.
OPTIONAL { ?ddl osr:titoloBreve ?titoloBreve }. ?ddl osr:natura ?natura.
?ddl osr:dataStatoDdl ?dataApprovato. ?ddl osr:testoApprovato ?testoApprovato
FILTER(xsd:date(str(?dataApprovato)) <= xsd:date(str("2014-12-31")))
FILTER(xsd:date(str(?dataApprovato)) >= xsd:date(str("2014-01-01")))
} ORDER BY ?dataApprovato
Example queries
Senate of Republic
Case studies
UK Legislation
http://gov.tso.co.uk/legislation/sparql
http://openuplabs.tso.co.uk/sparql/gov-legislation
http://www.opsi.gov.uk/legislation-api/developer/formats/rdf
Useful links
All ‘Works’ filtered by year
SELECT ?work ?date ?title {?work a frbr:Work . ?work dct:title ?title . ?work dct:created ?date .
FILTER (REGEX(STR(?date),'^2014')) } ORDER BY desc(?date)
Top subjects by year
SELECT (count(?sub) as ?tot) ?sub { ?work a frbr:Work . ?work dct:subject ?sub . ?work
dct:created ?date . FILTER (REGEX(STR(?date),'^2014')) } GROUP BY ?sub ORDER BY desc(?tot)
LIMIT 100
Example queries
Even more
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

Contenu connexe

Tendances

A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsDr. Neil Brittliff
 
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIsJosef Petrák
 
Introduction To RDF and RDFS
Introduction To RDF and RDFSIntroduction To RDF and RDFS
Introduction To RDF and RDFSNilesh Wagmare
 
Linked Data - Radical Change?
Linked Data -  Radical Change?Linked Data -  Radical Change?
Linked Data - Radical Change?Richard Wallis
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis PlatformLeigh Dodds
 
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
 
Linked Data - Exposing what we have
Linked Data - Exposing what we haveLinked Data - Exposing what we have
Linked Data - Exposing what we haveRichard Wallis
 
Creating web applications with LODSPeaKr
Creating web applications with LODSPeaKrCreating web applications with LODSPeaKr
Creating web applications with LODSPeaKrAlvaro Graves
 
Linked Data, Ontologies and Inference
Linked Data, Ontologies and InferenceLinked Data, Ontologies and Inference
Linked Data, Ontologies and InferenceBarry Norton
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD CloudRuben Verborgh
 
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
 
SPARQL Query Forms
SPARQL Query FormsSPARQL Query Forms
SPARQL Query FormsLeigh Dodds
 
Open Source: Liberating your systems
Open Source: Liberating your systemsOpen Source: Liberating your systems
Open Source: Liberating your systemsRichard Wallis
 
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
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDFNarni Rajesh
 

Tendances (20)

RDF data model
RDF data modelRDF data model
RDF data model
 
A Little SPARQL in your Analytics
A Little SPARQL in your AnalyticsA Little SPARQL in your Analytics
A Little SPARQL in your Analytics
 
Web of data
Web of dataWeb of data
Web of data
 
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
 
Introduction To RDF and RDFS
Introduction To RDF and RDFSIntroduction To RDF and RDFS
Introduction To RDF and RDFS
 
Linked Data - Radical Change?
Linked Data -  Radical Change?Linked Data -  Radical Change?
Linked Data - Radical Change?
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis Platform
 
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...
 
Linked Data - Exposing what we have
Linked Data - Exposing what we haveLinked Data - Exposing what we have
Linked Data - Exposing what we have
 
Creating web applications with LODSPeaKr
Creating web applications with LODSPeaKrCreating web applications with LODSPeaKr
Creating web applications with LODSPeaKr
 
Data in RDF
Data in RDFData in RDF
Data in RDF
 
Linked Data, Ontologies and Inference
Linked Data, Ontologies and InferenceLinked Data, Ontologies and Inference
Linked Data, Ontologies and Inference
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD Cloud
 
RDF, linked data and semantic web
RDF, linked data and semantic webRDF, linked data and semantic web
RDF, linked data and semantic web
 
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
 
SPARQL Query Forms
SPARQL Query FormsSPARQL Query Forms
SPARQL Query Forms
 
Open Source: Liberating your systems
Open Source: Liberating your systemsOpen Source: Liberating your systems
Open Source: Liberating your systems
 
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
 
Semantic Web - Linked Data - RDF
Semantic Web - Linked Data - RDFSemantic Web - Linked Data - RDF
Semantic Web - Linked Data - RDF
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
 

Similaire à SUMMER SCHOOL LEX 2014 - RDF + SPARQL querying the web of (lex)data

RDFa Introductory Course Session 2/4 How RDFa
RDFa Introductory Course Session 2/4 How RDFaRDFa Introductory Course Session 2/4 How RDFa
RDFa Introductory Course Session 2/4 How RDFaPlatypus
 
Hack U Barcelona 2011
Hack U Barcelona 2011Hack U Barcelona 2011
Hack U Barcelona 2011Peter Mika
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsRinke Hoekstra
 
Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015Cason Snow
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic WebIvan Herman
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeDan Brickley
 
Semantic Web
Semantic WebSemantic Web
Semantic Webhardchiu
 
Publishing data on the Semantic Web
Publishing data on the Semantic WebPublishing data on the Semantic Web
Publishing data on the Semantic WebPeter Mika
 
20080917 Rev
20080917 Rev20080917 Rev
20080917 Revcharper
 
Building a semantic website
Building a semantic websiteBuilding a semantic website
Building a semantic websiteCJ Jenkins
 
Linking Open, Big Data Using Semantic Web Technologies - An Introduction
Linking Open, Big Data Using Semantic Web Technologies - An IntroductionLinking Open, Big Data Using Semantic Web Technologies - An Introduction
Linking Open, Big Data Using Semantic Web Technologies - An IntroductionRonald Ashri
 
Deploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application ServerDeploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application Serverwebhostingguy
 
Geography in Linked Ancient World Data
Geography in Linked Ancient World DataGeography in Linked Ancient World Data
Geography in Linked Ancient World Dataparegorios
 
Linked data for librarians
Linked data for librariansLinked data for librarians
Linked data for librarianstrevorthornton
 
when the link makes sense
when the link makes sensewhen the link makes sense
when the link makes senseFabien Gandon
 
CSHALS 2010 W3C Semanic Web Tutorial
CSHALS 2010 W3C Semanic Web TutorialCSHALS 2010 W3C Semanic Web Tutorial
CSHALS 2010 W3C Semanic Web TutorialLeeFeigenbaum
 

Similaire à SUMMER SCHOOL LEX 2014 - RDF + SPARQL querying the web of (lex)data (20)

RDFa Introductory Course Session 2/4 How RDFa
RDFa Introductory Course Session 2/4 How RDFaRDFa Introductory Course Session 2/4 How RDFa
RDFa Introductory Course Session 2/4 How RDFa
 
How RDFa works
How RDFa worksHow RDFa works
How RDFa works
 
Hacia la Internet del Futuro: Web Semántica y Open Linked Data, Parte 2
Hacia la Internet del Futuro: Web Semántica y Open Linked Data, Parte 2Hacia la Internet del Futuro: Web Semántica y Open Linked Data, Parte 2
Hacia la Internet del Futuro: Web Semántica y Open Linked Data, Parte 2
 
Hack U Barcelona 2011
Hack U Barcelona 2011Hack U Barcelona 2011
Hack U Barcelona 2011
 
Danbri Drupalcon Export
Danbri Drupalcon ExportDanbri Drupalcon Export
Danbri Drupalcon Export
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n Bolts
 
Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015
 
Quick Introduction to the Semantic Web, RDFa & Microformats
Quick Introduction to the Semantic Web, RDFa & MicroformatsQuick Introduction to the Semantic Web, RDFa & Microformats
Quick Introduction to the Semantic Web, RDFa & Microformats
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in Practice
 
Semantic Web
Semantic WebSemantic Web
Semantic Web
 
Publishing data on the Semantic Web
Publishing data on the Semantic WebPublishing data on the Semantic Web
Publishing data on the Semantic Web
 
20080917 Rev
20080917 Rev20080917 Rev
20080917 Rev
 
Building a semantic website
Building a semantic websiteBuilding a semantic website
Building a semantic website
 
Linking Open, Big Data Using Semantic Web Technologies - An Introduction
Linking Open, Big Data Using Semantic Web Technologies - An IntroductionLinking Open, Big Data Using Semantic Web Technologies - An Introduction
Linking Open, Big Data Using Semantic Web Technologies - An Introduction
 
Deploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application ServerDeploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application Server
 
Geography in Linked Ancient World Data
Geography in Linked Ancient World DataGeography in Linked Ancient World Data
Geography in Linked Ancient World Data
 
Linked data for librarians
Linked data for librariansLinked data for librarians
Linked data for librarians
 
when the link makes sense
when the link makes sensewhen the link makes sense
when the link makes sense
 
CSHALS 2010 W3C Semanic Web Tutorial
CSHALS 2010 W3C Semanic Web TutorialCSHALS 2010 W3C Semanic Web Tutorial
CSHALS 2010 W3C Semanic Web Tutorial
 

Dernier

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Dernier (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

SUMMER SCHOOL LEX 2014 - RDF + SPARQL querying the web of (lex)data

  • 1. RDF + SPARQL querying the web of (lex)data Diego Valerio Camarda regesta.exe www.regesta.com diego.camarda@regesta.com dvcama @ github&twitter DiegoValerioCamarda @ slideshare
  • 2. a (really) short introduction to linked open data
  • 3. what about IRIs 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
  • 4. The Children and Families Act 2014 http://www.legislation.gov.uk/id/uksi/2014/2270 what about IRIs and RDF turning documents into data ids are ambiguous and suck!
  • 5. A new way to design databases RDF (aka ’define knowledge’)
  • 6. 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
  • 7. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego>Subject
  • 8. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> Subject Predicate
  • 9. Go Triples, go! the new (cool) approach <http://www.regesta.com/diego> <http://xmlns.com/foaf/0.1/familyName> ‘Camarda’. Subject Predicate Object
  • 10. 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’.
  • 11. 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’ .
  • 12. Go Triples, go! ok, but what a “diego” is?
  • 13. Go Triples, go! it’s a person! <http://www.regesta.com/diego> a <http://xmlns.com/foaf/0.1/Person>
  • 14. 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> .
  • 15. 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> .
  • 16. 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> .
  • 17. 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> .
  • 18. 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> .
  • 19. Go Triples, go! Objects could be Subjects diego
  • 20. Go Triples, go! considering diego and regesta diego regesta
  • 21. Go Triples, go! <diego> <memberOf> <regesta> diego regesta
  • 22. Go Triples, go! but, <regesta> <locatedIn> <rome> diego regesta rome
  • 23. Go Triples, go! <diego> <placeOfBirth> <rome> diego regesta rome
  • 24. Go Triples, go! <rome> <parentADM> <italy> diego regesta rome italy
  • 25. Go Triples, go! <silvia> <placeOfBirth> <italy> diego regesta silvia rome italy
  • 26. Go Triples, go! <silvia> <…> <…> diego regesta silvia rome italy
  • 27. Go Triples, go! <…> <…> <…> = a knowledge graph! diego regesta silvia rome italy
  • 28. 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> …
  • 31. The Resource Description Framework is a general-purpose language for representing information in the Web. It's time for a new standard RDF
  • 32. The SPARQL Protocol and RDF Query Language is a query language and protocol for RDF. It's time for a new standard SPARQL
  • 33. 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
  • 34. 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
  • 36. Resource Description Framework › SPARQL endpoint › dereferenceable URIs › content negotiation › standard ports, like 80 (HTTP) › JSONP support MUST!
  • 37. 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)
  • 38. SELECT * {?minnesota ?banana ?sun} SPARQL a must know query language
  • 41. SELECT ?person { ?person <placeOfBirth> ?place. ?person <memberOf> ?company . ?company <locatedIn> ?place . } SPARQL group graph pattern <diego>
  • 42. SELECT ?person ?prop ?obj { ?person <placeOfBirth> ?place. ?person <memberOf> ?company. ?person ?prop ?obj . ?company <locatedIn> ?place . } SPARQL group graph pattern (turn the page)
  • 43. 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
  • 45. <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
  • 46. 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
  • 47. 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… 302, redirect! Hi dude, I accept: pizza/margherita 406 errormmm… sorry
  • 48. 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
  • 49. 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…
  • 50. Java : Sesame / Jena Python : RDFLib Ruby : RDF.rb nodeJs : sparql-client or, as I do, simple HTTP GET + parsing results as json or xml Please start negotiating content …or a framework!
  • 51. RDF data storing and deploying
  • 52. 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
  • 53. 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
  • 55. 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} 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
  • 56. Case studies Chamber of deputies Senate of Republic
  • 58. All Bills filtered by year SELECT DISTINCT * {?bill a ocd:atto; dc:title ?title; dc:date ?date . FILTER(regex(?date,'^2014'))} ORDER BY ?date Last voted Bills SELECT distinct * WHERE { ?bill a ocd:atto; dc:title ?title. ?votazione a ocd:votazione; ocd:rif_attoCamera ?bill; dc:date ?data; dc:title ?denominazione; dc:description ?descrizione; ocd:votanti ?votanti; ocd:votazioneFinale 1; ocd:favorevoli ?favorevoli; ocd:contrari ?contrari; ocd:astenuti ?astenuti; ocd:rif_leg <http://dati.camera.it/ocd/legislatura.rdf/repubblica_17>} ORDER BY DESC(?data) Example queries Chamber of deputies
  • 59. All Bills filtered by year PREFIX osr: <http://dati.senato.it/osr/> SELECT DISTINCT * {?bill a osr:Ddl; osr:titolo ?title; osr:dataPresentazione ?date . FILTER(regex(STR(?date),'^2014'))} ORDER BY ASC(?date) Last approved Bills PREFIX osr: <http://dati.senato.it/osr/> SELECT DISTINCT ?ddl ?titolo ?titoloBreve ?natura ?stato ?dataApprovato WHERE { ?ddl a osr:Ddl. ?ddl osr:statoDdl ?stato. ?ddl osr:ramo "S"^^<http://www.w3.org/2001/XMLSchema#string>. ?ddl osr:dataPresentazione ?dataPresentazione. ?ddl osr:titolo ?titolo. OPTIONAL { ?ddl osr:titoloBreve ?titoloBreve }. ?ddl osr:natura ?natura. ?ddl osr:dataStatoDdl ?dataApprovato. ?ddl osr:testoApprovato ?testoApprovato FILTER(xsd:date(str(?dataApprovato)) <= xsd:date(str("2014-12-31"))) FILTER(xsd:date(str(?dataApprovato)) >= xsd:date(str("2014-01-01"))) } ORDER BY ?dataApprovato Example queries Senate of Republic
  • 62. All ‘Works’ filtered by year SELECT ?work ?date ?title {?work a frbr:Work . ?work dct:title ?title . ?work dct:created ?date . FILTER (REGEX(STR(?date),'^2014')) } ORDER BY desc(?date) Top subjects by year SELECT (count(?sub) as ?tot) ?sub { ?work a frbr:Work . ?work dct:subject ?sub . ?work dct:created ?date . FILTER (REGEX(STR(?date),'^2014')) } GROUP BY ?sub ORDER BY desc(?tot) LIMIT 100 Example queries
  • 64. 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