 Ich werde anfangen mit einer kurzen Einführung, was überhaupt Wikidata ist. Was ist Wikidata? Also Wikidata ist eine File Knowledge-Based der Wikimedia-Bewegung. Wir haben das Projekt vor etwa drei Jahren gestartet und Wikidata beinhaltet Informationen zu allen Themen, die in Wikipedia abgedeckt sind, also Personen, Städte und so weiter, aber auch noch vielen weiteren Themen, die anderweitig von Bedeutung sind. Die Daten in Wikidata sind strukturiert und linked. Sie sind komplett Maschinen lesbar und wir haben auch APIs zum einfachen Schreiben von Wikidata. Die Daten sind inherent, alles ist multilingual, also alles kann übersetzt werden in knapp 300 Sprachen. Die komplette Plattform, inklusive dem Gravy-Service und alles, was heute vorgestellt wird, basiert komplett auf Open-Source-Software und die Daten selbst sind wieder verwendbar unter CCCO, also praktisch ohne irgendwelche weiteren Einschränkungen. Ich werde nochmal kurz darauf eingehen, wie ein Datensatz auf Wikidata aufgebaut ist. Hier sehen wir ein Wikidata-Item, ein Datenobjekt. In dem Fall ist das Datenobjekt zu Douglas Adams. Der wichtigste Part hier bei Anfangs ist die ID, in dem Fall Q42. Jedes Datenobjekt auf Wikidata hat eine eindeutige und stabile ID, das wird nachher nochmal wichtig werden. Zusätzlich zu der ID haben wir noch ein menschenlesbares Label, eine Bezeichnung für dieses Item. Außerdem haben wir noch eine kurze Beschreibung für dieses Item, die auch menschenlesbar ist. Zusätzlich zu diesen kurzen beschreibenden menschenlesbaren Datenpunkten haben wir noch die Statements, die Aussagen über dieses Item, die sind folgendermaßen aufgebaut. Die bestehen einerseits aus einer Property, auch die hat wiederum eine stabile ID. Und zu jeder von diesen Properties haben wir ein oder mehrere Values. Also es kann auch mehrere Werte geben, zum Beispiel Einwohnerzahlen zu verschiedenen Zeitpunkten oder Bürgermeister zu verschiedenen Zeitpunkten oder auch umstrittene Aussagen oder Aussagen, die nicht eindeutig sind. Also wir haben ein Property und ein oder mehrere Values dazu. Und jeder von diesen Values kann nochmal qualifiziert werden, zum Beispiel in dem Fall hier mit Start und Endzeitpunkt. Außerdem kann zu jedem Datenwert beliebig viele Quellen hinzugefügt werden. Das ist so der Aufbau von so einem Datenobjekt im Groben. Was nachher nochmal wichtig wird, ist auf jeden Fall, dass jedes von diesen Datenobjekten hat eine eindeutiger und fester ID und auch die Properties haben an sich nochmal auch eine eindeutigen, fester ID. So, und jetzt haben wir halt diese große Datenbank mit strukturierten Daten, Wikidata eben. Und es wäre ja ganz cool, wenn man die halt nicht nur lesen kann und für Wikipedia weiter benutzen kann, sondern als Drittbenutzer, die eben auch abfragen kann. Es gibt eine API für Wikidata, die ist auch praktisch und hilfreich. Aber im Regelfall, also wenn man schon diese strukturierten, verlinkten Daten hat, dann will man ja auch komplexe Abfragen machen können. Und wir haben uns überlegt, wir sind ja jetzt in Süddeutschland, es war ein katholischer Feiertag. Wie viele Pepse, also wie viele Pepse hatten eigentlich überhaupt Kinder? Wer ist der Papst mit den meisten Kindern? Haben wir Bilder zu diesen Pepsten? Ja, genau und damit haben wir uns dann die letzten Tage mit dem Query Service beschäftigt. Der Query Service, also die Grundlage hinter diesem, also der Query Service ist ein Sparkle Endpoint. Und Sparkle ist eine Sprache und RDF ist die Datenformatierung quasi. Es ist eine Sprache basierend auf Triebeln, also man hat immer Subjekt, Prädikat und Objekt. Das ist relativ nahe an natürlicher Sprache, finde ich. Und deshalb finde ich es auch relativ einfach dafür, Abfragen zu schreiben. Also man kann zum Beispiel sagen, Alan Turing, ich rede jetzt relativ viel dänglich, das tut mir ein bisschen leid, aber damit musst du jetzt klarkommen. Also Alan Turing ist ein Instance of Human, damit hat man halt, das steht quasi so als Datenaussage in Wikidata drin. Das kann man dann eben in diesen Triebeln abbilden. RDF benutzt URIs, also URIs sehen aus, sind formatiert wie URIs, sind halt Unique Identifier auch wieder, die eben in unserem Fall bei Wikidata sich zu Hilfe nehmen, eben diese Unique Identifier mit dem Q oder mit dem P vorne, um halt Aussagen abzubilden in eben dieser Sprache. Wikidata im Speziellen benutzt Turtle, was halt so ein Untersprache quasi von RDF ist, was es alles ein bisschen freundlicher für Menschen zu lesen macht. Im Sinne von, es gibt halt eben Präfixe. Dadurch kann man diese URIs abkürzen und dann halt eben hier darstellen. Alan Turing ist ein Mensch, eben mit Hilfe alleine dieser Unique Identifier. So, Sparkle ist eben die Sprache, um Turtle abzufragen. Also Wikidata stellt auch die ganzen Datensatz als Damm zur Verfügung. Man kann sich auch den ganzen Turtle Datensatz runterladen. Aber wir haben auch einen Endpunkt. Und Sparkle ist eben, um komplexe Abfragen auf einem Endpunkt zu schaffen. In dem Fall, zum Beispiel, gibt uns alle Items, also alle Datenobjekte in Wikidata, die eine Instanz von Mensch sind, also alle Menschen am Ende. Limitiert auf 200, sonst wären es halt zu viele. So, wir haben eine GUI auf create.wikidata.org, die es sehr einfach und sehr hübsch macht, um diese Queries zu schreiben mit Beispielen, mit Autocompletion, mit allen möglichen super coolen fancy Tools, damit man, wenn man keine Lust hat, zu weit in sich in Sparkle reinzuarbeiten, eben relativ schnell schon sehr viel machen kann. Eben das Result, was da zurückkommt, ist Jason. Und es gibt es aber auch in verschiedenen anderen maschinenlesbaren Formaten, also XML und so weiter, dass man halt abfragen kann und die Daten dann direkt weiterverarbeiten kann. So, ich fange jetzt erstmal an, so ein bisschen einfacherere Beispiele zu machen, bevor wir zu unserer eigentlichen Fragestellung zurückkommen. In dem Beispiel lassen wir uns einfach anzeigen, alle Daten für Elenturing, also cool 72 51, limitiert auf 100. Dafür, also wir haben halt wie gesagt, diese Subjekt-Predikat-Objektformatierung. Das heißt, wir sagen halt, unser Subjekt in dem Fall ist Elenturing, also 72 51 und gib uns alle Predicate und Objekte, die du zu Elenturing hast. Das ist ziemlich genau das, was auch auf der Wikidata-Seite für dieses Item drauf wäre. Das heißt, da ist das Label mit dem Namen von Elenturing, Elenturing's Field of Work, also Berufstätigkeit, was halt informatik ist und so weiter. Dann können wir uns halt eben auch ganz spezielle Sachen anzeigen lassen. Also wir sagen halt, wir reden immer noch über das Subjekt Elenturing und unser Predicate in dem Fall ist das Field of Work und wir wollen uns jetzt alles anzeigen lassen, was in Wikidata steht, zu dem Field of Work von Elenturing, was halt Computer Science und Cryptoanalyst ist und in dem Fall eben sagen wir auch noch, dass wir gerne das Label dazu hätten, nicht nur die Entity ID, weil die halt ein bisschen schwierig zu lesen ist für Menschen und benutzen dann den Labelservice, der von Wikibase so angeboten wird, auf Englisch. So, das war so ein kurzer Überblick über, was ist da so drin in diesem Query Service und jetzt dachte ich mir, arbeiten wir einfach mal mit einer Query im Speziellen, nämlich eben die Frage, findet den Pups mit den meisten Kindern mit Bild und ich zeige euch einfach mal, wie so ein Prozess für so ein Query-Bau aussieht. Erstmal suchen wir halt alle menschlichen Väter. Das machen wir da oben, indem wir select distinct machen, also dass sie halt alle nur einmal vorkommen. Father ist das, es wäre die Entity ID und das Label eben wieder und suchen halt alle Subjekte, die ein Vater mit dem P22, das ist halt die Property für Vater, haben diese Fragezeichen, falls es noch nicht aufgefallen ist, sind halt die Sparklesyntax für, das ist eine Variable. Also die kann man halt weiter verwenden, die wird am Ende halt eben gefüllt. Wir sagen, okay, so soll wir suchen jemanden mit einer Property, die bei irgendjemandem anderen als Vater gekennzeichnet wird. Dieser Vater soll ein Mensch sein und wir wollen eben das Label haben auf Englisch und das Ganze auf 100 limitieren. So, wenn wir das jetzt auf unserem Query Endpunkt in die GUI geben und ausführen, also die Query laufen lassen, kommt dann das zurück. Wir sehen halt 500 relativ zufällig rausgezogene Väter in Wikidata. So, ich habe jetzt das Vater einfach mal getauscht, das Instance of Human, also zu fragen, ob das ein Mensch ist, der Vater oder nicht, getauscht mit, dieser Vater hat die öffentliche Stellung, das ist P39, Papst, es ist nicht Q5, Q5 ist Mensch, sorry, da habe ich mich Copy Paste Fehler. Papst ist halt dieses Q19546, das Item, das Datenobjekt für Papst, in der Annahme, dass alle Päpste eben menschlich sind. Und da kriegen wir folgende Liste zurück. So, das sind alle Päpste, die Väter sind. So, und jetzt wollen wir aber eben noch wissen, wie viele Kinder hatten diese Päpste, haben wir Bilder auf Wikimedia Commons, weil Wikidata ist praktischerweise natürlich auch mit Commons verbunden, was echt ganz cool ist. Fast forward, wir bauen an dieser Query halt noch ein bisschen rum und überlegen uns, wir brauchen halt die Properties für Image, wir müssen zählen in Sparkles, Count verwenden von Sparkle, um uns zu überlegen, wie viele Kinder gibt es und so weiter. Und dann kommt ungefähr das hier raus. Das ist eben, der erste Teil ist immer noch ähnlich, also wir sagen, wir brauchen ein Subjekt, das ist in unserem Fall, sind das die Kinder später, mit die ein Vater haben. Dieser Vater soll ein Mensch sein, also Q5 ist Mensch. Dieser Vater soll ein Papst sein. Falls optional möchten wir das Bild, also P18 ist die Property für Bild in Wikidata, das Bild uns anzeigen lassen von diesem Papst. Man muss übrigens nebenbei gesagt, was ganz nett ist an dieser GUI bei Wikidata, ist, man muss sich diese Property IDs weder alle merken, noch alle die ganze Zeit raushoben, sondern es gibt eben auch Auto Completion auf dem Query Service, um halt einfach Image tippen zu können und man kommt dann eben P18 zurück. Funktioniert meistens sogar. Und dann wollen wir uns eben noch von sowohl den Kindern als auch den Vätern die Namen anzeigen lassen. Sortiert nach Vätern oder sortiert absteigend nach Anzahl der Kinder. Und dann haben wir halt Alexander IV, der laut Wikidata 5 Kinder hatte, mit den Links zu Comments und eben den Entity IDs für die Väter, also den Item IDs. So, das ist alles schon ganz cool. Und jetzt haben wir, wie gesagt, diesen tollen Endpunkt, Sparkle Endpunkt auf querywikidata.org und der kann halt schon so ein bisschen Visualisierung. Das heißt, wir haben halt nicht nur diese Liste, die wir weiterverarbeiten können, sondern wir können uns die dann halt auch gleich auf der Seite angucken. Mit eben... So. Genau. Damit wäre die Frage geklärt. Wir haben auf Wikidata 7 Päpste mit unterschiedlichen Anzahlen für den Kindern. Der meiste Papst hatte 5 Kinder. Der Satz, ich weiß. Der arbeite ich noch dran. Dann gibt es halt noch andere Visualisierung, die dieser Endpunkt kann. Zum Beispiel Karten, was immer super nett ist. In dem Fall sind es alle U-Bahn-Stationen der U1 in Berlin, also eine U-Bahnlinie, auf eine Karte gemappt einfach. Und das bietet dieser Endpoint schon an, dass sobald man was abfragt, wo Geo-Koordinaten mit dabei sind, die halt von Wikidata zurückkommen, Map ist das halt sofort auch auf eine Karte und man kann sich das halt irgendwie in so einem schönen, ge-renderten Karten-View angucken. So. Ja, das war es von uns tatsächlich auch schon. Wenn ihr Fragen habt, fragt gerne. Wir sind auch die ganze Zeit da und sitzen irgendwo an so einem Tisch mit so drei gegen Flyern. Wir haben auf jeden Fall die kurzen Flyer. Und ja, genau. Vielen Dank. Tragen? Irgendwer? Blaues T-Shirt? Danke schön. Also um es kurz zu fassen, kann man das auch in normaler Sprache eingeben, diese Abfrage? Oder ist das wirklich nur über Sparkle so vorgesehen, als Api? Oder kann dann, wenn jemand wirklich draufgeht und sich nicht mit so... Also es gibt halt... Also erst mal dieser Sparkle Endpoint ist natürlich für Leute, die diese Daten in irgendeiner Form weiterverarbeiten wollen oder Visualisierung damit machen. Es gibt ein Projekt. Wenn du magst, kann ich das nachher auch gerne zeigen noch mal. Also live immer so Internet raussuchen. Ist immer nicht so cool. Das heißt AskPlateipos. Da haben Studenten, Master Studenten mal dran gearbeitet zu einer Gruppe für Master Studenten. Eben genauso was zu machen. Also das mit natürlicher Sprache da eben Abfragen stellen kann. Das ist relativ komplex. Das heißt, das funktioniert mal besser, mal weniger gut. Aber da gibt es halt schon so einen Ansatz, das eben auch in natürlicher Sprache abfragen zu können. Also ich kann es nicht so... Also ob das unser Ziel auch ist, ich kann es nicht so genau sagen. Ich glaube, es geht eher darum, erst mal den Endpunkt anzubieten, um Leuten zu ermöglichen, diese Projekte wie AskPlateipos aufzubauen. Ja. Ja, ich habe gesehen, dass bei Wikidata immer so Quellen angegeben sind, schnell Referenz, und dann steht da irgendwo das herkommt. Und bei manchen ist keine Quelle angegeben. Da vermute ich mal, dass die Informationen aus der Wikipedia kommen. Was ist denn, wenn sie nicht aus der Wikipedia kommen und trotzdem in Wikidata sind, sind die dann händisch in Wikidata eingegeben worden? Oder wo kommen die her? Wir haben ein relativ große Anzahl von Editorien, die halt Bots benutzen, also Skripte schreiben, um Daten zu importieren. Zum Beispiel aus, jetzt auf dem Hackathon in Israel waren die, die Israel National Library, die dann halt so ein Datensatz genommen hat und nach Wikidata importiert. Das Problem mit den Referenzen ist halt vor allem, weil das Projekt noch relativ jung ist, vermute ich. Und darin wird halt auch gerade ganz stark gearbeitet. Das ist halt schwieriger, Referenzen natürlich einzutragen, mit einem Skript als einfach Daten zu importieren. Aber da gibt es halt diverse Quellen, auf jeden Fall. Also auch viel von den frei zur Verfügung stehenden Open Data Quellen sind mittlerweile in Wikidata auch importiert worden. Eine Frage zu diesen RDF-Tupeln, die ihr da genannt habt. Triebel. Genau, richtig. Eine Sache sind die Datensätze, andere sind diese Verknüpfung dieser Datensätze. Die sind ja auch wichtig, um diese Abfragen dann stellen zu können. Wie macht ihr das denn automatisiert, halbautomatisiert? Wie sicher kann man sich sein, dass die vollständig sind und an jedem Datensatz dran sind, an jedem Menschen? Auf welche Daten beziehst du dich jetzt genau? Also ist an jedem Menschen-Datensatz auch dieses RDF-Trippel drin, dass ein Mensch ist? Und die Frage, ist es manuell gemacht oder ist es irgendwie händisch gemacht? Nicht zwangsweise. Also Wikibase an sich, die Software, auf der Wikidata basiert, ist erst mal nur ein Anführungszeichen dummer Datenspeicher. Das heißt, man kann auch natürlich problemlos erst mal theoretisch ein Item anlegen und nicht ausdrücken, dass es ein Mensch ist, obwohl dieses Item ein Mensch beschreibt. Das ist grundsätzlich möglich. Bei so einfachen Sachen, wie zu sagen, dass die Person ein Mensch ist, ist die Abdeckung vermutlich sehr, sehr gut. Bei natürlich komplexeren Ausdrücken sind die Daten dann gegebenenfalls natürlich teilweise auch unvollständig. Aber grundsätzlich ist es möglich, dass sowas fehlt. Da gibt es keine Garantie über die Software, die das Item über ein Mensch auch als solches über Instanz aufmarkiert ist. Bisher auch recht ein Thema für eine KI oder was ist ich, Klassifizierung von Objekten in irgendwelche Einteilungen. Deswegen auch die Frage, habt ihr da irgendwie einen automatischen Mechanismus, der das was macht, einfach aus Interesse oder ist das alles manuell gepflegt? Da gibt es verschiedene Teilautomatische und teilweise auch semiautomatische Mechanismen. Also teilweise kann man sowas natürlich, wenn eine entsprechende Vergnüpfung in einer Externe Datenbank existiert, kann man das auch daraus ableiten. Viele Sachen wurden auch aus Wikipedia importiert. Da auch da sind solche Informationen schon vorhanden. Man kann sie importieren. Und da werden dann auch mehr oder weniger Richtung KI auch Algorithmen auf diese Wikipedia-Artikel angewendet, um solche Vorschläge zu generieren. Und die werden dann teilweise automatisch, aber auch sehr viel semiautomatisch eingepflegt. Ja, danke für den coolen Vortrag. Könnt ihr was zur Technik dahinter sagen oder zur Technologie? Oder habt ihr eine Quelle, wo man sich nachgucken, wo wir das nachgucken können dazu? Ist die Technologie hinter Wikidata an sich gemeint oder hinter dem Gravy-Service? Beides. Der Gravy-Service basiert auf PlaceGraph. Wir haben 1,1 Billionen Dripple und das Ganze liegt momentan auf 2 Servern. Ist noch im Beta-Stadium, aber eigentlich schon vom Mapping so weit stabil. Wikidata an sich ist eine Media-Wiki-Installation. Wikibase ist eine Media-Wiki-Erweiterung. Das heißt, wir haben da eine Media-Wiki-Installation mit Wikibase. Das Ganze ist in PHP geschrieben. Die Server laufen unter HHVM. Die Daten sind hauptsächlich gespeichert in MariaDB-Datenbanken als Chasen. Die Entities sind bei uns als Chasen abgelegt. Den benutzen wir noch mehr im Caching-Server zur Beschleunigung und waren nicht als Caching-Server noch divers anderes. Da kann ich nochmal genauer Auskunft geben, wenn das nach dem Talk. Das wollte ich auch gerade sagen. Wir sitzen hier rum, kommen vorbei. Habt ihr eigentlich eine maximale Nummer an Anfragen dran, die man pro Alps stellen kann? Oder kann man so viele Anfragen machen, wie man Lust und Laune hat? Ich bin mir nicht sicher, ob wir schon ein technisches Limit implementiert haben. Der Service ist natürlich Ressourcen begrenzt. Deshalb ist es natürlich geboten, dass jeder sich dann nur den Fair benutzt und so benutzt, wie es sinnvoll ist. Wenn man da massiv eine Applikation mitpowern will, dass man dann eine eigene Instanz laufen lässt. Wie jetzt da aktuell, die Limitierung auf technischer Seite aussieht, weiß ich gar nicht auswendig. Ich weiß, dass wir da schon hingearbeitet haben, aber wie die Limits genau sind, weiß ich im Moment nicht. Wenn man dann mehr benötigen würde, wenn man zum Beispiel massive Anfragen hat, um auf irgendwelchen Fall zu kommen, gegebenenfalls ja, man kann uns im ISE ansprechen, zum Beispiel. Das ist in dem Fall wahrscheinlich noch gut, Marie-Anne. Wenn es keine Fragen mehr gibt, haben wir hier auch noch so eine ganze Liste von Ressourcen, die zum weiteren Beschäftigen mit RDF, Sparkle, den Queries auf Wikidata, Wikidata im Allgemeinen und so weiter. Also, ja, so eine Liste liegt bei uns rum, also digital, kommt vorbei und redet mit uns und informiert euch weiter. Ja, danke schön.