Semantic Web & Text-Mining

Dies ist ein kleiner Auszug aus meiner Abschlussarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.). Die Auszüge beschränken sich auf Abschnitte, die weder Fachdomäne noch Textmining behandeln. Die in diesen Abschnitten verwendete Literatur wird im Literaturverzeichnis am Ende dieser Seite referenziert.

Textmining von Webressourcen zur automatischen Erzeugung von vernetztem Content

Abschlussarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.)

1. Einleitung

Redaktionen von Internetportalen stehen vor der schwierigen Aufgabe ganze Massen von Inhalten zeitnah zu erfassen. Inhalte müssen von hunderten von Internetseiten, aus den sozialen Netzwerken und aus den elektronischen Kommunikationsmitteln recherchiert werden. Dabei ist längst nicht jede Information relevant und es gilt Relevantes von Unrelevantem zu trennen. Die Leser erwarten von den Inhalten neben der inhaltlichen Relevanz auch einen Neuigkeitswert.

Gleichzeitig müssen Internetportale gewährleisten, dass die Inhalte für die Leser auffindbar sind. Um geeignete Navigationsstrukturen anbieten zu können, müssen die Inhalte daher untereinander hochgradig vernetzt sein. Die Erwartungshaltung der Leserschaft ist, dass die nächste Information nur einen Klick entfernt ist. Welchen Link der Leser als nächstes wählt, oder ob er sich auf die Suche nach etwas ganz anderem macht und das Internetportal verlässt, hängt stark von der Qualität der angebotenen Links und den dahinter stehenden Inhalten ab. Es gilt zu ermitteln, welche Inhalte den Leser als nächstes interessieren könnten. Zusätzlich zum eigentlichen Inhalt werden Verweise auf weitere, thematisch passende oder ähnliche Inhalte ausgeliefert.

Diese Arbeit stellt eine erweiterbare Software vor, die Texte aus Webressourcen extrahiert, sie klassifiziert, auf Relevanz prüft und mit bereits bestehenden Inhalten vernetzt. Ziel ist es, Teile des redaktionellen Arbeitsablaufs zu automatisieren um den enormen Arbeitsaufwand bei der Recherche und dem Einpflegen von Inhalten zu reduzieren. Um dieses Ziel zu erreichen wendet die Software Methoden der Computerlinguistik und der künstlichen Intelligenz an.

[…]

4.2 Architekturmuster

Architekturmuster beschreiben die Struktur von Systemen als Ganzes [Sta09]. In diesem Kapitel wird auf die angewendeten Architekturmuster Dependency Injection, Schichten und Pipes & Filter eingegangen.

4.2.1 Dependency Injection

Dependency Injection fällt weder eindeutig unter Architekturmuster noch unter Entwurfsmuster. Gernot Starke spricht in [Sta09] von einem Entkopplungsmuster. Ziel ist es, die Abhängigkeiten zwischen konkreten Klassen zu entkoppeln. Konkrete Klassen hängen dabei lediglich von Schnittstellen, nicht aber von konkreten Klassen ab. Erst zur Laufzeit werden die Abhängigkeiten von einem Dependency-Assembler zusammengefügt.

Ein weiterer Vorteil von Dependency Injection ist die Konfigurierbarkeit. Welche konkrete Implementierung einer Schnittstelle zur Laufzeit verwendet wird, wird durch die Konfiguration bestimmt. Zudem werden die Beziehungen zwischen Objekten per Konfiguration festgelegt [Wol07].

Die Folge ist, dass die Schnittstellen der Anwendung eine höhere Bedeutung bekommen. Es findet eine Entkoppelung der Implementierungen der Schnittstellen statt, da sie nur noch von anderen Schnittstellen abhängen. Dies führt weiterhin dazu, dass die Implementierungen vollständig austauschbar werden.

Da die Anwendung als Netz von Objekten und deren Beziehungen untereinander konfiguriert wird, bedeutet Dependency Injection eine erleichterte Erweiterbarkeit und Reduktion der Anwendung. Die Konfiguration muss entsprechend um neue Komponenten erweitert werden. So ist es beispielsweise möglich, verschiedene Profile einer Anwendung als Konfiguration zur Verfügung zu stellen.

4.2.2 Schichten

In Software-Architekturen hat sich Schichtenbildung als ein klassisches Mittel zur Strukturierung etabliert [Sta09]. Jede Schicht definiert eine abstrakte Maschine, deren Maschinensprache über die von der Schicht bereitgestellten Dienste definiert wird. In dieser Anwendung werden zwei Schichten eingesetzt: die Persistenzschicht und die Geschäftslogikschicht.

4.2.2.1 Persistenzschicht

