18
User Manual .NET 4.0 Komponente zur Erstellung einer expandierten Liste für Ihre Suche HB Technologies AG Pauk-ehrlich-Str. 5 D-72076 Tübingen Telefon (0 70 71) 97 61-1 Fax (0 70 71) 97 61-90 www.h-net.com

User Manual Semantic Expander 1.0

Embed Size (px)

DESCRIPTION

User Manual Semantic Expander.

Citation preview

User Manual

.NET 4.0 Komponente zur Erstellung einer

expandierten Liste für Ihre Suche

HB Technologies AG

Pauk-ehrlich-Str. 5

D-72076 Tübingen

Telefon (0 70 71) 97 61-1

Fax (0 70 71) 97 61-90

www.h-net.com

Semantic Expander V1.0 2 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Inhaltsverzeichnis

1 Überblick 3

1.1 Anwendungsbereich 3

1.2 Lieferumfang 4

1.3 Anforderung an die IT-Infrastruktur 5

1.4 Lizenzbedingungen 5

1.5 Lizenzierung 6

2 Technische Umsetzung 6

2.1 Architekturüberblick 6

2.2 Klassen und Methoden 9

2.2.1 Klasse Expander 9

2.2.2 Klasse WeightedSearchTerm 10

2.2.3 Klasse ExpanderRangeLevel 10

3 Anwendung 11

3.1 Installation 11

3.2 Einrichten eines Projekts 12

3.3 Referenzieren der SemanticExpander-Komponente 13

3.4 Entwicklung der Applikation 14

Semantic Expander V1.0 3 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

1 Überblick

Bestehende Ansätze zum Suchen können durch eine semantische Komponente verbessert

werden. Bei der semantischen Suche wird nicht allein nach dem jeweils eingegebenen Begriff

gesucht, sondern es werden auch Begriffe mit einbezogen, die verwandt sind beziehungsweise

innerhalb eines Wissensbereichs nach inhaltlichen Gesichtspunkten in der Nähe liegen. Diese

Ausweitung wird mittels der Software-Komponente SemanticExpander generiert und

ermöglicht. Die Vorteile des SemanticExpander auf einen Blick:

schnelle und unkomplizierte Einbindung in Ihren Quellcode

Ein Vielfaches an Suchergebnissen und neuen, bisher unbekannten Verknüpfungen zum

eigentlichen Suchbegriff im Vergleich zur einfachen Suche

Ergebnis langjähriger Arbeit im Bereich semantischer Technologien

1.1 Anwendungsbereich

Nutzen Sie die Softwarekomponente SemanticExpander für Ihre bestehende Suchanwendung.

Sie ist schnell zu integrieren und erweitert Ihre Suche um ein Vielfaches an Ergebnissen. So

können bestehende Ansätze zum Suchen durch unsere semantische Komponente verbessert

werden. Bei der semantischen Suche wird nicht allein nach dem jeweils eingegebenen Begriff

mittels Volltextsuche gesucht, sondern es werden auch Begriffe mit einbezogen, die verwandt

sind beziehungsweise innerhalb eines Wissensbereichs nach inhaltlichen Gesichtspunkten in

der Nähe liegen. Diese Ausweitung des Suchbegriffs wird im vorgeschalteten Schritt der

semantischen Expansion realisiert. Hierbei können Sie den Verwandtschaftsgrad im Bereich von

1 (sehr nah) bis 15 (weit entfernt) selbst wählen und bestimmen.

Die Ermittlung sinnverwandter Begriffe

Bei der Ermittlung sinnverwandter Begriffe sind prinzipiell verschiedene Ansätze denkbar:

Auslesen von Begriffen aus Thesauri oder beispielsweise die Extraktion von Wissen aus der

Online-Enzyklopädie Wikipedia durch eine Wortanalyse oder durch Textmining. Letzteres

kommt im hier beschriebenen semantischen Expander zum Einsatz. Mittels konfigurierter

Schnittstelle wird aus den Wikipedia-ArtikeIn eine Topic Map erzeugt (Schritt1). Vorteile einer

