RDFa Editor Presentation

No Gravatar

I just finished my final presentation as the finishing-line for my studies in computer science. I wrote about the inclusion of a RDFa-Editor in a blogsystem, where a user can include semantic annotations in their posts. The goal was to create a tool for editors that would enable them to enrich the posts they make with individual semantic markup. Its mainly focused on usability and is based on the WYMeditor and two servlets. It should be easily portable and perhaps this can be an inspiration for CMS-vendors, so normal people without domain-knowledge (in RDF and Ontologies) will be able to post semantic markup for their contents.

The presentation is made with the flash-tool of prezzi.com and is completely in GERMAN. You can find it shared here. Let it first load the media before you go on watching. If you experience lags, you can download the more smoothly runningoffline-exe-file.

If someone needs a translation, I might invest the hour of work doing so (just post a comment). This is the presentation … click on the forward button to move forwards, in the downloaded version you’ll find the forwards/backwards-butons in the lower right corner and can also use standard powerpoint-presentors:

I hope you like the idea - and I hope that the semantic web world gets more usable for “usual people”, otherwise it might not come to reality for many more years. If you’re interested in the thesis, let me know.

Google supports RDFa - SEOs work changes forever

No Gravatar

Google and Yahoo just announced that they’re going to support RDFa (and Microformats). Be sure that you understand what that means: This is the dawn of the Semantic Web (or you may also call it Web 3.0) and the beginning of the end of old ways of SEO (Search Engine Optimization). In this post you’ll find some more info explaining what RDFa is, why I state that the Semantic Web will now emerge and why it soon will not be important to put the buzzwords into Headline-Tags (<h1>Buzzwords here!</h1>) but to link the word your content is about to the rdf-Source of what that word really means.

Talking about Google. Google is THE defining webtechnology company. The google page rank is the most important factor that a SEO cares about, and he would be doing anything to get a high page rank, as this would rank his site higher in the google search. And google search is the main entry point of the average surfer to get to content he cares about. Being highly ranked in google’s search is like being well-known and this holds a lot of marketing power. Google (and the other search engines) are doing their best for about 20 years to understand a given HTML-site and its contents, to know what to show their users when they search for a keyword. But they can never know what you mean when you talk in your blogpost about Big Ben. Do you mean the Volcanic Massif on Heard Island labeled Big Ben? Do you mean the world champion jumping horse that held this name? In this article, I marked up these three words with their meaning … you can’t see it, but google can (well in fact that might be a stupid idea, because Google will think that this post might be about these items … but anyways, if you find it in the sourcecode, you’ll see what I mean, just in case this wordpress blog won’t have shreddered what I just typed in).Diagram for the LOD datasets

Most people that want to “invent” the semantic web like Qimaya think they can derive semantic meaning from webpages by emulating a human brain which just understands the words. They sell this idea to investors who don’t like technical terms like RDF or Ontologies, because those investors hope that the Web will become “semantic” by magic instead of hard-to-understand science. If that would be possible … don’t you think Google would have already implemented it? Nevermind … we all need some fantasy.

