<< Themensammlung Netzwertig

Unter netzwertig veröffentlichen wir in unserem Blog Einschätzungen zu aktuellen digitalen Geschäftsmodellen und IT-Trends, Meldungen, Analysen, Reviews und Specials.

03.04.07

Ein umfassender Einblick in Freebase

Neulich hatte ich ja über Freebase und dessen Entwicklungspotential berichtet. Nachdem ich nun eine Einladung erhalten habe (Danke, Jutta :)) und mich intensiver mit dem Dienst beschäftigen konnte folgt hier nun ein zweiter, detaillierter Bericht, der sowohl Einblicke in den Dienst gibt, wie er sich im Moment präsentiert als auch technische Hintergründe.

 

Das Freebase-Banner

Was ist Freebase?

Freebase ist eine globale Datenbank, die das Wissen der Welt in geordneter und strukturierter Form enthält. Es geht hier also weniger um enzyklopisches Wissen das in erster Linie für den menschlichen Leser gedacht ist, sondern vielmehr um eine Sammlung von Listen, Referenzen und Datensätzen - Eine Wikipedia für Maschinen sozusagen. Der Clou an der Sache ist, dass diese Datensammlung nicht lose aneinandergereiht ist, sondern alle Daten miteinander verknüpft werden. Ein Riesen-Schritt in Richtung semantisches Web, der ultimativen Alles-mit-Allem-Verknüpfung von Daten. Tim O'Reilly vergleicht in seinem Beitrag " Freebase Will Prove Addictive " diese Verbindungen mit den Synapsen eines menschlichen Gehirnes.

Hinter dem Projekt steckt die Metaweb Technologies mit Sitz in San Francisco. Das Unternehmen Metaweb hat eine Technologie und API namens Metaweb geschaffen, auf welcher die Freebase basiert. Das Unternehmen will, laut Eigenauskunft, ihr Geld mit dieser Metaweb-Technologie verdienen.

Der Aufbau von Freebase

Das System ist vollständig objektorientiert aufgebaut. Das heißt, jedes Element in Freebase ist ein Objekt, welches bestimmte Eigenschaften besitzt und mit anderen Objekten verknüpft ist. Jedes Objekt ist einem oder mehreren Typen zugeordnet und verfügt sowohl über eine eindeutige ID als auch einen optionalen Namen. Dieser ist allerdings nicht eindeutig und ist in erster Linie für Menschen gedacht.

Objekte, die dafür für den menschlichen Leser von Interesse sein können, werden "Topics" genannt. Diese bieten einem Objekt zum Beispiel die Möglichkeit, es mit Bildern aufzupeppen.

Die Typen selber sind in Domains hirarchiert, in der Typen ähnlicher Gebiete gruppiert werden. Derzeit gibt es Domains wie beispielsweise /business, /people oder /sports.

freebase_domains.gif

Natürlich würden einem diese einzelnen Objekte herzlich wenig nützen. Das Salz in der Objektsuppe sind die vielfältigen Verknüfpungen der Objekte zueinander. So ist Beispielsweise "Wien" mit "Österreich" genau so verknüpft wie "Arnold Schwarzenegger", der aber auch mit dem Film "Terminator" verknüpft ist usw. Dadurch ergibt sich letztendlich eine riesige Wolke an Verknüpfungen.

freebase screenshot1

Hier ist das Objekt "Austria" geöffnet. Es gehört den beiden Typen "Location" und "Country" an.

Mehrsprachigkeit

Ein großer Pluspunkt ist, dass die Mehrsprachigkeit von Beginn an vorgesehen ist, gerade bei US-amerikanischen Diensten ist das nicht immer eine Selbstverständlichkeit. Die Mehrsprachigkeit ist konkret so implementiert, dass die Bezeichner der einzelnen Objekte in mehrern Sprachen hinterlegt sein können - was ja auch logisch ist. Mailand ist ja schließlich auch im englischen Sprachraum die zweitgrößte Stadt von Italien, auch wenn dort die Stadt "Milan" und das Land "Italy" genannt wird. Hier sehe ich auch Potential für semantische Übersetzungstools, welche Anhand des Kontexts die richtige Übersetzung eines Begriffes durchführen.

