länkad data
DESCRIPTION
An introduction to Linked Data in Swedish. (Originally held at an internal lunch at Valtech in June 2012.)TRANSCRIPT
Länkad Data
Söka?
Hitta!
Webbens evolution
.. från en webb av dokument
.. till en webb av data
Vad är data?
10100111001class Person { String name; int id; }
CREATE TABLE Persons ( id INTEGER NOT NULL, name VARCHAR(40), PRIMARY KEY (id) )
<persons> <person id="123"><name>Someone</name></person></persons>
<div class="person" id="p-abc003"> <span class="name">Someone</span></div>
"persons": [ { name:"Someone", id:123 } ]
CSV, XML, JSON, APIs, ...
Det skalar inte
● Att återuppfinna● Att reverse-engineera
(T.o.m. Google slår i taket)
Slöseri!
Kunskapen finns hos de somskapar data
och de som kontinuerligt studerar ochanvänder data
(både ur UI- och IT-perspektiv!)
Vad saknas?
Gemensamma egenskaper/attribut
Gemensamma länkar
Namn på länkar
Nästa steg:
Länkad data på webben
Linked Data
Tim Berners-Lee
Inventor of the World Wide Web
2009
<http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html>
Principer
Använd URIer för att identifiera saker
Använd HTTP-URIer så att de kan hänvisas till och slås upp på webben
Skicka användbar information när URIn slås upp
Inkludera länkar till andra URIer för att stödja upptäckbarhet av relaterad information
Användbar information
★ make your stuff available on the web (whatever format)★★ make it available as structured data (e.g. excel)★★★ use non-proprietary formats (e.g. CSV)★★★★ use URLs to identify things (e.g. an RDF format)★★★★★ link your data to other data to provide context
Framväxten av en semantisk webb
The Linked Data Projects
Yahoo SearchMonkey, Google Rich Snippets
Facebook Open Graph (OGP)
Schema.org
Google Knowledge Graph
Innan vi börjar..
Resource
Description
Framework
En standard för länkad data på webben
En enhetlig datamodell
Datamodell?
RDBs: relational
XML, JSON: trees (disjoint)
RDF: graph
Grafmodellen
Enkel
Naturlig
Integrerbar
Består av
Namngivna nodermed namngivna pilar därmellan
Länkar
Unika namn: URIer
(Turtle)
@prefix dc: <http://purl.org/dc/terms/> .@prefix : <http://schema.org/> .
<http://data.su.se/kurs/logik-a> a :EducationEvent; dc:title "Grundkurs i logik"@sv; dc:publisher <http://data.su.se/org>; dc:subject <http://data.vhs.se/def/studier/Logik> .
SPARQL
Protocol andRDF Query Language
pattern matching
select ?course ?title {
?course a :EducationEvent; dc:title ?title; dc:subject <http://data.vhs.se/def/studier/Logik>; dc:publisher [ a :EducationalOrganization; dbpowl:city <http://dbpedia.org/resource/Stockholm> ] .
}
Grunden för Länkad Data
Flera datakällor, uttryckta i RDF,sammanlänkade på webben
Länkad Data gör webben till en
giganisk, global grafdatabas
The LOD Cloud
2008
2011
Wikipedia
Use DBPedia to
.. query relationships and propertiesassociated with Wikipedia resources,
including links to other related datasets
Födda i Berlin before 1900
...prefix dbo: <http://dbpedia.org/ontology/>
select ?person ?name ?birth { ?person foaf:name ?name; dbo:birthPlace :Berlin; dbo:birthDate ?birth . filter (?birth < "1900-01-01"^^xsd:date) .}order by ?name
201 gifta forskare
select (count(?person) as ?count){ ?person a foaf:Person, dbpedia-owl:Scientist; dbpprop:spouse ?spouse .}
11013 ogifta
select (count(?person) as ?count){ ?person a foaf:Person, dbpedia-owl:Scientist . minus { ?person dbpprop:spouse ?spouse . }}
Lista svenska kommuner
select * { ?kommun a yago:MunicipalitiesOfSweden; foaf:name ?name; geo:lat ?lat; geo:long ?long .}
Mängder av egenskaper att plocka med..
dc:titlefoaf:namefoaf:depictiondbpowl:influencedBydbpowl:birthPlacedbpprop:areaKmgeo:latgeo:longdbpowl:capitaldbpprop:populationCensus...
Origins: Freebase
● by Metaweb● Contains data from various sources (e.g.
Wikipedia)● RDF is a key component● Acquired by Google July 16, 2010
"The Google Knowledge Graph is essentially Freebase++... this is
all good Semantic Web stuff"
– Alon Halevy, Google
Schema.org
Provides a collection of schemas that webmasters can use to markup their pages in ways recognized by major search providers
Google, Bing, Yahoo, Yandex, ...
(W3C..)
<div vocab="http://schema.org/" typeof="LocalBusiness"> <h1 property="name">Beachwalk Beachwear & Giftware</h1> <span property="description"> A superb collection of fine gifts and clothing to accent your stay in Mexico Beach.</span> <div property="address" typeof="PostalAddress"> <span property="streetAddress">3102 Highway 98</span> <span property="addressLocality">Mexico Beach</span>, <span property="addressRegion">FL</span> </div> Phone: <span property="telephone">850-648-4200</span></div>
@prefix : <http://schema.org/> .
[] a :LocalBusiness; :name "Beachwalk Beachwear & Giftware"; :description """ A superb collection of fine gifts and clothing to accent your stay in Mexico Beach."""; :address [ a :PostalAddress; :streetAddress "3102 Highway 98"; :addressLocality "Mexico Beach"; :addressRegion "FL" ]; :telephone "850-648-4200" .
a:et står för attribut
Speciella attribut inbäddade i ett moderspråk
T.ex. HTML eller SVG
Webbplatser är fulla av
● Dokument...● Nyheter● Kalenderhändelser● Kontaktinformation● Produkter, Recensioner, Gallerier● Begrepp, Modeller, ...
Fånga detaljer
EgenskaperTitel, namn, roll, datum
Särskilda länkarförfattare, utgivare, licens, ämne
HTML5
<article> <header> <h1>Title</h1> <h2>Author</h2> <h3><time>2012-04-17</time></h3> </header> <p>...<p> <p>...<p> <footer> <a href="/topic/1">Tag1</a> <a href="/topic/2">Tag2</a> <a href="/topic/3">Tag3</a> <a href="/about/license">License</a> </footer></article>
@vocab
<article vocab="http://purl.org/dc/terms/"> <header> <h1>Title</h1> <h2>Author</h2> <h3><time>2012-04-17</time></h3> </header> <p>...<p> <p>...<p> <footer> <a href="/topic/1">Tag1</a> <a href="/topic/2">Tag2</a> <a href="/topic/3">Tag3</a> <a href="/about/license">License</a> </footer></article>
@property
<article vocab="http://purl.org/dc/terms/"> <header> <h1 property="title">Title</h1> <h2 property="creator">Author</h2> <h3><time property="issued">2012-04-17</time></h3> </header> <p>...<p> <p>...<p> <footer> <a href="/topic/1">Tag1</a> <a href="/topic/2">Tag2</a> <a href="/topic/3">Tag3</a> <a href="/about/license">License</a> </footer></article>
RDFa 1.1 in HTML5
<article vocab="http://purl.org/dc/terms/"> <header> <h1 property="title">Title</h1> <h2 property="creator">Author</h2> <h3><time property="issued">2012-04-17</time></h3> </header> <p>...<p> <p>...<p> <footer> <a property="subject" href="/topic/1">Tag1</a> <a property="subject" href="/topic/2">Tag2</a> <a property="subject" href="/topic/3">Tag3</a> <a property="license" href="/about/license">License</a> </footer></article>
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix : <http://purl.org/dc/terms/> .
<> :title "Title"; :creator "Author"; :issued "2012-04-17"^^xsd:date; :subject </topic/1>; :subject </topic/2>; :subject </topic/3>; :license </about/license> .
RDFa Lite
●@vocab / @prefix●@resource●@property●@href●@typeof
Detaljer
●@datatype●@lang●@content●@about●@rel / @rev●@inlist
Lämpliga vokabulär för RDFa
Schema.orgDublin CoreCreative CommonsGoodRelationsrNews (IPTC)Friend-of-a-FriendFacebook OpenGraph
Tillämpbarhet
När några detaljer är viktigaFör söktjänster att fånga upp
Självbeskrivande dokumentT.ex. myndighetspublikationer
Webb och APIBygg dataplattform och webbplats i ett!
Specialiserade sökgränssnitt
Platta index med facetterad sökning
Grafdatabaser
Genväg till en semantisk webb
● Bygg webbsidor utifrån användningsbehov● Ringa in domändata i dessa● Låt söktjänster indexera denna data
RDFa.info/play/
RDF-teknik
Saker
Ges URI:er som id:n
Beskrivs med egenskaper
Antingen enkla värden (text, datum) eller länkar
Egenskaper
Är också ting som kan beskrivas
Vokabulär
En enkel datamodell
Påståenden
(subjekt, predikat, objekt)
Triples
subjekt -predikat-> objekt
@prefix dc: <http://purl.org/dc/terms/> .@prefix : <http://schema.org/> .
@base <http://data.su.se/kurs/logik-a>
<> a :EducationEvent .
<> :startDate "2012-01-20"^^xsd:date .
<> dc:title "Grundkurs i logik"@sv .
<> dc:publisher </org/su> .
<> dc:subject </def/studier/Logik> .
Literaler
"Logik"@sv
"Logic"@en
"2012-01-20"^^xsd:date
Information, kvalitet, substans
Explicita innebörder (vad som beskrivs och hur)
Kom åt inkommande relationer (och många-till-många)
Länknamn/egenskaper är "första klassens objekt"
Jämför med bara XML, JSON..
● URIer som idenfierare● Unika egenskaper (har URIer; jmf. namespaces)● Språkstöd ("en", "sv", "jp", ...), rika datatyper
(date, dateTime, ...)● Sömlöst kombinerbart● Naturliga M2M-relationer
Dataformat
● RDF/XML● RDFa● Turtle● JSON-LD
Publicera ett ting i taget
Beskrivingar i dokument
På webben
@prefix dct: <http://purl.org/dc/terms/> .@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<http://neverspace.net/> a foaf:Document; dct:creator <http://purl.org/NET/dust/foaf#self>; dct:title "Neverspace"@en .
<http://purl.org/NET/dust/foaf#self> a foaf:Person; foaf:homepage <http://neverspace.net/>; foaf:name "Niklas Lindström" .
Kod för allaC: Redland
Java: Jena, Sesame
Javascript: Tabulator, RDFQuery, W3C RDF API..
Python: RDFLib
Ruby: RDF.rb
.NET: dotNetRDF
Hämta data från webben
>>> from rdflib import *
>>> DCT = Namespace("http://purl.org/dc/terms/")>>> FOAF = Namespace("http://xmlns.com/foaf/0.1/")
>>> data = Graph()>>> data.load("http://purl.org/NET/dust/foaf#self")>>> len(data)39
>>> ref = URIRef("http://purl.org/NET/dust/foaf#self")>>> me = data.resource(ref)
>>> print me.value(FOAF.name).encode('utf-8')Niklas Lindström
>>> homepage = me.value(FOAF.homepage)>>> print homepage.identifierhttp://neverspace.net/
>>> for interest in me.objects(FOAF.interest):... print interest.identifierhttp://www.w3.org/RDF/http://en.wikipedia.org/wiki/Philosophyhttp://en.wikipedia.org/wiki/Surrealism...
Triple Stores
Grafdatabaser
● Lagra massiva mängder triples● Standardiserat webbinterface: SPARQL● Är i regel quad-stores (tänk dokument-db)
Open SourceFuseki (Java)
Sesame (Java)
Virtuoso (native)
4Store (native)
AllegroGraph (Lisp)
(Neo4J)
Kommersiella
Oracle, IBM, ..., Microsoft OData...
Quad Stores
Namngivna grafer
.. tänk "dokument-DB"
Hur gör jag?
Använd befintliga vokabulär
DC — Dublin Core Terms
FOAF — Friend of a Friend
SIOC — Semantically Interlinked Online Communities
SKOS — Simple Knowledge Organization System
GoodRelations
rNews (IPTC)
Schema.org
W3C Geo, MusicOnt, ProgrammesOnt, DOAP, uniProt, OGP, ...
Skapa egna
RDFS — RDF SchemaOWL — Web Ontology Language
Om möjligt, länka till befintliga!
Webbens arkitektur
● Identifikation: URI:er● Åtkomst: HTTP● Representation: öppna format, länkad hypertext● Komposition: länka alla slags resurser
HTTP-URIer som namn på ting
Publicera användbar information
● Tydliga egenskaper● Många länkar
– även till externa resurser beskrivna med RDF– inkommande länkar
.. och åtkomlig!
● Dataset-info (upptäckbarhet, uppdateringar)● Provenans● Licenser
Undvik silo-effekten!
Där det är oklart:
● vad som är en datapost● huruvida all relevant data exponeras● vad sökningar baserar sig på
Linked Enterprise Data
Använd samma principer
Möjliggör integration av utspridda applikationer
Tänk "crawling++"
Statlig data
PSI-direktivet
Alla ska dra nytta av statens verksamheter!
Bör det finnas officiell länkad grunddata?
● Lista svenska kommuner..● Lista svenska högskolor/universitet..
Googla/Binga/Sitesearcha...?DBPedia — skrapad från Wikipedia!
Vad motiverade att publicera HTML under 90-talet?
● Dela data som dokument● För att andra gjorde det● Sedan kom: marknadsföring, annonsering,
SEO...
Vad motiverar att publicera länkad data?
● Dela data som data● För att andra gör det● Marknadsföring, annonsering, SEO...
Användning idag
BBC, NYT, data.gov.uk, life science.., AstraSeneca, Boeing...
.. alla som vill synliggöra data med OGP, rich snippets, schema.org
Library of Congress, Libris, EuroVoc, ScOT..
.. och resten i LOD-molnet..
Dominion Apps
FB OGP
GKG
Watson!
Domain Specific Apps
BBC World Cup 2010
BBC Wildlife Finder
seevl.net
data.gov.uk
Sammanfattningsvis
Några länkar..
<http://www.w3.org/standards/semanticweb/>
<http://linkeddata.org/>
<http://rdfa.info/>
...
Ta fram bra data
Arbeta konkret med användning
Kontinuerligt jobba med sök-/hittbarheten
Stöd för redaktörer och förvaltning!
Minska gapet mellan producent och konsument!
Sträva efter..
Meningsfull och sammanhängande data på
webben!
Tack!
BildkällorScreenshots from the Google Knowledge Graph intro videoSome icons from OpenClipArt.org"Silos""Walled Gardens" by David Simonds via ISSLOD-DSSN and Design Issues: Socially Aware Cloud Storage (Tim Berners-Lee)"This is Not a Pipe"The LOD CloudW3C LogosHighlighter pen by Guido "random" AlvarezPresentation vs. Semantics (Ivan Herman, RDF 1.1 Primer)Google Rich Snippets imageYahoo SearchMonkey cc-imageYahoo SearchMonkey product-imageLinked Open Vocabularies...