RDFa is a way of embedding RDF into HTML. RDF is the Resource Description Framework, and with that its possible to define semantic meaning. In RDF, you have a Subject, a Predicate and an Object as in real-world speech. You could say “This article (subject with the unique URI http://www.ithoughts.de/google-supports-rdfa-seos-work-changes-forever) is about (standard-RDF-predicate) the semantic web “and Google would rank your article way higher when someone wants to know something about the Semantic Web and uses this keyword in Google Search. You could also model these triple-sentences to make a connection between defined resources. “I’m interested in the semantic web” could be a triple you can put directly into HTML. Google could derive a logical connection here.

Google will first use some use-cases, like that of the ratings. Say you define your blogpost as a rating about a product like some special laptop, and you define it unambigously by using a unique id (in fact a unique URI, perhaps that will be the product page at the laptops vendor), Google has a lot of info that it can directly parse from your website: Its about a certain laptop, you have rated it, and maybe you also give information about yourself. This is all machine-extractable structured data, that can be used by webspiders like Google Search. With these definitions about products, ratings, companies and people, a lot of the central data that a lot of people search about in Google can be automatically extracted from average users like you and me - if we know how to embed that data. This might become a central interest of all SEOs out there - understanding RDF and implementing RDFa into webpages might be the next thing in terms of “Semantic Page Rank“.

Its some kinda funny, that I’m working on an RDFa-Editor for a semantic blog in my thesis. Seems like I have to include Googles usecases in it, or it might be “outdated”. If you have any questions, just add a comment. By the way: Welcome to the Semantic Web!

Auto-Enrich blogposts with Zemanta and Web 3.0

No Gravatar
Image for use in basic articles dealing with p...Image via Wikipedia

Listening to technology-podcasts on the german Handelsblatt.com-website, I heard about Zemanta. It is a service that uses a firefox-plugin to read out your blogged text and parsing it for “words they know”. They present you links, tags and images to embed in your blog post, showing you links to wikipedia-articles and pictures fitting the content. Just after finishing this sentence, the sidebar that gets embedded in my webbackend of wordpress refreshes. Whoa! I got 5 links for the first sentence and I just included them all. I also included a pic you see floating right.

This is what many people think the semantic web or Web 3.0 to be. And in a way, it is. The use of Web 3.0 (the term in my understanding encapsulates user-generated-content as in Web 2.0 and the semantic web) in blogging seems logical to me as blogging the one of the most public displays of Web 2.0. This firefox-plugin makes it much easier to generate interesting articles and IF it doesn’t break my blog frontend, I’ll definitely use it in every post from here on. But back to the functions:

semantic web think tankImage by pshab via Flickr

You can press an update-button and your content gets scanned again. New pictures appear and new links can be included. Just realized that most links are Wikipedia ones, but some (like the firefox-plugin-link or the Zemanta-link at the top) are also directed at other “well-known” resources. You can search for a term you put into a searchbar and get links, content and new pics. I tried “semantic web” for example. You can drag-and-drop pictures into the content-pane, and it gets easily included.

We’re standing on the edge of Web 3.0. I don’t think that this here is all that Web 3.0 is about, but I think its a great application that can be called “Web 3.0″-ly. If you would like to use this ff-plugin too, just go to their website and install it. You’ll have to agree to their TOS, that basically says “don’t change anything our plugin includes” and “we need access to the text you write” and “you are in charge for your content and all content you get from us as we show you the license”. So now I hope this post doesn’t get destroyed by some bad constructed CSS on my side. Fire and forget - or do you have any comments, iThoughts or fears about this plugin? You may also comment in german.

Reblog this post [with Zemanta]

Friend of a Friend

No Gravatar

Just tried out the FOAF-File-Maker and put the resulting FOAF-File it on my blog. So if someones out there using that stuff and knowing me, set a link to http://www.ithoughts.de/foaf.rdf … thanks :-)

Just for those who don’t know: FOAF means Friend-of-aFriend and is a technical way to express your friendship and personal info on the semantic web. As more and more services spider the web for such info, I just put it up … perhaps you’ll be able to register to websites with just pointing to your FOAF-File.

Qimaya - Makers of the Semantic Web?

No Gravatar

Hello, dear friends of “The Semantic Web”. I hope you don’t mind if I’m a bit sacrastic about this. I just got a tweet to this article, stating that the semantic web is soon developed and ready to be bought - or used, or something like this.

The article and several others that I found are saying all the same - they were busy explaining what the meaning of the word semantic is and how the human brain organizes information - and some other buzzwords also appear. They say they use neuronal nets to simulate the human brains way to connect words to semantics and that they are ready to sell it to us. They tell us that they found a way to make this n-net work with linear complexity (lowering the processing speed to “only” 20% [someone might see that this is not logical] ) and that every site in the semantic web just gets connected to every other when we use their technology - how this should look is shown in a small video where they take some text about a mac evangelist and show us how their remarkable someware does some pretty AJAX-effects. They tell us that it will find applications that fit the context of what we read and relevant text too - from anywhere on the net! They tell that it’s good for SEO (which I doubt - when every information is connected semantically, SEO is plain dead because only the content would be important) and they tell us its an innovative revolution.

Something that is not told is how we should buy this technology, sometimes its said that everyone will be able to use the new technology in their portal, but most of the time I got the feeling that you’ll need to but a licenced software to use it. They also don’t tell us what a server we’ll need, and how much bandwidth and hardware-capacity … this might be relevant if we’re simulating a human brain or if we’re trying to know where every written word on the internet is located, and in which context.

After all, I would be very happy to see that miraculous beta-version and test it. If it does, what you say, I’ll gratefully update this post and help you test that revolution. But till that happens, I’ll take Qimaya for the guys that sell the thing everyone’s talking about to the people who don’t understand its just selling freezers to eskimos.

OntoVis

No Gravatar

Mein individuelles Projekt “Visualisierung von Studienplänen auf Grundlage ontologiebasierter Studiengangsmodelle” wurde am 03.11.2008 abgegeben.Es werden aktuell noch leichte Änderungen durchgeführt, da ich zum Beispiel noch Fehler ausbügeln möchte und mich noch ein bisschen mit der Programmierung beschäftigen will. Sobald es eine neue Version gibt, lade ich diese hoch.

Meine Motivation für dieses IP war, zum ersten Mal an einem größeren Projekt die vielen erlernten Konzepte der Programmierung auch einmal praktisch anzuwenden und ein paar neue Technologien zu erlernen, die mich sowiso interessierten. Wissensdarstellungen in Ontologien in OWL, XML, HTML, CSS, Java, Struts2, Jena, …

Ich möchte mich bedanken bei Richard Hackelbusch, meinem Betreuer während des IPs. Er hat viele Stunden seiner Zeit geopfert, um mir wissenschaftliches Schreiben einzutrichtern und ist nicht verzweifelt, wenn ich mal wieder ein Problemchen mit meiner Programmierung oder mit einem Diagramm oder auch nur mit LaTex hatte. Er ist auch der Autor der Grundlage meiner Arbeit: der Curricula Mapping Ontology (CMO) und des CMO-Modellinterpreters. Die CMO ist eine Wissensdarstellung des Ablaufes von Studiengängen, in welcher alle vorstellbaren Arten von Veranstaltungen, Bedingungen, Studenten, Ergebnissen, usw. mit all ihren Zusammenhängen abgebildet werden können. Nutzen Universitäten diese in Zukunft zur Modellierung von Studiengängen, so können diese über den Modellinterpreter ausgelesen werden. Das würde bedeuten, dass man den optimalen Ablauf eines Studiums am Rechner durchplanen kann, sich den Ablauf eines Studiengangs mit allen Einzelheiten zu Hauseansehen kann, und vieles mehr.

Die Software OntoVis benutzt den Modellinterpreter zur Visualisierung von Studiengangsmodellen in einer Webanwendung. Studiengangsmodelle können dargestellt werden, und über den Modellinterpreter können Interpretationsschritte vollzogen werden, zum Beispiel die Auswahl eines Nebenfaches oder die Zuordnung eines Ergebnisses zu einer Veranstaltung, wodurch diese als bestanden oder nicht bestanden gewertet werden kann. Bei weiterem Interesse: Die Ausarbeitung können Sie auf Anfrage als PDF bekommen.

aktuelle Software (Stand:13.11.2008, ca. 27MB)

JavaDoc

Changlog 13.11.2008:

- Reperatur der Anzeige

- Optimierung der Geschwindigkeit der Berechnung der Zuordnung von zuweisbaren Results.

Web 3.0 - Semantic Web und KIs

No Gravatar

Auf der Suche nach einen Thema für meine Diplomarbeit brauche ich etwas Hilfe … von DIR, lieber Leser :-) … als Motivation bitte ich das Video auf dieser Seite anzusehen, was ein Paradebeispiel dafür ist, wie eine Suche im Semantic Web Google und Wikipedia ersetzen könnte (Link öffnet sich in neuem Fenster).

