Linked Data Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Elképzelés és megvalósítás 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 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) 2 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/ Megvalósítás Java szervletként (online kipróbálható), GNU GPL OpenLink Data Explorer http://ode.openlinksw.com/ Megvalósítás Firefox kiterjesztésként, Mozilla Public License 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 OpenLink RDF Browser http://demo.openlinksw.com/dav/js/rdfbrowser/index.html (online) SWIC http://moustaki.org/swic/ SWI-Prolog megvalósítás, GNU GPL Tabulator: Generic data browser http://www.w3.org/2005/ajar/tab Megvalósítás Firefox kiterjesztésként és webalkalmazásként (AJAX), W3C Software Notice and License 5 Zitgist RDF Browser http://dataviewer.zitgist.com/ (online) 7 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 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/ Azaz a hármas alanya és a tárgya is URI-hivatkozás ebay Developers Program http://developer.ebay.com/ Egy RDF linkben megjelenő URI-hivatkozás feloldása az általa azonosított erőforrás leírását kell hogy szolgáltassa Facebook API http://developers.facebook.com/ Google APIs http://code.google.com/ OpenSocial http://www.opensocial.org/ 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 6 Például: MySpace, Netlog, orkut, Yahoo! Application Platform (YAP) http://developer.yahoo.com/yap/ 8
Linked Data vs. Web APIs (2) URI-k használata A web API-k segítségével általában XML vagy JSON formátumban juthatunk strukturált adatokhoz Milyen URI-t használjunk? ( URI-tervezés ) Hypertext Style: Cool URIs don't change (Tim Berners- Lee, 1998.) http://www.w3.org/provider/style/uri 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: 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, Különböző adatforrások természetes módon kapcsolhatók össze Kapcsolt adatok egyszerűen feldolgozhatók keresőmotor robotok által 9 Hogyan azonosíthat egy URI nem-információs erőforrást? 11 Alapelvek Nem-információs erőforrások azonosítása Használjunk URI-kat nevekként! Megoldások: HTTP URI-kat használjunk, amelyeknél hivatkozás-feloldás lehetséges! Hash URI-k használata 303-as átirányítás használata (HTTP) URI hivatkozás-feloldás során a szabványok segítségével (RDF, SPARQL) szolgáltassunk hasznos információkat! Minden URI-hoz adjunk meg a kapcsolatait más URI-kkal! Lásd: 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/ 10 12
Hash URI-k 303-as átirányítás: Példa (1) 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 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 13 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! 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 az alábbi HTTP kérést kapja a klienstől: GET /Hungary HTTP/1.1 Host: example Content-Type: application/rdf+xml 15 303-as átirányítás 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 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 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 Tartalomegyeztetés alapján történhet az átirányítás 14 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: Pubby: A Linked Data Frontend for SPARQL Endpoints http://www4.wiwiss.fu-berlin.de/pubby/ (része a DBpedia projektnek) 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: 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/ 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 Azért, hogy a gráf az élek mentén mindkét irányban navigálható legyen Wrapper implementálása létező alkalmazások vagy Web API-k köré Ez redundanciát jelent, ráadásul biztosítani kell a konzisztenciát Például: RDF Book Mashup (PHP) http://www4.wiwiss.fu-berlin.de/bizer/bookmashup/ 18 20
RDF Best Practices Linking Open Data (2) Lehetőleg kerülni üres csomópontok használatát, mivel ezekre nem lehet kívülről hivatkozni Néhány a projekt részét alkotó önkényesen kiemelt és bemutatásra kerülő adatkészlet: 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 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) GeoNames A projekt célja szabad hozzáférésű adatkészletek webes közzététele RDF-ben, valamint ezek összekapcsolása A rendelkezésre álló adatkészletek egy helyen összegyűjtve http://esw.w3.org/topic/taskforces/communityprojects/linkingopendata/datasets Statistics on Data sets that are available as Linked Data Földrajzi alakulatok 9 kategóriába, azon belül 645 további 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 http://esw.w3.org/topic/taskforces/communityprojects/linkingopendata/datasets/linkstatistics A felhasználók egy wiki interfészen keresztül szerkeszthetik is az adatbázis tartalmát 22 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 Földrajzi alakulatokhoz földrajzi koordináták és egyéb adatok tárolása (például postai irányítószámok) 24
GeoNames: Hozzáférés GeoNames: Szemantikus web integráció (2) Szabad hozzáférés és felhasználás: Többféle keresési és böngészési lehetőség Például a Magyarországot azonosító URI: http://sws.geonames.org/719819/ A teljes adatbázis letölthető lokális használatra http://download.geonames.org/export/dump/ 303-as átirányítás történik az http://sws.geonames.org/719819/about.rdf URI-ra 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/ Magyarország leírása (RDF): http://sws.geonames.org/719819/about.rdf Kapcsolt adatok: Webszolgáltatások (REST) Napi 11 millió kérés kiszolgálása Magyarországgal szomszédos országok (RDF): http://sws.geonames.org/719819/neighbours.rdf Van fizetős változata is (rövidebb válaszidő, garantált rendelkezésre állás, utcaszintű fordított geokódolás) 25 Magyarország közigazgatási egységei (RDF): http://sws.geonames.org/719819/contains.rdf 27 GeoNames: Szemantikus web integráció (1) Data.gov Minden földrajzi helynévhez egy azonosító URI hozzárendelése A http://www.data.gov/ címen elérhető portál 2009. májusában indult az Amerikai Egyesült Államokban Az URI-val egy olyan webszolgáltatás is elérhető, amely RDFben szolgáltat kapcsolódó információkat Webontológiák: http://www.geonames.org/ontology/ontology_v2.0_full.rdf (OWL Full) http://www.geonames.org/ontology/ontology_v2.0_lite.rdf (OWL Lite) Szövetségi kormányzati adatok közzététele gépi feldolgozásra alkalmas formában Az adatkészleteket például XML vagy CSV formátumban lehet letölteni Cél az átláthatóság és nyitottság megteremtése a kormányzásban Ilyen módon a demokrácia erősítése, a kormányzat hatékonyságának növelése 26 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) 4.7 Billions of Triples from data.gov Datasets (2009. október 4.) http://data-gov.tw.rpi.edu/wiki/4.7_billions_of_triples_from_data.gov_datasets Generating RDF from data.gov http://data-gov.tw.rpi.edu/wiki/generating_rdf_from_data.gov Demók: http://data-gov.tw.rpi.edu/wiki/demos 29 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 Kb. 312 000 személy, 413 000 hely, 94 000 zenei album, 49 000 film, 140 000 szervezet és 146 000 faj leírását tartalmazza 1 milliárdnál több RDF hármast tartalmaz 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 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 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 Manuálisan létrehozott sekély, cross-domain webontológia (OWL) 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 DBpedia: Online elérés Minden az ontológiában definiált osztályt és tulajdonságot azonosító URI http://dbpedia.org/ontology/ kezdetű Böngészés: DBpedia URI Lookup http://lookup.dbpedia.org/ Bármely DBpedia URI esetén hivatkozás feloldás! Például: http://dbpedia.org/ontology/soccerplayer, http://dbpedia.org/ontology/birthdate Minden osztálypéldányt azonosító URI http://dbpedia.org/resource/ kezdetű SPARQL: Nyilvános SPARQL végpont (OpenLink Virtuoso): http://dbpedia.org/sparql SNORQL SPARQL Explorer http://dbpedia.org/snorql/ Például: http://dbpedia.org/resource/isaac_asimov, http://dbpedia.org/resource/university_of_debrecen Alkalmazások: DBpedia Faceted Browser http://dbpedia.neofonie.de/browse/ DBpedia Relation Finder http://relfinder.dbpedia.org/ 33 DBpedia Navigator http://navigator.dbpedia.org/ 35 DBpedia: Letöltés DBpedia: Wikipédia tartalom feldolgozása 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 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 GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html Wikipedia Data Extraction (PHP 5) http://sourceforge.net/projects/dbpedia/ A projekt Subversion tárolójából kell letölteni a forrásokat! svn co https://dbpedia.svn.sourceforge.net/svnroot/d bpedia/extraction dbpedia 34 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) 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 Kik születtek Elvis Presley-vel egy napon? PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX dbpedia-res: <http://dbpedia.org/resource/> 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)) 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: <http://dbpedia.org/ontology/> PREFIX dbpedia-res: <http://dbpedia.org/resource/> 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) Mely filmekben szerepelt Bruce Willis a nejével együtt? PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX dbpedia-res: <http://dbpedia.org/resource/> 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. 38 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: <http://dbpedia.org/ontology/> PREFIX dbpedia-res: <http://dbpedia.org/resource/> SELECT?x WHERE {?x a dbpedia-owl:film ; dbpedia-owl:director dbpedia-res:steven_spielberg ; dbpedia-owl:starring dbpedia-res:harrison_ford. Mely Steven Spielberg által rendezett filmekben nem szerepelt Harrison Ford? PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX dbpedia-res: <http://dbpedia.org/resource/> 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)) 41 42