Beruflich / Universität Gesamthochschule Essen / RDFHandle

Sie benutzen einen Browser der von diesen Internetseiten nicht unterstützt wird. Daher kann es sein, dass nicht alles so funktioniert und aussieht wie es sollte.

Projekt RDFHandle

Im Rahmen meiner zweiten Diplomarbeit für den Studiengang Wirtschaftsinformatik DII wurde ein Klassensystem entwickelt. Dieses Klassensystem ist in der Lage, Daten von RDF-Modellen in geeigneter Form zu speichern und eine Grundlage für eine weitere Verarbeitung dieser Daten bilden. Dokumentationen, die zum tieferen Verständnis dieser Thematik gelesen werden sollten, sind am unteren Ende der Seite referenziert.

Die Implementierung des Klassensystems erfolgt in der Programmiersprache Extended Object Oriented Tool Command Language ( XOTcl ) und greift dabei auf Entwurfsmuster (engl. Design Patterns) zurück.

Das entstehende Klassensystem greift für das Einlesen von RDF-Dokumenten in der XML/RDF-Syntax auf den am Lehrstuhl für Wirtschaftsinformatik und Softwaretechnik der Universität GH Essen entwickelten RDF-Parser xoRDF (Version 0.9beta) zurück. Weitere Informationen zu diesem Thema können auf der Homepage von Uwe Zdun abgerufen werden.

Der Programmcode des Klassensystems steht auf der Downloadseite bereit. Weiterhin stehen einige Dokumentationen zu dem Klassensystem unter Dokumentation zur Verfügung.

Ein besonderer Schwerpunkt liegt in der Entwicklung einer Abfragesprache im SQL-Stil. Dabei besteht die Möglichkeit, die Triple eines RDF-Modells mit Hilfe eines Querys abzufragen. Das Ergebnis einer derartigen Abfrage ist eine eingeschränkte Menge von Triple. Die Syntax eines solchen Querys sieht in etwa folgendermaßen aus :

SELECT subject,predicate,object,parsetype FROM  
WHERE subject | predicate | object | parsetype = ""
AND | OR subject | predicate | object | parsetype = ""
ORDER BY subject | predicate | object | parsetype

Dabei liegen die Triple in Form einer Liste von {predicate,[subject],[object]} oder {predicate,[subject],"object"} vor.

Dokumentation

Die im folgenden zur Verfügung gestellten Unterlagen zu dem Klassensystem RDFHandle für das Resource Description Framework (RDF) sind mit Hilfe von Tar und Gzip gepackt worden. Teilweise liegen die Dokumente als Postscript vor und können mit Hilfe von Ghostview betrachtet werden.

Quellcode

Der Quellcode des Klassensystems ist in Englisch kommentiert, so daß eine Dokumentation zum Quellcode vorerst noch nicht zur Verfügung steht. Um das Zusammenspiel der Klassen untereinander zu verdeutlichen, steht ein Klassendiagramm (Stand 16.01.2000) zum Download bereit, welches auch online betrachtet werden kann.

Abfragesprache

Für die in dem Klassensystem verwendete Abfragesprache in einem SQL-Stil, die zum Abfragen von Tripeln eines RDF-Modells verwendet wird, existiert eine Grammatik , die in einer ähnlichen wie der Extended Backus Naur Form (EBNF) vorliegt. Die Grammatik ist auch in Form einer Dokumentation im Quellcode enthalten.

Komponenten

Weiterhin existiert ein Komponenten-Diagramm (Stand 16.01.2000), welches die Zusammenhänge zwischen den einzelnen Dateien des Klassensystems verdeutlicht. Das Diagramm kann auch online betrachtet werden.Im folgenden sind die Schnittstellen einiger Klassen zusammengefasst, die für die Benutzung des Klassensystems von Bedeutung sind. Eine Übersicht darüber, welche Dateien welche Klassen enthalten gibt das Komponenten-Diagramm . Die Schnittstellen werden in einer einheitlichen Klasse vereinigt, sobald ein RDF-API als Standard verabschiedet wurde. Nähere Informationen dazu sind unter http://www-db.stanford.edu/~melnik/rdf/api.html erhältlich.