Normalerweise beschäftige ich mich in diesem Blog nicht mit technischen Themen, aber ein Blogpost ist für mich der beste Weg, meine Gedanken zu ordnen und vielleicht neue Ideen zu finden. Und euch Lesern vielleicht nahezubringen, wie der nächste Level von Informationen im Internet aussehen könnte. Das Thema meiner Diplomarbeit ist bisher grob umrissen mit den Worten “Web 3.0 made easy”. Diverse Fragen müssen aber zuerst geklärt werden, zum Beispiel, was ist erstmal Web 2.0 und wie kriegen wir einen Versionssprung hin? Was ist Semantic Web, und was ist überhaupt Semantik? Hierbei gilt zu beachten, dass dieser Post keine wissenschaftliche Arbeit darstellt, und vielleicht auch ein bisschen in Richtung Science Fiction abschweift, was hier steht stimmt also nicht erwiesenermaßen - ausserdem ist es recht viel Text und nicht nur ein Blogpost zwischen Tür und Angel.

Von Web 2.0 zu Web 3.0

Web 2.0 könnte im allgemeinen als Mitmach-Web bezeichnet werden. Dass es um Internet geht, sollte der Begriff Web im Namen “Web 2.0″ klar machen. Der Inhalt dieser Seiten wird von Anwendern der Seite gefüllt, und die ersten Exemplare dieser 2.0 Seiten waren EBay und YouTube. Web 2.0 war so erfolgreich, weil sehr viel Content geboten wird, und der Verantwortliche ihn nicht selber erstellen muss, sondern nur Werbe- und andere Gebühren kassiert. Im Gegensatz zur vielgehegten Meinung ist Web 2.0 nicht gleich AJAX, es wurde eher zur selben Zeit eingeführt und findet auf vielen Web 2.0 Seiten Einsatz, aber es handelt sich dabei lediglich um eine Technologie und nicht wie bei Web 2.0 um eine Art Philosophie.

Web 3.0 muss nicht nur im Sinne seiner Namensgebung auf den Web 2.0-Gedanken aufbauen, d. h. auch hier soll der Internetseitenbetreiber seinen Content nur in begrenztem Maße selber bauen müssen; vielmehr ist ein Semantic Web ohne User-Generated Content kaum denkbar. Der Versionssprung von 2.0 zu 3.0 soll erreicht werden, indem das Semantic Web genutzt wird und die semantischen Informationen im Internetähnlich wie bei Web 2.0 von den Usern selbst bereitgestellt wird. Der gewaltige Datenmüllberg, der unstrukturiert im Netz liegt, müsste nach diversen Merkmalen von Menschen strukturiert und mit Bedeutung versehen werden. Das Semantic Web ist hier das Buzzword, was die Nutzung von Bedeutung oder auch Semantik im Internet beschreibt.

Was ist Semantik?

Semantik und Syntax kennen wird vielleicht noch aus dem Deutschunterricht aus der Schule. Wenn ich “Ich bringe Geld zur Bank” sage, hat dies eine Syntax, die die zusammenstehenden Worte grammatisch korrekt beschreibt und mir zum Beispiel vorgibt, dass der Satz nicht “Geld Bank zu bringe ich” heisst. Die Semantik dieses Satze sagt aus, was ich meine, also dass ich etwas Geld nehme, damit zu einem Geldinstitut gehe, und es auf ein Konto einzahle. Die Syntax des Wortes Bank ist die richtige Aneinanderreihung der Buchstaben b a n und k, wobei noch aufgrund des Nomens der erste Buchstabe gross geschrieben werden muss. Die Semantik des Wortes Bank ist in diesem Zusammenhang ein Geldinstitut (das eigentlich sehr viel komplexer zu beschreiben wäre), wohlgemerkt aber nicht eine Parkbank, auf der man sich ausruhen kann.

