ontology reasoning differences viewer · vocabulary (as long as it complies rdf) features: meta...

33
1 Praktikum zu modellgetriebener Softwareentwicklung Thema 3: Ontology Reasoning Differences Viewer Ausarbeitung von Gorana Bralo, Dominik Bösl, Chris Kämpfe Sommersemester 2008 Universität Augsburg Lehrstuhl Programmierung verteilter Systeme Betreuer: Wolf Fischer

Upload: others

Post on 30-Aug-2019

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

1

Praktikum zu modellgetriebener

Softwareentwicklung

Thema 3:

Ontology Reasoning Differences Viewer

Ausarbeitung von

Gorana Bralo, Dominik Bösl, Chris Kämpfe

Sommersemester 2008

Universität Augsburg

Lehrstuhl Programmierung verteilter Systeme

Betreuer: Wolf Fischer

Page 2: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

2

Inhalt

Inhalt ................................................................................................................................... 2

1. Einleitung .................................................................................................................. 3

2. Theoretische Grundlagen ......................................................................................... 3

a. Ontologien ........................................................................................................... 4

b. OWL ..................................................................................................................... 5

c. EMF, GEF & GMF.................................................................................................. 7

d. Protégé .............................................................................................................. 10

e. Jena .................................................................................................................... 10

f. Metamodell ............................................................................................................ 10

3. Konzept für Editor zum Anzeigen von Unterschieden zwischen gelernten und

ungelernten Ontologien .................................................................................................... 11

4. Überarbeitung des Metamodells anhand der Praxis .............................................. 14

5. Das Jena-Framework ............................................................................................... 16

6. Konzept zur Erstellung des ORDVEditors ................................................................ 17

7. How-To zur Installation und Verwendung des Editors ........................................... 22

Page 3: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

3

1. Einleitung Das Internet der heutigen Zeit bietet eine Flut an Informationen, die auf alle

Fragen Antworten zu geben scheint. Theoretisch steht jedem Menschen, soziale

und kulturelle Barrieren einmal außer Acht gelassen, beliebiges Wissen auf Abruf

zur Verfügung. Der vermeintliche Segen dieser Datenflut hat jedoch in den

letzten Jahren immer mehr seine Janusköpfigkeit offenbart und ist auf dem

besten Weg, sich in einen Fluch des Verloren-Gehens im Web zu entwickeln.

Auch allen Versuchen, das Internet durch mehr Animation und

Benutzer(un)freundlichkeit in seine Version 2.0, 3.0 oder beliebige weitere

Revisionen zu transformieren helfen nicht, sich in der Masse an Webseiten

zurechtzufinden oder sie automatisiert inhaltlich erfassen, verarbeiten oder auch

nur kategorisieren zu können. Diese mangelnde Möglichkeit einer

Semantisierung der Webinhalte wurde allerdings mittlerweile erkannt und es

wird von vielen Institutionen, Firmen und Forschergruppen versucht, den nicht

interpretierten Daten eine Bedeutung zuzuordnen um das Ziel, ein lernendes

oder gar wissendes System, zu erreichen.

Im Lauf der Forschung, auf welche Art und Weise man es den Rechnersystemen

ermöglichen kann, Wissen zu speichern und semantische Beziehungen erfassen

zu können, haben sich verschiedenste Lösungsansätze herausgebildet. Einer

davon ist das Modell der Ontologien, die Beziehungen zwischen „Objekten“

beschreiben und deren Relationen zueinander auf einer „Metaebene“

widerspiegeln. Durch die Angabe von Beispielrelationen kann das System dann

„lernen“ und ähnliche Beziehungen auf dieselbe Weise kategorisieren. Jedoch ist

es für den Menschen schwierig bis schlichtweg unmöglich, die Unterschiede

zwischen einer zugrunde liegenden aufwendigen Ontologie mit sehr vielen

Elementen und der bereits gelernten ausfindig machen zu können.

Daher soll im Verlauf dieses Praktikums eine Software erstellt werden, die es

ermöglicht, eine zuvor erstellte Ontologie und das zugehörige, bereits gelernte

Pendant einzulesen, wechselweise anzuzeigen und die entsprechenden

Unterscheide graphisch hervorzuheben.

2. Theoretische Grundlagen Um jedoch das Konzept und die Vorgehensweise bei der Entwicklung des Editors

beschreiben zu können, müssen einige grundlegende Modelle, Konstrukte sowie

Frameworks erläutert werden.

Page 4: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

4

a. Ontologien

Eine Ontologie in der Informatik stellt eine formale Repräsentation einer Menge

von Konzepten innerhalb eines inhaltlichen Bereichs und deren Beziehungen

untereinander dar. Sie dient dem „Reasoning“ über die Eigenschaften des

jeweiligen Themengebietes sowie dessen Definition.

Ontologien kommen klassischerweise in der Künstlichen Intelligenz, dem

Semantic Web, Software Engineering, der Bioinformatik und als eine Form der

Wissensrepräsentation zum Einsatz.

Im Gegensatz zu klassischen Datenbanken, die keine Informationen über die