Lizensierung der Inhalte

Natürlich macht es wenig Spaß, Daten und Arbeit einem Unternehmen in den Rachen zu werfen, das anschließend mit den Daten machen kann, was es will.

Besonders wichtig ist es daher, dass die freie Zugänglichkeit der Daten gewährleistet ist. Im Falle der Freebase wird das durch die Lizensierung der Daten durch die Creative Commons erreicht.

Es werden allerdings drei Unterscheidungen getroffen, was die Typen von Inhalten betrifft: Zum einen die Daten als Ganzes, welche immer unter der Creative Commons Attribution license (CC-BY) lizensiert sind. Die Texte zu den einzelnen Datensätzen unterliegen entweder ebenfalls der CC-BY oder aber der GNU Free Documentation License. Die dritte Unterscheidung betrifft Medien-Daten wie Bilder usw. Diese sind in der Regel public domain, es können aber auch copyright-geschützte Bilder darunter sein, die unter die fair-use Regelung des amerikanischen Rechts fallen. Hier obligt es dem Anwender der Daten zu überprüfen, ob alle Copyrightbestimmungen eingehalten werden.

Verwendet man Daten aus der Freebase, so ist jedenfalls immer eine Namensnennung erforderlich, konkret geschieht dies durch einen Link auf www.freebase.com .

Wer soll das alles eingeben?

Dass die Masse sowohl die Eigendynamik als auch das sprichwörtliche Wissen haben kann, eine solche Datenbank zu erstellen und zu Pflegen sollte selbst den hartgesottenesten Kritikern spätestens seit der Wikipedia klar sein. Die große Kunst ist es nur, diese Masse auch zu mobilisieren.

Die Arbeit selber um einen guten Datenbestand aufzubauen besteht dabei meiner Meinung nach aus zwei Teilen: Zum einen müssen die Objekte erstmal alle Ihren Weg in die Freebase schaffen. Zum anderen müssen anschließend zwischen all diesen Objekten die Verknüpfungen hergestelllt werden.

Was den ersten Teil betrifft, also große Mengen an Grunddaten in das System zu bringen, so ist es unerlässlich, ausgereifte Importfunktionen zur Verfügung zu stellen. Der objektorientierte Ansatz kann es aber durchaus schwierig gestalten, solche Routinen zu schreiben. Ein anderer Weg, die Daten in das System zu bringen ist die API, auf die ich etwas weiter unten näher eingehe.

Der zweite Teil, das Verknüpfen der Daten, ist dagegen mit wesentlich mehr Handarbeit verknüpft. Beim Herumexperimentieren mit der Oberfläche stellt man jedoch fest, dass gerade jetzt in der Anfangsphase, in welcher sich viele Daten noch sehr lückenhaft präsentieren, die Hemmschwelle sehr gering ist, mal eben eine solche fehlende Verknüpfung herzustellen. Im Gegensatz zur Wikipedia muss man sich nämlich nicht erst grammatikalisch halbwegs sinnvolle Sätze ausdenken (was man unbedingt machen sollte bevor man einen Wikipedia-Artikel ergänzt) sondern klickt einfach ein paar mal um die Verknüfpung herzustellen und die Sache ist erledigt.

adding germany

Verknüpfungen herstellen: Hier ergänze ich im Objekt "German" das Feld "countries spoken in" um "Germany". Natürlich habe ich anschließend noch Austria, Schweiz und Liechtenstein hinzugefügt ;)

Pflegen der Daten


Hauptsächlich gibt es derzeit ein enorm Ajax-lastiges Web-Interface, sowie eine leistungsfähige API, die hauptsächlich für die Nutzung durch automatisierte Dienste vorgesehen ist.

Das Web-Interface bietet Web 2.0 in Reinkultur: AJAX wohin das Auge blickt. Einige Dinge sind noch nicht ganz ausgereift, Metaweb schreibt sich das mit der Versionsbezeichung "alpha" gegenwärter aber auch nicht unbedingt auf die Fahnen. Es macht aber Spaß, sich durch die Oberfläche zu hanglen und ist vom ersten Ansatz her durchaus gelungen.

 