Semantic Web und Ontologien

Eine Ontologie in dem Sinne ist eine Abbildung menschlichen Wissens einer bestimmten Domäne auf eine computerverständliche Weise. Durch eine Beschreibungssprache namens RDF (Resource Description Framework) kann man so Aussagen wie in natürlicher Sprache computerverständlich abspeichern. Der Satz “Barack Obama gewinnt die US-Wahlen 2008″ könnte in RDF wie folgt modelliert werden:

<rdf:Statement rdf:about="#triple123456">
  <rdf:subject rdf:resource="http://www.example.com/persons/famous/us#barackobama"/>
  <rdf:predicate rdf:resource="http://www.example.com/terms#wins"/>
  <rdf:object rdf:resource="http://www.example.com/2008/events#uselection" />
</rdf:Statement>

Wie man sieht handelt es sich um eine in XML dargestellte Aussage, bei der es ein Subjekt, ein Prädikat und ein Objekt gibt (genau, wie im Deutschunterricht). Dabei sind die einzelnen Elemente auch entsprechend zu beschreiben, damit sie irgendeinen Sinn machen. So gibt es Klassen von Objekten, wie zum Beispiel Personen oder Ereignisse, die man als Konzepte beschreibt. In den Beschreibungen der einzelnen Resourcen (oder Instanzen) unter den entsprechenden Adressen wird auf das Konzept der Resource verwiesen, um zu klären, worum es sich bei der Resource handelt. So könnte unter http://www.example.com/persons/famous/us#barackobama in einer ähnlichen XML-Form beschrieben werden, dass es sich um eine Person handelt, die vielleicht unter www.w3c.org/ontology#person beschrieben wird. Die einzelnen Resourcen werden mit einer URL beschrieben, damit diese einzigartig ist und damit man ihre Beschreibung theoretisch auch unter dieser URL ablegen kann.

Wenn man nun alle wahren Aussagen zusammenfassen würde, so wäre das wissen der Welt für ein Computerprogramm verständlich und dieser könnte Lösungen für Probleme anbieten. Wobei dieses Computerprogramm praktisch eine künstliche Intelligenz sein müsste, weil es nicht wissen kann, wie das Wissen modelliert ist. Und soweit ist man bei der KI-Forschung noch nicht. Und bei den Ontologien wurden auch bisher nur relativ kleine Teilgebiete menschlichen Wissens dokumentiert, darunter Pizzen, amerikanische Präsidenten und demnächst auch Studiengänge. Für Personen wurden mit Sicherheit auch schon diverse Ontologien gebastelt.

Ontologien sind somit eine Art Datenansammlung wie in einer Datenbank, bei denen die einzelnen Tabellen Informationen enthalten und über Verbindungen zu anderen Tabellen Beziehungen geschaffen werden können. Ähnlich wie in Datenbanken kann Data Mining betrieben werden kann, d. h. man versucht über die bekannten Fakten und Informationen, die explizit in der Ontologie modelliert sind, automatisch Informationen zu gewinnen, die normalerweise nicht mittels Automatismen ausgewertet werden könnten und die sonst höchstens mit dem Gehirnschmalz von Menschen gewonnen werden können.

Hierbei haben Ontologien mehrere entscheidende Vorteile gegenüber Datenbanken:

  • Die bestehen aus Text, können also einfach von Menschen gelesen werden. Meist sind die Daten allerdings so komplex und verschachtelt, dass man sie im Endeffekt doch nicht wirklich lesen kann.
  • Text kann problemlos über HTTP übertragen werden und wohl von (fast) jeder Programmier- oder Skriptsprache manipuliert werden, ist also Technologie-”Freundlich”
  • Die Syntax ist standardisiert. So wie alle Datenbanken als Abfragesprache SQL-Dialekte benutzen, damit Menschen sich schnell an andere Datenbanken gewöhnen können, so ist die Syntax standardisiert, damit alle externen Quellen auch etwas mit den Daten anfangen können, ohne sich erst mit dem Daten-Französisch auseinandersetzen zu müssen.

Zukunftsmusik

Nun wäre es traumhaft, *irgendwie* bekanntes Wissen, das z. B. in Wikipedia-Artikeln abgelegt ist, in solche Aussagen zu verwandeln, denn diese sind ja beliebig kombinierbar. Wenn ich also die Aussagen erstelle, dass die Wichtigkeit eines Amtes mit dem Gehalt für die Person zusammenhängt; dass der Gewinn der US-Präsidentschaftswahl demjenigen, der diese Wahl gewinnt, das Amt des US-Präsidenten zuweist, und ich ausserdem modelliere, dass dieses Amt das wichtigste Amt der Welt ist (ja, alles hypothetisch!), dann kann ein Computer daraus ableiten, dass Barack Obama das höchste Gehalt der Welt verdient (da er ja nach obiger Aussage die Wahl gewinnt).