Klasse RDFModel
Rückgabewert Methode Parameter
STRING (Instanzname) init {}
{} reset {}
BOOLEAN statementExists { STRING STRING STRING STRING }
BOOLEAN createStatement { STRING STRING STRING STRING }
BOOLEAN removeStatement { STRING STRING STRING STRING }
BOOLEAN replaceStatement { LIST LIST }
LIST getTriple {}
BOOLEAN namespaceExists { STRING STRING }
BOOLEAN createNamespace { STRING STRING }
BOOLEAN removeNamesapce { STRING STRING }
BOOLEAN replaceNamespace { LIST LIST }
LIST getNamespaces {}
STRING (Inhalt) getNamespacePrefix { STRING }
STRING (Inhalt) getNamespaceUri { STRING }
BOOLEAN setSpecialNamespace { STRING STRING STRING }
LIST getSpecialNamespace { STRING }
STRING (Präfix) getAnonymResourcePrefix {}
BOOLEAN setAnonymResourcePrefix { STRING }
STRING (ID) createAnonymResourceID {}
Klasse RDFXMLModel

(erbt von Klasse RDFModel)

Rückgabewert Methode Parameter
STRING (Instanzname) init {}
{} reset {}
STRING createContainer { STRING STRING LIST }
STRING createReification { STRING STRING STRING STRING STRING }
BOOLEAN createAboutEach { STRING LIST }
BOOLEAN createAboutEachPrefix { STRING LIST }
BOOLEAN createRepeatedProperty { STRING STRING LIST }
LIST getContainer { STRING }
LIST getContainerMembers { STRING }
LIST getReifications {}
LIST getReificationMembers { STRING }
LIST getAboutEaches {}
LIST getAboutEachPrefixes {}
LIST getRepeatedProperties { STRING }
BOOLEAN reificationIsFact { STRING }
{} setXMLVersion { STRING }
STRING getXMLVersion {}
Klasse AbstractQuery

(TripleQuery und NamespaceQuery)

Rückgabewert Methode Parameter
STRING (Instanzname) init { -selection STRING -table STRING -where STRING -oderby STRING }
STRING startQuery {}
BOOLEAN setTable { STRING }
BOOLEAN isValidTable {}
Klasse AbstractRDFViewer

(RDFTripleViewer und RDFXMLViewer)

Rückgabewert Methode Parameter
STRING (Instanzname) init { -withDescriptionBags BOOLEAN }
STRING viewModel { STRING }
Klasse RDFio
Rückgabewert Methode Parameter
STRING (Instanzname) init { -model STRING }
STRING writeToDisk { STRING STRING STRING }
STRING readFromDisk { STRING STRING STRING }

Literatur

Ein Überblick über das Resource Description Framework und weitere Links zu diesem Thema können beim W3C abgerufen werden. Die Grundlagen des RDF werden durch die RDF Model and Syntax Specification und die RDF Schema Specification des W3C gelegt. Für ein besseres Verständnis des Aufbaus von XML/RDF-Dokumenten kann die entsprechende Spezifikation des W3C zur Extensible Markup Language gelesen werden.

Für die Implementierungen sind ebenfalls einige Dokumentationen von Bedeutung. So existiert zur Extended Object Oriented Tool Command Language (XOTcl) eine Seite mit Dokumentationen die man gelesen haben sollte. Weiterhin stehen zwei Paper zum Download bereit, die sich mit der Umsetzung von Entwurfsmustern mit Hilfe von XOTcl beschäftigen. In dem einen werden sogenannte per object mixins verwendet und in dem anderen werden Filter zu diesem Zweck benutzt.

Für Wafe/Mofe existiert ein Paper , in dem eine Einleitung und eine Übersicht über die Befehle gegeben wird.

  • Derzeit 0 von 5 Sternen.
  • 1
  • 2
  • 3
  • 4
  • 5
Bewertung: 0/5 (Abgegebene Stimmen: 0)

Vielen Dank für die Bewertung!

Sie haben diesen Inhalt bereits bewertet. Sie können jeden Inhalt nur einmal bewerten!

Ihre Bewertung wurde geändert, vielen Dank für die Bewertung!

Ähnliche Inhalte