Bedeutung der gespeicherten Daten haben, besitzen Ontologien eine formale

Beschreibung der Daten sowie Regeln über deren Zusammenhang. Diese Regeln

erlauben es, Rückschlüsse aus den vorhandenen Daten zu ziehen, Widersprüche

in den Daten zu erkennen und fehlendes Wissen selbständig aus dem

Vorhandenen zu ergänzen. Diese Rückschlüsse werden durch logisches Folgern

(Inferenz) abgeleitet.

Um über einen Grundstock an semantischem Wissen verfügen zu können, muss

dieses zuerst vom Menschen in der Ontologie hinterlegt werden. Danach kann

die Ontologie aber durch automatische Verfahren weiteres Wissen akquirieren

sowie zusammenhänge erkennen und erlernen. Somit liegt nach dem Reasoning

eine „(an)gelernte) Ontologie vor, die im Unterschied zur Ausgangsontologie

über weitere Relationen verfügt. Wird zum Beispiel das Wissen „Ein Hund ist ein

Tier“ und „Snoopy ist ein Hund“ hinterlegt, so kann automatisch der

Zusammenhang „Snoopy ist ein Tier“ erkannt werden und „Snoopy“ würde als

Antwort auf die Frage nach allen Tieren in einer Datenbank zurückgeliefert

werden.

Ontologien bestehen aus folgenden Elementen:

Klassen (engl. Concepts) - Zusammenfassung gemeinsamer

Eigenschaften; manchmal auch als Klassen bezeichnet; mönnen in

Klassenstruktur angeordnet werden

Instanzen – Repräsentieren Objekte; stellen zur Verfügung stehende

Wissen dar

Relationen – Beziehung, in der Klassen und Objekte zueinander stehen;

Bezeichnen „Eigenschaften“ der Objekte

Vererbung – Relationen können vererbt werden; Mehrfachvererbung

theoretisch möglich; Einsatz von Transitivität erlaubt (auch Delegation

genannt)

Page 5: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

5

Axiome – Aussagen innerhalb der Ontologie, deren Wahrheitswert immer

true ist; Dienen der Repräsentation von nicht ableitbarem Wissen

Abbildung 1 - Beispiel einer Ontologie zur Kategorisierung von Wein

Ontologien lassen sich in zwei Typen einteilen. Die sogenannten lightweight-

Ontologien werden durch Begriffe, Taxonomien und Beziehungen zwischen

Begriffen gebildet. Im Gegensatz dazu sind die heavyweight-Ontologien

Erweiterungen der leichtgewichtigen und ergänzen diese durch Axiome und

Einschränkungen, die die gewünschten Aussagen innerhalb der Ontologien

präzisieren.

b. OWL Um Ontologien beschreiben zu können bedient man sich so genannter knowledge

representation languages. Eine wichtige Familie davon bildet die Web Ontology

Language (OWL) die seit 2004 vom World Wide Web Consortium (W3C) standardisiert

ist. Dabei erlaubt es OWL, folgende Ontologiebestandteile zu beschreiben:

classes, class hierarchies

properties, property hierarchies

domain and range restrictions

Page 6: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

6

logical expressions (and, or, not)

(in)equality

local properties

required/optional properties

required values of properties

enumerated classes

transitivity, symmetry, inverse of relations1

Die OWL-Sprachfamilie besteht hauptsächlich aus zwei größtenteils zueinander

kompatiblen Semantiken, OWL DL und OWL Lite; zudem existiert eine weniger

verbreitete Variante, der OWL Full Dialekt. OWL Lite, OWL DL und OWL Full

unterscheiden sich wie folgt:

OWL Lite OWL DL OWL Full

Classification hierarchy, simple constraints Features:

(sub)classes, individuals

(sub)poperties, domain, range

conjunction

(in)equality

cardinality constraints 0/1

datatypes

inverse, transitive, symmetric properties

someValuesForm

allValuesForm

Maximal expressiveness while maintaining tractability Direct correspondence with a Description Logic Features:

Negation

Disjunction

Full cardinality

Enumerated types

Very high expressiveness by losing tractability No restriction on use of vocabulary (as long as it complies RDF) Features:

Meta-classes

Modifying language

Abbildung 2 - Überblick über die OWL-Sprachfamilie 2

Die Semantik von OWL DL und OWL Lite basiert auf deskriptiver Logik, die über den

Vorteil verfügt, in ihrer Theorie sehr gut verstanden und analysiert zu sein und sich

durch die Berechenbarkeit Ihrer Eigenschaften auszeichnet. OWL Full hingegen

verwendet ein neuartiges semantisches Modell, das sehr stark in Anlehnung an das RDF

Schema gehalten ist um an dieser Stelle größtmögliche Kompatibilität zu ermöglichen.

1 Prof. Dr. Dr. h.c. Manfred Broy, Modellbildung in der Entwicklung, Vorlesung SoSe 2007,

TUM 2 ibid

Page 7: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

7

Dabei gelten folgende Zusammenhänge:

Jede zulässige (legal) OWL Lite Ontologie ist eine zulässige OWL DL Ontologie.

Jede zulässige OWL DL Ontologie ist eine zulässige OWL Full Ontologie.

Jede gültige (valid) OWL Lite Schlussfolgerung (conclusion) ist eine gültige OWL

DL Schlussfolgerung.

Jede gültige OWL DL Schlussfolgerung ist eine valide OWL Full Schlussfolgerung 3

Die OWL-Ontologien selbst werden in einer RDF/XML-ähnlichen Syntax modelliert, was

einen der Gründe für die fundamentale Bedeutung von OWL für das Semantic Web

darstellt. Die durch eine OWL Ontologie beschriebenen Daten werden als eine Menge an

individuals und einer Menge von property assertions intrerpretiert, die diese Instanzen

mit einander verknüpfen. Die Ontologie an sich besteht aus einer Menge von Axiomen,

die bestimmte Eigenschaften einer Menge von idividuals, classes genannt, sowie deren

Beziehung zueinander festlegen. Aus diesen axiomatischen Beziehungen ergeben sich

auch die in der Ontologie gespeicherten semantischen Informationen.

Die Definition einer Relation zwischen zwei Instanzen zweier Klassen in OWL sieht

exemplarisch so aus:

Abbildung 3 - exemplarische OWL Beschreibung

c. EMF, GEF & GMF Bei EMF, EGL und GMF handelt es sich um Frameworks, die den Programmierer bei der

automatisierten Erzeugung von Quelltext aus strukturierten Modellen unterstützen

wollen.

EMF steht dabei für Eclipse Modeling Framework und stellt ein Open Source Java

Framework dar. Es ist in der Lage aus einem auf offenen Standards basierenden Modell

Java-Code zu erzeugen. Die Modell-Spezifikation dafür wird in XMI erstellt, das Modell

an sich kann entweder aus kommentiertem Java Code oder einem oder mehreren XML

Dokumenten bestehen sowie in einem Modellierwerkzeug wie etwa Ration Rose erstellt

und dann in EMF importiert werden. Das daraus resultierende Programm kann

wiederum Instanzen dieses Modells abfragen, serialisieren, manipulieren, erstellen,

validieren und Änderungen überwachen. Auch das automatisierte Erstellen von JUnit-

Code zum Testen des generierten Codes ist möglich. Vorteile des EMF sind dabei die

3 Nach Wikipedia-Eintrag der englischen Wikipedia zum Begriff „Web Ontologie

Language“

Page 8: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

8

enge Integration in Eclipse mit allen daraus resultierenden Mehrwerten, wie der

erleichterten Erstellung von User Interfaces und der Interoperabilität mit anderen

Eclipse Projekten wie etwa GMF.

GEF bezeichnet das Eclipse Graphical Editing Framework, welches es dem Entwickler

ermöglicht, graphische Editoren mit einer reichen Palette an Funktionen aus seinen

bereits vorhandenen Anwendungsmodellen zu erstellen. Es setzt sich aus zwei Plugins

zusammen, wobei das org.eclipse.draw2D plugin ein Layout und Rendering Toolkit zum

Anzeigen von Graphiken anbietet. Dabei setzt GEF auf eine model-view-controller

Architektur.

Abbildung 4 - Ein mit GEF erstellter Editor zum Einfügen von Formen 4

Das Ecipse Graphical Modeling Framework, auch GMF, setzt schlussendlich auf EMF und

GEF auf und bietet eine generative Komponente sowie eine Laufzeit Infrastruktur, mit

deren Hilfe die Entwicklung von graphischen Editoren vereinfacht wird. Folgende Grafik

verdeutlicht den Workflow bei der Erstellung eines GMF Projektes.

4 GEF Tutorial, „A Shape Diagram Editor”, http://www.eclipse.org/articles/Article-GEF-

diagram-editor/shape.html

Page 9: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

9

Abbildung 5 - Workflow zur Erstellung eines GMF Projektes 5

Durch den Einsatz von GMF werden viele Arbeitsschritte bei der Erstellung eines

graphischen Editors zusammengefasst oder automatisiert und die Entwicklungszeit bzw.

–Komplexität für aufwendige graphische Eingabetools erheblich reduziert.

Abbildung 6 - Ein fertiger GMF-Editor zur Erstellung von Mindmaps 6

5 GMF Tutorial auf Eclipse.org, http://wiki.eclipse.org/GMF_Tutorial

6 GMF Beispiel aus der GMF Gallerie auf Eclipse.org,

http://www.eclipse.org/modeling/gmf/gallery/mindmap.png

Page 10: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

10

d. Protégé Der Protégé-Ontologie Editor dient der einfachen graphischen Erstellung von

Ontologien. Somit müssen Ontologien nicht mehr aufwendig rein textuell

„programmiert“ werden sondern können, ähnlich einem UML-Diagramm, gezeichnet

werden. Um mit Protégé auch OWL-konforme Ontologien erstellen zu können, bietet

der Editor die Möglichkeit, diese Funktionalität durch Plugins nachzurüsten. Dadurch ist