Hier zeigen sich allerdings wieder deutliche Probleme, die man mit der Wissensmodellierung in Ontologien hat:

  • Die Aussagen müssen wahr sein, sonst ist die Ontologie nicht konsistent. Das Wort Ontologie wird in der Logik für eine Aussage verwendet, die immer wahr ist. Wenn Barack Obama also die US-Präsidentschaftswahl nicht gewinnt, dann stimmen die oben angegebenen Zusammenhänge nicht mehr, da eine Aussage falsch ist.
  • Die Domänen müssen überschaubar sein. Wenn ich das Wissen abbilden will, nachdem eine US-Präsidentschaftswahl verläuft, dann scheint das Anfangs noch modellierbar zu sein: Die Personen haben eine Stimme, die sie für die Parteien abgeben können. Wenn mehr Stimmen für Obama abgegeben wurden, als für McCain, dann hat Obama gewonnen. Allerdings ist dieser Sachverhalt ein wenig reduziert im Vergleich zur Wahrheit. In Wirklichkeit müsste das komplette Wahlsystem der USA modelliert sein, mit allen Staaten, 300 Millionen Person-Instanzen mit den unterschiedlichsten Eigenschaften, lokalen Unterschieden und sämtlichen Sonderfällen - aber davon verstehe ich genauso wenig etwas wie der Leser dieses Artikels.
  • Diese können nicht automatisch erstellt werden. Wenn ich einen Text über den US-Wahlkampf in ein Computerprogramm gebe, können hieraus maximal Wahrscheinlichkeiten errechnet werden, welche Wörter zusammengehören könnten. Viele Projekte beschäftigen sich mit der Umwandlung von natürlicher Sprache in semantische Ausdrücke, doch wie man an semantischen Suchmaschinen sieht, funktioniert das nur sehr bedingt.

Wofür Ontologien? Und mehr Probleme!

Die Frage bleibt also: Wenn man sowiso nur kleine Domänen modelliert, lohnen sich dann Ontologien? In den seltensten Fällen, scheint die Antwort ja zu lauten. Denn theoretisch können wir weiterhin standardmäßige spezialisierte Anwendungen schreiben, die die entsprechenden Probleme der jeweiligen Anwendungsdomäne problemlos bewältigen können. Der Aufwand wäre geringer, Schnittstellen könnten einzeln für bestimmte Anwendungsfälle entwickelt werden und alles wäre wie gehabt.

Aber andererseits haben wir hier eine Art Datenbanksystem, dessen Struktur von allen Systemen verstanden wird, so dass Schnittstellen einfacher zu machen sind. Wenn also in dieser Form Informationen gesammelt werden, dann sind sie später benutzbar, in Gegensatz zu einer Word-Datei, aus der nicht sinnvoll Aussagen über ihren Inhalt geschlossen werden können. Das gesamte Wissen einer Domäne wäre extern durch entsprechende Programme auswertbar.

Der Hauptvorteil ist somit, dass diese semantischen Informationen etwas meinen oder bedeuten. So ist es theoretisch möglich, dass jeder Webseiten-Verantwortliche sich selbst als Person computerverständlich modelliert und diese Daten auf seinen Server hinterlegt. So könnte jemand automatisiert von meinem Server auslesen, wie mein Name oder meine Telefonnummer lauten, oder dass ich Student bin, für die Inhalte meiner Webseiten verantwortlich bin oder dass ich einen Führerschein habe. Über einen semantischen Webcrawler könnte man so auch semantische Informationen finden und aggregieren, um beispielsweise eine Statistik darüber anzufertigen, wieviele Leute einen Führerschein haben. Über ein ist_Freund_von-Prädikat könnten diese einzeln modellierten Menschen in einen solzialen Zusammenhang gebracht werden. Wenn ich und meine Freundin also als semantische Informationen auf meinem Webserver abgelegt sind und über eine parship-Beziehung verknüpft sind, dann sagen wir der Welt: Wir sind ein Paar! Ist das Web 3.0? Allein über das Konzept Person und einige Eigenschaften könnte so ein solziales Netzwerk entstehen, was nur noch von einem entsprechenden StudiVZ-Ersatz ausgelesen werden muss.

Wenn ich mich aber nun als Person beschreibe, und dabei ein Konzept nehme, dass als http://www.people.com/ontology#person modelliert wurde und jemand anderes sich als Person beschreibt, die nach einer anderen Ontologie (zum Beispiel http://www.w3c.org/ontology#person) modelliert wurde, dann können diese beiden Personen zuersteinmal nicht verglichen werden, obwohl beide dasselbe Konzept meinen, aber ein unterschiedliches benutzen.

Dies könnte man über ein istGleich-Prädikat zusammenführen, durch welches das eine Konzept als gleich mit einem anderen Konzept verbunden würde.  Trotzdem wären dann weitere Eigenschaften wie z. B. URL1#hat_Führerschein und URL2#besitzt_Führerschein vorhanden, die zwar dasselbe meinen, aber wiederrum nicht als gleich betrachtet werden können, bis sie als gleich identifiziert wurden. An dieser Stelle fehlt noch eine Art automatisches Tool, welches ausgehend von einem oder einer kleinen Menge identifizierter Konzepte beliebige durch Prädikate verbundene Konzepte als gleich erkennt und entsprechende Annotation vornimmt.

Mehr Zukunftsmusik