Topic Map sind zweifelsohne der Status eines ISO-Standards und die Vielzahl an

Anwendungsmöglichkeiten durch andere Applikationen (u.a. aus unserem Haus).

Anschließend wird der relevante Kontext eines gegebenen Begriffs durch Traversieren dieser

Topic Map ermittelt (Schritt 2). Welche Ebenen zum relevanten Kontext gehören, wurde bereits

durch die Wahl des zulässigen Verwandtschaftsgrades bestimmt. Als Ergebnis erhält man eine

sogenannte expandierte Liste (Schritt 3), die nun für die eigentliche Suche genutzt werden kann.

Semantic Expander V1.0 4 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Das nachfolgende Schaubild visualisiert den Ablauf der semantischen Expansion mit den zuvor

beschriebenen Schritten:

Abbildung 1 Ablauf der Expansion

1.2 Lieferumfang

Der Semantic Expander wird zum Herunterladen als Zip-Datei angeboten. Diese gepackte

Installationsdatei besteht aus insgesamt vier Bibliotheken, die zur semantischen Suche in Ihre

bestehende Anwendung eingebaut werden kann. Zusätzlich wird neben eines Produktflyers und

dieser Dokumentation eine Demoversion bereitgestellt, welche den Mehrwert des

SemanticExpander einer exemplarischen Suche verdeutlicht. Im Folgenden die mitgelieferten

Daten der Zip-Datei auf einen Blick:

SemanticExpander.dll

Semantics.dll

TopicMapBase.dll

Microsoft.Practices.Unity.dll

Microsoft.Practices.ObjectBuilder2.dll

Microsoft.Practices.EnterpriseLibrary.Common.dll

Semantic Expander V1.0 5 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

1.3 Anforderung an die IT-Infrastruktur

Beim SemanticExpander handelt es sich nicht um eine ablauffähige Anwendung, sondern um

eine dynamische Klassenbibliothek im DLL-Format. Die Bibliothek wurde in Visual Studio 2010

in C# mit dem .NET Framework 4.0 entwickelt. Entsprechend ist eine installierte

Laufzeitumgebung von .NET in der Version 4.0 für den Ablauf Voraussetzung und muss

bereitgestellt werden. Die Anwendung benutzt weitere externe Standard-Bibliotheken der H-

Maps Programmsuite (TopicMapEngine und TopicMapImport).

Zur Erweiterung bestehender Suchapplikationen um eine semantische Komponente kann die

Bibliothek eingebunden werden. Die Methode und Properties der Bibliothek, insbesondere die

Expansion von Suchbegriffen, können über definierte Schnittstellen angesprochen werden.

Das Modul ist für gewöhnliche Office-PCs ohne spezielle Ausstattung konzipiert. Es werden alle

Betriebssysteme ab Windows XP SP2 unterstützt.

1.4 Lizenzbedingungen

Beim SemanticExpander handelt es sich um eine .NET 4.0 Komponente zur Erweiterung Ihrer

Suche um eine expandierte Liste in der Version 1.0 Copyright ©2011 by HB Technologies AG

(h-net.com). Alle Rechte vorbehalten.

Für die Benutzung gelten die folgenden Lizenzbedingungen:

1. Mit Annahme dieser Lizenzbedingungen erwirbt der Lizenznehmer ein zeitlich

unbegrenztes, örtlich nicht beschränktes einfaches nichtausschließliches Nutzungsrecht

dieses Produktes. Die Nutzung dieses Produktes zur Entwicklung von Applikationen ist nur

dem Lizenznehmer gestattet. Die Lizenz ist für einen Arbeitsplatz gültig. Die Weitergabe

dieses Produktes als Bestandteil einer vom Lizenznehmer entwickelten Applikation ist

nicht beschränkt.

2. Die in diesem Produkt enthaltenen Programme und sonstigen Dateien dürfen weder im

Quelltext noch als ausführbare Programme - auch nicht in veränderter Form - zur

Entwicklung von Applikationen an Dritte weitergegeben, verliehen oder gleichzeitig auf