es möglich OWL und RDF Ontologien zu laden und zu speichern, Klassen, Eigenschaften

sowie SWRL-Regeln anzuzeigen und zu verändern, logische Klassen-Charakteristiken und

OWL-Ausdrücke zu definieren, Reasoner auszuführen und OWL-Individuals für den

Einsatz im Semantic Web zu editieren.7

e. Jena Jena ist ein auf Java basierendes Framework zur Erstellung von Semantic Web

Anwendungen. Hierfür wird eine Programmierumgebung bereitgestellt um auf RDF oder

OWL zugreifen zu können.

Aufgrund einer vielzahl von Java Interfaces und entsprechenden Implementationen ist

es möglich RDF Ressourcen zu repräsentieren. Somit können Graphen oder Modelle

erstellt und manipuliert werden.

Ein weiterer Mechanismus von Jena ist das Einlesen und Ausgeben von RDF Strukturen,

welcher ein wichtiger Teil des Praktikums darstellen wird.

f. Metamodell Bei der modellgetriebenen Softwareentwicklung spielen formale Modelle eine große

Bedeutung. Dabei geht es um Modelle, die die Funktionalität der zu entwickelnden

Software widerspiegeln und zwar auf einem höheren Abstraktionsniveau, absolut

Plattform unabhängig und Programmiersprachen unabhängig. Je näher so ein Modell an

dem Problemraum definiert ist und je ausdrucksstärker seine Elemente sind, desto

geringer gestaltet sich später der Aufwand bei der Entwicklung der Software. Ist das

Modell selbst mit ausreichend Semantik angereichert, so können z.B. Templates

definiert werden, die eine automatische Codegenerierung direkt aus dem Modell heraus

ermöglichen. Um solche formalen Modelle überhaupt definieren zu können bedarf es

einer Modellierungssprache, der so genannten DSL (Domain Specific Langauge). Es gibt

zwei Möglichkeiten eine Modellierungssprache zu wählen: Entweder durch Erweiterung

von UML durch Profile oder durch Definition einer von Grund auf neuen Sprache, die

speziell auf den vorliegenden Problemraum zugeschnitten ist. Im Rahmen dieses

Projektes werden wir auf die erste Möglichkeit zurückgreifen und UML für unsere

Bedürfnisse passend erweitern. Die Erweiterung einer schon vorhandenen Sprache

sowie die Definition einer absolut neuen Sprache erfolgt anhand so genannter

Metamodelle. Die griechische Vorbsilbe „meta“ bedeutet so viel wie „über“.

Metamodelle sind also Modelle, die etwas über die Modellierung aussagen. Ein 7 Protégé-OWL Beschreibung auf http://protege.stanford.edu/overview/protege-

owl.html

Page 11: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

11

Metamodell definiert in abstrakter Weise die Modellelemente bzw. Konstrukte, die

verwendet werden können, um eine Modell zu erstellen. Ein Modell ist damit als eine

Instanz eines Metamodells zu sehen. Für das zugrunde liegende Projekt sieht das

Metamodell wie folgt aus:

Abbildung 7 - Metamodell (Erweiterung des UML Metamodells)

Das Metamodell besteht in diesem Fall aus einer Klasse und einer Property. Anhand der

Elemente dieses einfachen Metamodells ist man in der Lage komplexere Modelle zu

erstellen. Die erstellten Modelle werden im Kontext dieses Projektes schließlich als

Ontologien bezeichnet, die im Editor graphisch angezeigt werden und deren

Unterschiede ebenfalls graphisch hervorgehoben werden sollen. Im nächsten Abschnitt

wird näher auf das Konzept eingegangen.

3. Konzept für Editor zum Anzeigen von Unterschieden

zwischen gelernten und ungelernten Ontologien Ein nur schwer zu überblickendes Problem zwischen einer ungelernten und gelernten

Ontologie ist zuerkennen, was die gelernte Ontologie letztendlich gelernt hat.

Page 12: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

12

Aufgabe für das Praktikum soll sein, einen Editor zu entwerfen, welcher die

Unterschiede zwischen den Ontologien graphisch hervorhebt und darstellt. Somit kann

überprüft werden, ob die gelernte Ontologie auch nichts „Falsches“ gelernt hat.

Im folgenden Abschnitt wird bildhaft dargestellt, wie der Aufbau des Konzeptes gedacht

ist.

Abbildung 8 zeigt eine ungelernte Ontologie. In dieser ist zu erkennen, welche

Beziehungen zwischen Personen bestehen, z.B. wer mit wem verheiratet ist oder wer

die Kinder des Ehepaares sind.

Abbildung 8 - Ein ungelernte Ontologie

In Abbildung 9 wird die gleiche Ontologie dargestellt nur das sie bereits Wissen

akquiriert hat.

In der linken oberen Hälfte des Bildes befinden sich wieder die Beziehungen der

Personen aus der vorangegangenen Abbildung 8.

Hinzukommt, dass die Ontologie aufgrund der Beziehungen der einzelnen Personen