Wäre ein solches Tool vorhanden, könnte über einen Webcrawler automatisiert nach Ontologien gesucht werden und einem Menschen zwei ähnliche Konzepte vorgeschlagen werden. Je besser dieser Vorschlag-Algorithmus funktioniert, desto öfter würden hier nur sinnvolle Verbindungen abgefragt werden. Zum Beispiel: “URL1#hat_Führerschein istGleich URL2#besitzt_Führerschein?” Antwort ja des Menschen produziert ein entsprechendes Prädikat. Möglicherweise kann der Algorithmus sogar erkennen, dass diese Prädikate gleich sein müssen, wenn er über einen anderen Weg bereits die Semantik von Führerschein und Person auf beiden Seiten feststellen konnte.

Sobald dieser Algorithmus die Konzepte als gleich identifiziert hat, können in einer relativ kurzen Prozedur weitere ähnliche Elemente in beiden Ontologien identifiziert werden, die ebenfalls als gleich bezeichnet werden. Dies könnte helfen, identische Wissensatome als gleich zu erkennen und auf diesen Daten kann man arbeiten. Was für eine Revolution. A ist Gleich A.

Nun würden schnell sehr viele istGleich-Beziehungen entstehen. Um diese abzubauen könnte ein Webcrawler statistisch ermitteln, welches das meistbenutzte Prädikat (zum Beispiel für zusammen sein) bzw. das meistbenutzte Konzept (z. B. für Person) ist, und den für diese Dateien verantwortlichen Personen eine E-Mail schicken, mit Vorschlägen zur Angleichung ihrer Daten. Dies würde in einem Wikipeida ähnlichen Maßstab eine Einigung auf bestimmte Konzepte auslösen.

Wenn man nun noch seine persönliche Personen-Ontologie problemlos erweitern könnte, dann hätten wir eine Form von selbstwachsendem Wissen. Mal angenommen, ich will sagen, dass ich mit meiner Freundin zusammen bin (was vorher noch kein Computer ermitteln konnte) und verweise mittels eines parship-Prädikates auf die URI, unter der ihre Personen-Instanz eindeutig identifiziert ist. Der oben genannte Algorithmus könnte nun nachforschen, was ich damit eigentlich meine, und könnte ähnliche Prädikate anbieten, die andere Internetuser benutzen. Vielleicht ist togetherWith das allgemein benutzte Prädikat, und dieses wird mir zusammen mit einigen anderen Prädikaten zur Auswahl angeboten.

Noch mehr Probleme

Doch was ist mit Datenschutz? Wenn ich meine E-Mail-Adresse für alle sichtbar im Web hinterlege und meine persönlichen Daten mit dieser verknüpft sind und das auch noch in einer allgemein verständlichen Weise, dann würden mir die Semantic-Spammer wahrscheinlich bald die Tür einrennen. Auch möchte Sicherlich Barack Obama nicht alles Wissen, was über ihn existiert, im Internet wissen. Aber das sind natürlich Probleme, mit denen man sich im Informationszeitaler schon jetzt auseinandersetzen muss. Sicher ist aber, das nicht alle diese Daten unverschlüsselt im Web liegen werden. Auch das Firmenintere Wissen einer Firma wird aus offensichtlichen Gründen nicht offen zugänglich sein können, auch wenn es existiert.

Und was ist mit dem ganzen Kram, der bereits aufgeschrieben wurde? Viele Menschen haben sich soviel Mühe gemacht, Diplomarbeiten geschrieben, Erhebungen gemacht, Wissenaquisen durchgeführt … und sie in einem Worddokument oder auf Papier geschrieben. Kann man das nicht einfach in semantische Daten umwandeln?

Was man machen kann, ist beispielsweise statistisch zu ermitteln, wie oft ein Wort in einem Satz vorkommt, und zu welchem Prozentsatz ein anderes Wort in diesem Satz benutzt wird. Man kann möglicherweise auch die einzelnen Wort mit den Benennungen von Konzepten oder Instanzen vergleichen. Vielleicht kann man sogar zu einer Aussage kommen, dass das Wort “Bank” häufig mit dem Wort “Geld” in einem deutschen Satz vorkommt. Von den restlichen Worten eines Satzes könnten wir annehmen, dass es sich dabei um ein Prädikat handelt, oder dass eines darin vorkommt. Nun könnten wir jeden Satz nehmen, und versuchen, Aussagen daraus zu generieren. “Geld kann man bei einer Bank abheben” wäre hierbei schon zu kompliziert, “Banken handeln mit Geld” wäre vielleicht denkbar, wenn der Computer weiß, dass “Banken” auch “Bank” meint. Mit anderen Worten: hier haben wir statistisch Möglichkeiten, aber praktisch gesehen steht uns dass Problem im Weg, dass gemachte Aussagen wahr sein sollen, damit sie die Konsistenz der Ontologie nicht gefährden. Ein Computer kann leider natürliche Sprache nicht verstehen, ansonsten wäre der ganze Semantic Web-Kram ja längst überholt.

Zurück zum Gedanken Web 3.0

