Strukturbasierte Quellcodesuche mit Hilfe von Ähnlichkeitsmaßen auf Graphen
L. Hanke. University of Kassel, bachelor thesis, (April 2014)
Abstract
Diese Arbeit thematisiert den Aufbau einer strukturbasierten Suche auf Java-Programm-
code. Vorgestellt wird eine Suchfunktion auf Basis einer intuitiven Anfragesyntax. Hierzu
erfolgt eine Erweiterung der Syntax der Programmiersprache Java, um Suchanfragen
mit einer durch Template-Variablen repr ̈asentierten Unsicherheit auf einem Korpus aus
Java-Dateien zu erlauben. Zur strukturbasierten Repr ̈asentation der Anfragen wird das
Konzept des abstrakten Syntaxbaums auf einen Syntaxgraphen erweitert.
Die Berechnung von relevanten Dokumenten zu einer gegebenen Anfrage findet un-
ter Ausnutzung der spezifischen Graphstruktur statt. Diese erlaubt eine Zerlegung der
̈
Graphen, wodurch die Ahnlichkeit
als Kombination von Similarit ̈aten auf geordneten
B ̈aumen und einer erg ̈
anzenden Graph ̈
ahnlichkeit f ̈
ur spezielle Knoten berechnet werden
kann. Die Vorstellung der Algorithmen zur Berechnung der Baum ̈ahnlichkeiten ist Teil
dieser Arbeit.
Da die beschriebene Suchaufgabe dem Information Retrieval auf einem Korpus von
unstrukturiertem Text a
̈ hnelt, wird des Weiteren das Vektorraum-Retrieval der graph-
̈
basierten Suche gegen ̈
ubergestellt. Um die Effizienz der Ahnlichkeitsberechnungen
zu
verbessern erfolgt eine Kombination beider Verfahren. Hierzu wird die Extraktion von
Informationen zur Dokumentenrepr ̈
asentation um die abstrakte Tokenization erweitert.
Das Vektorraum-Retrieval wird zum Filtern des Suchkorpus’ verwendet, um eine Vor-
auswahl an relevanten Dokumenten zu tre↵en, deren Ordnung mit Hilfe der graphba-
sierten Maße neu berechnet wird. Der Einfluss der Filtergr ̈oße auf die Ergebnisqualit ̈at
wird abschließend f ̈
ur verschiedene Suchanfragen evaluiert. Ein Vergleich der graphba-
̈
sierten Ahnlichkeitsmaße gibt zus ̈
atzlich Aufschluss u
̈ ber ihre E↵ektivit ̈at im Rahmen
der vorgestellten Suchaufgabe.
Das Filtern des Korpus’ auf Basis des Vektorraum-Retrieval zeigte f ̈
ur spezielle An-
fragetypen eine Einschr ̈
ankung der Ergebnisqualit ̈at bei zu niedrigen Filtergr ̈oßen. Von
den graphbasierten Verfahren wiesen vor allem der im Rahmen der Arbeit vorgestellte
naive Ansatz sowie eine Berechnung mit Hilfe der Editierdistanz zuverl ̈assige Ergebnisse
auf.
Zur Evaluation und Demonstration wurde ein in Java implementierter Prototyp ver-
wendet, dessen Aufbau und Funktionalit ̈
at im Laufe der Arbeit vorgestellt wird.
%0 Thesis
%1 hanke2014strukturbasierte
%A Hanke, Lukas
%D 2014
%K bachelor hanke lukas thesis
%T Strukturbasierte Quellcodesuche mit Hilfe von Ähnlichkeitsmaßen auf Graphen
%X Diese Arbeit thematisiert den Aufbau einer strukturbasierten Suche auf Java-Programm-
code. Vorgestellt wird eine Suchfunktion auf Basis einer intuitiven Anfragesyntax. Hierzu
erfolgt eine Erweiterung der Syntax der Programmiersprache Java, um Suchanfragen
mit einer durch Template-Variablen repr ̈asentierten Unsicherheit auf einem Korpus aus
Java-Dateien zu erlauben. Zur strukturbasierten Repr ̈asentation der Anfragen wird das
Konzept des abstrakten Syntaxbaums auf einen Syntaxgraphen erweitert.
Die Berechnung von relevanten Dokumenten zu einer gegebenen Anfrage findet un-
ter Ausnutzung der spezifischen Graphstruktur statt. Diese erlaubt eine Zerlegung der
̈
Graphen, wodurch die Ahnlichkeit
als Kombination von Similarit ̈aten auf geordneten
B ̈aumen und einer erg ̈
anzenden Graph ̈
ahnlichkeit f ̈
ur spezielle Knoten berechnet werden
kann. Die Vorstellung der Algorithmen zur Berechnung der Baum ̈ahnlichkeiten ist Teil
dieser Arbeit.
Da die beschriebene Suchaufgabe dem Information Retrieval auf einem Korpus von
unstrukturiertem Text a
̈ hnelt, wird des Weiteren das Vektorraum-Retrieval der graph-
̈
basierten Suche gegen ̈
ubergestellt. Um die Effizienz der Ahnlichkeitsberechnungen
zu
verbessern erfolgt eine Kombination beider Verfahren. Hierzu wird die Extraktion von
Informationen zur Dokumentenrepr ̈
asentation um die abstrakte Tokenization erweitert.
Das Vektorraum-Retrieval wird zum Filtern des Suchkorpus’ verwendet, um eine Vor-
auswahl an relevanten Dokumenten zu tre↵en, deren Ordnung mit Hilfe der graphba-
sierten Maße neu berechnet wird. Der Einfluss der Filtergr ̈oße auf die Ergebnisqualit ̈at
wird abschließend f ̈
ur verschiedene Suchanfragen evaluiert. Ein Vergleich der graphba-
̈
sierten Ahnlichkeitsmaße gibt zus ̈
atzlich Aufschluss u
̈ ber ihre E↵ektivit ̈at im Rahmen
der vorgestellten Suchaufgabe.
Das Filtern des Korpus’ auf Basis des Vektorraum-Retrieval zeigte f ̈
ur spezielle An-
fragetypen eine Einschr ̈
ankung der Ergebnisqualit ̈at bei zu niedrigen Filtergr ̈oßen. Von
den graphbasierten Verfahren wiesen vor allem der im Rahmen der Arbeit vorgestellte
naive Ansatz sowie eine Berechnung mit Hilfe der Editierdistanz zuverl ̈assige Ergebnisse
auf.
Zur Evaluation und Demonstration wurde ein in Java implementierter Prototyp ver-
wendet, dessen Aufbau und Funktionalit ̈
at im Laufe der Arbeit vorgestellt wird.
@mastersthesis{hanke2014strukturbasierte,
abstract = {Diese Arbeit thematisiert den Aufbau einer strukturbasierten Suche auf Java-Programm-
code. Vorgestellt wird eine Suchfunktion auf Basis einer intuitiven Anfragesyntax. Hierzu
erfolgt eine Erweiterung der Syntax der Programmiersprache Java, um Suchanfragen
mit einer durch Template-Variablen repr ̈asentierten Unsicherheit auf einem Korpus aus
Java-Dateien zu erlauben. Zur strukturbasierten Repr ̈asentation der Anfragen wird das
Konzept des abstrakten Syntaxbaums auf einen Syntaxgraphen erweitert.
Die Berechnung von relevanten Dokumenten zu einer gegebenen Anfrage findet un-
ter Ausnutzung der spezifischen Graphstruktur statt. Diese erlaubt eine Zerlegung der
̈
Graphen, wodurch die Ahnlichkeit
als Kombination von Similarit ̈aten auf geordneten
B ̈aumen und einer erg ̈
anzenden Graph ̈
ahnlichkeit f ̈
ur spezielle Knoten berechnet werden
kann. Die Vorstellung der Algorithmen zur Berechnung der Baum ̈ahnlichkeiten ist Teil
dieser Arbeit.
Da die beschriebene Suchaufgabe dem Information Retrieval auf einem Korpus von
unstrukturiertem Text a
̈ hnelt, wird des Weiteren das Vektorraum-Retrieval der graph-
̈
basierten Suche gegen ̈
ubergestellt. Um die Effizienz der Ahnlichkeitsberechnungen
zu
verbessern erfolgt eine Kombination beider Verfahren. Hierzu wird die Extraktion von
Informationen zur Dokumentenrepr ̈
asentation um die abstrakte Tokenization erweitert.
Das Vektorraum-Retrieval wird zum Filtern des Suchkorpus’ verwendet, um eine Vor-
auswahl an relevanten Dokumenten zu tre↵en, deren Ordnung mit Hilfe der graphba-
sierten Maße neu berechnet wird. Der Einfluss der Filtergr ̈oße auf die Ergebnisqualit ̈at
wird abschließend f ̈
ur verschiedene Suchanfragen evaluiert. Ein Vergleich der graphba-
̈
sierten Ahnlichkeitsmaße gibt zus ̈
atzlich Aufschluss u
̈ ber ihre E↵ektivit ̈at im Rahmen
der vorgestellten Suchaufgabe.
Das Filtern des Korpus’ auf Basis des Vektorraum-Retrieval zeigte f ̈
ur spezielle An-
fragetypen eine Einschr ̈
ankung der Ergebnisqualit ̈at bei zu niedrigen Filtergr ̈oßen. Von
den graphbasierten Verfahren wiesen vor allem der im Rahmen der Arbeit vorgestellte
naive Ansatz sowie eine Berechnung mit Hilfe der Editierdistanz zuverl ̈assige Ergebnisse
auf.
Zur Evaluation und Demonstration wurde ein in Java implementierter Prototyp ver-
wendet, dessen Aufbau und Funktionalit ̈
at im Laufe der Arbeit vorgestellt wird.},
added-at = {2014-12-01T09:27:38.000+0100},
author = {Hanke, Lukas},
biburl = {https://www.bibsonomy.org/bibtex/226cc2b4fd24006cdfa60236b8a04705c/jil},
institution = {University of Kassel},
interhash = {c7f5536deeee6e27b1112a679af24419},
intrahash = {26cc2b4fd24006cdfa60236b8a04705c},
keywords = {bachelor hanke lukas thesis},
month = apr,
school = {University of Kassel},
timestamp = {2014-12-01T09:27:38.000+0100},
title = {Strukturbasierte Quellcodesuche mit Hilfe von Ähnlichkeitsmaßen auf Graphen},
type = {bachelor thesis},
year = 2014
}