gelernt hat, welche Person eine andere Person kennt. Anhand dieser Abbildung lässt

sich schon erkennen, dass der Überblick recht schnell verloren geht, welches Wissen neu

hinzugekommen ist.

Page 13: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

13

Abbildung 9 - Ein ungelernte Ontologie

Der zu entwickelnde Editor soll die unterschiede der zwei Ontologien herausfinden und

diese darstellen (vgl. Abbildung 10).

In der Abbildung werden nur noch die Beziehungen dargestellt, wo eine Person die

andere kennt. Also das gelernte Wissen und somit die Unterschiede der Ontologien.

Abbildung 10 - Ein ungelernte Ontologie

Die grundlegende Idee des Editors ist somit das Einlesen von zwei Ontologien, welche

ebenfalls über den Editor angezeigt werden können. Nach erfolgreichem Einlesen sollen

die Unterschiede festgestellt und entsprechend angezeigt werden. Hierbei soll der

Editor auf dem Jena Framework aufbauen, um die Manipulationen an den Daten

vornehmen zu können.

Page 14: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

14

4. Überarbeitung des Metamodells anhand der Praxis

Metamodell

Bei der modellgetriebenen Softwareentwicklung spielen formale Modelle eine

große Bedeutung. Dabei geht es um Modelle, die die Funktionalität der zu

entwickelnden Software widerspiegeln und zwar auf einem höheren

Abstraktionsniveau, absolut Plattform unabhängig und Programmiersprachen

unabhängig. Je näher so ein Modell an dem Problemraum definiert ist und je

ausdrucksstärker seine Elemente sind, desto geringer gestaltet sich später der

Aufwand bei der Entwicklung der Software. Ist das Modell selbst mit ausreichend

Semantik angereichert können so z.B. Templates definiert werden, die eine

automatische Codegenerierung direkt aus dem Modell heraus ermöglichen. Um

solche formalen Modelle überhaupt definieren zu können bedarf es einer

Modellierungssprache, der so genannten DSL (Domain Specific Language). Es gibt

zwei Möglichkeiten eine Modellierungssprache zu wählen: Entweder durch

Erweiterung von UML durch Profile oder durch Definition einer von Grund auf

neuen Sprache, die speziell auf den vorliegenden Problemraum zugeschnitten ist.

Im Rahmen dieses Projektes werden wir auf die erste Möglichkeit zurückgreifen

und UML für unsere Bedürfnisse passend erweitern. Die Erweiterung einer schon

vorhandenen Sprache sowie die Definition einer absolut neuen Sprache erfolgt

anhand so genannter Metamodelle. Die griechische Vorbsilbe „meta“ bedeutet

so viel wie „über“. Metamodelle sind also Modelle, die etwas über die

Modellierung aussagen. Ein Metamodell definiert in abstrakter Weise die

Modellelemente bzw. Konstrukte, die verwendet werden können, um ein Modell

zu erstellen. Ein Modell ist damit als eine Instanz eines Metamodells zu sehen.

Für das zugrunde liegende Projekt sieht das Metamodell wie folgt aus:

Page 15: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

15

Abbildung 11 - Neues Metamodell

Es besteht aus sieben Klassen, die miteinander verbunden sind. Damit ist

festgelegt in welcher Weise Elemente, die im Editor graphisch dargestellt werden

sollen, erstellt und miteinander verknüpft werden können. Die Klasse

ElementDiagram ist dabei die Superklasse, die alle möglichen graphischen

Elemente enthält, die darstellbar sind. Diese graphischen Elemente sind durch

die Klasse GraphicalElements definiert. Alle Elemente, die von dieser Klasse

erben, besitzen drei Attribute: eine ID, zur eindeutigen Identifizierung, einen

Namen und ein Attribut „isHighlighted“ vom Typ Boolean. IsHighlighted gibt an,

ob das Element farblich hervorgehoben ist oder nicht, was bei der Darstellung

der Unterschiede zwischen zwei Ontologien eine Rolle spielt. Diese Unterschiede

werden farblich markiert.

Zu den darstellbaren graphischen Elementen zählen die TBoxClass, Property und

Datatype. Die TboxClass definiert alle möglichen bzw. auftretenden Klassen einer

vorliegenden Ontologie, mit der später konkrete Individuals abgeleitet werden

können. Ein Beispiel für eine TBoxClass ist eine Klasse namens „Person“ von

welcher eine konkrete Instanz (Individual), wie „Peter“ abgeleitet werden kann.

Jede TBoxClass kann außerdem eine oder auch mehrere Properties besitzen, die

Page 16: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

16

ebenfalls graphisch dargestellt werden können. Eine Property kann entweder

eine DatatypeProperty sein, die etwas über den Datentyp einer TBoxClass

aussagt oder aber eine ObjectProperty, die die Eigenschaften einer TBoxClass

beschreibt. Eine ObjectProperty sagt etwas über die Beziehung der TBoxClass zu

anderen TboxClasses aus. Besitzt eine Klasse eine oder mehrere

ObjectProperties, dann sagt dies aus, dass diese TBoxClass in Beziehung zu einer