mehreren Computern eingesetzt werden. Auch die Installation einer Lizenz auf mehr als

einem Gerät oder mehrfache Nutzung im Netz - zum Beispiel in Firmen, Schulen oder

Universitäten - ist untersagt.

3. Alle weitergehenden Rechte bleiben dem Copyright-Inhaber vorbehalten. Die gelieferte

Software darf weder disassembliert, dekompiliert oder anderweitig rückübersetzt werden.

4. Programm und Dokumentation wurden sorgfältig erstellt und geprüft. Außer im Falle

grober Fahrlässigkeit oder Vorsatz übernimmt die HB Technologies AG keine Haftung für

etwaige Schäden, die auf Verwendung der Software oder der Dokumentation

zurückzuführen sind. Desweiteren wird, sofern nicht ausdrücklich schriftlich zugesichert,

keine Gewähr für die Verträglichkeit dieser Software mit irgendwelchen anderen

Programmen oder Hardware-Bestandteilen übernommen.

Semantic Expander V1.0 6 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

5. Die Lizenzbedingungen erstrecken sich ebenfalls - auch ohne erneute Mitteilung - auf alle

eventuellen Updates oder Ergänzungen.

6. Sollte einer der vorangegangenen Punkte ungültig werden, bleiben die restlichen davon

unberührt.

1.5 Lizenzierung

Die Software-Komponente SemanticExpander wird Entwicklern zunächst als lizenzfreie

Testversion angeboten, damit die Eigenschaften de Komponente im Zusammenhang mit einer

geplanten Anwendung ausprobiert werden können. Die Funktionalität der lizenzfreien Version ist

nicht eingeschränkt. Soll der SemanticExpander in einer Anwendung an Endkunden

weitergegeben werden, ist es erforderlich eine Entwicklerlizenz zu erwerben. Andernfalls

erscheint während der Benutzung der Anwendung ein Hinweis darauf, dass es sich um eine

unlizenzierte Version handelt.

2 Technische Umsetzung

In den folgenden Kapiteln wird auf die technischen Details des SemanticExpander genauer

eingegangen und erklärt wie die Komponente in Ihre Anwendung integriert werden kann. Nach

einem kurzen Architekturüberblick werden die unterschiedlichen Klassen und Methoden

vorgestellt, bevor es an die eigentliche Integrationen geht.

2.1 Architekturüberblick

Die Bibliothek für die semantische Expansion besteht aus einem einzelnen Paket mit dem

Namen SemanticExpander. Die generelle Softwarearchitektur dieses Pakets ist in folgender

Abbildung dargestellt.

Semantic Expander V1.0 7 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Abbildung 2 Softwarearchitektur

Wesentlicher Kern des Pakets ist die Klasse Expander. Diese definiert die Methode

ExpandTerm(), in welcher die eigentliche Funktionalität zur semantischen Expansion

implementiert ist. Außerdem sind in diesem Paket die zur Unterstützung der Expansion

benötigte spezifische Eingabetyp ExpanderRangeLevel und der Ausgabe/Ergebnistyp

WeightedSearchTerm für das Verfahren enthalten.

Semantic Expander V1.0 8 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Verfahren

Das Verfahren zur Expansion eines Suchbegriffs zur einer ganzen Liste sinnverwandter Begriffe

erfolgt in zwei Schritten. Im ersten Schritt werden über die öffentlich zugängliche Schnittstelle zu

Wikipedia ein oder – bei Mehrdeutigkeit – mehrere Artikel zum betreffenden Begriff aus

Wikipedia ausgelesen. Aus den ausgelesenen Artikeln wird eine Topic Map erzeugt. Hierzu

werden die Artikeltexte nach Begriffen, die Verweise auf andere Wikipedia-Artikel darstellen,

extrahiert und als Topics repräsentiert. Zusätzlich werden die zwischen den Begriffen

bestehenden Beziehungen als Assoziationen in der resultierenden Topic Map abgebildet.

Die eigentliche Begriffsexpansion geschieht in einem zweiten Schritt durch Traversierung der