Eine Persistenzschicht kapselt die Details der Datenspeicherung gegenüber den übrigen Anwendungsteilen [Sta09]. Die Persistenzschicht verbirgt dabei alle Zugriffe auf die darunter liegenden Speichersysteme vollständig vor den anderen Schichten [OLW+ 08].

In dieser Anwendung wird das Entwurfsmuster Data Access Objects eingesetzt. Diese stellen eine Miniatur-Persistenzschicht dar [Sta09]. Dazu wird für jede Datenklasse und jedes Speichersystem ein Data Access Object implementiert. Eine Datenklasse enthält dabei lediglich die zu speichernden Daten ohne Geschäftslogik. Das Speichersystem kann beispielsweise das Dateisystem, eine relationale Datenbank, ein Java Content Repository, eine Graphendatenbank, ein Resource Description Framework Triplestore oder auch ein Representational State Transfer Webservice sein. Data Access Objects enthalten dabei keine Geschäftlogik und sollten für Multithreading-Umgebungen zustandslos implementiert werden [OLW+ 08].

In Verbindung mit Dependency Injection (vgl. Kapitel 4.2.1) erlaubt die Verwendung von Data Access Objects eine einfache Austauschbarkeit der Speichersysteme. Es müssen lediglich weitere Data Access Objects für ein alternatives Speichersystem implementiert und das neue Data Access Object per Konfiguration aktiviert werden. Es sind dazu keine Änderungen an den aufrufenden Klassen zu tätigen. Somit tragen Data Access Objects maßgeblich zur Entkoppelung bei und ermöglichen gleichzeitig eine Flexibilität bei der Auswahl der Speichersysteme. Die Flexibilität erlaubt im Übrigen auch die Nutzung einer Mischung verschiedener Persistenz-Technologien [Wol07].

Ein weiterer Vorteil liegt in der Wiederverwendbarkeit des Codes. Datenklassen ohne aktive Logik besitzen keine Abhängigkeiten und können damit in weiteren Anwendungen genutzt werden. Data Access Objects besitzen ebenfalls keine Abhängigkeiten außer zu den Datenklassen und Speichersystemen, für die sie geschaffen wurden. Auch für sie gilt, dass eine Wiederverwendbarkeit gegeben ist.

4.2.2.2 Geschäftslogikschicht

Die Geschäftslogikschicht kapselt die Geschäftslogik der Anwendung. Sie ist oberhalb der Persistenzschicht angesiedelt und nutzt deren Komponenten [OLW+ 08]. Auf die Komponenten der Geschäftslogikschicht wurde in Kapitel 4.1 eingegangen.

4.2.3 Pipes & Filter

Mit Pipes & Filter kommt ein weiteres Architekturmuster in dieser Anwendung zum Einsatz. Dabei handelt es sich um eine Folge von Verarbeitungseinheiten, die miteinander durch Datenkanäle verbunden sind [Sta09]. Die Komponente TextMiningPipeline greift auf dieses Architekturmuster zurück.

[…]

4.5 Wissensrepräsentation

Von besonderer Bedeutung ist die Wissensrepräsentation der Anwendung. Kapitel 2.1.4 weist auf den hohen Stellenwert des Expertenwissen bei der Recherche, Klassifikation, Relevanzbeurteilung und dem Finden von Relationen hin. Es stellt sich die Frage, wie dieses Wissen repräsentiert werden kann.

Es wurde entschieden, eine Ontologie für die Wissensrepräsentation einzusetzen. Nach [UMA04] eignen sich Ontologien zur Verbesserung von Suchsystemen, zur Navigation, zur Visualisierung sowie für die Integration heterogener Datenquellen. Dies fasst bereits einige Ansprüche zusammen, die an die Wissensrepräsentation gestellt werden. Weiterhin bieten Ontologien die Möglichkeit der Trennung zwischen Schema und Inhalten[UMA04].

[…]

Die Möglichkeiten, die sich durch dieses Modell ergeben sind vielfältig und erlauben eine computergestützte Wissensverarbeitung. So können zentrale Fragestellungen, die im Rahmen des Informationsportals auftreten, beantwortet werden.

[…]

Literaturverzeichnis

[OLW+ 08] Oates, Richard, Thomas Langer, Stefan Wille, Torsten Lueckow und Gerald Bachlmayr: Spring und Hibernate. Hanser, München, 2. Auflage, 2008.

[Sta09] Starke, Gernot: Effektive Software Architekturen – ein praktischer Leitfaden. Carl Hanser Verlag, München, 4. Auflage, 2009.

[UMA04] Ullrich, Mike, Andreas Maier und Jürgen Angele: Taxonomie, Thesaurus, Topic Map, Ontologie – ein Vergleich, 2004. http://www.ullri.ch/download/Ontologien/ttto13.pdf.

[Wol07] Wolff, Eberhard: Spring 2. dpunkt.verlag, 2. Auflage, 2007.

Leave a Reply