oder mehreren TBoxClasses steht. Eine ObjectProperty könnte z.B. „gehört zu“

sein. Daraus ergibt sich, dass eine ObjectProperty also eine Range- und eine

Domain-Klasse hat, d.h. eine Quell- und eine Zielklasse.

Schließlich gibt es noch die Klasse Datatype, die die Oberklasse für die

DatatypeProperties darstellt und selbst von der Klasse GraphicalElements erbt.

Im entwickelten Editor können demnach Klassen, ihre Datentypen und

Relationen untereinander graphisch dargestellt werden. Aufgrund dieses

Metamodells können so im weiteren Verlauf alle nötigen Elemente einer

Ontologie visualisiert werden und mit Hilfe von zusätzlichem selbst

geschriebenem Code letztendlich die Unterschiede zweier Ontologien graphisch

dargestellt und hervorgehoben werden.

5. Das Jena-Framework

Jena ist ein auf Java basierendes Framework zur Erstellung von Semantic Web Anwendungen.

Abbildung 12 - Jena Homepage

Page 17: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

17

Hierfür wird eine Programmierumgebung bereitgestellt um auf RDF oder OWL zugreifen zu können. Aufgrund einer Vielzahl von Java Interfaces und entsprechenden Implementierungen ist es möglich RDF Ressourcen zu repräsentieren. Somit können Graphen oder Modelle erstellt und manipuliert werden. Ein weiterer Mechanismus von Jena ist das Einlesen und Ausgeben von RDF Strukturen, welcher ein wichtiger Teil des Praktikums darstellt. Um die Elemente der Ontologien in den Editor zu laden und graphisch darstellen zu können, müssen zunächst die OWL-Dateien, d.h. ihre Elemente, eingelesen werden. Dazu müssen die Libraries von Jena als Plugin in Eclipse eingebunden werden, damit man auf die Methoden zugreifen kann. Ist dies geschehen, so ist es möglich die Klassen und Properties der OWL-Datei mit entsprechenden Methoden auszulesen und schließlich an die Klassen zu übergeben, die diese Elemente zeichnen sollen. Dazu erstellt man als erstes ein leeres Ontology-Modell. So ein Modell wird dabei als eine Menge von Statements definiert, z.B. Ressourcen, Properties usw., die miteinander auf eine bestimmte Art und Weise verknüpf sind. Hat man die zu ladende OWL-Datei ausgewählt, wird mit Hilfe eines InputStreams die Datei eingelesen und in das zuvor erstellte leere Ontology-Modell geschrieben. Diese Modell enthält jetzt alle vorhandenen Elemente der eingelesen Ontologie und nun hat man mehrere Möglichkeiten auf die Elemente zuzugreifen. Es ist möglich alle Elemente, d.h. Statements auszulesen, nur die Klassen (Ressourcen) oder auch nur die Properties. Bei den Properties wird außerdem unterschieden zwischen DatatypeProperties und ObjecttypeProperties. Für dieses Praktikum werden jeweils zwei Ontologien auf diese Art eingelesen, jeweils ihre Klassen und ObjectProperties ausgelesen, miteinander verglichen und schließlich gezeichnet.

6. Konzept zur Erstellung des ORDVEditors

Im folgenden wird skizzenhaft geschildert wie der Ontology Reasoning Difference

Viewer Editor – kurz: ORDVEditor – mithilfe von GMF (Graphical Modelling

Framework) erstellt wurde.

Um einen Editor erstellen zu können benötigt man ein Metamodell (siehe

Abschnitt 4), welches durch GMF mittels Drag & Drop erstellt werden kann. Das

Metamodell bildet die Grundlage für den weitere Erstellung des Editors und wird

im Format einer *.ecore Datei gespeichert. Somit wird ermöglicht das

strukturelle Modelle definiert werden können.

Neben dem ecore-Modell wird ebenso das Generatormodell benötigt, auch

genmodel genannt. Im Gegenteil zum ecore-Modell enthält das genmodel nur

plattformspezifische Informationen und dient zum Generieren der Quelltexte.

Dabei kann festgelegt werden, welche Pakete verwendet werden sollen oder

auch die Darstellung der Modellstrukturen. Im konkreten generiert das

Page 18: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

18

genmodel drei Projekte: ORDVEditor.editor (Benutzerschnittstellen),

ORDVEditor.edit (Adapter) und ORDVEditor (Schnittstellenklasse für alle

modellierten Objekte).

Dieser erste Teil entspricht die Erstellung des EMF-Bereichs des Editors. Der

folgende Teil erläutert die Erstellung der GMF Funktionalitäten. Mittels GMF

kann eben EMF und GEF in der gleichen Umgebung erstellt werden.

Als nächstes wird graphische Notation des Editor spezifiziert im gmfgraph. Der

Entwickler muss nun entscheiden, wie seine Elemente dargestellt werden sollen.

Der ORDVEditor besteht derzeit aus TboxClassen – dargestellt als Rechtecke –

und aus Datatypes – dargestellt als Ellipsen. Diese Elemente müssen auch

