Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome or Safari browser.
Semantic Databases
Dr. Jacek Kopecký
jacek.kopecky@port.ac.uk
ADCON, DWM, DBPRIN,
March 14–18, 2014
2014-03-11, 23:15
student faces 1 and 2 by Dell Inc., CC BY 2.0
presentation done using impress.js, press left/right arrow keys
Overview
- a mess of data
- what SQL cannot easily do
- representation, RDF
- URIs, naming, linking
- querying
SQL O.K.?
RDF: triples
Jacek a Lecturer ;
firstName "Jacek" ;
lastName "Kopecký" .
Penny a Lecturer ;
firstName "Penny" ;
lastName "Ross" ;
teaches ADCON .
Jacek a Lecturer .
Jacek firstName "Jacek" .
Jacek lastName "Kopecký" .
Penny a Lecturer .
Penny firstName "Penny" .
Penny lastName "Ross" .
Penny teaches ADCON .
uni:Jacek rdf:type uni:Lecturer ;
foaf:firstName "Jacek" ;
foaf:lastName "Kopecký" .
uni:Penny rdf:type uni:Lecturer ;
foaf:firstName "Penny" ;
foaf:lastName "Ross" ;
uni:teaches uni:ADCON .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix uni: <http://port.ac.example/> .
uni:Jacek rdf:type uni:Lecturer ;
foaf:firstName "Jacek" ;
foaf:lastName "Kopecký" .
<http://port.ac.example/Jacek>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://port.ac.example/Lecturer> ;
<http://xmlns.com/foaf/0.1/firstName>
"Jacek" ;
<http://xmlns.com/foaf/0.1/lastName>
"Kopecký" .
Naming:
http://port.ac.example/Jacek ?
http://jacek.cz/people/jacek
http://jacek.cz/db1.3/person/1
http://jacek.cz/uid/90b94fa0
http://jacek.cz/
http://jacek.cz/me
http://jacek.cz/#me
http://jacek.cz/rdf#me
http://www.jacek.cz/rdf#me
http://xmlns.com/foaf/0.1/Person
http://www.w3.org/2003/01/geo/wgs84_pos#lat
http://www.w3.org/2002/12/cal/icaltzd#Vevent
http://dbpedia.org/resource/Portsmouth
Name – Link – Share
Linked Data Principles
SQL for RDF?
SPARQL
SELECT ?lecturer
WHERE {
?lecturer teaches ADCON .
}
SELECT ?lecturer
WHERE {
?lecturer a Lecturer .
}
SELECT ?lecturer
WHERE {
Penny teaches ?unit .
?lecturer teaches ?unit .
}
SELECT ?student
WHERE {
Penny teaches ?unit .
?student takes ?unit .
}
SELECT ?lecturer
WHERE {
?lecturer teaches ?unit .
?r a Rating ;
target ?unit ;
stars 5 .
}
ASK {
Penny teaches ?unit .
?r a Rating ;
target ?unit ;
stars 5 .
}
Summary
- SQL has limitations
- doesn't promote public sharing
- RDF does: URIs
- naming is hard (and not needed in SQL)
- querying is easy