TagMaps – Erzeugen von semantischen Netzen im Web 2.0
Tags sind ein wichtiger, charakterisierender Faktor des Web2.0 und genauso sind dies TagClouds, doch das Konzept der Tags verhilft uns nicht zu einer semantischen Struktur mit der wir Assoziationen untereinander herstellen und visualisieren können, oder vielleicht doch?
Im Zuge meiner Recherche für meine Bachelorarbeit bin ich auf das Konzept der semantischen Netze gestoßen, einfach ausgedrückt: Wörter werden miteinander in Verbindung gesetzt und schaffen so ein dichtes Netz. Man kann damit durch Begriffe auf verwandte Begriffe schließen und so diesen Begriff, wenn er für einen neu ist, in sein eigenes Weltbild einordnen.
Als Beispiel: Jemand der keine Ahnung von der Erstellung von Webseiten hat, aber das Internet benutzt, hört den Begriff “HTML”. Im semantischen Netz springt er nun an die Stelle wo der Begriff “HTML” platziert ist und kann sich von dort durch das Netz “hangeln”. Er kann so zum Beispiel zum Punkt “Webseite” gelangen, denn “HTML” und “Webseite” sind miteinander assozziert. Sollte das noch nicht ausreichen um den Begriff für ihn einzuordnen, geht er noch einen Schritt weiter und kann so auf den Begriff “Internet” stoßen. Dieser Begriff ist dem Benutzer bekannt und wenn er das semantische Netz weiter durchsucht wird ihm vermutlich klar das er im Internet Webseiten besucht und diese aus “HTML” bestehen. Was das nun genau ist müsste sich der Benutzer selbst erarbeiten, sei es durch einen aufklärenden Artikel oder durch weitere Analyse des semantischen Netzes.

Vorteile semantischer Netze
- Kategorien oder Tags? Weder noch, Cluster!! – Wir “taggen” uns durchs Web2.0 und hoffen damit unsere Informationen später wiederfinden zu können oder es anderen zu ermöglichen unsere Informationen zu finden, doch optimal ist das nicht. Unser Gehirn spielt da nämlich nicht mit, ein Teil unseres Gehirns denkt nämlich genau in diesen semantischen Netzen. Zudem kommt noch hinzu das wir meist nicht präzise genug für Tags denken, als Beispiel:
- “Vertipper” – Falsch geschriebene Wörter – Falsch geschriebene Wörter lassen sich durch semantische Netze leichter ihrer richtigen Schreibweise zuordnen, durch die TagMap wird es aber auch möglich sein das man, ausgehend vom “vertippten” Tag, auf die richtigen Assoziationen gelangt, ohne erst die korrekt geschriebene Variante ansteuern zu müssen
Erstellen einer TagMap
Ich werde hier die groben Schritte erläutern die nötig sind, um eine TagMap (oder auch: semantisches-tag-basiertes-Netz) zu erstellen. Der Aufwand dürfte dabei nicht größer sein als der von einer TagCloud, die Möglichkeiten, gerade bei der Visualisierung und der Interaktion mit der TagMap, sind dafür viel größer. Grundvoraussetzung für eine TagMap ist natürlich ein Dienst, der Tags akzeptiert, dies könnten zum Beispiel Social Bookmarking Seiten sein, oder aber ein pfiffiges WordPress-Plugin was die vom Autor eingegebenen Tags, filtert und daraus eine TagMap erstellt.
1. Schritt – Datenbank
Wir nutzen die Datenbank-basierte Speicherung der TagMap, dazu legen wir zwei Tabellen an:

In der Tabelle “tags” speichern wir einfach redundanzfrei (keine doppelten) alle Tags die ihren Weg in unser System finden und die Tabelle “tagverbindung” erhält die Verbindungen der einzelnen Tags untereinander.
2. Schritt – TagMap anlegen
Tagged nun ein Benutzer einen Artikel oder einen Bookmark mit mehreren Tags, müssen wir in dieser Phase die Tags auftrennen und in der Datenbank abspeichern, ich mache dies anhand eines Beispiels:
Ich möchte den Webdesignblog bei einem Bookmark-Dienst ablegen:
Bookmark => webdesignblog
Tags => “webdesign, website, programmierung, webdesigner”
Somit habe ich für meinen Blog vier Tags vergeben, für jeden Tag wird eine Assoziation mit einem anderen der Tags in der Datenbank abgelegt, ergibt also in der Datenbank folgende Verbindungen:
webdesign – website
webdesign – programmierung
webdesign – webdesigner
website – programmierung
website – webdesigner
programmierung – webdesigner
Sollte eine Assoziation schon existieren, dann wird einfach nur die Gewichtung angepasst, zur Gewichtung mehr im 3. Schritt.
Jetzt gibt es hierbei zwei Probleme: Was macht man wenn man nur einen einzigen Tag vergibt (es ist also keine Assoziation möglich) und was passiert mit der Gewichtung bei sehr vielen Tags (soll die immer einen gleichen addierenden Wert haben oder soll dies varriert werden, jenachdem wieviele Tags verwendet werden)?
Zum zweiten Problem komme ich im 3.Schritt, das erste Problem läßt sich folgendermaßen lösen:
- wenn nur ein Tag angegeben ist, wird die Gewichtung aller Assoziationen, die diesen Tag enthalten, hochgesetzt
- oder man gibt auch den Tags eine Gewichtung (müsste in der Datenbank hinzugefügt werden) und setzt den Wert dieser Gewichtung hoch
- man ignoriert einzelne Tags und macht nichts
Die 3. Lösungsmöglichkeit bietet den Vorteil das sich die Gewichtung unserer TagMap durch einzelne Tags nicht verfälscht. Diese Gewichtung kann aber andererseits interessant sein für Cluster bzw. für eine Clusterbildung, wenn wir zum Beispiel bestimmen möchten, welches Tag das “Obertag” von vielen anderen Tags ist (Bsp.: Programmiersprachen kann das Obertag von “C++, Java, Visual Basic” usw. sein). Welches die beste Möglichkeit ist wird sich wohl erst bei einer konkreten Implementierung herausstellen, bzw ist abhängig vom Einsatzgebiet der TagMap.
3. Schritt – Gewichtung
Die Gewichtung liefert uns die Relevanz der bestehenden Assoziationen. Jede Assoziation hat eine Gewichtung und umso häufiger eine Assoziation verwendet wird, desto größer ist die Gewichtung dieser. Da kommt allerdings die Frage auf: soll die vergebene Gewichtung abhängig sein von der Anzahl der Tags die pro Artikel/Bookmark vergeben werden? Wenn ich also, wie unter Schritt zwei gezeigt, vier Tags vergebe, soll dann die Gewichtung pro Assoziation geringer sein als wenn ich ein Element mit nur 3 oder gar zwei Tags tagge? Ich halte dies für sinnvoll da man so das semantische Netz robuster macht gegenüber sehr vielen Tags. Eine mögliche Implementierung der Gewichtung könnte folgendermaßen aussehen:
So könnte man als Gewichtungswert folgende Wertung in Betrachtung ziehen:
- bei 2 Tags – 1 Assoziation = 0.5 (Gewichtung die hinzuaddiert wird)
- bei 3 Tags – 3 Assoziationen = 0.3
- bei 4 Tags – 6 Assoziationen = 0.15
- bei 5 Tags – 10 Assoziationen = 0.1
- bei 6 Tags – 15 Assoziationen = 0.06
- usw.
In dem Fall müsste man aber natürlich den Spaltentyp von Integer auf Double wechseln, um Fließkommazahlen zu ermöglichen.
Um die Zahl der Assoziationen dynamisch auch für mehrere Tags zu bestimmen, hab ich diese rekursiv arbeitende Funktion in PHP programmiert:
<?php
function rek_verbindungen($anzahl)
{
if($anzahl > 1)
$wert = rek_verbindungen($anzahl-1);
$wert += $anzahl-1;
return $wert;
}
//N = Anzahl der Tags
$N = 4;
echo rek_verbindungen($N);
?>
4. Schritt – Visualisierung, Interaktion und Einsatzgebiet
Wie man die Daten letztendlich präsentiert ist jedem selbst überlassen, ich kann mir da einige interessante, Ajax-basierte, Webanwendungen vorstellen, aber auch eine Integration in bestehende Blog-Softwaresysteme, für ein besseres Surferlebnis, ist sicher denkbar.
Semantische Netze gegen individuelle semantische Netze
Web2.0 heißt, der User steht im Vordergrund, doch prinzipiell ist das falsch, denn im Web2.0 steht die Masse im Vordergrund, zwei Beispiele:
- Wählt Google seine Ergebnisse, die mir präsentiert werden, anhand meiner Vorlieben? Nein, sondern anhand des Algorithmus der darauf optimiert ist die Ergebnisse zu finden, die den Großteil der Masse ansprechen, die Seiten die am relevantesten erscheinen. Wer sich ein bisschen mit SEO auskennt weiß das eingehende Links auf eine Information ein starkes Wertungskriterium darstellen. Wenn also viele(!) auf eine Seite (mit einem bestimmten Linktext oder einer Variation des Linktexts) verlinken, dann interpretiert dies Google als relevante Information (muss nicht genau so stimmen, aber ich denke es macht das Prinzip klar). Worauf ich eigentlich hinaus will, viele(!) oder auch die Masse ist dafür zuständig eine Information zu bewerten, nicht aber das Individuum. Wenn ich zum Beispiel eine Vorliebe für richtig schlechte, häßliche Seiten habe, die zudem ihre Informationen von Usability Kriterien her negativ “optimieren”, dann kann ich davon ausgehen das ich sie nicht unter den ersten Ergebnissen bei Google finden werde, einfach weil niemand darauf verlinkt.
- Das Beispiel der hier besprochenen TagMap macht es deutlich: Wenn alle User gemeinsam an einer TagMap werkeln, geht jegliche Individualisierung verloren. Als Coder interessiere ich mich natürlich eher für die “Geek”-Themen als jemand der sein Geld in einem Computer-fremden Umfeld verdient, dadurch kann sich die Gewichtung der TagMap negativ auf meine Vorlieben auswirken.
Nehmen wir als Beispiel einen Bäcker und einen Web-Entwickler die im englischsprachigen Raum unterwegs sind. Der Programmierer entdeckt einen Artikel der folgenden Titel trägt: User authentification on web applications, also “Benutzerauthentifizierung in Web-Anwendungen”. Da dieser Artikel einen umfangreichen Abschnitt zum Thema “Cookies” beinhaltet, tagged der Programmierer diesen mit dem Tag “Cookies” und zusätzlich noch mit “web, application, authentification”. Ein paar Kilometer vom Arbeitsplatz des Programmierers entfernt sitzt der Bäcker, der im Internet nach einem neuen Rezept für Schokoladen Kekse sucht und auf diesen Artikel stößt: Recipes for Chocolate Cookies. Klar das der Artikel ebenfalls mit “Cookies” getagged wird, zusätzlich aber noch mit “chocolate, recipes”. Die Individualisierung ist dann natürlich hin, denn das Tag “Cookies” ist nun mit computer-affinen und computer-fremden Tags assozziiert, was aufgrund des semantischen Netzes auch korrekt ist. Da im Konzept der TagMap allerdings eine Gewichtung mit inbegriffen ist, kann dies für “Interessen-Minderheiten” ein Problem darstellen. Schaut man sich nämlich für den Begriff “Cookies” die Google Ergebnisse an, findet man erstmal nur computer-affine Links, die Minderheiten der Bäcker in diesem Bereich (setzen von Links) wirkt sich also negativ auf die Relevanz ihrer Suchergebnisse aus.
Diese beiden Beispiele sollten die Vorteile individueller TagMaps deutlich machen, je individueller die Implementierung einer TagMap für einzelne User ist, desto relevanter wird die TagMap und desto nützlicher für die User im einzelnen. Einem Programmierer werden so beim Begriff “Cookies” hauptsächlich Computer-Affine Verbindungen angezeigt (dies erfolgt aufgrund der Gewichtung), einem Bäcker eher “Back”-affine.
Die Nachteile von individuellen semantischen Netzen liegen in der Performance und den Ressourcen begründet. Für jeden Benutzer muss ein eigenes semantischen Netz in der Datenbank (ist dies die optimale Speicherform für ein semantisches Netz?) abgelegt werden, dadurch reduziert sich automatisch die Performance, da größere Mengen an Daten nach den für den User individuellen Daten durchsucht werden müssen.
Individuelle semantische Netze werden die Zukunft des Webs bestimmen und werden entscheidend dazu beitragen wie Benutzer Informationen suchen und vorallem welche Informationen sie finden werden.
Weiterführende Gedanken:
Sollte man die TagMap für einen User zentral im Web ablegen und diese TagMap für andere Webseiten/Dienste zugreifbar machen (zum Beispiel anhand eines WebServices) um das Weberlebnis des Users auf anderen Plattformen zu maximieren? Könnte dies der Anfang des Web3.0 sein, in dem Webseiten gegenseitig voneinander profitieren oder sich gar steuern/beeinflußen, als oberstes Ziel “die Mensch-Computer-Interaktion zu maximieren”?
Muss jeder User bei Null anfangen oder wird es TagMaps geben die grundlegende Strukturen aufweisen die für alle Benutzer oder zumindet für große Benutzergruppen standardmäßig sind?
Werden sich die Konzepte des eLearnings dadurch weiterentwickeln oder gar verändern?
Verwandte Artikel
- Optimales Stylesheet erzeugen
- Valide Webseiten erzeugen und Tabellen mit Stylesheets den Kampf ansagen
- Valide Webseiten erzeugen und Tabellen mit Stylesheets den Kampf ansagen
- Kostenlose Schriftarten
- Achtung Hacker! – Maßnahmen zum Schutz der Datenbank
- Pingback: Tags an den Tag gebracht - S-O-S SEO Blog on März 28, 2007
- Pingback: The Tryary WS » TagMaps on März 28, 2007
- Pingback: links for 2007-03-31 | Patrick Kempf on März 31, 2007
- Pingback: links for 2007-04-03 | Patrick Kempf on April 3, 2007
- Pingback: shagg-blog » Unser Konzept – oder: Vom social bookmarking zum Webkatalog on April 4, 2007
10 Kommentare
Tut mir leid, die Kommentarfunktion für diesen Beitrag ist geschlossen.