verbunden werden werden mit so genannten Connections. Im Projekt gibt es

zwei Connections, eine ObjectProperty und eine DatatypeProperty. Beide

Connections werden als eine durchgezogenen Linie mit einem Pfeil an einem

Ende dargestellt. Somit ist bis auf weiteres die graphische Notation des Editors

vereinbart worden.

Damit auf die graphischen Elemente zugegriffen werden kann, muss ebenfalls ein

gmftool

erstellt werden. Dies ist eine einfache Zuordnung, welche Inhalte die Palette des

späteren Editors enthalten soll.

Im vorletzten Schritt widmen wir uns der Erstellung der gmfmap. Die gmfmap

zählt nicht mehr zu GEF, sondern ist ein wichtiger Schlüssel für GMF. Denn

Anhand dieser wird das Mapping der drei zuvor erstellten Modelle

zusammengeführt und wird als Input verwendet um letztendlich das gmfgen

Modell zu generieren.

Mit dem gmfgen Modell steht man unmittelbar vor dem Ziel der Erstellung eines

Editors. Nachdem im gmfgen alle graphischen Elemente und Mappings

zusammengefügt wurden, kann nun daraus der lauffähige Editor generiert und

anschließend gestartet werden.

Page 19: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

19

In der Abbildung sieht man

den Überblick von dem

bereits erzählten Modellen

sowie die erzeugten

Projekte aus dem genmodel.

Alle besprochenen Modelle

befinden sich im Ordner

model.

Nach erfolgreichem

generieren des gmfgen kann

über Run As -> Eclipse

Application der Editor

gestart werden.

Abbildung 13: Übersicht GMF Modelle

In der Abbildung 14 sieht man den gestarteten Editor. Am rechten Bildrand ist

die Palette, welche über das gmftool Modell kreiert wurde. Durch Drag & Drop

lassen sich die Elemente auf die Arbeitsfläche ziehen und entsprechend

verbinden. Wobei das Metamodell vorschreibt, welche Modellstrukturen zulässig

sind. So kann beispielsweise eine DatatypeProperty nie von einer TboxClass auf

einen Datatype zeigen.

Page 20: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

20

Nach dem momentanen Stand ist es jedoch noch nicht möglich OWL Dateien zu

laden.

Um OWL Dateien zu bearbeiten wird das JENA Framework verwendet, welches

das einlesen von Web Ontology Languages unterstützt.

Die Ablauflogik hinter dem ORDVEditor ist die, dass zwei OWL Dateien

angegeben werden. Diese werden über JENA eingelesen und durch die Logik

verarbeitet. Dabei wird zunächst die ungelernte Ontologie geladen und intern

abgelegt, woraufhin anschließend die gelernte Ontologie geladen und

gespeichert wird. Nun werden alle Objekte der Ontologie mit der ungelernten

verglichen und bei Unterschieden zwischen diesen auch entsprechend vermerkt.

Nach dem dies erfolgreich durchgeführt wurde, müssen die Unterschiede wie

auch die Ontologien noch im Modell abgelegt und auf der GUI gezeichnet

werden.

GMF verwendet das Model-Viewer-Controller Pattern (MVC), was bedeutet, dass

das Modell und der Viewer über einen Controller kommunizieren müssen.

Deswegen müssen die Veränderungen über Commands durchgeführt werden,

damit das Modell und die GUI angepasst werden.

Abbildung 14: Beispiel ORDVEditor

Page 21: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

21

1) CreateElementRequest cer = new CreateElementRequest(editDomain, 2) (EObject)diagrammeditpart.getModel(), elementType, 3) ORDVEditorPackage.Literals.ELEMENT_DIAGRAM__CONTAINS);4) Command tccc = new ICommandProxy(new TBoxClassCreateCommand(cer));5) dcs.execute(tccc); 6) TBoxClass eobj = (TboxClass)cer.getNewElement(); 7) SetRequest reqSet = new SetRequest(ed, eobj, 8) ORDVEditorPackage.Literals.GRAPHICAL_ELEMENTS__NAME, 9) „Name“); 10)SetValueCommand operation = new SetValueCommand(reqSet); 11)dcs.execute(new ICommandProxy(operation));

Abbildung 15: Ausführung eines Commands

Wie ein Command aussieht soll Abbildung 15 zeigen. In Zeile 1 wird eine

Anforderung (Request) erstellt für ein neues Element. Diese beinhaltet unter

anderem was für ein Typ es sein soll, im Beispiel eine TboxClass. Als nächstes

wird der Request an ein TboxClassCreateCommand (Zeile 4) weitergeleitet,

welcher wiederum „eingepackt“ ist. Das Command wird in Zeile 5 ausgeführt und

somit ist das Modell auf dem neusten Stand. Da aber die neue TboxClass noch

keinen Namen hat wird dies in Zeile 6 bis 11 noch nachgeholt. D.h. man holt sich

das neu erstellte Element (Zeile 6) führt einen neuen Request aus. Dieser

beinhaltet das neue Element, was geändert werden – der Name – und was für

