2. Overview
What is linked data?
A brief primer on RDF
How we used linked data in Research Revealed
The hidden world of data on the web
Recent developments: Facebook, Google, Yahoo, Bing
4. “To a computer, then, the web is a flat, boring world
devoid of meaning.
This is a pity, as in fact documents on the web describe
real objects and imaginary concepts, and give particular
relationships between them.”
9. Linked Data
Use URIs as names for things
Use HTTP URIs so that
people can look up those
names.
When someone looks up a
URI, provide useful
information, using the
standards (RDF*, SPARQL)
Include links to other URIs. so
that they can discover more
things.
10. RDF is simple
<http://www.bristol.ac.uk/>
<http://purl.org/dc/terms/hasVersion>
<http://m.bristol.ac.uk> .
<http://www.bristol.ac.uk/>
<http://purl.org/dc/terms/title>
“Bristol University homepage” .
11. RDF is simple
subject
predicate
<http://www.bristol.ac.uk/>
object
<http://purl.org/dc/terms/hasVersion>
<http://m.bristol.ac.uk> .
<http://www.bristol.ac.uk/>
<http://purl.org/dc/terms/title>
“Bristol University homepage” .
12. RDF is simple
subject
predicate
<http://www.bristol.ac.uk/>
object
<http://purl.org/dc/terms/hasVersion>
<http://m.bristol.ac.uk> .
<http://www.bristol.ac.uk/>
literal
<http://purl.org/dc/terms/title>
“Bristol University homepage” .
13. Writing it can be easy
@prefix dc: <http://purl.org/dc/terms/> .
<http://www.bristol.ac.uk>
dc:title “Bristol University homepage” ;
dc:hasVersion <http://m.bristol.ac.uk> .
14. Writing it...
rdf/xml - the standard
n-triples - line-oriented, simple
turtle - human friendly, n-triples with shortcuts
RDFa - embedded in (x)html
various JSON
15. Publishing it
What’s ‘http://purl.org/dc/terms/hasVersion’?
GET http://purl.org/dc/terms/hasVersion
302 http://dublincore.org/2010/10/11/dcterms.rdf#hasVersion
GET ...
200 <bunch of rdf/xml, some of which concerns
dc:hasVersion>
“Follow your nose”
16. Publishing it
Upload an rdf file. Put everything in that.
URLs like <http://example.com/about.rdf#me>
Upload an rdf and html version. Content negotiate.
<../about#me> yields html page in browser.
<../about#me> yields rdf page if agent asks for it.
<../about/me> redirect and (perhaps) content
negotiate.
21. Try on sparql.org
PREFIX dc: <http://purl.org/dc/terms/>
SELECT *
FROM <http://purl.org/dc/terms/
hasVersion>
WHERE {
dc:hasVersion ?p ?o
}
22. Result
p o
<http://purl.org/dc/terms/modified> "2008-01-14"
<http://purl.org/dc/terms/issued> "2000-07-11"
<http://dublincore.org/usage/terms/history/
<http://purl.org/dc/terms/hasVersion>
#hasVersion-003>
<http://www.w3.org/2000/01/rdf-schema#label> "Has Version" @en-US
<http://www.w3.org/2000/01/rdf-
<http://purl.org/dc/elements/1.1/relation>
schema#subPropertyOf>
"A related resource that is a version, edition, or
<http://www.w3.org/2000/01/rdf-schema#comment>
adaptation of the described resource." @en-US
"This term is intended to be used with non-literal values
<http://www.w3.org/2004/02/skos/core#note>
as defined in the DCMI Abstract Model (http://
dublincore.org/documents/abstract-model/). As of
<http://www.w3.org/2000/01/rdf-schema#isDefinedBy> <http://purl.org/dc/terms/>
December 2007, the DCMI Usage Board is seeking a
way to express this intention with a formal range
<http://www.w3.org/1999/02/22-rdf-syntax-
declaration." @en-US
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
ns#Property>
<http://www.w3.org/2000/01/rdf-
<http://purl.org/dc/terms/relation>
schema#subPropertyOf>
23. Run your own store
$ curl -O http://openjena.org/repo-dev/
org/openjena/fuseki/0.2.1-SNAPSHOT/
fuseki-0.2.1-20110904.172006-16.zip
$ unzip fuseki*.zip
$ cd Fuseki-0.2.1-SNAPSHOT
$ mkdir DB
$ ./fuseki-server --loc DB --update
/my-data
http://localhost:3030/
26. Behind the scenes
Lots of internal data
Funding council data
Researcher contributed
Other third-party
sources
27. Publishing our data
All staff have a contact
page. Err, actually we
seem to have dozens.
Links to my
organisation
My organisation links to
members and parent
organisation
28. Publishing data with RDFa
RDF-in-attributes
Adds a few attributes
to html
Links and content can
become objects.
Attributes introduce
properties.
31. Linking with the British
Library
BL converted
bibliographic data
New books published
in the UK since 1950
3 million records (1E8
triples)
Ought to be some
crossover
32. Data needed munging
prefix rdfs: <http://www.w3.org/2000/01/
rdf-schema#>
prefix dc: <http://purl.org/dc/terms/>
prefix ilrt: <http://www.ilrt.org/#>
insert into <urn:x:normalised>
{ ?person foaf:name ?nlabel } where
{ select ?person (ilrt:normaliseName(?
label) as ?nlabel)
{ graph ?g1 { ?s dc:contributor ?
person }
graph ?g2 { ?person rdfs:label ?
label }
33. Linking with the British
Library
At the time the data
wasn’t great
Authors were strings
We enriched BL data
more than the other
way around
Much improved now
38. Ask about the One Show
prefix po: <http://purl.org/ontology/po/>
select ?synopsis from
<http://www.bbc.co.uk/programmes/
b0171t8n>
{ <http://www.bbc.co.uk/programmes/
b0171t8n#programme>
po:long_synopsis ?synopsis }
=> “Alex Jones and Joe Crowley are joined
by the actor Neil Morrissey. Larry Lamb
visits a small village in France to find
out about a British WWII airman who has
been honoured there since 1944. Marcus