Was wäre nun, wenn Fakten semantisch Vorliegen würden? Wem würde das etwas bringen? Es gibt bereits Tools, mit denen man Ontologien anzeigen und erstellen kann, ich nutze momentan Protege, weil dies kostenlos nutzbar ist. Mit diesem oder auch anderen kostenpflichtigen Tools kann eine Ontologie gebaut und Instanzen erzeugt werden.  Freebase sammelt semantische Informationen. Um hier nocheinmal ein bisschen zu motivieren, wie Web 3.0 aussehen kann, würde ich empfehlen sich dieses Video anzusehen, bei der auf Freebase die Erschaffung neuen semantischen Wissens durch einen User auf der Weboberfläche von Freebase demonstriert wird.

Künstliche Intelligenz

So, nun haben wir also einen Haufen semantische Daten. Diese können von spezialisierten Programmen ausgelesen und genutzt werden. Mal angenommen eine recht komplexe Ontologie würde das Wissen von Gesetzestexten in den deutschen Gesetzbüchern beschreiben, könnte ein ebenfalls komplexes Programm bestimmte Umstände einer Straftat nehmen und versuchen, den Straftatbestand laut Gesetz zu ermitteln. Aus diesem und den Daten der beteiligten Personen könnte dann ein Strafmaß ermittelt werden. Dieses komplexe Programm müsste eine künstliche Intelligenz sein, um diverse nicht automatisch zu treffende Entscheidungen irgendwie entscheiden zu können - oder diese Aufgaben an einen Menschen, der das Programm bedient, abgeben.

Solche Entscheidungen können vom Menschen aufgrund seines Wissens getroffen werden. Nicht automatisch zu treffende Entscheidungen beruhen somit auf Fakten, die nicht in der Ontologie enthalten sind. Theoretisch sind aber alle denkbaren entscheidbaren in Ontologien modellierbar. Wenn nun also ein Computerprogramm im Falle einer aufgrund fehlender Bewertungslage nicht zu treffenden Entscheidung einen Menschen konsultiert, dann wird dieser Wissen anwenden, um die Entscheidung zu Fällen. Würde er statt dem Treffen der Entscheidung alle benötigten Konzepte und Prädikate modellieren, so könnte das Programm dieses Problem in Zukunft bei ausreichender Datenlage vermeiden. Hierbei geraten wir allerdings schon bald in die Bereiche von künstlicher Intelligenz. Dass ein Programm schon erkennt, dass Wissen fehlt und dass daher eine Entscheidung nicht zu treffen ist, wäre Teil eines KI-Modells. Wenn man nun einem Programm bzw. einem sogenannten “Agenten” mit der Ontologie spezielle Verfahrenshinweise geben würde, wie mit den Daten der Ontologie umzugehen ist, dann könnte dieser Agent mit diesen Vorgehenshinweisen möglicherweise sein Ziel erfüllen. Agenten sind hierbei Programme, die ein Ziel und bestimmte Vorgehensweisen kennen, um dieses Ziel zu erreichen.

Ein anderes Beispiel: Eine Reisefirma stellt dem Webanwender einen Urlaubsplanungsagenten zur Verfügung. Dieser nimmt bestimmte Eingaben über die Art, den Zeitpunkt und die maximalen Kosten sowie bestimmte Umgebungsparameter als Grundlage für seine Recherchen. Dies könnte er mit einer Datenbankabfrage über alle erfassten Daten des Reiseportals machen, und eine Antwort zurückliefern. Oder aber er bedient sich einer Ontologie, die eine Reise modelliert, und versucht Anhand dieser alle einzelen Punkte der Reise zu planen. Wenn er 7 Tage “Tauchurlaub” und “mediterranes Klima” bei maximal 1500€ für 2 Personen in der Herbstferien als Eingabe bekommt, muss er zuerst alle Orte in mediterranem Klima finden, an denen man Tauchen kann, dann überprüfen, wieviel Geld die einzelnen Hotels für eine Woche und 2 Personen Urlaub nehmen. Aufgrund der Tatsache, dass ein Tauchurlaub gewünscht wird muss ausserdem noch ein Preis für’s Tauchen im jeweiligen Ort bestimmt werden. Dann könnten noch Randbedingungen abgefragt werden. Wenn beispielsweise das Urlaubsland das Prädikat benötigt hat und dies auf eine Instanz von Einreiseerlaubnis zeigt, dann muss dem Agenten klar werden, dass dies dem Anwender weitergeleitet werden muss, zusätzlich zu der Information, wo man diese Einreiseerlaubnis bekommen kann, insofern solche Daten modelliert sind.

Die Prozedur des Datenabfragens ist hierbei vielleicht in einer Wissensdarstellung namens http:www.tui.de/ontology/reiseplanung.owl gespeichert. Dies würde die Prozedurale Logik von der Programmierung des Agenten auf die Wissensdarstellung des Reiseanbieters verlegen, so dass externe Agenten leichter verstehen könnten, was man mit den semantischen Daten der Webseite anfangen kann. Vielleicht könnt mit solchen Daten irgendwann ein generischer Browser-Agent auf eine Internetseite stoßen und dem Benutzer anbieten, eine Reise zu planen. Davon sind wir allerdings noch sehr weit entfernt, fürchte ich. Vielleicht fürchte ich auch, dass wir davon gar nicht mehr soweit entfernt sind ;-)

Auf dem Weg dorthin