zuvor erzeugten Topic Map. Zunächst werden die zum Suchbegriff passenden Topics

identifiziert (Topics, deren Namen mit dem jeweiligen Begriff übereinstimmt). Von diesen

ausgehend werden die über Assoziationen verbundenen, benachbarten Topics besucht und

deren Elemente (Namen und Varianten) als verwandte Begriffe gesammelt.

Das Modul zur semantischen Expansion greift dabei auf bestehende Komponenten der H-Maps

Programmsuite zurück. Dies sind insbesondere das Topic Maps Basispaket zur internen

Repräsentation der angelegten Topic Map sowie die Semantikkoponente, in der verschiedene

Verfahren zum semantischen Mining und der semantischen Expansion implementiert sind.

Eingabeparameter

Die Methode ExpandTerm() nimmt drei Eingabeparameter entgegen:

1. Suchbegriff

2. Sprache

Momentan werden nur die Sprachen Deutsch und Englisch unterstützt. Wählt man eine

andere Sprache, wird dies als Fehler behandelt und eine Ausnahme ausgelöst.

3. Ein sogenannter ExpanderRangeLevel

Das Verfahren zur Traversierung der Topic Map kann mit 13 Parametern sehr fein

gesteuert werden. Vereinfacht gesagt, kann über diese Parameter der traversierte

Bereich in der Topic Map (und somit die Genauigkeit der inhaltlich verwandten Begriffe)

je nach Bedarf eingestellt werden. Die Wahl sinnvoller Parameterwerte setzt allerdings

eine genaue Kenntnis über Begrifflichkeit und den Aufbau von Topic Maps voraus, was

die Verwendung kompliziert.

Um diese Komplexität zu reduzieren, werden der Methode nicht solche frei wählbaren

Parameterkombinationen übergeben, sondern die obengenannte ExpanderRangeLevel. Dies

sind Konstanten von 1 bis 15, die intern auf eine sinnvolle Kombination von Parametern

abgebildet werden. Der Wert 1 stellt die restriktivste Einstellung dar, mit steigenden Werten

nimmt der traversierte Bereich zu, das Maß an inhaltlicher Übereinstimmung entsprechend ab.

Ausgabeparameter

Ergebnis ist die expandierte Liste inhaltlich verwandter Begriffe. Die Einträge der Liste sind vom

Typ WeightedSearchTerm. Objekte dieses Typs enthalten neben dem eigentlichen Begriff eine

zusätzliche Gewichtung, die als Maß für die inhaltliche Übereinstimmung mit dem

ursprünglichen Suchbegriff dient. Die zurückgelieferte Liste ist absteigend nach dieser

Gewichtung sortiert.

Semantic Expander V1.0 9 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

2.2 Klassen und Methoden

2.2.1 Klasse Expander

Die Klasse Expander stellt die zentrale Klasse der Komponente dar. Die Ermittlung des

semantischen Kontexts zu einem gegebenen Suchbegriff geschieht in der Methode

ExpandTerm. Als Ergebnis wird die expandierte Liste mit den sinnverwandten Begriffen

zurückgeliefert.

Methode ExpandTerm

List<WeightedSearchTerm> ExpandTerm(string searchTerm, CultureInfo

cultureInfo, ExpanderRangeLevel rangeLevel)

Beschreibung

Führt die semantische Expansion aus. Hierzu werden zum gegebenen Begriff

searchTerm sinnverwandte Begriffe auf Basis einer ad hoc generierten Topic Map

ermittelt und als Ergebnis zurückgegeben.

Rückgabewert

Die Liste der ermittelten sinnverwandten Begriffe. Jeder Begriff trägt eine Gewichtung,

die seine Relevanz angibt. Die Sortierung der Liste ist absteigend nach Gewichtung.

Parameter

searchTerm Der Begriff, zu dem der semantische Kontext ermittelt werden soll.

cultureInfo Die Sprache, aus der der Suchbegriff stammt und sinnverwandte Begriffe

