Entwicklung eines Expertensystems zur automatischen Erstellung

Transcription

Entwicklung eines Expertensystems zur automatischen Erstellung
Entwicklung eines Expertensystems zur
automatischen Erstellung effizienter
Information-Extraction-Pipelines
von
Mirko Rose
Fakultät für Elektrotechnik, Informatik und Mathematik
Warburger Straße 100
33098 Paderborn
Entwicklung eines
Expertensystems zur
automatischen Erstellung
effizienter
Information-Extraction-Pipelines
Master-Arbeit
im Rahmen des Studiengangs Informatik
zur Erlangung des Grades
Master of Science
von
Mirko Rose
Gebrüder-Grimm-Straße 6
33154 Salzkotten
vorgelegt bei
Prof. Dr. Gregor Engels
und
Dr. Theodor Lettmann
Paderborn, April 2012
Erklärung
Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer
als der angegebenen Quellen angefertigt habe und dass die Arbeit in gleicher oder
ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegen hat und von dieser als Teil einer Prüfungsleistung angenommen worden ist. Alle Ausführungen, die
wörtlich oder sinngemäß übernommen worden sind, sind als solche gekennzeichnet.
Ort, Datum
Unterschrift
v
Zusammenfassung
In natürlichsprachigen Texten verborgene Informationen automatisiert sichtbar zu
machen ist die Aufgabe der Information Extraction. Die Ergebnisse der einzelnen
Algorithmen der Information Extraction bauen dabei größtenteils aufeinander auf.
Daher werden diese Algorithmen üblicherweise in einer sogenannten InformationExtraction-Pipeline (IE-Pipeline) sequentiell angeordnet und ausgeführt. Der Aufbau dieser Pipeline erfordert ein Wissen und Verständnis über die vielfältigen
Abhängigkeiten zwischen den einzelnen Algorithmen. Hinzu kommen Anforderungen an die Qualität der zu konstruierenden Pipeline hinsichtlich ihrer Effektivität
und Laufzeiteffizienz. Diese Anforderungen müssen bei der Auswahl der Algorithmen für die Pipeline beachtet werden. Die manuelle Erstellung von IE-Pipelines
erfordert daher einen großen Aufwand. Das macht sie zeitaufwendig und damit teuer. In dieser Arbeit wird deshalb ein automatisiertes Verfahren zur Konstruktion
von IE-Pipelines in Form eines Expertensystems entwickelt. Das Expertensystem
berücksichtigt dabei für seine Arbeit alle eben genannten Aspekte zur Konstruktion von effizienten und effektiven IE-Pipelines.
vii
Inhalt
1 Einleitung
1
2 Grundlagen
2.1 Expertensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Aufgabenbereiche von Expertensystemen . . . . . . . . . .
2.1.2 Architektur von Expertensystemen . . . . . . . . . . . . .
2.2 Formale Wissensrepräsentation . . . . . . . . . . . . . . . . . . .
2.2.1 Formen der Wissensrepräsentation . . . . . . . . . . . . .
2.2.2 Ontologien und Wissensbasen . . . . . . . . . . . . . . . .
2.3 Schlussfolgerungsverfahren in Expertensystemen . . . . . . . . . .
2.3.1 Schlussfolgern in OWL-Ontologien . . . . . . . . . . . . .
2.3.2 Planungsverfahren . . . . . . . . . . . . . . . . . . . . . .
2.4 Information Extraction . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Die Domäne Information Extraction . . . . . . . . . . . .
2.4.2 Information-Extraction-Pipelines . . . . . . . . . . . . . .
2.4.3 Effizienz und Effektivität im Bereich Information Extraction
5
5
6
6
9
10
12
17
17
19
30
30
32
35
3 Stand der Technik
3.1 Übersicht über existierende Expertensysteme . . . . . . . . . . . .
3.2 Effiziente Information-Extraction-Pipelines . . . . . . . . . . . . .
3.3 Automatische Konstruktion von Information-Extraction-Pipelines
3.3.1 Im Umfeld Information Extraction . . . . . . . . . . . . .
3.3.2 Ähnliche Arbeiten aus anderen Bereichen . . . . . . . . . .
41
41
44
47
47
50
4 Konzeptueller Lösungsansatz
4.1 Konstruktion der Information-Extraction-Pipeline . . . . . . . . .
4.1.1 Untersuchung von Planning und Reasoning zur Konstruktion der IE-Pipeline . . . . . . . . . . . . . . . . . . . . . .
4.1.2 Planungsproblem der Konstruktion der IE-Pipeline . . . .
4.1.3 Lösungsansatz des Algorithmenauswahlproblems . . . . . .
4.1.4 Topologische Sortierung des vom Planer erzeugten Abhängigkeitsgraphen . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.5 Zusätzliche Filter zur Erfüllung von Randbedingungen . .
4.1.6 Ausführung der IE-Pipeline zum Erhalt der Ergebnisse . .
4.2 Die Wissensbasis des Expertensystems . . . . . . . . . . . . . . .
4.2.1 Konzept der entwickelten Ontologie . . . . . . . . . . . . .
53
55
57
58
65
72
78
80
81
81
ix
Inhalt
.
.
.
.
.
.
86
87
88
89
90
91
5 Realisierung
5.1 Vorstellung des eingesetzten IE-Frameworks . . . . . . . . . . . .
5.2 Importieren der Informationen des eingesetzten IE-Frameworks . .
5.3 Zusätzliche Elemente der Wissensbasis . . . . . . . . . . . . . . .
5.4 Anpassungen an der Berechnung und Ausführung der IE-Pipeline
5.4.1 Realisierungsaspekte der Berechnung der IE-Pipeline . . .
5.4.2 Realisierungsaspekte der Ausführung der IE-Pipeline . . .
93
93
95
97
99
99
103
4.3
4.2.2 Begründung für eine Ontologie als Wissensbasis
4.2.3 Hinzufügen von neuem Wissen in die Ontologie
4.2.4 Kapselung der Ontologie durch ein Datenmodell
Anfragen an das Expertensystem . . . . . . . . . . . .
4.3.1 Eingaben in das Expertensystem . . . . . . . .
4.3.2 Erklärungen von Seiten des Expertensystems . .
6 Implementierung
6.1 Implementierung der Expertensystemarchitektur . . .
6.1.1 Implementierungsdetails der Ontologie . . . .
6.1.2 Implementierungsdetails des Datenmodells . .
6.1.3 Implementierungsdetails der Berechnung und
der IE-Pipeline . . . . . . . . . . . . . . . . .
6.2 Möglichkeiten zur Erweiterung des Gesamtsystems . .
6.2.1 Wechseln des IE-Frameworks . . . . . . . . . .
6.2.2 Erweiterung der Ontologie . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
107
. . . . . . . 107
. . . . . . . 110
. . . . . . . 111
Ausführung
. . . . . . . 112
. . . . . . . 114
. . . . . . . 114
. . . . . . . 115
7 Evaluierung
117
7.1 Evaluierung der Funktionalität des entwickelten Expertensystems 117
7.1.1 Analyse einer berechneten IE-Pipeline . . . . . . . . . . . 119
7.1.2 Evaluierung des Lösungsansatzes des Algorithmenauswahlproblems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.1.3 Evaluierung des Filteransatzes . . . . . . . . . . . . . . . . 126
7.2 Evaluierung des Problems der nicht vollständigen Maximum Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8 Zusammenfassung und Ausblick
129
Anhang
A Tabellen
135
B Abbildungen
141
C UML-Diagramme
147
D Inhalte der beigefügten DVD
157
x
Inhalt
Literatur
159
xi
Abbildungsverzeichnis
2.1
2.2
2.3
2.4
2.5
2.6
Architektur eines Expertensystems [Pup91] . . . .
Beispielontologie der Domäne Computer . . . . .
Blocksworld im Zustand Zustand0 . . . . . . . .
Zustandsraumgraph für das Blocksworld Beispiel .
Topologische Sortierung eines Beispielgraphen . .
Beispiel eines partiellen Teilplans . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
7
14
20
24
26
28
4.1
4.2
4.3
4.4
4.5
4.6
4.7
Architektur des Expertensystems . . . . . . . . . . . . . . . . .
Berechnung der IE-Pipeline . . . . . . . . . . . . . . . . . . . .
Durch Benutzer wählbare Priorisierungen . . . . . . . . . . . . .
Beispiel DAG mit zwei möglichen topologischen Sortierungen . .
Ein Beispieldurchlauf der eingesetzten topologischen Sortierung.
Resultierende Pipeline aus gegebenem partiellen Plan . . . . . .
Ontologie des Expertensystems . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
54
64
68
73
77
78
82
5.1
5.2
Übersetzung einer fiktiven UIMA-Typenhierarchie in Ontologieform 96
Ein fiktiver Algorithmus Umsatzaussagenklassifizierer in Ontologieform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
Aktivitätendiagramm des internen Arbeitsablaufs des Expertensystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6.1
6.2
6.3
Architekturübersicht des Expertensystems . . . . . . . . . . . . .
Schnittstelle des Expertensystems . . . . . . . . . . . . . . . . . .
Die Komponenten des ProblemSolver . . . . . . . . . . . . . . . .
108
109
113
7.1
7.2
7.3
7.4
Abhängigkeitsgraph nach Planung . . . . . . .
Berechnete Evaluierungspipeline . . . . . . . .
Berechnete Evaluierungspipeline mit Fokus auf
Berechnete Evaluierungspipeline mit Textfilter
.
.
.
.
121
122
124
126
B.1 Im Expertensystem benutzte Annotationstypenhierarchie als Klassendiagramm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.2 Bildschirmoberfläche der Interviewerkomponente (1) . . . . . . . .
B.3 Bildschirmoberfläche der Interviewerkomponente (2) . . . . . . . .
B.4 Bildschirmoberfläche der Erklärungskomponente . . . . . . . . . .
B.5 Bildschirmoberfläche der gefundenen Ergebnisse . . . . . . . . . .
142
143
144
145
146
C.1 Klassendiagramm des Datenmodells für das Package type . . . . .
148
. . . . . . .
. . . . . . .
Effektivität
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
xiii
Abbildungsverzeichnis
C.2
C.3
C.4
C.5
C.6
C.7
C.8
xiv
Klassendiagramm des Datenmodells für das Package algorithm . . 149
Klassendiagramm des Datenmodells für das Package qualityCriterion150
Klassendiagramm des Datenmodells für das Package filter . . . . . 151
Klassendiagramm der Wissensbasis . . . . . . . . . . . . . . . . . 152
Klassendiagramm der OntologyImporter -Komponente . . . . . . . 153
Klassendiagramm der ProblemSolver -Komponente . . . . . . . . . 154
Sequenzdiagramm mit Beispielablauf in der Problemlösungskomponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Tabellenverzeichnis
2.1
Beziehung zwischen manueller und algorithmischer Annotation [SR02] 37
4.1
Datatype Properties der Ontologie . . . . . . . . . . . . . . . . . .
85
5.1
5.2
Erklärung der UIMA-Begriffe . . . . . . . . . . . . . . . . . . . .
Gütekriterien in der Ontologie . . . . . . . . . . . . . . . . . . . .
94
98
6.1
Beispielmethoden der Ontologieschnittstelle . . . . . . . . . . . .
110
7.1
7.2
Die in der Pipeline Πeval vorkommenden IE- und NLP-Algorithmen 118
Laufzeitwerte für Teile des Expertensystems . . . . . . . . . . . . 123
A.1 OWL-Konstruktoren in Beschreibungslogik (DL) [BHS07] . . . . . 136
A.2 OWL-Axiome in Beschreibungslogik (DL) [BHS07] . . . . . . . . 136
A.3 Die vom Expertensystem verwendbaren IE- und NLP-Algorithmen. 137
xv
Algorithmenverzeichnis
1
2
Pseudocode Vorwärtssuche (vgl. [NGT04]) . . . . . . . . . . . . .
Pseudocode Partial Order Planning (vgl. [Wel94]) . . . . . . . . .
25
27
3
4
5
6
7
8
Pseudocode für die Berechnung der IE-Pipeline . . . . . . . . .
planPipeline(Actions A, Goals G, Constraints C) . . . . . . .
selectBestAction(Subgoal (p, a), Actions A, Constraints C) .
getBestActions(Actions A, Quality Criterion q) . . . . . . .
getValue(Action a, Quality Criterion q) . . . . . . . . . . . . .
topologicalSort(Partial Plan partialP lan) . . . . . . . . . .
62
62
69
69
70
75
.
.
.
.
.
.
xvii
1 Einleitung
Das Finden von Informationen in Texten, welches über eine bloße Stichwortsuche hinausgeht, ist von allgemeinem Interesse. Die meisten Dokumente sind allerdings von Menschen für Menschen geschrieben worden. Sie enthalten eine Vielzahl
von Informationen in Fließtextform. Die Informationen sind daher nicht explizit
gekennzeichnet, sondern ergeben sich erst aus dem Zusammenhang und den Beziehungen der einzelnen Textteile zu- und untereinander. Diese Zusammenhänge
können sehr komplex sein und die Komplexität natürlicher Sprache erschwert zudem noch ihre Aufdeckung.
Ein Wirtschaftsanalyst könnte zum Beispiel Informationen benötigen, die Marktvorhersagen betreffen. Eine solche Vorhersage ist beispielsweise die Aussage eines
Unternehmens, mit welchem Umsatz es in Zukunft rechnet (vgl. [SMGW05]). Der
Analyst verwendet diese Informationen, um erfolgreicher auf dem Aktienmarkt
agieren zu können. Wirtschaftsmeldungen auf verschiedensten Webseiten sind die
Quelle seiner Informationen. Allerdings müssen alle diese Artikel mühsam von
ihm gelesen werden, um die gesuchten Marktvorhersagen zu identifizieren. Bei
der großen Menge an Wirtschaftsmeldungen jeden Tag in vielen verschiedenen
Sprachen, hat dies einen sehr großen Zeitaufwand zur Folge, wenn es überhaupt
für eine Einzelperson schaffbar ist. Aus diesem Grund wurden sogenannte TextMining-Computeranwendungen entwickelt. Sie entlasten den Menschen, indem sie
versuchen, die gewünschten zunächst unstrukturierten Informationen automatisch
aus Texten zu extrahieren und zu strukturieren und sie damit für einen einfachen
und schnellen Zugriff verfügbar zu machen.
Die Komplexität der Aufgabe macht die maschinelle Verwertung und Analyse
der Texte zu einer Herausforderung. Sätze müssen erkannt und korrekt in ihre
Bestandteile wie Subjekte und Verben zerlegt und Informationen, wie Geldaussagen und Unternehmensnamen, identifiziert werden. Für jede dieser Teilaufgaben
existieren eigene Algorithmen. Diese Algorithmen finden und strukturieren die
in natürlichsprachigem Text vorkommenden unstrukturierten Informationen und
lassen sich damit in den Aufgabenbereich der Information Extraction einordnen.
Die Algorithmen der Information Extraction bauen bei ihren Analysen größtenteils aufeinander auf. So kann für die Identifizierung von Firmennamen eine vorherige Erkennung von Sätzen und deren Sub- und Objekte notwendig sein. Das
Fehlen dieser Informationen kann dazu führen, dass der die Firmennamen erkennende Algorithmus seine Analyse nicht durchführen kann. Die Reihenfolge der
Ausführung der Algorithmen ist daher von großer Bedeutung. Aus diesem Grund
werden die Algorithmen in der Information Extraction üblicherweise in einer sogenannten Information-Extraction-Pipeline (IE-Pipeline) angeordnet, um eben jene
1
1. Einleitung
Abhängigkeiten zwischen den Algorithmen berücksichtigen zu können. Die Algorithmen erweitern dabei sukzessiv die verfügbare Menge an Informationen für
einen Text, um das Ziel einer IE-Pipeline zu erfüllen. Ein solches Ziel könnte etwa
die Extraktion von Marktvorhersagen aus Texten sein. Nach der Ausführung einer
solchen IE-Pipeline liegen dann die gesuchten Informationen vor.
Die Konstruktion einer IE-Pipeline ist aber keineswegs trivial. Dazu müssen
zuallererst die Abhängigkeiten zwischen den einzelnen Algorithmen identifiziert
und beachtet werden. So gilt es für jeden Algorithmus festzustellen, welche schon
vorliegenden Informationen er für seine erfolgreiche Ausführung benötigt und welche weiteren Informationen dann nach seiner Ausführung zusätzlich bereitstehen.
Die alleinige Betrachtung der Ein- und Ausgaben“ der Algorithmen reicht al”
lerdings nicht aus. Es kann vorkommen, dass verschiedene Algorithmen für die
gleiche Analyse implementiert worden sind. Sie liefern die gleichen Informationen,
unterscheiden sich aber hinsichtlich anderer Parameter, wie ihrer Effizienz und
Effektivität. Die präzise Abarbeitung eines Textes kann zum Beispiel sehr lange dauern. Oft reicht es aber aus, auf einen Teil der gesuchten Informationen zu
verzichten, wenn die anderen Informationen nur schnell genug gefunden werden.
Gerade bei großen Textmengen, wie sie zum Beispiel im World Wide Web vorliegen, ist die schnelle Suche nach Ergebnissen oft wünschenswerter als das Auffinden
von allen möglichen Ergebnissen. Dies gilt vor allem dann, wenn auf Basis der gewonnen Informationen zeitnahe Entscheidungen getroffen werden sollen, wie es
bei dem Eingangsbeispiel durch die Berücksichtigung von Marktvorhersagen für
das erfolgreiche Agieren auf dem Aktienmarkt der Fall wäre. Hier kann es zusätzlich notwendig sein, dass nur bestimmte Informationen verfolgt werden, etwa nur
Informationen über bestimmte Branchen. Eine nachträgliche Filterung der Ergebnisse wäre demnach notwendig. In anderen Fällen kommt es aber gerade auf die
Güte und Menge der Ergebnisse an. Dies gilt zum Beispiel bei der Extraktion von
bio-medizinischen Informationen aus Texten, die dann zur einfacheren Weiterverarbeitung in eine Datenbank geschrieben werden (vgl. [HFM+ 05]).
Das bedeutet, der Experte in der Domäne Information Extraction muss bei der
Konstruktion einer IE-Pipeline immer auch die zusätzlichen Randbedingungen
hinsichtlich der Effizienz und Effektivität der entstehenden IE-Pipeline berücksichtigen. Das Ziel ist demnach nicht nur, eine korrekte IE-Pipeline zu bauen,
die die gewünschten Ergebnisse liefert, sondern dabei auch die Anforderungen an
deren Qualität sicherzustellen.
Die große Anzahl an unterschiedlichen Algorithmen, mit verschiedenen benötigten und erzeugten Informationen sowie deren unterschiedliche Effizienz und Effektivität, macht die manuelle Planung und Entwicklung von IE-Pipelines zeitaufwendig und damit teuer. Hier kann ein automatisiertes Expertensystem helfen,
welches den Experten bei dieser Arbeit entlastet und für ihn die Konstruktion
von IE-Pipelines durchführt. Der Computer berücksichtigt dabei das vorhandene
Wissen über die zur Verfügung stehenden Algorithmen zum Bau der IE-Pipeline.
Außerdem bezieht er die vom Anwender gesetzten Randbedingungen mit ein, um
automatisch eine passende effiziente oder effektive IE-Pipeline aufzubauen. Auch
2
die Ausführung der IE-Pipeline auf einer zu analysierenden Menge an Texten
kann von dem Expertensystem durchgeführt werden. Anschließend werden dann
die erzielten Ergebnisse aggregiert und dem Anwender präsentiert.
Dieses Expertensystem ersetzt damit die manuelle Erstellung. Der Computer
kann die Aufgabe in weit weniger Zeit lösen. Dadurch werden die Kosten gesenkt.
Ein weiterer Vorteil ist, dass auch Nicht-IE-Experten das System ohne Expertenwissen verwenden können. Ein bestehendes Informationsbedürfnis wird in den
Computer zusammen mit einer Menge zu untersuchender Texte eingegeben. Das
Expertensystem trägt daraufhin automatisch alle in der Textmenge vorhandenen,
gewünschten Informationen zusammen und liefert sie anschließend an den Anwender zurück.
Zielsetzung
Diese Masterarbeit verfolgt das Ziel, ein Expertensystem für die automatische
Konstruktion und Ausführung von IE-Pipelines zu entwickeln. Dabei gilt es, die
verfolgten Ziele der zu erstellenden IE-Pipeline in Form der gesuchten Informationsart, zum Beispiel Marktvorhersagen, zu berücksichtigen. Neben der dadurch
sichergestellten korrekten Arbeitsweise der Pipeline ist aber auch deren Effizienz und Effektivität wichtig. Der Benutzer des Expertensystems soll daher eine
Präferenz von Effizienz oder Effektivität in Form von Randbedingungen angeben können, welche das Expertensystem dann bei der Erstellung der Pipeline
berücksichtigt. Das Wissen um verwendbare Algorithmen in einer IE-Pipeline,
deren Eigenschaften, sowie anderes wichtiges Wissen aus der Domäne Information Extraction sollen in eine formalisierte Form gebracht werden, damit es dem
Expertensystem als Wissensbasis zur Verfügung steht.
Die entstandene IE-Pipeline muss außerdem immer so effizient wie möglich
sein, unter Berücksichtigung der getroffenen Randbedingungen. Daher muss auch
verfügbares Wissen um die Effizienzsteigerung von IE-Pipelines in dem Expertensystem Anwendung finden.
Neben der eigentlichen Konstruktion der IE-Pipeline soll das Expertensystem
weiterhin diese berechnete Pipeline auf einer Textmenge ausführen und die so erzielten Ergebnisse dem Anwender zurückgeben können. Der Anwender darf hierbei
Einschränkungen der Ergebnismenge festlegen, womit er zum Beispiel bei zu findenden Marktvorhersagen nur jene zurückgeliefert haben möchte, die ein bestimmtes Unternehmen betreffen. Diese Masterarbeit soll daher untersuchen, inwiefern
solche Einschränkungen schon direkt innerhalb der IE-Pipeline berücksichtigt und
eventuell so zu ihrer Effizienzsteigerung genutzt werden können.
Ein weiteres Ziel betrifft den Entwurf und die Implementierung des Expertensystems selbst. Hierbei soll darauf geachtet werden, dass das entstehende System
leicht erweitert und angepasst werden kann. Es muss zum Beispiel möglich sein,
das IE-Framework, also die Grundlage für die Algorithmen einer IE-Pipeline und
deren Ausführung, auszutauschen, ohne dass dazu große Teile des Expertensys-
3
1. Einleitung
tem neu geschrieben werden müssen. Neue IE-Algorithmen, oder auch Kriterien
bezüglich der Effizienz oder Effektivität eines Algorithmus, sollen einfach hinzuzufügen sein. Daher muss das Expertensystem so konzipiert sein, dass dieses neue
Wissen auf eine einfache Art und Weise der Wissensbasis des Expertensystems
hinzugefügt werden kann, ohne umfangreiche Anpassungen am Quellcode vornehmen zu müssen.
Aufbau der Arbeit
Im folgenden Kapitel wird der Leser in die für diese Arbeit wichtigen Grundlagen eingeführt. Dies betrifft zuallererst den Bereich der Expertensysteme. Da die
in dieser Arbeit entwickelte Wissensbasis in Form einer Ontologie vorliegt, werden Ontologien ebenfalls erläutert. Die eigentliche Konstruktion der IE-Pipeline
wird mit der Hilfe eines Planungsverfahrens durchgeführt. Die dazu notwendigen Grundlagen sind ebenso in Kapitel 2 beschrieben. Außerdem wird auf das
Schlussfolgern in Ontologien eingegangen, um eine spätere Abgrenzung des verwendeten Ansatzes dazu durchführen zu können. Mit der Beschreibung der Domäne
Information Extraction, den IE-Pipelines, dem notwendigen Wissen zur Konstruktion effizienter IE-Pipelines und den gebräuchlichen Gütekriterien hinsichtlich deren Effektivität und Effizienz, schließt das Kapitel über die Grundlagen ab.
Im dritten Kapitel werden die verwandten Arbeiten und der Stand der Forschung beschrieben. Hierbei geht es um Arbeiten, die die Entwicklung von Expertensystemen und die Konstruktion effizienter IE-Pipelines zum Ziel haben.
Der konzeptuelle Lösungsansatz wird in Kapitel 4 vorgestellt. Der Fokus liegt
auf dem Konzept zur Konstruktion von effizienten IE-Pipelines und dem dafür
benötigten Wissen innerhalb der dazu entwickelten Wissensbasis des Expertensystems, sowie des Gesamtaufbaus des Expertensystems.
Bei der Realisierung des Lösungsansatzes in Kapitel 5 geht es vor allem um die
Besonderheiten des verwendeten Information-Extraction-Frameworks und der verwendeten Algorithmenmenge, aus der sich eine IE-Pipeline zusammen setzen kann.
Deren Berücksichtigung im Expertensystem, sowie deren größtmögliche Kapselung
vom Rest des Expertensystems stehen hier im Mittelpunkt.
In Kapitel 6 werden Details zur Implementierung des Expertensystems erläutert.
Hierbei liegt der Fokus vor allem auf dem Aufzeigen von einfachen Anpassungssowie Erweiterungsmöglichkeiten. Es werden weiterhin die entwickelten Komponenten des Expertensystems vorgestellt.
Die Evaluierung in Kapitel 7 zeigt, dass das entwickelte Expertensystem die vorher erarbeiteten Konzepte zur Berechnung einer IE-Pipeline und dem Ausführen
dieser auf einer gegebenen Textmenge korrekt umsetzt. Hierfür werden die einzelnen Teile des Expertensystems auf das korrekte Arbeiten hin überprüft.
Zuletzt werden die Erkenntnisse und Ergebnisse dieser Arbeit in Kapitel 8 zusammengefasst. Außerdem wird ein Ausblick über weiterführende Arbeiten gegeben, die sich auf Basis des entwickelten Expertensystems ergeben.
4
2 Grundlagen
In diesem Kapitel werden alle Grundlagen erläutert, die für das Erreichen der Ziele
dieser Arbeit notwendig sind.
Die Entwicklung eines Expertensystems zur automatischen Erstellung effizienter Information-Extraction-Pipelines (IE-Pipelines) ist das Ziel dieser Arbeit. Daher wird in Abschnitt 2.1 beschrieben, was Expertensysteme sind und was sie
ausmacht. Das Wissen um Konzepte und Rollen in der Domäne Information Extraction, vor allem jenes Wissen, welches bei der Konstruktion von IE-Pipelines
hilfreich sein kann, soll in einer formalen, dem Computer zugänglichen Form, vorhanden sein. Auf Basis dieses Wissens kann dann die Konstruktion eben jener
IE-Pipelines durch das Expertensystem erfolgen. Mit Formen der für das Expertensystem wichtigen formalen Wissensrepräsentationen, vor allem den vom zu
entwickelnden Expertensystem als Wissensbasis benutzten Ontologien, beschäftigt
sich daher der Abschnitt 2.2. Verfahren zum automatischen Schlussfolgern auf dem
Wissen des Expertensystems werden anschließend in Abschnitt 2.3 vorgestellt.
Diese machen eine automatische Berechnung der IE-Pipelines möglich. Für diese
Arbeit wichtige Verfahren, wie das Schlussfolgern in Ontologien und besonders
das später genutzte Planen, stehen hierbei im Mittelpunkt. Das Einsatzgebiet des
zu entwickelnden Expertensystems ist die Domäne Information Extraction. Aus
diesem Grund beschäftigt sich der letzte Abschnitt 2.4 dieses Kapitels mit der
Vorstellung dieser Domäne. Dazu gehören insbesondere die Vorstellung der vom
Expertensystem zu konstruierenden IE-Pipelines, sowie Verfahren für deren effiziente Konstruktion. Auch die Kriterien, wann ein Algorithmus aus der Domäne
IE effektiv oder effizient ist und damit zusammenhängend, wann eine IE-Pipeline
effektiv oder effizient ist, werden erklärt. Auf Basis diesen Wissens wählt das zu
entwickelnde Expertensystem später die Algorithmen für eine IE-Pipeline aus.
2.1 Expertensysteme
Expertensysteme werden immer dann eingesetzt, wenn zur Lösung eines gegebenen Problems das Wissen eines menschlichen Experten benötigt wird, sich dessen
Expertenwissen für den Computer formalisieren lässt und damit die Lösung durch
den Computer bestimmt werden kann. Sie gehören damit zu den wissensbasierten Systemen. Expertensysteme sollen für ganz bestimmte Anwendungsfälle den
menschlichen Experten ersetzen, aber ihn auch bei alltäglichen Routineaufgaben
entlasten. Die Gründe hierfür liegen in den hohen Kosten eines Experten, aber
auch in den langen Zeitspannen, die es braucht, eine Person in einen Experten
5
2. Grundlagen
zu verwandeln. Der Experte erlangt viel von seinem Wissen über die Zeit als Erfahrungswissen, daher kann es Jahre dauern bis eine Person in einem bestimmten
Fachgebiet zum Experten wird. Ein weiterer Grund ist auch, dass ein Experte
nicht gleichzeitig an mehreren Orten sein kann, auch wenn sein Wissen zeitgleich
an diesen Orten gebraucht wird. Dies zeigt auch, dass ein normaler Benutzer eines
Expertensystems selbst kein Experte in der seinem Problem, und vor allem den
Strategien und Verfahren zu dessen Lösung, zugrundeliegenden Domäne sein muss
[Pup91].
Ein Expertensystem könnte zum Beispiel im medizinischen Umfeld dazu dienen,
Krankheiten zu diagnostizieren. Hierzu würde das Expertenwissen eines Mediziners in das Expertensystem aufgenommen. Anschließend könnten Personen Anfragen an das Expertensystem stellen. So würde bei der Eingabe von Krankheitssymptomen in das Expertensystem dieses automatisch eine mögliche Krankheit,
welche am besten auf die beschriebenen Symptome passt, diagnostizieren und dazu
noch die erfolgversprechendsten Heilungsmethoden aufzeigen.
2.1.1 Aufgabenbereiche von Expertensystemen
Die einem Expertensystem zugrundeliegenden Problemlösungstypen, und damit
fundamentalen Aufgabenbereiche eines Expertensystems, lassen sich in mehrere Bereiche einteilen, wobei die Klassifikation (auch Analyse genannt), die Konstruktion (auch Synthese genannt) und die Simulation die drei wichtigsten Bereiche darstellen [Pup91]. Bei der Klassifikation wird aufgrund der vorhandenen
Eingaben eine Lösung selektiv aus einer bereits vorhandenen Menge von Lösungen bestimmt. Hierunter fallen zum Beispiel die Diagnose, etwa die Diagnose von
Krankheiten auf Basis ihrer Symptome im medizinischen Bereich, und die Steuerung, wie das Steuern eines Reglers ausgehend von gemessenen Sensordaten. Bei
der Simulation wird ausgehend von einem Ausgangszustand und der Eingabe der
Folgezustand bestimmt. Hiermit lassen sich die Auswirkungen von Aktionen in
einem bestimmten Zustand simulieren. Die Konstruktion arbeitet nicht auf Basis bereits bekannter Lösungen, sondern konstruiert neue Lösungen. Unter diesen
Punkt fallen zum Beispiel die Konfigurierung (das Zusammenfügen von Objekten
unter bestimmten Randbedingungen) und auch das Planen einer Folge von Aktionen zum Erreichen eines ausgewählten Ziels, etwa die Produktionsplanung in
einem Industriebetrieb [Pup91]. Außerdem fällt das dieser Arbeit zugrunde liegende Problem der Konstruktion von Information-Extraction-Pipelines in diesen
Bereich.
2.1.2 Architektur von Expertensystemen
Die im Folgenden vorgeschlagene allgemeine Architektur eines Expertensystems
sowie die Erklärung seiner einzelnen Bereiche beziehen sich auf die Ausführungen
in [Pup91]. In Expertensystemen wird zwischen dem vorhandenen Expertenwissen
6
2.1 Expertensysteme
Benutzer
Interviewerkomponente
Experte
Wissenserwerbskomponente
Erklärungskomponente
Fallspezifisches
Wissen
Problemlösungskomponente
Wissensbasis
Domänenspezifisches
Expertenwissen
Steuersystem
Zwischenergebnisse und Problemlösungen
Abbildung 2.1: Architektur eines Expertensystems [Pup91]
und den Problemlösungsstrategien getrennt. Dies spiegelt sich in der grundlegenden Architektur von Expertensystemen wider. Sie setzt sich primär aus den beiden
Bestandteilen Wissensbasis und Steuersystem zusammen. Diese Architektur wird
in Abbildung 2.1 dargestellt und bildet die Basis für die entwickelte Architektur
des in der vorliegenden Arbeit erstellten Expertensystems.
Auch von anderen Autoren wird diese Form der Architektur von Expertensystemen präferiert. So findet sich zum Beispiel in [Hau00] eine ganz ähnliche
Architektur. Die für [Hau00] wesentlichen Komponenten eines Expertensystems
sind hierbei:
• Eine Wissensbasis, welche das Expertenwissen beinhaltet.
• Eine Inferenzkomponente, welche Lösungen zu den an sie gestellten Anfragen
liefert.
• Eine Dialogkomponente, um dem Anwender und Experten eine einfach Kommunikationsmöglichkeit mit dem System zu geben.
• Eine Erklärungskomponente, über die sich die Herleitung der gewählten
Lösung nachvollziehen lässt.
• Eine Wissensaquisitionskomponente, mit der das Wissen des Expertensystems leicht vom Experten bearbeitet werden kann.
Die aufgeführten Komponenten lassen sich direkt in der älteren Architektur von
[Pup91] wiederfinden, deren Elemente in den folgenden Abschnitten näher erläutert
werden sollen.
7
2. Grundlagen
Wissensbasis
In der Wissensbasis wird das gesamte Wissen des Expertensystems gespeichert.
Das Wissen umfasst das Expertenwissen, aber auch das sogenannte fallspezifische
Wissen, welches vom Benutzer mit der Problembeschreibung in das System eingegeben wurde. Außerdem können hier sowohl Zwischenergebnisse als auch vorherige
Gesamtlösungen als neues Wissen gespeichert werden [Pup91]. Das Wissen kann
in vielen verschiedenen Formen, wie zum Beispiel Aussagen- und Prädikatenlogik
oder auch in Form von Wenn-Dann Regeln dargestellt werden. Auf die möglichen
Repräsentationsformen des Wissens wird im Verlauf dieses Kapitels noch genauer
eingegangen.
Steuersystem
Das Steuersystem des Expertensystems enthält die Benutzerschnittstellen für den
Dialog mit dem Benutzer, eine Erklärungskomponente, eine Wissenserwerbskomponente, sowie die Komponente für das Problemlösen.
Interviewerkomponente Mithilfe der Interviewerkomponente (bei [Hau00] auch
Dialogkomponente genannt) gibt der Benutzer sein Problem in das Expertensystem ein. Auf der Grundlage dieser Eingabe versucht das Expertensystem dann,
eine Lösung für das Problem zu erarbeiten. Bei dieser Arbeit kann das Expertensystem über die Interviewerkomponente unter Umständen Rückfragen an den
Benutzer stellen, etwa um mehr Informationen zu einem Teilproblem zu erhalten,
oder um den Benutzer direkt Teillösungen auswählen zu lassen, zwischen denen
das Expertensystem, etwa aufgrund fehlendem Wissens, keine eindeutige Wahl
treffen kann. So könnte das Expertensystem versuchen eine Krankheit zu diagnostizieren, aber für eine endgültige Diagnose sind die Symptome nicht eindeutig.
Hier würde ein Nachfragen des Expertensystems an den Benutzer, etwa nach weiteren Symptomen, die entscheidenden Informationen zur Bestimmung der Lösung
liefern. Das Expertensystem könnte auch gezielt fragen, ob etwa ein bestimmtes
Symptom vorliegt, welches einem der Lösungskandidaten zugeordnet ist. Es kann
auch Fälle geben, in denen das Expertensystem nicht von einem menschlichen Benutzer genutzt wird. Dies ist zum Beispiel der Fall, wenn das Expertensystem für
die Steuerung eines Roboters oder einer Raumsonde eingesetzt wird [MNPW98].
Hier werden automatisch die Sensordaten als Eingabe für das Expertensystem bestimmt und die Ausgabe wird dementsprechend automatisch vom Gesamtsystem
weiterverarbeitet.
Erklärungskomponente Diese Komponente erlaubt es dem Benutzer nachzuvollziehen, warum und in welcher Weise das Expertensystem zu einer Lösung
gekommen ist. Dies ist vor allem immer dann notwendig, wenn das Expertensystem Entscheidungen trifft, die sicherheitskritisch sind oder auch Menschenleben in
Gefahr bringen können. Ein Expertensystem, welches die Medikamentendosis für
8
2.2 Formale Wissensrepräsentation
Patienten bestimmt, sollte zumindest bei stark von der Norm abweichenden Dosen eine genaue Erklärung über seine Entscheidungsfindung geben können. Durch
diese Komponente können vom Experten auch Fehler in der Wissensbasis entdeckt
werden.
Wissenserwerbskomponente Über diese Komponente pflegt der Experte, oder
der Entwickler des Expertensystems, das Expertenwissen in das System ein. Neben
dem manuellen Wissenserwerb kann das Expertensystem allerdings auch automatisch mit geeigneten Lernverfahren Wissen erwerben. Dieses Wissen kann zum
Beispiel aus Falldatenbanken abgeleitet werden [Pup91]. Bei [Hau00] wird dieser
Teil des Expertensystems Wissensakquisitionskomponente genannt.
Problemlösungskomponente Diese Komponente löst das Problem des Benutzers. Dabei greift sie auf das vorhandene Expertenwissen aus der Wissensbasis
zurück. Dieses Schlussfolgern auf Basis des vorhandenen Wissens kann mithilfe vieler verschiedener Techniken durchgeführt werden, die stark abhängig von
der Repräsentation des Wissens sind. Auf einige dieser Inferenzverfahren wird im
späteren Teil dieses Kapitels noch näher eingegangen. Die Problemlösungskomponente wird bei [Hau00] in Problemlösungskomponente und Inferenzverfahren
aufgeteilt. Das Inferenzverfahren ist direkt abhängig von der gewählten Wissensrepräsentation, arbeitet direkt auf der Wissensbasis und ist damit eng an sie gebunden. Hiermit werden Anfragen und Probleme mittels des verfügbaren Wissens
versucht zu lösen. Das Inferenzverfahren ist dabei frei von jeglichen domänenspezifischen Anpassungen, ist also nicht an das jeweilige Problem, welches das Expertensystem versucht zu lösen, angepasst. Die Problemlösungskomponente beinhaltet für [Hau00] demgegenüber sehr wohl speziell an die Domäne angepasste
Problemlösungsstrategien. Die vorliegende Arbeit orientiert sich in diesem Punkt
damit eher an [Hau00], denn es wird im späteren Verlauf der Arbeit ein speziell an
die Domäne Information Extraction angepasster Planer als Problemlösungskomponente entwickelt.
2.2 Formale Wissensrepräsentation
Ein Expertensystem arbeitet auf Basis des in ihm vorhandenen Expertenwissens.
Dieses Wissen ist, wie bereits in Abschnitt 2.1.2 erwähnt, in der Wissensbasis des
Expertensystems gespeichert. Der Repräsentation des Wissens in der Wissensbasis kommt dabei eine entscheidende Bedeutung zu. An eine mögliche Wissensrepräsentation werden daher folgende Anforderungen gestellt [FGH90]:
Automatisierbare Verarbeitbarkeit: Das Wissen muss formal genug repräsentiert
werden, damit der Computer dieses Wissen verarbeiten kann.
Flexibilität: Die Repräsentation soll sowohl unabhängig von der dem jeweiligen
Problem zugrundeliegenden Domäne, als auch unabhängig von dem jeweili-
9
2. Grundlagen
gen Aufgabenbereich (Klassifikation, Konstruktion und Simulation) des Expertensystems, sein.
Modularität: Das Wissen muss einfach erweiterbar und daher modular aufgebaut
sein.
Verständlichkeit: Der Inhalt der Wissensbasis muss sowohl dem Experten als
auch dem Benutzer gegenüber verständlich sein.
Darstellung unsicheren Wissens: Es muss die Möglichkeit geben, unsicheres Wissen, etwa unvollständige Informationen, ausdrücken zu können.
Im Folgenden sollen einige Formen der formalen Wissensrepräsentationen aufgezeigt werden, die die oben genannten Anforderungen erfüllen. Der Bereich der
Ontologien nimmt dabei eine besondere Stellung ein, da die Ontologie als Form
der Wissensbasis für das in dieser Arbeit entwickelte Expertensystem gewählt
worden ist.
2.2.1 Formen der Wissensrepräsentation
Für die Repräsentation des Wissens eines Expertensystems gibt es viele Möglichkeiten. Die Spannbreite reicht hierbei von einfachen Logiken, wie der Aussagenlogik, über regelbasiertes Wissen, bis hin zu Wissen, das in objektorientierter Form
festgehalten ist. Die folgende Auflistung soll daher einen Überblick über die verschiedenen Arten der Wissensrepräsentation in Expertensystemen geben. Dieser
Überblick ist keineswegs vollständig und soll nur einen Einblick in die Möglichkeiten der Repräsentation geben. Aufgrund der Eigenschaften der aufgeführten
Wissensrepräsentationen wird dann in Kapitel 4 begründet, warum in der vorliegenden Arbeit Ontologien als Wissensbasis genutzt werden und keine der aufgeführten Wissensrepräsentationsformen. Weitere nicht im Folgenden beschriebene Formen sind zum Beispiel Constraints-Repräsentationen, probabilistisches,
nicht-monotones und temporales Schließen. Diese können beispielsweise in [Pup91]
nachgeschlagen werden.
Möglichkeiten aus der Logik Die einfachste Form der Wissensrepräsentation
stellt die Aussagenlogik dar. In ihr werden atomare Aussagen, denen ein Wahrheitswert (richtig oder falsch) zugeordnet wird, zusammen mit einer Reihe von
Junktoren (¬, ∧, ∨, →, ↔) zu aussagenlogischen Formeln verknüpft [BKI06]. Die
Prädikatenlogik erster Stufe erweitert die Aussagenlogik um Quantoren (∀, ∃) und
der Möglichkeit, Aussagen auf Objekte zu beziehen und diese in Relation zueinander zu setzten (während in der Aussagenlogik eine Aussage immer pauschal gilt
und nicht auf Objekte bezogen werden kann) [BKI06].
10
2.2 Formale Wissensrepräsentation
Regeln Eine weit verbreitete Form der Wissensrepräsentation in Expertensystemen sind Regeln [BKI06][Pup91]. Diese Regeln bestehen aus einfachen Wenn Dann Sätzen mit einer Vorbedingung (Wenn-Teil) und einer Implikation (DannTeil), welche gilt, wenn die Vorbedingung gilt. Die Implikation kann auch eine
Aktion sein, die ausgeführt werden soll, falls die Vorbedingung gilt. Die Wissensbasis eines Regeln-verwendenden Expertensystems besteht aus der Regelmenge
und einer Datenbasis, die alle verfügbaren Fakten enthält. Eine einfache Regel
wäre zum Beispiel:
R1: WENN AlgorithmusXLöstProblem = Wahr DANN Wähle AlgorithmusX
Gibt es mehrere Regeln, die auch noch die gleichen Fakten in Vorbedingung oder
Implikation betreffen, so müssen unter Umständen Konfliktlösungstrategien angewendet werden, um aus diesen Regeln eine einzige auszuwählen. So kann zum
Beispiel den Regeln eine Priorisierung zugeordnet und dann im Konfliktfall die
höher priorisierte ausgeführt werden.
Fuzzy–Logik Fuzzy-Logik kann für den Umgang mit unscharfem beziehungsweise unsicherem Wissen verwendet werden. Sie basiert auf den sogenannten FuzzySets (unscharfen Mengen), einer Verallgemeinerung der Mengenlehre. In diesen
Mengen kann ein Objekt zu einem Teil enthalten oder nicht enthalten sein, ausgedrückt durch einen Wert zwischen 0 und 1. Die Fuzzy-Logik eignet sich dementsprechend sehr gut für das Festhalten von Alltagswissen in unscharfer Form. Der
große Unterschied zu den vorher beschriebenen Regeln ist die Inferenz von mehreren Regeln in einem Fuzzy-Inferenz-System und die anschließende Defuzzifizierung
der berechneten Ergebnisse [KGK93].
Objektorientierte Repräsentationen Eine weitere Form der Wissensrepräsentation ist das Festhalten von Wissen in Form von sogenannten Frames. Mithilfe
dieser Frames lassen sich Begriffe formalisieren und Beziehungen zwischen Begriffen ausdrücken. Diese Repräsentationsform unterscheidet sich damit deutlich
von logikbasierten Formen, in denen nicht Begriffe im Zentrum stehen, sondern
Aussagen und Sätze über diese Aussagen. Ein Beispiel für das Objekt zum Begriff
Computer“:
”
Computer: Bestandteile: CPU, Speicher, Betriebssystem
Gehäusefarbe: unbekannt (Restriktion: grau, weiß, schwarz)
An dem Beispiel lässt sich erkennen, dass der dargestellte Frame eigentlich eine
Klasse beschreibt. Eine Instanz könnte demnach ein Computer sein, mit einer ganz
bestimmten Konfiguration von CPU, Speicher und Betriebssystem (die von anderen Frames näher beschrieben würden) und der Gehäusefarbe grau. Vererbung
mittels Sub-/Super -Beziehungen sind in Frames ebenfalls möglich [Pup91].
11
2. Grundlagen
2.2.2 Ontologien und Wissensbasen
Ontologien sind eine weitere Form der Wissensrepräsentation. Der Begriff Ontologie kommt aus der Philosophie und bezeichnet die Lehre vom Seienden. Dieser
Teilbereich der Philosophie beschäftigt sich mit Fragen, ob es zum Beispiel universelle Wahrheiten gibt [Hof10]. In der Informatik hat sich eine andere Bedeutung
des Begriffs Ontologie durchgesetzt. Die am weitesten verbreitetste Definition von
Ontologie stammt von Thomas R. Gruber:
An ontology is an explicit specification of a conceptualization. [...] In
such an ontology, definitions associate the names of entities in the
universe of discourse (e.g., classes, relations, functions, or other objects) with human-readable text describing what the names are meant
to denote, and formal axioms that constrain the interpretation and
well-formed use of these terms. [Gru93]
Die Begriffsbildung steht demnach im Mittelpunkt. Die Wirklichkeit wird so in
einem Modell abgebildet, dass dieses Modell sowohl von Menschen verstandenen
werden kann, aber auch formal genug für die Repräsentation im Computer ist.
Dabei werden die Entitäten des Modells untereinander verknüpft und das Aussehen und die Art dieser Verknüpfungen beschrieben. Ontologien sind daher eng
verwandt mit der objektorientierten Wissensrepräsentation aus Abschnitt 2.2.1.
Es existieren eine Reihe von Sprachen, die sich für das Errichten von Ontologien
eignen. Die im Abschnitt 2.2.1 besprochene objektorientierte Wissensrepräsentation mittels Frames zählt zum Beispiel dazu; ebenso, als Weiterentwicklung der
Frames, die F-Logic [KL89]. Eng verwandt mit Frames sind auch die Topic Maps 1 .
Mithilfe dieser Sprache lässt sich eine Karte mit Begriffen und Verknüpfungen
zwischen den einzelnen Begriffen aufbauen. Diese Karten werden dann Topic Map
genannt [Pep00].
Eine weitere Sprache zum Aufbau von Ontologien ist das RDF-Schema (RDFS). Diese Sprache erweitert das Resource Description Framework (RDF) [KC04].
In RDF lassen sich Beziehungen zwischen Objekten in Form von Tripeln (Subjekt Prädikat - Objekt) oder allgemeiner (Ressource - Eigenschaft - Wert) ausdrücken.
Ressource und Eigenschaft sind immer durch einen Unique Resource Identifier
(URI [BLFM05]) beschrieben, während das Objekt auch ein Literal sein kann.
Ein textuelles Beispiel für ein RDF-Tripel wäre:
(http://amiga500.com) - (http://terms.org/hasCPU) - (http://motorola68000.com)
Hierbei sind alle drei Teile des Tripels durch URIs beschrieben und es soll ausgedrückt werden, dass der Computer Amiga500 als Prozessor eine Motorola 68000
CPU hat. Durch das Annotieren des Wortes Amiga“ in einem Fließtext mit der
”
URI http://amiga500.com kann dann ausgedrückt werden, dass es sich hierbei um
den Amiga500-Computer handelt.
1
http://www.isotopicmaps.org/
12
2.2 Formale Wissensrepräsentation
Mit RDF ist es allerdings nicht möglich eine Klassenhierarchie (Taxonomie)
auszudrücken. Hier setzt das RDF-Schema an. Mit ihm lassen sich Klassen und
Vererbung ausdrücken und der Datentyp von Ressourcen einschränken. Mit RDFS ist daher der Aufbau einer Art von Ontologie möglich. Diese Ontologien reichen
allerdings immer noch nicht aus, um alle Regeln und Eigenschaften einer Wissensdomäne festzuhalten. Beispielsweise ist es mit RDF-S nicht möglich auszudrücken,
dass ein bestimmter Computer nur einen einzigen Prozessor besitzt. Oder aber,
dass Motorola 68000“ dasselbe bedeutet, und demnach auch die gleichen Eigen”
schaften hat, wie M68k“. Allerdings lassen sich mit RDF-S bereits einige einfache
”
Ontologien, zum Beispiel Taxonomien, festhalten [McB04].
Ontologiesprache OWL
Die Web Ontology Language (OWL)2 ist eine Standardsprache im Bereich der
Ontologien [Hor08]. Sie wird vorrangig mit dem Semantic Web in Verbindung
gebracht (siehe auch [BHL01] und [SBLH06]) und ist der Nachfolger der Ontologiesprache DAML+OIL [HPSH02]. Mithilfe von OWL lassen sich Kardinalitäten
bei Beziehungen, Mengenoperationen oder aber auch symmetrische und transitive
Beziehungen ausdrücken [AH03].
In OWL sind Klassen, Eigenschaften und Individuen definiert [Wor12]. Jedes
Element in OWL ist hierbei durch einen eindeutigen URI identifiziert. Ein Beispiel
ist eine Klasse Computer. Eine Unterklasse davon kann die Klasse Mobilgerät sein.
Klassen können sich aber auch aus weiteren Klassen mit Restriktionen zusammensetzen. Restriktionen lassen sich angeben, indem bestimmte Eigenschaften durch
Existenz- und Allquantoren sowie Kardinalitäten eingeschränkt werden. Eine Eigenschaft ist eine Beziehung zwischen zwei Klassen. Auch Eigenschaften können
Subeigenschaften von anderen sein. Eine mögliche Klasse mit Restriktionen wäre
die Klasse Mobilgerät als Subklasse von Computer und der Einschränkung, dass
alle Mobilgeräte von einem Menschen leicht tragbar sein müssen. Die Eigenschaft
wäre ist tragbar. Individuen sind konkrete Instanzen von Klassen. Beispielsweise
könnte es ein Individuum eines Mobilgeräts mit dem Bezeichner IPhone geben.
Für das Hinzufügen von neuem Wissen in eine OWL-Ontologie gibt es verschiedene Möglichkeiten. So lassen sich zum Beispiel neue Informationen in Form
von neuen RDF-Tripeln bereit stellen. Eine andere Möglichkeit ist, das Ontologieschema selbst zu erweitern. Darüber hinaus kann auch durch Schlussfolgerungen
auf OWL neues Wissen entdeckt werden. So können transitive oder symmetrische Eigenschaften ausgenutzt werden. Beispielsweise könnte eine ist Nachfolger
von Beziehung transitiv sein. Dann kann aus den beiden Tripeln (Windows7 ist Nachfolger von - WindowsVista) und (WindowsVista - ist Nachfolger von
- WindowsXP ) automatisch das neue Tripel (Windows7 - ist Nachfolger von WindowsXP ) geschlossen werden und somit wird neues Wissen an dieser Stelle
automatisch erzeugt. Mit einer symmetrischen Eigenschaft wie ist Partner von
2
Die Abkürzung ist gewollt, siehe auch http://de.wikipedia.org/wiki/Web_Ontology_
Language#Abk.C3.BCrzung
13
2. Grundlagen
Computer
hatProzessor
1..*
1..*
Prozessor
M68k
hatSpeicher
Speicher
Pentium
RAM
hatEAGerät
hatBetriebssystem
*
*
Betriebssystem
E/A Gerät
Festplatte
Tastatur
Bildschirm
Windows
MacOS
Abbildung 2.2: Beispielontologie der Domäne Computer
kann aus (Foxconn - ist Partner von - Apple) automatisch das Tripel (Apple ist Partner von - Foxconn) erzeugt werden. Eine weitere Form der Schaffung von
neuem Wissen liegt in der Verwendung von Regeln, zum Beispiel in Form von
SWRL [HPSB+ 04]. So kann mit der Regel hatEAGerät(Computer, Tastatur) ∧
hatEAGerät(Computer, Bildschirm) → istTerminal(Computer) ausgedrückt werden, dass ein Computer mit Tastatureingabemöglichkeit und einer Ausgabe auf
einem Bildschirm automatisch als Terminal gekennzeichnet wird.
In Abbildung 2.2 ist eine kleine Beispielontologie für die Domäne Computer
zu sehen. Die grafische Notation orientiert sich an an der grafischen Notation von
UML-Klassendiagrammen, wobei jede Klasse der Ontologie durch eine abgerundetes Rechteck dargestellt ist.3 Die gerichteten Kanten mit ausgefüllter Pfeilspitze,
wie hatProzessor, sind Eigenschaften zwischen den durch die Kante verbundenen
Klassen. Sie sind gerichtet, da jede Eigenschaft eine Domain, einen Grundbereich,
und eine Range, einen Wertebereich, hat. So gibt der Ausgangspunkt der Kante
den Grundbereich, ihr Endpunkt den Wertebereich und die Benennung den Namen
der Eigenschaft an. Die Nummern und Sterne an den Kantenenden geben mögliche Kardinalitäten der Eigenschaften an, wie sie von der UML her bekannt sind.
So hat jeder Computer mindestens einen Prozessor und beliebig viele (also auch
keine) Ein-/Ausgabe-Geräte. Die Ontologie selbst ist zu einem großen Teil eine
Taxonomie. Die vielen Subklassenbeziehungen werden, wie in der UML, durch die
Kanten mit nicht ausgefüllter Pfeilspitze ausgedrückt. Die Klassen Tastatur und
Bildschirm sind beispielsweise Subklassen von E/A Gerät. Die Namen der Elemente der Ontologie stellen ihren URI dar, wobei diese eindeutigen Bezeichner in
dem Beispiel stark vereinfacht dargestellt wurden. Dieses relativ kleine Beispiel
soll nur die Möglichkeiten bei der Bildung von Ontologien illustrieren.
Die Syntax von OWL kann in XML-Form dargestellt werden. Allerdings gibt es
auch Ontologieeditoren, die Ontologien in der in Abbildung 2.2 angegebenen Form
3
UML-Klassendiagramme haben allerdings eine andere Semantik als OWL-Ontologien. Dies ist
bei der Modellierung berücksichtigt worden. So gibt es etwa für die Aggregation aus UML kein
Äquivalent in OWL. Umgekehrt haben zum Beispiel die Eigenschaften in OWL eine andere
Semantik als etwa Assoziationen in UML. Für Abbildungen zwischen beiden Sprachen siehe
[GDDD04].
14
2.2 Formale Wissensrepräsentation
visualisieren. Der sehr verbreitete OWL-Ontologieeditor Protégé 4 bietet etwa eine
ähnliche grafische Visualisierung von Ontologien an.
Beschreibungslogiken und OWL
Die Ontologiesprache OWL fächert sich in drei Untersprachen auf, die sich in ihrer Ausdrucksstärke voneinander unterscheiden: OWL-Lite, OWL-DL und OWLFull. OWL-Full ist die ausdrucksstärkste der drei Sprachen. Sie umfasst sowohl
OWL-DL als auch OWL-Lite (beide sind Teilmengen von OWL-Full: OWL-Lite ⊆
OWL-DL ⊆ OWL-Full). Die Sprache unterstützt den kompletten OWL-Standard
und ist auch die einzige der drei Sprachen, die alle RDF-Schema Sprachelemente
unterstützt (OWL-Full = RDF-Schema ∪ OWL-DL). Die Beinhaltung aller Elemente von RDF-Schema macht OWL-Full zu einer unentscheidbaren Sprache. Aus
diesem Grund existieren weitere OWL-Varianten, die zwar nicht alle Sprachmittel
von OWL-Full unterstützen, dadurch aber entscheidbar bleiben [HKR08]. OWLLite steht gegenüber OWL-Full auf der anderen Seite der Ausdrucksstärke. Diese
Variante bietet nur eingeschränkte Möglichkeiten bei der Darstellung von Wissen.
So lassen sich zum Beispiel keine Kardinalitäten, Aufzählungen und Disjunktheiten ausdrücken. Dadurch ist diese Sprache für die Erstellung von eher einfachen
Taxonomien und Ontologien gedacht. OWL-DL ist die dritte OWL-Variante. Sie
wurde mit dem Ziel, so ausdrucksstark wie möglich, dabei allerdings immer noch
entscheidbar zu sein, entworfen. Daher ist der Sprachumfang vor allem bei den
Sprachelementen aus RDF-Schema eingeschränkt worden. OWL-DL erfährt allerdings in der Praxis am meisten Anwendung [HKR08]. Dies ist auch einer der
Gründe, warum für die Ontologie des von der vorliegenden Arbeit entwickelten Expertensystems OWL-DL als Basis gewählt wurde. Für eine genauere Auflistung,
welche Sprachelemente von welcher OWL Variante unterstützt werden, sei auf
[AH03] verwiesen.
Die Basis für OWL bilden die sogenannten Beschreibungslogiken (engl. Description Logic). Beschreibungslogiken sind Logik-basierte Sprachen zur Wissensrepräsentation und Wissensmodellierung. Sie bilden eine Untermenge der Prädikatenlogik erster Stufe. Daher ist es möglich auf Basis von Beschreibungslogiken Inferenzverfahren zum logischen Schließen auszuführen [BN03]. Das Vokabular von
Beschreibungslogiken besteht aus sogenannten Begriffen (entspricht den OWLKlassen), Rollen (entspricht den OWL-Eigenschaften) und Individuen (entspricht
den OWL-Individuen) [BN03].
Der Ausdruck Betriebssystem(Android) ist ein Begriff, welcher beschreibt, dass
das Individuum Android ein Betriebssystem ist. Hierbei wird der Begriff Android auch als atomare Klasse bezeichnet; sie ist nicht aus weiteren Klassen zusammengesetzt. Mit hatBetriebssystem(MobilePhoneXY, Android) wird die Rolle
(Beziehung) ausgedrückt, dass das Android-Betriebssystem auf dem Mobiltelefon MobilePhoneXY läuft. In Prädikatenlogik abgebildet entsprechen Individuen
4
http://protege.stanford.edu/
15
2. Grundlagen
Konstantensymbolen, Begriffe sind einstellige, Rollen zweistellige Prädikate. Mittels sogenannter Konstruktoren können komplexere Klassen und Rollen gebildet
werden. Ein möglicher Konstruktor ist die Disjunktion. Der folgende Ausdruck
beschreibt, dass alle Betriebssysteme entweder Windows-, Android- oder MacBetriebssysteme sind:
Betriebssystem v W indows t Android t M acOS
Das Zeichen v gibt dabei, wie von der Mengenlehre gewohnt, eine Art Teilmengenbeziehung an. Die Klasse Betriebssystem setzt sich demnach aus Windows, Android und MacOS zusammen. Unterklassen und Äquivalenzen sind daher ebenfalls
möglich. Somit kann man beispielsweise ausdrücken, dass die Klasse Mobiltelefon
eine Unterklasse (eine Teilmenge) von Computer ist:
M obiltelef on v Computer
Abgebildet in Prädikatenlogik ergibt sich:
(∀x)(M obiltelef on(x) → Computer(x))
Auch Quantoren können benutzt werden:
P C v ∀hatBetriebssystem.W indows
wobei Windows ein Begriff und hatBetriebssystem eine Rolle ist. In Prädikatenlogik ausgedrückt:
(∀x)(P C(x) → (∀y)(hatBetriebssystem(x, y) → W indows(y)))
Eine Beschreibungslogik besitzt eine Wissensbasis KB (Knowledge Base), die
sich in die beiden Bereiche TBox und ABox aufteilt [BN03]. Die TBox enthält
das Modell der Wissensdomäne (terminologische Beschreibung, engl. terminology). Die ABox beinhaltet konkrete Daten (Behauptungen, engl. assertions). In
Prädikatenlogik ausgedrückt würden die Formeln in diejenigen aufteilt, die Variablen haben (TBox) und solche, in denen keine Variablen vorkommen (ABox).
Die kleinste, aussagenlogisch abgeschlossene Beschreibungslogik ist ALC [BHS07].
ALC steht für Attributive Language with Complex concept negation. Begriffe können
aus Konstruktoren dieser Sprache zusammengesetzt sein. Hierfür stehen die Konjunktion, Disjunktion und Negation geschrieben als u, t, ¬ bereit. Einschränkungen von Rollen sind mithilfe des Allquantors (∀) und des Existenzquantors (∃)
möglich. Die Klasse, die keine Individuen beinhaltet (leere Klasse), wird mit ⊥,
die Klasse, die alle Individuen enthält mit > bezeichnet.
OWL-Lite entspricht der Beschreibungslogik SHIF(D), OWL-DL entspricht
SHOIN (D). Jeder Buchstabe beschreibt ein bestimmtes Sprachelement, welches
in der jeweiligen Sprache erlaubt ist [BHS07]. So steht das S für die Beinhal-
16
2.3 Schlussfolgerungsverfahren in Expertensystemen
tung von ALC und Transitivität. Das I steht für inverse Rollen. Mit (D) wird
ausgedrückt, dass primitive Datentypen, wie Fließkommazahlen, in der Beschreibungslogik verwendet werden dürfen. Es existiert keine Beschreibungslogik für
OWL-Full. Die komplette Beinhaltung von RDF-Schema lässt die Übersetzung
der Sprache in eine prädikatenlogische Form zudem schwierig werden [HKR08].
Die genaue Abbildung von OWL-Sprachelementen auf Beschreibungslogik kann
in den im Anhang enthaltenen Tabellen A.1 und A.2 nachgeschlagen werden.
2.3 Schlussfolgerungsverfahren in Expertensystemen
Das Schlussfolgern (engl. Reasoning) in einem Expertensystem geschieht in der
Problemlösungskomponente anhand der aktuellen Wissensbasis. Die Repräsentation des Wissens hat dabei maßgeblichen Einfluss auf die Art des zu verwendenden
Schlussfolgerungsmechanismus. So kann auf prädikatenlogischem Wissen das Resolutionskalkül zum Beweisen von Aussagen genutzt werden [Pup91]. Regelwissen
lässt sich mittels Vorwärts- und Rückwärtsverkettung überprüfen [BKI06]. Sprachen, die sich für die objektorientierte Repräsentation eignen sind zum Beispiel
die KL-ONE Sprachen [BS85].
Zwei weitere Schlussfolgerungsformen sind das Schlussfolgern in OWL-Ontologien und das Finden eines Plans (Planen, engl. Planning), um von einer Ausgangssituation zu einem festgelegten Ziel zu gelangen. Das Planen wird von der
vorliegenden Arbeit für die Konstruktion einer IE-Pipeline genutzt. Daher findet es
im Folgenden eine besondere Erwähnung. Allerdings wird in Kapitel 4 auch dargelegt, warum sich gegen das direkte Reasoning auf der verwendeten OWL-Ontologie
entschieden wurde. Aus diesem Grund werden auch Aspekte der Schlussfolgerung
auf OWL-Ontologien im nächsten Unterabschnitt aufgeführt.
2.3.1 Schlussfolgern in OWL-Ontologien
Das Festhalten von Wissen in einer Wissensbasis in Form von Beschreibungslogik, wie es bei OWL-DL und OWL-Lite der Fall ist, eröffnet die Möglichkeit des
automatisierten Schlussfolgerns auf diesem Wissen. Der Computer kann daher
in OWL-verfassten Ontologien explizite Anfragen auf Basis des in der Ontologie
festgehaltenen Wissens beantworten.
OWL basiert auf der sogenannten Open World Assumption [Hor08]. Die Existenz von Wissen ist möglich, solange es nicht explizit ausgeschlossen werden kann.
Kann es weder ausgeschlossen noch bewiesen werden, so wird das Wissen als unbekannt bezeichnet. Das ist der Unterschied zur Closed World Assumption, bei der
alles Wissen, was nicht explizit dargestellt ist, als falsch bezeichnet wird. Die Wissensbasis muss hier demnach schon alles Wissen enthalten, wovon beim Schlussfolgern auch ausgegangen wird. Im Bereich der Datenbanken, aber auch in einigen
wissensbasierten Sprachen wie Prolog, lässt sich oft die Closed World Assumption
antreffen [Bri08].
17
2. Grundlagen
In OWL gilt überdies gegenüber der Datenbankwelt nicht die Unique Name
Assumption [Hor08]. Zwei Individuen mit unterschiedlichen Bezeichnern müssen
daher nicht zwangsläufig unterschiedliche Individuen sein. Zusammen mit der
Open World Assumption wird so in OWL zum Beispiel aus den Rollen hatProzessor(Amiga500, Motorola68000) und hatProzessor(Amiga500, M68k), zusammen
mit der Aussage, dass jeder Amiga höchstens einen Prozessor hat und Amiga500
ein Amiga ist, nicht etwa auf Inkonsistenz der Wissensbasis geschlossen, sondern
darauf, dass Motorola68000 und M68k zwei Bezeichner für dasselbe Individuum
sind. Inkonsistenzen ergeben sich nur, wenn sich die Aussage finden ließe, dass
Motorola68000 und M68k zwei unterschiedliche Individuen sein müssen [Hor08].
Dadurch wird deutlich, dass Anfragen auf OWL sehr viel schwieriger sind, als solche in normalen Datenbanken. In einer Datenbank erfüllen bereits alle Instanzen
das Datenbankschema und sind somit ihm gegenüber korrekt. In OWL muss unter
Umständen die komplette Ontologie in die Abfrage mit einbezogen werden. Das
lässt aber sehr viel mächtigere Abfragen möglich werden. Nicht nur das Abfragen
von Individuen (Ist Amiga500 ein Computer? ), sondern auch die Beantwortung
von Fragen über konzeptionelles Wissen (Sind alle Computer mit einem Prozessor
Amigas? ) wird hiermit durchführbar [Hor08].
Wichtige Anfragen, die an eine OWL Ontologie gestellt werden können, werden
als sogenannte Inferenzprobleme bezeichnet. Für die vorliegende Arbeit wichtige
Inferenzprobleme sind das der Instanzüberprüfung und das der Klasseninstanzen.
Bei der Instanzüberprüfung geht es darum zu beweisen, ob ein Individuum a zu
einer Klasse C gehört, also ob sich die Aussage C(a) logisch aus der Wissensbasis
folgern lässt. Bei der Bestimmung der Klasseninstanzen soll für alle Individuen der
ABox einer Wissensbasis eine Instanzüberprüfung in Bezug auf eine bestimmte
Klasse C durchgeführt werden. Somit werden alle Individuen bestimmt, die der
Klasse C zugerechnet werden können [HKR08].
Neben den aufgeführten Inferenzproblemen gibt es noch weitere, welche aber
für die vorliegende Arbeit eher unwichtig sind. Bei der Klassenäquivalenz soll
überprüft werden, ob zwei Klassen C und D identisch sind, also ob C ≡ D eine
logische Konsequenz aus der Wissensbasis ist. Das Problem der Unterklassenbeziehung (Subsumption) beschäftigt sich mit der Frage, ob sich die Beziehung C v D
logisch schlussfolgern lässt. Die Klassendisjunktheit liegt für zwei Klassen genau
dann vor, wenn C u D ≡ ⊥ eine logische Konsequenz aus der Wissensbasis darstellt. Die Klassenkonsistenz für eine Klasse C ist dann gegeben, wenn die Klasse
C leer ist, also C ≡ ⊥ logisch aus der Wissensbasis geschlossen werden kann. Alle
diese Probleme lassen sich auf den Nachweis der Widerspruchsfreiheit der Wissensbasis zurückführen [HKR08]. Eine Unterklassenbeziehung C v D gilt zum Beispiel genau dann, wenn die zugrunde liegende Wissensbasis KB ∪ (C u ¬D)(a)
unerfüllbar ist, wobei a ein Individuum ist, das noch nicht in der Wissensbasis
vorkommt. Beschreibungslogiken sind eine Teilmenge der Prädikatenlogik, daher
könnte durch eine Abbildung in Prädikatenlogik ein entsprechendes Inferenzverfahren, etwa ein Resolutionsverfahren, für die Beantwortung einer gestellten Anfrage verwendet werden. Die Prädikatenlogik ist allerdings nicht immer entscheidbar
18
2.3 Schlussfolgerungsverfahren in Expertensystemen
[BN03]. Daher gibt es spezielle Verfahren, die direkt auf den Beschreibungslogiken
arbeiten.
Ein solches Verfahren ist beispielsweise das Tableauverfahren. Mit ihm kann die
Unerfüllbarkeit der Wissensbasis einer Beschreibungslogik überprüft und damit
eine Anfrage beantwortet werden [BS00]. Hierbei wird versucht, einen Widerspruch
in der Wissensbasis zu finden. Dazu werden in der Wissensbasis solange logische
Konsequenzen der Form C(a) und ¬C(a) erzeugt, bis man auf einen Widerspruch
stößt. Genauere Informationen über die Funktionsweise von Tableaualgorithmen
finden sich in [BS00] oder auch [DGHP99]. Es gibt noch andere Verfahren für die
Schlussfolgerung auf OWL. Hier sei exemplarisch auf den Ansatz von Kaon2 in
[Mot06] verwiesen.5
Die Worst-Case-Komplexität des Tableauverfahrens für die Beschreibungslogik
ALC hinsichtlich der Inferenz, Erfüllbarkeit oder Widersprüchlichkeit einer Formel oder Wissensbasis liegt in ExpT ime. Auch die Worst-Case-Komplexität von
SHIF(D) (und damit OWL-Lite) liegt in ExpT ime, die von SHOIN (D) und
damit auch von OWL-DL sogar in N ExpT ime [Tob01].6 Die Komplexitätsklasse
ExpT ime bedeutet, dass eine deterministische Turing-Maschine das Problem in
exponentieller Zeit lösen kann. Die Probleme der Klasse N ExpT ime können von
einer nichtdeterministischen Turing-Maschine in exponentieller Zeit gelöst werden. Für eine eingehendere Betrachtung der Komplexitätsklassen sei auf [Tob01]
oder auch [Pap94] verwiesen. Im schlimmsten Fall können die Schlussfolgerungen
auf OWL-Ontologien also sehr lange dauern oder auch nicht mehr in einer akzeptablen Zeit durchgeführt werden. Standard-Schlussfolgerungswerkzeuge, die auf
einem Tableauverfahren basieren, sind Pellet [SPG+ 07] oder FaCT++ [TH06].
2.3.2 Planungsverfahren
Beim Planen wird versucht eine Folge von Aktionen zu bestimmen, um ausgehend
von einem Anfangszustand ein bestimmtes Ziel zu erreichen. Dies wird auch als
Planungsproblem bezeichnet [RN04]. In [NGT04] wird das klassische Planungsproblem P folgendermaßen beschrieben:
P = (Σ, s0 , g)
Σ = (S, A, γ)
Das Symbol Σ bezeichnet hier ein Zustandübergangssystem, wobei S die Zustände
und A die Aktionen beschreibt. Die Funktion γ gibt an, ob in einem Zustand s eine
Aktion a ausgeführt werden kann. Der Anfangszustand für ein Planungsproblem
wird mit s0 angegeben. Durch g werden die Ziele ausgedrückt, die ausgehend
von diesem Zustand unter Berücksichtigung des Zustandübergangssystems erreicht
5
6
http://kaon2.semanticweb.org/
Für einen interaktiven Überblick über die Komplexitätsklassen der einzelnen Beschreibungslogiken (samt Quellenangaben) sei folgender Link empfohlen: http://www.cs.man.ac.uk/
~ezolin/dl/
19
2. Grundlagen
A
B
Abbildung 2.3: Blocksworld im Zustand Zustand0
werden sollen. Bei der Formulierung eines Planungsproblems sind also folgende
Einzelheiten zu beachten:
• Die Repräsentation der Zustände S
• Die Repräsentation der Ziele g
• Die Repräsentation der Aktionen A
Ein Zustand der modellierten Welt wird beschrieben durch die Menge seiner Eigenschaften. Jede Eigenschaft ist eine Aussage in und über der modellierten beziehungsweise die modellierte Welt. Diese Zustände werden als Konjunktion positiver
Literale, die für eben diese Eigenschaften stehen, aufgefasst [RN04].
So kann in einer Welt, die einen Blöcke verschiebenden Greifer modelliert - das
Standardbeispiel Blocksworld -, ein Zustand folgendermaßen aussehen:
Zustand0 = { LiegtAuf (BlockA, BlockB), LiegtAuf T isch(BlockB),
IstF rei(BlockA), Greif erIstLeer() }
Hier wurde mithilfe von Prädikatenlogik ein möglicher Zustand beschrieben.7
Mögliche Prädikate, mit denen die modellierte Welt beschrieben werden kann,
sind in dem Beispiel LiegtAuf(x,y), LiegtAufTisch(x), IstFrei(x) und GreiferIstLeer(). Die angegebenen Konstanten sind die modellierten Objekte der Welt, also
BlockA und BlockB. In Abbildung 2.3 wurde der Anfangszustand Zustand0 in
einer Blocksworld visualisiert.
Ein Ziel in der Blocksworld könnte nun sein, dass nicht BlockA auf BlockB
liegt, sondern umgekehrt BlockB auf BlockA. Ziele können als partiell spezifizierte Zustände bezeichnet werden, welche ebenso wie vollständige Zustände durch
die Konjunktion positiver Literale beschrieben werden [RN04]. Das eben angesprochene Ziel kann daher folgendermaßen beschrieben werden:
ZustandZiel = { LiegtAuf (BlockB, BlockA), LiegtAuf T isch(BlockA) }
Zum Erreichen des Ziels muss der Greifer einige Aktionen durchführen. Er soll
den BlockA hoch heben und auf dem Tisch absetzen. Dann soll er den BlockB
nehmen und ihn auf BlockA ablegen. Damit wäre das Ziel erreicht.
7
Anzumerken ist hier, dass von der Closed World Assumption ausgegangen wird. So beinhaltet
der Zustand implizit: ¬IstFrei(BlockB), ¬LiegtAufTisch(BlockA), usw.
20
2.3 Schlussfolgerungsverfahren in Expertensystemen
Neben den Zuständen und Zielen der modellierten Welt müssen also auch die
in ihr möglichen Aktionen modelliert werden. Jede Aktion ist dabei eine konkrete
Instanz eines abstrakten Operators. Jeder Operator hat eine Reihe von Vorbedingungen, die in einem Zustand erfüllt sein müssen um ihn auszuführen, und eine
Reihe von Effekten, die nach seiner Ausführung im Folgezustand gelten [RN04].
Beispieloperatoren für die Blocksworld sind:
AufnehmenVomTisch(x)
Vorbedingungen: Greif erIstLeer(), LiegtAuf T isch(x), IstF rei(x)
Effekte: ¬Greif erIstLeer(), ¬LiegtAuf T isch(x), ¬IstF rei(x),
Greif erHält(x)
Aufnehmen(x,y)
Vorbedingungen: Greif erIstLeer(), LiegtAuf (x, y), IstF rei(x)
Effekte: ¬Greif erIstLeer(), ¬LiegtAuf (x, y), ¬IstF rei(x),
IstF rei(y), Greif erHält(x)
AblegenAufTisch(x)
Vorbedingungen: Greif erHält(x)
Effekte: LiegtAuf T isch(x), Greif erIstLeer(), IstF rei(x),
¬Greif erHält(x)
Ablegen(x,y)
Vorbedingungen: Greif erHält(x), IstF rei(y)
Effekte: LiegtAuf (x, y), Greif erIstLeer(), IstF rei(x),
¬IstF rei(y), ¬Greif erHält(x)
Durch Substitution der Variablen der Operatoren mithilfe der in der modellierten
Welt vorhandenen Objekten werden konkrete Aktionen angegeben. Die Ausführung
einer Aktion in einem Zustand führt zu einem Folgezustand, in welchem die durch
die Aktion beschriebenen Effekte gelten.8 Wendet man zum Beispiel die Aktion
Aufnehmen(BlockA, BlockB) auf den Anfangszustand Zustand0 an, so erhält man
folgenden Zustand:
Zustand1 = { Greif erHält(BlockA), LiegtAuf T isch(BlockB),
IstF rei(BlockB) }
Ein Plan wird nun beschrieben durch eine Reihe von nacheinander ausgeführten
Aktionen, die von einem Anfangszustand zu einem Zielzustand führen [RN04].
Ein Plan zum Erreichen des Zustandes ZustandZiel ausgehend von Zustand0 ,
welcher bereits sprachlich beschrieben wurde, lässt sich jetzt durch eine Reihe von
Aktionen angeben:
1. Aufnehmen(BlockA, BlockB)
8
Es wird implizit davon ausgegangen, dass alle von der Aktion nicht betroffenen, in dem Ausgangszustand geltenden Eigenschaften in seinem Nachfolgezustand weiterhin gelten. Dies
vermeidet das sogenannte Frame-Problem (das Aufzählen von allen durch die Aktion unveränderten Eigenschaften, siehe auch [MH69])
21
2. Grundlagen
2. AblegenAufTisch(BlockA)
3. AufnehmenVomTisch(BlockB)
4. Ablegen(BlockB, BlockA)
Diese Art der Modellierung ist nur eine von vielen Möglichkeiten. Zum Beispiel könnte der Tisch selbst ein Objekt sein und damit könnten die speziellen
Prädikate und Operatoren, die sich auf den Tisch beziehen, wegfallen. Darüber
hinaus kann man die Abstraktion beliebig erhöhen oder die Modellierung verfeinern. Das Aufnehmen und Ablegen von Blöcken könnte als eine einzige Aktion
Bewege(Wen, LiegtAufWem, Wohin) modelliert werden. Oder man modelliert die
Auf- und Abbewegungen des Greifers, sowie das Zupacken und Loslassen von ihm.
Die Granularität der Modellierung ist dem konkreten Anwendungsfall anzupassen.
Weiterhin ist die Sprache der Modellierung von Bedeutung. In den vorangegangenen Beispielen wurde Prädikatenlogik für das Beschreiben von Eigenschaften in
der modellierten Welt benutzt. Diese Eigenschaften könnten aber auch in Aussagenlogik oder den in Abschnitt 2.2 erwähnten Beschreibungslogiken festgehalten sein. Eine eigene Sprache für Planungsprobleme, die einen Standard in der
Planungsdomäne darstellt, ist die STRIPS (Stanford Research Institute Problem
Solver) Planning Language (im Folgenden nur STRIPS genannt) [FN71].
STRIPS basiert auf der Prädikatenlogik erster Stufe. Alle der in den eingangs
erwähnten Beispielen getroffenen Annahmen gelten auch in STRIPS (Closed World
Assumption, Vermeidung des Frame-Problems). Zudem gilt in STRIPS, dass jede
Konstante für ein anderes Objekt steht (Unique Name Assumption) und das keine
neuen Objekte in der modellierten Welt erzeugt werden können (Domain Closure Assumption). Jeder Zustand in STRIPS wird beschrieben durch eine endliche
Menge von atomaren variablenfreien und nicht negierten Prädikaten. Die Menge
der Prädikate eines Zustandes wird als Konjunktion aufgefasst, das bedeutet in einem konkreten Zustand müssen alle seiner Eigenschaften (Prädikate) erfüllt, also
wahr, sein. Die weiter oben angesprochenen Operatoren und Aktionen entsprechen
genau den Operatoren und Aktionen in STRIPS [FN71].
PDDL (Planning Domain Definition Language [MGH+ 98]) ist eine weitere Standardsprache zur Formulierung von Planungsproblemen. Diese Sprache wird zum
Beispiel für die International Planning Competition 9 von der International Conference on Automated Planning and Scheduling 10 (ICAPS) eingesetzt.
PDDL trennt das Planungsproblem auf in eine Beschreibung der Domäne und
einer Beschreibung des an diese Domäne gerichteten Problems. In der Beschreibung der Domäne werde alle Prädikate und Operatoren der modellierten Welt
aufgelistet. Prädikate entsprechen zum Beispiel den in Abschnitt 2.3.2 erwähnten
LiegtAuf(x,y) aus der Blocksworld. In der Problembeschreibung werden dann die
Objekte, der Anfangszustand und das gewünschte Ziel beschrieben.
9
10
http://ipc.icaps-conference.org/
http://icaps-conference.org/index.php/Main/HomePage
22
2.3 Schlussfolgerungsverfahren in Expertensystemen
PDDL stellt eine Erweiterung von STRIPS dar. In PDDL sind Funktionen definierbar, die dann in den Aktionen als Vorbedingungen oder Effekte genutzt werden
können. Damit einher geht die mögliche Benutzung von numerischen Werten und
nicht nur von Wahrheitswerten. Darüber hinaus ist es möglich, Effekte an Bedingungen zu knüpfen (when(geld > 0) → IstZinskonto(y)). Außerdem dürfen
in PDDL Metriken angegeben werden, um die Qualität eines Plans zu optimieren. Beispielsweise kann jeder Aktion ein Kostenwert zugewiesen werden und als
Planqualitätsmetrik die minimalen Gesamtkosten gesetzt werden. Es wird also
eine Zielfunktion angegeben, auf die dann der Plan hin optimiert wird. Zur weiteren Vertiefung der Eigenschaften von unterschiedlichen PDDL-Versionen sei auf
[MGH+ 98] und [FL03] verwiesen.
Im Folgenden werden nun Algorithmen vorgestellt, die zu einem Planungsproblem eine Lösung (einen Plan) berechnen können. Hierbei steht vor allem der
Partial Order Planner im Fokus, da auf seiner Basis in dieser Arbeit das Problem
der Konstruktion einer IE-Pipeline gelöst wird. Die Beschreibungen der anderen
Planungsverfahren werden für die Begründung der Wahl eines Partial Order Planner in Kapitel 4 benötigt.
Planen als Suche im Zustandsraum
Das Finden einer Lösung für ein Planungsproblem kann als Suche in einem Graph
aufgefasst werden. In diesem Graph existieren Knoten und gerichtete Kanten. Die
Knoten entsprechen den Zuständen, dass heißt ein Knoten steht für einen Zustand in dem bestimmte Eigenschaften gelten. Eine gerichtete Kante von Knoten
a nach Knoten b entspricht einer in dem zu Knoten a entsprechenden Zustand
ausführbaren Aktion, welche nach ihrer Ausführung zu dem Nachfolgezustand des
zu Knoten b gehörenden Zustandes führen würde. Wäre zum Beispiel der im vorherigen Abschnitt beschriebene Zustand0 der entsprechende Zustand von Knoten
a, so gäbe es eine gerichtete Kante mit der Aktion Aufnehmen(BlockA, BlockB)
zu einem Knoten b, der dem Zustand Zustand1 entspricht. Wie im vorherigen
Abschnitt beschrieben ist ein Zielzustand ein Zustand, der alle Eigenschaften des
gewünschten Ziels enthält. Bei der Suche im Zustandsraum gilt es also von einem
Startknoten, der den Anfangszustand beschreibt, zu einem Zielknoten zu kommen,
der einen Zielzustand beschreibt. Der Weg vom Startknoten zu einem Zielknoten,
also die Abfolge der gerichteten Kanten auf diesem Weg, ist der gewünschte Plan.
Der gerichtete Weg beschreibt hierbei die Reihenfolge der Aktionen, die durch die
gerichteten Kanten bestimmt wird [RN04].
In Abbildung 2.4 ist die in Abschnitt 2.3.2 eingeführte sehr einfach gehaltene
Blocksworld als Zustandsraumgraph zu sehen. Sehr leicht zu erkennen ist der Weg
vom Startzustand Zustand0 zum Zielzustand ZustandZiel . Für das Finden eines
solchen Weges gibt es verschiedene Algorithmen, von denen zwei im Folgenden
erklärt werden sollen.
23
2. Grundlagen
Ablegen(BlockA,BlockB)
A
B
Aufnehmen(BlockA,BlockB)
B
A
Zustand0
ZustandZiel
B
A
Aufnehmen
(BlockB,BlockA)
Aufnehmen
VomTisch
(BlockA)
AblegenAuf
Tisch(BlockA)
Ablegen(BlockB,
BlockA)
AblegenAufTisch(BlockB)
B
B A
A
AufnehmenVomTisch(BlockB)
Abbildung 2.4: Zustandsraumgraph für das Blocksworld Beispiel
Vorwärtssuche Unter der Vorwärtssuche im Zustandsraumgraph versteht man
das Finden des Weges ausgehend vom Startknoten vorwärts Richtung Zielknoten.
Den Pseudocode für die Vorwärtssuche zeigt Algorithmus 1. Zeile 7 ist hierbei entscheidend. Der Suchraumgraph kann unter Umständen sehr groß sein. Daher gilt es
in jedem Schritt eine möglichst gute“ Aktion auszuwählen, die einen möglichst
”
nahe an das Ziel heranbringt. Dadurch verringern sich die benötigten Schritte,
um vom Startzustand zu einem Zielzustand zu kommen, und daher steigt die
Ausführungsgeschwindigkeit des Algorithmus. Aber vor allem wird ein kürzerer
Plan erzeugt, was in den meisten Fällen ein besserer Plan bedeutet.
Neben der einfachen Breiten- und Tiefensuche im Suchraumgraph gibt es daher
noch speziellere Formen von Algorithmen, die versuchen, einen möglichst kurzen
Weg zum Ziel zu finden. Als Beispiel sei die Best-First-Search genannt, hier ist
vor allem A∗ bekannt. Diese Algorithmen benutzen in jedem Schritt Heuristiken,
um die nächste Aktion zu bestimmen. Ein weiteres Beispiel ist die Greedy-Search,
welche die zum Zeitpunkt der Auswahl als beste erscheinende Aktion wählen. Zur
weiteren Vertiefung sei auf [Nil98] oder [RN04] verwiesen.
Rückwärtssuche Bei der Rückwärtssuche im Zustandsraumgraph wird von einem Zielzustand ausgehend rückwärts Richtung Startzustand gesucht. Hierbei
werden die Zustände selbst nicht betrachtet, sondern nur die einzelnen zu erreichenden Ziele. Man nimmt die einzelnen Ziele, zum Beispiel LiegtAuf(BlockA,
BlockB), und sucht nach einer Aktion, die dieses Teilziel erfüllt; das bedeutet, die
Aktion enthält das Teilziel in ihrer Liste von Effekten. Die Vorbedingungen dieser Aktion werden dann der Menge an zu erreichenden Zielen hinzugefügt. Dies
wird solange wiederholt, bis alle aktuell vorhandenen Teilziele im Startzustand
24
2.3 Schlussfolgerungsverfahren in Expertensystemen
Algorithmus 1 Pseudocode Vorwärtssuche (vgl. [NGT04])
Eingabe: Aktionen AS, Startzustand ST ART , Ziele Z
Ausgabe: Gefundener Plan P LAN
1: P LAN ← ∅
2: S ← ST ART
3: while S enthält nicht alle Ziele Z do
4:
if Keine Aktion aus AS in S anwendbar then
5:
return Fehlschlag // Suche wird abgebrochen
6:
else
7:
Wähle anwendbare Aktion A aus
8:
P LAN ← P LAN ∪ A // Aktion A ans Ende des Plans stellen
9:
S ← Folgezustand nach Ausführung von A
10:
end if
11: end while
12: return P LAN
enthalten sind. Bei der Rückwärtssuche werden nur partielle Zustände betrachtet. Wichtig ist nur der Teil eines Zustands, aus dem sich unter Anwendung der
ausgewählten Aktion genau die momentanen Zielformeln im Folgezustand wiederfinden [Nil98].
Planen als Suche im Planraum
Ebenso wie bei der Suche im Zustandsraum kann auch die Suche im Planraum
als Suche in einem Graph aufgefasst werden. Im Planraum besteht dieser Graph
aus partiellen Teilplänen. Diese Teilpläne bilden die Knoten des Planraumgraphs.
Die Kanten geben die Erweiterungen an, die nötig sind, um von einem Teilplan zu
einem anderen zu kommen. Ein vollständiger Plan lässt sich aus einem Zielknoten
erzeugen [Nil98].
Ein Teilplan besteht aus partiell initialisierten Operatoren und Constraints. Das
bedeutet in ihm ist beschrieben, welche Aktionen bisher verwendet wurden, welche
Aktion vor welcher anderen auszuführen ist und welche Abhängigkeiten zwischen
den Aktionen bestehen. Die Reihenfolge der Aktionen ist nicht zwingenderweise
vollständig beschrieben, man spricht von einer partiellen Ordnung. So kann es
durchaus sein, dass zwischen mehreren Aktionen keine Reihenfolge festgelegt ist.
Die Abhängigkeiten zwischen den Aktionen beschreiben, welche Vorbedingung
einer Aktion bei welcher anderen benutzten Aktion in den Effekten steht. Diese
Abhängigkeiten nennt man auch kausale Links. Bei der Aufnahme von weiteren
Aktionen in den Teilplan, bei seiner Erweiterung, ist darauf zu achten, dass diese
kausalen Links nicht gefährdet werden.
So kann es drei Aktionen a, b, c geben. Eine Eigenschaft P taucht bei a in
den Effekten auf und bei b in den Vorbedingungen. So ergibt sich der kausale
Link (a, P , b). Daraus ergibt sich auch die Ordnungsrelation a < b; a soll vor
b ausgeführt werden. Die Aktion c hat nun ¬P in ihren Effekten stehen. Diese
25
2. Grundlagen
B
C
A
F
D
A
B
E
C
D
E
F
Abbildung 2.5: Topologische Sortierung eines Beispielgraphen
Aktion gefährdet damit den kausalen Link (a, P , b), denn es kann sein, dass die
Ausführung von c dazu führt, dass b nicht mehr ausgeführt werden kann. Die
Vorbedingung P von b wäre nicht mehr erfüllt. Dies ist genau dann der Fall,
wenn c zwischen der Ausführung von a und b ausgeführt wird. Das bedeutet,
der kausale Link ist sicher, wenn c entweder vor a oder nach b ausgeführt wird,
also wenn die Ordnungsrelationen c < a oder b < c gelten. Eigenschaften, die
als Vorbedingungen einer Aktion auftreten, und die bisher noch nicht in einer
anderen Aktion als Effekte standen, bilden die sogenannte Agenda eines partiellen
Teilplans, welche es abzuarbeiten gilt [RN04].
Ist die Agenda abgearbeitet, kein kausaler Link verletzt und existieren keine
Zyklen in den Ordnungsrelationen, dann befindet man sich in einem Zielknoten des
Planraumgraphs. Der partielle Teilplan ist vollständig. Er lässt sich nun auch allein
durch die Angabe der verwendeten Aktionen und durch die partielle Ordnung
zwischen diesen Aktionen beschreiben. Aus dieser partiellen Ordnung kann dann
mittels topologischer Sortierung ein sequentieller Plan erstellt werden [RN04].
Bei der topologischen Sortierung wird versucht, eine zulässige Reihenfolge der
Knoten eines Abhängigkeitsgraphen (Directed Acyclic Graph, DAG) zu finden. Ein
DAG ist ein gerichteter Graph, der keine Zyklen enthält. Für eine Kante (u, v)
gilt nach der topologischen Sortierung, dass der Knoten u vor dem Knoten v in
der Sortierung erscheint. Für die topologische Sortierung eines DAG kann eine
modifizierte Tiefensuche eingesetzt werden. Immer, wenn in der Tiefensuche ein
Knoten fertig abgearbeitet ist (also alle seine Nachfolger betrachtet wurden), wird
dieser Knoten an den Anfang einer verketteten Liste hinzugefügt. Die Reihenfolge
der Knoten in dieser Liste entspricht nach der Beendigung der Tiefensuche der
topologischen Sortierung des Graphen [CSRL01].
Der partielle Teilplan kann als Abhängigkeitsgraph G = (V, E) gesehen werden. Hierbei entspricht die Knotenmenge V den verwendeten Aktionen. Somit
steht jeder Knoten für genau eine verwendete Aktion. Die Ordnungsrelationen
beschreiben die Kantenmenge E. Eine Relation a < b bedeutet, dass zwischen
den Knoten für die Aktionen a und b eine gerichtete Kante verläuft. Sie ist von a
nach b gerichtet. Die topologische Sortierung des als DAG aufgefassten partiellen
Teilplans wird auch Linearisierung des Teilplans genannt [RN04]. In Abbildung
26
2.3 Schlussfolgerungsverfahren in Expertensystemen
Algorithmus 2 Pseudocode Partial Order Planning (vgl. [Wel94])
Eingabe: T eilplanstart
Ausgabe: T eilplancomplete
1: while Agenda 6= ∅ do
2:
next subgoal ← (P, a) ∈ Agenda
3:
Agenda ← Agenda − (P, a)
4:
Aktion b ← Aktion x, P ∈ x.EF F ECT
5:
AS ← AS ∪ b
6:
OS ← OS ∪ (b < a)
7:
CS ← CS ∪ (b, P, a)
8:
if b gefährdet einen kausalen Link (c, Q, d) ∈ CS then
9:
OS ← (OS ∪ (b < c)) ∨ (OS ∪ (d < b))
10:
end if
11:
if b0 ∈ AS gefährdet den kausalen Link (b, P, a) then
12:
OS ← (OS ∪ (b0 < b)) ∨ (OS ∪ (a < b0 ))
13:
end if
14:
if b ∈
/ AS then
15:
for all Pi ∈ b.P RECON D do
16:
Agenda ← Agenda ∪ (Pi , b)
17:
end for
18:
end if
19: end while
20: return Entstandenen partiellen Plan T eilplancomplete = (AS, OS)
2.5 ist ein Beispiel für die topologische Sortierung eines Graphen abgebildet.
Die Durchführung einer topologische Sortierung ist allerdings kein Muss. Hier
liegt die Besonderheit beim Planen als Suche im Planraum. Anstatt einem sequentiellen Plan kann der entstandene partielle Teilplan genutzt werden, um zum Beispiel einen parallelisierbaren Plan zu entwickeln. Dies ergibt sich aus den partiellen Ordnungsrelationen. Existieren zum Beispiel Aktionen a, b, c, d, sowie die Ordnungsrelationen a < d, a < b, a < c, b < d, c < d, so ergibt sich die Möglichkeit, die
Ausführung von b und c parallel durchzuführen. Denn es ist nur beschrieben, dass
a vor allen anderen und d nach allen anderen Aktionen ausgeführt werden soll.
Diese Informationen würden bei einer Linearisierung verloren gehen. Außerdem
bestünde die Möglichkeit, dass spätere Informationen eine bessere Einschätzung
möglich machen, bezüglich der Reihenfolge der Ausführung von b und c [RN04].
Ein Algorithmus für die Suche im Planraumgraph ist das Partial Order Planning. Mit ihm lässt sich aus den Informationen, was das Ziel ist und welche Ausgangssituation vorliegt, ein vollständiger partieller Plan erzeugen, der dann linearisiert werden kann. Dieser Algorithmus stellt auch die Basis für das in Kapitel 4
beschriebene Verfahren zur Konstruktion einer IE-Pipeline dar.
Der Pseudocode für das Partial Order Planning ist in Algorithmus 2 zu sehen.
Die verwendeten Aktionen werden in der Menge AS gespeichert. Vorbedingungen
einer Aktion x stehen in x.P RECON D, ihre Effekte in x.EF F ECT . Die parti-
27
2. Grundlagen
A
B
Start
LiegtAuf(BlockA,BlockB)
LiegtAufTisch(BlockB)
IstFrei(BlockA)
GreiferIstLeer()
GreiferHält(BlockA)
AblegenAufTisch(BlockA)
¬GreiferHält(BlockA)
IstFrei(BlockA)
GreiferHält(BlockB)
GreiferIstLeer()
LiegtAufTisch(BlockA)
IstFrei(BlockA)
Ablegen(BlockB,BlockA)
LiegtAuf(BlockB,BlockA) GreiferIstLeer()
IstFrei(BlockB)
LiegtAuf(BlockB,BlockA)
¬IstFrei(BlockA) ¬GreiferHält(BlockB)
LiegtAufTisch(BlockA)
Finish
B
A
Abbildung 2.6: Beispiel eines partiellen Teilplans
ellen Ordnungsrelationen zwischen den Aktionen finden in der Menge OS Platz.
In CS stehen die kausalen Links. Die Agenda enthält Teilziele der Form (P, a),
das bedeutet eine Aktion a hat eine Vorbedingung P , welche noch nicht von einer
anderen Aktion erfüllt wurde. Im initialen partiellen Teilplan T eilplanstart existieren zwei Hilfsaktionen start und f inish in AS und die Relation start < f inish
in OS. Die Aktion start hat alle Eigenschaften der Ausgangssituation (entspricht
dem Anfangszustand im Zustandsraum) als Effekte in seiner Effektliste. Die Aktion f inish enthält alle zu erreichenden Teilziele als Vorbedingungen. Diese Vorbedingungen sind demnach auch initialer Bestandteil der Agenda.
Zum Beschreiben eines vollständigen, partiellen Plans reichen bereits die verwendeten Aktionen AS und die partiellen Ordnungsrelationen zwischen den Aktionen in OS aus. Der Algorithmus arbeitet die Agenda schrittweise ab. Dabei
kann es natürlich vorkommen, dass neue Teilziele auf die Agenda kommen (Zeile
16). In Zeile 8-13 werden die gefährdeten Links wieder sicher gemacht. Voraussetzung dafür ist, dass der Algorithmus Aktionen in Zeile 4 so wählt und deren
Anordnung so setzt, dass jeder gefährdete Link gesichert werden kann. An diesen
Stellen verhält sich der Algorithmus nicht-deterministisch [RN04].
In Abbildung 2.6 ist ein partieller Teilplan zu sehen, der als Knoten eines
Planraumgraphs von einem Partial Order Planner erreicht worden ist. Neben
Start und F inish hat dieser bereits zwei Aktionen AblegenAuf T isch(BlockA)
und Ablegen(BlockB, BlockA) zu AS hinzugefügt. In CS existieren drei kausale
Links:
(AblegenAuf T isch(BlockA), IstF rei(BlockA), Ablegen(BlockB, BlockA))
28
2.3 Schlussfolgerungsverfahren in Expertensystemen
(AblegenAuf T isch(BlockA), LiegtAuf T isch(BlockA), F inish)
(Ablegen(BlockB, BlockA), LiegtAuf (BlockB, BlockA), F inish)
In der Ordnungsrelation OS befinden sich bisher folgende Relationen:
Start < F inish
AblegenAuf T isch(BlockA) < Ablegen(BlockB, BlockA)
AblegenAuf T isch(BlockA) < F inish
Ablegen(BlockB, BlockA) < F inish
Auf der Agenda des Planers befinden sich die beiden noch nicht erfüllten Teilziele Greif erHält(BlockA) und Greif erHält(BlockB). Ausgehend von diesem
partiellen Teilplan könnte der Partial Order Planner nun zum Beispiel die Aktion Auf nehmenV omT isch(BlockB) zu AS hinzunehmen und somit den nächsten
Knoten des Planraumgraphs erreichen und dann entsprechend die Mengen OS,
CS und die Agenda anpassen.
Andere Planungsverfahren
Neben den klassischen Planungsverfahren der Suche im Zustandsraum bzw. im
Planraum, existieren noch weitere. Zwei dieser Planungsverfahren sollen im Folgenden kurz vorgestellt werden, da im späteren Konzeptteil eine Begründung,
warum diese nicht für die Konstruktion der IE-Pipeline genutzt wurden, angeführt
wird.
Hierarchical Task Network Planning Beim Hierarchical Task Network Planning (HTN Planning) wird ein Planungsproblem dadurch gelöst, dass dieses hierarchisch zerlegt wird. Das initiale Planungsproblem entspricht einem Plan auf der
höchsten Ebene. Die Pläne werden dann schrittweise durch Aktionszerlegungen
verfeinert. Diese Pläne können solange verfeinert werden, bis man nur noch sogenannte primitive Aktionen im Plan hat, die sich nicht weiter verfeinern lassen.
Das bedeutet, beim Hierarchical Task Network Planning werden bestehende Pläne
weiter konkretisiert, während bei den bereits besprochenen Planungsverfahren der
Plan von Grund auf aufgebaut wird. Um eine Aktion zu zerlegen, muss in einer
sogenannten Planbibliothek eine mögliche Verfeinerung dieser Aktion angegeben
sein. Dies bedeutet aber auch, dass für das HTN Planning eben diese Planbibliothek bereitstehen muss. Diese kann einerseits durch Experten aufgebaut, aber vor
allem auch durch den Einsatz von maschinellen Lernverfahren und Beispielplänen,
mit denen der Computer dann selbst die Planbibliothek konstruieren kann, erreicht
werden [RN04].
29
2. Grundlagen
Planen als Erfüllbarkeitsproblem Das Planungsproblem kann auch als Erfüllbarkeitsproblem angesehen werden. Hierzu wird das Planungsproblem als aussagenlogische Formel in konjunktiver Normalform aufgefasst und umgeformt. Anschließend wird mithilfe eines SAT-Solver (einer Anwendung die zum Lösen des
Erfüllbarkeitsproblems eingesetzt wird) versucht, eine erfüllende Belegung für die
Aktionen zu finden. Aus den Aktionen, die mit wahr belegt wurden, ergibt sich
dann der resultierende Plan.11 Ein großes Problem bei dieser Art des Planens ist
die große Menge an unterschiedlichen Aussagensymbolen. In [RN04] wird allein
die Menge der unterschiedlichen Aktionssymbole folgendermaßen abgeschätzt:
Menge Aktionssymbole := O(T × |Operatoren| × |Objekte|P )
Hierbei ist T die Anzahl an (Zeit-)Schritten des Plans, Operatoren gibt die Anzahl
an Operatoren an, Objekte beschreibt die Anzahl der Objekte in dem Planungsproblem (dies entspräche der Anzahl an Konstanten, wenn zur Beschreibung des
Planungsproblems Prädikatenlogik verwendet werden würde), mit P schließlich
werden die maximalen Argumente der Operatoren ausgedrückt. Die Menge der
Gesamtklauseln ist allerdings erheblich größer und der dadurch benötigte Speicherverbrauch stellt den limitierenden Faktor beim Einsatz dieser Art des Planens
dar [RN04].
2.4 Information Extraction
Nachdem in den vorherigen Abschnitten der Bereich Expertensysteme und die damit verbundenen Aspekte erläutert wurden, soll im Folgenden die Domäne des zu
entwickelnden Expertensystems beleuchtet werden. Diese Domäne ist die Information Extraction. In diesem Bereich gibt es zwei Teilbereiche, die für diese Arbeit
von besonderem Interesse sind. Das sind zum einen die Information-ExtractionPipelines, die es von dem in dieser Arbeit zu entwickelndem Expertensystem zu
konstruieren gilt, und zum anderen mögliche Qualitätsmaße der einzelnen Information Extraction-Verfahren, anhand derer eine Bewertung eben dieser Verfahren
hinsichtlich ihrer Effizienz und Effektivität möglich wird. Dies ist von entscheidender Bedeutung, wenn das Expertensystem vor der Auswahl von geeigneten
Verfahren für eine Information-Extraction-Pipeline steht.
2.4.1 Die Domäne Information Extraction
Die Information Extraction (IE) ist ein Teilbereich der natürlichen Sprachverarbeitung (engl. Natural Language Processing, NLP). Innerhalb der IE liegt die
11
Das Ganze wurde hier etwas vereinfacht dargestellt. Es müssen zum Beispiel verschiedene
Zeitpunkte, wann eine Aktion ausgeführt wird, betrachtet werden, denn diese Ausführungsreihenfolge entspricht ja gerade dem Plan. Die Umformung in eine aussagenlogische Formel
wird dadurch um einiges komplexer.
30
2.4 Information Extraction
Kernaufgabe darin, spezifische, implizite Informationen aus natürlichsprachigem
Text zu extrahieren [JM08]. Der unstrukturierte, natürlichsprachige Text ist die
Eingabe für die IE. Als Ausgabe werden dann strukturierte und eindeutige Daten
geliefert. Die gefundenen Daten können direkt einem interessierten Nutzer angezeigt werden. Durch die eindeutige und strukturierte Form besteht aber vor allem
auch die Möglichkeit, mit ihnen Datenbanken zu füllen [Cun05].
Das Extrahieren von Marktvorhersagen aus Wirtschaftsnachrichten im World
Wide Web ist ein Beispiel für eine IE-Aufgabe (vgl. [WPS10]). Dabei wird versucht, beispielsweise in Nachrichtenartikeln Marktvorhersagen zu identifizieren
und zu extrahieren. Marktvorhersagen sind Umsatzaussagen von Unternehmen,
die sich auf die Zukunft beziehen. Eine Marktvorhersage ist dabei ein sogenanntes
Ereignis. Es besteht aus mehreren Teilen, sogenannten Named Entities (benannten Entitäten). Eine Entität der Marktvorhersage könnte das Unternehmen sein,
auf das sich die Vorhersage bezieht. Eine weitere Entität könnte eine Zeitinformation sein, die beschreibt auf welchen Zeitraum sich die Vorhersage bezieht. Auch
der prognostizierte Umsatz des Unternehmens in Form einer Geldaussage ist eine
Entität. Die Marktvorhersage lässt sich also als mehrstellige Relation zwischen
Entitäten, etwa (Unternehmen, Zeitaussage, Geldaussage), beschreiben. In dieser Form werden die Informationen, die Daten, aus dem natürlichsprachigen Text
extrahiert und in eine Datenbank geschrieben. Daraufhin können spezielle Abfragen auf die Datenbank erfolgen, um etwa alle Marktvorhersagen bis zu einem
bestimmten Jahr, oder alle zukünftigen Marktvorhersagen, die eine Geldsumme
von mehr als 15 Millionen Euro betreffen auszuwählen. Auf Basis dieser Informationen können dann bestimmte Entschlüsse gefasst werden, zum Beispiel das
An- und Verkaufen von Aktien an der Börse. Das schnelle Extrahieren von Informationen durch Information Extraction kann daher von großer wirtschaftlicher
Bedeutung sein.
Eine Marktvorhersage setzt sich, wie bereits erwähnt, aus verschiedenen Entitäten und den Relationen zwischen ihnen zusammen. Diese einzelnen Entitäten
müssen identifiziert werden damit die Bestimmung der Marktvorhersage möglich
ist. Daher muss es Verfahren geben, die jede dieser Entitäten in einem Text findet
(ein sogenannter Named Entity Recognizer, NER). In der IE spricht man davon,
dass die gefundenen Informationen im Text annotiert werden. Das Wort Microsoft
innerhalb eines Fließtexts könnte demnach von einem bestimmten IE-Verfahren
als Unternehmen gekennzeichnet werden. Damit dies möglich ist, muss zuerst der
Text in Sätze und Tokens zerlegt werden. Tokens sind die kleinsten semantischen
Bedeutungseinheiten eines Textes, zum Beispiel einzelne Wörter. Für die Bestimmung dieser grundlegenden Informationen sind Verfahren des NLP notwendig, die
sogenannte Vorverarbeitung der IE [JM08]. Sind die Entitäten eines Textes identifiziert, kann ein IE-Verfahren entscheiden, ob innerhalb eines Textabschnittes
von einer Marktvorhersage gesprochen wird. Hierfür kann es nötig sein, dass wiederum bereits andere Vorinformationen vorzuliegen haben. Ausgehend von den
Sätzen und Tokens können zum Beispiel von einem anderen Verfahren die Subjekte und Verben eines Satzes bestimmt werden. Dafür sind ebenfalls spezielle
31
2. Grundlagen
Verfahren notwendig. Das Vorhandensein dieser Informationen ermöglicht das InBeziehung-Setzen der Entitäten miteinander, um dann eine Marktvorhersage zu
identifizieren.
Das Beispiel zeigt, dass unterschiedliche IE-Verfahren unterschiedliche Daten,
in Form gemachter Annotationen am Text, liefern. Die meisten Verfahren können
nicht direkt auf der Basis des reinen Fließtextes arbeiten. Manche setzen voraus, dass bereits Sätze identifiziert wurden. Wieder andere benötigen das Vorhandensein von bestimmten Entitäten, damit sie tiefer gehende Informationen, wie
Marktvorhersagen, im Text finden und kennzeichnen können. Die benötigten Annotationen können demnach als Eingaben eines Algorithmus aufgefasst werden.
Die Ausgabe eines Algorithmus sind die von ihm gekennzeichneten Annotationen.
Das bedeutet, die Mehrzahl der Verfahren baut aufeinander auf. Sie erweitern dabei sukzessiv die gefundene Menge an Daten aus einem Text. Die Berücksichtigung
dieser Abhängigkeiten zwischen den Algorithmen ist von zentraler Bedeutung für
das in dieser Arbeit entwickelte Expertensystem.
Jede Art von Information kann von einem anderen Verfahren, einem anderen
Algorithmus, annotiert werden. Ein Algorithmus, welcher Unternehmen in Texten identifiziert, führt dies mit einer bestimmten Effizienz und Effektivität durch,
sobald alle für seine Ausführung benötigten Daten vorhanden sind. Normalerweise ist das Ziel, möglichst gute Ergebnisse zu bekommen. Der angesprochene
Algorithmus sollte also alle Unternehmen im Text finden, auch wenn dies lange
dauert. Es kann aber auch Situationen geben, in denen möglichst schnell Ergebnisse geliefert werden sollen. Dabei ist es egal, ob ein paar Informationen im Text
nicht gefunden werden. Zum Beispiel kann es sein, dass die Marktvorhersagen in
Web-Artikeln möglichst schnell identifiziert werden sollen, damit der Anwender
einen zeitlichen Vorteil auf dem Aktienmarkt bekommt. Aus diesem Grund kann
es mehrere Algorithmen geben, die die gleichen Daten liefern aber eine unterschiedliche Effizienz und Effektivität haben. All dies muss bei der Entwicklung
des Expertensystems berücksichtigt werden. Die Art der Algorithmen kann dabei
vollkommen unterschiedlich sein. So existieren Algorithmen, die auf Basis eines
maschinellen Lernverfahrens arbeiten, aber auch solche, die regelbasiert vorgehen
oder zum Beispiel einfach einen Abgleich mit einem Wörterbuch machen [JM08].
Für genauere Informationen über die Funktionsweise von und Algorithmen für die
einzelnen IE-Aufgaben sei an dieser Stelle auf [JM08] verwiesen.
2.4.2 Information-Extraction-Pipelines
Die einzelnen Algorithmen der IE und NLP liefern unterschiedliche Daten. Dabei brauchen sie größtenteils, wie schon beschrieben, bereits im Text gefundene
Daten für ihre erfolgreiche Ausführung. Sie bauen also aufeinander auf und es bestehen Abhängigkeiten zwischen ihnen für eine erfolgreiche Ausführung. Um diese
Abhängigkeiten zu berücksichtigen, befinden sich die Algorithmen meist in einer
sequentiellen Anordnung. Diese Anordnung wird Information-Extraction-Pipeline
(IE-Pipeline) genannt. Eine IE-Aufgabe, wie das Finden von Marktvorhersagen,
32
2.4 Information Extraction
wird durch die Ausführung der IE-Pipeline gelöst. Die durch die IE-Aufgabe spezifizierten zu identifizierenden Informationen sind also das Ziel der IE-Pipeline.
Eine solche IE-Aufgabe ist Teil der Eingabe des von dieser Arbeit zu entwickelnden Expertensystems und hat bei der Konstruktion einer IE-Pipeline eine große
Bedeutung. Eine IE-Pipeline soll in den meisten Fällen möglichst effektiv sein. Allerdings soll sie dabei auch immer so effizient wie möglich sein. Aus diesem Grund
gibt es eine Reihe von Paradigmen, die bei der Konstruktion einer IE-Pipeline, und
somit auch von dem in dieser Arbeit entwickelten Expertensystem, berücksichtigt
werden sollen.
Definition von Information-Extraction-Pipelines
In [WSE11] werden IE-Pipelines als Tupel Π hA, πi definiert. Hierbei bezeichnet
π = (A1 , . . . , An ), Ai ∈ A einen Schedule der einzelnen IE-Analyseschritte Ai aus
der Gesamtmenge von IE-Analyseschritten A. Die Menge A = {A1 , . . . , Ak } ordnet jedem Analyseschritt einen konkreten Algorithmus zu, der die diesem Schritt
zugrundeliegende Aufgabe löst und die benötigten Daten bereit stellt.
Ein Analyseschritt kann etwa das Annotieren von Sätzen oder Unternehmensentitäten im Text sein. Es wird also verlangt, dass nach diesem Analyseschritt Sätze
beziehungsweise Unternehmen annotiert sind. Hierfür wird dem Analyseschritt
ein entsprechender Algorithmus zugeordnet, der eben jene Sätze beziehungsweise
Unternehmen annotieren kann. Diese Annotationen stellen also seine Ausgabe dar.
Manche Algorithmen werden ihre Aufgabe nicht erfüllen können, wenn die
benötigten Annotationen nicht vorliegen, bei anderen sinkt hierdurch ihre Effektivität. Aus diesem Grund sollen nur zulässige IE-Pipelines betrachtet werden. Dies
sind solche Pipelines, deren Schedule π alle Eingabeanforderungen erfüllt, die von
der Menge verwendeter Algorithmen A aufgestellt werden. Hierdurch bleibt die Effektivität der einzelnen Algorithmen auch bei verschiedenen Schedules gleich, die
Menge an anwendbaren Schedules wird aber eingeschränkt [WSE11]. Das bedeutet, bei der Ausführung eines Algorithmus der IE-Pipeline ist davon auszugehen,
dass alle seine Eingaben, also die am Text annotierten Daten, bereits vorliegen.
Demnach sind die Algorithmen, die diese Eingaben als Ausgaben haben, hier bereits ausgeführt worden. Das von dieser Arbeit zu entwickelnde Expertensystem
darf nur zulässige IE-Pipelines konstruieren. Darüber hinaus sollen diese Pipelines
aber auch immer so effizient wie möglich sein. Methoden dazu werden im nächsten
Abschnitt beschrieben.
Konstruktion von effizienten Information-Extraction-Pipelines
Ziel dieser Arbeit ist ein Expertensystem, welches automatisiert effiziente IEPipelines konstruieren soll. Eine Methode, um effiziente IE-Pipelines aufzubauen,
wird in [WSE11] vorgestellt. In der vorliegenden Arbeit wird versucht, die Methode
weitestgehend in dem zu entwickelnden Expertensystem umzusetzen. Die Methode
umfasst vier Paradigmen, die im Folgenden vorgestellt werden.
33
2. Grundlagen
Paradigma 1: Maximum Decomposition Damit der gewählte Schedule der einzelnen IE-Analyseschritte zu einer möglichst effizienten IE-Pipeline führt, müssen
diese einzelnen IE-Aufgaben soweit wie möglich in ihre einzelnen Analyseteile zerlegt werden. Dies erfordert auch, dass die Algorithmen, welche einem IEAnalyseschritt zugrunde liegen, in gleicher Weise aufgeteilt werden. Dadurch ist
ein feinerer Schedule möglich, wie ihn die nächsten beiden Paradigmen erfordern.
Weiterhin kann die Effizienz der entstehenden IE-Pipeline dahingehend gesteigert
werden, dass für die IE-Gesamtaufgabe nur noch die IE-Aufgaben behandelt werden, die zum Lösen der Gesamtaufgabe auch wirklich gebraucht werden.
Ein Algorithmus, der Unternehmen und Personen als Entitäten in einem Text
identifiziert, könnte zum Beispiel in zwei Algorithmen zerlegt werden. Jeder der
Algorithmen ist dann entweder für die Annotation von Unternehmen oder Personen zuständig. Braucht man beispielsweise für die Identifizierung von Marktvorhersagen nur das Vorhandensein von Unternehmen in einem Text, so braucht der
Algorithmus, der Personen findet, nicht ausgeführt zu werden. Hiermit wird die
Effizienz der IE-Pipeline gesteigert.
Dieses Paradigma wird von dieser Arbeit nicht weiter behandelt, da es eine
genaue Kenntnis der Implementierung der einzelnen IE-Verfahren und Algorithmenimplementierungen erfordert. Die Verbesserung beziehungsweise Verfeinerung
der IE-Algorithmen liegt allerdings außerhalb des Fokus dieser Arbeit. So setzt
diese Arbeit eine schon durchgeführte Maximum Decomposition der vorhandenen
IE-Aufgaben und Algorithmen voraus.
Paradigma 2: Early Filtering Durch das Einführen von Filtern nach einem IEAlgorithmus der IE-Pipeline kann die Gesamteffizienz der Pipeline erheblich gesteigert werden. Ein Filter entfernt alle Textstellen, in denen die jeweilige Ausgabe des Algorithmus nicht vorkommt. Ein Filter nach der Identifizierung von
Unternehmensentitäten lässt daher für die nachfolgenden Algorithmen nur den
Text durch, der auch eben jene Entitäten enthält. Dies bedeutet, dass spätere
Analyseverfahren nur noch den Text untersuchen müssen, indem die benötigten
Annotationen auch wirklich vorliegen.
Als Filterverfahren werden die Algorithmen bezeichnet, nach denen gefiltert
wird. Gefiltert wird immer dann, wenn ein für die Bewältigung der IE-Pipeline
zugrundeliegenden IE-Aufgabe wichtiger Analyseschritt durchgeführt worden ist.
Besteht die IE-Aufgabe in der Identifizierung von Marktvorhersagen der Form
(Unternehmen, Zeitaussagen, Geldaussagen), so ist jeder Algorithmus, der Teile
dieser Aufgabe löst, ein Filterverfahren. Dies sind bei dem Beispiel die Algorithmen, welche Unternehmen, Zeitaussagen und Geldaussagen im Text identifizieren,
sowie der Algorithmus, der darauf aufbauend Marktvorhersagen erkennt. Filteringstages werden die Teile der Pipeline genannt, welche nach einem Filterverfahren anfangen und sich bis einschließlich dem jeweils nächsten Filterverfahren
zuzüglich seinem Filter erstrecken.
Beim Early Filtering geht es nicht um das Filtern an sich, sondern um das
34
2.4 Information Extraction
möglichst frühe Filtern. Das bedeutet, die IE-Pipeline wird so umgestellt, dass
die Filterverfahren so früh wie möglich ausgeführt werden. Dadurch arbeitet der
nachfolgende Teil der IE-Pipeline auf einer kleineren Textmenge und somit wird
die Gesamteffizienz der Pipeline erhöht.
Paradigma 3: Lazy Evaluation Durch die Verzögerung der Ausführung der einzelnen Algorithmen ist nach der Beachtung von Paradigma 2 eine weitere Steigerung der Effizienz der IE-Pipeline möglich: Ein Algorithmus wird erst ausgeführt,
wenn seine Ergebnisse auch wirklich benötigt werden. Des Weiteren werden nur
die nach der vorherigen Filterung übrig gebliebenen Textstellen betrachtet. Somit
kann eine Verzögerung eines wenig effizienten Algorithmus die Gesamteffizienz
dahingehend verbessern, dass er bei einer späteren Ausführung nach anderen IEAnalyseschritten weit weniger Text analysieren muss, da ein Großteil eventuell
schon durch vorhergehendes Filtern aussortiert wurde. Dieses Paradigma zeigt
damit auch das Potenzial hinsichtlich der Effizienz, dass in einer maximalen Zerlegung der einzelnen IE-Aufgaben aus Paradigma 1 steckt.
Paradigma 4: Optimized Scheduling Nach Durchführung der ersten drei Paradigmen kann durch die optimale Anordnung der einzelnen Filterverfahren hinsichtlich der Menge an gefilterten Sätzen die Effizienz der IE-Pipeline zusätzlich
erhöht werden. Hierbei wird die Menge an gefiltertem Text im Verhältnis zum Gesamttext, die sogenannte Filterrate, als Basis genommen. Bei zwei Analysephasen
A1 und A2 wird dann diejenige zuerst ausgeführt, die in der gleichen Zeit mehr
Text heraus filtert.
Die von diesem Paradigma benötigte Filterrate des jeweiligen Filterverfahren
ist allerdings stark abhängig von der Art des zu analysierenden Textes. Ist für den
Algorithmus, welcher Unternehmensentitäten bestimmt, bei einer Textmenge eine
hohe Filterrate ermittelt worden, so kann dies nicht direkt auf eine andere Textmenge übertragen werden. Ist die Filterrate bei Wirtschaftsnachrichten noch niedrig, so kann sie bei Boulevardnachrichten sehr hoch sein, da dort eventuell gar keine
Unternehmen vorkommen und somit der komplette Text heraus gefiltert wird. Die
Filterraten müssten demnach dynamisch während der Pipeline-Ausführung ermittelt werden. Aus diesem Grund betrachtet diese Arbeit das Paradigma Optimized
Scheduling in der vorgestellten Form nicht.
2.4.3 Effizienz und Effektivität im Bereich Information
Extraction
Die vom Expertensystem konstruierten IE-Pipelines unterliegen bestimmten Anforderungen hinsichtlich ihrer Qualität. Unterschiedliche Einsatzbereiche für die
zu konstruierende IE-Pipeline können zu unterschiedlichen Pipelines führen, auch
wenn das Ziel dieser Pipelines, die zugrundeliegende IE-Aufgabe, das gleiche ist.
Die Effizienz und die Effektivität als Qualitätsmaße der Pipelines sind hierbei die
35
2. Grundlagen
wesentlichen Unterschiede. Wie schon in einigen Beispielen dargelegt, kann es notwendig sein, eine möglichst effiziente oder effektive IE-Pipeline zu haben. Effizienz
im Arbeiten der Pipeline ist immer dann notwendig, wenn die Informationen, welche die Pipeline liefern soll, schnell und unmittelbar gebraucht werden, wie etwa
Marktvorhersagen für das Agieren am Aktienmarkt.
Die IE-Pipeline besteht aus ihren sequentiell angeordneten Algorithmen. Effizienz und Effektivität der gesamten IE-Pipeline beim Bewältigen einer IE-Aufgabe
sind daher direkt abhängig von der Effizienz und Effektivität der einzelnen Algorithmen. Zwischen Effizienz und Effektivität der Algorithmen besteht aber im
Allgemeinen ein Trade-Off [WSE11]. Ein Algorithmus braucht mehr Zeit für die
Analyse des Textes, wenn er bessere Ergebnisse liefern soll. Umgekehrt kann
er nicht die besten Ergebnisse herausfinden, wenn ihm nicht genügend Zeit zur
Verfügung steht. Daher existieren, wie bereits in Abschnitt 2.4.1 angesprochen,
oft mehrere Algorithmen für die gleiche IE-Aufgabe, wobei die eine Gruppe effizient aber weniger effektiv ist und die andere Gruppe genau umgekehrt. Hinsichtlich
der benötigten Qualität einer IE-Pipeline, gemessen in ihrer Effizienz oder Effektivität, müssen daher die dafür geeignetsten einzelnen Algorithmen ausgewählt
werden.
Hierfür ist es allerdings erforderlich, die benötigte Qualität der Algorithmen
einschätzen zu können. Für die Beurteilung von Effizienz und Effektivität gibt
es verschiedene Qualitätsmaße. Im Bezug auf die Effektivität benutzt [WSE11]
Recall, Precision, F-Measure, Accuracy und den Labeled Attachment Score. Für
die Effizienz bietet [WSE11] die Maße Average Sentence Response Time, Averaged Efficiency und Averaged Efficiency at Effectiveness an. Da die von dem
entwickelten Expertensystem verwendete IE-Algorithmenmenge aus der Arbeit
von [WSE11] stammt, und somit diese Algorithmen auch Werte für die angesprochenen Effizienz- und Effektivitätsmaße besitzen, sollen diese Maße im Folgenden
näher erläutert werden.
Effektivitätsmaße
Die Effektivität eines IE-Algorithmus ist abhängig von den Entscheidungen die
er für einen gegebenen Text trifft, also von den Annotationen, die er dem Text
hinzufügt. Oft wird im Bereich des Information Extraction zum Testen der Effektivität eines Algorithmus ein Text im Vorfeld von Hand annotiert. Das bedeutet
die korrekten erwarteten Ergebnisse werden manuell festgelegt. Der Algorithmus
wird dann auf dem gleichen Text ausgeführt. Anschließend werden die von Hand
angelegten Annotationen mit den vom Algorithmus erzeugten verglichen.
In Tabelle 2.1 ist abgebildet, wie die Ergebnisse des Algorithmus interpretiert
werden. Hat der Algorithmus etwas annotiert, was auch im Vorfeld als korrekte
Annotation bestimmt wurde, so spricht man von einem True Positive. Hat der
Algorithmus etwas annotiert, was nicht annotiert wurde, so spricht man von einem
False Positive. Konnte der Algorithmus eine gesuchte Annotation nicht finden, so
spricht man von einem False Negative. Wurde der nicht annotierte Text auch
36
2.4 Information Extraction
Manuelle Annotation
JA
NEIN
Algorithmische Annotation
JA
NEIN
True Positive (TP)
False Negative (FN)
False Positive (FP)
True Negative (TN)
Tabelle 2.1: Beziehung zwischen manueller und algorithmischer Annotation [SR02]
manuell nicht annotiert, so handelt es sich um einen True Negative [SR02]. Mit
diesen grundlegenden Begriffen lassen sich nun die Effektivitätsmaße erklären.
Precision, Recall und F-Measure Die Precision P bezeichnet die Menge der
richtigen Ergebnisse in Bezug zu allen erzielten Ergebnissen eines Algorithmus.
Damit ist es ein Maß für die Exaktheit eines Algorithmus, denn es misst, wie
viele der Ergebnisse korrekt sind [SR02]. Der Recall R bezeichnet die Menge der
richtigen Ergebnisse in Bezug zu allen von Hand annotierten Stellen. Damit ist
es ein Maß für die Vollständigkeit eines Algorithmus, denn es misst, wie viele von
den erwarteten Annotationen gefunden wurden.
P =
TP
TP
, R=
TP + FP
TP + FN
Es lässt sich anhand der Formeln leicht feststellen, dass ein Recall von 1, 0 und
damit 100% relativ einfach dadurch erreicht werden kann, indem der Algorithmus
den kompletten Text bzw. alle Wörter annotiert. Damit hat er auf jeden Fall alle
zu findenen Annotationen abgedeckt und ist damit vollständig. Eine hohe Precision lässt sich erreichen, indem nur eine Annotation gemacht wird von dem Textteil,
der mit der höchsten Wahrscheinlichkeit eine gesuchte Annotation ist. Dadurch
steigt die Precision auf 1, 0 bzw. 100% (oder 0% für den Fall, dass der vom Algorithmus annotierte Text doch nicht gesucht wurde). Beide Extremwerte alleine
sagen demnach noch nichts darüber aus, ob ein Algorithmus wirklich effektiv ist.
Daher wird durch den F-Measure versucht ein geeignetes Gesamtmaß für die Effektivität zu finden. Der F-Measure F1 ist dabei das harmonische Mittel zwischen
Precision und Recall [SR02].
F1 = 2 ×
P×R
P+R
Eine effektive IE-Pipeline sollte im Allgemeinen einen hohen F-Measure Wert
besitzen. Das bedeutet konkret, dass die zugrundeliegende IE-Aufgabe, wie das
Identifizieren von Marktvorhersagen, mit hoher Effektivität gelöst wird.
Die einzelnen Werte von Recall, Precision und F-Measure lassen sich weder miteinander verrechnen, noch lassen sie sich einzeln aufsummieren. So kann es zwei
Algorithmen geben, die Entitäten in einem Text mit einem Recall von 50% identifizieren. Ein Algorithmus, der eine Relation zwischen diesen beiden Entitäten
37
2. Grundlagen
finden soll, kann trotzdem einen Recall von über 50% haben. Die wenigen gefundenen Entitäten der erste beiden Algorithmen könnten genau die richtigen sein,
die in den gesuchten Relationen vorkommen. Die gleiche Argumentation gilt für
die beiden anderen Gütemaße. Es gibt außerdem im Allgemeinen einen Trade-Off
zwischen Recall und Precision [BG94]. Dies bedeutet, dass es normalerweise nicht
möglich ist, einen Recall- und Precision-Wert von 100% zu haben.
Accuracy Ein weiteres Gesamtmaß für die Effektivität eines Algorithmus ist die
Accuracy. Die Accuracy A misst den Anteil der korrekten Entscheidungen eines
Algorithmus in Bezug zu allen seinen Entscheidungen [JDH99].
A=
TP + TN
TP + TN + FP + FN
Recall und Precision werden immer dann angewendet werden, wenn ein Algorithmus nur kleine Teile eines Textes, etwa Unternehmensentitäten, annotiert
und damit identifiziert. Sie beziehen sich damit nicht auf alle Möglichkeiten der
Annotation in einem Text. Dies wird vor allem dadurch deutlich, dass die True
Negatives, also alles was weder von Hand noch von einem Algorithmus annotiert
wurde, bei ihnen nicht auftauchen. Demgegenüber lässt sich die Accuracy immer
dann anwenden, wenn ein Algorithmus praktisch alle Teile eines Textes annotiert.
Dies ist zum Beispiel beim Zerlegen eines Textes in Sätze, oder beim Zerlegen der
gefundenen Sätze in einzelne Tokens der Fall. Ebenso wenig wie Recall, Precision
oder F-Measure lässt sich die Accuracy von verschiedenen Algorithmen aufsummieren. Das Argument ist das gleiche wie bei den anderen Effektivitätsmaßen.
Trotz einer hohen Accuracy kann es sein, dass genau die Textstellen nicht richtig
annotiert wurden, die für einen nachfolgenden Algorithmus relevant sind.
Labeled Attachment Score Der Labled Attachment Score wird für eine spezielle
Klasse von Algorithmen genutzt. Diese Algorithmen sind sogenannte Dependency
Parser. Ein Dependency Parser versucht in einem Satz die Beziehungen der einzelnen Wörter untereinander herauszufinden. So werden nicht nur Teile wie Subjekt
oder Objekt markiert, sondern auch die Beziehung der einzelnen Wörter zueinander in einer baumartigen Struktur festgehalten. Das Prädikat des Satzes kann so
zum Beispiel eine Kante in der Baumstruktur zum Subjekt und Objekt des Satzes
haben. Um die Gesamteffektivität eines Dependency Parsers festzustellen, wird
zum Beispiel der Labeled Attachment Score genutzt [NHK+ 07]. Der Wert drückt
aus, wie viele richtige Beziehungen und richtige Markierungen der Parser liefert.
Die Werte lassen sich nicht aufsummieren aus den gleichen Gründen, wie etwa
schon beim Recall.
38
2.4 Information Extraction
Effizienzmaße
Die Effizienz eines Algorithmus wird üblicherweise in seinem Laufzeitverhalten
bezüglich Geschwindigkeit und Speicherplatzverbrauch ausgedrückt. In [WSE11]
werden dafür die speziellen Maße Average Sentence Response Time, Averaged Efficiency und Averaged Efficiency at Effectiveness für den Bereich Information
Extraction bezüglich der Geschwindigkeit eines Algorithmus vorgeschlagen. Diese
Effizienzmaße gehen nicht von der asymptotischen Laufzeit eines Algorithmus aus.
In der IE arbeiten die meisten Algorithmen satzweise. Daher ist hier vor allem die
durchschnittliche Antwortzeit pro Satz eines Algorithmus von Interesse [WSE11].
Average Sentence Response Time Die Average Sentence Response Time gibt
die durchschnittliche Antwortzeit pro Satz t(A) von einem Algorithmus A auf
einem bestimmten Hard- und Softwaresystem an.
t(A) = TD (A)/n
Hierbei bezeichnet D eine Reihe von Texten mit n Sätzen und TD (A) die Gesamtzeit, die der Algorithmus A für diese Textmenge braucht.
Averaged Efficiency Ein Problem mit der durchschnittlichen Antwortzeit pro
Satz ist, dass dieser Wert sehr stark von dem verwendeten System, den Datenstrukturen usw. abhängt, auf dem der Algorithmus ausgeführt wird. Daher müssen
die Zeiten normalisiert werden. Hierfür hat [WSE11] die durchschnittliche satzbezogene Antwortzeit t(A0 ) eines Algorithmus A0 zur Tokenisierung genommen. Ein
Tokenisierer wird für das Lösen von fast allen IE-Aufgaben benötigt. Deswegen
geht [WSE11] davon aus, dass hierfür ein effizienter Algorithmus zur Verfügung
steht, der für eine Normalisierung der Laufzeiten genutzt werden kann. Die sogenannte Averaged Efficiency tN (A) für einen Algorithmus A kann dann folgendermaßen angegeben werden:
tN (A) =
t(A)
t(A0 )
Damit lässt sich dann für eine gegebene IE-Pipeline Π, die eine IE-Aufgabe mit
einer Effektivität E löst, und einem Algorithmus zur Tokenisierung A0 die sogenannte Averaged Efficiency at Effectiveness folgendermaßen angeben:
F@E =
t(Π)
t(A0 )
39
3 Stand der Technik
In diesem Kapitel soll der aktuelle Forschungsstand in den einzelnen für diese
Arbeit wichtigen Bereichen vorgestellt werden. Orientiert wird sich dabei am Titel der Arbeit: Entwicklung eines Expertensystems zur automatischen Erstellung
effizienter Information-Extraction-Pipelines. Begonnen wird daher mit einer Übersicht über den Bereich Expertensysteme (Abschnitt 3.1). Da in der vorliegenden
Arbeit das Ziel gesetzt wurde, ein Expertensystem zu erstellen, werden hier einige
Vertreter aus den in Abschnitt 2.1.1 aufgezählten Aufgabenbereichen der Expertensysteme aufgeführt. Dabei sollen vor allem die unterschiedlichen Problemfelder
für Expertensysteme aufgezeigt, aber auch sich in dieser Arbeit wiederfindende
Aspekte identifiziert werden. Effiziente Information-Extraction-Pipelines sind das
zweite Thema dieses Kapitels (Abschnitt 3.2). Hier werden Arbeiten vorgestellt,
die sich damit befassen, wie Aufgaben der Information Extraction effizient durchgeführt werden können, was vor allem bei sehr großen Dokumentenmengen, wie
sie zum Beispiel im World Wide Web vorkommen, eine hohe Relevanz hat. Die
Ansätze erfahren dabei auch eine Abgrenzung zu dem in dieser Arbeit gewählten
Weg für effiziente Information-Extraction-Pipelines. Der letzte Teil dieses Kapitels geht dann auf Arbeiten ein, die sich mit der automatischen Konstruktion von
Information-Extraction-Pipelines befassen (Abschnitt 3.3). Dabei wird unterteilt
in Arbeiten aus dem Umfeld der Information Extraction und ähnliche Arbeiten
aus anderen Bereichen, vorwiegend aus dem Bereich der automatischen Zusammensetzung von Web Services. Es werden Gemeinsamkeiten und Unterschiede zwischen den Problemen, den gewählten Lösungen und den in dieser Arbeit verfolgten
Ansätzen dargelegt.
3.1 Übersicht über existierende Expertensysteme
Als eines der ersten Expertensysteme überhaupt gilt das in [BS84] beschriebene
MYCIN. Das originale MYCIN Expertensystem wurde Anfang der 1970er Jahre
entwickelt. Es ist ein System zur Diagnose von Krankheiten. In seiner Anfangszeit bestand es aus einer einfachen, regelbasierten Wissensbasis. In einer FrageAntwort-Sitzung ermittelte das System die benötigten Fakten. Auf Basis dieser
Fakten stellte es eine Diagnose, die es bei Bedarf auch anhand der vorhandenen
Wissensbasis begründen konnte.
Regelbasierte Expertensysteme sind bis in die heutige Zeit sehr häufig anzutreffen. In [CSL+ 03] wird eine Regelbasis für die Spektroskopie benutzt. Bei der
Spektroskopie geht es um die Untersuchung von Strahlung verschiedener Objekte,
41
3. Stand der Technik
um deren chemische Zusammensetzung zu bestimmen. Die Regeln steuern dabei Algorithmen, die spezifische spektrale Merkmale untersuchen und dem System damit bei seiner Diagnose helfen. Ein regelbasiertes Expertensystem mit
dem Einsatzzweck der Klimavorhersage in der Region des Nordatlantik wird in
[RM99] vorgestellt. Die Wissensbasis umfasst 400 empirisch ermittelte und mit
Konfidenzfaktoren versehene klimatische Regeln.
Im Bereich der Vorhersage und Simulation wird des Öfteren eine Fuzzy-Regelbasis verwendet, die es erlaubt, auch vages Wissen, welches eventuell von einem Experten nicht näher formalisiert werden kann, auszudrücken. So benutzt [KPHK95]
ein Fuzzy-Regelsystem zur Vorhersage des Stromverbrauchs eines Stromnetzwerks.
Das Fuzzy-Regelsystem berücksichtigt bei der Stromlastberechnung Faktoren, wie
zum Beispiel die aktuelle Temperatur und auch Informationen über die Schulferienzeit. Ebenfalls ein Fuzzy-Regelsystem wird in [MHF03] für die Vorhersage der
Schmelzwassermenge in einer Bergregion im Frühjahr, wichtig für die Berechnung
der Trinkwasserversorgung in der entsprechenden Region, benutzt. Vorher wurden
die anfallenden Berechnungen manuell von Experten erledigt. Das so vorhandene Expertenwissen war oft ungenau und vage. Daher entschloss man sich beim
Aufbau des Expertensystems auf Fuzzy-Regeln zu setzen.
Neben den Aufgabengebieten der Analyse und Simulation ist die Konstruktion
das für diese Arbeit wichtigste Problemfeld von Expertensystemen (vgl. hierzu
Abschnitt 2.1.1). In [FS84] wird ein Expertensystem für die Konstruktion von
Schedules in der Domäne Job-Scheduling betrachtet. Das System benutzt für
die Wissensrepräsentation Frames. Anhand dieser Wissensbasis wird dann eine
mehrstufige Constraints-basierte Suche durchgeführt, um die Schedules zu erstellen. Hierbei gilt es einen möglichen Schedule zu konstruieren, welcher bestimmte
Randbedingungen wie Resourcenverbrauch, Kostenschranken oder die Verfügbarkeit von Maschinen berücksichtigt.
In der Arbeit von [Law08] wird ebenfalls ein System für die Produktionsplannung und das Maschinenscheduling aufgezeigt. Als erstes wird hier mithilfe eines in
der logischen Programmiersprache PROLOG erstellten Expertensystems, welches
in nicht eigenständig entscheidbaren Situationen Rücksprache mit einem menschlichen Experten hält, ein Produktionsplan für Maschinen entworfen. Anschließend
wird ein genetischen Algorithmus benutzt, um das Scheduling für die im Plan
aufgezeigten Maschinen und eine Reihe von Randbedingungen zu bestimmen. Die
Trennung des Problems in die beiden Bereiche Planung und Scheduling kann als
Parallele zu dieser Arbeit gesehen werden, denn hier wird für die Konstruktion der
IE-Pipeline auch zuerst eine allgemeine Planung der Pipeline gemacht und darauf
aufbauend dann ein optimierter Schedule für diese Pipeline bestimmt. Allerdings
unterscheiden sich nicht nur die dafür eingesetzten Verfahren (in der vorliegenden
Arbeit wird ein Partial Order Planner zur Planung eingesetzt). Auch die Domänen
sind vollkommen verschieden und die Probleme und Lösungen lassen sich so nicht
ohne weiteres aufeinander übertragen.
Die Raumsonde DeepSpaceOne[MNPW98] wurde bereits in Abschnitt 2.1.2
erwähnt. In dieser Sonde werden viele verschiedene Expertensystemen zur Un-
42
3.1 Übersicht über existierende Expertensysteme
terstützung der Planungskomponente des Gesamtsystems verwendet. Die Planungskomponente liefert Pläne für kurzfristige Ziele, zum Beispiel das Fotografieren von Objekten, und langfristige Ziele, zum Beispiel Ziele der Navigation,
der Sonde. Die einzelnen Expertensysteme werden von der Planungskomponente für bestimmte Fragen konsultiert, etwa liefert das Navigationsexpertensystem
Informationen und auch neue in den Plan einzubauende Ziele hinsichtlich des Antriebsschubs der Hauptantriebsmaschine.
Neben der Einordnung des in der vorliegenden Arbeit entwickelten Expertensystems in den Bereich der Konstruktion und der verwendeten Methoden bezüglich
der Planung der IE-Pipeline ist die Wissensbasis in Form einer Ontologie ein
weiteres Merkmal, welches von verschiedenen Expertensystemen in der Literatur
geteilt wird. In [SCS09] wird ein Expertensystem vorgestellt, von dem die finanziellen Jahresabschlüsse in Unternehmen bewertet werden können. Die Wissensbasis
besteht aus einer Ontologie, welche die Elemente der Domäne der Buchhaltung
von Jahresabschlüssen beschreibt. Die Ontologie wird mit dem Ontologiewerkzeug
Protégé entwickelt, welches auch in der vorliegenden Arbeit zum Einsatz kommt.
Eine Regelbasis in JESS (Java based Expert System Shell [FH03]), ein Framework
zur Erstellung von regelbasierten Expertensystemen in Java, benutzt das in der
Ontologie vorhandene Wissen, um die im Unternehmen erstellten Jahresabschlüsse
zu bewerten.
Eine moderne Form von MYCIN wird in [PGJ08] beschrieben. Das System
benutzt als Wissensbasis, genau wie diese Arbeit, eine OWL-Ontologie. Erweitert
wird diese Ontologie mit den in Abschnitt 2.2.2 erwähnten SWRL Regeln. Die
Ontologie selbst besteht vollständig aus Sub- und Superklassenbeziehungen. Sie
ist also eine Taxonomie. Hierdurch versuchen die Autoren das Reasoningproblem
zu vereinfachen.
Auch in [BDGRL09] wird eine OWL-Ontologie als Wissensbasis verwendet. Die
Domäne des dort entwickelten Expertensystems sind die Balanced Scorecards. Dies
ist ein Konzept zur Messung und Steuerung der Aktivitäten und Strategien von
Unternehmen. Als Inferenzmechanismus wird ein Fuzzy-Regelsystem eingesetzt.
Damit ist es möglich in den Berichten auch vages Wissen einzusetzen.
Ein umfangreicheres Expertensystem wird in [CAO+ 08] vorgestellt. Mithilfe dieses Systems können sich Touristen für eine Stadtreise einen Plan erstellen lassen.
Dabei wird zum Beispiel der Benutzerwunsch, ein Museum zu besuchen, berücksichtigt. Außerdem werden mögliche Transportmittel wie Taxis oder öffentliche
Verkehrsmittel, mit denen man sich zwischen den im Plan angegebenen Orten bewegen kann, in den Plan eingefügt. Alle Benutzerdaten und Informationen über
Sehenswürdigkeiten und Verkehrsmittel der Städte stehen dabei in einer Ontologie als Wissensbasis zur Verfügung. Diese Ontologie wird sowohl per Hand mittels
Protégé gepflegt, als auch automatisch mittels sogenannter Wrapper, die Informationen von Web Services oder Webseiten bereitstellen und in die Ontologie
einfügen. Aus ihr wird ein CLIPS (C Language Integrated Production System) 1 Sy1
http://clipsrules.sourceforge.net/
43
3. Stand der Technik
stem generiert und mittels der Sprache LISP angesprochen. Anhand der Informationen aus der Ontologie erstellt ein Planer einen Schedule der Sehenswürdigkeiten
und einen Transportplan, wie der Tourist von einer Sehenswürdigkeit zur nächsten
kommen kann. Als Planer werden verschiedene Standard-Planer eingesetzt (FF
[HN01], Metric-FF [Hof03], IPSS [RMBCO07] und SIADEX [CFoGpP06]).
Neben der Verwendung einer Ontologie als Wissensbasis, ist vor allem die Art
des Wissenserwerbs eine Parallele zur vorliegenden Arbeit. So wird auch von der
vorliegenden Arbeit für das manuelle Einpflegen von Wissen Protégé genutzt.
Ebenfalls werden Komponenten eingesetzt, die vorliegende Informationen des verwendeten IE-Frameworks automatisch in die Ontologie übertragen.
Dieser Abschnitt kann keinen vollständigen Überblick über die Vielzahl an
verschiedenen vorhandenen Expertensystemen bieten. Er sollte jedoch Beispiele
aufführen, die in bestimmten Aspekten dem in dieser Arbeit verfolgtem Ansatz
ähneln. Ein direkt vergleichbares Expertensystem, das dem Zweck dient, eine IEPipeline zu konstruieren ist dem Autor allerdings nicht bekannt. Jedoch werden
im noch folgenden Abschnitt 3.3 einige Softwaresysteme vorgestellt, die dieses
oder ein ähnliches Ziel sehr wohl zu erreichen versuchen, von sich selbst aber
nicht behaupten, ein Expertensystem zu sein. Für eine Übersicht über verschiedene Expertensysteme ab Mitte der 1990er Jahre bis zum Jahr 2005 sei auf [Lia05]
verwiesen.
3.2 Effiziente Information-Extraction-Pipelines
In ihrem Überblick über den Bereich und die Forschung in Information Extraction führen [Sar08] unter anderem Aspekte zur Steigerung der Performanz von
IE-Systemen auf. Bei einer großen, nicht abgeschlossenen Dokumentenmenge, wie
sie zum Beispiel in Form des World Wide Web existiert, muss vor der eigentlichen
Untersuchung der Dokumente zuerst eine Filterung der für relevant erachteten
Dokumente erfolgen. Das IE-System soll sich auch innerhalb der Dokumente nur
auf die relevanten Textstellen konzentrieren. Als Beispiel wird ein Zitationssystem genannt, für welches es sinnvoll erscheint, nur den Dokumentkopf und das
Literaturverzeichnis als Textstellen zu untersuchen. Erst als Letztes wird dann
die Optimierung der Extraktion selbst zur Steigerung der Gesamtperformanz in
Erwägung gezogen. Für IE-Systeme, die auf einer offenen, großen Menge an Dokumenten ausgeführt werden sollen, empfehlen die Autoren eine weitere Optimierungsmöglichkeit. In solch einem Fall sollen nicht mehr die kompletten Texte
untersucht werden, sondern nur noch die Teile, welche sich seit der letzten Untersuchung auch wirklich geändert haben.
Auch für die vorliegende Arbeit wird die Methode des Filterns von unrelevanten Textstellen eingesetzt (vgl. Abschnitt 2.4.2). Außerdem wird in dieser Arbeit
eine Constraints-basierte Filterung durchgeführt, dass heißt Einschränkungen von
Benutzerseite (etwa nur Entitäten, die mit G beginnen zurück liefern“) werden
”
direkt in die IE-Pipeline eingebaut und damit auch während des IE-Prozesses
44
3.2 Effiziente Information-Extraction-Pipelines
berücksichtigt. Das Filtern vollständiger Dokumente in großen Dokumentenbasen liegt außerhalb des Aufgabenbereichs dieser Arbeit und ist eher als eine eigenständige IE-Aufgabe zu sehen. Ebenfalls steht das Finden von sich veränderten
Textstellen in sich dynamisch ändernden Dokumentenbasen nicht im Fokus dieser
Arbeit. Es könnte allerdings später als Vorprozess im Expertensystem integriert
werden. Mit dem Optimieren der Effizienz von einzelnen IE-Verfahren beschäftigen sich ebenfalls andere Arbeiten und nicht diese.
Auch in [Agi05] wird als Problem identifiziert, dass IE-Technologien ohne Optimierungen zu langsam sind für das Bearbeiten von großen Dokumentenbeständen.
Selbst bereits gut erforschte und demnach optimierte IE-Aufgaben, wie zum Beispiel das Part of Speech Tagging, könnten mit einer größeren Menge an Text
und einem einzelnen Computer mehrere Jahre beschäftigt sein. Der Autor stellt
vier Ansätze vor, mit denen ein IE-System beschleunigt werden kann. Die erste Möglichkeit besteht darin, die IE-Algorithmen anzupassen und einfachere und
effizientere Regeln bei der Untersuchung der Texte einzusetzen. Die nächste vorgeschlagene Möglichkeit sieht der Autor, wie auch [Sar08], in einer Filterung der
zu analysierenden Texte. Ein erster Ansatz kann hier der Einsatz einer gewöhnlichen Suchmaschine sein, um relevante Texte zu finden und nur diese dann weiter
zu verarbeiten. Eine darüber hinausgehende Möglichkeit bietet der Einsatz von
spezialisierten Suchmaschinen, die einen Spezialindex für die schon in einem Text
gefundenen Annotationen benutzen. Dadurch können die IE-Verfahren auf vorherigen Analysen aufbauen und auch der Zugriff auf diese Informationen wird
beschleunigt. Als letzte Möglichkeit führt der Autor dann noch das verteilte, parallele Verarbeiten der Textmenge an. Gleichzeitig warnt der Autor aber auch vor
der Gefahr, dass Vollständigkeit und Genauigkeit der IE-Verfahren durch die ersten beiden beschriebenen Ansätze gesenkt werden könnten und dass der Rückgriff
auf bereits annotierte Informationen eine Anpassung der IE-Verfahren erfordert.
In der vorliegenden Arbeit wird keines der von [Agi05] vorgeschlagenen Verfahren zur Effizienzsteigerung genutzt. Die direkte Anpassung der einzelnen IEVerfahren liegt, wie schon erwähnt, außerhalb des Fokus dieser Arbeit. Der Einbezug einer Suchmaschine zum Auffinden von relevanten Texten wird ebenfalls
nicht betrachtet. Hier liefert der Benutzer des Expertensystems die zu untersuchende Textmenge. Allerdings könnte solch ein Verfahren relativ einfach als eigener
Vorauswahlprozess in das Expertensystem integriert werden. Diese Arbeit verfolgt
auch nicht die Ziele der Speicherung der generierten Informationen. Daher ist auch
der Aufbau eines speziellen Suchindizes nicht Teil dieser Arbeit. Die Integration
dieses Ansatzes wäre nicht trivial, da dazu auch die verwendeten IE-Verfahren
angepasst werden müssten.
Eine Anwendung der eben vorgestellten Optimierungsmöglichkeiten bei IESystemen bietet [PNLH09]. Dort wird das AliBaba System als ein skalierbares
IE-System für biomedizinische Dokumente vorgestellt. Wie schon von [Sar08] beschrieben, verwendet Alibaba die Suchmaschine PubMed zur Vorauswahl der relevanten Dokumente. Eine weitere Optimierung stellt ein effizienter, auf Mustern
basierter Ansatz zur Bestimmung von Relationen dar. Dieses Verfahren soll schnel-
45
3. Stand der Technik
ler sein als vergleichbare Verfahren, die auf maschinellem Lernen basieren.
Auch [WSE11] setzt bei der Effizienzsteigerung des IE-Systems auf das Filtern
von Text, damit nur auf den relevanten Passagen die IE-Verfahren angewendet
werden. Allerdings wird der Text nicht vorgefiltert, sondern die Filterung passiert direkt in der IE-Pipeline hinter jeder einzelnen IE-Analysephase. Es werden
darüber hinaus noch andere Paradigmen eingeführt, die ebenfalls der Effizienzsteigerung dienen, wie bereits in Abschnitt 2.4.2 erläutert. Die vorliegende Arbeit
greift diese Konzepte auf und setzt sie im Expertensystem um. Darüber hinaus
versucht diese Arbeit die Konzepte in einem automatisierten Verfahren unterzubringen und erweitert den Ansatz um das automatische Erstellen von IE-Pipelines
anhand von vom Benutzer spezifizierten, gewünschten Informationen unter Verwendung einer Ontologie.
Einen anderen Ansatz der Erhöhung der Effizienz in IE-Systemen zeigt [KLR+ 09]
auf. Hier wird mit SystemT ein auf Effizienz optimiertes IE-System vorgestellt.
Das regelbasierte Vorgehen anderer Ansätze wird dort durch eine optimierte, deklarative Sprache ersetzt. Ähnlich der SQL aus der Datenbankwelt können in
dieser Sprache Anfragen an das System gestellt und so eine höhere Skalierbarkeit
und Effizienz des IE-Systems erreicht werden. Dabei werden mit dem Einsatz von
auf regulären Ausdrücken und auf Wörterbüchern basierten Verfahren allerdings
keine auf maschinellen Lernen basierenden IE-Verfahren in dieser deklarativen
Sprache unterstützt. Daher ist dieses System so nicht für auf maschinellen Lernen
basierenden IE-Verfahren einsetzbar. Da damit der Einsatz dieses Ansatzes mit
einer Neuimplementierung großer Teile der IE-Verfahren einhergehen würde, kann
er in der vorliegenden Arbeit nicht betrachtet werden.
Ein IE-System mit einer ähnlichen deklarativen Sprache als Ausgangspunkt
ist das in [CGD+ 09] vorgestellte Delex. Die einzelnen existierenden IE-Verfahren
werden als IE Blackboxes aufgefasst, die dann von einer xlog genannten, Datalogähnlichen Sprache zusammengebracht werden.2 Das Delex-System soll vor allem in
dynamischen Dokumentenmengen hohe Effizienzsteigerungen bringen. Dies liegt
in der Verwirklichung von den in [Sar08] und [Agi05] vorgeschlagenen Ansätzen
der Wiederverwendung von bereits gefundenen Informationen, indem man die Untersuchung des Textes auf nur die Textstellen beschränkt, die sich seit der letzten
Untersuchung auch wirklich geändert haben. Die Unterbringung eines solchen Ansatzes in der vorliegenden Arbeit liegt, wie weiter oben bereits ausgeführt, außerhalb des Aufgabenbereichs dieser Arbeit. Der Einsatz einer deklarativen Sprache
wie xlog bietet die Möglichkeit, auch auf maschinellem Lernen basierenden Verfahren einzusetzen. Allerdings sind hierfür trotzdem noch größere Anpassungen
an diesen bereits bestehenden Verfahren durchzuführen, sodass diese Arbeit einen
solchen Ansatz nicht in Betracht ziehen kann. Ähnliche, auf deklarativen Ansätzen
beruhende Ansätze, finden sich außerdem in [CVDN09] und [SDNR07].
In vielen anderen Arbeiten wird vor allem die auch in [Sar08] und [Agi05] besprochene Anpassung und Optimierung der einzelnen IE-Verfahren in den Vor2
Für Informationen über Datalog siehe zum Beispiel [CGT89].
46
3.3 Automatische Konstruktion von Information-Extraction-Pipelines
dergrund gestellt. So zeigt [BCS+ 07] ein allgemeines Verfahren für die schnelle
Extraktion von Relationen auf, welches allerdings nicht die in Abschnitt 2.4 angesprochenen Ereignisse erkennen kann, und dabei auch das schon besprochene
Speichern und Wiederverwenden von bereits gefundenen Informationen einsetzt.
In [Cur03] wird eine performante Plattform für allgemeine NLP-Verfahren vorgestellt, wobei die hohe Effizienz vor allem in der Neuentwicklung von effizienten,
einzelnen NLP-Verfahren erklärt werden kann. In [HHF+ 10] wird eine IE-Pipeline
zum Identifizieren von ökonomischen Ereignisse in Nachrichtenartikeln vorgestellt.
Die hohe Effizienz der angegebenen Pipeline ist ebenfalls auf die Entwicklung von
speziellen, effizienten IE-Verfahren für die zu lösende IE-Aufgabe zurückzuführen.
Wie bereits oben gesagt, steht allerdings die Neuentwicklung von effizienten IEVerfahren nicht im Fokus der vorliegenden Arbeit. Daher sollen die genannten
Arbeiten nur als Beispiele für eine aktive Forschung in dieser Richtung gesehen
werden.
3.3 Automatische Konstruktion von
Information-Extraction-Pipelines
In Abschnitt 3.1 wurde schon gesagt, dass dem Autor dieser Arbeit kein Expertensystem bekannt ist, welches mit dem in dieser Arbeit entwickelten System
vergleichbar ist. Dies wurde auch dahingehend eingeschränkt, dass es gleichwohl
Systeme gibt, die einen ähnlichen Aufgabenbereich, wie die automatische Konstruktion von IE-Pipelines haben, sich selbst aber nicht als Expertensysteme bezeichnen. Solche Systeme sollen in den folgenden Abschnitten vorgestellt werden.
Dazu werden als erstes Arbeiten aus dem Umfeld der Information Extraction betrachtet. Im zweiten Abschnitt werden Arbeiten aus anderen Bereichen vorgestellt,
die sich in Teilen auch mit den Ansätzen der vorliegenden Arbeit vergleichen lassen.
3.3.1 Im Umfeld Information Extraction
In [DDM05] beschreiben die Autoren ein System, welches ausgehend von einer
Anfrage an das System automatisch eine IE-Pipeline erstellt, um durch Information Extraction die Arten von Informationen zu finden, die in der Anfrage verlangt
sind. Die IE-Algorithmen werden von den Autoren als Document Analyzer -Module
bezeichnet. Diese Module arbeiten auf einem Austauschformat, den sogenannten
typisierten Views. Views sind spezielle XML-Dokumente, welche eine bestimmte
Sicht auf die gefundenen Informationen besitzen. Die im Laufe der Ausführung
der IE-Pipeline erstellten Views stellen dann die Ausgabe des Systems dar. Die
Konstruktion einer IE-Pipeline wird mit einem eigens dafür entwickelten Partial
Order Planner gelöst.
Die Autoren haben bei der Entwicklung des Planers wichtige Vereinfachungen
erkannt, die der Einsatz in der Domäne Information Extraction mit sich bringt.
47
3. Stand der Technik
Die einmal produzierten Views können nicht wieder zerstört werden. Dadurch gibt
es in ihrem Planungsproblem keine negativen Literale. Dies vereinfacht den Partial
Order Planner erheblich, denn damit brauchen bei seiner Implementierung auch
keine kausalen Links beachtet zu werden, da diese nie gefährdet werden können.
Ein Problem in der Domäne IE, welches die Autoren beschreiben, ist, dass es
verschiedene Algorithmen für die gleiche IE-Aufgabe geben kann, die sich aber
unterschiedlich verhalten. Als Lösung wird die nebenläufige Ausführung dieser
Algorithmen präsentiert, wobei ein spezielles Modul für die Zusammenführung
der gelieferten Ergebnisse zuständig ist.
Die Arbeit weist starke Parallelen zu der vorliegenden Arbeit auf. So wird ebenfalls ein Partial Order Planner zum Finden einer IE-Pipeline eingesetzt. Allerdings
gehen die Autoren von [DDM05] nicht auf das Thema Effizienz ein. Außerdem verlangen sie mit ihrem View-basierten System, dass die einzelnen IE-Verfahren in
einer einheitlichen, auf die View setzenden Form vorliegen. Dies bringt erhebliche Anpassungen an den zu Verfügung stehenden IE-Verfahren mit sich. Weiterhin kann die DOM-basierte XML-Struktur der Views negative Auswirkungen auf
die Gesamtperformanz des Systems, vor allem in Speicherhinsicht, haben. Welche
Auswirkungen dies genau haben könnte, wird nicht offen gelegt, da in der Arbeit nur das Konzept, aber keine Implementierung oder Evaluierung, beschrieben
wird. Ebenfalls nicht ersichtlich ist, woher die Informationen über die einzelnen
IE-Verfahren kommen. Die vorliegende Arbeit verwendet hierfür Ontologien. Allerdings lassen sich die vorgeschlagenen Optimierungen des Partial Order Planners
direkt im Konzept und der Umsetzung in der vorliegenden Arbeit finden.
In der Arbeit [ŽKŽL08] werden im Bereich des Data Mining Workflows automatisch vom Computer konstruiert. Die Algorithmen und Aufgaben im Bereich
des Data Mining unterscheiden sich von denen der Information Extraction. Allerdings gibt es bei dem Problem der automatischen Konstruktion von Workflows im
Bereich Data Mining und der automatisierten Erstellung von IE-Pipelines einige
Gemeinsamkeiten. Die Autoren in [ŽKŽL08] nutzen eine Ontologie über Daten
und Algorithmen des Data Mining und einen Planer zum Planen der Workflows.
Zum Beispiel enthält die Ontologie Informationen darüber, welche Art von Wissen
ein Algorithmus produziert und welche Vorinformationen er dafür benötigt. Die
Ontologieform ist eine OWL-DL-Ontologie. Die Gründe dafür seien ausreichende
Ausdrucksmöglichkeiten, Modularität, vorhandene Werkzeugunterstützung, bereits optimierte Schlussfolgerungswerkzeuge für diese Art der Ontologie und eine
große Anzahl an Personen, die sich bereits mit dieser Ontologie beschäftigten.
Die Aufgabe der automatischen Bestimmung eines Workflows ist von den Autoren in drei Teilaufgaben zerlegt worden. Zuerst wird die Aufgabe des Data Mining unter Bezugnahme auf die Elemente der Ontologie in ein Planungsproblem
in PDDL-Form übersetzt. Als zweites wird das kodierte Planungsproblem dann
an einen auf FF-basierenden Planer übergeben. Dieser erstellt daraufhin einen
Plan, der einen abstrakten Workflow beschreibt. Der letzte Schritt ist aus diesem abstrakten Plan einen konkreten Plan zu erstellen (die Autoren nennen dies
Konfigurieren des Plans, ohne auf diesen Schritt näher einzugehen).
48
3.3 Automatische Konstruktion von Information-Extraction-Pipelines
Dieser Vorgang ist nur als Konzept beschrieben und nicht evaluiert. Auch wird
nicht beschrieben, wie die eigentliche Aufgabe des Data Mining spezifiziert wird,
also wie der Benutzer Eingaben in das System tätigt. Effizienz ist kein Kriterium in
der angesprochenen Arbeit. Der vorgestellte Planungsalgorithmus liefert am Ende
den kürzesten gefundenen Plan zurück. In der Domäne Information Extraction
wäre dies aber nicht ausreichend, da es, wie in der vorliegenden Arbeit gezeigt,
verschieden effiziente und effektive Verfahren für die gleichen IE-Aufgaben gibt
und daher eine kürzeste IE-Pipeline nicht unbedingt einer optimalen (bezüglich
Effizienz und Effektivität) IE-Pipeline entsprechen muss. Die Begründung für die
Verwendung einer OWL-DL-Ontologie wird auch von der vorliegenden Arbeit geteilt. Außerdem lässt sich eine Parallele bei der Betrachtung von abstrakten und
konkreten Workflows finden. So wird auch in der vorliegenden Arbeit zuerst eine
abstrakte IE-Pipeline konstruiert, die dann von einer speziell auf das verwendete
IE-Framework zugeschnittenen Komponente in eine konkrete Pipeline übertragen
und dann ausgeführt wird.
Ihre Arbeit von [ŽKŽL08] führen die Autoren in [ŽKŽL11] fort. Sie verallgemeinern hier die bisherige Aufgabe, indem sie nun eine automatische Zusammenstellung eines Knowledge Discovery Workflows beschreiben. Ein Knowledge Discovery
Workflow wird von ihnen als eine Reihe von Schritten definiert, um aus spezifischen
Daten (wie zum Beispiel Messungen) Muster abzuleiten, die neues Wissen über
die betrachtete Problemdomäne darstellen. Dazu wird Wissen aus einer Ontologie
verwendet und mithilfe eines Planers der Workflow bestimmt.
Das Hauptziel der Arbeit besteht damit darin, zu untersuchen, ob die Workflows
mit der Hilfe einer Ontologie des Knowledge Discovery und eines Planungsalgorithmus erstellt werden können. Der Planer akzeptiert Aufgabenbeschreibungen
in PDDL, die automatisch mit dem Vokabular der Ontologie generiert werden.
Hierfür haben die Autoren zuerst eine Ontologie mit 150 Klassen entwickelt, welche
komplexes Hintergrundwissen und Wissen über die Algorithmen enthält. Außerdem versuchen sie, eine einheitliche Theorie (eine Konzeptualisierung) von Data
Mining und Knowledge Discovery in der Ontologie zu entwickeln. Dazu besteht
die Ontologie aus den Beschreibungen der Algorithmen und den deklarativen, verschiedenen Wissensrepräsentationen.
Für die Planung wird wiederum ein FF-basierter und auf PDDL arbeitender
Planer gezeigt. Der Planungsalgorithmus wird dabei mehrfach gestartet, um mehrere relevante Workflows zu bekommen. Die PDDL Beschreibung wird vor dem
Planen aus der Ontologie erzeugt. Während des Planens wird die Ontologie nicht
gebraucht. Zusätzlich gibt es noch einen anderen Planer, der mögliche nächste
Schritte direkt aus der Ontologie schlussfolgert, mit dem Einsatz des Reasoners
Pellet (vgl. Abschnitt 2.3.1). Dazu werden in jedem Schritt die Vorbedingungen
der möglichen Aktionen mit den gerade erfüllten Bedingungen abgeglichen und
dann die nächste Aktion ausgewählt. In der Evaluierung wird gezeigt, dass der erste, auf FF basierende Planer gut mit der Anzahl an möglichen Aktionen skaliert.
Der zweite Planer, der Reasoning während des Planens einsetzt, skaliert wesentlich
schlechter mit der Größe der verwendeten Ontologie.
49
3. Stand der Technik
Im Vergleich mit der vorliegenden Arbeit ergeben sich eine Reihe von Unterschieden. Zuerst natürlich die verschiedenen Domänen Knowledge Discovery und
Information Extraction. In IE wird auf natürlichsprachigem Text gearbeitet. Die
Autoren der genannten Arbeit definieren die Domäne aber als Arbeiten auf spezifischen Daten. Dabei werden bei der Bestimmung des Workflows auch keinerlei
Qualitätsmetriken für die Auswahl der einzelnen Algorithmen benutzt. Der Planer gibt mehr als einen Workflow zurück, allerdings fehlt die Begründung warum
er dies macht. Er ist außerdem ein Standardplaner bei dem kein domänenspezifisches Wissen eingesetzt wird. Die Evaluierungsergebnisse des zweiten eingesetzten
Planers, welcher auf Basis von Pellet Entscheidungen trifft, zeigen, dass ein komplettes Schlussfolgern auf einer komplexen Ontologie zu langsam sein kann. Wie
sich später noch zeigen wird, wird die vorliegende Arbeit nicht den Versuch unternehmen, eine einheitliche Konzeptualisierung der Domäne IE durchzuführen.
Außer der erstgenannten Arbeit sind dem Autor weitere Arbeiten zur automatischen Erstellung von IE-Pipelines nicht bekannt. Während in ähnlichen Bereichen,
wie Data Mining und Knowledge Discovery wie gezeigt Arbeiten existieren, die
die Automatisierung von Workflows zum Ziel haben, lassen sich diese nicht in allen Teilen mit der in der vorliegenden Arbeit gestellten Aufgabe vergleichen. Dies
liegt vor allem daran, dass keine der Arbeiten explizit die Effizienz der entstehenden Lösung im Sinn hat, und auch die Eigenheiten der Domäne wurden für
die Bewältigung der Aufgaben nicht genutzt. Der Einbezug von domänenspezifischem Wissen sowohl bei der Formulierung des Planungsproblems als auch bei
der Lösung dieses Problems ist etwas, was auch von [VB11] gefordert wird. Diese Arbeit bewegt sich in dem Bereich Knowledge Engineering for Planning and
Scheduling (KEPS)3 . In diesem Bereich beschäftigt man sich explizit damit, wie
das Wissen über die Struktur und Eigenarten der Domäne für die Verbesserung
der Modellierung der Planungsprobleme und der Planung selbst genutzt werden
kann.
3.3.2 Ähnliche Arbeiten aus anderen Bereichen
Das automatische Zusammensetzen von Web Services ist ein dem automatischen
Konstruieren von IE-Pipelines verwandtes Problem. So müssen in beiden zum Beispiel die Services beziehungsweise Algorithmen geeignet repräsentiert sein, was vor
allem die Bedingungen für die Ausführung, als auch die Ergebnisse und Auswirkungen dieses Ausführens betrifft. Die Web Services sollen dann, genau wie die
IE-Algorithmen, in einer Art Workflow zusammengesetzt werden, um bestimmte
Ergebnisse zu erhalten. Im Unterschied zur Domäne IE ist bei den Web Services
jedoch die Form der Repräsentation von entscheidender Bedeutung für das Auffinden von Web Services in einer verteilten Umgebung, wie dem Internet. Dies
wird auch in [RS04] gesagt, indem vor allem ein Überblick über die verschiede3
International Competition on Knowledge Engineering for Planning and Scheduling (ICEPS),
http: // icaps11. icaps-conference. org/ workshops/ keps. html
50
3.3 Automatische Konstruktion von Information-Extraction-Pipelines
nen Methoden zur automatischen Web Service Zusammenstellung gegeben wird.
Ein wichtiger Bereich ist hierbei das Arbeiten mit Planungsverfahren, wie zum
Beispiel die Benutzung von PDDL, regelbasiertes Planen oder auch HTN-Planer.
Noch allgemeiner ist das Bestimmen von Workflows generell. Hier gibt es viele unterschiedliche Ansätze, die allerdings sehr oft auf der Einbindung und Benutzung
von Planern beruhen.
Workflowbestimmung von Web Services
In [SdF03] werden die einzelnen Web Services in einer DAML-S (eine für Web Services gedachte Erweiterung von dem in Abschnitt 2.2.2 erwähnten DAML+OIL)
Ontologieform festgehalten. Aus diesen Ontologiebeschreibungen werden mithilfe
von JESS Operatoren erzeugt, die dann von einem Planer genutzt werden, um
eine Zusammenstellung von Web Services für ein bestimmtes Ziel zu erstellen.
Der Planer stellt eine Eigenentwicklung dar und wird aus technischer Sicht nicht
näher beschrieben. Es lassen sich in der Arbeit wesentliche Unterschiede zu der
vorliegenden Arbeit erkennen. So wird zum Beispiel kein Wert auf die Qualität, sowohl Effektivität als auch Effizienz, der zusammengestellten Web Services gelegt.
Außerdem wird nicht erwähnt, was gemacht werden soll, wenn mehrere Web Service die gleichen Ergebnisse liefern, wie also die Entscheidungsfindung in solchen
Fällen aussieht.
In [Pee04] wird WSPlan konstruiert. Dies ist ein System, welches die in WSDL
formulierten Beschreibungen von Web Services nutzt, um daraus PDDL-Beschreibungen zu generieren. Diese Beschreibungen können dann von einem beliebigen
Standardplaner genutzt werden, um Pläne zu erstellen. Aus diesen Plänen wird
dann ein Workflow von Web Services erzeugt und ausgeführt. In der Arbeit werden
keine Ontologien verwendet, sondern eine WSDL direkt in PDDL übersetzt. Außerdem wird eine etwaige unterschiedliche Qualität der Services und die Qualität
der Gesamtzusammenstellung nicht betrachtet.
Die Arbeit [KG05] beschreibt ebenfalls ein System für die automatische Zusammenstellung von Web Services, welches PDDL benutzt. Die Beschreibungen der
Web Services liegen dabei in einer Ontologie ausgedrückt in OWL-S4 . Der verwendete Planer, XPlan genannt, basiert auf dem FF-Planer. Ein Web Service ist ein
Operator in der Planungsdomäne. Stehen mehr als ein Web Service in einem Planungsschritt als Aktion zur Auswahl, so entscheidet eine nicht näher spezifizierte
Information über die Qualität der Aktionen und die bessere wird dann genommen.
Es werden allerdings immer die kürzesten Pläne gesucht. Was in der Arbeit fehlt,
ist eine Evaluierung wie gut und wie schnell der Planer arbeitet.
In [PMBT05] liegen die Beschreibungen in einer Sprache für Geschäftsprozesse5
vor. Diese Beschreibungen werden in ein internes Wissensmodell überführt. Darauf aufbauend wird ein Planungsproblem konstruiert und mit einem eigens ent4
Spezielle Form von OWL-DL für Web Services, siehe auch http://www.w3.org/Submission/
OWL-S-related/#owl
5
BPEL4WS, http://www.ibm.com/developerworks/library/specification/ws-bpel/
51
3. Stand der Technik
wickelten Planungsverfahren gelöst. Dagegen legt [Dur08] sein Hauptaugenmerk
auf die Umwandlung von OWL-S- und OWL-Beschreibungen von Web Services in
PDDL-Beschreibungen, ohne einen eigenen Planer vorzustellen.
Bestimmung allgemeiner Workflows
Ganz allgemein mit dem Planen von Workflows beschäftigen sich die Autoren von
[RL06]. Diese Arbeit stellt ein Verfahren vor, wie Workflows in auf Datenstrombasierten Domänen automatisiert geplant werden können. Dazu wurde die Planungssprache SPPL (Stream Processing Planning Language) benutzt, welche eine
angepasste Form der PDDL ist. In SPPL können die zwei Metriken Kosten und
Qualität bei jeder Aktion angegeben werden. Der eingesetzte Planer beachtet diese Werte im Hinblick auf die möglichen Ziele minimale Kosten, maximale Qualität
oder maximale Qualität bei Beschränkung der Kosten. Die Datenstrom basierte
Sicht kann auch auf die IE-Domäne übertragen werden. Der SPPL-Ansatz eignet
sich für die Lösung der in der vorliegenden Arbeit vorgestellten Probleme allerdings nicht. Die Kosten eines SPPL-Plans, wie auch seine Qualität, wird in der
Arbeit als die Summe der Werte der einzelnen Aktionen definiert. Dies lässt sich so
nicht auf die IE-Domäne übertragen. Das nur ein Maß für Kosten und ein Maß für
Qualität bereitsteht ist ein weiterer Punkt, der sich nicht in die IE-Welt übertragen
lässt, denn hier stehen mit Recall und Precision mindestens zwei Qualitätsmetriken bereit, die nicht einfach aufaddiert werden dürfen, um eine Gesamtqualität
des Plans zu bestimmen (vgl. Abschnitt 2.4.3).
Noch allgemeiner ist der Ansatz der Arbeit [BFL+ 07]. Die Autoren beschreiben
ein domänenunabhängiges, allgemeines Rahmenwerk für Knowledge Engineering
und Planung. Mit diesem Rahmenwerk können Planungsdomänen und -probleme
in OWL aufgebaut werden. Der Planungsprozess wird durch Schlussfolgern auf
Beschreibungslogik (DL-Reasoning) unterstützt. Das Einsetzen von DL-Reasoning
in jedem Planungsschritt kann kritisch für die Performanz sein. Daher wird der
DL-Reasoner offline aufgerufen und übersetzt die Aktionsbeschreibungen in eine
SPPL-Form. In der eigentlichen Planung wird kein DL-Reasoning eingesetzt und
der Planer ermittelt den Plan nur aufgrund der SPPL Beschreibungen. In der
Arbeit ist keine Evaluierung angegeben. So bleibt offen, wie gut das Verfahren
hinsichtlich Laufzeit und Güte der erzeugten Pläne funktioniert. Spezielle Eigenschaften der Domäne werden ebenfalls nicht berücksichtigt.
Viele weitere Arbeiten beschäftigen sich mit dem Bestimmen von Workflows
oder dem Planen anhand von Beschreibungen in Ontologieform. So zeigt [LRR07]
eine Anwendung des in [BFL+ 07] beschriebenen Ansatzes. Eine Besonderheit ist,
dass die Eingabe in das System in einer SPARQL-ähnlichen Form formuliert wird.
Allerdings erfolgt auch hier keine Evaluierung der Arbeit. Einen ähnlichen Ansatz
verfolgt auch [HH08]. Hier wird die Problembeschreibung und Beschreibung der
Domäne direkt in Beschreibungslogik angefertigt. Mit einem Reasoning-Verfahren
wird eine Repräsentation für einen HTN-Planer erzeugt. Der HTN-Planer erzeugt
dann den Plan.
52
4 Konzeptueller Lösungsansatz
In diesem Kapitel wird der Lösungsansatz für die in Kapitel 1 aufgestellte Zielsetzung dieser Arbeit beschrieben. Das primäre Ziel ist die Entwicklung eines
Expertensystems, welches in der Lage ist, IE-Pipelines auf Basis von ganz bestimmten Zielen und Randbedingungen automatisch zu erstellen. Daher lässt sich
das zu entwickelnde Expertensystem in den Aufgabenbereich der Konstruktion
einordnen (vgl. Abschnitt 2.1.1). Die Ziele und Randbedingungen werden dabei
von dem Benutzer des Expertensystems als dessen Eingabe spezifiziert.
Mögliche Architekturen für ein solches Expertensystem wurden in Abschnitt
2.1.2 mit den Expertensystemarchitekturen von [Pup91] und [Hau00] aufgezeigt.
Die in dieser Arbeit benutzte Expertensystemarchitektur orientiert sich an der
Architektur von [Pup91], wobei das Konzept der Problemlösungskomponente an
[Hau00] angelehnt ist. Die Identifizierung von speziell für die Domäne Information
Extraction charakteristischem Wissen, zum Beispiel die in Abschnitt 2.4.2 aufgeführten Paradigmen zur Erstellung von effizienten IE-Pipelines, ist der Grund
für die Orientierung an [Hau00] in diesem Bereich der Architektur. Dieses Wissen
lässt sich direkt für die optimierte Konstruktion einer speziell an das Problem
angepassten Problemlösungskomponente nutzen. Die Architektur aus Abbildung
2.1 in Abschnitt 2.1.2 dient daher als Vorlage für die in dieser Arbeit genutzte Architektur des Expertensystems. Die dort verwendeten, abstrakten Komponenten
sind für die Lösung der Probleme dieser Arbeit konkretisiert und implementiert
worden. Die so instantiierte Architektur des Expertensystems ist in Abbildung
4.1 zu sehen.
Die Lösung des Problems der Berechnung von IE-Pipelines und die hierfür entwickelte Problemlösungskomponente, mit dem dazugehörigen domänenspezifischen
Planer, welcher auf dem in Abschnitt 2.3.2 vorgestellten Partial Order Planning
aufbaut, werden in Abschnitt 4.1 vorgestellt. Dazu gehören auch die Beschreibung der in die IE-Pipelines eingefügten Filter zur Einhaltung der vom Benutzer spezifizierten Randbedingungen (Randbedingungsfilter ), sowie das Ausführen
der berechneten Pipeline zum Erhalt der gewünschten Ergebnisse (IE-PipelineAusführungskomponente).
Das identifizierte Expertenwissen für die Domäne Information Extraction, sowie
zusätzliches, für die Problemlösungskomponente als wichtig identifiziertes Wissen, wird in dem entwickelten Expertensystem in der Wissensbasis in Form einer
OWL-DL-Ontologie festgehalten (vgl. Abschnitt 2.2.2). Auf Basis dieses Wissens
arbeitet die Problemlösungskomponente, daher ist es bei der Pipelineberechnung
von entscheidender Bedeutung. Warum eine solche Form der formalen Wissensrepräsentation gewählt wurde und aus welchen Bestandteilen sich diese Onto-
53
4. Konzeptueller Lösungsansatz
package
[
Architektur des Expertensystems ]
Benutzer
startet Wissenserwerb
Gibt Ziele und Randbedingungen in
Expertensystem ein
Expertensystem
Interviewerkomponente
GUI-Oberflaeche
Wissenserwerbskomponente
zeigt Protokolle an
Erklaerungskomponente
OntologieImporter
gibt Ziele und Randbedingungen an
Problemloesungskomponente
weiter und zeigt die
gefundenen Loesungen an
Problemloesungskomponente
RandbedingungsFilter
IE-PipelineAusfuehrungskomponente
Arbeitsprotokoll
protokolliert Loesungssuche
Domaenenspezifischer
Planer
benutzt durch Datenmodell gespeichertes Wissen
der Ontologie
Datenmodell
extrahiert Wissen aus Ontologie
und sendet Anfragen an Ontologie
Wissensbasis
Ontologie
Abbildung 4.1: Architektur des Expertensystems
Experte
Macht Anpassungen
an Ontologie
Externer
Ontologieeditor
importiert neues,
externes Wissen
automatisch
in Ontologie
aendert
Wissen in
Ontologie
54
4.1 Konstruktion der Information-Extraction-Pipeline
logie zusammensetzt wird in Abschnitt 4.2 vorgestellt. Des Weiteren wird dort
auch die Wissenserwerbskomponente erklärt, die sich durch ihren vollautomatischen Charakter von der Wissenserwerbskomponente von [Pup91] und [Hau00]
unterscheidet, und es wird außerdem dargelegt, warum diese Art des manuellen
Wissenserwerbs durch externe Ontologieeditoren besser erreicht werden kann. Ein
entscheidender Unterschied zu den von [Pup91] und [Hau00] vorgestellten Architekturen ist die Einführung eines Datenmodells als Abstraktionsschicht zur eigentlichen Ontologie. Mit den Vorteilen eines solchen Modells und den Gründen
warum es entwickelt wurde, schließt der Abschnitt über die Wissensbasis des Expertensystems.
Mit der Darlegung der Benutzerschnittstelle, über die der Benutzer seine Anfragen an das Expertensystem stellt und über das er auch die Ergebnisse dieser Anfrage präsentiert bekommt, endet in Abschnitt 4.3 dieses Kapitels. Hierzu werden die
Interviewerkomponente und ihre Aufgaben im Expertensystem, wie zum Beispiel
das Anstoßen der Problemlösungskomponente und des automatischen Wissenserwerbs, beschrieben. Außerdem wird erläutert, wie die Erklärungskomponente in
Form eines Arbeitsprotokolls die Nachvollziehbarkeit der berechneten Ergebnisse
gewährleistet.
4.1 Konstruktion der
Information-Extraction-Pipeline
In vielen älteren Expertensystemen wird ein allgemeines Inferenzverfahren eingesetzt und auf eine an die jeweilige Problemdomäne angepasste Problemlösungskomponente verzichtet. Hierbei liegt die Wissensbasis oft als Regelsystem vor, wie
viele der in Abschnitt 3.1 aufgezählten Expertensysteme zeigen. Diese Expertensysteme lassen sich häufig in die Aufgabenbereiche Klassifikation oder Synthese
einordnen (vgl. Abschnitt 2.1.1). Im Aufgabenbereich der Konstruktion, in den
auch das in dieser Arbeit entwickelte Expertensystem fällt, lassen sich verschiedene Ansätze sehen, die oftmals eine speziell an die Probleme der jeweiligen Domäne
angepasste Problemlösungskomponente besitzen. Ein solcher Ansatz wird auch in
dieser Arbeit verfolgt.
Die Konstruktion der IE-Pipeline ist die zentrale Aufgabe der Problemlösungskomponente und auch des gesamten Expertensystems. Die berechnete Pipeline
muss die vom Benutzer gewünschten Zielvorgaben erfüllen können, wenn sie auf
einer Menge von Texten ausgeführt wird. Das bedeutet zum Beispiel, wenn der
Benutzer als Ziel eine Pipeline haben möchte, die Aussagen zum Umsatz (im
Folgenden Umsatzaussagen genannt) von Unternehmen aus Texten heraus filtert,
dann muss die berechnete Pipeline eben jene Umsatzaussagen aus der Textmenge
extrahieren, sofern diese vorhanden sind. Dementsprechend muss die IE-Pipeline
einen Algorithmus enthalten, der Umsatzaussagen erkennen kann. Jener Algorithmus wird allerdings weitere Vorbedingungen haben, die erfüllt sein müssen, damit
55
4. Konzeptueller Lösungsansatz
er die im Text verborgenen Aussagen sichtbar machen kann (vgl. Abschnitt 2.4.1).
Dies könnten etwa Geld- und Zeitinformationen sein, die bereits im Text annotiert
sein müssen. Für das Herausfinden dieser Informationen sind wiederum Algorithmen in der IE-Pipeline notwendig, die eben jene Informationen finden können
und außerdem vor dem Algorithmus ausgeführt werden müssen, der die Umsatzaussagen findet. Diese Algorithmen haben wiederum Vorbedingungen und somit
müssen auch dafür wieder entsprechende Algorithmen gefunden werden, bis alle
noch offenen Vorbedingungen erfüllt sind. Die zuletzt gefundenen Algorithmen arbeiten demnach auf Klartext. Dadurch, dass die Zielvorgaben des Benutzers durch
die Pipeline erfüllt und es keine offenen Vorbedingungen für die gewählten Algorithmen mehr gibt, erfüllt die berechnete Pipeline die Zielvorgaben. Sie ist also
korrekt im Sinne dieser Vorgaben.
Dies alleine genügt allerdings noch nicht, um alle Anforderungen an die Pipeline
zu erfüllen. Der Benutzer kann weitere Randbedingungen aufstellen, die die Pipeline erfüllen muss. Er könnte zum Beispiel die Einhaltung der Bedingung Nur
”
Umsatzaussagen zwischen den Jahren 1999 und 2008“ fordern. Demnach dürfte die IE-Pipeline nur Umsatzaussagen zurück liefern, die im Zeitraum zwischen
1999 und 2008 aufgetreten sind. Der Benutzer könnte weiterhin festlegen, dass das
Expertensystem möglichst schnell Ergebnisse liefern soll, ohne auf die Güte der
gefundenen Ergebnisse zu achten. Dies wäre eine Anforderung an die Qualität der
IE-Pipeline (vgl. Abschnitt 2.4.1). So kann es sein, dass daraufhin das Expertensystem die schnellsten IE-Algorithmen für eine IE-Pipeline auswählt und dadurch
zwar schnell die Textmenge bearbeitet hat, allerdings zum einen nicht alle Umsatzaussagen gefunden werden und zum anderen in der gefundenen Menge auch
Ergebnisse dabei sind, die gar keine Umsatzaussagen sind und somit falsch bestimmt wurden. Andersherum könnte der Benutzer aber auch auf einer möglichst
hohen Menge an korrekten Ergebnisse bestehen. Damit müsste die IE-Pipeline
aus den IE-Algorithmen bestehen, die eine besonders hohe Effektivität besitzen.
Den bestehenden Kompromiss zwischen Effizienz und Effektivität gilt es daher
vom Expertensystem bei der Berechnung der IE-Pipeline zu berücksichtigen. Die
Randbedingungen lassen sich demnach in die zwei Gruppen Einschränkungen der
Ergebnismenge und Anforderungen an die Qualität der IE-Pipeline einteilen.
Nun soll aber die Pipeline unter allen gegebenen Zielvorgaben und Randbedingungen auch immer möglichst effizient sein. Das bedeutet, wenn der Benutzer eine
effektive IE-Pipeline fordert, so soll diese trotzdem noch so effizient wie möglich
sein. Daher muss das Expertensystem bei der Berechnung der IE-Pipeline die
verfügbaren Methoden zur Bestimmung einer effizienten Pipeline berücksichtigen
(vgl. Abschnitt 2.4.2).
Das Ausgangsproblem der Berechnung einer IE-Pipeline lässt sich so zusammenfassen, dass ein Verfahren gebraucht wird, welches folgende Aufgaben erledigt:
1. Aus den Zielvorgaben des Benutzers wird eine IE-Pipeline berechnet.
2. Die aufgestellten Randbedingungen bezüglich Einschränkungen der Ergebnismenge und Anforderungen an die Qualität der IE-Pipeline werden beim
56
4.1 Konstruktion der Information-Extraction-Pipeline
Berechnen der IE-Pipeline beachtet.
3. Die Methoden zur Erstellung von effizienten IE-Pipelines werden bei der
Berechnung der IE-Pipeline angewendet und berücksichtigt.
Das für die Lösung dieses Ausgangsproblems gewählte Verfahren ist ein Planungsansatz, basierend auf einem Partial Order Planner. Das zugrunde liegende
Planungsproblem und der Basisalgorithmus des Planers wird in Unterabschnitt
4.1.2 dargelegt. Vorher werden im Unterabschnitt 4.1.1 die Gründe für den Einsatz eines Planungsverfahrens und gegen den Einsatz eines direkten Schlussfolgerns auf dem Wissen der Ontologie genannt. Die Unterabschnitte 4.1.3 und 4.1.4
erläutern die für den Planer wichtigen Teilaspekte der Auswahl eines Algorithmus
in einer bestimmten Situation, welche vor allem durch die Anforderungen an die
Qualität der Pipeline bestimmt wird, und der Ableitung der Pipeline aus dem am
Ende berechneten Plan. Die Erfüllung der Randbedingungen bezüglich der Einschränkung der Ergebnismenge widmet sich mit der Einführung von zusätzlichen
Filterschritten in die Pipeline der Unterabschnitt 4.1.5. Da die Berechnung der
schlussendlichen Ergebnisse natürlich eine Ausführung der berechneten Pipeline
erfordert, wird dieser Aspekt in Unterabschnitt 4.1.6 behandelt.
4.1.1 Untersuchung von Planning und Reasoning zur
Konstruktion der IE-Pipeline
Für die Konstruktion einer IE-Pipeline ist ein Planungsverfahren gewählt worden, welches in Abschnitt 4.1.2 vorgestellt wird. Allerdings gibt es als Schlussfolgerungsverfahren in einem Expertensystem neben den Planungsmethoden noch
weitere Möglichkeiten, wie in Abschnitt 2.3 bereits beschrieben. Da das entwickelte Expertensystem als Wissensbasis auf eine OWL-DL-Ontologie setzt, hätte sich
vor allem das Schlussfolgern auf dem Wissen in der Ontologie mit der Hilfe eines
OWL Reasoners angeboten, wie es in Abschnitt 2.3.1 beschrieben wurde.
Ebenfalls in dem angesprochenen Abschnitt wird erläutert, dass OWL Reasoning potenziell sehr teuer in Bezug auf die Laufzeit sein kann. In der Literatur finden sich sowohl Arbeiten, die eine praxistaugliche Laufzeit von StandardReasonern, wie Pellet oder FaCT++, erwähnen [LLBN09], als auch solche, die den
bestehenden Standard-Reasonern eine schlechte Leistung sowohl bei der Laufzeit,
und vor allem auch beim Speicherverbrauch bescheinigen [Lie06]. Entscheidend ist
aber, dass in beiden erwähnten Arbeiten die mangelnde Korrektheit der von den
Reasonern gelieferten Ergebnisse kritisiert wird.
In den in Abschnitt 3.3 vorgestellten Arbeiten wurden ebenfalls zum großen
Teil OWL-Ontologien und Planungsalgorithmen zusammen eingesetzt. Die Autoren von [ŽKŽL11] haben gezeigt, dass allein die Auswahl einer Aktion in einem
Planungsschritt, als Anfrage an die Ontologie, schon sehr lange dauern kann. Dazu
wurden die Vorbedingungen der möglichen Aktionen mit den gerade erfüllten Bedingungen abgeglichen und dann die nächste Aktion vom Reasoner ausgewählt.
57
4. Konzeptueller Lösungsansatz
Diese mangelnde Performanz wird auch von [BFL+ 07] beschrieben. Sie führen
daher das Reasoning offline durch und arbeiten dann in der Planungsphase auf
offline erzeugten, PDDL ähnlichen Beschreibungen. Alle anderen Arbeiten setzen
kein Reasoning als Ersatz des Planens ein.
Im späteren Verlauf dieses Kapitels wird beschrieben, welche Eigenschaften
der Domäne IE direkt für die Optimierung des Planungsansatzes genutzt werden können. Die Formalisierung dieser Eigenschaften und generell des gesamten
Expertenwissens, zum Beispiel bezüglich der Konstruktion effizienter IE-Pipelines
in eine ontologische Form, ist eine eigene Herausforderung. Die Ontologie könnte
durch Hinzunahme dieses Wissens sehr komplex werden. Bereitstehende StandardReasoner können nicht auf die Domäne IE optimiert werden. Dies liegt außerhalb
der Machbarkeit dieser Arbeit.
Anstatt Reasoning wird daher zusammengefasst aus folgenden Gründen ein
Planungsverfahren eingesetzt:
1. Gerade bei komplexeren Ontologien gibt es eine potenziell schlechte Laufzeitund Speichereffizienz der zur Verfügung stehenden Standard-Reasoner.
2. Die Standard-Reasoner sind unzuverlässig hinsichtlich der Korrektheit ihrer
Ergebnisse.
3. Andere gefundene, vergleichbare Arbeiten, die OWL-Ontologien einsetzen,
nutzen das durch den Einsatz der Ontologie mögliche Reasoning aus Gründen
der Performanz nicht als Ersatz für das Planen.
4. Die Verbesserung eines Standard-Reasoners oder die Anpassung von OWL
und Standard-Reasoner an die Domäne IE steht außerhalb der Machbarkeit
dieser Arbeit. Ein Planungsverfahren lässt sich aber sehr wohl durch die
Berücksichtigung der Besonderheiten der Domäne IE optimieren.
Das entwickelte Planungsverfahren wird in den folgenden Abschnitten vorgestellt.
4.1.2 Planungsproblem der Konstruktion der IE-Pipeline
Das Problem der Konstruktion der IE-Pipeline wird in dieser Arbeit als ein Planungsproblem aufgefasst und dementsprechend durch einen speziellen Partial Order Planner gelöst. Wie in Abschnitt 2.3.2 beschrieben, besteht ein Planungsproblem maßgeblich aus der Repräsentation der Zustände, der Ziele und der Aktionen.
In Abschnitt 2.4 wurde die Domäne Information Extraction vorgestellt. Die wesentlichen Elemente dieser Domäne sind die vorhandenen Annotationen, das heißt
die gefundenen Informationen, und die Algorithmen, welche diese Annotationen
erzeugen. Eine Annotation hat dabei einen ganz bestimmten Annotationstypen.
So kann zum Beispiel ein gefundenes Unternehmen IBM den Annotationstyp Unternehmen haben. Damit ein einzelner Algorithmus seine Arbeit verrichten kann,
müssen bestimmte Informationen bereits gefunden sein. Das bedeutet, es liegen
58
4.1 Konstruktion der Information-Extraction-Pipeline
vor seiner Ausführung bereits Annotationen von bestimmten Annotationstypen
vor. Die erfolgreiche Durchführung eines Algorithmus ist also an bestimmte zu
erfüllende Vorbedingungen geknüpft. Ein IE-Algorithmus kann daher als ein Algorithmus mit einer ganz bestimmten Eingabe, den Informationen mit den benötigten Annotationstyp, und einer ganz bestimmten Ausgabe, den von ihm erzeugten
Annotationen von einem ganz bestimmten Annotationstyp, gesehen werden (vgl.
Abschnitt 2.4.1). Allerdings muss ein Algorithmus auch mit einer leeren Eingabe,
dass heißt mit nicht vorhandenen Annotationen, rechnen. Ein solcher Fall tritt
ein, wenn in einem Text eben jene benötigten Informationen, wie zum Beispiel die
eben genannten Unternehmen, nicht vorhanden sind und daher auch keine oder
nur eingeschränkt aussagekräftige Folgeinformationen erzeugt werden können. Die
zu spezifizierende IE-Aufgabe beschreibt dabei das mit der IE-Pipeline verfolgte
Ziel, also welche Art von Informationen beziehungsweise Annotationstypen schlussendlich gefunden werden sollen.
Planungsproblem als PDDL-Beschreibung
Die Notation des Planungsproblems orientiert sich an der in Abschnitt 2.3.2 beschriebenen PDDL. Das heißt, das Planungsproblem wird definiert durch die Beschreibung der Planungsdomäne und der Beschreibung des an diese Domäne gerichteten Problems. Weiterhin wird zusätzlich spezifiziert, was die Begriffe Zustand, Zielzustand und Plan, ausgehend von den Begriffen der IE-Domäne, bedeuten. Das grundlegende Planungsproblem für die Berechnung einer IE-Pipeline
lässt sich damit folgendermaßen definieren:
Beschreibung der Domäne:
• Typenliste: Eine Typenliste beschreibt PDDL-Typen, welche die möglichen
Annotationstypen spezifizieren.
• Prädikate: Das einzige Prädikat Available Annotation Type(x) beschreibt,
dass Annotationen von einem bestimmten Annotationstyp x vorliegen.
• Zustand: Ein Zustand besteht aus einer Menge von vorliegenden Annotationen von ganz bestimmten Annotationstypen. Er besteht daher aus einer
Menge und -verknüpfter Available Annotation Type(xi : T ype) Prädikate,
wobei das Objekt xi einen ganz bestimmten Annotationstyp darstellt. Dieses
Objekt ist typisiert, es besitzt daher einen Typ T ype, der in der Typenliste
spezifiziert wurde.
• Aktion: Ein IE-Algorithmus: Er benötigt zur Ausführung eine Menge schon
vorliegender Annotationen von ganz bestimmten Annotationstypen im aktuellen Zustand. Er erzeugt dann einen neuen Zustand, indem im alten Zustand nun zusätzlich Annotationen von ganz bestimmten Annotationstypen,
die vorher nicht im Zustand vorgekommen sind, vorhanden sind. Die benötigten Annotationstypen werden durch Available Annotation Type(xi : T ype)
59
4. Konzeptueller Lösungsansatz
beschrieben und sind demnach seine Vorbedingungen (die Eingabe des Algorithmus). Die erzeugten Annotationen werden durch Available Annotation
Type(yi : T ype) beschrieben und sind die Effekte des IE-Algorithmus (die
Ausgabe des Algorithmus). Die Objekte xi und yi haben einen ganz bestimmten Annotationstyp T ype, welcher in der Typenliste der möglichen
Annotationstypen aufgeführt ist. Zusätzlich besitzt jede Aktion ein oder
mehrere Werte für bestimmte Effizienz- und Effektivitätsmaße.
Beschreibung des Problems:
• Objekte: Für jeden möglichen Annotationstypen existiert ein Objekt. Die
Objekte sind durch Typen der Typenliste der Domänenbeschreibung typisiert (beispielsweise Satz:Sentence).
• Anfangszustand: Der Anfangszustand ist der Zustand, in dem noch keine
Objekte vorliegen (nur Klartext vorhanden, noch keine Informationen).
• Ziel: Das Ziel ist eine Menge von vorzuliegenden Annotationen mit ganz bestimmten Annotationstypen beschrieben durch Available Annotation Type(zi ).
• Zielzustand: Ein Zielzustand ist ein partiell spezifizierter Zustand, in dem
das Ziel enthalten ist.
• Randbedingungen: Die Randbedingungen für das Planungsproblem beschreiben, ob eine möglichst effektive oder möglichst effiziente IE-Pipeline konstruiert werden soll.
• Plan: Die IE-Pipeline: Eine total geordnete Menge von IE-Algorithmen, deren nacheinander erfolgte Ausführung beginnend im Anfangszustand zu einem Zielzustand führt und dabei die Randbedingungen einhält.
In den Beschreibungen des Planungsproblems wird die Eigenschaft von PDDL
genutzt, dass Objekte auch einen Typ haben dürfen. Normalerweise wäre es notwendig, für ein Objekt Satz ein entsprechendes Prädikat isSentence(x) zu definieren, damit dann im Anfangszustand isSentence(Satz) gelten kann. Für jeden
möglichen Annotationstyp wäre ein entsprechendes Prädikat zu definieren und im
Anfangszustand dann dieses Prädikat mit dem konkreten Annotationstypobjekt
aufzuführen. Des Weiteren müsste jede Aktion, die eine Vorbedingung Available
Annotation Type(Satz:Sentence) für ein Objekt Satz vom Typ Sentence braucht,
nicht nur die Vorbedingung Available Annotation Type(Satz), sondern auch isSentence(Satz) enthalten. Entsprechendes müsste für alle möglichen Annotationstypen und Aktionen spezifiziert werden. Durch die Typisierung der Objekte kann
diese Art der Modellierung vereinfacht werden. Dadurch, dass es für jeden Annotationstyp nur ein Objekt gibt, welches genau einmal vorkommt, und damit
eine eindeutige Belegung der Vor- und Nachbedingungen der Operatoren möglich
60
4.1 Konstruktion der Information-Extraction-Pipeline
ist, entfällt in der Beschreibung die Unterscheidung zwischen Operator und Aktion. Ein Operator könnte in dieser Art der Modellierung nur auf eine einzige Art
instantiiert werden.
Ein Beispiel für eine Aktion kann ein Tokenisierer sein. Er hat als Vorbedingung
das Prädikat Available Annotation Type(Satz:Sentence) und als Effekt Available
Annotation Type(Token:Token). Das bedeutet, die Eingabe des Algorithmus sind
Sätze, in denen er dann die einzelnen Tokens bestimmt.
Eine weitere Vereinfachung ist die Tatsache, dass es keine negativen Effekte
gibt. Dies kommt von der Besonderheit der Domäne IE, dass IE-Algorithmen keine Informationen im eigentlichen Sinne zerstören können (vgl. [DDM05]), sondern
nur neue Informationen erzeugen. Durch eine Filterung der Informationen werden
zwar nur ganz bestimmte Informationen weitergegeben, allerdings sind die nicht
weiter verfolgten Informationen für die Lösung der Gesamtaufgabe ohne Belang
(siehe Abschnitt 2.4.2). Eine weitere Möglichkeit ist, dass ein IE-Algorithmus bereits vorhandene Annotationen löscht, weil eine Überprüfung ergibt, dass diese
falsch gesetzt worden sind. Auch hier ist die Löschung als ein Zugewinn an Information zu sehen. Aus diesen Gründen sind in den Effekten der als IE-Algorithmen
spezifizierten Aktionen nur positive Literale enthalten.
Auf Basis des beschriebenen Planungsproblems lässt sich nun ein Planungsansatz identifizieren, welcher geeignet ist, um eben jenes Problem zu lösen. Dabei gilt
es, nicht nur die Ziele des Benutzers zu beachten, sondern auch die von ihm spezifizierten Randbedingungen, sowie die Methoden zur Konstruktion einer effizienten
IE-Pipeline.
Der domänenspezifische Planer
Gewählt wurde ein Partial Order Planner als Basis für den Planungsalgorithmus.
Dieser Ansatz hat eine Reihe von Vorteilen. Ein entscheidender Vorteil, der die
Implementierung sehr vereinfacht, ist die Tatsache, dass es keine negativen Effekte in der modellierten Welt gibt. Dadurch entfällt die Notwendigkeit, verletzte
oder gefährdete kausale Links zu betrachten, da überhaupt keine kausalen Links
benötigt werden. Ein weiterer Vorteil ergibt sich aus der Arbeitsweise eines Partial Order Planners vom Ziel aus rückwärts zum Anfangszustand. Hiermit wird
automatisch das aus Abschnitt 2.4.2 bekannte Paradigma Lazy Evaluation für
die Konstruktion einer effizienten IE-Pipeline erfüllt. Ausgehend von der benötigten Eingaben eines IE-Algorithmus werden genau die Algorithmen ausgewählt,
die diese benötigten Eingaben als Ausgaben erzeugen. Dadurch ergibt sich, dass
ein IE-Algorithmus so spät wie möglich in der resultierenden IE-Pipeline auftauchen wird. Der Partial Order Planner liefert einen partiellen Teilplan, in dem
die Ordnung zwischen den gewählten Aktionen, und somit den IE-Algorithmen,
nur partiell beschrieben ist. Die partielle Ordnung kann mehrere Möglichkeiten
der Schaffung einer totalen Ordnung erlauben. Somit können aus einem partiellen Plan mehrere verschiedene IE-Pipelines erzeugt werden. Damit ist es möglich,
das in Abschnitt 2.4.2 beschriebene Paradigma Optimized Scheduling für die Kon-
61
4. Konzeptueller Lösungsansatz
Algorithmus 3 Pseudocode für die Berechnung der IE-Pipeline
Eingabe: Actions A, Goals G, Constraints C
Ausgabe: IE P ipeline
1: P artial P lan ← planPipeline(A, G, C)
2: IE P ipeline ← topologicalSort(P artial P lan)
3: return IE P ipeline
Algorithmus 4 planPipeline(Actions A, Goals G, Constraints C)
1: Agenda Ag ← init(A, G)
2: AS ← {start, f inish}
3: OS ← {(start < f inish)}
4: while Ag 6= ∅ do
5:
next subgoal ← (p, a) ∈ Ag
6:
Ag ← Ag − next subgoal
7:
Action b ← selectBestAction(next subgoal, A, C)
8:
AS ← AS ∪ b
9:
OS ← OS ∪ (b < a)
10:
if b ∈
/ AS then
11:
for all Precondition pi ∈ b.P RECON D do
12:
Ag ← Ag ∪ (pi , b)
13:
end for
14:
end if
15: end while
16: return P ipeline P lan = (AS, OS)
struktion effizienter IE-Pipeline zu nutzen (dies wird im späteren Abschnitt 4.1.4
näher ausgeführt).
Der grundlegende Pseudocode für die Berechnung der IE-Pipeline, ist in Algorithmus 3 zu sehen. Benötigt werden die IE-Algorithmen als Menge der Aktionen
A, die zu erreichenden Ziele G in Form von Available Annotation Type(x), sowie die weiteren Randbedingungen C. Es wird dann der partielle Teilplan für die
IE-Pipeline von dem Partial Order Planner, angedeutet durch die Funktion planPipeline bestimmt. Der erzeugte Teilplan wird anschließend mittels einer speziell
angepassten topologischen Sortierung in einen totalen Plan für die zu bestimmende IE-Pipeline überführt. Die topologische Sortierung ist keineswegs trivial. So
darf zum Beispiel das vom Partial Order Planner beachtete Paradigma Lazy Evaluation nicht wieder verletzt werden. Außerdem muss dabei, im Sinne der Effizienz
der Gesamtpipeline, auf das Paradigma Early Filtering geachtet werden. Die genaue Funktionsweise der durch die Funktion topologicalSort angedeuteten
topologischen Sortierung wird daher in Abschnitt 4.1.4 detailliert beschrieben.
Der Pseudocode des angepassten Partial Order Planners ist in Algorithmus 4
dargestellt. Er orientiert sich größtenteils an dem in Abschnitt 2.3.2 vorgestellten
Basisverfahren. Die schon angesprochene Besonderheit ist, dass durch die Domäne
IE die Notwendigkeit für das Berücksichtigen der kausalen Links entfällt. Des
62
4.1 Konstruktion der Information-Extraction-Pipeline
Weiteren sind ein paar initiale Vorbereitungen zu treffen, die durch die Funktion
init in Zeile 1 durchgeführt werden.
Alle IE-Algorithmen, die auf Klartext arbeiten, somit keine benötigten Annotationen und dementsprechend auch keine Vorbedingung als Aktion besitzen, bekommen als Vorbedingung availableAnnotationType(plainText:PlainText) zugewiesen.
Das Objekt plainText vom Typ Plaintext wird in der Problembeschreibung definiert und das Literal availableAnnotationType(plainText) ist immer im Anfangszustand vorhanden. Die Funktion init in Zeile 1 erstellt außerdem die in Abschnitt
2.3.2 beschriebenen Aktionen start und f inish. Die Aktion start hat keine Vorbedingungen und als Effekt availableAnnotationType(plainText:PlainText). Somit
wird sichergestellt, dass alle Aktionen, die auf Klartext arbeiten, korrekt vom Partial Order Planner behandelt werden. Der Aktion f inish werden die gegebenen
Ziele als Vorbedingungen hinzugefügt. Außerdem werden diese Vorbedingungen
mit f inish zusammen, als zu erreichende Teilziele, auf die Agenda Ag gesetzt.
Eine wichtige Stellung nimmt in Zeile 7 die Funktion selectBestAction ein.
Im normalen Partial Order Planning würde eine Aktion gewählt, die die Vorbedingung p von Aktion a in ihren Effekten hat. Dies reicht für die Erfüllung der
Ziele diese Arbeit aber nicht aus. Der Benutzer kann Randbedingungen bezüglich
der Anforderungen an die Qualität der IE-Pipeline treffen. Diese Bedingungen
müssen bei der Auswahl der nächsten, passenden Aktion berücksichtigt werden.
So kann der Benutzer zum Beispiel einen hohen Wert auf eine möglichst effektive IE-Pipeline, und damit auf möglichst gute und viele Ergebnisse, legen. Dann
sollte in der Funktion selectBestAction immer die Aktion, welche die höchste
Effektivität verspricht, gewählt werden. Es sind aber auch noch komplexere Randbedingungen möglich. Beispielsweise kann der Benutzer angeben, dass in dem Fall,
wenn nicht ein Algorithmus als der mit der höchsten Effektivität gilt, sondern mehrere, der gewählt wird, der eine höhere Gesamteffizienz für die Gesamtpipeline
verspricht. Es gilt also, sogenannte Tie-Break Entscheidungen treffen zu können.
Die Bestimmung der in einem Planungsschritt besten Aktion ist demnach nicht
einfach. Daher wird das dazu verwendete Verfahren in einem eigenen Abschnitt
4.1.3 erläutert. Die zweiten Randbedingungen in Form von Einschränkungen der
Ergebnismenge mittels zusätzlicher Filter können unabhängig von der eigentlichen
Berechnung der IE-Pipeline erfüllt werden. Auf diesen Aspekt wird Abschnitt 4.1.5
näher eingehen.
In Abbildung 4.2 wird die Berechnung der IE-Pipeline noch einmal bildlich dargestellt. Die Menge der möglichen Aktionen für das Planungsverfahren stellen die
einzelnen IE-Algorithmen dar. Jede Aktion X hat dabei ein Menge von Vorbedingungen XP recond und eine Menge von Effekten XEf f ect . Des Weiteren besitzt jede
Aktion Werte, die die Effizienz (Effizienz X ) oder die Effektivität (Effektivität X )
des der Aktion zugrundeliegenden IE-Algorithmus beschreiben.
Aus dieser Menge von möglichen Aktionen bestimmt der Partial Order Planner
unter Berücksichtigung der spezifizierten Ziele und Randbedingungen einen partiellen Teilplan, der sich mithilfe eines Abhängigkeitsgraphen darstellen lässt (vgl.
Abschnitt 2.3.2). Dieser Abhängigkeitsgraph wird dann durch die topologische
63
4. Konzeptueller Lösungsansatz
APrecond
EffizienzA
A
AEffect
EffektivitätA
BPrecond
EffizienzB
B
BEffect
Partial Order
Planning
A
C
C
EffektivitätB
CPrecond
EffizienzC
C
CEffect
Ziele
+
Randbedingungen
B
A
FA
B
+
Hinzufügen
von Filtern
Randbedingungen
EffektivitätC
Menge der
Aktionen
Topologische
Sortierung
Abhängigkeitsgraph
IE Pipeline
Abbildung 4.2: Berechnung der IE-Pipeline
Sortierung in eine IE-Pipeline überführt. Bei dieser Überführung können die weiteren Randbedingungen hinsichtlich des Filterns von bestimmten Informationen
berücksichtigt werden. Für jeden Algorithmus X, der die zu filternden Informationen liefert, wird daher ein anschließender Filterschritt FX in die IE-Pipeline
eingebaut. Zum Beispiel würde die Bedingung, nur Unternehmen zurückzugeben,
die mit I beginnen, und der Tatsache, dass die Aktion A den Annotationstyp Unternehmen in ihren Effekten hat, bedeuten, dass nach A der Filter FA eingefügt
wird, welcher die eben genannte Bedingung für alle eingehenden Textstellen prüft.
Hierbei filtert der Filter alle Textstellen heraus, die nicht eine mit I beginnendes
Unternehmen enthalten.
Entscheidungsbegründung für einen Partial Order Planner
Die Vorteile des eingesetzten Partial Order Planner wurden bereits aufgezählt. Im
Folgenden soll daher erläutert werden, was die Nachteile von anderen Planungsverfahren, die alle in Abschnitt 2.3.2 beschrieben wurden, sind, die dazu geführt
haben, diese Verfahren nicht einzusetzen.
Alle Planungsverfahren, die die Planung als Suche im Zustandsraum durchführen,
haben den Nachteil, dass sie immer nur eine IE-Pipeline finden. Eine Differenzierung zum Zwecke des Paradigmas Optimized Scheduling, wie es die topologische
Sortierung des Partial Order Planner möglich macht, ist somit nicht möglich. Bei
der Vorwärtssuche besteht außerdem die Gefahr, dass das Paradigma Lazy Evaluation verletzt wird. Das Hierarchical Task Network Planning kann nicht eingesetzt werden, weil das Paradigma Maximum Decomposition, also die größtmögliche
Aufteilung der IE-Algorithmen in ihre Bestandteile, komplett entgegengesetzt zu
der Idee des HTN Planning steht. Dieses versucht in einer Top-Down-Methode,
von dem gröbsten Plan aus durch immer weitere Verfeinerungen des Plans einen
Gesamtplan zu konstruieren. Die Idee des Paradigmas Maximum Decomposition
64
4.1 Konstruktion der Information-Extraction-Pipeline
besteht aus einer Bottom-Up-Methode, die also auf der feingranularsten Stufe ansetzt und dadurch schrittweise zu einer Gesamtpipeline kommt. Die Nachteile des
Planens als Erfüllbarkeitsproblem sind ähnlich den in Abschnitt 4.1.1 angeführten
Gründen gegen Reasoning und für Planen insgesamt. Vor allem die mangelnde
Optimierung an die identifizierten Eigenarten der Domäne IE schränkt diese Art
des Planens ein. Außerdem besteht die Gefahr, dass die Menge der Aussagensymbole schnell sehr groß werden kann, wenn etwa das Wissen um die Paradigmen
für eine effiziente Konstruktion von IE-Pipelines mit in das Erfüllbarkeitsproblem
hinein kodiert wird.
Eine weitere Möglichkeit hätte der Einsatz eines schon bestehenden Planers, wie
den bereits in Kapitel 3 erwähnten MetricFF-Planer, sein können. Viele dieser Planer basieren auf PDDL (vgl. Abschnitt 2.3.2). Das grundsätzliche Problem, dass
diese Planer kein Domänenwissen enthalten und daher nicht auf das zugrundeliegende Problem der Berechnung einer IE-Pipeline hin optimiert werden können,
bleibt jedoch bei allen externen Planern bestehen. Ein weiteres Problem ist, dass
zum Beispiel die PDDL-basierten Planer im Normalfall immer den kürzesten zu erreichenden Plan zurück liefern. Dies ist aber für das hier behandelte Problem völlig
unzureichend. Ein kürzester Plan sagt nichts über die zugrundeliegende Qualität
aus, die ein Benutzer beispielsweise als zu erfüllende Randbedingung mit in das
Problem eingibt. So kann nicht garantiert werden, dass eine IE-Pipeline hinsichtlich einer bestmöglichen Effektivität konstruiert wird. Moderne PDDL-Planer wie
MetricFF bieten zwar die Angabe von beliebig vielen numerischen Werten an den
Aktionen und unter Angabe eines Kostenmaßes auch eine Art von zu minimierender oder maximierender Zielfunktion an. Allerdings lassen sich nicht alle Werte der
Domäne IE, wie Precision, Recall oder Average Sentence Response Time beliebig
miteinander verrechnen (vgl. Abschnitt 2.4.3). Nicht einmal die Verrechnung in
einem Gütekriterium wie Recall ist möglich. So bleibt eine Angabe von Zielfunktionen unzureichend für das Problem der Konstruktion von IE-Pipelines.
4.1.3 Lösungsansatz des Algorithmenauswahlproblems
Der Benutzer stellt Randbedingungen hinsichtlich der zu erwartenden Qualität
der IE-Pipeline auf, die bei ihrer Konstruktion berücksichtigt werden müssen.
Dies kann etwa eine möglichst hohe Effektivität der Pipeline sein. In diesem Fall
sollte in jedem Planungsschritt immer jener Algorithmus genommen werden, der
den höchsten Effektivitätswert hat. Dadurch ergibt sich dann eine hohe Gesamteffektivität der IE-Pipeline (vgl. Abschnitt 2.4.2). Hierbei ergeben sich mehrere
Probleme. Zum einen kann es sein, dass der Benutzer eine gleichermaßen effektive wie effiziente IE-Pipeline haben möchte. Effektivität und Effizienz gleichzeitig
zu optimieren ist schwierig, da eine hohe Effizienz meist eine geringe Effektivität
zur Folge hat und umgekehrt, bedingt durch den in Abschnitt 2.4.3 beschriebenen
Trade-Off zwischen Effektivität und Effizienz in der Domäne IE. Somit würden die
entstehenden IE-Pipelines weder eine hohe Effektivität noch eine hohe Effizienz
aufweisen.
65
4. Konzeptueller Lösungsansatz
Ansatz der Mehrzieloptimierung
In der Literatur, zum Beispiel in [MA04] und in [Deb05] gibt es verschiedene
Verfahren, um diese sogenannte Mehrzieloptimierung zu lösen. Zuerst werden die
Pareto-optimalen Punkte bestimmt. Ein einzelner Wert x eines Pareto-optimalen
Punktes p = (x, y) kann nur verbessert werden, indem sein Wert y verschlechtert
wird und umgekehrt. Es besteht also ein Kompromiss zwischen den beiden Werten. Die sogenannte Pareto-Front ist jene Grenze auf der alle Pareto-optimalen
Punkte liegen. Auf dieser Front liegen damit die bestmöglichen Punkte. Von einem Pareto-optimalen Punkt zum nächsten kann eine Verbesserung eines Wertes
nur durch die Verschlechterung eines anderen erreicht werden. Man spricht davon,
dass diese Punkte nicht dominiert werden von anderen Punkten. Ein Punkt, der
nicht Pareto-optimal ist, kann demnach in allen Werten außer einem höchstens
gleich gut sein wie ein Pareto-optimaler Punkt.
Ein Beispiel hierfür wäre, dass der Benutzer eine möglichst effektive und effiziente Pipeline haben möchte. In einem Planungsschritt werden zwei ein Teilziel
erfüllende Algorithmen ausgewählt und die Aufgabe besteht nun darin zu entscheiden, welcher von beiden genommen wird. Diese beiden Algorithmen A und B
haben Effektivitätswerte x und Effizienzwerte y von A = (xA = 0, 1 ; yA = 1, 0)
beziehungsweise B = (xB = 1, 0 ; yB = 0, 1). Jeder Punkt ist in einem Wert
besser als der andere, in seinem anderen Wert aber schlechter (unter der Annahme, dass höhere Zahlenwerte bessere Werte darstellen). Das bedeutet, beide
sind Pareto-optimale Punkte. Das Problem besteht nun darin, eine Entscheidung
darüber zu treffen, welcher Punkt als der einzig beste ausgewählt wird. In [Deb05]
werden dazu zwei grundlegende Verfahren beschrieben. Zum einen kann nach dem
Berechnen der Pareto-optimalen Punkte Metawissen eingesetzt werden, um den
besten Punkt zu bestimmen. So könnte zum Beispiel gesagt werden, dass im Zweifel immer der Effektivitätswert den Vorrang hat, der über 0, 5 liegt. Damit würde
im vorangegangenen Beispiel der Algorithmus B gewählt werden. Ein anderes Verfahren versucht die einzelnen Werte mittels eines Präferenzvektors zu gewichten,
und damit einen Gesamtwert für jeden Punkt zu berechnen. So könnte mit einer
Gewichtung der Effektivität von 0, 3 und der Effizienz von 0, 7 für A und B die
Gesamtwerte A = 0, 1 ∗ 0, 3 + 1, 0 ∗ 0, 7 = 0, 73 und B = 1, 0 ∗ 0, 3 + 0, 1 ∗ 0, 7 = 0, 37
bestimmt werden. Mit dieser Präferenz würde A als bester Punkt ausgewählt werden.
Gewählter Ansatz
In der Domäne IE sind die eben beschriebenen Möglichkeiten der Mehrzieloptimierung nicht ohne weiteres anwendbar. Hier existiert das schon in Abschnitt 2.4.3
beschriebene Problem, dass vor allem die Effektivitätsmaße nicht einfach aufsummiert oder auf irgend eine Art und Weise miteinander verrechnet werden können.
Auch ein Ansatz, einen Effizienzwert, wie Averaged Efficiency und einen Effektivitätswert, wie F-Measure, anteilig zu einem einzigen Wert zu verrechnen und mit
66
4.1 Konstruktion der Information-Extraction-Pipeline
diesem neuen Wert eine Aussage zu treffen, konnte vom Autor dieser Arbeit in
der Literatur nicht gefunden werden.
Daher wird in dieser Arbeit ein anderer Ansatz verfolgt. Der Benutzer legt sich
im Vorfeld auf eine Reihenfolge der Betrachtung von verschiedenen Gütekriterien
fest, und damit auf eine Priorisierung bei der Auswahl des in einem Planungsschritt besten Algorithmus. Diese Wahl ist das Aufstellen einer Randbedingung
hinsichtlich der Qualität der zu konstruierenden IE-Pipeline. Eine Priorisierung
1. Effizienz 2. F-Measure 3. Precision bedeutet zum Beispiel, dass in einem Planungsschritt zuerst die Aktionen bestimmt werden, die das gerade gewählte Teilziel lösen können. Aus dieser Menge wird dann für jede Aktion, und somit für
den hinter einer Aktion stehenden IE-Algorithmus, der Effizienzwert berechnet.
Sobald es nur eine einzige, beste Aktion hinsichtlich der Effizienz gibt, wird diese gewählt. Andernfalls werden die F-Measure-Werte der effizientesten Aktionen
miteinander verglichen. Gibt es wieder mehr als eine Aktion mit dem besten FMeasure-Wert, so wird der Precision-Wert dieser besten Aktionen herangezogen.
Sollte es am Ende immer noch mehr als eine beste Aktion geben, so wird, mangels
weiterer Alternativen, der lexographisch erste Name der den Aktionen zugrundeliegenden Algorithmen als Entscheidungskriterium genommen. Die einzelnen
Prioritäten werden also nacheinander durchlaufen.
Die möglichen Priorisierungen können aus den in der Domäne IE zur Verfügung
stehenden Gütekriterien ableitet werden. Die Kriterien lassen sich den Bereichen
Effektivität und Effizienz zuordnen (vgl. Abschnitt 2.4.3). Es wird angenommen,
dass die Effizienz für jeden IE-Algorithmus in einem einheitlichen Kriterium ausgedrückt ist. Dies kann zum Beispiel die Averaged Efficiency sein. Bei der Effektivität
gibt es für die unterschiedlichen Arten von Algorithmen unterschiedliche Effektivitätskriterien. So kann es für ein IE-Verfahren wichtig sein zu erfahren, wie es um
seine Präzision (Kriterium Precision) und/oder um seine Trefferquote (Kriterium
Recall ) steht (vgl. Abschnitt 2.4.3). Um einen Gesamtüberblick über die Effektivität eines IE-Algorithmus zu bekommen, wird häufig das F-Measure benutzt,
wie in Abschnitt 2.4.3 bereits beschrieben. Bei den Algorithmen der Vorverarbeitung sind meistens andere Effektivitätsmaße im Einsatz. So wird die Effektivität
eines Tokenisierers oft in Accuracy angegeben. Ein Dependecy Parser ist in der
Regel dann effektiv, wenn er einen hohen Labeled Attachment Score hat. Wie in
Abschnitt 2.4.3 bereits erwähnt, versuchen F-Measure, Accuracy und Labeled Attachment Score (LAS) einen kombinierten Gesamtwert für die Effektivität eines
Algorithmus anzugeben.
Für eine IE-Aufgabe und damit für die Gesamtbetrachtung der IE-Pipeline, welche diese Aufgabe löst, sind die betrachteten Gütekriterien das F-Measure F1 (Π)
der IE-Pipeline Π, die Precision P (Π) und der Recall R(Π) auf Seiten der Effektivität und die Laufzeit der Pipeline als Effizienzmaß t(Π). Dies liegt daran, dass,
wie in Abschnitt 2.4.1 beschrieben, gerade die Effektivität der IE-Algorithmen,
die eine solche IE-Aufgabe lösen, häufig in F-Measure, Recall und Precision ausgedrückt wird. Der Benutzer kann verschiedene Reihenfolgen dieser vier Kriterien
im Vorfeld der Pipelineberechnung wählen. Abbildung 4.3 zeigt die zwölf für den
67
4. Konzeptueller Lösungsansatz
Effektivität
Effizienz
P(∏ )
Pt
PF1
tP
tF1P
t(∏ )
tF1R
F1tP
F1P
F1(∏ )
F1tR
F1R
tR
Rt
RF1
R(∏ )
Abbildung 4.3: Durch Benutzer wählbare Priorisierungen
Benutzer wählbaren Möglichkeiten der Priorisierung, dargestellt als blaue Punkte. Durch Wahl einer dieser Punkte ist es dem Benutzer möglich, eine Präferenz
hinsichtlich Effizienz und Effektivität, sowie zwischen Recall und Precision der zu
konstruierenden IE-Pipeline anzugeben. Die Wahl eines Punktes tF1 R gibt etwa
an, dass bei der Konstruktion der IE-Pipeline die einzelnen Algorithmen zuerst
aufgrund ihrer Effizienz ausgewählt werden sollen. Erst wenn sich eine Situation ergibt, dass mehrere Algorithmen in einem Planungsschritt sowohl dasselbe
Teilziel erfüllen, als auch die gleiche Effizienz aufweisen, wird als zweites der FMeasure-Wert der Algorithmen verglichen. Nur wenn sich danach immer noch kein
bester Algorithmus bestimmen lässt, wird auch noch der Recall -Wert der Algorithmen betrachtet. Bei erneuter Gleichheit entscheidet dann, wie bereits erwähnt,
die lexographische Ordnung der Algorithmennamen.
Punkte, die in Abbildung 4.3 auf den Kanten des Dreiecks liegen, haben nur
zwei Gütekriterien angegeben. Dies liegt daran, dass sich bei ihnen das dritte
Kriterium implizit ergibt. Sind etwa bei Wahl eines Punktes F1 R sowohl der FMeasure- als auch der Recall -Wert der auszuwählenden Algorithmen gleich, so
müssen danach deren Effizienzwerte untersucht werden. Die Untersuchung der
Precision Werte anstatt der Effizienz kann entfallen, da die Precision bei allen
betrachteten Algorithmen gleich sein muss. Dies ergibt sich aus der in Abschnitt
2.4 vorgestellten Berechnungsweise des F-Measure aus Recall und Precision. Daher
ist es bei einem Punkt Rt egal, ob nach gleichen Effizienzwerten der F-MeasureWert oder der Precision-Wert der verbliebenen Algorithmen betrachtet wird. In
beiden Fällen werden die gleichen Reihenfolgeergebnisse herauskommen.
Die Wahl eines Punktes wie tF1 R zieht nach sich, dass alle betrachteten Algorithmen einen Effizienzwert, einen F-Measure- und einen Recall -Wert besitzen.
Dies ist, wie weiter oben bereits angesprochen, allerdings größtenteils nur bei. den
IE-Algorithmen der Fall. Für zwei Tokenisierer, die nur einen Wert für Accuracy
als Effektivitätswert besitzen, muss die durch den gewählten Punkt ausgedrückte
Präferenz erst Effizienz, dann Effektivität dazu führen, dass anstatt das F-Measure
68
4.1 Konstruktion der Information-Extraction-Pipeline
Algorithmus 5 selectBestAction(Subgoal (p, a), Actions A, Constraints C)
1: Actions Af ← getActionsFullfillingSubgoal(A, p)
2: List qualityCriteriaOrder ← getSuitableOrder(Af , C)
3: for all Quality Criterion q ∈ qualityCriteriaOrder do
4:
if |Af | = 1 then
5:
return Element in Af
6:
else
7:
Af ← getBestActions(Af , q)
8:
end if
9: end for
10: return lexographical first element in Af
Algorithmus 6 getBestActions(Actions A, Quality Criterion q)
1: value[|A|]
2: for all Action a ∈ A do
3:
if q can not be added up then
4:
value[a] ← Value of a for q
5:
else
6:
value[a] ← getValue(a, q)
7:
end if
8: end for
9: return Action with best(value)
bei Gleichheit der Effizienz der Wert ihrer Accuracy A den besten Tokenisierer bestimmt. Eine zweite Priorisierung tA wird also bei der Wahl von tF1 R implizit mit
ausgewählt. Die dritte implizite Priorisierung ist schließlich tLAS. So müssen also
für jeden ausgewählten Punkt implizit zwei weitere Priorisierungen ausgewählt
werden, die die Effizienz t sowie entweder A oder LAS betreffen.
Algorithmus des gewählten Ansatzes
Der Auswahlprozess des besten Algorithmus durch die Funktion selectBestAction aus dem Pseudocode des Partial Order Planners in Algorithmus 4 lässt sich
nun formal definieren. Der Pseudocode für die Auswahl der besten Aktion ist in
Algorithmus 5 zu sehen. Durch die Funktion getActionsFullfillingSubgoal in Zeile 1
wird die Menge der Aktionen bestimmt, die das zu erfüllende Teilziel p in ihren Effekten enthalten haben. Danach wird auf Basis dieser gewählten Algorithmen eine
passende Priorisierung durch die Funktion getSuitableOrder in Zeile 2 gewählt. So
wird, wie weiter oben beschrieben, anstatt einer Priorisierung tF1 R eine Priorisierung tA gewählt, wenn zum Beispiel nur Tokenisierer als zu betrachtende Aktionen
zur Auswahl stehen würden. Anschließend werden in einer Schleife von Zeile 3-9
nach und nach die besten Aktionen unter Berücksichtigung des jeweiligen Gütekriteriums bestimmt. Die besten Aktionen für ein Gütekriterium werden durch
die Funktion getBestActions in Zeile 7 berechnet.
69
4. Konzeptueller Lösungsansatz
Algorithmus 7 getValue(Action a, Quality Criterion q)
1: value ← Value of q for a
2: for all Precondition p ∈ a.P RECON D do
3:
bestV alue ← N U LL
4:
for all Action ai ∈ getActionsFullfillingSubgoal(p) do
5:
if ai is Filterprocedure then
6:
bestV alue ← N U LL
7:
break
8:
else
9:
aV alue ← getValue(ai , q)
10:
end if
11:
bestV alue ← max(bestV alue, aV alue)
12:
end for
13:
value ← calc(value, bestV alue)
14: end for
15: return value
Diese Funktion ist in Algorithmus 6 zu sehen. Sie bestimmt für jede Aktion
den jeweiligen Wert des Gütekriteriums. Danach gibt sie alle Aktionen mit dem
besten Wert zurück. Der beste Wert kann dabei der niedrigste sein, beispielsweise bei Effizienzwerten wie Averaged Efficiency, oder aber der höchste, wie den
Effektivitätswerten Recall, Precision und F-Measure.
Lassen sich die Werte des betrachteten Gütekriteriums nicht verrechnen, so wird
in Zeile 4 der Wert des Gütekriteriums für die Aktion direkt genommen. Sollen
beispielsweise die Recall Werte von Aktionen bestimmt werden, dann ist nur der an
der jeweiligen Aktion bestehende Wert für Recall zu nehmen und anschließend der
höchste Wert von allen betrachteten Aktionen zu bestimmen. Bei der Bestimmung
der Werte für ein Laufzeitkriterium wie Averaged Efficiency dürfen aber nicht nur
die Laufzeitkosten der jeweiligen Aktion alleine betrachtet werden, sondern man
muss die Kosten von allen Vorgänger mit einrechnen. Dies passiert durch die
Funktion getValue in Zeile 6. Vorgänger sind eben jene Aktionen, die eine oder
mehrere Vorbedingungen der Aktion als Effekte haben. Für die Berechnung des
Wertes für einen Vorgänger müssen seine Vorbedingungen und die entsprechenden
Vorgänger bestimmt werden.
Die Funktion getValue in Zeile 6 bestimmt für eine Aktion und ein Gütekriterium rekursiv den entsprechenden Wert. Sie ist in Algorithmus 7 zu sehen. Die
Rekursion wird spätestens abgebrochen, wenn eine Aktion keine Vorbedingungen
hat. Dann wird der Wert für das entsprechende Gütekriterium aus Zeile 1 direkt
zurückgegeben und die Schleife in Zeile 2-14 nicht durchlaufen. Für jede Vorbedingung der Aktion (Zeile 2) wird ansonsten der beste Wert rekursiv bestimmt (Zeile
4-12) und zusammengerechnet durch die Funktion calc (Zeile 13). Wird bei dieser Berechnung für eine Vorbedingung ein Filterverfahren als die Vorbedingung
erfüllende Aktion gefunden (Zeile 5), so wird die Berechnung für diese Vorbedingung abgebrochen (Zeile 6 und 7). Die Begründung hierfür wird im nächsten
70
4.1 Konstruktion der Information-Extraction-Pipeline
Abschnitt beschrieben. Somit wird am Ende für den Partial Order Planner eine
entsprechende, beste Aktion bestimmt.
Aspekte des gewählten Ansatzes
Der gewählte Ansatz benutzt für die Bestimmung des Wertes eines verrechenbaren Gütekriteriums einer Aktion einen heuristischen Ansatz. Filterverfahren sind
hierbei die wichtigsten Elemente. Ein Filterverfahren schränkt die nachfolgende
Menge an zu untersuchenden Textstellen ein. Dadurch wird zum Beispiel die Gesamteffizienz der IE-Pipeline direkt erhöht, denn weniger zu analysierender Text
bedeutet eine kürzere Gesamtlaufzeit (vgl. 2.4.2). Ein Filterverfahren wird von
dem gewählten Ansatz nur betrachtet, wenn es eine direkte Aktion ist, die ein
Teilziel erfüllen kann. Bei der rekursiven Berechnung der Werte von verrechenbaren Gütekriterien wird die Rekursion nur bis zu einem Filterverfahren zurückgeführt. Das hat den Grund, dass sich die zu verarbeitende Textmenge nach der
Ausführung eines Filterverfahrens ändert. Daher gibt es keine Begründung, die
Werte vor dem Filterverfahren (einschließlich dem Filterverfahren selbst) mit den
Werten nach dem Filterverfahren zu verrechnen.
Ein weiterer Aspekt ist, dass die Werte für alle Vorbedingungen einer Aktion
isoliert voneinander berechnet werden. Dabei kann es sein, dass eine Aktion in
verschiedenen Berechnungspfaden mehrmals vorkommt. In der resultierenden IEPipeline ist jede Aktion allerdings nur einmal enthalten. Daher müssen die Werte
der Aktion auch nur einmal in die Gesamtberechnung einfließen. Dies kann gelöst
werden, indem bei der Bestimmung des Wertes für eine Vorbedingung die gewählten Aktionen gemerkt und diese bei der Bestimmung des Wertes für eine andere
Vorbedingung berücksichtigt werden. Das bedeutet konkret, dass alle schon bei der
Berechnung der ersten Vorbedingung erfüllten“ Teilziele bei der Berechnung der
”
Werte für die anderen Vorbedingungen nicht mehr berücksichtigt werden müssen.
Hierdurch ergibt sich natürlich der Nachteil, dass der zu berechnende Wert auch
davon abhängt, in welcher Reihenfolge die Werte der Vorbedingungen bestimmt
werden.
Dabei darf nicht der Fehler gemacht werden, aus den berechneten Werten und
vor allem deren Berechnungspfaden könne direkt auf eine Reihenfolge in der Pipeline geschlossen werden. Hier wird nur die Berechnung für ein Gütekriterium in
einem speziellen Fall ausgeführt. Wenn dem Benutzer die Effektivität am Wichtigsten ist und er die Effizienz an zweiter Stelle sieht, so können aus der rekursiven
Berechnung der Effizienzwerte keine weiteren Informationen für die Reihenfolge
abgeleitet werden. Die Effizienzwerte würden nur bestimmt werden, wenn als erstes
die Effektivitätswerte von mehreren Aktionen gleich wären. Nach dem Vergleich
der Effizienzwerte hat im nächsten Schritt aber wieder die Effektivität die höchste
Priorität, wodurch sich komplett andere Aktionen, als die auf einem Berechnungspfad zur Berechnung eines Effizienzwertes, ergeben können.
Ein Aspekt ist auch, dass die schon erreichten Teilziele des Partial Order Planners berücksichtigt werden sollten. Diese dürfen bei der rekursiven Bestimmung
71
4. Konzeptueller Lösungsansatz
der Werte für die Vorbedingungen nicht beachtet werden. Ist eine Aktion A schon
Teil des partiellen Plans und tritt ein von A erreichtes Teilziel zum Beispiel bei der
Berechnung der Laufzeitwerte für eine Aktion B auf, so ist diese Vorbedingung
von B schon erfüllt und die Laufzeitkosten von A sowie ein weiteres Verfolgen der
Vorbedingung brauchen nicht betrachtet werden. Eine Aktion C, deren Vorbedingungen keine im Planungsverlauf bereits erreichten Teilziele enthalten, hat diesen
Vorteil nicht. Damit werden eben jene Aktionen bevorzugt, die schon möglichst
viele direkte oder indirekte, von Vorgängern aufgestellte, Vorbedingungen erfüllt
haben. Dies bedeutet auch, dass die berechneten Werte nicht über einen Planungsschritt hinaus zwischengespeichert werden können.
Ein Problem bei diesem Ansatz ist, dass jedes Teilziel des Partial Order Planners und jede Vorbedingung bei der Berechnung der Werte für eine Aktion einzeln
betrachtet werden. Dadurch können keine Aktionen bevorzugt werden, die mehr
als eine Vorbedingung gleichzeitig erfüllen. Wird aber vorausgesetzt, dass das Paradigma Maximum Decomposition im Vorfeld auf allen Algorithmen erfolgreich
angewendet wurde, so können solche Algorithmen nicht auftreten. Bei einer maximalen Zerlegung hätte jeder Algorithmus nur einen einzigen Effekt.
Ein Vorteil des vorgestellten Ansatzes ist seine generische Methode. Die Randbedingungen, welche die Priorisierung der einzelnen Gütekriterien festlegen, werden von außen in die Problemlösungskomponente hinein gegeben. Die möglichen
Priorisierungen der in Abbildung 4.3 dargestellten Punkte müssen daher nicht
innerhalb der Problemlösungskomponente gespeichert werden. Die Komponente
muss auch nicht wissen, was die einzelnen Gütekriterien konkret bedeuten, sondern kann sie einfach, der gewählten Priorisierung nach, abarbeiten.
4.1.4 Topologische Sortierung des vom Planer erzeugten
Abhängigkeitsgraphen
Die Ausgabe des Partial Order Planners ist ein partieller Plan. Wie schon in Abschnitt 2.3.2 erläutert, kann dieser partielle Plan auch als Abhängigkeitsgraph, als
Directed Acyclic Graph (DAG), aufgefasst werden. Aus diesem DAG gilt es, die
IE-Pipeline zu erzeugen. Dies kann, wie ebenfalls in Abschnitt 2.3.2 gezeigt, durch
eine topologische Sortierung erfolgen. Die Herausforderungen bei dieser Umwandlung bestehen in der Beibehaltung des vom Partial Order Planner beachteten
Paradigmas Lazy Evaluation und der Umsetzung des aus Abschnitt 2.4.2 bekannten Paradigmas Early Filtering. Das bedeutet, in einer IE-Pipeline soll so früh wie
möglich eine Filterung des zu untersuchenden Textes durchgeführt werden. Damit
wird erreicht, dass die späteren IE-Algorithmen der Pipeline, das sind im Allgemeinen die laufzeitintensiven Algorithmen der Relationen- und Ereigniserkennung,
auf einer kleineren Menge an Text arbeiten und somit deren Gesamtlaufzeit, und
damit auch die der IE-Pipeline insgesamt, gesenkt wird. Die Filterverfahren einer
IE-Pipeline sind für diese Filterung des Textes verantwortlich. Daher sollen sie in
der späteren IE-Pipeline so früh wie möglich ausgeführt werden, um so früh wie
72
4.1 Konstruktion der Information-Extraction-Pipeline
B
C
A
F
D
E
1. :
A
B
D
C
E
F
2.:
A
B
C
D
E
F
Abbildung 4.4: Beispiel DAG mit zwei möglichen topologischen Sortierungen
möglich zu filtern. Außerdem soll weiterhin das Paradigma Optimized Scheduling
bei der topologischen Sortierung in Betracht gezogen werden.
Vorüberlegungen
Abbildung 4.4 zeigt einen Beispiel-DAG, der vom Partial Order Planner geliefert
sein könnte, mit den grau hinterlegten Filterverfahren C, E und F . Weiterhin
sind zwei mögliche topologische Sortierungen dieses Graphen dargestellt. Obwohl
beide Sortierungen korrekt im Sinne einer topologischen Sortierung sind, verletzt
die erste sowohl das Paradigma Lazy Evaluation, als auch das Paradigma Early Filtering. Die Ausführungen von B oder D könnten verzögert werden, da die
Ergebnisse des entsprechenden Algorithmus nicht unmittelbar gebraucht werden.
Dies entspricht also nicht der Lazy Evaluation. Eines der Filterverfahren C beziehungsweise E kann immer an dritter Stelle in der Pipeline ausgeführt werden.
Daher wird in der ersten Sortierung auch das Paradigma Early Filtering verletzt.
Neben der zweiten, korrekten Sortierung, im Sinne der angesprochenen Paradigmen, existiert noch eine weitere Möglichkeit, indem D vor E vor B vor C
ausgeführt wird. Die Wahl, welches Filterverfahren bevorzugt werden sollte, kann
durch Befolgung des Paradigmas Optimized Scheduling geschehen. Wie allerdings
schon in Abschnitt 2.4.2 dargelegt, werden für die Anwendung dieses Paradigmas
die Filterraten der Filterverfahren gebraucht. Diese Filterraten sind allerdings
stark abhängig von der Art der zu untersuchenden Texte und lassen sich daher
nicht im Vorfeld bestimmen, ohne dass die Art der zu untersuchenden Texte bekannt ist. Daher wird im Bezug auf die topologische Sortierung der im Paradigma
Optimized Scheduling vorgestellte optimierte Schedule leicht abgewandelt:
Ein statisch optimierter Schedule liegt dann vor, wenn bei der Auswahl
der Filterverfahren diejenigen bevorzugt werden, welche zusammen mit
ihren notwendigen Vorgängern die beste Laufzeiteffizienz aufweisen.
Die Idee dahinter ist, dass zuerst die schnellsten Filterverfahren genommen werden. Hierbei sind natürlich auch die zum Ausführen des Filterverfahrens notwen-
73
4. Konzeptueller Lösungsansatz
digen Vorgänger und deren Laufzeiten zu berücksichtigen. Mit dieser Strategie ist
schon bevor die langsameren Filterverfahren ausgeführt werden, eine Menge irrelevanter Text herausgefiltert worden. Die langsameren Verfahren werden damit
beschleunigt. Diese Annahme ist vor allem dann zutreffend, wenn alle Filterverfahren zwar unterschiedliche Laufzeiten, aber die gleiche Filterrate besäßen.
Allerdings kann es auch Fälle geben, in denen dieses Verfahren nicht die optimalen Schedules erzeugt. Ist ein Filterverfahren A geringfügig schneller (unter
Berücksichtigung seiner Vorgänger) als ein Filterverfahren B, so kann es trotzdem
sein, dass die Bevorzugung von A nicht den optimalen Schedule liefert. Das Filterverfahren B könnte auf einer bestimmten Textmenge eine viel höhere Filterrate
besitzen und dadurch die geringfügig bessere Laufzeit von A mehr als ausgleichen.
Es wäre hier demnach besser gewesen, B vor A auszuführen.
Konzept der eingesetzten topologischen Sortierung
Ausgangspunkt des Verfahren ist, wie schon erwähnt, der vom Partial Order Planner gelieferte partielle Plan P = (AS, OS). Aus diesem Plan muss zuerst ein
Abhängigkeitsgraph in Form eines DAG erzeugt werden. Davor werden die nicht
benötigten Hilfsaktionen start und f inish aus AS und OS entfernt. Alle verbliebenen Aktionen in AS sind dann Knoten im DAG. Anschließend kann für jede
Ordnungsrelation (a > b) eine gerichtete Kante von dem Knoten a zum Knoten b im DAG hinzugefügt werden. Dadurch wird der Abhängigkeitsgraph, wie in
Abschnitt 2.3.2 beschrieben, gebildet.
Als Nächstes wird für jedes Filterverfahren im DAG die Liste seiner Vorgänger
bestimmt. Dazu werden alle Kanten im DAG umgedreht und daraufhin die sogenannte transitive Hülle berechnet. In der transitiven Hülle ist jeder Knoten
mit jedem von ihm aus erreichbaren Knoten durch eine direkte Kante verbunden.
Dies lässt sich beispielsweise mithilfe des Floyd-Warshall -Algorithmus in O(|V |3 )
durchführen [CSRL01]. Da die Kanten umgedreht wurden lässt sich für einen
Knoten direkt die Liste seiner Vorgänger bestimmen. Dies sind alle Knoten, zu
denen die ausgehenden Kanten führen. Diese Liste der Vorgänger für ein Filterverfahren lässt sich also sofort an der Adjazenzliste seines Knotens ablesen. Eine
weitere Möglichkeit wäre zum Beispiel das Bestimmen der Vorgänger durch eine
Breitensuche von jedem Filterverfahren aus in O(|V | ∗ (|V | + |E|)). Da die Anzahl der Algorithmen in einer IE-Pipeline, und somit die Anzahl der Knoten im
Abhängigkeitsgraph, in der Regel relativ klein ist, etwa in [WSE11] und [HHF+ 10]
jeweils kleiner als 15 Algorithmen, ist die unterschiedliche Laufzeitkomplexität der
unterschiedlichen Möglichkeiten zu vernachlässigen.1
Ausgehend von der Liste der Vorgänger von jedem Filterverfahren kann das beste Filterverfahren gesucht werden. Wie schon in den Vorüberlegungen dargelegt,
soll für die spezielle Art des statisch optimierten Schedules das Filterverfahren
1
Das Graph-Framework mit dem die Implementierung durchgeführt wurde, bietet direkt eine
Funktion zum Bestimmen der transitiven Hülle eines Graphen an. Daher wurde schlussendlich
diese Vorgehensweise gewählt.
74
4.1 Konstruktion der Information-Extraction-Pipeline
Algorithmus 8 topologicalSort(Partial Plan partialP lan)
1: DAG graph ← makeDAG(partialP lan)
2: f ilterP rocedures ← getFilterProcedures(partialP lan)
3: predecessorsOf F ilterP roc ← getPredecessorLists(f ilterP rocedures, graph)
4: P ipeline ← ∅
5: while not graph. |V | = 0 do
6:
bestF ilterP roc ← getBestFilterProc(predecessorsOf F ilterP roc)
7:
subGraph ← getSubgraph(predecessorsOf F ilterP roc[bestF ilterP roc])
8:
P ipeline ← P ipeline ∪ stdTopSort(subGraph)
9:
removeAllFor(bestF ilterP rocedure)
10: end while
11: return P ipeline
als bestes gewählt werden, welches den besten Effizienzwert aufweist. Dieser Wert
besteht allerdings nicht aus dem Einzelwert von dem jeweiligen Filterverfahren,
sondern errechnet sich aus der Summe der Werte aller Vorgänger des Filterverfahrens, die zu seiner Ausführung notwendig sind, und dem Einzelwert des Verfahrens
selbst. Somit lässt sich für jedes Filterverfahren ein Wert berechnen. Damit ist die
Auswahl des besten Filterverfahrens als das mit dem geringsten zusammengerechneten Effizienzwert möglich. Existieren mehrere beste Werte, so wird, wie schon
bei der Lösung des Algorithmenauswahlproblems, das Verfahren gewählt, dessen
Name lexographisch am niedrigsten ist.
Mit der Liste der Vorgänger des besten Filterverfahrens kann nun ein Teil der
IE-Pipeline generiert werden. Dazu wird der Teilgraph bestimmt, der sich aus
dem Filterverfahren und seinen Vorgängern im Abhängigkeitsgraph zusammensetzt. Dieser Teilgraph wird durch eine normale topologische Sortierung sortiert
(vgl. Abschnitt 2.3.2). Die Knoten des Teilgraph werden dann der Sortierung entsprechend hintereinander der Pipeline hinzugefügt.
Anschließend müssen das Filterverfahren und seine Vorgänger aus dem Abhängigkeitsgraphen gelöscht werden. Außerdem sind die Listen der Vorgänger aller Filterverfahren zu aktualisieren, indem das ausgewählte Verfahren und seine Vorgänger
aus diesen Listen entfernt werden. Danach wird das Ganze mit der Auswahl des
nun besten Filterverfahrens wiederholt. Dieser Prozess wird solange durchlaufen,
bis alle Knoten des Abhängigkeitsgraphen in die IE-Pipeline eingefügt worden
sind. Das Ergebnis ist die berechnete IE-Pipeline.
Algorithmus der eingesetzten topologischen Sortierung
Der Pseudocode für die eingesetzte topologische Sortierung ist in Algorithmus
8 zu sehen. Hierbei wird vorausgesetzt, dass die Aktionen start und f inish aus
dem partiellen Plan schon entfernt wurden. Ansonsten könnte diese Aktionen auch
leicht durch OS des partiellen Plans bestimmt werden, denn start steht dort immer
auf der linken Seiten eine Ordnungsrelation (start < X) und f inish immer rechts
(X < f inish). Die Funktion makeDAG in Zeile 1 erstellt auf die weiter oben
75
4. Konzeptueller Lösungsansatz
beschriebene Weise aus dem partiellen Plan des Partial Order Planners einen
Abhängigkeitsgraph. Im nächsten Schritt in Zeile 2 werden mit getFilterProcedures
die Filterverfahren bestimmt. Filterverfahren sind diejenigen Algorithmen, welche
direkt ein vom Benutzer gesetztes Ziel erfüllen (vgl. Abschnitt 2.4.1). Diese sind
somit leicht im Vorfeld der Planung zu markieren. Dies bedeutet weiterhin, dass
es mindestens ein Filterverfahren geben muss, denn der Partial Order Planner hat
einen partiellen Plan geliefert, der für ein bestimmtes Ziel erstellt wurde. Damit
existiert mindestens ein Ziel und somit ein Filterverfahren. Es ist auch leicht zu
erkennen, dass jeder Knoten ohne ausgehende Kanten im Abhängigkeitsgraph ein
Filterverfahren sein muss. Hat ein Knoten keine ausgehenden Kanten, so wird kein
Effekt der entsprechenden Aktion von einer anderen Aktion als Vorbedingung
verlangt. Damit muss zumindest ein Effekt der Aktion ein Ziel des Benutzers
gewesen sein. Dieser Effekt war nämlich eine Vorbedingung für die Hilfsaktion
f inish, die alle zu erreichenden Teilziele als Vorbedingungen enthält. Ansonsten
hätte der Partial Order Planner die Aktion nie ausgewählt.
Wurden die Verfahren im Vorfeld markiert, so muss für deren Bestimmung einfach nur die Liste AS der im partiellen Plan vorhandenen Aktionen durchlaufen
und dabei der jeder Aktion entsprechende Algorithmus auf die Markierung hin
überprüft werden. Mit den Filterverfahren können dann deren Vorgänger berechnet werden (Zeile 3). Dies geschieht, wie im Konzept bereits beschrieben, durch
Umdrehung der Kanten im Graph und Bildung seiner transitiven Hülle. Für die
Knoten der Filterverfahren können dann deren Vorgänger direkt aus deren Adjazenzliste abgelesen werden. Der Vorgang passiert in der Funktion getPredecessorLists in Zeile 3.
Sind die Vorgänger ermittelt, kann das beste Filterverfahren bestimmt werden.
Dazu wird in Zeile 6 mit getBestFilterProc für jedes Filterverfahren die Laufzeiteffizienzwerte von ihm und seinen Vorgängern bestimmt und dann das mit
dem geringsten Wert gewählt. Der Teilgraph, der sich über die Knoten des Filterverfahrens und seiner Vorgänger erstreckt, wird von getSubgraph in Zeile 7 identifiziert. Dazu werden im Gesamtgraph alle anderen Knoten entfernt. Der Rest ist
der gesuchte Teilgraph.
Die Knoten sind dann gemäß einer normalen topologischen Sortierung in Zeile 8, durchgeführt durch stdTopSort, der zu bestimmenden IE-Pipeline hinzuzufügen. Anschließend werden in Zeile 9 die Knoten aus dem Gesamtgraph und
den Vorgängerlisten der anderen Filterverfahren entfernt. Ein neues, bestes Filterverfahren kann nun bestimmt werden und das Verfahren von Zeile 5 bis Zeile
10 wird solange wiederholt, bis keine Knoten mehr im Graph vorhanden sind.
Einen Beispieldurchlauf ist in Abbildung 4.5 zu sehen. Ausgangspunkt ist die
angegebene partielle Ordnung OS des partiellen Plans. Die Zahlen an den Knoten
des daraus erstellten Abhängigkeitsgraphen geben die Laufzeiteffizienz der hinter
den Knoten stehenden Algorithmen an. Die Filterverfahren sind grau hinterlegt.
In 3. wird anhand dieser Werte zusätzlich zur Liste der Vorgänger auch schon der
aufsummierte Laufzeitwert des Filterverfahrens und seiner Vorgänger angegeben.
In 5. wird die normale, in Abschnitt 2.3.2 vorgestellte, topologische Sortierung
76
4.1 Konstruktion der Information-Extraction-Pipeline
OS des Partieller Plans:
(A < B), (A < D), (B < C),
(D < E), (C < F), (E < F)
B
1. DAGErstellung
C
1
2
A
F
1
1
D
2. Umgedrehte
Kanten und
transitive Hülle
E
2
B
2
C
A
3. Liste der
Vorgänger der
Filterverfahren
F
D
C: A, B = 4
E: A, D = 5
F: A, B, C, D, E = 9
E
(mit Gesamtberechnung
für Laufzeitwerte)
4. Teilgraph für
bestes
Filterverfahren
A
5. Hinzufügen an
Pipeline anhand
toplogischer
Sortierung
B
(ist zufällig schon topologisch
sortiert)
A
6. Löschen der
benutzten
Knoten
C
D
B
2
E: D = 4
F: D, E = 5
C
E
2
F
1
(mit Gesamtberechnung
für Laufzeitwerte)
Abbildung 4.5: Ein Beispieldurchlauf der eingesetzten topologischen Sortierung. Die
Zahlen an den Knoten repräsentieren deren Laufzeitkosten.
77
4. Konzeptueller Lösungsansatz
B
Partieller Plan.OS:
(A < B), (A < D), (B < C),
(D < E), (C < F), (E < F)
2
A
F
1
1
D
Nach der
topologischen
Sortierung
C
1
A
B
C
D
E
2
E
2
F
IE-Pipeline
Abbildung 4.6: Resultierende Pipeline aus gegebenem partiellen Plan
genutzt. Nach 6. würde mit den restlichen Knoten in 4. weitergemacht. Die resultierende IE-Pipeline für dieses Beispiel ist in Abbildung 4.6 abgebildet.
4.1.5 Zusätzliche Filter zur Erfüllung von Randbedingungen
Neben den Zielen gibt der Benutzer auch noch Randbedingungen ein, die bei der
Erstellung der Pipeline und bei der Berechnung der Ergebnisse durch die Pipeline
beachtet werden sollen. Ein Lösungsansatz für die Anforderungen an die Qualität
der IE-Pipeline wurde bereits in Abschnitt 4.1.3 vorgestellt. Noch offen ist ein
Lösungsansatz für das Problem der Einschränkungen der Ergebnismenge. Dazu
soll es dem Benutzer möglich sein Wünsche, wie Nur Umsatzaussagen von Unternehmen, die mit M“ beginnen oder Alle Umsatzaussagen zwischen 1999 und
”
2008 dem Expertensystem mitzuteilen. Diese Wünsche müssen vom Expertensystem formalisiert und bei der Ergebnisbestimmung berücksichtigt werden.
Hierfür gibt es zwei mögliche Herangehensweisen:
• Das Filtern der Ergebnismenge nach Ausführung der IE-Pipeline
• Das Einbauen der Berücksichtigung der Einschränkungen in die IE-Pipeline
Beim Filtern der Ergebnismenge wird zuerst die IE-Pipeline auf der in diesem
Kapitel beschriebenen Art und Weise berechnet. Sie wird anschließend ausgeführt
und die Ergebnisse werden bestimmt. Auf dieser Ergebnismenge sind dann die
vom Benutzer geäußerten Bedingungen, wie das alleinige Berücksichtigen von Informationen in einem bestimmten Zeitraum, anzuwenden. Die auf diese Weise
erhaltene gefilterte Ergebnismenge kann dann dem Benutzer präsentiert werden.
Der Vorgang entspricht einem Ablegen der extrahierten Daten in einer Datenbank
und dem Stellen einer anschließenden Anfrage auf diese Daten.
78
4.1 Konstruktion der Information-Extraction-Pipeline
Einen großen Nachteil hat dieses Filtern der Ergebnismenge: es kostet Zeit. Zum
einen kostet es Zeit, nach der Berechnung der Ergebnisse noch einmal durch diese
zu iterieren und sie auf Einhaltung der Bedingungen zu überprüfen. Vor allem
aber wäre es sinnvoller, das Herausfiltern von unwichtigen, beziehungsweise nicht
gewünschten Informationen, direkt in der IE-Pipeline während ihrer Ausführung
durchzuführen. Dadurch würde die Menge an Text, auf denen die nachfolgenden
Algorithmen arbeiten, sehr stark eingeschränkt werden, was eine große Effizienzsteigerung der Gesamtpipeline bedeuten würde.
Genau hier setzt der von dieser Arbeit verfolgte zweite Ansatz an. Es werden
Filter als weitere Filterverfahren in die IE-Pipeline integriert. Jedes neue Filterverfahren dient dem einzigen Zweck, eine ganz bestimmte vom Benutzer gewünschte
Einschränkung auf den gegebenen Textstellen zu überprüfen und die Textstellen
heraus zu filtern, in denen diese Einschränkung nicht erfüllt ist. Die neuen Filter
werden dabei direkt hinter den Algorithmen in der IE-Pipeline platziert, die die
Annotationen erzeugen, welche die vom Filter zu überprüfende Einschränkung betreffen. Die Einschränkung Alle Umsatzaussagen zwischen 1999 und 2008 würde
in einen Filter übersetzt, der für alle Annotationen vom Typ Umsatzaussage überprüft, ob ihr Zeitraum zwischen 1999 und 2008 liegt. Der Filter könnte daher an
zwei Stellen in die IE-Pipeline integriert werden. Die erste Stelle wäre nach dem
Algorithmus, der Umsatzaussagen im Text identifiziert. Hierbei kann allerdings
ein Problem entstehen. Umsatzaussagen könnten unabhängig von einem Zeitraum
identifiziert werden. Der entsprechende Zeitraum würde erst danach in der Pipeline identifiziert und mit der Umsatzaussage verknüpft. Dann wäre der Filter an
der falschen Stelle eingefügt worden und könnte seine Aufgabe nicht erfüllen. Der
Filter müsste daher hinter der Stelle in die Pipeline platziert werden, an der die
Zeiträume identifiziert werden. Nur hier ist sichergestellt, dass er korrekt arbeitet.
Dies ist ein Spezialfall, da das Ereignis Umsatzaussage unabhängig von der Entität
Zeitraum bestimmt werden kann. Ein allgemeinerer Filter zu Nur Unternehmen
beachten, die mit M“ beginnen hat nur die eine Möglichkeit der Ausführung hinter
”
dem Algorithmus, der die Entität Unternehmen identifiziert.
Beim Einfügen eines Filter in die IE-Pipeline müsste also darauf geachtet werden, dass er nach dem Algorithmus eingefügt wird, der den Annotationstyp identifiziert, auf den sich die eigentliche Einschränkung bezieht. Ein Filter, der Umsatzaussagen in einem bestimmten Zeitraum filtern soll, müsste daher eine Platzierung
direkt nach der Bestimmung dieser Zeiträume in einem Text erfahren und nicht
hinter der Stelle, an der die Umsatzaussagen identifiziert werden. Dieser Ansatz
hat allerdings den Nachteil, dass andere IE-Verfahren, die zum Beispiel die identifizierten Zeiträume für etwas anderes als Umsatzaussagen weiter benutzen, nicht
mehr alle Informationen bekommen. Ein Beispiel für dieses Problem wäre ein Ereignis Gerichtsverfahren(Richter, Angeklagter, Anwalt). Ein Filter Nur Gerichtsverfahren, bei denen der Angeklagte Max Mustermann“ heißt und die Tatsache,
”
dass Richter, Angeklagter und Anwalt alles Entitäten vom Annotationstyp Person
sind, zeigt das Problem. Wenn der Filter direkt hinter dem Algorithmus, der Personen erkennt, ausgeführt wird, und dann alle Textstellen heraus filtert, in denen
79
4. Konzeptueller Lösungsansatz
die Person Max Mustermann nicht gefunden wurde, verhält sich der Filter falsch
und die IE-Pipeline wird nicht die gewünschten Ergebnisse liefern. Hierbei würden
nämlich auch die potenziellen Richter und Anwälte mit herausgefiltert werden.
Es ist somit nötig, die Filter an der Stelle in die Pipeline einzufügen, an der alle
von der Einschränkung betroffenen Annotationstypen vorliegen. Allerdings sind
Ereignisse und Relationen normalerweise die Ziele einer IE-Pipeline. Das bedeutet,
ein Filter, der so eine Einschränkung überprüft, würde erst sehr spät oder ganz
am Ende der Pipeline auftreten. Dadurch würde die erhoffte Beschleunigung der
IE-Pipeline durch das Einsetzen der Filter klein bis nicht vorhanden ausfallen.
Das Verfahren ähnelte damit der genannten Filterung der Gesamtergebnismenge.
Demnach ist es dem Benutzer zu überlassen, ob er zum Beispiel alle Zeiträume
filtern möchte, oder nur die Zeiträume von Umsatzaussagen. Die erstgenannte
Möglichkeit bietet zudem noch die Möglichkeit, das Verfahren, welches Zeiträume
identifiziert, im Vorfeld der Planung als Filterverfahren zu markieren. Das in diesem Kapitel beschriebene Planungsverfahren wird diese Information automatisch
dafür einsetzen, eine bessere IE-Pipeline zu konstruieren, indem das Paradigma
Early Filtering während der angepassten topologischen Sortierung beachtet wird.
Bei der zweiten Möglichkeit ist dies nicht möglich, da im Vorfeld nicht bestimmt
werden kann, ob zum Beispiel erst der Algorithmus zur Erkennung von Umsatzaussagen oder der Algorithmus zur Erkennung von Zeiträumen laufen wird. Daher
kann auch nicht gesagt werden, hinter welchem von beiden Algorithmen der Filter in der resultierenden IE-Pipeline ausgeführt wird und demnach nicht, welches
Verfahren dadurch wirklich zu einem Filterverfahren wird.
4.1.6 Ausführung der IE-Pipeline zum Erhalt der Ergebnisse
Die IE-Pipeline wurde vom Planungsverfahren bestimmt, unter Berücksichtigung
der vom Benutzer angegebenen Ziele und Randbedingungen, und dieser Pipeline
sind die Filter, entsprechend den gewünschten Einschränkungen des Benutzers,
hinzugefügt worden. Dann gilt es, diese abstrakte IE-Pipeline in eine konkrete zu
verwandeln, sie auf der vom Benutzer angegebenen Textmenge auszuführen und
die erzielten Ergebnisse wieder an den Benutzer zurückzugeben. Genau diesen
Zweck verfolgt die IE-Pipeline-Ausführungskomponente. Die Überführung der berechneten, abstrakten IE-Pipeline in eine konkrete ist sehr stark davon abhängig,
welches zugrundeliegende IE-Framework benutzt wird. Dieses IE-Framework bestimmt außerdem die Ausführung der Pipeline und die Aggregation der Ergebnisse.
Daher wird die Realisierung dieser Komponente anhand des in dieser Arbeit verwendeten UIMA-IE-Frameworks erst in Kapitel 5 erläutert. Allerdings ist es durch
die Trennung von Berechnung und Ausführung der IE-Pipeline direkt möglich, eine andere Ausführungskomponente für ein anderes Framework einzusetzen, ohne
dafür die Komponente des domänenspezifischen Planers oder die Randbedingungsfilter anpassen zu müssen. Es wäre demnach auch möglich, komplett auf ein IEFramework zu verzichten und das Hintereinanderausführen und Verschalten von
IE-Algorithmen direkt in der Ausführungskomponente durchzuführen.
80
4.2 Die Wissensbasis des Expertensystems
4.2 Die Wissensbasis des Expertensystems
Die Wissensbasis ist ein wesentlicher Bestandteil eines Expertensystems. Auf Basis
des in der Wissensbasis hinterlegten Wissens, kann das Expertensystem die Probleme lösen, für die es konstruiert wurde. Wie in den vorangegangenen Abschnitten
dargelegt, besitzt das in dieser Arbeit entwickelte Expertensystem eine speziell an
das Problem der Konstruktion der IE-Pipeline angepasste Problemlösungskomponente. Obwohl diese Komponente schon Domänen- und demnach auch Expertenwissen in sich trägt, benötigt sie für ihre Arbeit noch weiteres Wissen. Das
betrifft zum Beispiel die Menge an vorhandenen IE- und NLP-Algorithmen, aus
denen sich eine zu berechnende Pipeline zusammensetzen kann. In diesem Zusammenhang ist auch das Wissen um die benötigten und erzeugten Annotationen der
Algorithmen von Bedeutung. Die unterschiedlichen Annotationen haben einen unterschiedlichen Typ. Auch dieses Wissen muss der Problemlösungskomponente zur
Verfügung stehen. Außerdem sind die möglichen Gütekriterien, ob diese miteinander verrechenbar sind oder nicht, oder auch, welche Priorisierungen der Benutzer
angeben kann, ebenfalls Wissen, welches in der Wissensbasis untergebracht werden
muss.
Damit dieses Wissen für die Problemlösungskomponente verfügbar ist, muss es
in einer formalen und für den Computer verarbeitbaren Form in der Wissensbasis vorliegen. Als diese formale Wissensrepräsentation wurde in dieser Arbeit die
Form der Ontologie gewählt. Mit der eigentlichen Ontologie, den in ihr benötigten
Begriffen und Beziehungen, beschäftigt sich der Abschnitt 4.2.1. In Abschnitt 4.2.2
wird auf der Basis dieser Informationen vorgestellt, warum als Wissensrepräsentation der Wissensbasis die Ontologie gewählt wurde. Die Wissenserwerbskomponente ist eng mit der Wissensbasis verbunden. Die in dieser Arbeit verwendete Wissenserwerbskomponente arbeitet vollautomatisch, was ein Unterschied zu den in
Abschnitt 2.1.2 betrachteten Expertensystemen ist. Warum dieser Ansatz gewählt
worden ist und welche Vorteile dies bringt, wird in Abschnitt 4.2.3 dargelegt. Eine Komponente, die in den betrachteten Expertensystemen nicht auftauchte, ist
das Datenmodell. Es wird zusammen mit den Gründen für dessen Einführung in
Abschnitt 4.2.4 vorgestellt.
4.2.1 Konzept der entwickelten Ontologie
Als Ontologieform ist der W3C Standard OWL-DL gewählt worden. Dieser Standard wurde bereits in Abschnitt 2.2.2 vorgestellt. Der Inhalt der entwickelten
Ontologie enthält das Expertenwissen, welches die Problemlösungskomponente
braucht, um ihre Aufgabe, die Konstruktion und anschließende Ausführung einer IE-Pipeline, durchführen zu können. Die Problemlösungskomponente enthält
ihrerseits schon viel Expertenwissen, so zum Beispiel das Wissen um die Paradigmen zum Aufbau effizienter IE-Pipelines. Dieses Wissen braucht daher nicht Bestandteil der Ontologie zu sein. Allerdings kennt die Problemlösungskomponente
weder konkrete Algorithmen und Annotationstypen noch konkrete Gütekriterien
81
4. Konzeptueller Lösungsansatz
0..1
Annotationstyp *
Typensystem
hatAnnotationshatSupertyp
typ
1
1
hatAnnotationstyp
hatAnnotationstyp
hatOrdnung
1..*
*
*
Informations- 1
typ
hatZuhatAktivesFilterndenAttribut
* 1..*
Typ
hatEingabe
hatFiltereigenschaft
Gütekriterium
subKlasseVon
1
Effektivitätskriterium
1
hatKriterium
*
hatGüte
Effizienzkriterium
subKlasseVon
Filter
hatAusgabe
Algorithmus
1
Filtereigenschaft
hatAttribut
Attribut
Ordnung
Priorität
Güte
0..1
hatGütekriterium
hatNachfolger
1
hatPrioritätsreihenfolge
0..*
Priorisierung
impliziert
Abbildung 4.7: Ontologie des Expertensystems
wie Recall oder Precision. Auch die in Abschnitt 4.1.3 vorgestellte Methode zur
Berücksichtigung von Qualitätsanforderungen des Benutzers an die zu konstruierende Pipeline ist eine generische Methode und trägt in sich keine Informationen
über die in Abbildung 4.3 dargestellten, möglichen Priorisierungen. Daher können
diese Priorisierungen in die Ontologie ausgelagert werden und stehen somit einer
einfachen und schnellen Bearbeitung offen.
In Abbildung 4.7 ist die entworfene Ontologie dargestellt. Die grafische Notation
wurde bereits in Abschnitt 2.2.2 eingeführt. Die zentralen Klassen Algorithmus,
Annotationstyp, Filter und Gütekriterium sind, zum einfacheren Wiederfinden,
stärker umrandet als die restlichen Klassen. Im Folgenden wird auf die Einzelheiten der Ontologie eingegangen.
Einzelheiten der Ontologie
Die Annotationstypen sind in einem Typensystem enthalten. Dieses Typensystem
besitzt eine beliebige Menge an Annotationstypen. Annotationstypen sind hierarchisch in einer Klassenhierarchie angeordnet. So kann beispielsweise der konkrete Annotationstyp Person eine Unterklasse von Entität sein. Deshalb ist es
möglich, dass jede Annotation einen Superannotationstyp hat, ausgedrückt mit
der Eigenschaft hatSupertyp. In der Information Extraction und NLP existiert kein
einheitliches, anerkanntes Typensystem. Die vier Arbeiten [HBT+ 07], [KNS+ 08],
82
4.2 Die Wissensbasis des Expertensystems
[EBPL08] und [KDM+ 10] zeigen zum Beispiel vier verschiedene Typensysteme.
Da selbst in der Informationen Extraction und NLP keine einheitliche Vorstellung von einem einzigen Typensystem existiert, versucht diese Arbeit nicht, eine
zusätzliche eigene Lösung dafür anzubieten. Stattdessen wird ein konkretes Typensystem offen gelassen und nur der Rahmen für dessen Anlegung geschaffen. So
kann jeder Annotationstyp in der Ontologie neben einem möglichen Superannotationstyp auch noch eine Reihe von Attributen besitzen. Jedes Attribut hat wieder
einen Annotationstyp. Mit diesem Konstrukt lassen unter anderem Relationen
und Ereignisse leicht abbilden. Eine Relation Eheleute(PersonA, PersonB) wäre
ein Annotationstyp Eheleute mit den zwei Attributen PersonA und PersonB. Die
beiden Attribute könnten wiederum den Annotationstyp Entität haben. Da Ereignisse auch als mehrstellige Relationen aufgefasst werden können (vgl. Abschnitt
2.4), lassen sich diese in der gleichen Art modellieren. Eine konkrete Typenhierarchie wird entweder per Hand von einem Experten vor Gebrauch des Expertensystems angelegt, oder mithilfe der Wissenserwerbskomponente importiert (siehe
Abschnitt 4.2.3). Die bisher aufgezählten Klassen und Eigenschaften der Ontologie orientieren sich an den in Abschnitt 2.4.1 dargelegten Beschreibungen der
Domäne IE und konnten außerdem in verschiedenen IE-Frameworks (UIMA2 und
GATE3 ) in der dargestellten Art identifiziert werden. Die Typensysteme in den
vier erwähnten Arbeiten wiesen ebenfalls eine ähnliche Struktur, wie der vorgestellte Teil der Ontologie, auf.
Einheitliche Vorstellungen über konkrete Algorithmen, insbesondere was deren
benötigte und erzeugte Annotationen betrifft, sind weder in der IE noch in der
NLP zu finden. Dies ergibt sich natürlich auch aus dem Gebrauch von ganz verschiedenen Typensystemen, wie oben bereits erwähnt. Allerdings lassen sich für
die Algorithmen ein paar Grundeigenschaften identifizieren, die sich vor allem aus
den Anforderungen an diese Algorithmen aus dem Konzept des Planungsverfahrens aus Abschnitt 4.1 ergeben. So haben die Algorithmen benötigte Annotationstypen, abgebildet durch hatEingabe, und sie erzeugen neue Annotationen eines
bestimmten Typs, abgebildet durch hatAusgabe. Während ein Algorithmus, der
keine Informationen liefert und somit nichts erzeugt, im Kontext der IE-Pipeline
nicht benötigt wird, kann es sein, dass ein Algorithmus keine am Text annotierten
Informationen für seine Arbeit benötigt, und demnach auch keine Eingabe besitzt.
Die Ein- und Ausgaben der Algorithmen werden durch die Klasse Informationstyp abgebildet. Jedes Individuum von ihr bezieht sich auf einen Annotationstyp
(hatAnnotationstyp) und kann eine Reihe von aktiven Attributen besitzen (hatAktivesAttribut). Durch die Angabe von aktiven Attributen ist es möglich anzugeben,
dass ein Algorithmus nicht alle Attribute eines Annotationstyps benötigt oder erzeugt. So kann für ein Ereignis Treffen(PersonA, PersonB, Ort, Zeitraum) ein
Algorithmus existieren, der nur herausfindet, ob sich in den Textstellen ein Ereignis Treffen befindet, ohne dass er die einzelnen Attribute dafür bestimmt. Hier
2
3
http://docs.oasis-open.org/uima/v1.0/uima-v1.0.html
http://gate.ac.uk/overview.html
83
4. Konzeptueller Lösungsansatz
ist eine Komposition von Annotationstypen und aktiven Attributen gewählt worden, anstatt eine Subklasse von Annotationstyp einzuführen. Dies hat den Grund,
dass jeder Annotationstyp, wie etwa Token, nur einmalig in der Ontologie und
im Typensystem vorkommen soll. Bei einer Modellierung als Vererbung würden
allerdings auch alle Ein- und Ausgaben der Algorithmen, als eigenständige Annotationstypen, mit zu dem Typensystem gehören, was so nicht korrekt ist.
Algorithmen haben, wie bereits schon erwähnt, eine bestimmte Güte, also für
bestimmte Gütekriterien Werte. In der Ontologie ist dies dadurch ausgedrückt,
dass konkrete Algorithmen mit Individuen der Klasse Güte verknüpft sind über
die Eigenschaft hatGüte. Jeder Güte lässt sich dabei einem bestimmten Gütekriterium zuordnen. So kann ein Algorithmus Tokenisierer als Güte den Wert 0, 9
für das Gütekriterium Accuracy besitzen (zum Ausdrücken des konkreten Wertes
wird im nächsten Abschnitt eine neue Eigenschaft eingeführt). Über ein Individuum von Güte werden also ein Gütekriterium und seine konkrete Ausprägung für
einen Algorithmus mit eben diesem Algorithmus verknüpft. Jedes in der Ontologie
vorliegende Gütekriterium liegt einmalig als Individuum der Klasse Gütekriterium, beziehungsweise einer der Subklassen von Gütekriterium, vor. Dies hat den
Vorteil, dass nicht viele verschiedene Individuen von beispielsweise einer Klasse
Recall behandelt werden müssen. Dadurch ist es aber notwendig, das Gütekriterium nicht direkt mit einem Algorithmus und einem Wert zu verknüpfen. So
würden ansonsten eine Menge an Algorithmen auf das Individuum Recall verweisen und Recall selbst mit verschiedenen konkreten Werten verknüpft sein. Dann
ist aber keine eindeutige Zuordnung der Werte zu den einzelnen Algorithmen mehr
möglich.4
Die Gütekriterien teilen sich auf in die beiden Klassen Effizienzkriterium und
Effektivitätskriterium. Dabei hat jedes Gütekriterium eine Ordnung. Diese Ordnung gibt an, ob niedrigere Werte oder höhere Werte besser oder schlechter sind.
So ist der Recall umso besser, je höher sein Wert ist. Bei der Laufzeiteffizienz ist
es allerdings genau umgekehrt. Hier sind diejenigen Werte besser, die niedriger als
alle anderen sind. Die Randbedingungen für die Anforderungen an die Qualität der
zu konstruierenden IE-Pipeline aus Abschnitt 4.1.3 sind ebenfalls in der Ontologie
berücksichtigt. So kann mithilfe der Klasse Priorisierung eine Prioritätsreihenfolge zwischen Gütekriterien angeben werden. Jede Priorisierung hat eine Prioritätsreihenfolge (hatPrioritätsreihenfolge). Eine Prioritätsreihenfolge besteht aus
einer Priorität, die für ein ganz bestimmtes Gütekriterium steht (hatKriterium).
Außerdem kann jede Priorität einen Nachfolger haben (hatNachfolger ), wodurch
es möglich ist, eine Prioritätsreihenfolge aufzubauen. So zeigt eine Priorisierung
auf den Kopf einer Prioritätsreihenfolge, von wo aus diese Reihenfolge durchlaufen
werden kann. Damit lässt sich zum Beispiel die Priorisierung F1 Rt ausdrücken,
wenn man sich bei der Laufzeiteffizienz auf ein Effizienzkriterium festlegt. Es kann
allerdings sein, dass F-Measure und Recall bei den untersuchten Algorithmen nicht
4
Eine Begründung, wann es sinnvoller ist Individuen anstatt Subklassen einzusetzen, ist hier
zu finden: http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DesignForUse
84
4.2 Die Wissensbasis des Expertensystems
Eigenschaft
Grundbereich
Wertebereich
hatKonkretenWert
istVerrechenbar
hatImplementierungsKlasse
hatName
hatDatentyp
Güte
Gütekriterium
Algorithmus und Filter
Thing
FilterEigenschaft
string
boolean
string
string
string
Tabelle 4.1: Datatype Properties der Ontologie
vorhanden sind. Mithilfe der Eigenschaft impliziert kann der Priorisierung eine andere Priorisierung zugeordnet werden, die vom Expertensystem in einem solchen
Fall genommen wird. Dies könnte die Priorisierung tA sein, mit der Effizienz vor
Accuracy ausgedrückt werden soll.
Der Benutzer gibt an, welche Einschränkungen er auf der Ergebnismenge haben
möchte. Wie in Abschnitt 4.1.5 bereits beschrieben, wird dies in dieser Arbeit mit
der Hilfe von in die IE-Pipeline einzufügender Filter gemacht. Diese Filter finden
sich auch in der Ontologie wieder. Damit weiß das Expertensystem, auf welche
Filter zurückgegriffen werden kann. Jeder Filter hat einen Annotationstyp, den er
filtert (hatZuFilterndenTyp). Da es möglich sein soll, dass der Filter nur bestimmte
Attribute einer Annotation betrachtet, etwa nur die Person A von einem Ereignis
Treffen, ist dies dadurch gelöst, dass er nicht den Annotationstypen direkt, sondern
indirekt über ein Informationstyp Objekt erhält. Außerdem hat ein Filter eine
Menge von Filtereigenschaften. Dies kann für einen Filter, der Zeiträume filtert,
das Anfangs- und Enddatum für den zu filternden Zeitraum sein.
Weitere Aspekte der Ontologie
Neben den vorgestellten Klassen und den Beziehungen zwischen diesen Klassen
gibt es in der Ontologie noch Eigenschaften der Klassen, die nicht in Abbildung
4.7 zu sehen sind. Diese Eigenschaften beziehen sich in ihrem Wertebereich nicht
auf Individuen, sondern auf primitive, in OWL-DL eingebaute Datentypen, wie
String oder Boolean. Daher nennt man diese Eigenschaften in OWL-DL auch
DatatypeProperties. Diese Eigenschaften sind in Tabelle 4.1 abgebildet.
Jede Güte eines Algorithmus hat, neben einem konkreten Gütekriterium, einen
konkreten Wert vom Typ String. Im Allgemeinen, wie etwa bei Recall -Werten,
ist dieser Wert eine Fließkommazahl, allerdings ist es durch die Verwendung von
String möglich, den Text falls benötigt in eine Zahl umzuwandeln. Außerdem sind
hiermit zum Beispiel auch Werte groß, mittel, klein möglich, falls keine Zahlenwerte genommen werden können. Die Eigenschaft istVerrechenbar eines Gütekriteriums wird von der in Abschnitt 4.1.3 beschriebenen Lösung des Algorithmenauswahlproblems gebraucht. Recall -Werte können zum Beispiel nicht miteinander
verrechnet werden, die Werte eines Effizienzkriteriums wie Averaged Efficiency
dagegen schon (siehe Abschnitt 2.4.3). Mithilfe dieser Eigenschaft kann dies für
85
4. Konzeptueller Lösungsansatz
ein beliebiges Gütekriterium ausgedrückt werden.
Die Algorithmen innerhalb der Planung sind als Aktionen dargestellt. Nach der
Planung muss die konstruierte IE-Pipeline allerdings ausgeführt werden. Dafür
wird die konkrete Implementierungsklasse benötigt, die jeder Algorithmus der Ontologie mit der Eigenschaft hatImplementierungsKlasse besitzt. Etwas universelles
haben alle Elemente der Ontologie gemein: Sie alle können benannt werden. Dies
geschieht durch die Eigenschaft hatName, die für die Klasse Thing definiert ist.
Diese Klasse Thing ist die Basisklasse für alle Klassen der Ontologie, alle anderen Klassen sind automatisch von ihr abgeleitet (ähnlich der Object-Klasse in der
Programmiersprache Java). Damit ist es möglich, allen Individuen die Eigenschaft
hatName zuzuweisen. Die Eigenschaft hatDatentyp weist jeder Filtereigenschaft
einen Datentyp zu. Somit kann die Eigenschaft vonDatum eines Datumsfilters
den Datentyp String haben. Es ist nicht sinnvoll, alle möglichen Filter in der Ontologie abzubilden. Daher werden die genannten Ontologieeigenschaften der Filter
genutzt, um in der grafischen Oberfläche nicht nur die zu Verfügung stehenden
Filter aufzuzeigen, sondern auch die vom Benutzer für diese Filter benötigten
Eingaben dynamisch bestimmen zu können.
Die endgültige Ontologie enthält ferner eine Reihe von Individuen. Die meisten
dieser Individuen sind abhängig von dem verwendeten IE-Framework, wie etwa
konkrete IE-Algorithmen. Eine umfassende Darlegung der in der endgültigen Ontologie vorhandenen Individuen wird daher erst im folgenden Kapitel 5 gegeben.
4.2.2 Begründung für eine Ontologie als Wissensbasis
Mit den aus dem vorherigen Abschnitt identifizierten, notwendigen Informationen,
die in der Wissensbasis des Expertensystems vorhanden sein müssen, lässt sich
nun die Wahl einer Ontologie für die formale Wissensrepräsentation begründen.
In Abschnitt 2.2.1 wurden verschiedene Möglichkeiten vorgestellt, wie Wissen in
einem Expertensystem repräsentiert werden kann. In den reinen Formen der Logik,
wie zum Beispiel Aussagenlogik oder Prädikatenlogik, kann es kompliziert sein,
umfangreiches Wissen auszudrücken. Außerdem ist das Wissen in diese Art der
Repräsentation schwierig zu warten. Da aber die Verständlichkeit der Wissensbasis
eine Anforderung an deren Repräsentationsform ist, sind diese Formen der Logik
nicht genutzt worden.
Viele Expertensysteme setzen auf Regelsysteme als Wissensbasis. Das Wissen ist
in den Wenn-Dann-Regeln gespeichert und es reicht ein allgemeiner Inferenzmechanismus, um Schlussfolgerungen auf Basis der Regeln zu ziehen. Regelsysteme
eignen sich vor allem für die Klassifikation oder Synthese als Aufgabenbereich
des jeweiligen Expertensystems, wie die in Kapitel 3 betrachteten Expertensysteme aus diesen Bereichen zeigen. Das Expertensystem dieser Arbeit fällt aber, wie
schon gesagt, in den Bereich der Konstruktion. In diesem Bereich lässt sich keine
eindeutige Präferenz von einer bestimmten Wissensrepräsentationsform erkennen.
Das im letzten Abschnitt identifizierte Wissen benötigt allerdings keine Regelform.
Ein Großteil des Wissens um die Konstruktion einer IE-Pipeline ist in der spe-
86
4.2 Die Wissensbasis des Expertensystems
ziell an die Domäne angepasste Problemlösungskomponente zu finden. Weiterhin
wird kein vages oder unsicheres Wissen verwendet. Etwaiges vages Wissen, wie
es zum Beispiel Laufzeitwerte eines Algorithmus in Form eines Average Sentence
Response Time-Wertes sein können, wird innerhalb des Expertensystems als sicheres Wissen angesehen. Aus diesem Grund scheidet auch die Fuzzy-Logik als
Repräsentationsform des Wissens aus.
Die Ontologie als Form der Wissensrepräsentation gehört zu den vorgestellten
objektorientierten Formen. Als Ontologieform wurde die in Abschnitt 2.2.2 vorgestellte Web Ontology Language (OWL-DL) gewählt. Sie bietet eine Reihe von
Vorteilen gegenüber den gerade erwähnten, anderen Formen:
• Werkzeugunterstützung: Es existieren für OWL Werkzeuge, die das Erstellen
und Editieren von in OWL verfassten Ontologien stark vereinfachen, wie das
von dieser Arbeit für den Ontologieentwurf genutzte Protégé. Dadurch wird
eine einfache Verständlich- und Erweiterbarkeit der Ontologie unterstützt.
• Hohe Verbreitung: Es existieren viele Arbeiten, die schon erfolgreich OWLOntologien eingesetzt haben, siehe auch Kapitel 3.
• Existierende Reasoner : Für OWL existieren schon eine Vielzahl von Schlussfolgerungswerkzeugen, wie die in Abschnitt 2.3.1 erwähnten Pellet und FaCT++.
• Ontologie Standard : OWL ist ein Standard unter den Ontologien und eine
Empfehlung des W3C (vgl. Abschnitt 2.2.2).
Der Nachteil von OWL ist der schon beschriebene, möglicherweise hohe Aufwand für das Schlussfolgern. Die erstellte Ontologie ist allerdings relativ einfach
gehalten worden. Dies kommt einem geringen Aufwand beim Schlussfolgern entgegen, da keine komplizierten Konstrukte von OWL genutzt werden. Aus diesem
Grund kann auch auf die Evaluierung eines für die gewählte Ontologie besten
Reasoners verzichtet werden, denn selbst der Standard-Reasoner5 des eingesetzten Ontologie-Framework ist für die an die Ontologie herangetragenen Probleme
bestens geeignet. Aufgrund der einfachen Ontologie sind hauptsächlich die in Abschnitt 2.3.1 vorgestellten Inferenzprobleme der Instanzüberprüfung und das der
Klasseninstanzen interessant. Dies hängt auch damit zusammen, dass die Wissenserwerbskomponente des Expertensystems keine neuen Klassen in die Ontologie
einfügt, sondern nur neue Individuen bereits bestehender Klassen.
4.2.3 Hinzufügen von neuem Wissen in die Ontologie
Im Allgemeinen ist die Wissenserwerbskomponente eine Schnittstelle für Experten oder Entwickler, um manuell das Wissen des Expertensystems zu bearbeiten
(vgl. Abschnitt 2.1.2). Für [Pup91] kann das Expertensystem aber auch Wissen
5
Zum Einsatz kam das Framework Jena: http://incubator.apache.org/jena/
87
4. Konzeptueller Lösungsansatz
automatisch aus Falldaten ableiten. Etwas ähnliches wird in dieser Arbeit mithilfe
der Wissenserwerbskomponente gemacht.
Die in Abschnitt 4.2.1 vorgestellte Ontologie ist vollständig, was ihre Klassen
und Eigenschaften angeht. Allerdings sind noch keine Individuen der Klassen in
der Ontologie vorhanden. Vor allem fehlen die vom Expertensystem zu berücksichtigen konkreten Algorithmen, sowie die möglichen Annotationstypen in Form
eines Typensystems. Die zur Verfügung stehenden Algorithmen und die von ihnen
gebrauchten Annotationstypen können nicht universell für die Domäne Information Extraction identifiziert werden. Innerhalb der Information Extraction lässt
sich zum Beispiel noch kein einheitliches Übereinkommen identifizieren, welche
Arten von Algorithmen es geben muss und vor allem, welche Art von Algorithmus
welche benötigten und erzeugten Annotationstypen hat. Darüber hinaus gibt es,
wie schon in Abschnitt 4.2.1 angesprochen, keinen Konsens über eine einheitliche
Typenhierarchie. Aus diesem Grund ist es die Aufgabe der Wissenserwerbskomponente, diese fehlenden und für jedes genutzte IE-Framework eventuell unterschiedlichen Informationen über externe Quellen in die Ontologie zu übertragen.
Die Art, in der diese Informationen vorliegen, kann sehr unterschiedlich sein. So
liegen sie bei dem eingesetzten IE-Framework UIMA in Form von XML-Dateien
vor, die die zur Verfügung stehenden Algorithmen und die zu verwendende Annotationstypenhierarchie beschreiben.
Der manuelle Wissenserwerb ist allerdings nicht unmöglich. Das Wissen der Ontologie kann mithilfe von frei verfügbaren Werkzeugen, wie dem schon erwähnten
Ontologieeditor Protégé, manuell verändert und erweitert werden. So können sich
auf einfache Art und Weise alle bestehenden Klassen, Eigenschaften und Individuen einer Ontologie, sowie deren Abhängigkeiten angesehen werden. Ein weiterer
Aspekt ist das Nutzen von Reasonern, wie Pellet oder FaCT++, um etwa schon
im Editor die Konsistenz, also die Widerspruchsfreiheit, der Ontologie feststellen
zu lassen. Dieses sehr mächtige Werkzeug nachzubilden, liegt außerhalb des Fokus
dieser Arbeit. Daher wird der manuelle Wissenserwerb durch das Expertensystem
nicht direkt unterstützt. Es wird empfohlen, hierfür einen externen Ontologieeditor zu verwenden, wobei sich Protégé im Rahmen dieser Arbeit als für diese
Aufgabe besonders geeignet herausgestellt hat.
Die konkreten Algorithmen und eine konkrete Typenhierarchie sind abhängig
von dem verwendeten IE-Framework. Daher wird auf diesen Aspekt und die genaue Übertragung dieser Informationen in die Ontologie erst in Abschnitt 5.2
eingegangen.
4.2.4 Kapselung der Ontologie durch ein Datenmodell
Die Einführung eines Datenmodells ist in einer normalen Expertensystemarchitektur, wie sie [Pup91] oder [Hau00] empfehlen, nicht vorgesehen. Sie bietet jedoch
in dem von dieser Arbeit entwickelten System einige Vorteile, die im Folgenden
beschrieben werden sollen.
Als Datenmodell wird in dieser Arbeit eine Abstraktionsschicht zwischen Pro-
88
4.3 Anfragen an das Expertensystem
blemlösungskomponente und Wissensbasis bezeichnet. Diese Schicht erfüllt vor
allem den Zweck, die Zugriffe auf die Wissensbasis zu kapseln und das in ihr
verfügbare Wissen für die anderen Komponenten des Expertensystems verfügbar
zu machen. Für diesen Zweck existieren für die wichtigsten Elemente der Ontologie
(wie zum Beispiel Annotationstyp oder Algorithmus) Datenklassen, die aus der
Ontologie extrahiertes Wissen speichern und es damit etwa der Problemlösungskomponente schnell zur Verfügung stellen können. Zudem existieren für diese Datenklassen verschiedene Helferklassen, welche die benötigten Informationen, etwa
über die verschiedenen Algorithmen, aus der Ontologie extrahieren und somit
Funktionalitäten des Datenmodells für die anderen Komponenten des Expertensystems anbieten. Die einzelnen Komponenten des Expertensystems können daher
nicht direkt auf das Wissen der Ontologie zugreifen, sondern sind auf die angebotenen Funktionen des Datenmodells angewiesen (genauere Informationen über
das Datenmodell finden sich im späteren Abschnitt 6.1.2).
Dieses Vorgehen ist nur deshalb praktikabel, weil innerhalb der Problemlösungskomponente bereits viel Expertenwissen fest eingebaut ist. Daher sind die benötigten Informationen aus der Wissensbasis leicht identifizierbar. Somit können die bekannten Anfragen von der Problemlösungskomponente wie Gib mir alle verfügbaren Algorithmen oder Ist das Attribut M von Annotation A ein Attribut eines
Supertyps von A? über das Datenmodell beantwortet werden. Das Datenmodell
kann dabei bereits gewonnenen Erkenntnisse zwischenspeichern und nur bei Bedarf
die Anfrage an die Wissensbasis weiterleiten. Dies stellt einen großen Vorteil des
Datenmodells dar. Wie in Abschnitt 2.3.1 und in manchen Arbeiten aus Kapitel
3 bereits dargelegt, kann das Ziehen von Schlussfolgerungen in OWL Ontologien sehr lange dauern. Durch einen Zwischenspeicher im Datenmodell kann daher
ein Effizienzvorteil erzielt werden. Dieses Zwischenspeichern ist auch deswegen
möglich, weil die Ontologie selbst relativ einfach ist. Sie verändert sich während
der Ausführung des Expertensystems nicht. Der einzige Fall, indem sich die Ontologie ändern kann, ist, wenn der Benutzer mithilfe der Wissenserwerbskomponente
neues Wissen einliest. Dann muss auch der Zwischenspeicher gelöscht werden.
Ein weiterer, vielleicht noch wichtigerer Vorteil ergibt sich durch die Kapselung
der Wissensbasis. Hiermit wird es möglich, bei Bedarf die Form der Wissensrepräsentation der Wissensbasis auszuwechseln. Hierfür müssen nur Anpassungen
im Datenmodell gemacht werden. Die hierfür zu treffenden Änderungen bleiben
somit im Expertensystem lokal begrenzt.
4.3 Anfragen an das Expertensystem
Nachdem in den vorherigen Abschnitten vor allem die Problemlösungskomponente
und die Wissensbasis im Vordergrund standen, sollen in diesem Abschnitt mit der
Interviewerkomponente und der Erklärungskomponente die Benutzerschnittstellen
des Expertensystems vorgestellt werden. Bei der Vorstellung der Interviewerkomponente geht es vor allem darum, noch einmal zusammenzufassen, welche Informa-
89
4. Konzeptueller Lösungsansatz
tionen vom Benutzer in welcher Form in das Expertensystem übertragen werden
müssen, damit dieses korrekt arbeiten kann. Auf den Benutzerschnittstellen des
Expertensystems lag nicht der Fokus dieser Arbeit. Allerdings wird in späteren
Kapiteln (vgl. Kapitel 6) dargestellt, dass die Benutzerschnittstellen als sehr einfach austauschbar konzipiert sind. Somit kann das Expertensystem leicht an neue
Umgebungen, etwa den Einsatz innerhalb eines Webservices, angepasst werden.
4.3.1 Eingaben in das Expertensystem
Der Benutzer muss in irgendeiner Art und Weise das Expertensystem steuern und
das zu lösende Problem hinsichtlich der Konstruktion der IE-Pipeline eingeben
können. Das betrifft vor allem die in Abschnitt 4.1 erwähnten Ziele, die die IEPipeline finden soll und die Randbedingungen, wie Filter und Priorisierungen, die
die IE-Pipeline dabei einhalten muss. Das in dem Abschnitt erläuterte Verfahren
zur Konstruktion einer IE-Pipeline ist, nachdem das Problem in das Expertensystem eingegeben wurde, nicht mehr auf die Mitarbeit des Benutzers angewiesen. Dies ist beispielsweise in einigen vorgestellten Expertensystemen aus Kapitel
3 der Fall, bei denen das System Rückfragen an den Benutzer stellt. Das Fehlen solcher Rückfragen, also die autonome Lösung eines Problems, nennt [Pup91]
Batch-Verarbeitung. Solch eine Verarbeitung liegt demnach für das zu entwickelnde Expertensystem vor.
Die Interviewerkomponente stellt für den Benutzer des Expertensystems eine
grafische Benutzerschnittstelle dar, um die benötigten Informationen für die Problemlösungskomponente zu sammeln, diese daraufhin anzustoßen und die gefundenen Lösungen anzuzeigen. Das Anstoßen der in Abschnitt 4.2.3 vorgestellten
Wissenserwerbskomponente ist dem Benutzer ebenfalls möglich.
Der Benutzer muss die Informationen für ein Problem in das Expertensystem
eingeben können. In der Interviewerkomponente ist hierfür eine Eingabe in Formularform vorgesehen. In dieses Formular gibt der Benutzer alle benötigten Eingaben (das Problem) ein und stößt dann das Expertensystem an. Der Benutzer
muss demnach folgende Eingaben treffen, um eine Problem für die Konstruktion
einer IE-Pipeline an das Expertensystem zu übergeben:
• Die Ziele der IE-Pipeline, also die von der Pipeline zu findenden Informationen in Form der zu findenden Annotationstypen und Attribute.
• Eine Priorisierung von Effizienz und Effektivität in der in Abschnitt 4.1.3
vorgestellten Art.
• Unter Umständen einen oder mehrere der in Abschnitt 4.1.5 vorgestellten
Filter.
• Ein Verweis auf die zu untersuchenden Texte.
90
4.3 Anfragen an das Expertensystem
4.3.2 Erklärungen von Seiten des Expertensystems
Die Erklärungskomponente dient in einem Expertensystem dazu, den Lösungsweg
für den Benutzer transparent zu machen (vgl. Abschnitt 2.1.2). Daher muss durch
diese Komponente für dieses Expertensystem vor allem der Weg der Berechnung
der IE-Pipeline erkennbar werden. In [Pup91] wird die Aufgabe einer Erklärungskomponente in Expertensystemen, die als Aufgabenbereich die Konstruktion haben, vorrangig als Protokollierung der gemachten Planungsschritte, die zu einer
Lösung geführt haben, gesehen. Anders als zum Beispiel in Diagnosesystemen
werden während des Arbeitens des Expertensystems keinerlei Rückfragen an den
Benutzer gestellt, die einer weiteren Erklärung bedürfen.
Das von dieser Arbeit entwickelte Expertensystem fällt, wie zu Anfang des Abschnitts 4.1 beschrieben, in den Aufgabenbereich der Konstruktion. Aus diesem
Grund ist in dem zu entwickelnden Expertensystem die Erklärungskomponente in
Form eines Arbeitsprotokolls konzipiert worden. Hierzu ist in der Problemlösungskomponente eine umfassende Protokollierung der Planung der IE-Pipeline eingebaut worden. Die Protokollierung der Erklärungskomponente wird der Interviewerkomponente mitgeteilt, die diese Protokollierung dem Benutzer anzeigen kann.
Hiermit ist es dem Benutzer möglich, die Lösung des Expertensystems nachzuvollziehen, aber auch einem Experten mögliche Fehler in der Wissensbasis zu entdecken. Dies können Algorithmen sein, bei denen die falschen Ein- und Ausgaben
gesetzt sind, oder bei denen die Werte der Gütekriterien falsch angegeben wurden und sie deshalb vom Planungsverfahren eventuell nicht korrekt berücksichtigt
werden.
91
5 Realisierung
Das in Kapitel 4 erarbeitete Konzept ist unabhängig von dem verwendeten Information-Extraction-Framework (IE-Framework), mit dem die konstruierte IEPipeline ausgeführt und somit die Ergebnisse für den Benutzer berechnet werden. Allerdings müssen die Eigenheiten des verwendeten IE-Frameworks bei der
Umsetzung dieses Konzepts berücksichtigt werden. So sind zum Beispiel beim
Ausführen der berechneten IE-Pipeline die real vorhandenen Algorithmen zu nutzen. Die meisten Bereiche des Expertensystems konnten allerdings so gestaltet
werden, dass sie völlig unabhängig von dem verwendeten IE-Framework sind. Etwa ist die Konstruktion der IE-Pipeline allein auf Basis des Wissens der Ontologie
möglich. Dieses Kapitel beschäftigt sich daher mit den notwendigen Berücksichtigungen der Eigenschaften des IE-Frameworks und den dadurch identifizierten
neuen Herausforderungen, die es zu lösen gilt.
Das Kapitel beginnt in Abschnitt 5.1 mit der Vorstellung des Apache Unstructured Information Management Architecture-Framework1 (im Folgenden UIMA),
welches das benutzte IE-Framework dieser Arbeit darstellt. Die dort verwendeten
Konzepte sollen dabei auch eine Abbildung auf die in dieser Arbeit verwendeten
Begriffe erfahren.
In Abschnitt 5.2 kann dann dargelegt werden, wie die zur Verfügung stehenden
Informationen über Algorithmen und Typenhierarchie aus UIMA in Wissen der
Ontologie umgewandelt werden können. Dazu wird die konkrete Wissenserwerbskomponente (vgl. Abschnitt 4.2.3) vorgestellt. Mittels dieser Komponente wird
dann die Wissensbasis des Expertensystems mit Wissen gefüllt. Alle zusätzlich in
die Ontologie eingefügten Elemente werden in Abschnitt 5.3 vorgestellt.
Die notwendigen Anpassungen der Problemlösungskomponente an UIMA und
dabei auftretende Herausforderungen sind in Abschnitt 5.4 beschrieben. So muss
zum Beispiel das in Abschnitt 4.1.3 beschriebene Problem gelöst werden, dass das
Paradigma Maximum Decomposition nicht komplett für alle Algorithmen durchgeführt wurde. Außerdem wird die Realisierung der Ausführungskomponente vorgestellt, sowie die Einbindung der Randbedingungsfilter in das vorhandene Framework gezeigt.
5.1 Vorstellung des eingesetzten IE-Frameworks
UIMA wird in dieser Arbeit als Basis für die Ausführung der IE-Pipeline benutzt.
Die in einer Pipeline verwendbaren Algorithmen, auf die das Expertensystem bei
1
http://uima.apache.org/
93
5. Realisierung
UIMA Begriff
Erklärung
Analysis Engine
Aggregate Analysis Engine
Analysis Engine Descriptor
IE- oder NLP-Algorithmus
IE-Pipeline
XML-Beschreibung eines IE- oder NLPAlgorithmus
Beschreiben benötigte und erzeugte Annotationen eines Algorithmus
Annotationstyp
Attribut eines Annotationstyps
Datenstruktur für die Aufnahme der gefundenen Annotationen
Liest ganz bestimmte Textarten ein
XML-Beschreibung der Typenhierarchie
Basistyp für alle weiteren Annotationstypen
Capabilities
Type
Feature
Common Analysis Structure(CAS)
Collection Reader
Type System Descriptor
Annotation
Tabelle 5.1: Erklärung der UIMA-Begriffe
seiner Arbeit zurückgreift, sind größtenteils unter Benutzung von UIMA am s-lab 2
der Universität Paderborn in Zusammenarbeit mit der Webis 3 - Arbeitsgruppe
der Universität Weimar entstanden (siehe [WPS10] und [WSE11]). Daneben werden Algorithmen aus [Sch94] (TreeTagger-Algorithmen), [BBHN10] und [Boh10]
(MateTools-Algorithmen) und [FGM05] (StanfordNER-Algorithmen) eingesetzt.
In Tabelle 5.1 sind die für diese Arbeit wesentlichen UIMA-Begriffe aufgezählt.
Sie lassen sich größtenteils auf schon bekannte Begriffe aus Kapitel 4 abbilden (vgl.
vor allem Abschnitt 4.2). Eine Analysis Engine (AE) stellt einen Algorithmus in
UIMA dar. Eine Aggregate Analysis Engine (AAE) besteht aus einer oder mehreren AEs, die in einer bestimmten Reihenfolge nacheinander ausgeführt werden.
Sie stellt damit eine IE-Pipeline dar. Die Eigenschaften der AEs, wie auch die der
AAE, werden in Form von XML-Dateien beschrieben, den sogenannten Analysis
Engine Descriptors (im Folgenden Deskriptor genannt). Für eine AAE enthält ein
solcher Deskriptor zum Beispiel die einzelnen Algorithmen und ihre Reihenfolge
in der entsprechenden IE-Pipeline. Im Deskriptor einer AE sind die sogenannten
Capabilities wichtig. Hiermit werden die benötigten Annotationstypen (bezeichnet
als Eingabe der AE) und die erzeugten Annotationstypen (bezeichnet als Ausgabe
der AE) angegeben. Die Annotationstypen selbst sind die Types, deren Attribute
heißen Feature. Die von den Algorithmen gefundenen Annotationen werden in einer speziellen Datenstruktur gespeichert, der Common Analysis Structure (CAS),
welche automatisch durch UIMA von einem Algorithmus zum nächsten in der
IE-Pipeline weitergereicht wird. Somit befinden sich nach der Ausführung der IEPipeline alle gefundenen Informationen am CAS.
Unterschiedliche Texte können ein unterschiedliches Format besitzen. Damit die
2
3
http://s-lab.uni-paderborn.de/
http://www.webis.de/
94
5.2 Importieren der Informationen des eingesetzten IE-Frameworks
Algorithmen auf den Texten in einer einheitlichen Art arbeiten können, müssen
diese für sie aufbereitet werden. So soll es beispielsweise für einen Algorithmus
egal sein, ob der ursprüngliche Text aus einer Webseite oder einer normalen Textdatei stammt. Um die unterschiedlichen Formate einzulesen und somit die Texte
den AEs bereitzustellen, können in UIMA daher sogenannte Collection Reader
definiert und implementiert werden.
Alle möglichen Annotationstypen sind in einer Typenhierarchie aufgeführt, die
in einer eigenen XML-Beschreibungsdatei, dem Type System Descriptor, beschrieben ist. Der Basisannotationstyp, welchen alle anderen Typen als direkten oder
indirekten Supertyp haben, ist Annotation. Bei der Vererbung von Types werden
alle Features der Supertypen an ihre Subtypen weiter vererbt.
5.2 Importieren der Informationen des eingesetzten
IE-Frameworks
In Abschnitt 4.2.3 wurde dargelegt, dass die Wissenserwerbskomponente dieses
Expertensystems automatisch die Informationen über verfügbare Algorithmen und
Annotationstypen in die Ontologie übertragen soll. Diese Informationen liegen für
UIMA in Form von XML-Dateien, den Deskriptoren, vor. Um auf diese Informationen zurückzugreifen, bedarf es allerdings nicht eines eigens zu entwickelnden
XML-Parsers, sondern es können die Funktionen von UIMA zum Erhalt des Inhalts der Deskriptoren genutzt werden.
Da in UIMA die benötigten Informationen zum einen in Form des Deskriptors der Typenhierarchie, zum anderen in Form der Deskriptoren der AEs vorliegen, teilt sich die Wissenserwerbskomponente in die beiden Komponenten Type
Importer und Analysis Engine Importer auf. Der Type Importer importiert die
Typenhierarchie, der Analysis Engine Importer die Informationen über die Algorithmen. Von beiden Komponenten werden die entsprechenden Informationen aus
den Deskriptoren mithilfe von UIMA ausgelesen und in die Ontologie überführt.
Die Komponenten, und damit die Wissenserwerbskomponente selbst, greifen
direkt auf die Ontologie zu, ohne das Datenmodell zu benutzen. Dies ist notwendig,
da sie Elemente der Ontologie erstellen und das Datenmodell nur für das Abgreifen
und Verfügbarmachen der Informationen der Ontologie zuständig ist.
Die UIMA-Types und ihre Features, sowie die Vererbungshierarchie können sehr
leicht auf die Konzepte Annotationstyp und Attribut der Ontologie übertragen
werden. Bei den Algorithmen werden aus den Capabilities die Informationen über
die in der Ontologie gebrauchten Informationstypen extrahiert. Eine Besonderheit
stellen die Gütewerte der Algorithmen dar. In den UIMA-Deskriptoren der AEs
kann ein Beschreibungstext angegeben werden. Per Einhaltung einer Konvention
können dort die einzelnen Werte für die Gütekriterien eingefügt werden. Diese Informationen werden vom Analysis Engine Importer automatisch erfasst und in die
Ontologie, für den entsprechenden Algorithmus, mit aufgenommen. Eine weitere
95
5. Realisierung
Ereignis
: Annotationstyp
Ereignis
Umsatzaussage
-unternehmen : Unternehmen
-geld : Geldinformation
-zeitraum : Zeitraum
hatSupertyp
Unternehmen
: Annotationstyp
Umsatzaussage
: Annotationstyp
hatAnnotationstyp
Unternehmen
Zeitraum
Geldinformation
: Annotationstyp
Zeitraum
: Annotationstyp
hatAnnotationstyp
hatAnnotationstyp
Geldinformation
hatAttrribut
unternehmen
: Attrribut
hatAttrribut
hatAttrribut
geld
: Attrribut
zeitraum
: Attrribut
Abbildung 5.1: Übersetzung einer fiktiven UIMA-Typenhierarchie in Ontologieform
Besonderheit hat mit den Deskriptoren selbst zu tun. Eine AAE enthält Verweise
auf die Deskriptoren der einzelnen, in der IE-Pipeline vorkommenden AEs. Das
bedeutet, die in Abschnitt 4.2 erwähnte Eigenschaft hatImplementierungsKlasse
eines Algorithmus in der Ontologie zeigt nicht etwa auf das jeweilige Programm
des Algorithmus, sondern auf den Pfad zur XML-Beschreibungsdatei der entsprechenden AE. Die Implementierungsklasse selbst ist innerhalb des Deskriptors der
AE angegeben.
In Abbildung 5.1 ist zur Veranschaulichung die Übersetzung einer fiktiven in
einem Type System Descriptor vorliegenden Typenhierarchie in Ontologieform
zu sehen. Auf der linken Seite sind die im Deskriptor beschriebenen Types als
UML-Klassendiagramm abgebildet. Attribute der Klassen sind die Features des
entsprechenden Type. Die Vererbung der Klassen gibt die Vererbung zwischen
den Types an. Der rechte Teil der Abbildung zeigt den aus diesen Informationen
generierten Ausschnitt der Ontologie (vgl. hierzu Abschnitt 4.2.1). Dabei sind
die Individuen der Ontologieklassen als Rechtecke dargestellt, wobei die Notation
Bezeichner : Klasse ist. Die konkreten Eigenschaften der Individuen werden durch
die Pfeile zwischen den Ellipsen ausgedrückt.
In Abbildung 5.2 ist ein Ausschnitt der Ontologie für einen importierten fiktiven
Algorithmus Umsatzaussagenklassifizierer dargestellt. Die Notation ist die gleiche,
wie in Abbildung 5.1. Die verwendeten Klassen entstammen der in Abschnitt 4.2.1
vorgestellten Ontologie. Die Ellipsen geben primitive Werte (Literale) an, die nicht
Individuen einer Klasse der Ontologie sind.
Der Beispielalgorithmus benötigt als Eingabe die Annotationstypen Unternehmen, Geldinformation und Zeitraum jeweils ohne Attribute. Die Annotationstypen
sind über die Informationstypen UnternehmenEingabe, GeldEingabe und ZeitraumEingabe mit dem Algorithmus verknüpft. Der Algorithmus erzeugt Annotationen
vom Typ Umsatzaussage. Dies wird durch den Informationstypen UmsatzaussageAusgabe dargestellt, welcher den Annotationstyp Umsatzaussage besitzt. Für
jede gefundene Umsatzaussage setzt der Algorithmus auch die Werte für dessen Attribute Zeitraum, Geld und Unternehmen. Daher ist der Informationstyp
96
5.3 Zusätzliche Elemente der Wissensbasis
hatImplementierungsklasse
Umsatzaussagenklassifizierer
: Algorithmus
Klassifizierer.xml
hatEingabe
hatGüte
hatAusgabe
UnternehmenEingabe
: Informationsyp
GeldEingabe
: Informationsyp
ZeitraumEingabe
: Informationsyp
UmsatzaussageAusgabe
: Informationsyp
hatAktivesAttribut
hatAnnotationstyp
Unternehmen
: Annotationstyp
hatAnnotationstyp
Geldinformation
: Annotationstyp
hatAnnotationstyp
Zeitraum
: Annotationstyp
Zeitraum
: Attribut
Geld
: Attribut
Unternehmen
: Attribut
AccuracyGüte
: Effektivitätskriterium
hatAnnotationstyp
hatGütekriterium
Umsatzaussage
: Annotationstyp
Accuracy
: Gütekriterium
hatKonkretenWert
0,97
hatAnnotationstyp
hatAnnotationstyp
hatAnnotationstyp
Abbildung 5.2: Ein fiktiver Algorithmus Umsatzaussagenklassifizierer in Ontologieform
als Ausgabe des Algorithmus über die Eigenschaft hatAktivesAttribut mit diesen
Attributen verbunden (vgl. Abschnitt 4.2.1). Die Güte des Algorithmus für das
Gütekriteriums Accuracy wird über das Individuum AccuracyGüte ausgedrückt
und mit dem Wert 0, 97 verknüpft. Der Pfad zum Deskriptor des Algorithmus
wird über die Eigenschaft hatImplementierungsklasse beschrieben.
Manche Bezeichner sind vereinfacht dargestellt worden. So müsste etwa der
Bezeichner UmsatzaussageAusgabe vom Typ Informationstyp eine eindeutige ID
haben, da unterschiedliche Algorithmen Umsatzaussagen mit unterschiedlichen
aktiven Attributen erzeugen können und damit eine eindeutige Zuordnung der
Informationstypen zu ihren Algorithmen nicht mehr sichergestellt wäre (vgl. Abschnitt 4.2). Das gleiche gilt für die Bezeichner der Informationstypen der Eingaben und AccuracyGüte.
5.3 Zusätzliche Elemente der Wissensbasis
Im Folgenden sollen die noch nicht in Abschnitt 4.2.1 vorgestellten Individuen der
Ontologie aufgezählt werden. Diese Elemente der Wissensbasis sind stark abhängig
von den verwendeten Algorithmen, aus denen sich eine IE-Pipeline zusammensetzen kann. Die durch die beiden in Abschnitt 5.2 beschriebenen Importer der Ontologie hinzugefügten Elemente der konkreten Typenhierarchie und der konkreten
Algorithmen sind allerdings aus Platzgründen nicht aufgeführt. Die schlussendlich vom Expertensystem genutzten IE- und NLP-Algorithmen sind in Tabelle
A.3 in Anhang A beschrieben. Die importierte Typenhierarchie ist in Abbildung
B.1 in Anhang B zu finden. Sie wurden anhand des in Abschnitt 5.2 dargestellten
Verfahrens aus den XML-Deskriptoren in Ontologieform überführt.4
4
Sowohl die Algorithmen, als auch die Typenhierarchie wurden im Rahmen der Arbeiten
[WPS10] und [WSE11] entwickelt und sind teilweise für diese Arbeit erweitert und ange-
97
5. Realisierung
Name
Klasse
Ordnung
ist Verrechenbar
Accuracy
F-Measure
Labeled Attachment Score
Precision
Recall
Average Sentence Response Time
Averaged Efficiency
E
E
E
E
E
F
F
Größer
Größer
Größer
Größer
Größer
Kleiner
Kleiner
nein
nein
nein
nein
nein
ja
ja
Tabelle 5.2: Gütekriterien in der Ontologie. Klasse: E=Effektivitätskriterium,
F=Effizienzkriterium. Ordnung: Größer=GrößererWerIstBesser, Kleiner=KleinererWertIstBesser
Für die Klasse Ordnung der Ontologie existieren die beiden Individuen GrößererWertIstBesser und KleinererWertIstBesser. Sie drücken aus, ob ein kleinerer
Wert eines Gütekriteriums besser ist oder ein großer. Diese Semantik wird schlussendlich in der Implementierung aufgrund eben jener Eigenschaft eines Gütekriteriums umgesetzt. In Tabelle 5.2 sind die in der Ontologie als Individuen verwendeten Gütekriterien mit ihren gesetzten Eigenschaften eingetragen (vgl. Ontologie in
Abschnitt 4.2.1). Die Kriterien ergeben sich aus den in der verwendeten Algorithmenmenge genutzten Gütekriterien und sind alle in Abschnitt 2.4.3 beschrieben.
Die in Abbildung 4.3 aus Abschnitt 4.1.3 dargestellten Priorisierungen müssen
ebenfalls in die Ontologie übertragen werden. Dies wird mittels der durch die Algorithmenmenge identifizierten, konkreten Gütekriterien durchgeführt. Die Umwandlung in Ontologieform ist nach folgendem Schema realisiert worden:
1. Alle Priorisierungen mit zwei Elementen werden um das implizite, dritte
Element erweitert in der Ontologie abgelegt (dies erleichtert die Implementierung). Zum Beispiel wird F1 R in der Ontologie als F1 Rt abgelegt. Die
so um das Effizienzmaß erweiterten Priorisierungen sind: F1 Rt, RF1 t, F1 P t,
P F1 t. Für die Punkte tP , P t beziehungsweise tR, Rt werden jeweils als drittes der Recall R beziehungsweise die Precision P festgesetzt. Somit ergeben
sich die Punkte: tP R, P tR, tRP , RtP .
2. Die Priorisierungen tA, At, tLAS und LASt werden aufgenommen. Dabei
steht A für die Accuracy und LAS für den Labeled Attachment Score.
3. Für eine Priorisierung F1 Rt werden ein Individuum der Klasse Priorisierung
und drei Individuen der Klasse Priorität gebildet. Jede Priorität wird über
die Eigenschaft hatKriterium mit dem entsprechenden Gütekriterium verknüpft. Die Prioritäten werden dann mittels der hatNachfolger -Eigenschaft
in der gewünschten Reihe angeordnet. So hat etwa die Priorität für den FMeasure in F1 Rt als Nachfolger die Priorität für den Recall. Die Priorisierung
passt worden.
98
5.4 Anpassungen an der Berechnung und Ausführung der IE-Pipeline
verweist dann mittels der hatPrioritätsreihenfolge auf das erste Element der
Prioritätsreihenfolge, in diesem Fall die Priorität des F-Measure.
4. Für die aus Abbildung 4.3 bekannten Punkte werden die impliziert-Eigenschaften wie folgt gesetzt:
a) Beginnt die Priorisierung mit einem Effektivitätsmaß (F1 , P , R), so
wird die Eigenschaft impliziert jeweils mit At und LASt gesetzt.
b) Beginnt die Priorisierung mit dem Effizienzmaß (t), so wird die Eigenschaft impliziert jeweils mit tA und tLAS gesetzt.
5. Für das Effizienzmaß t wird die Average Sentence Response Time gewählt.
Dies ersetzt t in den Priorisierungen und damit in den Einträgen der Ontologie.
5.4 Anpassungen an der Berechnung und
Ausführung der IE-Pipeline
Die Einbindung von UIMA führt zu einigen Anpassungen des Expertensystems.
Dies betrifft vor allem die IE-Pipeline-Ausführungskomponente, da diese Komponente im hohen Maße abhängig von dem verwendeten IE-Framework ist. Hier wird
aus einer vorher abstrakt im Expertensystem vorhandenen IE-Pipeline eine UIMAIE-Pipeline konstruiert, die dann mittels UIMA ausgeführt wird. Allerdings gibt
es, bedingt durch die verwendeten IE- und NLP-Algorithmen und der verwendeten
Typenhierarchie, noch weitere Anpassungen an Teilen der Problemlösungskomponente, die in den folgenden Abschnitten erläutert werden.
5.4.1 Realisierungsaspekte der Berechnung der IE-Pipeline
Die Berechnung der Pipeline ist nach den in Abschnitten 4.1.2, 4.1.3 und 4.1.4
vorgestellten Konzepten realisiert worden. An den Konzepten sind allerdings einige Anpassungen vorgenommen worden. So ergab die Analyse der für eine IEPipeline zur Verfügung stehenden Algorithmen (vgl. Tabelle A.3 in Anhang A),
dass diese nicht komplett nach dem Paradigma Maximum Decompostion in die
kleinstmöglichen Teile zerlegt sind. Daher kann nicht von vornherein davon ausgegangen werden, dass die in Abschnitt 4.1.3 erläuterte Methode für alle Fälle
optimale Ergebnisse liefert.
Die Analyse der verwendeten Typenhierarchie (vgl. Abbildung B.1 in Anhang
B) zeigt außerdem, dass die Vererbungshierarchie der Annotationstypen und vor
allem die dadurch vererbten Attribute, stark ausgeprägt ist. Im entwickelten Partial Order Planner müssen deswegen nicht die genauen erzeugten Annotationstypen und Attribute der Algorithmen betrachtet werden, sondern alle möglichen
99
5. Realisierung
von diesem Algorithmus erzeugbaren. So ist zum Beispiel Forecast ein Annotationstyp, dessen Supertyp RevenueStatement ist. Ein Algorithmus, der Forecast-Annotationen erzeugt, erzeugt daher gleichzeitig auch RevenueStatementAnnotationen, sowie alle weiteren Supertypen von RevenueStatement. Dies wird
dann bei der Bestimmung der für ein gegebenes Teilziel bestmöglichen Aktion,
und damit des bestmöglichen Algorithmus, berücksichtigt.
Normalisierung der Ziele des Planers
Ein weiteres Problem, welches sich aus der Verwendung von UIMA ergibt, ist die
Tatsache, dass von Algorithmen bereits verfügbare Annotationen als Attribute
von neuen Annotationen hinzugefügt werden können, ohne dass dies als Ausgabe
des jeweiligen Algorithmus beschrieben ist. Ein vom Benutzer verlangtes Ziel,
wie Forecast.author, wobei Forecast ein Annotationstyp und author ein Attribut
vom Typ Author ist, kann so von der gegeben Algorithmenmenge nicht erfüllt
werden. Es gibt keinen Algorithmus, der dieses Ziel direkt erfüllt (vgl. Tabelle
A.3 in Anhang A). Das bedeutet, der Planer könnte für ein solches Teilziel keine
geeignete Aktion finden. Die Planung würde fehlschlagen.
Daher muss ein Ziel wie Forecast.author anders behandelt werden. Der ForecastClassifier erzeugt Annotationen vom Typ Forecast. Der Annotationstyp Author
ist die Ausgabe des Algorithmus StatementAuthorFinder. Weiterhin erzeugt dieser
RevenueStatement.author Annotationen. In der Typenhierarchie (vgl. Abbildung
B.1 in Anhang B) ist RevenueStatement der Supertyp von Forecast. Das heißt,
das Attribut author wird von RevenueStatement an Forecast vererbt.
Die wesentliche Eigenschaft der verwendeten Algorithmen ist, dass diese bei der
Bestimmung eines konkreten Annotationstyps (entspricht einem Annotationstyp,
der tiefer in der Typenhierarchie liegt) alle bestehenden Attribute von den schon
vorhandenen Supertypen an die neu erstellten Annotationen anhängen und diese
dann durch die konkreten Annotationen der Subtypen ersetzen. Das bedeutet zum
Beispiel, dass der ForecastClassifier vorhandene RevenueStatement-Annotationen
durch Forecast-Annotationen ersetzt, wenn er meint, das entsprechende RevenueStatement sei ein Forecast. Die dabei schon am RevenueStatement hinzugefügten, konkreten Attribute werden auf die neue Forecast-Annotation übertragen. Damit kann der StatementAuthorFinder die RenvenueStatment.author Annotationen erstellen und der ForecastClassifier kann dann diese Annotationen zu
Forecast.author umwandeln. Somit ist hierdurch das initiale Problemziel Forecast.author zu erreichen.
Es kann noch eine zweite Situation geben. Hierbei findet der ForecastClassifier zuerst Forecast-Annotationen, denen dann der StatementAuthorFinder das
Attribut author hinzufügt. Dies ist zulässig, da Forecast eine Subklasse von RevenueStatement ist, und der StatementAuthorFinder diese Annotationen damit als
RevenueStatement behandeln kann. Damit steht auch in dieser Algorithmenreihenfolge am Ende das Ziel Forecast.author zur Verfügung.
Um diesen Umständen Rechnung zu tragen, werden die Ziele, die der Benutzer
100
5.4 Anpassungen an der Berechnung und Ausführung der IE-Pipeline
in das Expertensystem eingibt, in der folgenden Art und Weise modifiziert: Für
ein Ziel A.x, A Annotationstyp, x ein Attribut von A:
1. Bestimme den Supertypen S von A, von dem das Attribut x vererbt wurde.
2. Ersetze das Ziel A.x durch S.x und A, A ohne Attribut.
3. Bei mehreren als Ziel gesetzten Attributen (z.B. A.x, A.y) kann jedes Attribut einzeln entsprechend 1. und 2. in die neuen Zielformeln überführt
werden. Das Ergebnis ist eine Zielmenge. In dieser kommt jedes Element
nur einmal vor.
Für das Beispielziel Forecast.author ergeben sich dadurch die neuen Ziele Forecast
und RevenueStatement.author. Diese Ziele können direkt von Algorithmen der
verwendeten Algorithmenmenge erzeugt werden. Außerdem sind hiermit beide
weiter oben beschriebene Reihenfolgen der Algorithmen ForecastClassifier und
StatementAuthorFinder möglich.
Die Beweisidee hierfür:
1. Annotationstypen ohne Attribute in der Zielmenge werden von allen Algorithmen erzeugt, die diesen Annotationstypen mit beliebigem Attribut (also
auch ohne) erzeugen.
2. Wenn eine bereits vorhandene Annotation A von einem Supertyp X durch
die neue Annotation B des Subtyps Y ersetzt wird, so werden die bereits
bestehenden Attribute von A auf die neue Annotation B übertragen.
3. Da jeder Algorithmus, der als Eingabe einen Supertyp X von Y als Eingabe
braucht, auch Annotationen vom Typ Y selbst (also von allen Subtypen des
Supertyps) akzeptiert, kann er die von A auf B übertragenden Attribute
ebenfalls nutzen.
ODER-verknüpfte Ziele
Die Ziele, die der Planer und damit auch das Expertensystem betrachtet, sind
immer UND-verknüpft. Damit wird ausgedrückt, dass eine Pipeline immer alle
Textstellen mit den als Zielen angegebenen Annotationstypen finden soll. Vor
allem darf nur unter dieser Bedingung ein Herausfiltern von Textteilen, die diese
Annotationen nicht enthalten, unmittelbar nach dem Algorithmus, welcher eine
der gesuchten Annotationen finden kann, gemacht werden.
Bei ODER-verknüpften Zielen muss demgegenüber bei der Filterung darauf
geachtet werden, dass nicht auch Textstellen entfallen, die schon eine der gesuchten Annotationen enthalten. Hier ist es nicht wichtig, dass Textstellen gefunden
werden, die alle als Ziele angegebenen Annotationstypen enthalten, sondern mindestens einen dieser Typen.
Das von dieser Arbeit erstellte Expertensystem bietet nur die Möglichkeit der
UND-verknüpften Ziele an. Die Ergebnisse von ODER-verknüpften Zielen können
101
5. Realisierung
allerdings leicht simuliert werden. Dafür muss das Expertensystem nur mehrfach
mit jeweils einem der Ziele gestartet und die Ergebnisse am Ende wieder zusammengebracht werden. Hierbei wird für jedes ODER-verknüpfte Ziel eine eigene
IE-Pipeline konstruiert und ausgeführt. Die Integration dieser einzelnen Pipelines
in eine einzige, und somit die Vermeidung von redundanten Ausführungen der
einzelnen Algorithmen ist erstrebenswert. Allerdings liegt die Betrachtung einer
Lösung dieses Problems und etwaiger dadurch neu entstehender Probleme, außerhalb des Fokus dieser Arbeit und bleibt damit Ausgangspunkt für zukünftige
Arbeiten.
Problem der nicht vollständigen Maximum Decomposition
Ein weiteres Problem betrifft das aus Abschnitt 2.4 bekannte Paradigma Maximum
Decomposition. In der verwendeten Algorithmenmenge ist dieses Prinzip nicht
vollständig eingehalten worden. Das bedeutet es gibt Algorithmen, die mehr als
einen Annotationstyp finden. Für das Planungsproblem ergibt sich daraus, dass
Aktionen existieren, die mehr als einen Effekt haben.
Die Einschränkung, dass die komplette Algorithmenmenge nach dem Paradigma Maximum Decomposition zerlegt wurde, ist allerdings eine Voraussetzung des
in Abschnitt 4.1.3 beschriebenen Verfahrens zur Bestimmung des besten Algorithmus. Somit ist nicht immer die Optimalität der Ergebnisse sichergestellt.
Es ergibt sich noch ein weiteres Problem: Von einem Algorithmus bereits gefundene Annotationen und Attribute können von einem nachfolgenden, der die
gleichen Annotationstypen und Attribute erzeugt, überschrieben werden. Wenn
jeder Algorithmus nur eine Ausgabe hätte, so könnte dieser Fall nicht vorkommen, da in der berechneten Pipeline dann keine zwei Algorithmen, die beide das
selbe Teilziel erfüllen, auftreten können. Ein konkretes Beispiel für dieses Problem
sind der TTChunker und der MTPOSTagger (siehe Tabelle A.3, Anhang A). Der
TTChunker erzeugt wie der MTPOSTagger für Token das Attribut pos. Dabei ist
der MTPOSTagger effektiver aber ineffizienter. Der TTChunker ist allerdings der
einzige Algorithmus, der Token.chunks finden kann. Das bedeutet einen potenziellen Konflikt, wenn die Gesamtpipeline eine hohe Effektivität haben soll und
innerhalb dieser Pipeline sowohl Token.pos als auch Token.chunks gebraucht werden. Wird der TTChunker in der Pipeline nach dem MTPOSTagger ausgeführt,
so überschreibt er die bereits erstellten Token.pos Attribute. Da der TTChunker
allerdings dabei nicht so effektiv ist, wie der MTPOSTagger, kann die Effektivität
der Gesamtpipeline davon beeinträchtigt werden. Dieses Problem ergibt sich aus
der Implementierung der verwendeten IE- und NLP-Algorithmen. Somit kann es
von dieser Arbeit nicht gelöst werden.
Außerdem kann es vorkommen, dass nach der topologischen Sortierung eine IEPipeline entsteht, in der ein Algorithmus einen nachfolgenden Algorithmus dominiert. Ein Algorithmus dominiert einen anderen, wenn er alle möglichen Ausgaben
des dominierten Algorithmus umfasst und hinsichtlich der vom Benutzer gewählten Priorisierung mindestens so gut ist, wie der dominierte Algorithmus. Hierbei
102
5.4 Anpassungen an der Berechnung und Ausführung der IE-Pipeline
müssen zur Berechnung der Werte der akkumulativen Gütekriterien nicht mehr
alle möglichen Algorithmen betrachtet, sondern nur die in der Pipeline vor dem
entsprechenden Algorithmus befindlichen.
Dies ist zum Beispiel dann der Fall, wenn der TTChunker vor dem TTPOSLemmatizer ausgeführt werden soll. Der erstere erzeugt alle Ausgaben des letzteren
und er hat die gleiche Effektivität. Der TTPOSLemmatizer ist dagegen effizienter.
Dieser Effizienzvorteil ist allerdings nicht gegeben, wenn er hinter dem TTChunker
ausgeführt wird. Das Problem resultiert daraus, dass hier die gleiche Implementierung verwendet wird, die im Falle des TTChunker nur zusätzlich Token.chunks
erkennt.
Das Problem der nicht vollständigen Einhaltung der Maximum Decomposition
kann von dieser Arbeit nicht vollständig gelöst werden. Allerdings kann mittels
einer Optimierung nach der Bestimmung der IE-Pipeline dem Problem der Dominanz von Algorithmen begegnet werden. So muss für eine berechnete IE-Pipeline
überprüft werden, ob es Algorithmen gibt, die nachfolgende Algorithmen dominieren. Die dominierten Algorithmen werden dann aus aus der Pipeline entfernt.
Ein TTChunker, der vor dem TTPOSLemmatizer in einer Pipeline ausgeführt
werden soll, dominiert den hinteren. Er umfasst mit Token.lemma und Token.pos
dessen Ausgaben und ist von seiner Effektivität in Form von Accuracy genauso
gut wie der hintere. Allerdings ist sein Effizienzwert in Form der Average Sentence Response Time schlechter. Da bei der Berechnung der akkumulativen Werte
in diesem Fall aber nur die vor einem Algorithmus befindlichen anderen Algorithmen der Pipeline berücksichtigt werden, sind diese Laufzeitwerte bei denen des
TTPOSLemmatizer ebenfalls enthalten. Daher ist der TTChunker auch bezüglich
der akkumulativen Effizienz besser als der TTPOSLemmatizer und dominiert damit diesen. Der TTPOSLemmatizer wird daraufhin aus der Pipeline entfernt.
5.4.2 Realisierungsaspekte der Ausführung der IE-Pipeline
Bei der Ausführung der IE-Pipeline muss das verwendete IE-Framework in Form
von UIMA benutzt werden. Auch die Randbedingungsfilter (vgl. Abschnitt 4.1.5)
müssen implementiert und in dieses Framework mit integriert werden. Die IEPipeline-Ausführungskomponente ist damit die einzige Stelle im Expertensystem,
an der UIMA, und somit das IE-Framework, direkt benutzt wird.
Mögliche Randbedingungsfilter
Nachdem in Abschnitt 4.1.5 erläutert wurde wann und wo ein Filter in eine IEPipeline einzubauen ist, wird im Folgenden beschrieben, wie eine solche Filterung
durchgeführt werden kann. Hierbei werden von dieser Arbeit drei verschiedene
Filter festgelegt:
• Zahlenfilter: Ein Filter, der für eine Eingabe entscheidet, ob sie eine Zahl ist
und ob ihr Wert in festgelegten Grenzen liegt.
103
5. Realisierung
• Datumsfilter: Ein Filter, der für eine Eingabe entscheidet, ob sie ein Datum
darstellt und ob dieses Datum in einem bestimmten Zeitraum liegt.
• Textfilter: Ein Filter, der für eine beliebige Texteingabe entscheidet, ob sie
einem bestimmten regulären Ausdruck entspricht.
Die Eingabe eines Filters stellt den Text einer Annotation oder eines Attributs
dieser Annotation dar. Der Filter prüft, ob dieser Text den eben angegebenen,
jeweiligen Kriterien entspricht. Ist dies nicht der Fall, so wird die Textstelle der
Annotation heraus gefiltert und muss nicht mehr von nachfolgenden Algorithmen
der IE-Pipeline untersucht werden.
Prinzipiell ist es möglich, sowohl Zahlen als auch Zeiträume mithilfe eines regulären Ausdrucks zu prüfen. Daher könnte auch der Textfilter alleine genutzt
werden. Allerdings können die regulären Ausdrücke etwa für das Prüfen, ob eine
Eingabe in einem bestimmten Zeitraum liegt, sehr lang werden. Aus diesem Grund
sind sowohl Zahlen- als auch Datumsfilter zusätzlich zum Textfilter innerhalb des
Expertensystems verfügbar.
Diese Informationen werden, neben der eigentlichen Implementierung, auch in
der Ontologie festgehalten. So wird für jeden der drei Filter eine Instanz der
Ontologieklasse Filter gebildet. Die Eigenschaften der Filter werden durch Instanzen der Klasse FilterEigenschaft festgehalten. Der Zahlenfilter hat die Eigenschaften vonZahl, bisZahl. Der Datumsfilter bekommt die Eigenschaften von,
bis, sowie ein Format, in dem das Datum ausgedrückt wird. Der Textfilter besitzt die Eigenschaft regulärerAusdruck. Außerdem bekommen alle drei Filter mit
der hatImplementierungsKlasse-Eigenschaft einen Verweis auf ihre jeweilige JavaImplementierungsklasse, damit das Expertensystem sie in seinem Betrieb instantiieren kann. Durch die Angabe der Filtereigenschaften kann die grafische Oberfläche
des Expertensystems automatisch die zur Verfügung stehenden Filter und die für
diese Filter benötigten Eingaben aus der Ontologie ableiten und anzeigen.
Integration der Randbedingungsfilter in UIMA
Die Randbedingungsfilter müssen in UIMA integriert werden. Dazu wird jeder
Filter als eigenständige AE gesehen. Das Filtern selbst ist in den vom s-lab entwickelten UIMA-Strukturen bereits vorgesehen. Dazu sind alle verwendbaren IEund NLP-Algorithmen von einer abstrakten Basisklasse abgeleitet.
Eben diese Basisklasse ist damit auch die Basisklasse der entwickelten UIMAFilter. Die Filter enthalten dabei eine Instanz der eben aufgeführten Datums-,
Zahlen- oder Textfilter. Daneben muss jeder Filter wissen, welchen Annotationstyp und welches Attribut er filtern soll. Hier ergibt sich eine Schwierigkeit,
denn diese Parameter müssen auf eine persistente Art und Weise in den Filtern
verfügbar sein. Die einzige Möglichkeit, die Informationen den Filtern in UIMA
direkt zugänglich zu machen, besteht in der Unterbringung dieser Informationen in den XML-Deskriptoren. Innerhalb der Strukturen des Deskriptors können
104
5.4 Anpassungen an der Berechnung und Ausführung der IE-Pipeline
sogenannte Konfigurationsparameter hinterlegt werden. Daher werden die XMLDeskriptoren der als AE betrachteten Filter dynamisch vor der Ausführung der
Pipeline erzeugt.
Die Konfigurationsparameter umfassen sowohl den zu filternden Annotationstyp, als auch die Informationen, welche von dem jeweiligen Filter selbst benötigt
werden. Dies sind die vom Benutzer gesetzten Eigenschaften des Filters bezüglich
des zu filternden Zeitraums und des Datumsformat für den Datumsfilter, Zahlenbereiche für den Zahlenfilter oder der reguläre Ausdruck für den Textfilter. In einer
von UIMA im Vorfeld der Ausführung der Pipeline aufgerufenen Methode der Filterimplementierungen werden diese Parameter an die Filter übergeben. Während
der Ausführung der Pipeline sucht ein Filter dann alle von ihm zu filternden Annotationen am CAS -Objekt zusammen und filtert jedes einzeln, entsprechend dem
eingesetzten Datums-, Zahlen- oder Textfilter.
Die konkreten Filter sind damit stark vom eingesetzten IE-Framework UIMA
abhängig. Da diese Abhängigkeit der Ausführung einer Pipeline in UIMA geschuldet ist, sind sie Teil der IE-Pipeline-Ausführungskomponente geworden, wobei die
allgemeinen Implementierungen von Datums-, Zahlen- und Textfilter Teil des Datenmodells sind.
Aufbau und Ausführung einer Aggregate Analysis Engine
Wie in Abschnitt 5.1 beschrieben, entspricht eine AAE aus UIMA einer IEPipeline. Sie wird beschrieben durch ihre XML-Deskriptor Datei. Diese Datei wird
von UIMA zum Aufbau der Instanz einer IE-Pipeline benutzt. Dazu steht in der
Datei vor allem, welche einzelnen AEs, und damit Algorithmen, die Pipeline umfasst (ausgedrückt durch die Angabe des Pfades zu der entsprechenden Datei des
Deskriptors der AE). Insbesondere ist auch beschrieben, in welcher Reihenfolge
diese Algorithmen ausgeführt werden sollen.
Aus der berechneten IE-Pipeline muss also ein AAE-Deskriptor erzeugt und die
entsprechende AAE dann ausgeführt werden. Hierzu werden eine Reihe von XMLVorlagen dynamisch mit den Informationen aus den einzelnen Algorithmen gefüllt.
Dies betrifft vor allem, welcher AE-Deskriptor für den jeweiligen Algorithmus zu
verwenden ist, aber auch die Reihenfolge der Algorithmen in der Pipeline. Da,
wie in Abschnitt 5.2 erwähnt, die Eigenschaft hatImplementierungsklasse eines
Algorithmus den Pfad zu seinem Deskriptor beinhaltet, können aus der berechneten abstrakten Pipeline sehr einfach und schnell die benötigten Informationen
gewonnen werden. Weil die Filter, wie weiter oben bereits beschrieben, ebenfalls
Bestandteile der Pipeline sind, werden auch diese als AE aufgefasst und an den
entsprechenden Positionen im AAE-Deskriptor vermerkt. Ein Filter, der etwas
filtert, das nicht von einem Algorithmus erzeugt wird, wird an das Ende der entstehenden IE-Pipeline verschoben. Dies hat mit dem schon beschriebenen Aspekt
zu tun, dass manche Algorithmen bereits vorhandene Annotationen implizit und
von außen nicht sichtbar als ihre Attribute setzen können.
Eine Textmenge wird den Algorithmen in UIMA durch einen Collection Reader
105
5. Realisierung
Normalisieren der Ziele
Erzeugen des UIMA-Deskriptors
aus der abstrakten Pipeline
Planen der abstrakten Pipeline
Erzeugen der Aggregate Analysis Engine
Optimieren der abstrakten Pipeline
Ausführen der Aggregate Analysis Engine
Präsentieren der Ergebnisse
der Pipelineausführung
Abbildung 5.3: Aktivitätendiagramm des internen Arbeitsablaufs des Expertensystems
verfügbar gemacht. Hierfür stehen bereits vom s-lab entwickelte Komponenten
bereit. Der entsprechende Collection Reader wird anhand des Dateityps der vom
Benutzer spezifizierten Texte gewählt. Die drei vorhandenen Collection Reader
können HTML-, reine Text- sowie spezielle UIMA-XMI-Dateien, welche zum Beispiel schon manuell angebrachte Annotationen enthalten können, einlesen und den
Algorithmen zur Verfügung stellen.
Anschließend wird die AAE aus dem aufgebauten Deskriptor von UIMA erzeugt und auf jedem der vom entsprechenden Collection Reader gelieferten Texte
ausgeführt. Die Ergebnisse werden gesammelt und der grafischen Benutzerschnittstelle (in Form der Interviewerkomponente) zurückgegeben. Der gesamte Vorgang
der Konstruktion und Ausführung der IE-Pipeline ist noch einmal in Abbildung
5.3 dargestellt.
106
6 Implementierung
Dieses Kapitel stellt Teile der Implementierung vor, um die einfache Erweiterbarkeit und Anpassbarkeit der entwickelten Expertensystemarchitektur und ihrer
Komponenten zu zeigen. Diese Erweiter- und Anpassbarkeit sind aus der Zielsetzung in Kapitel 1 bekannte Ziele dieser Arbeit. In Abschnitt 6.1 wird eine
Verfeinerung der in Kapitel 4 vorgestellten Architektur des Expertensystems aufgezeigt. Einige Details der Implementierung von einzelnen Komponenten werden
vorgestellt, damit der Leser einen Überblick über die Ansatzpunkte bei einer etwaigen Anpassung oder Erweiterung des Expertensystems bekommt. In Abschnitt
6.2 werden dann direkte Möglichkeiten der Anpassbarkeit und der Erweiterung des
Gesamtsystems vorgestellt. Dabei wird vor allem gezeigt, dass das Expertensystem durch neue Elemente der Ontologie so erweitert werden kann, dass dafür keine
bis wenig Quellcodeanpassungen vorzunehmen sind.
Der Einblick in die Implementierung ist nicht vollständig. Er soll allerdings
deutlich machen, dass die hinsichtlich der Implementierung zu leistenden Ziele
erfolgreich von dieser Arbeit bearbeitet worden sind.
6.1 Implementierung der Expertensystemarchitektur
Bei der Implementierung und Entwicklung der Architektur des Expertensystems
und seiner einzelnen Komponenten stellt die in Abbildung 4.1 aus Kapitel 4 bekannte Konzeption der Expertensystemarchitektur die Basis dar. Weiterhin sind
die in Kapitel 4 und 5 aufgezählten Eigenheiten, wie die Berücksichtigung von
UIMA, in die Implementierung mit eingeflossen. Die Implementierung selbst ist
in der Programmiersprache Java erfolgt.
Abbildung 6.1 zeigt eine Übersicht über die entstandene Architektur des Expertensystems. Dieses wurde in zwei grundlegende Komponenten aufgeteilt. Das
ExpertSystemFrontend beinhaltet die grafische Oberfläche des Expertensystems.
Sie enthält die Funktionalitäten der Interviewer- und Erklärungskomponente, die
in einer eigenständigen Form im Expertensystem nicht vorkommen. Die Protokollierung wird mithilfe der Apache Log4J API 1 durchgeführt. Die Logeinträge
werden mit einer GUI angezeigt.2 Die Komponente ExpertSystemCore enthält die
Funktionalität der Problemlösungskomponente (ProblemSolver ) und der Wissenserwerbskomponente (OntologyImporter ). Das Datenmodell (Datamodel ) und die
1
2
http://logging.apache.org/log4j/
Die GUI ist mithilfe der Swing API von Java erstellt worden: http://docs.oracle.com/
javase/6/docs/technotes/guides/swing/
107
6. Implementierung
package Data[
Architekturuebersicht ExpertSystem ]
«component»
ExpertSystemFrontend
Zum Loesen des Problems und
Bezieht Daten fuer die GUI
zum Importieren von neuen Ontologieinformationen
ExpertSystemCore
«component»
ExpertSystemCore
«component»
ProblemSolver
«component»
OntologyImporter
«component»
GoalNormalizer
«component»
PartialOrderPlanner
«component»
Linearization
«component»
AlgorithmSelector
«component»
PipelineOptimizer
«component»
PipelineExecutor
«use»
«component»
Datamodel
Ontology
Baut Ontologie mit neuen Informationen auf
«component»
Ontology
Abbildung 6.1: Architekturübersicht des Expertensystems
108
6.1 Implementierung der Expertensystemarchitektur
package Data[
Schnittstelle ExpertSystemCore ]
ExpertSystemCore
+List<TextType> calculateResults( Problem problem )
+void importOntology( ImportJob importJob )
Problem
-List<Type> goals
-List<Filter> filter
-QualityCriteriaOrder qualityCriteriaOrder
-URI textFilesUri
-QualityCriterion linearizationQualityCriterion
-String pipelineName
ImportJob
TextType
-File instancesFile
-Model baseModel
-String coveredText
-Map<Feature - String> featureText
Abbildung 6.2: Schnittstelle des Expertensystems
Wissensbasis (Ontology) sind separate Komponenten. Sowohl ExpertSystemCore,
als auch das ExpertSystemFrontend greifen auf die Informationen der Ontologie
über das Datamodel zu. Das ExpertSystemFrontend benötigt dabei die Informationen zum Anzeigen der Einstell- und Auswahlmöglichkeiten für den Benutzer in
der grafischen Oberfläche.
Die Schnittstelle von ExpertSystemCore ist in Abbildung 6.2 dargestellt. Es werden zwei Methoden bereitgestellt. Die erste Methode berechnet für ein gegebenes
Problem eine Lösung (calculateResults). Konkret bedeutet dies, dass aus den vom
Benutzer in der Eingabemaske der grafischen Oberfläche vorgenommenen Einstellungen eine Instanz der Problem-Klasse erstellt und dann dem ExpertSystemCore
übergeben wird. Die entsprechenden Attribute der Problem-Klasse entsprechen
den aus Abschnitt 4.3 bekannten, notwendigen Eingaben des Benutzers. Die meisten dieser Attribute haben einen Typ des entwickelten Datenmodells (sie werden
im noch folgenden Abschnitt 6.1.2 erklärt). Durch die Angabe des Dateipfades zu
den zu untersuchenden Texten als URI ist es prinzipiell möglich, auch Webadressen
anzugeben, bei denen diese Texte liegen. Dazu ist nur ein spezieller CollectionReader notwendig (siehe Abschnitt 5.4.2). Die Methode calculateResults gibt eine
Liste von TextType zurück. Diese Liste enthält die gefundenen Annotationen für
die vom Benutzer eingestellten Ziele.
Die zweite Methode importOntology veranlasst ExpertSystemCore, seine Ontologie um neue Informationen zu erweitern. Hierzu wird ein ImportJob-Objekt
übergeben, das einen Verweis auf eine zu importierende Datei enthält. Außerdem
kann ein schon existierendes Ontologiemodell als Basis genutzt werden. Durch die
Benutzung von UIMA wurde eine Spezialisierung von ImportJob eingeführt, der
UimaImportJob. Diese Klasse erweitert ImportJob um die Attribute typeSystemsDescriptor, wodurch ein Verweis auf das zu verwendende Typensystem möglich
ist, und analysisEngineDescriptorDirectory, mit dessen Hilfe das Basisverzeichnis
für die Deskriptoren angegeben werden kann.
Der große Vorteil von der Trennung zwischen der grafischen Benutzeroberfläche
einerseits und den Kernfunktionalitäten des Expertensystems andererseits liegt
109
6. Implementierung
getPropertyValue(subjectUri : Str, propertyUri : Str) : Object
addProperty(subjectUri : Str, propertyUri : Str, objectUri : Str) : void
createIndividual(uri : Str, ontologyClass : Str) : void
getIndividualsOfClass(ontologyClassUri : Str) : Set<Str>
getIndividuals(ontologyClassUri : Str, propertyUri : Str, value : Str) : Set<Str>
Tabelle 6.1: Beispielmethoden der Ontologieschnittstelle. Str steht für String.
in der dadurch einfachen Anpass- und Erweiterbarkeit an neue Umgebungen. So
kann das Expertensystem zum Beispiel sehr einfach in einen Webservice integriert werden. In diesem Fall ist eine grafische Benutzeroberfläche nicht notwendig. Die ExpertSystemFrontend Komponente könnte demnach durch Funktionen
des Webservices ersetzt werden, die dann das Expertensystem steuern.
6.1.1 Implementierungsdetails der Ontologie
Die Wissensbasis des Expertensystems besteht aus der in Abschnitt 4.2 vorgestellten OWL-Ontologie. Für die Arbeit mit dieser Art von Ontologie wird das Jena 3
Ontologie-Framework eingesetzt. Jena bietet einfache Möglichkeiten im Umgang
mit OWL-Ontologien, sowohl was das Erstellen neuer, als auch das Abfragen von
bestehenden Ontologieelementen betrifft. Für das Abfragen der Ontologie wird
das in Jena integrierte Standard-Schlussfolgerungswerkzeug (vgl. Abschnitt 2.3.1)
genommen, was, wie bereits in Abschnitt 4.2.2 erwähnt, für die genutzte, einfache
Ontologie vollkommen ausreicht. Allerdings bietet Jena Möglichkeiten, um den
gewählten Reasoner schnell und einfach bei Bedarf austauschen zu können, falls
die Ontologie erweitert wird und damit eine höhere Komplexität erreicht.
Für den Zugriff von außen ist die Ontologie durch eine Schnittstelle gekapselt. Dies bietet den großen Vorteil, dass bei Bedarf die komplette Ontologie ausgetauscht werden kann. Dabei könnte die bestehende OWL-Ontologie zum Beispiel durch eine Ontologie mit weniger oder mehr Ausdrucksmöglichkeiten ersetzt
werden. Die Kapselung macht auch den kompletten Verzicht auf eine Ontologie
möglich. So ist als Datenspeicher etwa auch eine relationale Datenbank vorstellbar,
falls sich dies in Zukunft als notwendig herausstellen sollte (etwa weil die Menge
an Informationen in der Ontologie zu groß oder die Arbeit mit ihr zu langsam
wird). Das Expertensystem ist an dieser Stelle also einfach änderbar.
Einige Methoden der Ontologieschnittstelle sind in Tabelle 6.1 exemplarisch aufgeführt. Alle Elemente der Ontologie sind durch einen URI benannt. Somit kann
mittels der Methode getPropertyValue für ein durch subjectUri identifiziertes Element der Ontologie der Wert einer zugehörigen und durch objectUri identifizierten Eigenschaft bestimmt werden. Eine Verknüpfung zwischen zwei Elementen der
Ontologie über eine Eigenschaft, etwa die in Abschnitt 4.2.1 aufgeführte hatAnnotationstyp-Eigenschaft, kann mittels der Methode addProperty angelegt werden.
3
http://incubator.apache.org/jena/
110
6.1 Implementierung der Expertensystemarchitektur
Ein neues Individuum einer Klasse wird mit der Methode createIndividual erstellt.
Alle Individuen einer bestimmten Klasse können über die Methode getIndividualsOfClass bezogen werden. Dagegen lassen sich mit getIndividuals Individuen herausfinden, die eine Eigenschaft haben, welche einen mit value bezeichneten Wert
besitzt. Die Aufzählung der Schnittstellenmethoden ist nicht vollständig und soll
nur die wesentlichen Konzepte, allen voran das der Identifizierung der Ontologieelemente über URIs, aufzeigen. Weitere Details zur Ontologie-Komponente sind
als UML-Klassendiagramm in Abbildung C.5 in Anhang C dargestellt.
6.1.2 Implementierungsdetails des Datenmodells
Das Datenmodell kapselt die Zugriffe der Problemlösungskomponente und des ExpertSystemFrontend auf die Wissensbasis und macht das in der Ontologie gehaltene Wissen für die Berechnung und Ausführung der IE-Pipeline verfügbar (vgl.
Abschnitt 4.2.4). Folgende Datenklassen existieren im Datenmodell:
• Algorithm: Enthält Informationen über ein bestimmtes Individuum der Klasse Algorithmus aus der Ontologie.
• Type: Enthält Informationen über ein bestimmtes Individuum der Klasse
Annotationstyp der Ontologie.
• Feature: Enthält Informationen über ein bestimmtes Individuum der Klasse
Attribut der Ontologie.
• QualityCriterion: Enthält Informationen über ein bestimmtes Individuum
der Klasse Gütekriterium der Ontologie.
• QualityCriteriaOrder : Mit dieser Klasse werden die Priorisierungen aus der
Ontologie abgebildet.
• QualityCriterionValue: Stellt einen Wert für ein Gütekriterium für einen
bestimmten Algorithm bereit.4
• FilterInformation: Enthält Informationen über einen Filter, wie die konkrete
Filterklasse und Eigenschaften des Filters.
Die Datenklassen werden im gesamten Expertensystem verwendet. Damit ist es
möglich, das Schlussfolgern in und Arbeiten mit der Ontologie auf ein Minimum
zu reduzieren und somit eine potenzielle Ausbremsung des Systems durch langsame Ontologiezugriffe zu vermeiden. Aufgebaut werden die Datenklassen von
Helferklassen. Die einzelnen Instanzen der Algorithm-Klasse werden von einem
4
An dieser Stelle unterscheidet sich die Implementierung im Datenmodell von der eingesetzten
Ontologie aus Abschnitt 4.2.1. Wird die Verknüpfung von Wert und Gütekriterium in der
Ontologie über die Klasse Güte modelliert, so wird dies in der Implementierung über eine
Abbildung QualityCriterion auf QualityCriterionValue innerhalb eines Algorithm-Objektes
implementiert.
111
6. Implementierung
AlgorithmHelper mittels der Informationen der Ontologie aufgebaut. Ein TypeHelper ist für das Aufbauen der Typenhierarchie, bestehend aus Type- und Feature-Instanzen, zuständig. Er bietet außerdem noch Hilfe im Umgang mit den
Type- und Feature-Instanzen an, zum Beispiel, ob ein bestimmtes Attribut von
einem Supertyp vererbt wurde. Ein QualityCriterionHelper baut die einzelnen
Gütekriterien in Form von QualityCriterion mit den Informationen der Ontologie
auf. Über die Helferklasse FilterHelper können die in der Ontologie hinterlegten
Informationen über die Filter abgerufen werden.
Es werden alle zum Aufbau der Eingabemaske der grafischen Oberfläche notwendigen Informationen von der Komponente ExpertSystemFrontend mithilfe der
Helferklassen des Datenmodells ermittelt. Der FilterHelper liefert beispielsweise
die notwendigen Informationen über die im Expertensystem verfügbaren Filter
und deren Eigenschaften, wie etwa den regulären Ausdruck eines Textfilters.
Die vier Helferklassen AlgorithmHelper, FilterHelper, QualityCriterionHelper
und TypeHelper sind als Singletons implementiert. Dies bedeutet, es gibt im gesamten System jeweils nur eine Instanz von ihnen, die über eine statische Methode
an der entsprechenden Klasse bezogen werden kann. Der Konstruktor dieser Klassen ist dementsprechend von außen nicht direkt aufruf- oder sichtbar. Dies bietet
den Vorteil, dass die Schnittstellen der einzelnen Komponenten einfacher gehalten werden können, da nicht immer die einzelnen Helferinstanzen durchgereicht
werden müssen. Die Nachteile sind die statischen Abhängigkeiten zwischen den
einzelnen Komponenten und den Singletons. Außerdem müssen die Singletons vor
Verwendung die Ontologie übergeben bekommen. Dazu ist eine eigene, statische
Methode implementiert. Das Initialisieren der Singletons übernimmt eine statische
Klasse Datamodel deren Methode initDatamodel die verwendete Ontologieinstanz
übergeben bekommt und damit die Singletons initialisiert.5
Auf alle Einzelheiten der Helferklassen einzugehen, würde den Rahmen dieser Arbeit übersteigen. Auf einige Besonderheiten wird allerdings in Abschnitt
6.2 noch näher eingegangen. Im Anhang sind in den Abbildungen C.1, C.2, C.3
und C.4 Details zu den einzelnen Klassen des Datenmodells in Form von UMLKlassendiagrammen dargestellt.
6.1.3 Implementierungsdetails der Berechnung und
Ausführung der IE-Pipeline
Die Komponente ProblemSolver stellt die Problemlösungskomponente des Expertensystems dar. Für die Umsetzung der topologischen Sortierung wurde das
Graph-Framework JGraphT 6 benutzt. Es bietet einfache Möglichkeiten für das
Erstellen von Graphen, das Umkehren der Kanten in Graphen und die Berechnung der transitiven Hülle.
Innerhalb der Komponente ProblemSolver befinden sich die Komponenten, die
5
6
Für mehr Informationen über Singletons siehe zum Beispiel [ES07].
http://www.jgrapht.org/
112
6.1 Implementierung der Expertensystemarchitektur
package Data[
ArchitekturdetailsProblemSolver ]
«component»
ExpertSystemCore
Zum Loesen des Problems
ProblemSolver
Zum Normalisieren der Ziele
«component»
ProblemSolver
Zum Optimieren der IE-Pipeline
Zum Berechnen der IE-Pipeline
GoalNormalizer
«component»
GoalNormalizer
Planner
PipelineOptimizer
«component»
PartialOrderPlanner
Zum Linearisieren des partiellen
Plans
Linearization
«component»
Linearization
Zum Ausfuehren der IE-Pipeline und zum Erhalt der Resultate
«component»
PipelineOptimizer
PipelineExecutor
«component»
PipelineExecutor
Zum Auswaehlen der besten Algorithmen waehrend des Planens
AlgorithmSelector
«component»
AlgorithmSelector
Abbildung 6.3: Die Komponenten des ProblemSolver
die in Abschnitt 4.1 und 5.4 vorgestellten Verfahren umsetzen. Dies betrifft vor
allem den angepassten Partial Order Planner, aber auch Komponenten für die
Ausführung der durch den Planer erstellen Pipeline (PipelineExecutor ). Die in Abschnitt 5.4.1 angesprochenen Aspekte der Zielanpassung im Vorfeld der Planung
und der Entfernung von dominierten Algorithmen aus der berechneten Pipeline
sind in der Komponente GoalNormalizer beziehungsweise PipelineOptimizer implementiert worden.
Die Notwendigkeit des GoalNormalizer und des PipelineOptimizer ergibt sich
aus dem in Abschnitt 5.4.1 angesprochenen Problem der nicht vollständigen Umsetzung des Paradigmas Maximum Decomposition bei den zur Verfügung stehenden Algorithmen. Andere Algorithmen, und auch andere IE-Frameworks, können
andere Optimierungen benötigen. Durch die eingesetzte Modularisierung sind diese Optimierungen sehr einfach in das bestehende Expertensystem einzufügen.
Der Partial Order Planner nutzt seinerseits die Funktionen der Komponenten Linearization und AlgorithmSelector. Während die erste Komponente das in
Abschnitt 4.1.4 besprochene Verfahren der angepassten topologischen Sortierung
eines partiellen Plans enthält, verwirklicht letztere das in Abschnitt 4.1.3 besprochene Auswahlverfahren des besten Algorithmus in einem Planungsschritt des Partial Order Planner. Durch den modularen Aufbau des Planers lassen sich sowohl
die eingesetzte topologische Sortierung, als auch die Auswahl eines besten Algorithmus einfach und unabhängig vom Planer selbst anpassen. So könnte es zum
Beispiel sein, dass eine Komponente entwickelt wird, die die Filterrate der einzelnen Algorithmen im Vorfeld bestimmen kann. Wie in Abschnitt 4.1.4 vorgestellt,
wird in dieser Arbeit nicht die eigentliche Definition eines optimierten Schedu-
113
6. Implementierung
les genutzt, weil eben jene Filterraten nicht von diesem Expertensystem bestimmt
werden können. Dementsprechend kann durch den modularen Aufbau sehr einfach
das Verfahren der topologischen Sortierung angepasst oder ausgetauscht werden,
wenn diese Informationen in Zukunft zur Verfügung stehen.
Eine Abbildung der Abhängigkeiten zwischen den Komponenten des ProblemSolver ist in Abbildung 6.3 dargestellt. Die internen Details des ProblemSolver
sind im Anhang in Abbildung C.7 in Form eines UML-Klassendiagramms zu finden. Außerdem ist im Anhang in Abbildung C.8 ein Sequenzdiagramm zu finden,
das einen exemplarischen Durchlauf durch den ProblemSolver beim Anstoßen des
Expertensystems zeigt. Die Aspekte des OntologyImporter wurden bereits in Abschnitt 5.2 vorgestellt. Im Anhang sind die Details dieser Komponente als UMLKlassendiagramm in Abbildung C.6 dargestellt.
6.2 Möglichkeiten zur Erweiterung des
Gesamtsystems
Neben den bereits in den vorherigen Abschnitten und Kapiteln aufgeführten Möglichkeiten zur Erweiterung des Expertensystems, sollen im Folgenden noch exemplarisch einige weitere Besonderheiten des Expertensystem aufgeführt werden, die
mit seiner Anpassbarkeit und Erweiterbarkeit in Verbindung stehen.
6.2.1 Wechseln des IE-Frameworks
Die Komponente ProblemSolver ist für die gesamte Berechnung der IE-Pipeline
und der Ergebnisse ihrer Ausführung zuständig. Von außen ist dabei nicht ersichtlich, und auch unwichtig, mit welchem Verfahren die Pipeline bestimmt oder
welches IE-Framework eingesetzt wird. Dies bietet den Vorteil, dass das Verfahren
oder das Framework ausgetauscht werden kann. Diese einfache Anpassbarkeit ist
nur durch die durchgeführte Trennung von Pipelineberechnung und -ausführung
möglich. Somit kann zum Beispiel ein anderes IE-Framework eingesetzt werden,
ohne das Planungsverfahren anpassen zu müssen. Hierzu sind nur die für das
Framework verwendeten Informationen in die Ontologie hinein zu kodieren. Das
bedeutet, die Informationen werden mithilfe der Elemente der Ontologie ausgedrückt. Dafür kann etwa ein neuer OntologyImporter entwickelt werden, der genau
an das einzusetzende Framework angepasst ist. Außerdem muss dann die PipelineExecution-Komponente neu geschrieben werden. Diese Komponente wandelt
eine abstrakte Pipeline, die eine Liste von Algorithm-Objekten darstellt, in eine
konkrete Pipeline des verwendeten Frameworks um. Die Pipeline wird von dem
Framework ausgeführt und die Ergebnisse müssen wieder zurück an das Expertensystem geleitet werden. Das Planungsverfahren selbst kann dabei unberührt
bleiben. Aufgrund der Eigenheiten des in dieser Arbeit verwendeten Frameworks
wurden die Komponenten PipelineOptimizer und GoalNormalizer entwickelt. Daher kann nicht ausgeschlossen werden, dass mit einem neuen Frameworks auch
114
6.2 Möglichkeiten zur Erweiterung des Gesamtsystems
neue Anpassungen dieser beiden Komponenten erforderlich werden könnten.
6.2.2 Erweiterung der Ontologie
Neben der Entwicklung von neuen Komponenten oder der Anpassung bestehender Komponenten, kann das Expertensystem außerdem noch durch Erweitern der
Ontologie angepasst werden. Hierbei sind nicht die zum Beispiel von einem OntologyImporter hinzugefügten Informationen um Typenhierarchie und verfügbare
Algorithmen gemeint, sondern die Basisontologie selbst. Hierzu werden die in Abschnitt 4.2.1 und 5.3 vorgestellten Elemente der Ontologie benutzt. Ausgenutzt
wird hierbei vor allem, dass die Helferklassen des Datenmodells dynamisch die
Informationen aus der Ontologie extrahieren, also diese Informationen nicht fest
implementiert sind.
So können auf einfache Art und Weise neue Gütekriterien in der Ontologie definiert werden, die dann automatisch vom Expertensystem benutzt werden. Hierzu
wird ein neues Individuum der Klasse Effektivitätskriterium oder Effizienzkriterium, welche beide Subklassen von Gütekriterium sind, angelegt. Zum Beispiel lässt
sich ein Individuum Speicherplatzbedarf der Klasse Effizienzkriterium anlegen. Anschließend wird diesem Individuum die Eigenschaft hatOrdnung mit dem Objekt
KleinererWertIstBesser zugewiesen. Damit ist bei der Verwendung der Werte dieses neuen Gütekriteriums sichergestellt, dass ein kleinerer Speicherplatzbedarf bevorzugt wird, wenn etwa der Speicherplatzbedarf von zwei Algorithmen verglichen
wird. Die Eigenschaft hatName des neuen Individuums wird auf Speicherplatzbedarf gesetzt. Außerdem wird durch das Verknüpfen mit der Eigenschaft istVerrechenbar und dem Wert wahr ausgedrückt, dass bei der Bestimmung des besten
Algorithmus oder des besten Filterverfahrens durch die AlgorithmSelector - beziehungsweise Linearization-Komponente die einzelnen Speicherplatzbedarfswerte
der Algorithmen aufaddiert werden, um den besten Wert zu bestimmen.
Damit ist das neue Gütekriterium vollständig in die Ontologie eingefügt worden und kann nun verwendet werden. Hierzu wird einem beliebigen Algorithmus
eine neue Güte über die Eigenschaft hatGüte zugewiesen. Diese Güte bekommt
als Eigenschaft hatGütekriterium das neue Gütekriterium Speicherplatzbedarf zugewiesen. Außerdem kann mittels der Eigenschaft hatKonkretenWert ein Wert für
die Güte festgelegt werden. Das Expertensystem wird das neue Gütekriterium direkt berücksichtigen. Weitere Anpassungen, etwa am Quellcode selbst, sind nicht
vorzunehmen.
Damit das Gütekriterium für die Bestimmung eines besten Algorithmus während
des Planens Berücksichtigung findet, muss mindestens eine neue Priorisierung
erstellt werden. So muss zum Beispiel für die gewünschte Priorisierung 1. Speicherplatzbedarf 2. Average Sentence Response Time 3. Accuracy ein Individuums
der Klasse Priorisierung erstellt werden. Für jede Priorität wird dann eine eigenes Individuum der Klasse Priorität folgendermaßen angelegt: SpeicherplatzbedarfPriorität verweist mittels einer Eigenschaft hatNachfolger auf AverageSentenceResponseTimePriorität und diese auf AccuracyPriorität. Jede der Prioritäten
115
6. Implementierung
bekommt durch die Eigenschaft hatKriterium das entsprechende Gütekriterium
zugewiesen. Bei SpeicherplatzbedarfPriorität ist dies das eben angelegte Speicherplatzbedarf Gütekriterium. Das Priorisierungindividuum kann dann mittels der
Eigenschaft hatPrioritätsreihenfolge mit dem ersten Element der Prioritätsreihenfolge, SpeicherplatzbedarfPriorität, verbunden werden. Als Letztes muss die neue
Priorisierung einer der in Abschnitt 4.1.3 vorgestellten Priorisierungen mittels der
impliziert-Eigenschaft zugewiesen werden. Das kann zum Beispiel die Priorisierung
1. Average Sentence Response Time 2. F-Measure 3. Recall (AFR-Priorisierung)
sein. Damit ist eine neue Priorisierung dem Expertensystem hinzugefügt worden.
Bei Wahl der AFR-Priorisierung in der grafischen Oberfläche wird, bei entsprechend mit dem neuen Gütekriterium versehenen Algorithmen, der Speicherplatzbedarf bei der Auswahl des besten Algorithmus berücksichtigt. Weiterhin ist es
auch noch möglich das verwendete Effizienzkriterium Average Sentence Response
Time in den Hauptpriorisierungen durch das neue Speicherplatzbedarf Kriterium
zu ersetzen.
116
7 Evaluierung
Die in diesem Kapitel durchgeführte Evaluierung soll zeigen, wie gut die umgesetzten Konzepte dieser Arbeit in der Praxis funktionieren. Dazu wird in Abschnitt 7.1 zuerst dargelegt, dass die entwickelten Verfahren grundsätzlich richtige
Ergebnisse, im Sinne des vom Benutzer spezifizierten Problems, liefern. Neben
der allgemeinen Darstellung der Funktionalität wird dabei auf die Evaluierung
des Algorithmenauswahlproblems, der topologischen Sortierung und des Filteransatzes aus den Abschnitten 4.1.3, 4.1.4 und 4.1.5, sowie die in Abschnitt 5.4.1
vorgestellten Lösungen für die Normalisierung der Eingangsziele hinsichtlich der
verwendeten Typenhierarchie und die Beseitigung von dominierten Algorithmen
eingegangen. Auf das in Teilen durch die Beseitigung von dominierten Algorithmen gelöste Problem der nicht vollständigen Zerlegung der Algorithmen wird in
Abschnitt 7.2 dann noch einmal gesondert eingegangen.
Die komplette Evaluierung in dieser Arbeit wurde auf folgender Hard- und Softwarekonfiguration durchgeführt:
• Betriebssystem: Windows 7
• Prozessor : AMD Phenom II X4 955 3,20 GHz
• Arbeitsspeicher : 4 Gigabyte
• Java Version: JDK 1.7.0 02
In die Ontologie des Expertensystems sind die Informationen aus der im Anhang in
Abbildung B.1 abgebildeten Typenhierarchie und der in Tabelle A.3 aufgezählten
Algorithmen für die Evaluierung importiert und bereits vorhanden.
7.1 Evaluierung der Funktionalität des entwickelten
Expertensystems
Bei der Evaluierung der Funktionalität geht es darum zu zeigen, dass das Expertensystem eine korrekte IE-Pipeline für die Eingaben des Benutzers berechnet
und ausführt. Die Korrektheit bezieht sich auf bestimmte Eigenschaften der berechneten Pipeline. Diese soll aus den Zielvorgaben des Benutzers berechnet worden sein. Weiterhin müssen bei der Berechnung die aufgestellten Randbedingungen bezüglich Einschränkungen der Ergebnismenge (durch Filter, vgl. Abschnitt
4.1.5) und Anforderungen an die Qualität der IE-Pipeline (durch die Einhaltung
117
7. Evaluierung
Algorithmus
Eingabe
Ausgabe
Güte
WhitespaceTokenizer
PlainText
Sentence, Token,
Filtered
ASRT
0, 04
TimeRecognizer
Token, Sentence
TimeExpression
ASRT
F1
R
P
0, 36
0, 94
0, 97
0, 91
TTPOSLemmatizer
Token
Token(lemma; pos)
ASRT
Acc
0, 30
0, 97
ForecastClassifier
Filtered,
TimeExpression,
Token(lemma; pos)
Forecast
ASRT
Acc
0, 29
0, 93
MoneyRecognizer
Token, Sentence
MonetaryExpression
(types)
ASRT
F1
R
P
0, 64
0, 97
0, 95
0, 99
MTFastDepedencyParser
Token(lemma; pos),
Sentence
Token(dependency;
parent)
ASRT 54, 61
LAS
0, 87
TimeMoneyRERB
Token(dependency;
lemma; parent; pos),
MonetaryExpression,
TimeExpression,
Filtered, Sentence
FinancialStatement
(timeExpression;
monetaryExpression)
ASRT
F1
R
P
0, 02
0, 77
0, 88
0, 69
Tabelle 7.1: Die in der Pipeline Πeval vorkommenden IE- und NLP-Algorithmen. In
der Spalte Güte sind Gütekriterium und Wert der Güte zusammengefasst
dargestellt. ASRT = Average Sentence Response Time; Acc = Accuracy;
F1 = F-Measure; R = Recall; P = Precision; LAS = Labeled Attachement
Score
der angegeben Prioritätsreihenfolge, vgl. Abschnitt 4.1.3) beachtet sein. Die Methoden zur Erstellung von effizienten IE-Pipelines bei der Berechnung der IEPipeline sollen ebenfalls angewendet und berücksichtigt sein. Bei der Berechnung
und Ausführung sind also die in Kapitel 4 und 5 vorgestellten Verfahren und
Lösungsansätze zu berücksichtigen. Daher wird auf die Evaluierung des Lösungsansatzes für die Auswahl eines Algorithmus in einem Planungsschritt(Abschnitt
7.1.2) und der Erfüllung der Randbedingungen durch Filter (Abschnitt 7.1.3) genauer eingegangen. Begonnen wird mit der Vorstellung einer berechneten Pipeline
Πeval , die dann eingehender analysiert wird. Die in dieser Pipeline befindlichen Algorithmen sind mit ihren benötigten Ein- und erzeugten Ausgaben, sowie ihren
Effektivitäts- und Effizienzgütekriteriumswerten in Tabelle 7.1 aufgezählt.
118
7.1 Evaluierung der Funktionalität des entwickelten Expertensystems
7.1.1 Analyse einer berechneten IE-Pipeline
Im Folgenden soll ein Beispiel von der Angabe der durch den Benutzer spezifizierten Eingaben, über die Berechnung des Abhängigkeitsgraphen und der resultierenden IE-Pipeline Πeval , bis zu den nach der Ausführung dieser IE-Pipeline
vorhandenen Ergebnissen gezeigt und analysiert werden.
In der grafischen Oberfläche des Expertensystems sind dazu folgende Eingaben
gemacht worden:
• Als Priorisierung für die Auswahl der Algorithmen wurde gewählt: 1. Average Sentence Response Time 2. F-Measure 3. Recall. Dies entspricht dem
Punkt tF1 R aus Abbildung 4.3 in Abschnitt 4.1.3.
• Für die topologische Sortierung wurde festgelegt, dass die Average Sentence
Response Time der Filterverfahren für die Bestimmung des besten Filterverfahrens genutzt wird (vgl. Abschnitt 4.1.4).1
• Das Ziel, welches die zu berechnende Pipeline erfüllen soll, ist es, Zeitaussagen von Marktvorhersagen zu bestimmen. Dementsprechend wurde Forecast
als Annotationstyp und sein Attribut timeExpression als Ziel ausgewählt.
• Die Textmenge, in welcher die berechnete Pipeline nach Marktvorhersagen
suchen soll, ist die Testmenge des Revenue Korpus, welcher zur Evaluierung der in [WPS10] erstellten IE-Pipeline diente, und aus 188 Dokumenten
besteht.
Auf diesen Eingaben ist das Expertensystem gestartet worden. Die Ausführung der
berechneten Pipeline auf dem angegebenen Teil-Korpus liefert 213 Ergebnisse. Ein
Ergebnis hat dabei die Form: Text für Forecast, Text für Attribut timeExpression.
Ein Beispiel für ein Ergebnis ist:
Text für Forecast: 2010 rechnet iSuppli aber wieder mit einem Wachs”
tum von 4,7 Prozent.“
Text für Attribut timeExpression: 2010
Normalisierung der Ziele
Der erste Schritt des Expertensystems ist die Normalisierung der Ziele für den
Partial Order Planner, wie in Abschnitt 5.4.1 vorgestellt. Im Beispiel wird daher
das eingegebene Ziel Forecast.timeExpression vom Expertensystem in die Zielmenge {FinancialStatement.timeExpression, Forecast} umgewandelt. Dies ist korrekt,
denn es gibt keinen Algorithmus in der vorhandenen Algorithmenmenge, der Forecast mit dem Attribut timeExpression direkt erzeugt. Daher versucht das Expertensystem einen Algorithmus zu identifizieren, der einen Supertypen von Forecast
mit dem Attribut timeExpression als Ausgabe hat.
1
Hiermit ist gemeint, dass der Benutzer das Kriterium, anhand dessen die topologische Sortierung ausgeführt werden soll, frei bestimmen kann.
119
7. Evaluierung
Aus der verwendeten Typenhierarchie ist ersichtlich, dass RevenueStatement
der direkte Supertyp von Forecast ist. Allerdings existiert auch kein Algorithmus,
der RevenueStatement mit dem Attribut timeExpression direkt erzeugt. Aus diesem Grund muss das Expertensystem in der Typenhierarchie den nächst höheren
Supertypen von RenvenueStatement identifizieren. Dies ist FinancialStatement.
Gleichzeitig weiß das Expertensystem auch, dass dies der letztmögliche Annotationstyp sein kann, für den es einen Algorithmus gibt, der diesen Typ als Ausgabe
hat. Der Grund hierfür ist das erstmalige Auftauchen des Attributs timeExpression an diesem Typ. Es existiert demnach kein Supertyp von FinancialStatement,
welcher dieses Attribut besitzt. Das Expertensystem würde mit einem Fehler abbrechen, wenn es nicht mit TimeMoneyRE oder TimeMoneyRERB zumindest
einen Algorithmus gibt, der FinancialStatement mit dem Attribut timeExpression erzeugen kann.
Als zweites Ziel der Zielmenge bleibt dann noch Forecast ohne ein Attribut
übrig. Somit wurde die Zielnormalisierung korrekt durchgeführt. Daraufhin werden
alle Algorithmen, welche die Ziele der Zielmenge direkt oder das Attribut eines
Zielannotationstyps erfüllen, als Filterverfahren markiert. Dies sind insbesondere
die Algorithmen TimeRecognizer, TimeMoneyRERB und ForecastClassifier.
Berechnung des Abhängigkeitsgraphen
Mit den normalisierten Zielen kann der Partial Order Planner des Expertensystems versuchen, einen partiellen Plan für die zu bestimmende Pipeline zu berechnen (vgl. Abschnitt 4.1.2). Der berechnete partielle Plan ist in Abbildung 7.1 als
Abhängigkeitsgraph dargestellt. Hierbei wurde der Übersicht halber auf alle redundanten Abhängigkeiten verzichtet. So hat der TimeMoneyRERB Algorithmus
zum Beispiel die benötigte Eingabe Sentence, welche vom WhitespaceTokenizer
erzeugt wird. Allerdings hat mit MoneyRecognizer mindestens ein Vorgänger von
TimeMoneyRERB dieselbe benötigte Eingabe. Damit muss diese schon vorliegen,
wenn TimeMoneyRERB ausgeführt werden soll und wird demnach in der Abbildung nicht dargestellt. An jedem Knoten ist weiterhin der Wert für die Average
Sentence Response Time des jeweiligen Algorithmus angegeben.
Der Planer beginnt mit dem Teilziel FinancialStatement.timeExpression. Dieses Ziel ist in der Ausgabe der beiden Algorithmen TimeMoneyRE und TimeMoneyRERB enthalten. Nun wird aufgrund der eingestellten Priorisierung der
beste Algorithmus bestimmt. Bei der gewählten Priorisierung hat die Effizienz
in Form von Average Sentence Response Time die höchste Priorität. Da beide
betrachteten Algorithmen die gleichen Eingaben benötigen, und damit die gleichen besten Vorgänger haben, ist der direkte Wert für das Gütekriterium Average
Sentence Response Time entscheidend. Hiermit begründet sich die Wahl für TimeMoneyRERB, welches den niedrigeren und somit besseren Wert besitzt. Das
Expertensystem greift hier auf die Information der Ontologie zurück, das kleinere
Werte bei dem Gütekriterium Average Sentence Response Time bessere Werte
bedeuten. Die benötigten Eingaben von TimeMoneyRERB werden als neue Teil-
120
7.1 Evaluierung der Funktionalität des entwickelten Expertensystems
WhiteSpaceTokenizer
0,04
MoneyRecognizer
TimeRecognizer
TTPOSLemmatizer
0,64
0,36
0,3
MTFastDependencyParser 54,61
TimeMoneyRERB
ForecastClassifier
0,02
0,29
Abbildung 7.1: Abhängigkeitsgraph nach Planung mit Average Sentence Resonse TimeWert für jeden Algorithmus. Grau hinterlegt die Filterverfahren.
ziele auf die Agenda des Planers gesetzt. Der Planer versucht nun für das nächste
offene Teilziel einen besten Algorithmus zu finden, bis die Agenda leer ist und es
somit keine offenen Ziele mehr gibt. So fällt zum Beispiel bei der Entscheidung für
einen Algorithmus für das Teilziel Token.parent auf MTFastDepedencyParser, da
sich für diesen Algorithmus ein besserer Effizienzwert ergibt, als für den ebenfalls
betrachteten MTBestDepedencyParser.
Die Bestimmung des jeweils besten Algorithmus für ein Teilziel wird für das Beispiel immer durch die bessere Effizienz in Form der niedrigeren, aufsummierten
Average Sentence Response Time entschieden. Hierbei gibt es mit dem ForecastClassifier eine Ausnahme. Der Algorithmus liegt in drei Varianten vor, wobei
die zwei Forecast Annotationen erzeugenden Algorithmen hier die wichtigen sind.
Die eine Variante erzeugt nur Forecast Annotationen. Die andere erzeugt Forecast
und Declaration Annotationen. Allerdings besitzen beide die gleichen Werte für
die jeweiligen Gütekriterien. Damit ist es einerseits für den Planer egal, welchen
von beiden er auswählt. Andererseits müssen für diese Entscheidung die Werte
hinsichtlich der gewählten Priorisierung verglichen werden. Da keiner von beiden
F-Measure oder Recall Werte besitzt, wird als Priorisierung die implizite Priorisierung 1. Average Sentence Response Time 2. Accuracy zum Vergleich gewählt.
Jeder dieser Werte ist bei beiden Algorithmen gleich, daher entscheidet der lexographische Vergleich, und damit in diesem Fall die Reihenfolge der Betrachtung,
welcher Algorithmus gewählt wird.
Bei der Berechnung des Abhängigkeitsgraphen durch den Planer wurden immer
die effizientesten (hinsichtlich ihrer aufsummierten Laufzeitkosten) Algorithmen
gewählt. Der Abhängigkeitsgraph ist demnach korrekt berechnet worden.
121
7. Evaluierung
WhiteSpace
Tokenizer
Time
Recognizer
TTPOS
Lemmatizer
Forecast
Classifier
Money
Recognizer
MTFast
Dependency
Parser
TimeMoney
RERB
Abbildung 7.2: Berechnete Pipelines Πeval . Grau hinterlegt die Filterverfahren.
Pipeline nach topologischer Sortierung
Die topologische Sortierung führt das Expertensystem nach dem in Abschnitt 4.1.4
beschriebenen Verfahren aus. Die in Abbildung 7.1 als Zahl an den Knoten dargestellte Average Sentence Response Time wird als Kriterium für die Bestimmung
eines besten Filterverfahrens genutzt. Die daraus entstehende Pipeline Πeval ist in
Abbildung 7.2 zu sehen.
Filterverfahren im Abhängigkeitsgraphen sind ForecastClassifier, TimeMoneyRERB und TimeRecognizer. Die Vorgänger von ForecastClassifier sind TTPOSLemmatizer, TimeRecognizer und WhitespaceTokenizer. Die Vorgänger von TimeMoneyRERB sind MTFastDepedencyParser, MoneyRecognizer, TTPOSLemmatizer, TimeRecognizer und WhitespaceTokenizer. Der einzige Vorgänger von TimeRecognizer ist der WhitespaceTokenizer. Auf Basis der Vorgänger wird die akkumulierte Average Sentence Response Time für jedes Filterverfahren bestimmt.
Dazu werden die einzelnen Werte der Vorgänger zusammen mit dem Wert des
Filterverfahrens aufaddiert (siehe Abbildung 7.1 für die Einzelwerte der Algorithmen). Damit ergibt sich für ForecastClassifier ein Wert von 0, 99, für TimeMoneyRERB ein Wert von 55, 97 und für die TimeRecognizer ein Wert von 0, 39. Damit
wird der TimeRecognizer als bestes Filterverfahren gewählt. Der schlechte Wert
von TimeMoneyRERB ergibt sich vor allem aus dem Wert 54, 61 für den MTFastDepedencyParser. Nachdem der TimeRecognizer und sein Vorgänger anhand ihrer
topologischen Sortierung der IE-Pipeline hinzugefügt wurden, werden die Werte
für die beiden übrig gebliebenen Filterverfahren aktualisiert und wiederum das
beste ausgewählt. Diesmal wird der ForecastClassifier mit einem Wert von 0, 59
dem TimeMoneyRERB mit einem Wert von 55, 57 vorgezogen und mit seinem
noch nicht in die IE-Pipeline hinzugefügten Vorgänger TTPOSLemmatizer topologisch sortiert und der IE-Pipeline hinzugefügt. Anschließend werden das noch
einzig übrig gebliebene Filterverfahren TimeMoneyRERB und seine noch nicht
sortierten Vorgänger MTFastDepedencyParser und MoneyRecognizer topologisch
sortiert und der IE-Pipeline angehängt.
Diese Sortierung ist korrekt hinsichtlich der in Abschnitt 4.1.4 beschriebenen
Definition eines statisch optimierten Schedules. Außerdem wird die vom Planer berücksichtigte Ordnung hinsichtlich des Paradigmas Lazy Evaluation nicht
verändert und sie bleibt somit bestehen. Durch die Betrachtung der Filterverfahren zur topologischen Sortierung wird gewährleistet, dass diese so früh wie möglich
ausgeführt werden, unter Berücksichtigung ihrer jeweiligen Vorgänger. Damit findet auch das Paradigma Early Filtering Berücksichtigung.
Die entstandene abstrakte IE-Pipeline wird dann, wie in Abschnitt 4.1.6 und
122
7.1 Evaluierung der Funktionalität des entwickelten Expertensystems
Planen
Topologische Sortierung
Optimierung
Aufbau der UIMA-Pipeline
Ausführung der UMIA Pipeline
Mittelwert1
σ1
Mittelwert2
σ2
36
5
7
3.505
85.109
6
4
7
70
1.043
57
6
7
20.712
87.682
8
3
3
1.132
1.132
Tabelle 7.2: Laufzeitwerte für Teile des Expertensystems in Millisekunden (Nachkommastellen gerundet).
5.4.2 beschrieben, in eine UIMA-IE-Pipeline umgewandelt und von UIMA ausgeführt. Nach der Ausführung entstehen die eingangs erwähnten Resultate bezüglich
der gefundenen Forecast.timeExpression Annotationen.
Evaluierung der Laufzeit
Für die Evaluierung der Laufzeit vom Starten des Expertensystems auf der Eingabe, bis zur Präsentation der Ergebnisse, wurden im Kalt- und im Warmstart
zehn Durchläufe durchgeführt. Kaltstart bedeutet, das System wurde vor jedem
Durchlauf komplett neu gestartet. Beim Warmstart sind die zehn Durchläufe nach
einem ersten Initialisierungsdurchlauf gemessen worden. Dadurch wird zum Beispiel der Unterschied zwischen Durchläufen mit und ohne Initialisierungskosten
sichtbar. Die Ergebnisse sind in Tabelle 7.2 zu sehen.
In der Tabelle sind die Laufzeitwerte für unterschiedliche Bereiche des Expertensystems in Millisekunden eingetragen. Die Zeit für das Planen ist die Dauer
vom Starten der Planung bis zur Berechnung des Abhängigkeitsgraphen durch
den Planer. In der folgenden Zeile stehen die Zeiten für die Durchführung der
verwendeten topologischen Sortierung. Eine Zeile weiter stehen die Zeiten für die
Optimierung in Form des Findens und Beseitigens von dominierten Algorithmen.
Die vorletzte Zeile gibt die Zeiten für die Konstruktion einer konkreten UIMAAggregate Analysis Engine aus der abstrakten, berechneten Pipeline an. Die Dauer
der Ausführung dieser UIMA-Pipeline auf den 188 Dokumenten ist in der letzten
Zeile zu sehen. In der zweiten Spalte der Tabelle stehen die berechneten Mittelwerte. Ihnen folgt die Standardabweichung σ1 von diesen Mittelwerten. Diese beiden
Spalten geben Mittelwert und Standardabweichung für die zehn Durchläufe bei einem einzigen Programmstart und nach einem ersten Initialisierungsdurchlauf an.
Die letzten beiden Spalten zeigen den Mittelwert und die Standardabweichung
für zehn Durchläufe mit Initialisierungskosten. Hier ist vor jedem Durchlauf das
Expertensystem neu gestartet worden.
Die Daten zeigen, dass die Berechnung der abstrakten Pipeline durch das Expertensystem um das 100- bis 2.000-fache schneller ist im Vergleich zum Aufbau der
Strukturen des verwendeten IE-Frameworks und der letztendlichen Ausführung
der konkreten Pipeline auf den Dokumenten. Eine Berechnung der abstrakten Pi-
123
7. Evaluierung
Sentence
Splitter
Tokenizer
Time
Recognizer
MT
Lemmatizer
MT
POSTagger
Forecast
Classifier
Money
Recognizer
MTBest
Dependency
Parser
TimeMoney
RE
Abbildung 7.3: Berechnete Evaluierungspipeline Πeval2 mit Fokus auf Effektivität. Grau
hinterlegt die Filterverfahren.
peline dauert im Mittel circa 36 − 57 Millisekunden. Die Laufzeiten sind geringer,
wenn das Expertensystem schon einige Durchläufe berechnet hat. Dies erklärt
sich mit dem Einsatz von Caching-Strukturen innerhalb der Komponenten des
Expertensystems. Die Berechnung der abstrakten Pipeline ist zu vernachlässigen
im Vergleich zu den circa 90.000 − 100.000 ms, die Konstruktion und Ausführung
der UIMA-Pipeline benötigen. Die hohen Werte für die Konstruktion der UIMAPipeline liegen vor allem in der Initialisierung der einzelnen Analysis Engines.
Hier müssen zum Teil sehr große Modelle geladen und initialisiert werden. Dieser
Vorgang wiederholt sich bei dem Aufbau von vielen Aggregate Analysis Engines
von neuem. Eine Ausnahme sind zum Beispiel die Komponenten des TreeTagger,
welche beispielsweise beim TTPOSLemmatizer zum Einsatz kommen. Sie werden
nur einmal initialisiert und gestartet und sind dann die komplette Programmzeit
über aktiv. Damit erklärt sich auch der hohe Mittelwert bei der Konstruktion der
UIMA-Pipeline von über 20 Sekunden, wenn das Expertensystem immer neu gestartet wird. Schwankungen aufgrund von anderen im PC laufenden Hintergrundprozessen werden erst bei einer längeren Laufzeit sichtbar. Daher lässt sich die
Standardabweichung von circa einer Sekunde für die Ausführung der IE-Pipeline
erklären. Dies könnte vor allem an I/O-Operationen liegen, wie dem Zugriff auf
die Modelle oder die Dokumente auf der Festplatte. Ähnliche Effekte scheinen für
die hohen Standardabweichungen bei den Werten für die Berechnung der abstrakten Pipeline verantwortlich zu sein. Allerdings bleibt diese kleine Zeitspanne im
Vergleich zu den mehreren Sekunden bei der Aufstellung der UIMA-Pipeline von
relativ geringer Bedeutung.
7.1.2 Evaluierung des Lösungsansatzes des
Algorithmenauswahlproblems
Im Folgenden wird die Lösung des Algorithmenauswahlproblems durch die in Abschnitt 4.1.3 vorgestellten Priorisierungen analysiert. Dafür soll das bisher betrachtete Beispiel mit einer anderen Priorisierung betrachtet werden. Für die Beispielpipeline Πeval in Abschnitt 7.1.1 wurde die Priorisierung 1. Average Sentence Response Time 2. F-Measure 3.Recall gewählt. Hierdurch wird versucht,
eine möglichst effiziente Pipeline zu konstruieren, da das Effizienzmaß bei der
Auswahl eines geeigneten Algorithmus zuerst betrachtet wird. Eine Priorisierung,
die demgegenüber auf eine möglichst effektive IE-Pipeline abzielt, ist zum Beispiel
1. F-Measure 2. Recall 3. Average Sentence Response Time.
Genau diese Priorisierung ist gewählt worden, unter Beibehaltung aller anderen
124
7.1 Evaluierung der Funktionalität des entwickelten Expertensystems
in Abschnitt 7.1.1 beschriebenen Eingaben. Das Expertensystem hat daraufhin
die in Abbildung 7.3 abgebildete Pipeline konstruiert. Die in dieser Pipeline verwendeten Algorithmen unterscheiden sich, bis auf drei Algorithmen, deutlich von
denen aus Pipeline Πeval . Mit Blick auf die Effektivitäts- und Effizienzwerte der
einzelnen Algorithmen der Algorithmenmenge in Tabelle A.3 lassen sich die Unterschiede zwischen den Pipelines allerdings leicht erklären. In der Pipeline Πeval2
wurden die für ein Teilziel effektivsten Algorithmen gewählt. Die beiden Algorithmen SentenceSplitter und Tokenizer ersetzen daher in dieser Pipeline den WhitespaceTokenizer. Beide besitzen Werte für das Effektivitätsmaß Accuracy und
werden damit dem WhitespaceTokenizer vorgezogen. Die während der Planung
zu erreichenden Teilziele Token.pos und Token.lemma werden in dieser Pipeline nicht mehr vom TTPOSLemmatizer erzeugt, sondern von den Algorithmen
MTLemmatizer und MTPOSTagger, da beide einen höheren Wert für das Effektivitätsgütekriterium Accuracy haben. Genauso verhält es sich bei den restlichen
geänderten Positionen in der Pipeline. Immer sind diejenigen Algorithmen für ein
zu erreichendes Teilziel während der Planung gewählt worden, die eine höhere Effektivität aufweisen. Daher ist die berechnete IE-Pipeline Πeval2 auch korrekt, im
Sinne der vom Benutzer getroffenen Eingaben, berechnet worden.
Eine Analyse der vom Expertensystem verwendeten Algorithmenmenge zeigt,
dass es in den allermeisten Fällen einen schnellen, aber weniger effektiven, und
einen effektiveren, aber langsameren, Algorithmus für eine bestimmte Ausgabe gibt. Dadurch wird bei der Berücksichtigung der Priorisierung meist schon
beim Vergleich der Werte für die erste Priorität in Form eines Gütekriterium der
Priorisierung ein bester Algorithmus bestimmt. Der ForecastClassifier bildet eine
Ausnahme. Neben diesem Algorithmus gibt es noch den ForecastClassiferAll, der
ebenfalls Forecast erzeugt. Allerdings haben beide Algorithmen dieselbe Implementierung und demnach auch die gleichen Werte für Effektivität und Effizienz.
Der einzige Unterschied ist, dass beim ForecastClassifier das Erzeugen von Declaration Annotationen abgeschaltet ist.
Mit den unterschiedlichen Algorithmen des StanfordNER, etwa der StanfordOrganizationNER zum Finden von Organization-Annotationen, liegt ein ebensolcher
Fall, wie beim ForecastClassifier vor. Auch hier sind die Werte der Algorithmen
gleich, weil hinter allen dieselbe Implementierung arbeitet. Eine weitere Besonderheit der StanfordNER-Algorithmen ist, dass diese nur einen Effektivitätswert in
Form des F-Measure aufweisen. Die anderen Algorithmen, die die gleiche Ausgabe wie die einzelnen StandfordNER besitzen, zum Beispiel der OrganizationNER,
haben ebenfalls nur einen Effektivitätswert, allerdings in Form des Recalls. Wird
jetzt eine Priorisierung gewählt, in der die Effektivität im Vordergrund steht,
so entscheidet die Reihenfolge von F-Measure und Recall in dieser Priorisierung,
welche Algorithmen genommen werden. Steht zum Beispiel der F-Measure in der
Reihenfolge vor dem Recall, wie in 1. F-Measure 2. Recall 3. Average Sentence
Response Time, so wird immer ein StanfordNER genommen.
Insgesamt lässt sich festhalten, dass die Lösung des Algorithmenauswahlproblems die vom Benutzer festgelegten Randbedingungen einhält. Der Wunsch nach
125
7. Evaluierung
WhiteSpace
Tokenizer
Time
Recognizer
TextFilter
TTPOS
Lemmatizer
Forecast
Classifier
Money
Recognizer
MTFast
Dependency
Parser
TimeMoney
RERB
Abbildung 7.4: Berechnete Evaluierungspipeline Πeval3 mit Textfilter. Grau hinterlegt
die Filterverfahren. Textfilter hervorgehoben.
einer möglichst effizienten oder effektiven Pipeline wird berücksichtigt, wie die
beiden Pipelines Πeval (effizient) und Πeval2 (effektiv) zeigen.
7.1.3 Evaluierung des Filteransatzes
Die Berücksichtigung von Randbedingungen bezüglich der Einschränkung der Ergebnismenge ist, wie in Abschnitt 4.1.5 beschrieben, durch Einfügung von Filtern
in die IE-Pipeline gelöst worden. Um diesen Ansatz zu evaluieren, wird die Eingabe von Abschnitt 7.1.1 um einen Filter erweitert.
Es sollen als Ergebnis der IE-Pipeline nur die Marktvorhersagen (Forecast)
Annotationen zurückgegeben werden, deren Zeitraum (TimeExpression) im Jahr
2010 liegt. Der gewählte Filter ist ein Textfilter. Da aus Gründen der Vergleichbarkeit die Pipeline Πeval aus Abschnitt 7.1.1 als Basis genommen wird, kann
der Datumsfilter nicht benutzt werden. Der Zeitraum müsste für ihn normalisiert
vorliegen. Für diese Normalisierung wird in der Pipeline der Algorithmus TimeResolver benötigt. Damit wären die Pipelines allerdings nicht mehr vergleichbar.
Aus diesem Grund wird ein Textfilter zur Filterung eingesetzt. Hiermit werden
zwar nicht alle Vorhersagen aus dem Jahr 2010 gefunden und damit gefiltert, zur
Veranschaulichung der Ergebnisse reicht der Filter allerdings aus. Als zu filternder
Annotationstyp ist TimeExpression eingestellt worden. Die Annotation mit dem
Text im Jahre 2010“ wird also durch den Filter hindurch gelangen.
”
Das mit diesen Eingaben gestartete Expertensystem berechnet die in Abbildung
7.4 dargestellte Pipeline Πeval3 . Der Filter ist korrekterweise nach dem TimeRecognizer in der Pipeline platziert worden, da TimeRecognizer der Algorithmus ist,
welcher mit TimeExpression den zu filternden Annotationstyp als Ausgabe hat.
Die Pipeline Πeval3 wird zehn mal auf derselben Textmenge ausgeführt, wie zuvor die Pipeline Πeval . Die Ausführung der konkreten mit dem Filter versehene
UIMA-IE-Pipeline benötigt auf der gegebenen Textmenge im Mittel 5235 Millisekunden, bei einer Standardabweichung von σ = 223 Millisekunden. Durch die
frühe Filterung des Textfilters ist die entstandene Pipeline demnach mehr als fünfzehn mal so schnell, als die Pipeline ohne diesen Filter. Die Ergebnismenge umfasst
21 Forecast-Annotationen, die ein TimeExpression-Attribut besitzen. Jeder Text
der gefundenen Annotationen enthält korrekterweise den Text 2010“.
”
Das Ergebnis zeigt, dass durch das Hinzufügen eines Spezialfilters direkt in
die Pipeline, sehr viel Zeit bei der Gesamtlaufzeit dieser Pipeline eingespart werden kann. Leicht ersichtlich ist demnach, dass eine nachträgliche Filterung der
Ergebnismenge eine weitaus schlechtere Gesamtlaufzeit zur Folge hat. Eine Ein-
126
7.2 Evaluierung des Problems der nicht vollständigen Maximum Decomposition
schränkung betrifft allerdings Filter, die nicht auf einzelnen Entitäten, wie Zeitaussagen, sondern zum Beispiel auf den Attributen von Relationen oder Ereignissen
filtern. Im Allgemeinen werden Relationen oder Ereignisse erst sehr spät in der
Pipeline bestimmt. Dadurch verringert sich der positive Effekt auf die Gesamtlaufzeit der Pipeline durch einen solchen Filter entsprechend. Kann das Expertensystem keinen Algorithmus identifizieren, der innerhalb der Pipeline den zu
filternden Annotationstypen des Filters erzeugt, so wird der Filter am Ende der
Pipeline eingefügt. Dadurch hat der Filter keinen positiven Effekt mehr auf die
Gesamtlaufzeit der Pipeline. Es ist dem Benutzer überlassen, ob erst nach der
Bestimmung der Relationen oder Ereignisse das Attribut der jeweiligen Relation oder des Ereignisses gefiltert werden soll, oder schon nach der Erzeugung der
hinter dem Attribut stehenden Annotationen (vgl. Abschnitt 4.1.5). So kann der
Benutzer zum Beispiel selber wählen, ob der Filter sich auf TimeExpression oder
aber auf Forecast.timeExpression beziehen soll. Das Beispiel in Abschnitt 4.1.5
zeigt allerdings, dass diese Wahl nicht in jedem Fall möglich ist und in solchen
Fällen auch die positiven Effekte von Filtern innerhalb der Pipeline auf deren
Laufzeit gering ausfallen würden.
7.2 Evaluierung des Problems der nicht
vollständigen Maximum Decomposition
Ein in Abschnitt 5.4.1 angesprochenes Problem ist die nicht komplett durchgeführte Zerlegung der Algorithmen nach dem Paradigma Maximum Decomposition. Ein
Teilproblem hiervon zeigt sich in dem Vorhandensein von dominierten Algorithmen innerhalb einer berechneten Pipeline. Als Lösung wurde ein Verfahren vorgeschlagen, welches diese dominierten Algorithmen aus einer berechneten Pipeline
entfernen kann (siehe ebenfalls Abschnitt 5.4.1).
Nach der Analyse der dem Expertensystem zur Verfügung stehenden Algorithmenmenge lässt sich nur ein Fall identifizieren, in dem ein Algorithmus einen anderen dominieren kann. Dies ist der Fall, wenn der TTChunker in einer Pipeline vor
dem TTPOSLemmatizer ausgeführt werden soll. Der TTChunker erweitert den
TTPOSLemmatizer nur um das Finden von Token.chunk. Die Implementierung
für alle anderen Ausgaben ist bei beiden gleich. Daher sind auch die Effektivitätswerte der beiden Algorithmen gleich. Aus diesem Grund dominiert der TTChunker
immer den TTPOSLemmatizer, sobald er in der Pipeline als erster von beiden ausgeführt wird. Dies ist nur dann der Fall, wenn die beiden Teilziele Token.lemma
und Token.chunk während des Planens betrachtet werden müssen. Aufgrund der
gleichen Effektivität wird für das erste Teilziel immer der TTPOSLemmatizer
gewählt werden. Da Token.chunk allerdings nur vom TTChunker erzeugt wird,
wird er für die Erfüllung dieses Teilziels herangezogen.
In allen anderen Fällen, in denen eine gleiche Ausgabe von Algorithmen vorhanden ist, sind entweder die Effektivitätsmaße verschieden und daher kann keiner der
127
7. Evaluierung
Algorithmen einen anderen mit gleicher Ausgabe dominieren. Oder aber es handelt sich um sich gegenseitig ausschließende Algorithmen, die nie zusammen in
einer Pipeline auftreten. Ein Beispiel für den ersten Fall ist der ForecastClassifier
und der StatementOnRevenueIdentifier. Beide haben als Ausgabe explizit oder
implizit RevenueStatement. Dennoch haben sie mit F-Measure beziehungsweise
Accuracy unterschiedliche Effektivitätskriterien. Der zweite Fall wurde bereits in
Abschnitt 7.1.2 angesprochen. So wird immer der effektivere oder der effizientere
Algorithmus für eine bestimmte Ausgabe in der Pipeline vorkommen, aber nie
beide zusammen (entweder TTPOSLemmatizer oder aber MTLemmatizer ).
Daher kann geschlossen werden, dass zumindest für die vorliegende und benutzte Algorithmenmenge das Problem der nicht komplett durchgeführten Zerlegung
nach dem Maximum Decomposition Paradigma keine negativen Auswirkungen auf
die vom Expertensystem erzielten Ergebnisse hat. Hiervon ausgenommen ist der
in Abschnitt 5.4 angesprochene Fall, dass der TTChunker bereits bestehende Annotationen überschreibt, die eventuell von einem bereits ausgeführten und effektiveren MTLemmatizer gemacht wurden. Zur Lösung müsste die Implementierung
des TTChunker so angepasst werden, dass bereits bestehende Annotationen bei
Bedarf nicht überschrieben werden. Bei der Nutzung einer anderen Algorithmenmenge kann allerdings nicht ausgeschlossen werden, dass eine dort fehlende Zerlegung der Algorithmen nach dem Maximum Decomposition Paradigma nicht doch
Probleme für das Expertensystem und seine Ergebnisse verursacht.
128
8 Zusammenfassung und Ausblick
In dieser Arbeit wurde ein Expertensystem für die Konstruktion und Ausführung
von Information-Extraction-Pipelines entwickelt. Durch dieses Expertensystem
lässt sich der zeitaufwändige, und damit teure, manuelle Prozess der Erstellung
einer IE-Pipeline automatisieren.
Für die Konstruktion von IE-Pipelines wurde ein speziell auf die Domäne Information Extraction angepasster Partial Order Planner entwickelt. Mittels dieses
Planers und der beteiligten Komponenten, in Gestalt der Problemlösungskomponente, war es möglich, IE-Pipelines zu konstruieren, die nicht nur eine ganz bestimmte Art von Informationen in Texten identifizieren können, sondern auch Anforderungen an die Qualität, hinsichtlich Effizienz und Effektivität, einhalten. Dazu wurde auch das Planungsproblem definiert, welches von diesem Planer und damit dem Expertensystem gelöst werden musste. Außerdem berücksichtigt der Planer die vorhandenen Paradigmen für die Konstruktion von effizienten IE-Pipelines.
Für die Ausführung der berechneten IE-Pipelines sind weiterhin die Besonderheiten des verwendeten IE-Frameworks UIMA berücksichtigt worden. Hierbei wurden
auch Probleme durch die Algorithmenmenge, aus der sich eine IE-Pipeline zusammen setzen kann, identifiziert und für diese Menge gelöst. Die Funktionalität des
Expertensystems konnte ebenfalls erfolgreich evaluiert werden. Die Berücksichtigung von Einschränkungen der Ergebnismenge durch das Hinzufügen von zusätzlichen Filtern in die IE-Pipeline wurde ebenfalls umgesetzt. Außerdem konnte
gezeigt werden, dass damit eine große Effizienzsteigerung möglich wird, was vor
allem bei dynamischen und großen Textmengen, wie sie zum Beispiel im World
Wide Web vorliegen, ein Vorteil sein kann.
Die Grundlage für die Arbeit der Problemlösungskomponente bildet die Wissensbasis in Form einer OWL-Ontologie. Bei der Entwicklung dieser Wissensbasis
wurde das vom Planer benötigte Wissen identifiziert und formalisiert. Außerdem
wurde mit der Wissenserwerbskomponente ein Importer entwickelt, der die vorliegenden Daten des verwendeten IE-Frameworks UIMA automatisiert in die Ontologie einfügen kann und somit zukünftige Erweiterungen, zum Beispiel hinsichtlich
der verwendeten Algorithmenmenge, sehr einfach möglich macht.
Der modulare Aufbau des entwickelten Expertensystems erleichtert dessen Anpassbarkeit und Erweiterbarkeit. Einige mögliche Punkte zur Erweiterung wurden
genannt. Hierbei spielt das Hinzufügen von neuem Wissen, zum Beispiel in Form
neuer IE-Algorithmen oder Gütekriterien, in die verwendete Ontologie eine zentrale Rolle. Es wurde gezeigt, dass dieses neu in die Ontologie eingefügte Wissen
ohne Anpassungen am Quellcode direkt genutzt werden kann. Durch den modularen Aufbau konnten außerdem die Komponenten, welche abhängig von dem ver-
129
8. Zusammenfassung und Ausblick
wendeten IE-Framework UIMA sind, vom Rest des Expertensystems entkoppelt
werden. Somit sind die Quellcodeänderungen beim Wechsel des IE-Frameworks lokal begrenzt. Auch durch die Verwendung des Datenmodells wurde, mit der damit
erfolgten Kapselung der Wissensbasis, eine zukünftige Änderung und Erweiterung
des Expertensystems vereinfacht.
Ausblick
Das verwendete Expertensystem bietet eine Reihe von Möglichkeiten für zukünftige Arbeiten, die in dieser Arbeit nicht mehr behandelt werden konnten oder gegen
die sich bewusst entschieden wurde. Diese Möglichkeiten sollen nun im Folgenden
aufgeführt werden.
Die Trennung von Frontend und eigentlichem Expertensystem bietet, wie schon
in dieser Arbeit angesprochen, Vorteile. Ein solcher Vorteil ist die einfache Einbettung des Expertensystems in zum Beispiel einen Webservice. So wurde bereits
eine Pipeline zum Erkennen von Marktvorhersagen als Browserplugin und Webservice von der Universität Paderborn bereitgestellt.1 Auf Basis eines solchen Plugins
könnte der Anwender sich für eine bestimmte zu suchende Informationsart vom
Expertensystem eine IE-Pipeline generieren lassen, die die gerade geöffnete Webseite analysiert und dann die Ergebnisse dem Anwender präsentiert. Vor allem
das Einfügen von zusätzlichen Filtern in die IE-Pipeline bietet hier großes Potenzial hinsichtlich der Performanz der Analyse, wie bereits in der Evaluierung
gezeigt. Dadurch könnte die Laufzeit der IE-Pipeline auf ein Echtzeitniveau gesteigert werden, vorausgesetzt die Filter stehen weit vorne in der Pipeline und die
zu analysierenden Texte sind genügend klein.
In dieser Arbeit wurde sich für das Verwenden von viel Expertenwissen in der
Problemlösungskomponente des Expertensystem und damit außerhalb der Wissensbasis entschieden (vgl. Abschnitt 4.1.2). Die Ablehnung der direkten Schlussfolgerung auf dem Wissen der Ontologie zur Konstruktion einer IE-Pipeline wurde
in Abschnitt 4.1.1 vor allem damit begründet, dass dieser Vorgang zu lange dauern kann. Allerdings bietet der vollkommene Verzicht auf Domänenwissen in der
Problemlösungskomponente und der Einsatz eines allgemeinen Inferenzverfahrens,
wie die in Abschnitt 2.3.1 erwähnten Tableaureasoner, den Vorteil einer noch einfacheren Erweiter- und Anpassbarkeit des Expertensystems. Es wäre dann nicht
nötig für Erweiterungen den Quellcode selbst anpassen zu müssen. Somit könnte
zum Beispiel ein Experte direkt das Wissen, und damit die Verfahrensvorschriften
zur Konstruktion einer IE-Pipeline, in der Ontologie ändern, ohne dass er ein Softwareentwickler sein muss oder den Quellcode des Expertensystems kennt. Hierzu
ist es allerdings notwendig, eine Formalisierung für das in der Problemlösungskomponente implizit verwendete Expertenwissen, zum Beispiel die Paradigmen
zur Konstruktion einer effizienten IE-Pipeline, zu finden.
1
http://infexba.uni-paderborn.de/ergebnisse.html#c31991
130
In Abschnitt 4.1.2 wurde dargelegt, warum kein externer PDDL-Planer für das
Durchführen der Planung genutzt wurde. Dies lag vor allem in den mangelnden
Möglichkeiten hinsichtlich der Zielfunktionen, auf die hin der Planer den Plan
optimieren soll. Zukünftige PDDL-Versionen und PDDL-Planer könnten die Umsetzung des in dieser Arbeit vorgestellten Ansatzes mit einem PDDL-Planer dennoch möglich werden lassen. Eine Anbindung an externe PDDL-Planer, wie zum
Beispiel den schon angesprochenen Metric-FF, ist dazu schon experimentell im
Expertensystem implementiert worden.
Ein grundlegendes Problem bei der Entwicklung des Expertensystems war die
nicht vollständig nach dem Maximum Decomposition zerlegte Algorithmenmenge.
Um diesem Problem zu begegnen wurden spezielle Optimierungen eingeführt, wie
die Eliminierung dominierter Algorithmen. Die Evaluierung zeigte, dass diese Optimierungen für die verwendete Menge an Algorithmen ausgereicht haben. Allerdings lässt sich diese Aussage nicht verallgemeinern. Andere Algorithmenmengen,
und vor allem auch andere IE-Frameworks, können andere Arten der Optimierung benötigen. Eventuell ist es sogar notwendig, das verwendete Verfahren zur
Bestimmung eines besten Algorithmus in einem Planungsschritt anzupassen oder
zu ersetzen. Genau für solche Fälle wurde das Verfahren in einer eigenen Komponente gekapselt und damit einfach anpassbar und austauschbar gemacht. Das
Testen mit anderen UIMA-Typenhierarchien und -Algorithmen ist demnach eine
weitere Möglichkeit für zukünftige Arbeiten.
Bei der in dieser Arbeit verfolgten topologische Sortierung des vom Planer gelieferten partiellen Teilplans aufgrund der Effizienzwerte der Filterverfahren kann
es sein, dass nicht immer die effizientesten Pipelines in Bezug auf das Paradigma
Optimized Scheduling erzeugt werden (vgl. Abschnitt 4.1.4). Durch die Integration der dynamischen Filterraten, etwa als neues, eigenständiges Gütekriterium der
Algorithmen, dessen Werte vor der Konstruktion der IE-Pipeline anhand der zu
untersuchenden Texte bestimmt werden, kann das Paradigma in Zukunft vollkommen berücksichtigt werden. Hierfür ist es bereits vorgesehen, dass der Benutzer
das Gütekriterium auswählen kann, anhand dessen die topologische Sortierung
durchgeführt wird. Eine weitere Möglichkeit kann die Generierung aller für ein
Problem möglichen IE-Pipelines, im Bezug auf die unterschiedlichen möglichen
topologischen Sortierungen, sein. Dies könnte es dem IE-Experten ermöglichen,
die davon effizienteste manuell zu identifizieren. Hierfür ist schon eine Funktion
im Expertensystem vorgesehen, die die Generierung von verschiedenen, möglichen
IE-Pipelines ohne deren Ausführung ermöglicht.
Des Weiteren könnte es sein, dass bestimmte Annotationen schon an den zu
analysierenden Texten vorliegen, weil sie etwa per Hand annotiert wurden. Dann
muss der Planer nur noch für die restlichen, benötigten Annotationen eine Pipeline berechnen. Dies ist indirekt schon vorgesehen vom Expertensystem. Der Planer
erhält für das Planen eine Menge von schon existierenden Annotationen. Momentan ist dies immer nur Plaintext. Der Startaktion wird diese Annotation als in den
Effekten vorliegend hinzugefügt. Damit werden alle Algorithmen, die ohne bereits
vorhandene Annotationen auf Text arbeiten können, korrekt vom Planer behan-
131
8. Zusammenfassung und Ausblick
delt. Die Implementierung müsste also so angepasst werden, dass bereits im Text
vorhandenen Annotationen in die Menge der schon existierenden Annotationen
für den Planer hinzugefügt werden.
Die in Abschnitt 3.2 gefundenen Arbeiten zeigen, dass die Benutzung einer
Anfragesprache, wie etwa einer SQL-ähnlichen Sprache, zur Formulierung von
IE-Aufgaben immer mehr Beachtung findet. Für eine vollständige Implementierung einer solchen Anfragesprache müssten die Algorithmen neu entwickelt werden. Allerdings könnten die in einer solchen Sprache formulierten Anfragen in ein
vom Expertensystem verarbeitbare Problembeschreibung umgeformt werden. Die
Trennung von Frontend und Expertensystem macht dies möglich. Dabei bleibt zu
prüfen, ob die Formulierung in einer Anfragesprache wirkliche Vorteile gegenüber
der existierenden Formular-basierten Art der Problembeschreibung hat.
Eine denkbare Erweiterung betrifft die zu wählenden Priorisierungen nicht für
die gesamte IE-Pipeline vorzuschreiben, sondern für einzelne Annotationstypen.
So könnte der Benutzer festlegen, dass für das Zerlegen des Textes in Tokens
ein möglichst effektiver Tokenisierer benutzt wird, für den Rest der Pipeline aber
möglichst effiziente Verfahren gewählt werden. Ein Tokenisierer wird typischerweise relativ früh in der IE-Pipeline ausgeführt (vgl. [WSE11]). Viele andere Algorithmen der IE-Pipeline bauen auf seinen Ergebnissen auf. Eine Verschlechterung
dieser Ergebnisse zieht also eine Verschlechterung der Effektivität der gesamten
IE-Pipeline nach sich, daher sollte ein möglichst effektiver Tokenisierer gewählt
werden. Die Priorisierungen müssten nicht komplett spezifiziert werden. Es reicht,
für die Gesamtpipeline eine Priorisierung festzulegen und für einzelne Annotationstypen eine andere. Die Gesamtpriorisierung wird immer dann genutzt, wenn für
ein vom Planer zu erreichendes Teilziel, dies entspricht einem bestimmten Annotationstyp, keine Einzelpriorisierung festgelegt wurde. Dafür müssten aber auch die
zu bewältigenden Probleme identifiziert und gelöst werden. So kann der Benutzer
im Allgemeinen nicht im Vorfeld wissen, welche Annotationstypen und Algorithmen innerhalb der zu konstruierenden Pipeline vorkommen werden. Würde er die
Pipeline selbst konstruieren, so wüsste er dies natürlich, allerdings ist der Vorteil
der Automatisierung der Konstruktion durch das Expertensystem dann verloren.
Ein Punkt, den diese Arbeit ebenfalls offen gelassen hat, ist der Einbezug von
zusätzlichem Wissen über die verwendeten Gütekriterien. Als Beispiel betrachtet
der Planer für ein Teilziel zwei in Frage kommende Aktionen. Die erste Aktion
hat als Effektivitätswert einen F-Measure von 0, 8. Die zweite Aktion hat einen
Recall von 0, 5. Soll jetzt in der Priorisierung zuerst der Recall berücksichtigt werden, dann würde die zweite Aktion gewählt. Allerdings bedeutet ein F-MeasureWert von 0, 8, dass der Recall hier auf jeden Fall über 0, 5 liegen muss. Dies
ergibt sich aus der Formel mit der sich der F-Measure berechnet (vgl. Abschnitt
2.4.3). Mit dieser Information sollte das Expertensystem daher die erste Aktion
auswählen, denn ihr Recall-Wert ist höher. Das Problem ist, dass die Gütekriterien unabhängig voneinander in der Ontologie stehen. Für die Berücksichtigung
solcher Verflechtungen, sollen sie nicht direkt im Quellcode stehen, muss die Ontologie und auch das Expertensystem selbst dahingehend erweitert werden.
132
Anhang A
Tabellen
135
A. Tabellen
OWL
DL
Beispiel
intersectionOf
unionOf
complementOf
oneOf
allValuesFrom
someValuesFrom
hasValue
minCardinality
maxCardinality
inverseOf
C1 u ... u Cn
C1 t ... t Cn
¬C
{x1 , ..., xn }
∀P.C
∃r.C
∃r.{x}
(≥ nr)
(≤ nr)
r−
Computer u Mobilgerät
PC t Mobilgerät
¬ Mobilgerät
{ Microsoft, Apple }
∀ istPartnerVon.Firma
∃ istPartnerVon.Firma
∃ hatEAGerät.{IPad}
(≥ 2 hatProzessor)
(≤ 1 hatEAGerät)
istTragbar−
Tabelle A.1: OWL-Konstruktoren in Beschreibungslogik (DL) [BHS07]
OWL Axiom
DL
Beispiel
subClassOf
equivalentClass
subPropertyOf
equivalentProperty
disjointWith
sameAs
differentFrom
TransitiveProperty
FunctionalProperty
InverseFunctionalProperty
SymmetricProperty
C1 v C2
C1 ≡ C2
P1 v P2
P1 ≡ P2
C1 v ¬C2
x1 ≡ x2
x1 v ¬x2
P1+ v P2
> v (≤ 1P )
> v (≤ 1P − )
P ≡ P−
PC v Computer
Mobiltelefon ≡ Mobilgerät u Telefon
hatTastatur v hatEAGerät
hatProzessor ≡ hatCPU
Mensch v ¬ Computer
Motorolo68000 ≡ M68k
M68k v ¬ Pentium4
istNachfolgerVon+ v istNachfolgerVon
> v (≤ 1hatProzessor)
> v (≤ 1istProzessorVon− )
istPartnerVon ≡ istPartnerVon−
Tabelle A.2: OWL-Axiome in Beschreibungslogik (DL) [BHS07]
136
Algorithmus
Eingabe
Ausgabe
Güte
TimeExpression,
Token(lemma, pos), Filtered
Declaration, Forecast
ASRT 0, 29
AvgF 0, 49
Acc
0, 93
StanfordOrganizationNER
Token(lemma; chunk; pos),
Sentence
Organization
ASRT 2, 52
AvgF 3, 94
F1
0, 78
Tokenizer
Sentence
Token
ASRT 0, 60
AvgF 1, 00
Acc
0, 98
SentenceSplitter
PlainText
Sentence, Filtered
ASRT 0, 47
AvgF 0, 77
Acc
0, 95
MarketNER
Token, Sentence
Market
ASRT 0, 09
AvgF 0, 14
R
0, 32
ForecastClassifieDecr
TimeExpression, Filtered,
Token(lemma; pos)
Declaration
ASRT 0, 29
AvgF 0, 49
Acc
0, 93
StanfordPersonNER
Token(lemma; chunk; pos),
Sentence
Person
ASRT 2, 52
AvgF 3, 94
F1
0, 78
TimeRecognizer
Token, Sentence
TimeExpression
ASRT
AvgF
F1
R
P
MTBestDepedencyParser
Sentence,
pos)
Token(dependency; parent)
ASRT 166, 14
AvgF 276, 90
LAS
0, 88
ForecastClassifier
Filtered, TimeExpression,
Token(lemma; pos)
Forecast
ASRT 0, 29
AvgF 0, 49
Acc
0, 93
TTPOSLemmatizer
Token
Token(lemma; pos)
ASRT 0, 30
AvgF 0, 49
Acc
0, 97
StanfordMiscNER
Token(lemma; chunk; pos),
Sentence
Misc
ASRT 2, 52
AvgF 3, 94
F1
0, 78
StatementOnRevenueIdentifier
Token, Sentence, TimeExpression, MonetaryExpression
RevenueStatement
ASRT
AvgF
F1
R
P
OrgnaizationNER
Sentence, Token
Organization
ASRT 0, 08
AvgF 0, 13
R
0, 42
ForecastClassifierAll
Token(lemma;
0, 36
0, 59
0, 94
0, 97
0, 91
3, 95
6, 37
0, 90
0, 93
0, 87
Tabelle A.3: Die vom Expertensystem verwendeten IE- und NLP-Algorithmen. In der
Spalte Güte sind Gütekriterium und Wert der Güte zusammengefasst dargestellt. ASRT = Average Sentence Response Time; Acc = Accuracy; AvgF
= Averaged Efficiency; F1 = F-Measure; R = Recall; P = Precision; LAS
= Labeled Attachement Score. TTX = TreeTagger-, MTX = MateTools-,
StanfordX NER = StanfordNER-Algorithmen
137
A. Tabellen
Algorithmus
Eingabe
Ausgabe
Güte
MTLemmatizer
Sentence, Token
Token(lemma)
ASRT 11, 12
AvgF 17, 94
Acc
0, 98
StanfordLocationNER
Sentence,
chunk; pos)
Location
ASRT 2, 52
AvgF 3, 94
F1
0, 78
MoneyRecognizer
Token, Sentence
MonetaryExpression(types)
ASRT
AvgF
F1
R
P
ScopeFinder
Sentence,
RevenueStatement,
Token(lemma),
Organization
Token(lemma; chunk; pos),
Sentence
RevenueStatement(scope),
Scope(lemma)
ASRT 0, 03
AvgF 0, 05
Organization
ASRT 2, 52
AvgF 3, 94
F1
0, 78
Matter,Token,
RevenueStatement, Sentence
RevenueStatement(matter)
ASRT 0, 03
AvgF 0, 05
StatementOnRevenueIdentifierRB Token, Sentence
RevenueStatement
ASRT
AvgF
F1
R
P
StatementTimeFinder
Token, RevenueStatement,
TimeExpression
ReferencePoint,
RevenueStatement(referencePoint)
ASRT 0, 39
AvgF 0, 67
TTChunker
Token
Token(lemma; chunk; pos)
ASRT 0, 59
AvgF 0, 92
Acc
0, 97
MTPOSTagger
Token(lemma), Sentence
Token(pos)
ASRT 10, 75
AvgF 17, 34
Acc
0, 98
TimeMoneyRERB
Token(dependency; lemma;
parent; pos), MonetaryExpression, TimeExpression,
Filtered, Sentence
FinancialStatement(timeExpression;
monetaryExpression)
ASRT
AvgF
F1
R
P
StatementAuthorFinder
Sentence, Person, RevenueStatement, Token
Author,
RevenueStatement(author)
ASRT 0, 04
AvgF 0, 07
TimeResolver
Sentence, TimeExpression,
Filtered
TimeExpression(normalizedStart; normalizedEnd)
ASRT 2, 15
AvgF 3, 64
Acc
0, 95
LanguageFunctionAnalyzer
TimeExpression,
Token(pos), MonetaryExpression(types), Sentence
Genre(genreClass)
ASRT 3, 70
AvgF 6, 00
Acc
0, 82
WhitespaceTokenizer
PlainText
Sentence, Token, Filtered
ASRT 0, 04
AvgF 1, 00
StanfordMatterNER
SubjectFinder
Token(lemma;
0, 64
1, 09
0, 97
0, 95
0, 99
0, 03
0, 05
0, 89
0, 93
0, 86
0, 02
0, 03
0, 77
0, 88
0, 69
Tabelle A.3: Die vom Expertensystem verwendeten IE- und NLP-Algorithmen. In der
Spalte Güte sind Gütekriterium und Wert der Güte zusammengefasst dargestellt. ASRT = Average Sentence Response Time; Acc = Accuracy; AvgF
= Averaged Efficiency; F1 = F-Measure; R = Recall; P = Precision; LAS
= Labeled Attachement Score. TTX = TreeTagger-, MTX = MateTools-,
138
StanfordX NER = StanfordNER-Algorithmen
Algorithmus
Eingabe
Ausgabe
Güte
MTFastDepedencyParser
Token(lemma;
tence
Token(dependency; parent)
ASRT 54, 61
AvgF 91, 02
LAS
0, 87
StanfordNER
Token(lemma; chunk; pos),
Sentence
Misc, Person, Location, Organization
ASRT 2, 52
AvgF 3, 94
F1
0, 78
TimeMoneyRE
MonetaryExpression,
Token(dependency;
lemma;
parent;
pos),
Filtered,
TimeExpression, Sentence
FinancialStatement(timeExpression;
monetaryExpression)
ASRT
AvgF
F1
R
P
MTMorphologicalTagger
Sentence, Token(lemma)
Token(morph)
ASRT 67, 16
AvgF 88, 37
pos),
Sen-
10, 41
13, 34
0, 81
0, 88
0, 75
Tabelle A.3: Die vom Expertensystem verwendeten IE- und NLP-Algorithmen. In der
Spalte Güte sind Gütekriterium und Wert der Güte zusammengefasst dargestellt. ASRT = Average Sentence Response Time; Acc = Accuracy; AvgF
= Averaged Efficiency; F1 = F-Measure; R = Recall; P = Precision; LAS
= Labeled Attachement Score. TTX = TreeTagger-, MTX = MateTools-,
StanfordX NER = StanfordNER-Algorithmen
139
Anhang B
Abbildungen
141
B. Abbildungen
Genre
-isRelevant : Boolean
Relevance
Category
-genreClass : String
Opinion
-polarity : String
Location
Author
Market
Matter
Person
Scope
Guid
-uri : String
Annotation
-begin : String
-end : String
Trend
ReferencePoint
MonetaryExpression
-normalizedStart : String -types : Boolean
-normalizedEnd : String
TimeExpression
-lemma : String
Entity
Misc
Organization
Filtered
Relation
FinancialStatement
Metadata
-genre : Genre
-timeExpression : TimeExpression
-monetaryExpression : MonetaryExpression
RevenueStatement
Forecast
-author : Author
-matter : Matter
-referencePoint : ReferencePoint
-trend : Trend
-scope : Scope
Declaration
Sentence
Token
-pos : String
-lemma : String
-chunk : String
-parent : Token
-dependency : String
-morph : String
Abbildung B.1: Im Expertensystem benutzte Annotationstypenhierarchie als Klassendiagramm. Jede Klasse steht für einen Annotationstyp. Jedes Attribut des Annotationstypen ist ein Attribut der jeweiligen Klasse. Dabei sind auch immer die
Typen der Attribute benannt. String und Boolean sind in UIMA eingebaute primitive Typen, die keine eigenständigen
Annotationstypen darstellen. Die Vererbung gibt die Hierarchie an, wobei Annotation der Basistyp für alle anderen
ist.
142
Abbildung B.2: Bildschirmoberfläche der Interviewerkomponente (1). Ganz oben befindet sich das Eingabefeld für das Verzeichnis, indem sich die zu untersuchenden Texte befinden (zusätzlich eine Kontrollbox, bei dessen Aktivierung nur die IE-Pipelines berechnet werden, ohne sie auszuführen).
Als Zweites ist eine alphabetisch sortierte Liste mit den zur Verfügung
stehenden Prioritätsreihenfolgen zu sehen, von denen eine ausgewählt
werden muss. An dritter Stellte befindet sich die Auswahl des Gütekriteriums, das für die topologische Sortierung der Filterverfahren des
Abhängigkeitsgraphen genutzt wird. Als Letztes kann in einem Eingabefeld der Name der resultierenden Pipeline eingegeben werden. Dieser
wird auch für die Serialisierung der XML-Deskriptoren benutzt.
143
B. Abbildungen
Abbildung B.3: Bildschirmoberfläche der Interviewerkomponente (2). Als Erstes ist eine Liste von Annotationstypen, die als mögliche Ziele der IE-Pipeline
ausgewählt werden können, zu sehen. Nach der Auswahl eines Annotationstyps können einzelne seiner Attribute mithilfe der dargestellten Kontrollboxen als Ziele ausgewählt werden. In der nächsten Liste können
der zu konstruierenden IE-Pipeline Filter hinzugefügt werden. Hierzu
ist der zu filternde Annotationstyp auszuwählen. Hat dieser Attribute
werden sie in einer zweiten Liste angezeigt und es lässt sich hier ein
zu filterndes Attribut auswählen. Dann kann der Filtertyp aus einer
Liste ausgewählt werden. Für jeden Filter lassen sich dann noch seine
Filtereigenschaften festlegen (zum Beispiel der reguläre Ausdruck eines Textfilters). Der Button Start XPS startet die Konstruktion und
Ausführung der IE-Pipeline mit den gemachten Eingaben. Der Button
Import new ontology information öffnet einen Dialog zum Importieren
des UIMA-Type System-Deskriptors und der UIMA-Analysis EngineDeskriptoren.
144
Abbildung B.4: Bildschirmoberfläche der Erklärungskomponente. Dieses Fenster wird
beim Start des Expertensystems geöffnet und zeigt das Arbeitsprotokoll
seit dem Programmstart des Expertensystems.
145
B. Abbildungen
Abbildung B.5: Bildschirmoberfläche der gefundenen Ergebnisse. Dieses Fenster wird
geöffnet, wenn das Expertensystem eine IE-Pipeline berechnen soll.
Nach der Berechnung wird die IE-Pipeline ausgeführt und die Ergebnisse werden in einer Listenstruktur in diesem Fenster angezeigt.
146
Anhang C
UML-Diagramme
147
C. UML-Diagramme
package Data[
Datamodel Type ]
«Singleton»
TypeHelper
*
*
Type
+clone()
...
-String uri
-String name
-String typeClass
subTypes
de.upb.mrose.xps.datamodel
type
provides
provides
TextType
0..1
*
*
annotationBaseType
activeFeature
allFeature
superType
OntologyMember
-String coveredText
-Map<Feature - String> featureText
de.upb.mrose.xps.knowledgebase
+TypeHelper getInstance()
+void reset()
+void setOntology( Ontology anOntology )
+Type getType( String typeUri )
+String getPathToTypeSystem()
+Feature getSuitableFeature( String featureName )
+boolean isSubTypeOf( Type possibleSubType, Type possibleSuperType )
+boolean isSuperTypeOf( Type possibleSuperType, Type possibleSubType )
+boolean hasFeatureConsiderSuperTypes( Type type, Feature feature )
+List<Type> getAllSubTypes( Type type )
+Type getHighestSuperTypeWithFeature( Type type, Feature feature )
+List<Type> getAllSuperTypeWithFeature( Type type, Feature feature )
+Set<Type> getAllTypes()
+Set<Type> getAllTypesWithAllPossibleFeatures()
+Collection<Feature> getAllFeaturesOfSuperTypes( Type type )
+boolean hasNoFeaturesConsiderBlackList( Type type, Collection<Feature> blackList )
Ontology
JenaOntology
Feature
-String uri
-String name
*
Abbildung C.1: Klassendiagramm des Datenmodells für das Package type. Die Klasse Type steht, wie in Abschnitt 6.1.2 beschrieben,
für einen bestimmten Annotationstyp aus der Ontologie. Er hat vor allem ein Attribut typeClass, welches die JavaKlasse angibt, die von UIMA für diesen Annotationstyp verwendet wird. Des Weiteren kann jeder Type einen Supertyp
haben und eine Reihe von Subtypen. Attribute eines Annotationstyps werden mit der Klasse Feature beschrieben.
Sie haben ihrerseits einen Basisannotationstyp. Ein Type hat eine Menge an möglichen Features und eine Menge von
aktiven Features. Hierdurch ist es möglich Types für Ein- und Ausgaben der Algorithmen zu nutzen. Ein TextType
ist ein spezieller Type, der für eine bestimmte Annotation eines Types steht. Hiermit kann der Text der Annotation
und der Text jedes einzelnen Features ausgedrückt werden. Type und Feature haben ein entsprechendes Element in
der Ontologie und sind daher OntologyMember. Der TypeHelper extrahiert alle möglichen Types und Features aus der
Ontologie und stellt sie dem Rest des Expertensystems zur Verfügung. Außerdem stellt er Helfermethoden bereit, um
zum Beispiel zu prüfen, ob ein Feature zu einem Type oder einem seiner Supertypen gehört.
148
149
Algorithm
Datamodel Algorithm]
Pipeline
JenaOntology
Ontology
provides
-String name
...
+AlgorithmHelper getInstance()
+void reset()
+void setOntology( Ontology anOntology )
«Singleton»
AlgorithmHelper
Abbildung C.2: Klassendiagramm des Datenmodells für das Package algorithm. Die Klasse Algorithm steht, wie in Abschnitt 6.1.2
beschrieben, für einen bestimmten Algorithmus aus der Ontologie. Sie hat vor allem als Attribute die Listen der
Eingabe- und Ausgabeannotationstypen (input und output) und die Werte der Gütekriterien (qualityCriteriaValues).
Außerdem enthält sie den Pfad zur entsprechenden Datei des UIMA Analysis Engine Descriptor (pathToAlgorithm).
Eine Pipeline besteht aus einer geordneten Menge von Algorithmen. Die Helferklasse AlgorithmHelper extrahiert alle
möglichen Algorithmen aus der Ontologie und stellt sie als Algorithm-Objekte dem restlichen Expertensystem zur
Verfügung.
OntologyMember
de.upb.mrose.xps.knowledgebase
algorithm
de.upb.mrose.xps.datamodel
-String uri
1..*
-String name
-String pathToAlgorithm
-Map<QualityCriterion - QualityCriterionValue> qualityCriteriaValues
-List<Type> input
*
-List<Type> output
-boolean isFilterProcedure
package Data[
C. UML-Diagramme
package Data[
Datamodel QualityCriterion]
«Singleton»
QualityCriterionHelper
...
de.upb.mrose.xps.datamodel
QualityCriterion
qualitycriterion
-String kind
-String metricName
-boolean isAccumulative
*
java.util.Comparator
«ordered»
baseOrder
+int compare( QualityCriterionValue arg0, QualityCriterionValue arg1 )
+int compare( Algorithm arg0, Algorithm arg1 )
*
QualityCriterionValueComputer
SimpleDoubleComputer
+QualityCriterionValue sum( QualityCriterionValue v1, QualityCriterionValue v2 )
+QualityCriterionValue sub( QualityCriterionValue v1, QualityCriterionValue v2 )
+QualityCriterionValue add( QualityCriterionValue v1, QualityCriterionValue v2 )
provides
provides
+QualityCriterionHelper getInstance()
provides
+void reset()
*
+void setOntology( Ontology anOntology )
provides
*
QualityCriterionValue
+double toDouble()
+QualityCriterionValue getZeroValue()
+QualityCriterionValue clone()
NumericQualityCriterionValue
-double value
OntologyMember
de.upb.mrose.xps.knowledgebase
Ontology
JenaOntology
has
*
«enumeration»
ComparsionFactor
BiggerIsBetter
SmallerIsBetter
*
QualityCriteriaOrder
implies
Abbildung C.3: Klassendiagramm des Datenmodells für das Package qualityCriterion. Die Klasse QualityCriterion steht, wie in Abschnitt 6.1.2 beschrieben, für ein bestimmtes Gütekriterium aus der Ontologie. Sie hat als Ordnung einen ComparsionFactor, der aus einer Enumeration gewählt wird, entsprechend den in der Ontologie hinterlegten Informationen.
Durch die Implementierung der Schnittstelle Comparator kann ein QualityCriterion zwei Algorithmen vergleichen.
Hierzu werden die entsprechenden Werte des Gütekriteriums für jeden Algorithmus bestimmt und dann entsprechend des eingestellten ComparsionFactor verglichen. Dabei werden die Fließkommawerte der mit QualityCriterionValue bezeichneten Werte betrachtet. Hierzu hat jedes QualityCriterionValue-Objekt eine toDouble()-Methode. Im
Expertensystem wird das NumericQualityCriterionValue benutzt, welches einen numerischen Wert darstellt. Zum
Verrechnen der QualityCriterionValue-Objekte existiert die Schnittstelle QualityCriterionValueComputer mit der Implementierung SimpleDoubleComputer für Fließkommazahlen. Mit QualityCriteriaOrder werden die Priorisierungen
aus der Ontologie abgebildet. Dazu besteht jede dieser Priorisierungen aus eine geordneten Menge von QualityCriterion Objekten sowie eine Menge von impliziten QualityCriteriaOrder Objekten. Die Helferklasse QualityCriterionHelper
extrahiert die Informationen aus der Ontologie und stellt alle vom Expertensystem benötigten Objekte bereit.
150
151
Filter
Datamodel Filter]
NumberFilter
StandardFilter
OntologyMember
JenaOntology
Ontology
de.upb.mrose.xps.knowledgebase
StandardNumberFilter
StandardTextFilter
+void setRegexToMatch( String regexToMatch )
+String getRegexToMatch()
TextFilter
«Singleton»
FilterInformation
FilterHelper
-String uri
provides
-String filterImplementationClass
+FilterHelper getInstance()
*
-String filterName
+void reset()
-Map<String - String> filterPropertyNameToDatatype
+void setOntology( Ontology anOntology )
...
-Map<String - Object> filterPropertyNameToValue
+void setLowerValueConstraint( Double valueConstraintLow )
+void setUpperValueConstraint( Double valueConstraintHigh )
+Double getLowerValueConstraint()
+Double getUpperValueConstraint()
creates
filter
de.upb.mrose.xps.datamodel
Abbildung C.4: Klassendiagramm des Datenmodells für das Package filter. Ein Filter hat einen Annotationstyp, den er filtern soll, und
eine Methode filter zum Filtern. Die drei Schnittstellen DateFilter, NumberFilter, TextFilter sowie die dazugehörigen
Standardimplementierungen StandardDataFilter, -NumberFilter und -TextFilter wurden in Abschnitt 5.4.2 vorgestellt.
Die abstrakte Basisklasse StandardFilter implementiert für alle Implementierungen notwendige Basisfunktionalitäten,
wie das Setzen des zu filternden Annotationstyps. Objekte der Klasse FilterInformation enthalten die Informationen
über einen Filter, erstellt mit Informationen der Ontologie und konkreter Werte für die Eigenschaften des Filters
durch die Eingaben aus der grafischen Benutzeroberfläche. Aus diesen Informationen kann ein FilterInformationObjekt mittels der Java-Reflection API einen Filter instantiieren und konfigurieren. Die Helferklasse FilterHelper
extrahiert aus der Ontologie die Filterinformationen und stellt sie dem Rest des Expertensystems zur Verfügung.
StandardDateFilter
+void setFrom( String from )
+String getFrom()
+void setTo( String to )
+String getTo()
+void setFormat( String format )
+String getFormat()
DateFilter
+Object filter( Object input )
+Type getTypeToFilter()
+setTypeToFilter( Type typeToFilter )
+String getName()
package Data[
C. UML-Diagramme
package Data[
KnowledgeBase ]
de.upb.mrose.xps.knowledgebase
OntologyTypeSystem
OntologyMember
Ontology
-List<String> typeSystemOntologyElements
+String getUri()
JenaOntology
OntologyAlgorithm
-List<String>algorithmOntologyElements
Abbildung C.5: Klassendiagramm der Wissensbasis. Die Schnittstelle Ontology und die
Implementierung JenaOntology wurden bereits in Abschnitt 6.1.1 vorgestellt. Die beiden abstrakten Klassen OntologyTypeSystem und OntologyAlgorithm enthalten die Referenzen auf die URIs der einzelnen
Elemente der Ontologie. Ein OntologyMember hat einen Entsprechung
in der Ontologie und dementsprechend einen URI.
152
package Data[
OntologyImporter ]
de.upb.mrose.xps.knowledgeimport
ImportJob
OntologyImporter
-File instancesFile
-Model baseModel
+Ontology importInstances( ImportJob importJob )
UimaImportJob
needs
uima
UimaOntologyImporter
buildsUp
-File typeSystemDeskriptor
-File analysisEngineDirectory
AnalysisEngineImporter
TypeSystemImporter
de.upb.mrose.xps.knowledgebase
Ontology
JenaOntology
Abbildung C.6: Klassendiagramm der OntologyImporter -Komponente. Die Implementierung UimaOntologyImporter besteht aus zwei Teilen. Der AnalysisEngineImporter importiert die Informationen aus den Deskriptoren der
Analysis Engines. Der TypeSystemImporter importiert die Informationen aus dem Deskriptor des Type System. Damit diese Importer arbeiten können, wird ein UimaImportJob benötigt. In diesem sind die
Verweise auf die jeweiligen Deskriptoren gespeichert.
153
C. UML-Diagramme
package Data[
Plan
ProblemSolver ]
produces
ProblemSolver
UimaNumberFilter
for goal normalizing
GoalNormalizer
uima
UimaTextFilter
for pipeline execution
PipelineExecutor
UimaAggragateEngineExecutor
to transform filter to UimaFilter UimaPipelineConstructor
to create UIMA descriptor files
UimaGoalNormalizer
UimaDateFilter
UimaFilter
*
creates
UimaFilterFactory
DominatedAlgorithmEliminator
PipelineOptimizer
for pipeline optimization
de.upb.mrose.xps.problemsolver
DefaultAlgorithmSelector
AlgorithmSelector
algorithmselector
to select best algorithm for given goal
for pipeline computation
PlannerProblemSolver
planner
+List<TextType> solveProblem( Problem problem )
Planner
pop
SpecializedTopSort
...
SpecializedPartialOrderPlanner
PartialOrderPlanner
produces
+getOrderedAlgorithms()
PartialPlan
to linearize DAG
linearization
uses
Linearization
StandardTopologicalSort
Abbildung C.7: Klassendiagramm der ProblemSolver -Komponente. Die Beziehungen zwischen den einzelnen Komponenten wurden
bereits in Abschnitt 6.1.3 vorgestellt. Eine Besonderheit stellt der Partial Plan dar. Er ist eine Spezialisierung der
Plan-Klasse. Die topologische Sortierung des intern gehaltenen DAG ist ein Teil von ihm. Sie wird immer dann durchgeführt, wenn die Methode getOrderedAlgorithms aufgerufen wird. Die SpecializedTopSort genannte Implementierung
der Linearization benötigt selbst eine Standard-topologische Sortierung, welche in StandardTopologicalSort implementiert ist. Für die Erstellung der UIMA-Pipeline braucht die Klasse UimaAggregateEngineExecutor die Hilfe einer
Instanz von UimaPipelineConstructor. Mit ihrer Hilfe werden die Deskriptoren dynamisch erzeugt (siehe Abschnitt
5.4.2). Für die Umwandlung eines Filters in einen UimaFilter wird das Singleton UimaFilterFactory benutzt.
154
155
ProblemSolver ]
12: textTypes
1: calculateResults(Problem problem)
: DominatedAlgorithmEliminator
10: textTypes
9: executePipeline(optimizedPipeline, problem.filter, problem.goals, inputTexts)
8: optimizedPipeline
7: optimizePipeline(pipelineForPartialPlan, qualityCriteriaOrder)
6: partialPlan
5: buildPlan(allAlgorithms, normalizedGoals, problem.qualityCriteriaOrder)
4: normalizedGoals
: SpecializedPartialOrderPlanner
Abbildung C.8: Sequenzdiagramm mit Beispielablauf in der Problemlösungskomponente
11: textTypes
: UimaGoalNormalizer
3: normalizeGoals(problem.goals)
: PlannerProblemSolver
2: solveProblem(Problem problem)
: ExpertSystemWithPlanner
interaction ProblemSolver[
: UimaAggragateEngineExecutor
Anhang D
Inhalte der beigefügten DVD
Auf der dieser Arbeit beigefügten DVD befindet sich sowohl die Implementierung
des fertigen Expertensystems, als auch diese Arbeit in digitaler Form im PDFFormat. Folgende Inhalte sind auf der DVD zu finden:
• /MRoseMA.pdf ist die digitale Version der vorliegenden Arbeit.
• /Implementierung/ExpertSystemUsage.txt bietet eine Anleitung zum
Starten und Verwenden des implementierten Expertensystems.
• /Implementierung/EfXTools/ enthält die vom Expertensystem verwendeten UIMA-Algorithmen (/src/ ) sowie deren Deskriptoren (/desc/ ), das
Typensystem (/desc/uimaTypeSystem.xml ) und die für die Evaluierung verwendete Textmenge (/data/RevenueCorpus/xmi/test/ ).
• /Implementierung/XPS/ enthält die gesamte Implementierung des Expertensystems.
• /Implementierung/XPS/src/ enthält den Quellcode des Expertensystems.
• /Implementierung/XPS/model/ enthält die Ontologie. Die Grundontologie ist zur einfacheren Wartung in die beiden Teile typeSystem.owl und
algorithm.owl aufgeteilt. Beide Ontologien enthalten noch keine Informationen über konkrete Algorithmen und Annotationstypen. Diese Informationen
werden von den beiden Importern der Ontologie hinzugefügt. Die endgültige
Ontologie mit allen Algorithmen und Annotationstypen ist in populatedOntology.owl zu finden. Diese Ontologie wird auch automatisch beim Start des
Expertensystems benutzt.
157
Literatur
[Agi05]
Agichtein, Eugene: Scaling Information Extraction to Large Document Collections. In: IEEE Data Engineering Bulletin, 2005
[AH03]
Antoniou, Grigoris; Harmelen, Frank V.: Web Ontology Language: OWL. In: Handbook on Ontologies in Information Systems,
Springer, 2003, S. 67–92
[BBHN10]
Björkelund, Anders; Bohnet, Bernd; Hafdell, Love; Nugues,
Pierre: A high-performance syntactic and semantic dependency parser. In: Proceedings of the 23rd International Conference on Computational Linguistics: Demonstrations. Stroudsburg, PA, USA : Association for Computational Linguistics, 2010 (COLING ’10), S. 33–36
[BCS+ 07]
Banko, Michele; Cafarella, Michael J.; Soderl, Stephen;
Broadhead, Matt; Etzioni, Oren: Open information extraction
from the web. In: In IJCAI, 2007, S. 2670–2676
[BDGRL09] Bobillo, Fernando; Delgado, Miguel; Gómez-Romero, Juan;
López, Enrique: A semantic fuzzy expert system for a fuzzy balanced scorecard. In: Expert Syst. Appl. 36 (2009), Januar, Nr. 1, S.
423–433. – ISSN 0957–4174
[BFL+ 07]
Bouillet, Eric; Feblowitz, Mark; Liu, Zhen; Ranganathan,
Anand; Riabov, Anton: A Knowledge Engineering and Planning
Framework based on OWL Ontologies. In: Proceedings of the Second
International Competition on Knowledge Engineering., 2007
[BG94]
Buckland, Michael; Gey, Fredric: The relationship between recall
and precision. In: J. Am. Soc. Inf. Sci. 45 (1994), Januar, Nr. 1, S.
12–19. – ISSN 0002–8231
[BHL01]
Berners-Lee, Tim; Hendler, James; Lassila, Ora: The Semantic Web. In: Scientific American 284 (2001), Nr. 5, S. 34–43
[BHS07]
Baader, Franz; Horrocks, Ian; Sattler, Ulrike: Description
Logics. In: van Harmelen, Frank (Hrsg.); Lifschitz, Vladimir
(Hrsg.); Porter, Bruce (Hrsg.): Handbook of Knowledge Representation. Elsevier, 2007
159
Literatur
[BKI06]
Beierle, Christoph; Kern-Isberner, Gabriele: Methoden wissensbasierter Systeme. Grundlagen – Algorithmen – Anwendungen. 3.
Wiesbaden : Vieweg, 2006
[BLFM05]
Berners-Lee, T.; Fielding, R.; Masinter, L.: Uniform Resource
Identifier (URI): Generic Syntax, Januar 2005. – Internet RFC 3986
[BN03]
Baader, Franz; Nutt, Werner ; Baader, Franz (Hrsg.); Calvanese, Diego (Hrsg.); McGuinness, Deborah L. (Hrsg.); Nardi,
Daniele (Hrsg.); Patel-Schneider, Peter F. (Hrsg.): The description logic handbook: theory, implementation, and applications. New
York, NY, USA : Cambridge University Press, 2003. – ISBN 0–521–
78176–0
[Boh10]
Bohnet, Bernd: Very high accuracy and fast dependency parsing is
not a contradiction. In: Proceedings of the 23rd International Conference on Computational Linguistics. Stroudsburg, PA, USA : Association for Computational Linguistics, 2010 (COLING ’10), S. 89–97
[Bri08]
Briggs, Tom: Constraint Generation and Reasoning in OWL, University of Maryland, Baltimore County, Dissertation, November 2008
[BS84]
Buchanan, Bruce G.; Shortliffe, Edward H.: Rule Based Expert
Systems: The Mycin Experiments of the Stanford Heuristic Programming Project (The Addison-Wesley series in artificial intelligence).
Boston, MA, USA : Addison-Wesley Longman Publishing Co., Inc.,
1984. – ISBN 0201101726
[BS85]
Brachman, Ronald J.; Schmolze, James G.: An Overview of the
KL-ONE Knowledge Representation System. In: Cognitive Science:
A Multidisciplinary Journal 9 (1985), Nr. 2, S. 171–216
[BS00]
Baader, Franz; Sattler, Ulrike: An Overview of Tableau Algorithms for Description Logics. In: Studia Logica 69 (2000), S. 2001
[CAO+ 08]
Castillo, Luis A.; Armengol, Eva; Onaindia, Eva; Sebastiá, Laura; González-Boticario, Jesús; Rodrı́guez, Antonio;
Fernández, Susana; Arias, Juan D.; Borrajo, Daniel: samap:
An user-oriented adaptive system for planning tourist visits. In:
Expert Syst. Appl. 34 (2008), Nr. 2, S. 1318–1332
[CFoGpP06] Castillo, Luis; Fdez-olivares, Juan; Óscar Garcı́a-pérez;
Palao, Francisco: Efficiently handling temporal knowledge in an
HTN planner. In: In Sixteenth International Conference on Automated Planning and Scheduling, ICAPS, AAAI, 2006, S. 63–72
160
Literatur
[CGD+ 09]
Chen, Fei; Gao, Byron J.; Doan, AnHai; Yang, Jun; Ramakrishnan, Raghu: Optimizing complex extraction programs over evolving text data. In: Proceedings of the 35th SIGMOD international
conference on Management of data. New York, NY, USA : ACM,
2009 (SIGMOD ’09). – ISBN 978–1–60558–551–2, S. 321–334
[CGT89]
Ceri, S.; Gottlob, G.; Tanca, L.: What You Always Wanted to
Know About Datalog (And Never Dared to Ask). In: IEEE Trans.
on Knowl. and Data Eng. 1 (1989), March, S. 146–166. – ISSN
1041–4347
[CSL+ 03]
Clark, R. N.; Swayze, G. A.; Livo, K. E.; Kokaly, R. F.; Sutley, S. J.; Dalton, J. B.; McDougal, R. R.; Gent, C. A.: Imaging spectroscopy: Earth and planetary remote sensing with the USGS Tetracorder and expert systems. In: Journal of Geophysical Research 108 (2003), dec, S. 1–44
[CSRL01]
Cormen, Thomas H.; Stein, Clifford; Rivest, Ronald L.; Leiserson, Charles E.: Introduction to Algorithms. 2nd. McGraw-Hill
Higher Education, 2001. – ISBN 0070131511
[Cun05]
Cunningham, H.: Information Extraction, Automatic. In: Encyclopedia of Language and Linguistics, 2nd Edition (2005)
[Cur03]
Curran, James R.: Blueprint for a high performance NLP infrastructure. In: SEALTS ’03: Proceedings of the HLT-NAACL 2003
workshop on Software engineering and architecture of language technology systems. Morristown, NJ, USA : Association for Computational Linguistics, 2003, S. 39–44
[CVDN09]
Chai, Xiaoyong; Vuong, Ba-Quy; Doan, AnHai; Naughton,
Jeffrey F.: Efficiently incorporating user feedback into information extraction and integration programs. In: Proceedings of the 35th
SIGMOD international conference on Management of data. New
York, NY, USA : ACM, 2009 (SIGMOD ’09). – ISBN 978–1–60558–
551–2, S. 87–100
[DDM05]
Dezsényi, Csaba; Dobrowiecki, Tadeusz; Mészáros, Tamás: Information Extraction with AI Planning. In: Proceedings of 6th International Symposium of Hungarian Researchers on Computational
Intelligence, 2005
[Deb05]
Deb, Kalyanmoy: Multiobjective Optimization. In: Search Methodologies 79 (2005), Nr. 4, S. 273–316
161
Literatur
[DGHP99]
D’Agostino, Marcello (Hrsg.); Gabbay, Dov M. (Hrsg.); Hähnle,
Reiner (Hrsg.); Posegga, Joachim (Hrsg.): Handbook of Tableau
Methods. Springer, 1999. – ISBN 978–0–7923–5627–1
[Dur08]
Durcı́k, Zoltán: Automated web service composition with knowledge approach. In: Information Sciences and Technologies Bulletin
of the ACM Slovakia 2 (2008), December, Nr. 2, S. 30–38
[EBPL08]
Ekaterina Buyko, Christian C.; Pareja-Lora, Antonio:
Ontology-Based Interface Specifications for a NLP Pipeline Architecture. In: Nicoletta Calzolari (Conference Chair),
Bente Maegaard Joseph Mariani Jan Odjik Stelios Piperidis Daniel T. (Hrsg.): Proceedings of the Sixth International Conference on
Language Resources and Evaluation (LREC’08). Marrakech, Morocco : European Language Resources Association (ELRA), may
2008. – http://www.lrec-conf.org/proceedings/lrec2008/. – ISBN
2–9517408–4–0
[ES07]
Eilebrecht, Karl; Starke, Gernot: Patterns kompakt - Entwurfsmuster für effektive Software-Entwicklung (2. Aufl.). Spektrum Akademischer Verlag, 2007. – I–VI, 1–158 S. – ISBN 978–3–8274–1591–2
[FGH90]
Frühwirth, Thom; Gottlob, Georg; Horn, Werner: Expertensysteme. Springer, B., 1990. – ISBN 3211822216
[FGM05]
Finkel, Jenny R.; Grenager, Trond; Manning, Christopher: Incorporating non-local information into information extraction systems by Gibbs sampling. In: Proceedings of the 43rd Annual Meeting on Association for Computational Linguistics. Stroudsburg, PA,
USA : Association for Computational Linguistics, 2005 (ACL ’05),
S. 363–370
[FH03]
Friedman-Hill, E.: Jess in Action: Rule-Based Systems in Java.
Manning Publications Co., 2003
[FL03]
Fox, Maria; Long, Derek: PDDL2.1: An extension to PDDL for
expressing temporal planning domains. In: Journal of Artificial Intelligence Research 20 (2003), S. 2003
[FN71]
Fikes, Richard E.; Nilsson, Nils J.: Strips: A new approach to
the application of theorem proving to problem solving. In: Artificial
Intelligence 2 (1971), Nr. 3-4, S. 189–208
[FS84]
Fox, M. S.; Smith, S. F.: ISIS: a knowledge-based system for factory
scheduling. In: Expert Systems 1 (1984), Juli, Nr. 1, S. 25–49
162
Literatur
[GDDD04]
Gasevic, Dragan; Djuric, Dragan; Devedzic, Vladan; Damjanovi, Violeta: Converting UML to OWL ontologies. In: Proceedings
of the 13th international World Wide Web conference on Alternate
track papers & posters. New York, NY, USA : ACM, 2004 (WWW
Alt. ’04). – ISBN 1–58113–912–8, S. 488–489
[Gru93]
Gruber, Thomas R.: A translation approach to portable ontology
specifications. In: KNOWLEDGE ACQUISITION 5 (1993), S. 199–
220
[Hau00]
Haun, M.:
Wissensbasierte Systeme.: Eine praxisorientierte
Einführung. Expert-Verl., 2000 (Edition expertsoft). – ISBN
9783816916772
[HBT+ 07]
Hahn, Udo; Buyko, Ekaterina; Tomanek, Katrin; Piao, Scott;
McNaught, John; Tsuruoka, Yoshimasa; Ananiadou, Sophia:
An Annotation Type System for a Data-Driven NLP Pipeline. In:
Proceedings of the Linguistic Annotation Workshop, Association for
Computational Linguistics, 2007, S. 33–40
[HFM+ 05]
Hanisch, Daniel; Fundel, Katrin; Mevissen, Heinz-Theodor;
Zimmer, Ralf; Fluck, Juliane: ProMiner: rule-based protein and
gene entity recognition. In: BMC Bioinformatics 6 (2005), Nr. Suppl
1, S. S14. – ISSN 1471–2105
[HH08]
Hartanto, Ronny; Hertzberg, Joachim: Fusing DL Reasoning
with HTN Planning. In: Proceedings of the 31st annual German
conference on Advances in Artificial Intelligence. Berlin, Heidelberg
: Springer-Verlag, 2008 (KI ’08). – ISBN 978–3–540–85844–7, S.
62–69
[HHF+ 10]
Hogenboom, Frederik; Hogenboom, Alexander; Frasincar, Flavius; Kaymak, Uzay; van der Meer, Otto; Schouten, Kim;
Vandic, Damir: SPEED: A Semantics-Based Pipeline for Economic
Event Detection. In: Jeffrey Parsons (Hrsg.); Motoshi Saeki
(Hrsg.); Peretz Shoval (Hrsg.); Carson C. Woo (Hrsg.); Yair
Wand (Hrsg.): Conceptual Modeling - ER 2010, 29th International
Conference on Conceptual Modeling, Vancouver, BC, Canada, November 1-4, 2010. Proceedings Bd. 6412, Springer, 2010. – ISBN
978–3–642–16372–2, S. 452–457
[HKR08]
Hitzler, Pascal; Krötzsch, Markus; Rudolph, Sebastian: Semantic web : Grundlagen. Berlin [u.a.] : Springer, 2008. – ISBN
3–540–33993–9
163
Literatur
[HN01]
Hoffmann, Jörg; Nebel, Bernhard: The FF Planning System: Fast
Plan Generation Through Heuristic Search. In: Journal of Artificial
Intelligence Research 14 (2001), S. 253–302
[Hof03]
Hoffmann, Jörg: The Metric-FF Planning System: Translating
Ignoring Delete Lists“ to Numeric State Variables. In: Journal of
”
Artificial Intelligence Research. Special issue on the 3rd International
Planning Competition (2003)
[Hof10]
Hofweber, Thomas: Logic and Ontology. In: Zalta, Edward N.
(Hrsg.): The Stanford Encyclopedia of Philosophy. Fall 2010. 2010
[Hor08]
Horrocks, Ian: Ontologies and the Semantic Web. In: Communications of the ACM 51 (2008), Nr. 12, S. 58–67. – ISSN 0001–0782
[HPSB+ 04] Horrocks, Ian; Patel-Schneider, Peter F.; Boley, Harold; Tabet, Said; Grosof, Benjamin; Dean, Mike: SWRL: A Semantic
Web Rule Language Combining OWL and RuleML / World Wide
Web Consortium. 2004. – W3C Member Submission
[HPSH02]
Horrocks, Ian; Patel-Schneider, Peter F.; van Harmelen,
Frank: Reviewing the Design of DAML+OIL: An Ontology Language for the Semantic Web. In: IN PROC. OF THE 18TH NAT.
CONF. ON ARTIFICIAL INTELLIGENCE (AAAI 2002, AAAI
Press, 2002, S. 792–797
[JDH99]
Junker, Markus; Dengel, Andreas; Hoch, Rainer: On the Evaluation of Document Analysis Components by Recall, Precision, and
Accuracy. In: Proceedings of the Fifth International Conference on
Document Analysis and Recognition. Washington, DC, USA : IEEE
Computer Society, 1999 (ICDAR ’99). – ISBN 0–7695–0318–7, S.
713–
[JM08]
Jurafsky, Daniel; Martin, James H.: Speech and Language Processing (2nd Edition) (Prentice Hall Series in Artificial Intelligence).
2. Prentice Hall, 2008. – ISBN 0131873210
[KC04]
Klyne, Graham; Carroll, Jeremy J.: Resource Description Framework (RDF): Concepts and Abstract Syntax. In: Structure 10
(2004), Nr. February, S. 1–20
[KDM+ 10]
Kano, Y.; Dorado, R.; McCrochon, L.; Ananiadou, S.; Tsujii,
J.: U-Compare: An integrated language resource evaluation platform
including a comprehensive UIMA resource library. In: Proceedings
of the Seventh International Conference on Language Resources and
Evaluation (LREC 2010), 2010, S. 428–434
164
Literatur
[KG05]
Klusch, Matthias; Gerber, Andreas: Semantic web service composition planning with OWLS-XPlan. In: In Proceedings of the 1st
Int. AAAI Fall Symposium on Agents and the Semantic Web, 2005,
S. 55–62
[KGK93]
Kruse, R.; Gebhardt, J.; Klawonn, F.: Fuzzy-Systeme. Teubner,
1993. – ISBN 9783519021308
[KL89]
Kifer, Michael; Lausen, Georg: F-logic: a higher-order language
for reasoning about objects, inheritance, and scheme. In: Proceedings
of the 1989 ACM SIGMOD international conference on Management
of data. New York, NY, USA : ACM, 1989 (SIGMOD ’89). – ISBN
0–89791–317–5, S. 134–146
[KLR+ 09]
Krishnamurthy, Rajasekar; Li, Yunyao; Raghavan, Sriram;
Reiss, Frederick; Vaithyanathan, Shivakumar; Zhu, Huaiyu: SystemT: a system for declarative information extraction. In: SIGMOD
Rec. 37 (2009), March, S. 7–13. – ISSN 0163–5808
[KNS+ 08]
Kano, Yoshinobu; Nguyen, Ngan; Saetre, Rune; Yoshida, Kazuhiro; Miyao, Yusuke; Tsuruoka, Yoshimasa; Matsubayashi,
Yuichiro; Ananiadou, Sophia; Tsujii, Jun’ichi: Filling the Gaps
Between Tools and Users: A Tool Comparator, Using ProteinProtein Interactions as an Example. In: Proceedings of the Pacific
Symposium on Biocomputing (PSB), Pacific Symposium on Biocomputing, 2008, S. 616–627
[KPHK95]
Kim, K.H.; Park, J.K.; Hwang, K.J.; Kim, S.H.: Implementation
of hybrid short-term load forecasting system using artificial neural
networks and fuzzy expert systems. In: IEEE Transactions on Power
Systems 10 (1995), Nr. 3, S. 1534–1539
[Law08]
Lawrynowicz, A.: Integration of production planning and scheduling using an expert system and a genetic algorithm. In: Journal of
the Operational Research Society 59 (2008), Nr. 4, S. 1318–1332
[Lia05]
Liao, Shu-Hsien: Expert System Methodologies and Applications
– A Decade Review from 1995 to 2004. In: Expert Systems with
Applications 28 (2005), Nr. 1, S. 93–103
[Lie06]
Liebig, Thorsten: Reasoning with OWL – System Support and
Insights – / Ulm University. Ulm, Germany, September 2006 (
TR-2006-04). – Forschungsbericht
[LLBN09]
Luther, Marko; Liebig, Thorsten; Böhm, Sebastian; Noppens,
Olaf: Who the Heck Is the Father of Bob? In: Proceedings of the
165
Literatur
6th European Semantic Web Conference on The Semantic Web: Research and Applications. Berlin, Heidelberg : Springer-Verlag, 2009
(ESWC 2009 Heraklion). – ISBN 978–3–642–02120–6, S. 66–80
[LRR07]
Liu, Zhen; Ranganathan, Anand; Riabov, Anton: Use of OWL
for Describing Stream Processing Components to Enable Automatic
Composition. In: Christine Golbreich (Hrsg.); Aditya Kalyanpur (Hrsg.); Bijan Parsia (Hrsg.): Proceedings of the OWLED 2007 Workshop on OWL: Experiences and Directions, Innsbruck, Austria, June 6-7, 2007 Bd. 258, CEUR-WS.org, 2007
[MA04]
Marler, R. T.; Arora, J. S.: Survey of multi-objective optimization methods for engineering. In: Structural and Multidisciplinary
Optimization 26 (2004), April, Nr. 6, S. 369–395. – ISSN 1615–147X
[McB04]
McBride, Brian: The Resource Description Framework (RDF) and
its Vocabulary Description Language RDFS. In: In Handbook on
Ontologies, 2004, S. 51–66
[MGH+ 98]
Mcdermott, D.; Ghallab, M.; Howe, A.; Knoblock, C.; Ram,
A.; Veloso, M.; Weld, D.; Wilkins, D.: PDDL - The Planning
Domain Definition Language / Yale Center for Computational Vision and Control,. 1998 ( TR-98-003). – Forschungsbericht
[MH69]
McCarthy, John; Hayes, Patrick J.: Some Philosophical Problems from the Standpoint of Artificial Intelligence. In: Meltzer,
B. (Hrsg.); Michie, D. (Hrsg.): Machine Intelligence 4. Edinburgh
University Press, 1969. – reprinted in McC90, S. 463–502
[MHF03]
Mahabir, C.; Hicks, F. E.; Fayek, A. R.: Application of fuzzy logic
to forecast seasonal runoff. In: Hydrological Processes 17 (2003), Nr.
18, S. 3749–3762. – ISSN 1099–1085
[MNPW98] Muscettola, Nicola; Nayak, Pandurang P.; Pell, Barney; Williams, Brian C.: Remote Agent: To Boldly Go Where No AI System
Has Gone Before. In: Artificial Intelligence 103 (1998), Nr. 1–2, S.
5–47
[Mot06]
Motik, Boris: Reasoning in Description Logics using Resolution
and Deductive Databases, Universitaet Karlsruhe (TH), Karlsruhe,
Germany, Dissertation, January 2006
[NGT04]
Nau, Dana; Ghallab, Malik; Traverso, Paolo: Automated Planning: Theory & Practice. San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 2004. – ISBN 1558608567
166
Literatur
[NHK+ 07]
Nivre, Joakim; Hall, Johan; Kübler, Sandra; Mcdonald, Ryan;
Nilsson, Jens; Riedel, Sebastian; Yuret, Deniz: The CoNLL 2007
Shared Task on Dependency Parsing. In: Proceedings of the CoNLL
Shared Task Session of EMNLP-CoNLL 2007. Prague, Czech Republic : Association for Computational Linguistics, Juni 2007, S.
915–932
[Nil98]
Nilsson, Nils J.: Artificial Intelligence: A New Synthesis. 1st. San
Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 1998. –
ISBN 1558605355
[Pap94]
Papadimitriou, Christosv H.: Computational complexity. AddisonWesley Reading, MA, 1994
[Pee04]
Peer, Joachim: A PDDL Based Tool for Automatic Web Service Composition. In: In Proceedings of the Second Intl Workshop
on Principles and Practice of Semantic Web Reasoning (PPSWR,
Springer Verlag, 2004, S. 149–163
[Pep00]
Pepper, S.: The TAO of Topic Maps. In: Proceedings of XML
Europe, 2000
[PGJ08]
Prcela, Marin; Gamberger, Dragan; Jovic, Alan: Semantic Web
Ontology Utilization for Heart Failure Expert System Design. In:
Andersen, Stig K. (Hrsg.); Klein, Gunnar O. (Hrsg.); Schulz,
Stefan (Hrsg.); Aarts, Jos (Hrsg.): MIE Bd. 136, IOS Press, 2008.
– ISBN 978–1–58603–864–9, S. 851–856
[PMBT05]
Pistore, M.; Marconi, A.; Bertoli, P.; Traverso, P.: Automated composition of web services by planning at the knowledge level.
In: Proceedings of the 19th international joint conference on Artificial intelligence, Morgan Kaufmann Publishers Inc, 2005 (IJCAI’05),
S. 1252–1259
[PNLH09]
Palaga, Peter; Nguyen, Long; Leser, Ulf; Hakenberg, Jörg:
High-performance information extraction with AliBaba. In: Proceedings of the 12th International Conference on Extending Database
Technology: Advances in Database Technology. New York, NY, USA
: ACM, 2009 (EDBT ’09). – ISBN 978–1–60558–422–5, S. 1140–1143
[Pup91]
Puppe, Frank: Einführung in Expertensysteme. Springer Verlag,
1991. – Studienreihe Informatik, 2. Auflage
[RL06]
Riabov, Anton; Liu, Zhen: Scalable Planning for Distributed
Stream Processing Systems. In: Derek Long (Hrsg.); Stephen
F. Smith (Hrsg.); Daniel Borrajo (Hrsg.); Lee McCluskey
(Hrsg.): Proceedings of the Sixteenth International Conference on
167
Literatur
Automated Planning and Scheduling, ICAPS 2006, Cumbria, UK,
June 6-10, 2006, AAAI, 2006. – ISBN 978–1–57735–270–9, S. 31–41
[RM99]
Rodionov, S. N.; Martin, J. H.: An Expert System-Based Approach to Prediction of Year-to-Year Climatic Variations in the
North Atlantic Region. In: International Journal of Climatology 19
(1999), Nr. 9, S. 951–974
[RMBCO07] R-Moreno, Marı́a D.; Borrajo, Daniel; Cesta, Amedeo; Oddi,
Angelo: Integrating planning and scheduling in workflow domains.
In: Expert Syst. Appl. 33 (2007), August, S. 389–406. – ISSN 0957–
4174
[RN04]
Russell, Stuart; Norvig, Peter: Künstliche Intelligenz. Ein moderner Ansatz. Bd. 2,. Pearson Studium, 2004. – ISBN 3–8273–7089–2
[RS04]
Rao, Jinghai; Su, Xiaomeng: A Survey of Automated Web Service
Composition Methods. In: In Proceedings of the First International
Workshop on Semantic Web Services and Web Process Composition,
SWSWPC 2004, 2004, S. 43–54
[Sar08]
Sarawagi, Sunita: Information Extraction. In: Foundations and
Trends in Databases 1 (2008), Nr. 3, S. 261–377
[SBLH06]
Shadbolt, Nigel; Berners-Lee, Tim; Hall, Wendy: The Semantic Web Revisited. In: IEEE Intelligent Systems 21 (2006), July, Nr.
3, S. 96–101
[Sch94]
Schmid, Helmut: Probabilistic Part-of-Speech Tagging Using Decision Trees. In: Proceedings of the International Conference on New
Methods in Language Processing. Manchester, UK, 1994
[SCS09]
Shue, Li-Yen; Chen, Ching-Wen; Shiue, Weissor: The development
of an ontology-based expert system for corporate financial rating. In:
Expert Syst. Appl. 36 (2009), March, S. 2130–2142. – ISSN 0957–
4174
[SdF03]
Sheshagiri, Mithun; desJardins, Marie; Finin, Timothy: A Planner for Composing Services Described in DAML-S. In: Proceedings
of the AAMAS Workshop on Web Services and Agent-based Engineering, 2003
[SDNR07]
Shen, Warren; Doan, AnHai; Naughton, Jeffrey F.; Ramakrishnan, Raghu: Declarative information extraction using datalog with
embedded extraction predicates. In: Proceedings of the 33rd international conference on Very large data bases, VLDB Endowment, 2007
(VLDB ’07). – ISBN 978–1–59593–649–3, S. 1033–1044
168
Literatur
[SMGW05]
Stein, Benno; Meyer zu Eissen, Sven; Gräfe, Gernot; Wissbrock, Frank: Automating Market Forecast Summarization from
Internet Data. In: Isaı́as, Pedro (Hrsg.); Nunes, Miguel B. (Hrsg.):
Fourth International Conference on WWW/Internet, Lisbon, Portugal, IADIS Press, Oktober 2005, S. 395–402
[SPG+ 07]
Sirin, E; Parsia, B; Grau, BC; Kalyanpur, A; Katz, Y: Pellet:
A practical OWL-DL reasoner. In: Journal of Web Semantics 5
(2007), June, Nr. 2, S. 51–53. – ISSN 1570–8268
[SR02]
Sebastiani, Fabrizio; Ricerche, Consiglio Nazionale D.: Machine
Learning in Automated Text Categorization. In: ACM Computing
Surveys 34 (2002), S. 1–47
[TH06]
Tsarkov, D.; Horrocks, I.: FaCT++ Description Logic Reasoner:
System Description. In: Proc. of the Int. Joint Conf. on Automated
Reasoning (IJCAR 2006) Bd. 4130, Springer, 2006, S. 292–297
[Tob01]
Tobies, Stephan: Complexity Results and Practical Algorithms for
Logics in Knowledge Representation, Rheinisch-Westfaelischen Technischen Hochschule, Aachen, Germany, Dissertation, May 2001
[VB11]
Vaquero, Tiago S.; Beck, Jose Reinaldo Silva C.: A Brief Review
of Tools and Methods for Knowledge Engineering for Planning &
Scheduling. In: KEPS 2011: ICAPS Workshop on Knowledge Engineering for Planning and Scheduling, 2011, S. 7–14
[Wel94]
Weld, Daniel S.: An Introduction to Least Commitment Planning.
In: AI Magazine (1994)
[Wor12]
World Wide Web Consortium (W3C). OWL Web Ontology
Language Overview. http://www.w3.org/TR/owl-features/. Zugriffsdatum: 21. April. 2012
[WPS10]
Wachsmuth, Henning; Prettenhofer, Peter; Stein, Benno: Efficient Statement Identification for Automatic Market Forecasting.
In: Proceedings of the 23rd International Conference on Computational Linguistics, ACM, 2010, S. 1128–1136
[WSE11]
Wachsmuth, Henning; Stein, Benno; Engels, Gregor: Constructing efficient information extraction pipelines. In: Proceedings of the
20th ACM international conference on Information and knowledge
management. New York, NY, USA : ACM, 2011 (CIKM ’11). –
ISBN 978–1–4503–0717–8, S. 2237–2240
169
Literatur
[ŽKŽL08]
Žáková, Monika; Křemen, Petr; Železný, Filip; Lavrač, Nada:
Using Ontological Reasoning and Planning for Data Mining Workflow Composition. In: SoKD: ECML/PKDD 2008 workshop on Third
Generation Data Mining: Towards Service-oriented Knowledge Discovery, 2008
[ŽKŽL11]
Žáková, Monika; Křemen, Petr; Železný, Filip; Lavrač, Nada: Automatic Knowledge Discovery Workflow Composition through
Ontology-Based Planning. In: IEEE Transactions on Automation
Science and Engineering 8 (2011), Nr. 2, S. 253–264
170