Nun will ich ja keine Doktorarbeit schreiben, sondern eine Diplomarbeit, und die geht nicht über 3 Jahre sondern über 6 Monate. Außerdem habe ich die Möglichkeit, diese bei RedDot zu schreiben, und diese produzieren ein Content Management System mit einem entsprechenden dahinter laufenden Serverprodukt. Über dieses können Redakteure Internetseiten für ihre Firma erstellen bzw. Inhalte bereitstellen, ohne dafür etwas von HTML, CSS, PHP, o. ä. verstehen zu müssen. Das bedeutet erstens, dass die Redakteure, die mit diesem System arbeiten, kein technisches Verständnis haben müssen und mit Sicherheit niemals das Wort Ontologie hören wollen, und zweitens, dass man mit diesem System vielleicht die Semantik relativ unbemerkt von der Welt im Web streuen kann, ohne dass es jemanden stört. Andererseits bedeutet das auch, dass die anzustrebende Domäne einer Ontologie nicht festzulegen wäre, denn ein Kunde von Reddot könnte Autos herstellen, Reisen anbieten oder vielleicht Fernsehen machen.

Meine bisherigen Ideen sind, vielleicht eine Semantik-gestützte Personen-Verwaltung zu entwerfen, oder aber eine semantische Dateiverwaltung. Die Personen-Idee habe ich ja oben bereits vorgestellt, diese wäre wahrscheinlich sehr gut geeignet, eine “gewöhnliche” Personenverwaltung zu ersetzen. Hier kann man sich beliebige Verknüpfungen zu Themenbereichen, bisherigen Erfahrungen, Interessensgebieten, Qualifizierungen, Kontakten, Freundschaften und vielem mehr vorstellen - im Gegensatz zu festen Textfeldern. Die Dateiverwaltung könnte ähnlich sein: Ein Bild oder Video könnte so ähnlich wie beim Tagging einem Thema oder Bereich zugeordnet werden, einem Ort an dem es geschossen wurde, oder einem Zeitpunkt oder Zeitbereich. Der künstlerische Hintergrund könnte angegeben werden, die Beziehung zu Personen oder anderen Objekten der realen Welt. Wenn man beides zusammen einsetzen würde könnte zum Beispiel auch das Video-Team abgebildet werden. Dann wären Fragen des Chefs wie “Hey Redakteur, besorge mir mal die E-Mailadressen alle Videoregisseure, die Videos zum Thema US-Wahlen gemacht haben, ich will die was fragen” nicht mehr mit einem ratlosen Gesichtsausdruck des Redakteurs zu beantworten, sondern mit einer Anfrage an ein entsprechendes Programm, das diese Beziehungen ermitteln kann. Ähnlich wie in Paralax werden dann alle Videos gesucht, die als Thema die US-Wahlen 2008 haben, von diesen die Redakteure, und von denen die E-Mailadressen. Zukunftsmusik? Na ja, mit Datenbanken ist sowas ja heutzutage prinzipiell auch denkbar. Wenn aber nun der Redakteur von der Autofirma in die Reisefirma wechselt und dort dieselbe Anfrage stellen kann? Oder man auf externe semantische Daten zurückgreifen will?

Na ja als zweite Idee wäre da die Modellierung eine speziellen Anwendungsdomäne für einen Kunden von Reddot denkbar, um erstmal die Möglichkeiten auszuloten, wie man solche Informationen in einem CMS überhaupt nutzen kann.

Auch eine Anbindung an Freebase oder eine andere Ontologie wäre als dritte Idee denkbar. Vielleicht kann ein Kunde seine Webinhalte mit dort vorhandenen Instanzen verknüpfen. So könnte man sich bei einem Autohersteller vielleicht vorstellen, dass er eine kleine Box oder Sidebar mit zusätzlichen Informationen zum Thema auf der aktuellen Seite anbietet. Diese Box könnte dann entweder auf ein konkret semantisch modelliertes Thema Freebase abfragen und zusätzliche Links anbieten oder Informationen darstellen. Oder aber die Seite nach Text durchsuchen, welcher zu modellierten Instanzen in Freebase passt, und die dazu hinterlegten Informationen abfragt. Auch könnte man sich vorstellen, dass die Redakteure nicht verfügbare Informationen über das CMS in Freebase einstellen können, so dass eine solche Infobox auch mit zusätzlichen externen Informationen aufwarten kann, falls noch keine Benutzer-modellierten Daten vorliegen. In jedem Fall sollten die einzelnen erstellten Internetseiten sie selbst und das behandelte Thema beschreiben, sowie eine Metadaten semantisch Hinterlegen, die ansonsten nur in die Datenbank des CMS fliessen würden.

Hilfe

Nun wo ich ein paar Einblicke vermittelt habe und meine Sichtweise der Situation dargestellt habe, hoffe ich, dass dem einen oder anderen unter euch vielleicht eine Idee gekommen sein könnte, was man sonst noch so im Rahmen einer Diplomarbeit machen könnte, wenn man ein weitreichendes CMS zur Verfügung hat und vielleicht die großartigen Ideen des Semantic Web nutzen will. Dann schreibt mir bitte einen Kommentar oder nehmt über mein Kontaktformular oder über ideen(at)ithoughts.de Kontakt mit mir auf. Ich würde mich sehr freuen und definitiv Rückmeldung geben :-)

You seem to be using an unsafe, outdated browser. Click here to install the world's fastest and safest browser for free! X