Linked Data
Elképzelés és megvalósítás ●
●
Jeszenszky Péter Debreceni Egyetem, Informatikai Kar
[email protected]
●
Tim Berners-Lee: Linked Data (2006. július 27.) http://www.w3.org/DesignIssues/LinkedData.html Chris Bizer, Richard Cyganiak, Tom Heath: How to Publish Linked Data on the Web (2007. július 27.) http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/ Linked Data – Connect Distributed Data across the Web http://linkeddata.org/
3
Linked Data ●
●
Felhasznált alapfogalmak (1)
A kifejezés strukturált adatok webes közzétételének és összekapcsolásának megvalósítási módját jelenti A hiperszöveg-web mintájára „adat-web” („web of data”) megvalósítása a cél ●
●
A hiperszöveg-weben a weboldalak közötti kapcsolatok megvalósítása horgonyok (anchors) segítségével Az adat-weben tetszőleges dolgok között kapcsolatok írhatók le az RDF segítségével 2
●
URI
●
Erőforrásrész-azonosító (fragment identifier)
●
Erőforrás (resource)
●
Információs erőforrás (information resource)
●
Hivatkozás-feloldás (dereferencing)
●
Reprezentáció (representation)
●
Internet médiatípus (Internet media type)
●
Tartalomegyeztetés (content negotiation) 4
Felhasznált alapfogalmak (2) ●
Linked Data böngészők
Az alapfogalmakat lásd az alábbi szabványokban: ●
●
●
●
Marbles http://marbles.sourceforge.net/ ●
Architecture of the World Wide Web, Volume One (W3C ajánlás, 2004. december 15.) http://www.w3.org/TR/webarch/
●
OpenLink Data Explorer http://ode.openlinksw.com/ ●
RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (2005. január) http://www.ietf.org/rfc/rfc3986.txt
●
RFC 2616: Hypertext Transfer Protocol – HTTP/1.1 (1999. június)http://www.ietf.org/rfc/rfc2616.txt
●
SWIC http://moustaki.org/swic/
●
SWI-Prolog megvalósítás, GNU GPL
Tabulator: Generic data browser http://www.w3.org/2005/ajar/tab ●
5
Megvalósítás Firefox kiterjesztésként, Mozilla Public License
OpenLink RDF Browser http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html (online)
●
●
Megvalósítás Java szervletként (online kipróbálható), GNU GPL
Megvalósítás Firefox kiterjesztésként és webalkalmazásként (AJAX), W3C Software Notice and License
Zitgist RDF Browser http://dataviewer.zitgist.com/ (online)
„Adat-web” ● ●
●
●
Linked Data vs. Web APIs (1)
Megvalósítás RDF linkekkel
●
RDF linknek nevezünk egy olyan RDF hármast, amelyet három URI-hivatkozás alkot ●
Azaz a hármas alanya és a tárgya is URI-hivatkozás
Egy RDF linkben megjelenő URI-hivatkozás feloldása az általa azonosított erőforrás leírását kell hogy szolgáltassa Az „adat-web” elérése Linked Data böngészőkkel történik ●
Segítségükkel különböző adatforrások között lehet navigálni RDF linkek követésével
7
Web API-k segítségével is hatalmas mennyiségű strukturált adat érhető el jelenleg a weben ●
Amazon Web Services http://aws.amazon.com/
●
eBay Developers Program http://developer.ebay.com/
●
Facebook API http://developers.facebook.com/
●
Google APIs http://code.google.com/
●
OpenSocial http://www.opensocial.org/ –
●
6
Például: MySpace, Netlog , orkut, …
Yahoo! Application Platform (YAP) http://developer.yahoo.com/yap/ 8
Linked Data vs. Web APIs (2) ●
A web API-k segítségével általában XML vagy JSON formátumban juthatunk strukturált adatokhoz ●
●
URI-k használata ●
●
Minden web API saját interfészt és válasz formátumokat definiál
●
Kapcsolt adatok elérése egységes módon történik, ráadásul az alábbi előnyöket élvezhetjük: ●
●
Különböző adatforrások természetes módon kapcsolhatók össze Kapcsolt adatok egyszerűen feldolgozhatók keresőmotor robotok által
Milyen URI-t használjunk? („URI-tervezés”)
Egy URI által azonosított erőforrás lehet információs és nem-információs erőforrás ●
●
●
●
●
Nem információs erőforrások például: fogalmak, a fizikai világ objektumai, helyek, személyek, …
Hogyan azonosíthat egy URI nem-információs erőforrást?
9
11
Nem-információs erőforrások azonosítása
Alapelvek ●
Hypertext Style: Cool URIs don't change (Tim BernersLee, 1998.) http://www.w3.org/Provider/Style/URI
Használjunk URI-kat nevekként!
●
HTTP URI-kat használjunk, amelyeknél hivatkozás-feloldás lehetséges! URI hivatkozás-feloldás során a szabványok segítségével (RDF, SPARQL) szolgáltassunk hasznos információkat!
●
Megoldások: ●
Hash URI-k használata
●
303-as átirányítás használata (HTTP)
Lásd: ●
Minden URI-hoz adjunk meg a kapcsolatait más URI-kkal!
●
10
Cool URIs for the Semantic Web (W3C érdeklődési csoport följegyzés, 2008. december 3.) http://www.w3.org/TR/cooluris/ Best Practice Recipes for Publishing RDF Vocabularies (W3C munkacsoport-följegyzés, 2008. augusztus 28.) http://www.w3.org/TR/swbp-vocab-pub/ 12
Hash URI-k ●
Hash URI alatt egy erőforrásrész-azonosítót tartalmazó URI-t értünk ●
●
●
Például: http://example/contact.rdf#me
Hivatkozás-feloldás során az erőforrásrészazonosító elhagyása ●
●
303-as átirányítás: Példa (1) Tegyük fel, hogy egy kliens például a http://example/Hungary URI-val azonosítható neminformációs erőforrásra vonatkozó HTTP GET kérést intéz a webszerverhez! ●
Az erőforrásrész-azonosító elhagyásával kapott URI-n keresztül kell hogy elérhető legyen a nem-információs erőforrás leírása
●
Hash URI-k esetén is használható URI-átirányítás
A webszerver az alábbi HTTP kérést kapja a klienstől: GET /Hungary HTTP/1.1 Host: example Content-Type: application/rdf+xml
13
303-as átirányítás ●
●
15
303-as átirányítás: Példa (2)
A webszerver URI-átirányítást végezhet, amelyet a 303 See Other válasz státuszkóddal jelezhet a kliens felé ●
A kiens a kérés Accept fejléc mezőjében adhatja meg a válasz számára elfogadható médiatípusát (például: application/rdf+xml, text/html)
●
A webszerver átirányítja a klienst a neminformációs erőforrást leíró információs erőforrásra az alábbi választ visszaküldve: HTTP/1.1 303 See Other Location: http://example/Hungary.rdf
A webszerver a Location válasz fejlécmezőben adja meg azt az URI-t, amelyre az átirányítás történik Az átirányítás történjen egy olyan URI-ra, amelyen keresztül a nem-információs erőforrás leírása érhető el
14
●
Tartalomegyeztetés alapján történhet az átirányítás
16
Kapcsolt adatok közzététele (1) ●
●
Böngészhető gráfok (1)
Statikus RDF állományok formájában (RDF/XML, N-Triples, Turtle, N3)
●
RDF tárolók általában biztosítanak Linked Data interfészt az eléréshez ●
●
Ha nem áll rendelkezésre ilyen interfész, de van SPARQL végpont, akkor használjuk az alábbi megoldást: –
Egy RDF gráf böngészhető, ha bármely csúcsként benne megjelenő URI hivatkozás feloldása során megkapjuk a csúcs leírását, amely az alábbiakat jelenti:
●
Pubby: A Linked Data Frontend for SPARQL Endpoints http://www4.wiwiss.fu-berlin.de/pubby/ (része a DBpedia projektnek)
Azokat az RDF hármasokat, amelyekben a csúcs alanyként vagy tárgyként szerepel Azoknak az üres csomópontoknak a leírását, amelyek a csúcstól egyetlen élnyi távolságra vannak
17
19
Kapcsolt adatok közzététele (2) ●
Böngészhető gráfok (2)
Ha a tartalom nem RDF-ben áll rendelkezésre: ●
Relációs adatbázisok elérhetővé tétele kapcsolt adatokként: –
– – ●
●
D2R Server: Publishing Relational Databases on the Semantic Web (Java, GNU GPL) http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/ OpenLink Virtuoso Open Source Edition (GNU GPL) http://virtuoso.openlinksw.com/wiki/main/ Triplify (PHP, GNU GPL) http://triplify.org/
●
Wrapper implementálása létező alkalmazások vagy Web API-k köré –
Például: RDF Book Mashup (PHP) http://www4.wiwiss.fu-berlin.de/bizer/bookmashup/
A böngészhetőség a gyakorlatban azt jelenti, hogy ha például két dokumentum tartalmazza az adatokat, akkor mindkét dokumentumban meg kell adni azokat az RDF linkeket, amelyek az egyik dokumentumban leírt erőforrásokat kapcsolják össze a másikban leírt erőforrásokkal
●
18
Azért, hogy a gráf az élek mentén mindkét irányban navigálható legyen Ez redundanciát jelent, ráadásul biztosítani kell a konzisztenciát 20
RDF Best Practices ●
Lehetőleg kerülni üres csomópontok használatát, mivel ezekre nem lehet kívülről hivatkozni ●
●
●
Linking Open Data (2) ●
Több különböző adatforrás közötti kapcsolatok kialakításánál jelenthet problémát
Lehetőleg kerülni a tárgyiasítás használatát, mivel ennek szemantikája nem teljesen világos
Néhány a projekt részét alkotó önkényesen kiemelt és bemutatásra kerülő adatkészlet: ●
GeoNames http://www.geonames.org/ontology/
●
Data.gov http://data-gov.tw.rpi.edu/
●
DBpedia http://dbpedia.org/
Lehetőleg kerülni RDF konténerek és kollekciók használatát, mivel jelenleg ezek kezeléséhez nem ad támogatást a SPARQL 21
23
Linking Open Data (1) ●
A projekt célja szabad hozzáférésű adatkészletek webes közzététele RDF-ben, valamint ezek összekapcsolása ●
●
●
GeoNames ●
●
A http://www.geonames.org/ címen elérhető földrajzi adatbázis Jelenleg több mint 8 millió földrajzi nevet tartalmaz 6.5 millió különböző földrajzi alakulathoz
A rendelkezésre álló adatkészletek egy helyen ● Földrajzi alakulatokhoz földrajzi koordináták és egyéb összegyűjtve http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/DataSets adatok tárolása (például postai irányítószámok)
● Földrajzi alakulatok 9 kategóriába, azon belül 645 további Statistics on Data sets that are available as Linked Data alkategóriába sorolása http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/DataSets/Statistics ● Számos különböző forrásból származnak az adatok Statistics on links between Data sets ● A felhasználók egy wiki interfészen keresztül http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/DataSets/LinkStatistics szerkeszthetik is az adatbázis tartalmát 22 24
GeoNames: Szemantikus web integráció (2)
GeoNames: Hozzáférés ●
Szabad hozzáférés és felhasználás: ● ●
Többféle keresési és böngészési lehetőség A teljes adatbázis letölthető lokális használatra http://download.geonames.org/export/dump/ – –
●
●
●
Sima szövegállományok formájában, többféle bontásban (például országonként) Creative Commons Attribution 3.0 License http://creativecommons.org/licenses/by/3.0/
●
●
Webszolgáltatások (REST) – –
Napi 11 millió kérés kiszolgálása Van fizetős változata is (rövidebb válaszidő, garantált rendelkezésre állás, utcaszintű fordított geokódolás)
Például a Magyarországot azonosító URI: http://sws.geonames.org/719819/
Magyarország leírása (RDF): http://sws.geonames.org/719819/about.rdf Kapcsolt adatok: ●
●
25
GeoNames: Szemantikus web integráció (1) ●
●
●
Az URI-val egy olyan webszolgáltatás is elérhető, amely RDFben szolgáltat kapcsolódó információkat
●
Webontológiák: ●
●
Magyarországgal szomszédos országok (RDF): http://sws.geonames.org/719819/neighbours.rdf Magyarország közigazgatási egységei (RDF): http://sws.geonames.org/719819/contains.rdf
27
Data.gov
Minden földrajzi helynévhez egy azonosító URI hozzárendelése ●
303-as átirányítás történik az http://sws.geonames.org/719819/about.rdf URI-ra
A http://www.data.gov/ címen elérhető portál 2009. májusában indult az Amerikai Egyesült Államokban Szövetségi kormányzati adatok közzététele gépi feldolgozásra alkalmas formában ●
http://www.geonames.org/ontology/ontology_v2.0_Full.rdf (OWL Full)
●
http://www.geonames.org/ontology/ontology_v2.0_Lite.rdf (OWL Lite)
26
Cél az átláthatóság és nyitottság megteremtése a kormányzásban ●
●
Az adatkészleteket például XML vagy CSV formátumban lehet letölteni
Ilyen módon a demokrácia erősítése, a kormányzat hatékonyságának növelése
Open Government Initiative http://www.whitehouse.gov/OPEN/
28
Data.gov: Adatkészletek RDF-ben ●
DBpedia: Tartalom
http://data-gov.tw.rpi.edu/ (Rensselaer Polytechnic Institute) ●
●
●
●
A jelenleg aktuális verzió a 3.5.1 számú, amely 2010. áprilisában került kiadásra, és a Wikipédia márciusi állapotát tükrözi
4.7 Billions of Triples from data.gov Datasets (2009. ● Kb. 312 000 személy, 413 000 hely, 94 000 zenei október 4.) http://data-gov.tw.rpi.edu/wiki/4.7_Billions_of_Triples_from_data.gov_Datasets album, 49 000 film, 140 000 szervezet és 146 000 faj leírását tartalmazza Generating RDF from data.gov ● 1 milliárdnál több RDF hármast tartalmaz http://data-gov.tw.rpi.edu/wiki/Generating_RDF_from_data.gov Demók: http://data-gov.tw.rpi.edu/wiki/Demos
●
●
29
DBpedia ●
●
●
Kb. 1 460 000 képre és 5 543 000 külső weboldalra mutató linket tartalmaz Kb. 4 887 000 külső RDF adatkészletre mutató linket tartalmaz
31
DBpedia: Ontológia
A projekt célja strukturált információk kinyerése a Wikipédiából, és ezek elérhetővé tétele a weben
●
Manuálisan létrehozott sekély, cross-domain webontológia (OWL) ●
Lehetővé teszi lekérdezések végrehajtását a Wikipédiára, valamint más a weben elérhető adatkészletek összekapcsolását a Wikipédiából kinyert információkkal
●
●
259 osztály és 1200 tulajdonság alkotja Elérhetőség: http://downloads.dbpedia.org/3.5.1/dbpedia_3.5.1.owl.bz2 Lekérdezhető a SPARQL végponton keresztül is
A projekt résztvevői: Universität Leipzig, Freie Universität Berlin, OpenLink Software
30
32
DBpedia: URI-k ●
Minden az ontológiában definiált osztályt és tulajdonságot azonosító URI http://dbpedia.org/ontology/ kezdetű ●
●
DBpedia: Online elérés ●
Például: http://dbpedia.org/ontology/SoccerPlayer, http://dbpedia.org/ontology/birthDate
●
●
DBpedia URI Lookup http://lookup.dbpedia.org/
●
Bármely DBpedia URI esetén hivatkozás feloldás!
SPARQL: ●
Minden osztálypéldányt azonosító URI http://dbpedia.org/resource/ kezdetű ●
Böngészés:
●
Például: http://dbpedia.org/resource/Isaac_Asimov, http://dbpedia.org/resource/University_of_Debrecen
●
33
Nyilvános SPARQL végpont (OpenLink Virtuoso): http://dbpedia.org/sparql SNORQL SPARQL Explorer http://dbpedia.org/snorql/
Alkalmazások: ●
DBpedia Faceted Browser http://dbpedia.neofonie.de/browse/
●
DBpedia Relation Finder http://relfinder.dbpedia.org/
●
DBpedia Navigator http://navigator.dbpedia.org/
DBpedia: Wikipédia tartalom feldolgozása
DBpedia: Letöltés ●
Letöltés lokális használatra: ●
●
●
●
Letöltés több részben lehetséges, nyelvenkénti bontásban, azon belül további darabokra osztva –
35
Wikipedia Data Extraction (PHP 5) http://sourceforge.net/projects/dbpedia/ ●
Rendelkezésre állás 92 különböző nyelven
Letöltés N-Triples és N-Quads formátumban: http://wiki.dbpedia.org/Downloads
A projekt Subversion tárolójából kell letölteni a forrásokat! –
GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html
34
svn co https://dbpedia.svn.sourceforge.net/svnroot/d bpedia/extraction dbpedia
36
DBpedia: Néhány felhasználási lehetőség ●
●
●
●
DBpedia: Minta SPARQL lekérdezések (2)
Wikipédia keresés forradalmasítása (jelenleg csak kulcsszavas keresés lehetséges a Wikipédián)
Kik születtek Elvis Presley-vel egy napon?
●
PREFIX dbpedia-owl:
PREFIX dbpedia-res:
SELECT ?x WHERE { dbpedia-res:Elvis_Presley dbpedia-owl:birthDate ?p . ?x a dbpedia-owl:Person . ?x dbpedia-owl:birthDate ?q . FILTER (sameTerm(?p, ?q) && ! sameTerm(?x, dbpedia-res:Elvis_Presley)) }
Wikipédia szerkesztők munkájának segítése (konzisztencia ellenőrzés, szerkesztési javaslatok) Wikipédia adatok megjelenítése saját weboldalakon (kliens és szerver oldali megoldások) Földrajzi helyekre vonatkozó információk hasznosítása ●
Például: DBpedia Mobile (GPS információk alapján közeli helyek megjelenítése térképen)
37
39
DBpedia: Minta SPARQL lekérdezések (1) ●
DBpedia: Minta SPARQL lekérdezések (3)
Kik azok a személyek, akik aznap születtek, amikor Albert Einstein elhunyt?
●
PREFIX dbpedia-owl:
PREFIX dbpedia-res:
SELECT ?x WHERE { dbpedia-res:Albert_Einstein dbpedia-owl:deathDate ?p . ?x a dbpedia-owl:Person . ?x dbpedia-owl:birthDate ?q . FILTER sameTerm(?p, ?q) }
38
Mely filmekben szerepelt Bruce Willis a nejével együtt? PREFIX dbpedia-owl:
PREFIX dbpedia-res:
SELECT ?x WHERE { ?x a dbpedia-owl:Film ; dbpedia-owl:starring dbpedia-res:Bruce_Willis . dbpedia-res:Bruce_Willis dbpedia-owl:spouse ?z . ?x dbpedia-owl:starring ?z . }
40
DBpedia: Minta SPARQL lekérdezések (4) ●
DBpedia: Minta SPARQL lekérdezések (5)
Mely Steven Spielberg által rendezett filmekben szerepelt Harrison Ford?
●
PREFIX dbpedia-owl:
PREFIX dbpedia-res:
SELECT ?x WHERE { ?x a dbpedia-owl:Film ; dbpedia-owl:director dbpedia-res:Steven_Spielberg ; dbpedia-owl:starring dbpedia-res:Harrison_Ford . }
41
Mely Steven Spielberg által rendezett filmekben nem szerepelt Harrison Ford? PREFIX dbpedia-owl:
PREFIX dbpedia-res:
SELECT ?x WHERE { ?x a dbpedia-owl:Film ; dbpedia-owl:director dbpedia-res:Steven_Spielberg . OPTIONAL { ?y a dbpedia-owl:Film ; dbpedia-owl:starring dbpedia-res:Harrison_Ford . FILTER (?x = ?y) } FILTER (! bound(?y)) } 42