ein Wert es bekommen sollen (Zeile 7 – 9). Damit das ganze auch wieder zum

Abschluss kommt benötigt man noch Zeile 11, wo das Command ausgeführt

wird.

Der Editor ist nun soweit lauffähig, das er eine OWL Datei einlesen kann, die

eingelesenen Elemente an das Modell weiterreicht und daraufhin auch die GUI

neu zeichnet. Somit lassen sich die Ontologien anzeigen sowie auch deren

Unterschiede.

Page 22: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

22

7. How-To zur Installation und Verwendung des Editors

Im Folgenden wird beschrieben, wie der ORDV-Editor installiert und verwendet werden

kann. Voraussetzungen dazu sind eine lauffähige, aktuelle Installation von Eclipse (der

ORDV-Editor ist bisher auf Eclipse EUROPA und GANYMEDE getestet worden) sowie das

vollständige ORDV-Editor Package inklusive Jena-Framework.

1. Öffnen Sie Eclipse

2. Erstellen Sie ein neues Java Projekt

Page 23: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

23

Abbildung 16 - Neues Java-Projekt erstellen

3. Benennen Sie es

Abbildung 17 - Bennen des Java-Projektes

4. Importieren Sie alle vier Teilprojekte aus dem ORDV-Archiv

Page 24: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

24

Abbildung 18 - Importieren der Teilprojekte (1)

5. Wählen Sie "General"- "Existing Project into Workspace" aus

Abbildung 19 - Importieren der Teilprojekte (2)

Page 25: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

25

6. Wählen Sie das ORDV-Editor Verzeichnis aus

Abbildung 20 - Importieren der Teilprojekte (3)

7. Selektieren Sie die Teilprojekte und das Jena-Framework

Abbildung 21 - Importieren der Teilprojekte (4)

Page 26: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

26

8. Nun müssen die Referenzen auf das Jena-Framework gesetzt werden.

Öffnen Sie dazu das Paket ORDVEditor im Paketexplorer und klicken Sie

doppelt auf die Datei "Plugin.xml".

Abbildung 22 - Aktualisieren der Jena-Dependency (1)

9. Klicken Sie auf den Reiter "Dependencies" unter dem erschienenen

Fenster und dort auf "Add".

Abbildung 23 - Aktualisieren der Jena-Dependency (2)

Page 27: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

27

10. Wählen Sie nun das Jena-Package aus und bestätigen Sie mir "ok".

Abbildung 24 - Aktualisierung der Jena-Dependency (3)

11. Wiederholen Sie diese Schritte mit den anderen drei Teilprojekten

ORDVEditor.diagram, ORDVEditor.edit und ORDVEditor.editor.

Abbildung 25 - Updaten der anderen Dependencies analog

Page 28: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

28

12. Klicken Sie nun rechts auf das Teilprojekt ORDVEditor und wählen Sie "run

as" "Eclipse Application". Daraufhin sollte sich ein neues Eclipse-Fenster

öffnen.

Abbildung 26 - ORDVEditor als Eclipse Application starten

13. In dieser neuen Instanz von Eclipse erstellen Sie nun eine neue Java-

Applikation.

Abbildung 27 - Neues Java-Projekt anlegen

Page 29: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

29

14. Auf dieses frisch erstelle Projekte klicken Sie wiederum rechts und

selektieren "run as" "Example".

Abbildung 28 - ORDVEditor als Example ausführen

15. Im erscheinenden Fenster wählen Sie ORDV-editor Diagram und

bestätigen mit "Next".

Abbildung 29 - Neues ORDV-Diagramm erstellen

Page 30: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

30

16. Spezifizieren Sie das Stammverzeichnis des Projekts,...

Abbildung 30 - Pfad auswählen

17. ... wählen Sie eine ungelernte ...

Abbildung 31 - Auswählen einer ungelernten Ontologie

18. ... sowie eine gelernte Ontologie und bestätigen Sie mit "ok".

Abbildung 32 - Auswahl einer gelernten Ontologie

Page 31: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

31

Abbildung 33 - Bestätigen

19. Daraufhin werden drei Tabs geöffnet, die jeweils die gelernte, ungelernte

sowie die Unterschiede zwischen den Ontologien darstellen. Aufgrund der

Zeichenroutinen in GMF werden alle Elemente jedoch übereinander

gezeichnet und müssen manuell platziert werden.

Abbildung 34 - Übereinander gezeichnete Elemente der Ontologien

Page 32: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

32

20. Angeordnete Ansicht der ungelernten ...

Abbildung 35 - Angeordnete ungelernte Ontologie

21. ... gelernten sowie....

Abbildung 36 - Gelernte Ontologie

Page 33: Ontology Reasoning Differences Viewer · vocabulary (as long as it complies RDF) Features: Meta -classes ... die über den Vorteil verfügt, in ihrer Theorie sehr gut verstanden und

33

22. ... die Unterschiede der Ontologien

Abbildung 37 - Unterschiede der Ontologien

Abbildung 38 - Überschneidungsfreie Darstellung der Ontologie-Unterschiede