Die Freebase-API und Metaweb Query Language (MQL)


Die API ist über HTTP realisiert. Anfragen werden mit GET-Parametern gestellt, die Rückgabe der Daten folgt per HTTP-Response.

Die Anfragen werden mit Hilfe der "Metaweb Query Language" (MQL) formuliert. Es handelt sich hierbei um eine Abfragesprache, mit welcher die Daten dem Dienst sowohl entlockt als auch in ihm abgespeichert und verändert werden können. Die MQL orientiert sich an der bereits existierenden JSON-Syntax . Somit sollte es für die meisten Web-Entwickler keine große Hürde darstellen, sowohl die MQL-Syntax zu erlernen, als auch die Daten zu verarbeiten.

Vom Aufbau her gestaltet sich eine Anfrage immer so, dass man jene Teile eines Objektes, welche man kennt im Query angibt und jene Teile, die man abfragen möchte mit Platzhaltern versieht. Sendet man nun die Anfrage an den Server, so erhält man exakt den selben Datensatz zurück, jedoch um die fehlenden Daten ergänzt. Der Umstand, dass das Rad nicht neu erfunden wurde, sondern mit JSON auf bereits existierende Syntax aufgebaut wurde und man somit auf unzählige fertige Parser für alle erdenklichen Programmiersprachen zurückgreifen kann ist ein sehr kluger und durchdachter Schritt.

mql query

Der Query Editor - links die Abfrage, rechts das Ergebnis.

Einschränkungen der MQL


Allerdings hat die Sprache einige Einschränkungen: Oder-Bedigungen sind nur über Umwege durchzuführen und auch ausschließende Bedingungen sind nicht auf direktem Wege möglich. Dieser muss der Programmierer selber durchführen. Ein Beispiel: Man möchte alle Länder filtern, die mit "A" beginnen, aber nicht in Asien liegen. Hier muss man zwei Queries ausführen: Zuerst "Finde alle Länder mit A" und anschließend "Finde alle Länder in Asien, die mit A beginnen" um die Elemente des zweiten Queries vom ersten Ergebnis abzuziehen.

Die Metaweb Query Language bietet aber nicht nur lesenden sondern auch schreibenden Zugriff. Das heißt mit Zuhilfenahme der API können Daten auch automatisiert gepflegt und abgeglichen werden. Hier muss es natürlich Mechanismen geben, um die zwei leidigsten Themen des Web 2.0 zu verhindern: Spam und Vandalismus.

Selber experimentieren

Wer jetzt neugierig geworden ist und selber den Dienst ausprobieren möchte, für den dürfte die größte Hürde es darstellen, dass der Dienst derzeit nicht allgemein zugänglich ist. Wer aber eine Einladung ergattert, der kann sich in der Sandbox austoben. Dies ist eien 1:1 Kopie der "echten" Freebase, auf der munter experimentiert werden darf. Diese ist unter sandbox.freebase.com zu erreichen. Jede Woche werden die Daten dann neu abgeglichen.

Fazit


Die Idee einer solchen Datenbank ist unglaublich faszinierend und ein weiterer Schritt in Richtung umfassende Wissensgesellschaft. Nach der Wikipedia ist Wissen nicht nur mehr überall nachschlagbar, sondern auch jederzeit filterbar. Die Umsetzung durch Metaweb wirkt sehr rund und durchdacht und auch mit der Wahl, die Daten unter der Creative Commons zu lizensieren sind die Weichen für eine positive Entwicklung des Dienstes gestellt.

Letzten Endes ist es jedoch eine Frage die Massen des Webs zu dynamisieren und zu hoffen, dass dieser Dienst gut angenommen wird.

Dieser Beitrag wurde ursprünglich im Blog zweinull.cc veröffentlicht. Im Mai 2008 wurden zweinull.cc und netzwertig.com zusammengeführt.

Förderland-Newsletter

Wissen für Gründer und Unternehmer