gesucht werden. Unterstützt werden Deutsch und Englisch, andere

Sprachen führen zu einer Ausnahme.

rangeLevel Die Einstellung, über die festgelegt wird, wie restriktiv die inhaltliche

Übereinstimmung mit dem gegebenen Begriff searchTerm sein soll.

Programm-Beispiel

string searchTerm = “Note”;

string language = “de”;

CultureInfo cultureInfo = new CultureInfo(language);

ExpanderRangeLevel rangeLevel = ExpanderRangeLevel.Level1;

// (1) Create a new instance of the semantic expander

SemanticExpander expander = new SemanticExpander();

// (2) Perform the semantic expansion

List<WeightedSearchTerm> weightedSearchTerms =

expander.ExpandTerm(searchTerm, cultureInfo, rangeLevel);

Siehe auch

WeightedSearchTerm, ExpanderRangeLevel

Semantic Expander V1.0 10 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

2.2.2 Klasse WeightedSearchTerm

Die Ergebnisse der semantischen Expansion sind vom Typ WeightedSearchTerm. Jede

Instanz dieser Klasse repräsentiert einen sinnverwandten Begriff, dessen Relevanz durch eine

Gewichtung angegeben ist.

Eigenschaft Term

String Term

Beschreibung

Setzt und bestimmt den sinnverwandten Begriff, der Teil des semantischen Kontexts ist.

Dieser Term ist Ergebnis der semantischen Expansion und kann etwa als Suchbegriff für

nachgelagerte Suchen benutzt werden.

Eigenschaft Weighting

double Weighting

Beschreibung

Setzt und bestimmt die Gewichtung des Begriffs Term. Die Gewichtung ist ein Maß für

die Relevanz des Terms, also dem Grad an Übereinstimmung mit dem

korrespondierenden Suchbegriff.

2.2.3 Klasse ExpanderRangeLevel

Über die Konstanten des Enumerationstyps ExpanderRangeLevel kann der Prozess zur

semantischen Expansion konfiguriert werden. Über sie wird festgelegt, wie restriktiv die

inhaltliche Übereinstimmung sinnverwandter Begriffe mit einem gegebenen Suchbegriff sein soll.

Der Wert Level1 stellt die restriktivste Einstellung dar, mit steigenden Werten nimmt der

traversierte Bereich zu, das Maß an inhaltlicher Übereinstimmung entsprechend ab.

public enum ExpanderRangeLevel

