verbesserung der performanz der sparql-komponente vom dl ...skil. ohne diese zu sein. von allen...

Download Verbesserung der Performanz der SPARQL-Komponente vom DL ...skil. ohne diese zu sein. Von allen Schwesternklassen…

Post on 13-Aug-2019

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Verbesserung der Performanz der SPARQL-Komponente vom DL-Learner

    Didier Cherix didier.cherix@gmail.com

    Universität Leipzig, Bachelor Studiengang Informatik

    Der DL-Learner ist ein Framework, um Konzepte in Beschreibungslogiken zu lernen. [Leh09] Er nutzt Machine Learning Algorithmen, um Lernprobleme in OWL zu lösen. Um die Flexibilität zu erhöhen ist der DL-Learner aus Komponenten gebaut. Es existieren 4 verschiedene Typen von Komponenten: Knowledge Sources werden benutzt, um Hinter- grundwissen zu importieren. Nicht nut lokales Wissen in Form von RDF/XML oder Turtle sind unterstützt, sondern auch die Verwendung eines SPARQL-Endpunktes ist mittels der SPARQL-Komponente möglich. Reasoner components liefern Schnittstellen zu zahlre- iche Reasoner. Der DL-Learner kann existierende standards Reasoner oder ein eigenes verwenden. Learning Problems beschreiben die zu lösende Lernprobleme. Es gibt 3 ver- schiedene Lernproblemtypen im DL-Learner: 1. Lernen von positiven Beispielen; 2. Ler- nen von positiven und negativen Beispielen; 3. Lernen von Class-Axiome.

    Die SPARQL-Komponente wurde überarbeitet, um ihre Performanz zu erhöhen. Um die Effizienz zu erhöhen wurden Schemaanfragen (T-Box) von den Anfragen zu den tatsäch- lichen Instanzen (A-Box) getrennt. Aus A-Box und T-Box setzt sich die Ontologie zusam- men [BHS08]. Diese Überarbeitung setzt sich aus einer Indexierung der T-Box, der Re- duzierung der Anzahl der SPARQL-Anfragen und einer Typisierung der Ontologie. Die Indexierung der T-Box speichert für jede Klasse der Ontologie alle Ihre SuperKlassen bis owl:Thing. Die SPARQL-Anfragen wurden so verändert, dass die A-Box Anfragen ge- trennt von einer T-Box Anfrage erfolgen. Jede Anfrage holt alle zu den bis jetzt bekannten Instanzen verbunden Instanzen. Es erfolgt in der neuen Version eine A-Box Anfrage pro Iteration bis zur maximalen Tiefe. Die alte Version der Komponenten hat eine Anfrage pro Beispiel genutzt. Im nächsten Schritt wird für jede der im vorherigen Schritt hinzuge- fügten Instanzen eine Anfrage zum Endpunkt geschickt. Die T-Box Anfrage ist zuständig, um jede Instanz ihre Klasse zuzuweisen. Schliesslich muss die Ontologie Typisiert wer- den, da die Ressourcen in den SPARQL-Ergebnisse nicht typisiert sind, das heisst eine Klasse ist nicht als owl:Class deklariert. In der alten Version werden die T-Box Informa- tionen gleichzeitig mit den A-Box Resourcen geholt.

    Um die Effizienz der Überarbeitung zu testen haben wir einen Test entwickelt. Dieser Test nutzt die DBpedia [ABK+07]. Für jede Klasse der DBpedia1 wurden zufällig Beispiele unter deren Instanzen ausgewählt. Diese Beispiele wurden im Lernproblem als positive Beispiel verwendet. Die negativen Beispiel wurden unter den Schwesternklassen aus- gewählt. Eine Schwesterklasse zu einer Klasse teilt eine ihrer Superklassen mit der Ur-

    1http://downloads.dbpedia.org/3.6/dbpedia_3.6.owl

    129

    SKIL 2012 – Dritte Studentenkonferenz Informatik Leipzig 2012 (Hrsg: Johannes Schmidt, Thomas Riechert und Sören Auer), Leipziger Beiträge zur Informatik, Band 34. Leipziger Informatik-Verbund LIV. 2012 ISBN: 978-3-941608-21-4

  • sprungsklasse ohne diese zu sein. Von allen Schwesternklassen wurde eine zufällig aus- gewählt und unter ihren Instanzen die negativen Beispiele. Dieser Test wurde mit der alten SPARQL-Komponente und mit ihrer überarbeitete Version durchgeführt.

    Als erster grosse Unterschied kam heraus, dass die überarbeitete Komponente mehr Ergeb- nisse bekam als die alte Version. Dies ist zu erklären durch eine robustere Implemen- tierung. Die überbearbeitete Komponente ist weniger empfindlich zu den Serialisierung Fehlern des SPARQL-Endpunktes. Alle bis zum Fehler gefundene Instanzen können weit- er verarbeitet werden und den Reasoner übergeben werden, bei der alten Komponente ist der OWL-Fragment nicht weiter nutzbar und es gibt kein Ergebnis. Es gaben insgesamt 61 JavaExceptions2 bei der Durchführung der neuen Komponente, davon haben nur 3 ein Abbruch des Algorithmus erzwingt. Bei der alten Version waren es 93 Exceptions, die alle zu einem Abbruch des Algorithmus führten.

    Die Performanz zeigt eine etwa vierfache Verbesserung der Geschwindigkeit. Die Durch- schnittszeit der SPARQL-komponent beträgt vor der Überarbeitung 16817 ms und danach 3923 ms. Die Indexierung der T-Box bei der neuen Version braucht nur circa 2s. Die Index- ierung erfolgt aber nur einmal am Anfang des Experiments. Die neue Version besitzt keine Cache-Möglichkeit. Die Ergebnisse zeigen jedoch, dass dies kein Nachteil gegenüber der alten Version, die ein Cache besitzt, ist.

    Die Korrektheit wurde überprüft mittels der F-Werte. Jede Klassendefinition, die der DL- Learner ausgibt wird auf ihre Genauigkeit mit Hilfe der F-Wert gemessen. Als Referenz dienen die Instanzen die zu dieser Klasse gehören. Die Verteilung der F-Wert zeigt, dass die neue Komponente etwas bessere Ergebnisse liefert, beziehungsweise mehr Ergebnisse hat, die einen besseren F-Wert haben, liefert. Dies ist zum Teil durch den höheren Anzahl an Ergebnisse zu erklären. Ausserdem hat die Typisierung der Ontologie einen Einfluss auf die Ergebnisse, da mit ihrer Hilfe mehr Informationen vom Reasoner abgearbeitet werden können.

    Literatur

    [ABK+07] S. Auer, C. Bizer, G. Kobilarov, J. Lehmann, R. Cyganiak, and Z. Ives. Dbpedia: A nucleus for a web of open data. The Semantic Web, pages 722–735, 2007.

    [BHS08] F. Baader, I. Horrocks, and U. Sattler. Description logics. Foundations of Artificial Intelligence, 3:135–179, 2008.

    [Leh09] J. Lehmann. DL-Learner: learning concepts in description logics. The Journal of Ma- chine Learning Research, 10:2639–2642, 2009.

    2http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html

    Verbesserung der Performanz der SPARQL-Komponente vom DL-Learner

    130