Super Artikel! Regt zum Nachdenken an
Ein interessanter Artikel.
An sich beschreibst du ja neuronale Netze, bei denen auch die Gewichtung eine Relevanz zueinander abbildet.
Interessant finde ich auch die Übertragung auf den Bereich des social web. Regt wirklich zum nachdenken an.
Allerdings:
Das semantic web, was wohl die Mutter der beschriebenen semantischen Netze ist, arbeitet bewußt mit Ontologien, um eben Dinge wie das beschriebene Cookies Beispiel zu verhindern.
Zur Unterstützung wäre noch eine Taxonomie hilfreich.
Interessante Punkte, werde mich aufjedenfall mal weiter einarbeiten und vielleicht fällt mir dann noch was ein wie man die TagMap weiter stabilisieren /zutreffender machen kann
Sehr guter Artikel, stimmt wirklich nachdenklich … danke für die Anregungen ;-)
Cookies, Apple, … Guter Grund für die Forcierung von microformats!
Der Trend geht zur 2-, 3-, 4-Wortsuche. Wie ich beobachten kann, ist die Kombination von individuellen tags auf einer Webseite mit den Suchergebnissen von Google (= eingehender relevanter traffic) sehr erfolgreich.
Beides zusammen gemischt ergibt sich eine sehr interessante Situation für persönliche semantische Netze ohne die Suchmaschinen beiseite zu lassen. Damit erledigt sich auch ein wenig die Problematik der Ressourcen, weil die Datenstruktur in microformats individuell vom ‘Publisher’ erzeugt wird und die individualisierte Suche den Spezialisten überlassen wird. Yahoo pipes u.Ä. könnte ein ideales Betätigungsfeld werden, um mit solchen Bewertungs- und Suchkreisläufen produktiv zu spielen.
Ich finde die Beispielführung etwas verwirrend. Auf der einen Seite gibt es diejenigen die die TagMap implizit erzeugen und auf der anderen Seite die welche die TagMap nutzen (wobei beide Gruppen sicherlich auch Menschen aus der jeweils anderen enthalten). Zum anderen die globale Suche/Navigation sowie die Suche/Navigation innerhalb einer spezifischen Webseite.
Da die TagMap aber über keinerlei maschinell verarbeitbare Bedeutung innehat scheidet sie für eine globale Suchinteraktion aus (siehe das beschriebene Cookieproblem). Es bleibt also noch der Einsatz in einem räumlich beschränkten Gebiet bspw. ein Blog. Hier kann eine TagMap sicherlich die Zugänglichkeit zu Inhalten unterstützen. Doch bleibt das Problem das der Bäcker das Blog über Schokoladen Cookies erstmal hätte finden müssen, in den Indextiefen einer Suchmaschine. Gibt es dann auch noch ein zweites Cookie-Blog, welches aber eine vollkommen andere TagMap verwendet wird die Informationssuche für den Nutzer wieder verkompliziert und im Grunde nur auf eine andere Ebene verschoben.
Geht man davon aus, dass innerhalb eines fachspezifischen Blogs nur eine endliche (teilweise auch sehr beschränkte) Menge an Tags verwendet wird, ist das Netz zudem recht schnell gefüllt und es verschieben sich nur noch die Gewichtungen. Also ist der Autor oder Tag-vergebende auch noch dazu angehalten teilweise vielfältiger oder präziser zu taggen.
Was mir beim Schreiben dieses Kommentars überhaupt einfällt, die Netzstruktur ist, zwar ohne Gewichtung, schon vorhanden denn in dem Moment wo ich einen Beitrag mit Tags versehe baut sich das Netz über die n-1 Beziehung zwischen Beitrag und Tags das Netz auf. Ok, die Gewichtung fehlt noch, wobei man diese ggf. on-the-fly erzeugen könnte.
Ich glaube das leider nur etwa ein drittel meiner Gedanken den Weg in diese kleine Textarea gefunden hat, vielleicht kann man dennoch nachvollziehen was ich ausdrücken wollte.
In meinen Augen also eher Web2.1, solange man diese Daten nicht sinnvoll weiterverarbeiten kann sind sie nur eine andere Darstellungsform von Tags.
Sagt man wirklich das im Web2.0 die Nutzer im Vordergrund stehen? Du sagst zwar das es eher die Masse ist ist, aber zum einen sind es doch die von den Nutzern erstellen Inhalte die im Vordergrund stehen und zum anderen finde ich Google als Beispiel etwas ungünstig gewählt.
Grüße,
Lars
Uff, umfangreicher Kommentar :)
Ich denke in der TagMap wird nicht sehr viel semantik verankert, aber immernoch mehr als bei reinen Tags. Diese können zwar in einem Artikel miteinander assoziiert werden (bspw. wenn man einen Artikel mit 4 Tags versieht stehen diese in Zusammenhang) allerdings stehen diese nicht im Zusammenhang mit anderen Artikeln. Man kann natürlich argumentieren das die sehr wohl im Zusammenhang stehen, denn ein Tag in einem Artikel, verwendet in einem anderen Artikel, dann sind sie assoziiert, aber das trifft ja dann erstmal nur zu, wenn man den absolut identischen Tag verwendet.
Vielleicht können TagMaps folgendes Problem lösen: ich tagge einen Artikel mit SEO, einen anderen mit Suchmaschinenoptimierung und wieder einen anderen mit search engine optimization, jemand der in meinem Blog dem Tag “SEO” folgt, bekommt Artikel angezeigt, die alle 3 Tags umfassen, oder sogar noch weitere die mit diesen Tags in Verbindung stehen (Filterung anhand der Gewichtung der Assoziation).
Ich hab mir mal “Topc Maps” angeschaut, und da wird klar wieviele Regeln und Konstrukte nötig sind, um etwas wirklich semantisch abzulegen, die TagMaps sind kein Ersatz für sowas, viel mehr eine bessere Form der Tag-Cloud (meine Meinung).
Das mit dem Web3.0 darf man nicht zu ernst nehmen, ich finde sogar den Begriff des Web2.0 unsinnig, aber ich denke wenn man es begrifflich manifestiert, ist die Semantik ein bedeutender Part des Web3.0 und die User sind ein bedeutender Part der Semantik :)
Ganz klar das die TagMap mehr Beziehungen als reine Tags abbilden kann. Die Assoziation mehrerer Tags über Artikel hinweg ist ja das was ich schon angesprochen habe. Auch hast du Recht, dass das nur klappt wenn man identische Tags einsetzt.
Doch das Beispiel wie du es abringst hat einen Schwachpunkt, deine TagMap wird ja aus den Tags generiert welche du einem Artikel mit gibst. Hat man nun einen Artikel mit “SEO”, einen mit “Suchmaschienenoptimierung” und einen weiteren mit “search engine optimization” lässt sich mit dem von dir erklärten Verfahren keine Beziehung zwischen den Artikeln aufbauen. Zumindest habe ich das Verfahren so verstanden.
Den Vergleich zur Tag-Cloud hatte ich in meinem ersten Kommentar auch erst stehen, wir scheinen also das gleiche darin zu sehen.
Mit den WebX.Y Begriffen kann ich dir nur Recht geben, ist wirklich ein (fast) aussagen loses Buzzword, zumindest in den meisten Verwendungen zumal sich O’Reilly vermutlich schon was dabei gedacht hat. (Hoffen wir es). Die ganz Flinken betiteln ja die Kombination aus semantic und social web als das weltfriedenbringende Web3.0. Sind eh alles nur Namen… und die sind Schall und Rauch, von daher nicht viel wert.
Recht hast du, wenn ich bedenke wie populär der Dienst “Twitter.com” ist und wenn das das “Web2.0″ ist, will man vielleicht garnicht zum WebX.0 vorrücken ;)
Was für eine kuroise Anwendung. Aber daran zeigt sich wieder einmal wie sehr sich die Menschen im Netz zur Schau stellen. In Verbindug mit semantischen Beschreibungen könnte man dann maschinell die Tagesabläufe der Nutzer erstellen und verarbeiten. Was für Geschäftsmodelle sich da ergeben. Nicht nur personalisierte Werbung sondern auch noch zeitlich differenziert.
Vielleicht ist die Welt morgen eine Bessere.