{ Level1, // lowest range level with lowest precision

Level2,

Level3,

Level4,

Level5,

Level6,

Level7,

Level8,

Level9,

Level10,

Level11,

Level12,

Level13,

Level14,

Level15 // highest range level with lowest precision}

Semantic Expander V1.0 11 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

3 Anwendung

In diesem Kapitel wird die Integration des Semantic Expanders in eine Anwendung Schritt für

Schritt beschrieben

1. Installation

2. Einrichten eines Projekts

3. Erstellen einer minimalistischen Demoanwendung

4. Einbinden/Einbauen des Semantic Expanders in die Demoanwendung

Die exemplarische Anwendung ist dabei bewusst einfach gehalten und beschränkt sich im

Wesentlichen auf die Funktionalität des Semantic Expanders. Es wird eine WPF-Anwendung mit

einem Dialog entwickelt, über dessen Bedienelemente die benötigten Parameterwerte für die

ExpandTerm Methode des Expanders eingegeben werden können. Die resultierenden

Ergebnisse der semantischen Expansion werden in Form einer Tabelle aufgelistet.

3.1 Installation

Die Semantic Expander-Komponente wird als gepacktes Archiv im ZIP-Format ausgeliefert. Zur

Installation genügt es, das Archiv in einem beliebigen Verzeichnis zu entpacken. Im Beispiel

wird der Inhalt des Expander-Archivs im Verzeichnis C:\Temp\Semantic_Expander_V1.0

abgelegt.

Abbildung 3 Inhalt des entpackten Semantic Expander-Archivs

Wie in Abbildung 3 ersichtlich, sind in dem Semantic Expander-Archiv sämtliche benötigten

Bibliotheken, insbesondere die zu referenzierende Hauptbibliothek SemanticExpander.dll,

sowie die für die verschiedenen unterstützten Sprachen benötigten Ressourcendateien

enthalten.

Semantic Expander V1.0 12 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

3.2 Einrichten eines Projekts

Als Entwicklungsumgebung für das Beispielprojekt wird Visual Studio verwendet. Im folgenden

Screenshot sind sämtliche relevanten Angaben zum Anlegen des Projekts rotumrandet

hervorgehoben:

Abbildung 4 Einstellungen zum Anlegen eines neuen Projekts

1. Über die Schaltfläche „New Project…“ wird der Dialog zum Einrichten des Projekts

aufgerufen.

2. Wichtig ist, das „.NET Framework 4“ auszuwählen. Dies ist eine Grundvoraussetzung für

die Verwendung des Semantic Expanders, kleinere Versionsnummern des Frameworks

führen bei der späteren Einbindung des Semantic Expanders zu Übersetzungsfehlern.

3. Als Anwendungstyp wird „WPF Application“ gewählt.

4. Der Projektname ist frei wählbar, im Beispiel wird das Projekt als

SemanticExpanderWpfDemo benannt.

5. Das Projektverzeichnis ist ebenfalls frei wählbar.

Semantic Expander V1.0 13 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

3.3 Referenzieren der SemanticExpander-Komponente

Um die Methoden des SemanticExpander in der Beispielanwendung ansprechen zu können,

muss zunächst eine Referenz auf die zentrale Bibliothek SemanticExpander.dll der

Komponente gesetzt werden. Hierzu ist durch Rechtsklick auf den Knoten References im

Solution Explorer ein Kontextmenü zu öffnen und der Menüpunkt „Add Reference“ anzuklicken:

Im sich daraufhin öffnenden Dateidialog wechselt man auf den Reiter „Browse“ und navigiert im

Verzeichnisbaum in den Ordner, in dem die SemanticExpander-Komponente wie im letzten

Abschnitt beschrieben entpackt wurde.

Semantic Expander V1.0 14 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Die auszuwählende Bibliothek SemanticExpander.dll kann per Doppelklick auf den

Dateiknoten oder alternativ nach dem Selektieren des Dateinamens durch Bestätigen mit dem

„OK“ Button übernommen werden.

Im Solution Explorer ist anschließend die gesetzte Referenz auf die Bibliothek als neuer Knoten

sichtbar, wie im nachfolgenden Screenshot ersichtlich:

3.4 Entwicklung der Applikation

Wie eingangs des Kapitels erwähnt, wird als Beispiel eine WPF-Anwendung entwickelt, die aus

einem einzelnen Dialog mit Eingabefeldern für die drei Parameterwerte Suchterm, Sprache und

Rangelevel sowie einer Tabellendarstellung für die Ergebnisliste besteht.

Zunächst wird daher in Visual Studio in der XAML-Datei MainWindow.xaml das Layout für den

Dialog entworfen. Das resultierende Layout ist in Abbildung 5 dargestellt. Die Auswahl für den

gewünschten Wert des ExpanderRangeLevels erfolgt dabei über eine Combobox.

Die Befüllung dieser Combobox mit den Konstanten der ExpanderRangeLevel Enumerations-

typs erfolgt automatisiert per Datenbindung. Dieser Enumerationstyp ist in der zuvor

referenzierten Bibliothek SemanticExpander der Semantic Expander-Komponente im

Namensraum HuH.TopicMaps.Semantics.Expansion definiert. Um die Konstanten aus

ExpanderRangeLevel verwenden zu können, muss die Bibliothek im Wurzelelement der

XAML-Datei referenziert und ihr ein Namensraum-Präfix zugewiesen werden. Dies erfolgt in der

rotumrandeten Anweisung in Abbildung 5.

Semantic Expander V1.0 15 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Abbildung 5 Dialog-Layout der Demoanwendung

Die Bedienung der Demoapplikation soll derart gestaltet sein, dass nach Eingabe der benötigten

Werte die semantische Expansion des eingetragenen Suchterms durch Anklicken der

Schaltfläche „Expand“ angestoßen wird. Die expandierte Liste wird daraufhin im unteren Bereich

des Dialogs in Form einer Tabelle angezeigt.

Notwendig ist daher die Implementierung einer Methode ExpandButton_Click als Event-

Handler, die beim Anklicken der „Expand“ Schaltfläche aufgerufen wird und die semantische

Expansion ausführt. Die Implementierung erfolgt in der Klasse MainWindow.xaml.cs und wird

im Folgenden genauer beschrieben.

Alle Klassen sowie der Enumerationstyp ExpanderRangeLevel in der Bibliothek

SemanticExpander sind im Namespace HuH.TopicMap.Semantics.Expansion definiert.

Um die Typen des Semantic Expanders verwenden zu können, müssen sie daher zu Beginn

mittels der using Direktive importiert werden:

Semantic Expander V1.0 16 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

In der Methode ExpandButton_Click werden zunächst als Vorbereitung die eingegebenen

Werte aus der Dialogmaske in lokale Variablen übertragen. Dies sind zum einen der eigentliche

Suchterm sowie das Kürzel für die Sprache aus den Textfeldern tbxSearchTerm bzw.

tbxLanguage. Das Sprachkürzel wird als Konstruktorargument zur Instanziierung eines

CulturInfo Objekts verwendet. Schließlich wird der selektierte Eintrag in der Combobox in

den entsprechenden ExpanderRangeLevel Wert konvertiert:

Als nächstes wird mit dem Operator new die Instanz des SemanticExpander angelegt. Die

Klasse besitzt nur den Standardkonstruktor, der keine Argumente entgegennimmt:

Schließlich kann die eigentliche semantische Expansion ausgeführt werden, indem die Methode

ExpandTerm auf der soeben angelegten Instanz des SemanticExpander aufgerufen wird. Als

Eingabeparameter werden der Suchterm searchTerm, die CultureInfo-Instanz, welche die

Sprache kapselt sowie die ExpanderRangeLevel Konstante rangeLevel übergeben:

Als Ergebnis wird die Liste der expandierten Suchbegriffe des Typs WeightedSearchTerm

zurückgegeben. Dies sind die sinnverwandten Begriffe, die im semantischen Kontext des

eingegeben Suchbegriffs stehen und aus der ad-hoc generierten Topic Map ermittelt wurden.

Sie sind absteigend nach Gewichtung (Relevanz) geordnet. Innerhalb übereinstimmender

Gewichtungen wird nach alphabetischer Reihenfolge sortiert.

Im letzten Schritt wird diese expandierte Ergebnisliste an ein DataGrid-Steuerelement über-

geben, die mittels Datenbindung und DataTemplate-Vorlage das gewünschte Aussehen erhält.

Semantic Expander V1.0 17 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Nachfolgend wird nochmal das komplette Listing der Methode ExpandButton_Click aufgeführt,

um die einzelnen Schritte übersichtlich in ihrer Gesamtheit zu sehen:

Abschließend soll anhand eines Beispiels das Aussehen sowie die Bedienung der kleinen

Demoanwendung illustriert werden. Zum Suchbegriff „Note“ werden inhaltlich verwandte

deutschsprachige Begriffe gesucht. Als ExpanderRangeLevel wird der Wert Level1 gewählt,

also die restriktivste Einstellung. Nachdem alle Angaben wie gewünscht eingegeben sind und

die Expansion ausgeführt worden ist, werden die expandierten sinnverwandten Begriffe mit ihren

Gewichtungen tabellarisch aufgeführt. In Abbildung 6 ist der Dialog der Demoanwendung mit

den eingegebenen Beispieldaten und der resultierenden Ergebnisliste illustriert.

Semantic Expander V1.0 18 HB Technologies AG – Paul-Ehrlich-Str. 5 - 72076 Tübingen - www.h-net.com

Abbildung 6 Demoanwendung mit Beispieldaten