Alterna(va datamodeller & grafdata på webben Gäs8öreläsning 2018-05-23 Robin Keskisärkkä (robin.keskisarkka@liu.se)
Översikt Del 1: Alternativ till relationsdatabaser Del 2: Introduktion till den semantiska webben Dela data på webben RDF Metoder för att publicera och konsumera data Exempel på datamängder och användningsområden Del 3: Använda webbdata i R
Alterna(v (ll rela(onsdatabaser
Begränsningar hos rela(onsdatabaser Objekt existerar inte naturligt utan sina attribut Relationsmodellen fokuserar på relationer (inte objekt) Attribut måste vara atomära Semantiken bakom relationsdatabasen är inte explicit Vi måste veta om hur strukturen hänger ihop eller försöka härleda den ur hur tabellerna relaterar till varandra Knepigt att uppdatera databaschemat Kan ofta inte hantera riktigt stora datamängder Skalar inte horisontellt...
5 Alterna(v Objektorienterade databaser Deduktiva databaser ( logikdatabaser ) NoSQL Key-value stores Grafdatabaser...
6 Alterna(v? Objektorienterade databaser Deduktiva databaser ( logikdatabaser ) NoSQL Key-value stores Grafdatabaser...
7 Vad är NoSQL? Next Generation Databases mostly addressing some of the points: being non-relational, distributed, opensource and horizontally scalable. Often more characteristics apply such as: schema-free, easy replication support, simple API, eventually consistent / BASE (not ACID), a huge amount of data and more. Från http://nosql-database.org/
8 Key-value store Jfr. dictionary eller hashtabell Exempel Dynamo, Oracle NoSQL Database, Redis,... Fördelar Distribuerat (samma hash-funktion) Tillgängligt Enkel modell (inget schema) Utmaningar Konsistens, tid för händelser och konflikthantering => Offrar konsistens mot tillgänglighet och replikering
9 Wide column store Tvådimensionellt key-value store Tabell där radnamn + kolumnnamn utgör nyckeln för ett dataelement Tänkt för en stor mängd kolumner
10 Ex: Googles BigTable Utvecklades av Google 2004 2006 Rådata från Googles crawlers (2006) ca 800TB, 1000 miljarder celler Distribuerat över serverkluster Hierarki av tabeller för att hitta rätt data
11 Ex: Apache Cassandra Används av bla Apple, Netflix, ebay, Instagram... Kännetecknas av att data finns replikerat på flera noder och alla noder har samma status Netflix Detaljerade kategorier Användarstatistik sedan många år tillbaka
12 Grafdatabaser Mycket data kan naturligt beskrivas som grafer Sociala nätverk Länkar eller andra relationer mellan dokument... Typisk datamodell Noder Bågar (relationer) Attribut för både noder och relationer 1 sedan= 2011 jobbarpå namn= Eva personnummer=... 2 namn= LIU adress=...
13 Ex: Neo4J En av de populäraste grafdatabaserna Används av Walmart (produktrekommendationer), Telenor (resurser och åtkomstkontroll), ebay (leveransplanering)... Video (2009) http://www.infoq.com/presentations/emil-eifremneo4j
14 Ex. OrientDB Snabbt växande Hög prestanda på stora datamängder Flexibel datastruktur
15 Data på webben RDF och länkade data
Web vs. Seman(c Web
RDF Resource Descrip(on Framework Grafdatamodell för att representera data på webben Data representeras som tripplar En resurs är vad som helst som kan identifieras med en URI En webbsida, en bok, en verklig person,... Relationer är också resurser! Exempel: <Bob> <is a> <person>. <Bob> <is a friend of> <Alice>. <Bob> <is born on> <the 4th of July 1990>. <Bob> <is interested in> <the Mona Lisa>. <the Mona Lisa> <was created by> <Leonardo da Vinci>. <the video 'La Joconde à Washington'> <is about> <the Mona Lisa>. Exampel från hcps://www.w3.org/tr/rdf11-primer/
Exampel från hcps://www.w3.org/tr/rdf11-primer/
The Seman(c Web Layers
22 Standardiserade ontologier RDF RDFS OWL...
Relationsdatabas eller kunskapsbas? 23 En relationsdatabas har en mycket effektiv underliggande modell (för normalstora data) men semantiken bakom viss information förloras när den lagras som tabeller (jfr. ER-modell vs. tabeller) Ex: Lista alla forskningsartiklar Namn Anders Anna Bengt Position Doktorand Professor Pressansvarig Författare Artikel Bengt Universitetsnytt 2014 Anna Ontology engineering Bengt Statistik över LiU '07
RDF Bengt Anna Universitetsnytt 2014 Doktorand Pressansvarig Anders Statistik över LiU '07 Professor Ontology engineering
RDF + RDF Schema (RDFS) Position Fakultetsposition Doktorand Professor Administrativ position Pressansvarig Person Anna Bengt Anders Artikel Universitetsnytt 2014 Statistik över LiU '07 Ontology engineering
RDF + RDFS + OWL Position Fakultetsposition Doktorand Professor Administrativ position Pressansvarig Forskare Bengt Person Anders Anna Artikel Universitetsnytt 2014 Statistik över LiU '07 Ontology engineering Forskningsartikel = artikel skriven av en forskare = person som har en fakultetsposition
27 RDF/XML exempel <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/organization"/> <rdf:description rdf:about="http://data.scb.se/terms/sni/68201"> <skos:preflabel> Uthyrning och förvaltning av egna eller arrenderade bostäder</skos:preflabel> <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <org:classification rdf:resource="http://data.scb.se/terms/sni/68201"/> <rdf:description rdf:about="http://data.scb.se/terms/lkf/04"> <gn:parentfeature rdf:resource="http://dbpedia.org/resource/sweden"/> <rdfs:label>södermanlands län</rdfs:label> <rdf:description rdf:about="http://data.scb.se/terms/lkf/0484"> <gn:parentfeature rdf:resource="http://data.scb.se/terms/lkf/04"/> <rdfs:label>eskilstuna kommun</rdfs:label> <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <geo:location rdf:resource="http://data.scb.se/terms/lkf/0484"/>
RDF/XML exempel <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/organization"/> <rdf:description rdf:about="http://data.scb.se/terms/sni/68201"> <skos:preflabel> Uthyrning och förvaltning av egna eller arrenderade bostäder</skos:preflabel> <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> http://.../foretag_bce892 <org:classification rdf:resource="http://data.scb.se/terms/sni/68201"/> <rdf:description rdf:about="http://data.scb.se/terms/lkf/04"> <gn:parentfeature rdf:resource="http://dbpedia.org/resource/sweden"/> <rdfs:label>södermanlands län</rdfs:label> <rdf:description rdf:about="http://data.scb.se/terms/lkf/0484"> <gn:parentfeature rdf:resource="http://data.scb.se/terms/lkf/04"/> <rdfs:label>eskilstuna kommun</rdfs:label> rdf:type <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <geo:location rdf:resource="http://data.scb.se/terms/lkf/0484"/> 28 foaf:organization
RDF/XML exempel <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/organization"/> <rdf:description rdf:about="http://data.scb.se/terms/sni/68201"> <skos:preflabel> Uthyrning och förvaltning av egna eller arrenderade bostäder</skos:preflabel> <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <org:classification rdf:resource="http://data.scb.se/terms/sni/68201"/> <rdf:description rdf:about="http://data.scb.se/terms/lkf/04"> <gn:parentfeature rdf:resource="http://dbpedia.org/resource/sweden"/> <rdfs:label>södermanlands län</rdfs:label> <rdf:description rdf:about="http://data.scb.se/terms/lkf/0484"> <gn:parentfeature rdf:resource="http://data.scb.se/terms/lkf/04"/> <rdfs:label>eskilstuna kommun</rdfs:label> <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <geo:location rdf:resource="http://data.scb.se/terms/lkf/0484"/> http://.../foretag_bce892 rdf:type foaf:organization 29 Uthyrning... http://.../68201 skos:preflabel
RDF/XML exempel <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/organization"/> <rdf:description rdf:about="http://data.scb.se/terms/sni/68201"> <skos:preflabel> Uthyrning och förvaltning av egna eller arrenderade bostäder</skos:preflabel> <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <org:classification rdf:resource="http://data.scb.se/terms/sni/68201"/> <rdf:description rdf:about="http://data.scb.se/terms/lkf/04"> <gn:parentfeature rdf:resource="http://dbpedia.org/resource/sweden"/> <rdfs:label>södermanlands län</rdfs:label> <rdf:description rdf:about="http://data.scb.se/terms/lkf/0484"> <gn:parentfeature rdf:resource="http://data.scb.se/terms/lkf/04"/> <rdfs:label>eskilstuna kommun</rdfs:label> http://.../foretag_bce892 rdf:type org:classification http://.../68201 <rdf:description rdf:about="http://www.ida.liu.se/projects/semtech/energy/effektivisering/2013/09/foretag_bce892"> <geo:location rdf:resource="http://data.scb.se/terms/lkf/0484"/> 30 foaf:organization Uthyrning... skos:preflabel
Varför RDF? Prata om resurser och deras attribut på webben (eller utanför) En gemensam enkel (graf-) datamodell Ett universellt sätt att identifiera resurser (URI:er) Lågnivå -integration av data Vi kan tala om att två resurser är samma sak genom att använda samma URI
32 Hur lagras och (llhandahålls RDF-data? Nedladdningsbara filer Ladda hem och ladda in i eget triple store SPARQL-endpoints Ställ SPARQL fråga mot en tjänst på webben Data direkt på webben länkade data Slå upp URI:er och traversera grafen Experimentella SPARQL-interface finns Specialiserade API:er
34 Triple stores Specialdesignade grafdatabaser för att stödja RDF Jena, RDF4J, OpenLink Virtuoso, Blazegraph, Stardog,... Skillnad mot andra grafdatabaser RDF tillåter inte attribut på noder och bågar Standardiserat frågespråk och datamodell Stödjer oftast ontologier och inferens Ju mer uttrycksfull modell desto sämre skalbarhet
Länkade data RDF data som publiceras på webben i enlighet med ett antal principer: 1. Använd URI:er som namn på saker 2. Använd HTTP-URI:er så att man kan slå upp namnen 3. När någon slår upp en URI, se till att returnera användbar information om URI:n 4. Inkludera länkar till andra URI:er, så att man kan upptäcka mer Linking Open Data Project LOD Det första projektet som började publicera data på detta sätt Nu mycket mer än ett projekt https://lod-cloud.net/
Linked Open Data cloud https://lod-cloud.net/
Ec LOD exempel: DBPedia Man har extraherat strukturerad information (RDF) från Wikipedia (främst infoboxes ) Utforska: skriv in en URI för en entitet i din browser, t ex URI:n för Berlin http://dbpedia.org/resource/berlin Ställ frågor genom deras publika SPARQL endpoint http://dbpedia.org/sparql Alternativt interface: http://yasgui.org/
Ec LOD exempel: DBPedia Exempelfråga till DBPedia: Ge mig alla fotbollsspelare som har spelat för klubbar som har en arena med mer än 40 000 platser, och som är födda i ett land med mer än 10 miljoner invånare.
SPARQL-fråga PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX dbp: <http://dbpedia.org/property/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT DISTINCT?player?country WHERE {?player rdf:type dbo:soccerplayer.?player dbo:team?team.?team dbo:ground?stadium.?stadium dbo:seatingcapacity?no. FILTER (?no > 40000)?player dbo:birthplace?country.?country a dbo:country.?country dbp:populationcensus?population. FILTER (?population < 10000000) } DBpedia endpoint: http://dbpedia.org/sparql
40 Hur kan jag använda länkade data? Utnyttja the Web of Data i dina system Ex: basdata såsom information om platser Hur kommer jag åt data? Nedladdning av datamängder (eget triple store) HTTP Följ länkarna, leta i kataloger (ex https://datahub.io/) SPARQL endpoints http://sparqles.ai.wu.ac.at/availability Andra API:er
43 Exempel på användning slutanvändare BBC Wildlife Finder http://www.bbc.co.uk/nature/wildlife Europeana http://www.europeana.eu/portal/ Finland Kulturarv, litteratur, historiska dokument http://www.ldf.fi/ Kungliga biblioteket http://www.kb.se/libris/swepub/datamodell/ Everything is connected http://everythingisconnected.be/
Använda webbdata i R
R och länkade data Analysera webbdata med R SPARQL-paket https://cran.r-project.org/web/packages/ SPARQL/index.html Ställ SPARQL-frågor mot publika endpoints för att hämta in data till R
46 R-SPARQL tutorial http://linkedscience.org/tools/sparql-package-for-r/ sparql-package-for-r-gephi-movie-star-graphvisualization-tutorial/ Data från DBpedia om filmskådespelare DEMO
47 Summering Moderna storskaliga (webb-) applikationer ställer andra krav än vad traditionella RDBMS är byggda för Horisontell skalbarhet Flexibla scheman Länka till externa data... NoSQL är ett samlingskoncept för populära alternativ såsom grafdatabaser En av de mest populära grafdatamodellerna är RDF, som specifikt utvecklad för webbdata Med länkade data + ontologier kan vi bygga system som utnyttjar webben nästan som om det vore en stor databas Med SPARQL-paketet för R kan man analysera sådana data i R
Robin Keskisärkkä robin.keskisarkka@liu.se www.liu.se
Länkar http://nosql-database.org/ http://aws.amazon.com/dynamodb/ https://cloud.google.com/bigtable/ http://cassandra.apache.org/ http://neo4j.com/ http://www.w3.org/standards/semanticweb/ https://sv.wikipedia.org/wiki/semantiska_webben http://semanticweb.org/wiki/ontology http://linkeddata.org/ https://jena.apache.org/ http://rdf4j.org/ https://github.com/openlink/virtuoso-opensource https://wiki.blazegraph.com/wiki/index.php/main_page http://stardog.com/ https://cran.r-project.org/web/packages/sparql/index.html http://linkedscience.org/tools/sparql-package-for-r/sparql-package-for-r-gephi-movie-star-graph-visualization-tutorial/