Während der letzten Vorlesungen, haben wir uns die Web Ontology Language OWL angesehen.
Dazu sind wir zunächst kurz auf den Begriff der Ontologie eingegangen und haben uns dann mit den Anforderungen an eine Ontologiesprache und warum RDF(S) nicht für alle Fälle ausreicht, beschäftigt.
Anschließend wurde die Version 1 der Sprache OWL vorgestellt. Dabei haben wir die drei Dialekte Light, DL und Full sowie ihre jeweiligen Einsatzgebiete behandelt und gesehen, dass diese in ansteigender Komplexität und Ausdrucksstärke aufeinander aufbauen.
Daraufhin haben wir uns die Details der Sprache näher angesehen. Es wurde besprochen aus welchen Bestandteilen OWL Ontologien bestehen, welche Konzepte (Klassen, Individuen sowie konkrete und abstrakte Rollen) , Sprachelemente (owl:Class, owl:Thing, …) und Kurzschreibweisen existieren sowie welche speziellen Beziehungen zwischen Klassen und Individuen bestehen bzw beschrieben werden können.
Im Anschluss daran wurde erklärt, wie wir durch Beschränkungen auf Rollen (z.B. alle “hatFreund” Beziehungen besitzen “Frau” als Klasse des Subjekts) komplexe Klassen erstellen können und wie sich diese sich durch Intersektion, Vereinigung oder Komplementbildung zu weiteren komplexen Klassen vereinen lassen.
Wir haben uns mit der Klassifizierung von Rollen anhand ihrer Eigenschaften (invers zueinander, transitiv, symmetrisch, (invers) funktional) sowie mit der Bedeutung der Festlegung und den Gefahren von domain und range für diese Rollen beschäftigt.
Nach einer erneuten näheren Betrachtung der Dialekte, und der OWL zur Grunde liegenden Open Word Assumption haben wir uns mit Inferenz, dem “automatischen Schließen aus implizitem Wissen” beschäftigt und dabei die Funktionsweise und Probleme des Tableauverfahrens betrachtet.
Der nächste Abschnitt hat sich mit der neuen Version 2 von OWL beschäftigt. Dabei haben wir gelernt, das OWL 2 auf einer SROIQ Beschreibungslogik fusst und damit der SHOIN Logik von OWL 1 überlegen ist.Mit qualifizierten Zahlenrestriktionen, dem Konzept SELF sowie der Rolleninklusion haben wir die wichtigsten Elemente der neuen Version behandelt. Abschließend wurden Themen wie punning und die Aufgliederung des Light Dialekts in die Profile EL, QL und RL besprochen.
[]Während der letzten Vorlesungen, haben wir uns die Web Ontology Language OWL angesehen.
Dazu sind wir zunächst kurz auf den Begriff der Ontologie eingegangen und haben uns dann mit den Anforderungen an eine Ontologiesprache und warum RDF(S) nicht für alle Fälle ausreicht, beschäftigt.
Anschließend wurde die Version 1 der Sprache OWL vorgestellt. Dabei haben wir die drei Dialekte Light, DL und Full sowie ihre jeweiligen Einsatzgebiete behandelt und gesehen, dass diese in ansteigender Komplexität und Ausdrucksstärke aufeinander aufbauen.
Daraufhin haben wir uns die Details der Sprache näher angesehen. Es wurde besprochen aus welchen Bestandteilen OWL Ontologien bestehen, welche Konzepte (Klassen, Individuen sowie konkrete und abstrakte Rollen) , Sprachelemente (owl:Class, owl:Thing, …) und Kurzschreibweisen existieren sowie welche speziellen Beziehungen zwischen Klassen und Individuen bestehen bzw beschrieben werden können.
Im Anschluss daran wurde erklärt, wie wir durch Beschränkungen auf Rollen (z.B. alle “hatFreund” Beziehungen besitzen “Frau” als Klasse des Subjekts) als komplexe Klassen erstellen können und wie sich diese sich durch Intersektion, Vereinigung oder Komplementbildung zu weiteren komplexen Klassen vereinen lassen.
Wir haben uns mit der Klassifizierung von Rollen anhand ihrer Eigenschaften (invers zueinander, transitiv, symmetrisch, (invers) funktional) sowie mit der Bedeutung der Festlegung und den Gefahren von domain und range für diese Rollen beschäftigt.
Nach einer erneuten näheren Betrachtung der Dialekte, und der OWL zur Grunde liegenden Open Word Assumption haben wir uns mit Inferenz, dem “automatischen Schließen aus implizitem Wissen” beschäftigt und dabei die Funktionsweise und Probleme des Tableauverfahrens betrachtet.
Der nächste Abschnitt hat sich mit der neuen Version 2 von OWL beschäftigt. Dabei haben wir betrachtet, das OWL 2 auf einer SROIQ Beschreibungslogik fusst und damit der SHOIN Logik von OWL 1 überlegen ist.Mit qualifizierten Zahlenrestriktionen, dem Konzept SELF sowie der Rolleninklusion haben wir die wichtigsten Elemente der neuen Version behandelt. Abschließend wurden Themen wie punning und die Aufgliederung des Light Dialekts in die Profile EL, QL und RL besprochen.
Im Anschluss an die RDF(S)-Frameworks und einer Übungseinheit, haben wir uns in den letzten beiden Vorlesungen mit dem Thema SPARQL, der SPARQL Protocol And RDF Query Language, befasst.
In der heutigen Übung soll einen kleine Applikation zur Kontaktverwaltung in Java mit Hilfe des Jena Frameworks, welches in der letzten Vorlesung vorgestellt wurde, erstellt werden.
Ich habe hierfür ein kleines Rahmenprogramm erstellt, dass uns als Ausgangspunkt dienen soll und bereits die Oberfläche implementiert. Sie müssen also nur noch die für den Datenzugriff wichtigen Codestellen ausfüllen. Entsprechende Stellen sind im Co
de mit TODO markiert.
Inhalte der Übung sind:
Erstellen einer Konstantenklasse mit dem Jena schemagen Werkzeug
Laden des Modells von einer Datei
Speichern der Triple in einer Datei
Erstellen von Triplen
Finden und Lesen von Triplen
Löschen von Triplen
Als Vokabular für die Übungsapplikation verwenden wir einen Teil des FOAF-Vokabulars, den wir mit eigenen Properties für die foaf:Person angereichert haben (siehe Grafik auf der rechten Seite).
Wenn Sie möchten, können Sie das mitgelieferte Vokabular oder die Benutzerschnittstelle gerne um eigene Elemente erweitern. Focus der Übung liegt aber ganz klar darauf, das Jena-Framework und seine grundlegende Funktionalität kennen zu lernen.
Nach den theoretischen Grundlagen vom letzten Mal, wenden wir uns nun wieder den eher praktischen Gefielden zu. In der aktuellen Vorlesung beschäftigen wir uns mit RDF(S)-Frameworks aus der Java Welt.
Zunächst wird mit Sesame eines der bekanntesten Frameworks vorgestellt. Durch sein Storage and Inference Layer (SAIL) kann es semantische Daten mit praktisch beliebigen Mechanismen persistieren.
Der Mulgara Semantic Store ist ein Triple Store, der nativ in Java als Triple Store implementiert ist und nicht auf relationale Datenbanken angewiesen ist. Als wichtigstes Feature gibt es bei Mulgara das Resolver-SPI, mit dem es möglich ist, entfernten Content zu integrieren.
Mit dem Topaz Projekt existiert eine Erweiterung zu Mulgara, die die Idee eines Objekt Relational Mappers ala Hibernate in die Semantic Web Welt transferiert.
Abschließend beschäftigen wir uns mit Jena, dem marktführenden Semantic Web Framework, dass ursprünglich von Hewlett Packard als Open Source entwickelt wurde und seit kurzem als OpenJena verfügbar ist. Viele Beispiele demonstrieren, wie man mit dem Jena API die wichtigsten Aufgaben erledigt.
Auf diesen Seiten möchte ich möchte ich mich und meine Interessen präsentieren.
Falls Ihr Vorschläge habt, was ich hier noch verbessern kann, dann schreibt mir doch einfach eine E-Mail oder hinterlasst einen Kommentar unter einem der Beiträge.
Also dann, viel Spass auf diesen Seiten wünscht euch
Steffen