Author
felix-ostrowski
View
1.596
Download
0
Embed Size (px)
2. Ablauf Einleitung: Daten Graphen Tripel Gruppenarbeit URIs und Namensrume Gruppenarbeit Pause Open Data Prinzipien Gruppenarbeit Bezeichnung & Beschreibung Content-Negotiation Gruppenarbeit Pause Triple Stores & SPARQL Gruppenarbeit Pause RDF Schema Gruppenarbeit Resmee, Fragen & Diskussion 3. Linked Open Data Es geht um Daten genauer: um offene Daten noch genauer: um verknpfteoffene Daten! 4. Daten, wie wir sie kennen LDR------M2.01200024------h FMTMH 001|a HT016905880 002a |a 20110726 003|a 20110729 026|a HBZHT016905880 030a|1uc||||||17 036a |a NL 037b |a eng 050a||||||||||||| 051m|||f||| 070|a 294/61 070b |a 361 080|a 60 100|a Allemang, Dean |9 136636187 104a |a Hendler, James A. |9 115664564 331|a Semantic web for the working ontologist 335|a effective modeling in RDFS and OWL 359|a Dean Allemang ; Jim Hendler 403|a 2. ed. 410|a Amsterdam [u.a.] 412|a Elsevier MK 425a |a 2011 433|a XIII, 354 S. : graph. Darst. 540a |a 978-0-12-385965-5(Wenn man ehrlich ist, sind wir die einzigen die solcheDaten kennen, und es gibt nicht all zu viele Dinge, dieman so beschreibt. Auerdem braucht man Fachwissen, um Links berhaupt identifizieren zu knnen.) 5. Daten, wie andere sie kennen+-----------+-----------+----------+----------+| id| firstname | lastname | birthday |+-----------+-----------+----------+----------+ | 136636187 | Dean| Allemang | NULL | Semantic web +-----------+-----------+----------+----------+ Dean+-------------+-----------------------------------------+-----------+ Allemang| id| title | author| +-------------+-----------------------------------------+-----------+ | HT016905880 | Semantic web for the working ontologist | 136636187 |+-------------+-----------------------------------------+-----------+ (Um auch hier ehrlich zu sein: andere heit nichtjeder, aber immerhin kann man damit schon einige Dinge mehr Beschreiben. Eigentlich sogar fast alles.Das Link-Problem allerdings bleibt.) 6. Daten, wie das Netz sie magist geboren am Heinrich Bll21.12.1917 ist geboren in ist geschrieben von 995 420hat EinwohnerKlnliegt in Ansichten eines34 000km Clowns hat Flche NRW(Sieht ja auch aus wie ein Netz oder, wenn man so will, ein gerichteter benannter Graph.) 7. Ein Computer kann mit solchenDiagrammen natrlich nichtsanfangen. Das Graphenmodell istein abstraktes, aber wir knnen es fr den Computer konkretisieren. 8. Graphen, (fast) wieComputer sie mgen . Heinrich . Bll . 21.12.1917 . . . 995420 . 34000km .(Diese Schreibweise nennt sich Turtle und ist einevon mehreren Schreibweisen des Datenmodells RDF. RDF steht fr Resource Description Framework und ist der de-facto Standard zur Publikation von Linked-Data. Vorteil von Turtle: man kann es auch als Mensch einigermaen gut lesen.) 9. Grundbaustein: das TripelAnsichten eines ist geschrieben vonHeinrich BllClowns .(Ein Tripel ist der kleinstmgliche Graph. Man spricht bei seinen Bestandteilen auch von Subjekt, Prdikat undObjekt.) 10. Sie sind dran! 11. Legen Sie im Etherpad ein Dokumentfr Ihre Gruppe an, und beschreibensie darin die Mitglieder. Die Prdikateknnen Sie sich zunchst einfachausdenken.(Sollte Ihnen wohler dabei sein, knnen Sie auch Kunstfiguren erfinden.) 12. Wofr steht , und ; was bedeutet , und ?(Und wie kann es sein, dass Peter Mller in zwei verschiedenen Stdten geboren ist?) 13. Wir brauchen eindeutigeReferenzierung!Normdaten sind ein guter Anfang,aber die verstehen wieder nur wir. Im Netz verwendet man URIs!(URI steht fr Uniform Resource Identifier) 14. URI=scheme ":" hier-part [ "?" query ] [ "#" fragment ](???) 15. http://de.wikipedia.org/wiki/Uniform_Resource_Identifierftp://ftp.is.co.za/rfc/rfc3986.txt file:///home/fo/doc/swib11/slides.odp urn:isbn:978-1608454303 (Fr HTTP-URIs gilt: es muss nicht immer einenDomnennamen geben. IP-Adressen funktionieren auch: http://192.168.0.124) 16. Graphen, wie Computer sie wirklich mgen . Heinrich . Bll . 21.12.1917 . (Ein angenehmer Nebeneffekt bei der Verwendung vonHTTP-URIs, auf dem Linked Data basiert, ist ihreDereferenzierbarkeit. Folgt man einem solchen Link, so bekommt man eine Beschreibung der Resource bzw.des Vokabulars aus dem das Prdikat stammt. Dazuspter mehr.) 17. Graphen, fr Computerund Menschen [email protected] dc: [email protected] foaf: [email protected] gnd: . dc:creator gnd:118512676 .gnd:118512676 foaf:givenName Heinrich .gnd:118512676 foaf:familyName Bll .gnd:118512676 foaf:birthday 21.12.1917 .(Bei den durch Prfixe abgekrzten URIs spricht manauch von den Namensrumen, in denen Resourcen und Prdikate existieren.) 18. Aber da fehlt doch was, was ist mit den restlichenDaten? . . 995420 . 34000km . (Nicht alles hat bereits einen URI, weder Entitten noch Prdikate. Auf der Suche nach URIs fr Entitten ist dieDBpedia eine gute erste Anlaufstelle. Nicht so gut sieht esbislang bei Vokabularen aus, Schemapedia ist aber einen Versuch wert.) 19. Noch ein paar Tricks 20. @prefix : [email protected] foaf: [email protected] dc: .:ostrowski foaf:givenName Felix .:ostrowski foaf:familyName Ostrowski .:ostrowski foaf:birthday 28.05.1981 . dc:creator :ostrowski .(Wenn etwas noch keinen URI hat, verwenden wir Identifikatoren, die relativ zur URL des beschreibenden Dokumentes sind. Da nicht zwei Dokumente an derselben Stelle liegen knnen, mssen diese Identifikatoren nur innerhalb des Dokumentes eindeutig sein. isteine Kurzschreibweise fr das aktuelle Dokument.) 21. @prefix : . @prefix foaf: . @prefix dbpedia: . :ostrowski foaf:givenName Felix ;foaf:familyName Ostrowski ;foaf:birthday 28.05.1981 ;foaf:based_near dbpedia:Berlin ,dbpedia:Berlin-Kreuzberg .(Folgen mehrere Aussagen ber die selbe Resource, muss diese nicht wiederholt werden. Die Prdikate werden durch ein Semikolon getrennt. Folgen mehrere Werte frdas selbe Prdikat einer Resource, werden die Objekte durch Kommas getrennt aufgefhrt.) 22. @prefix dbpedia: [email protected] skos: .dbpedia:Kln skos:prefLabel [email protected] ,[email protected] ,[email protected] .(Literale knnen mit Sprachangaben versehen werden.Ob Sie gltiges Turtle produzieren, knnen Sie z.B. hierberprfen.) 23. Sie sind dran! 24. Einigen Sie sich in Ihrer Gruppe auf Identifikatoren und beschreiben Sie die Mitglieder anhand des FOAFVokabulars. Geben Sie dabei auchan, dass sie sich gegenseitig kennen!Nutzen Sie darber hinaus DC Terms, um sich als Autoren mit demDokument zu verknpfen (und wennSie mchten auch fr weitereMetadaten des Dokumentes). 25. Pause 26. Exkurs: Open Data 27. Sie sind dran! 28. Einigen Sie sich in ihrer Gruppe aufeine Creative Commons Lizenz fr ihrDokument und verknpfen Sie ihrDokument mit dieser!(Es bietet sich das Prdikat hierfr an, aber eine Suche im Netz offenbart weitere Alternativen.) 29. Linked Data in Action 30. Bezeichnung und Beschreibung sind zu unterscheiden! Im Linked-Data-Paradigma gibt es zwei gngigeMglichkeiten, diese zu verknpfen. 31. Hash URIs http://www.example.org/people#aliceServer ignoriert den Fragment Identifier und liefert die Beschreibung aushttp://www.example.org/people 32. HTTP 303 Redirectshttp://www.example.org/people/alice http://www.example.org/data/aliceServer verweistan die URL derBeschreibungLocation: http://www.example.org/data/alicehttp://www.example.org/data/alice 33. Die Beschreibung einer Ressourcekann in unterschiedlichen Formatenverfgbar gemacht werden. Welches Format ausgeliefert wird, kann perContent-Negotiation ausgehandeltwerden. 34. Verhandlungssachehttp://www.example.org/data/aliceAccept: application/rdf+xmlAccept: text/htmlhttp://www.example.org/data/aliceContent-Location: alice.rdfContent-Location: alice.htmlhttp://www.example.org/data/alice.rdf http://www.example.org/data/alice.html 35. Der einfachste Weg zur Publikationvon Linked Data ist von statischenRDF-Dateien in denen Hash-URIs verwendet werden auf einem Webserver mit aktiviertenMultiviews fr die Content- Negotiation. 36. # /var/www/.htaccess# /var/www/personen.ttl AddType text/turtle .ttlAddType application/rdf+xml [email protected] foaf: .Options [email protected] : . Mit diesem einfachen Setup lauten:ostrowski die URIs der Personen:foaf:givenName "Felix" ; http://localhost/personen#ostrowskifoaf:familyName "Ostrowski" . http://localhost/personen#christoph Die URL der Beschreibung ist::christoph http://localhost/personenfoaf:givenName "Pascal" ; Content-Negotiation fr Turtle undfoaf:familyName "Christoph" . RDF/XML ist aktiviert.# /var/www/personen.rdfChristophPascalOstrowskiFelix 37. Demo 38. Sie sind dran! 39. Verknpfen Sie sich in IhrerBeschreibung mit Personen aus anderen Gruppen, die Sie kennen.Dies muss nicht reziprok geschehen. Verlinken Sie auerdem auf ihren(ungefhren) Wohnort. Verwenden Sie dazu die DBpedia. 40. Pause 41. Einzelne maschinenlesbare Beschreibungen sind ntzlich, aber da geht noch mehr! RDF ist einverteiltes Datenmodell, so dassmehrere Beschreibungen einfachzusammengefhrt werden knnen.Auerdem existieren spezielle Datenbanken, die Abfragen berRDF-Daten ermglichen. 42. Triple Storeshttp://www.example.org/data/alice http://de.dbpedia.org/page/Berlinhttp://www.example.org/data/carolhttp://de.dbpedia.org/page/Kln 43. SPARQL ermglicht Abfragen ber die Daten eines Triple Stores. Grundlage sind einfache Graph-Schablonen. Diese sehen fast so aus wie einfache Tripel, mit dem Unterschied, dass sie Variablen enthalten. 44. @prefix ex: [email protected] foaf: .ex:alice foaf:name Alice .PREFIX ex: PREFIX foaf: SELECT * WHERE {ex:alice foaf:name ?name .}nameAlice 45. @prefix ex: [email protected] foaf: .ex:alice foaf:name Alice ; foaf:knows ex:bob .ex:bob foaf:name Bob ; foaf:knows ex:carol .ex:carol foaf:name Carol ; foaf:knows ex:alice .PREFIX foaf: SELECT ?name1 ?name2 WHERE {?person1 foaf:knows ?person2 .?person1 foaf:name ?name1 .?person2 foaf:name ?name2 .}name1 name2Alice BobBob CarolCarol Alice 46. @prefixex: [email protected]: [email protected] dbpedia: .ex:alice foaf:name Alice ; foaf:knows ex:bob ; foaf:based_near dbpedia:Berlin .ex:bob foaf:name Bob ; foaf:knows ex:carol ; foaf:based_near dbpedia:Dresden .PREFIX foaf: PREFIX rdfs: SELECT ?name ?ortname WHERE {?person1 foaf:knows ?person2 .?person2 foaf:name ?name .?person2 foaf:based_near ?ort .?ort rdfs:label ?ortname .}nameortnameBob [email protected] 47. Sie sind dran! 48. Nutzen Sie SPARQL, um ihrenBekanntenkreis zu analysieren. Ermitteln Sie zum Beispiel, wen Sieber ein oder zwei Ecken kennen undwer ebenfalls aus ihrer Stadt kommt. 49. Pause 50. Jetzt kommt die Semantic ins WebDie Klassen und Eigenschaften, dieverwendet werden, knnen inBeschreibungssprachen fr Vokabulare definiert werden. Weitverbreitet ist das relativ einfache RDFSchema (RDFS), komplexereSachverhalte knnen in der Web Ontology Language (OWL)ausgedrckt werden. 51. Auf Schema-Ebene werden Klassendefiniert und es wird festgelegt, welche Beziehungen zwischenInstanzen dieser Klassen herrschen knnen. Mit dieser Information auf Vokabular-Ebene knnen impliziteAussagen auf Daten-Ebene inferiert werden. 52. erstellt von Artefakt Person Spezialisierung Spezialisierung (Unterklasse) (Untereigenschaft)BuchAuthor geschrieben von(Wenn etwas ein Buch ist, dann ist es notwendiger Weise auch ein Artefakt; wenn etwas von jemandemgeschrieben wurde, so wurde es auch von diesem erstellt. Wenn etwas von jemandem erstellt wurde, so ist dieses etwas ein Artefakt, und dieser jemand eine Person.) 53. RDF Schemata werden selbst in RDF ausgedrckt, und im Linked-Data-Paradigma erhalten die Klassen undEigenschaften ebenfalls HTTP-URIs. So knnen auch sie mit einfachenMitteln nachgeschlagen werden,wenn mehr Information zu ihnen bentigt wird. 54. rdfs:Classrdf:Propertyrdfs:Class rdf:type rdf:typerdf:typerdfs:domainrdfs:rangefoaf:Personfoaf:knows foaf:Person rdf:type rdf:type foaf:knowsex:bob ex:alice(Das Prdikat rdf:type besagt, dass eine Resource eine Instanz einer Klasse ist. So sind ex:bob und ex:alicePersonen, whrend Personen wiederum Klassen sind.) 55. # Explizite Tripelex:bob foaf:knows ex:alice .# RDF Schemafoaf:knows rdf:type rdfs:Property ;rdfs:rangefoaf:Person ;rdfs:domain foaf:Person .foaf:Person rdf:typerdfs:Class .# Implizite Tripel, die aus dem Schema folgenex:bob rdf:type foaf:Person .ex:alice rdf:type foaf:Person . 56. RDF Schemata sind gut dafr geeignet, Daten aus verschiedenenQuellen zu integrieren, wenn sie unterschiedliche Vokabulareverwenden. Dazu werden die Klassen und Eigenschaften aus denverschiedenen Datenquellenzueinander in Beziehung gesetzt. 57. # Explizite Tripelex:bob ex:colleague ex:alice .# RDF Schema als Brcke zwischen Vokabularenex:colleague rdfs:subPropertyOf foaf:knows ; rdfs:domainex:Employee ; rdfs:range ex:Employee .ex:Employee rdf:typerdfs:Class ; rdfs:subClassOffoaf:Person .# Implizite Tripel, die aus dem Schema folgenex:bob foaf:knows ex:alice .ex:bob rdf:type foaf:Person .ex:alice rdf:type foaf:Person .ex:bob rdf:type foaf:Employee .ex:alice rdf:type foaf:Employee . 58. Sie sind dran! 59. Erstellen Sie ein RDF Schema, so dass aus diesen [email protected] team: [email protected] ex: .ex:team1 team:player ex:bob .ex:team2 team:player ex:alice .ex:game1 team:home ex:team1 .ex:game1 team:away ex:team2 .die folgenden Tripel geschlossen werden [email protected] team: [email protected] ex: [email protected] foaf: .ex:team1 rdf:type foaf:Group .ex:team2 rdf:type foaf:Group .ex:team1 foaf:member ex:bob .ex:team2 foaf:member ex:alice .ex:bob rdf:type foaf:Person .ex:alice rdf:type foaf:Person .ex:game1 rdf:type team:Game .ex:game2 rdf:type team:Game . 60. @prefix rdf: [email protected] rdfs: [email protected] team: .team:player rdf:type rdfs:Property ;rdfs:subPropertyOf foaf:member ;rdfs:domain foaf:Person ;rdfs:range foaf:Group .team:home rdf:type rdfs:Property ;rdfs:domain team:Game .team:away rdf:type rdfs:Property ;rdfs:domain team:Game .team:Game rdf:type rdfs:Class . 61. Nicht immer werden dieAusdruckstrke und dieInferenzmglichkeiten von RDFS oder OWL bentigt. Fr klassischekontrollierte Vokabulare stellt das Simple Knowledge OrganizationSystem (SKOS) eine einfache,ebenfalls RDF basierte Alternativedar. Die Dewey Decimal Classificationund dieLibrary of Congress Subject Headings haben so schon ihren Weg in die Linked-Data-Welt gefunden. 62. ddc:skos:hasTopConcept100 skos:notation skos:prefLabel ddc:1 Philosophie und [email protected] skos:prefLabelskos:broaderskos:narrower Philosophy & [email protected]:notation ddc:16 160 skos:prefLabelskos:[email protected]:broaderskos:[email protected] ddc:161 63. Linked Data Principles1)Use URIs as names for things.2)Use HTTP URIs so that people canlook up those names.3)When someone looks up a URI,provide useful information, using thestandards (RDF*, SPARQL).4)Include links to other URIs. So thatthey can discover more things. 64. Fragen? Anmerkungen? Diskussion!