Home / Business / RDFHandle

1und1

RDFHandle

arrow_up

Project

Within my second diploma thesis in the business informatics II course of studies I implemented a class system. This class system allows to store data of RDF models using an appropriate format and to build a basis for further data processing. At the end of this page one can find documentation to get a deeper understanding of this topic.

The class system has been implemented using the programming language Extended Object Oriented Tool Command Language ( XOTcl ) and it makes use of design patterns.

To read RDF dokuments in the XML/RDF syntax the class system uses the RDF parser xoRDF (Version 0.9beta) that has been implemented at the chair business informatics and software technique at the university Universität GH Essen . Further information about this topic is available on the homepage of Uwe Zdun .

The code of the class system is available on the central download page . Furthermore there is some documentation available on the documentation page .

One of the main features is the implementation of a SQL style query language. It allows to query the triples of an RDF model using a query. The result of this kind of query is a subset of the triples. The syntax of a query looks like those shown in the examples below:

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

In doing so the triples are available as a list consisting of {predicate,[subject],[object]} or {predicate,[subject],"object"}.
Dabei liegen die Triple in Form einer Liste von {predicate,[subject],[object]} oder {predicate,[subject],"object"} vor.

arrow_up

Documentation

The material for the Resource Description Framework (RDF) class system RDFHandle that is referenced below are compressed using the applications Tar and Gzip . Some of the documents are postscript files and can be viewed using the Ghostview application.

Source code

The source code of the class system is commented in the English language which means that there is no source code documentation (in the German language) available so far. To visualize the relation between the classes a class diagram (from 16.01.2000) is available for download and can also be viewed online .

Query language

There exists a grammar for the SQL style query language (similar to the Extended Backus Naur Form, EBNF) of the class system that allows to query the triples of a RDF model.

Components

Furthermore there exists a components diagram (16.01.2000) showing the relations between the different files of the class system. This diagram can also be viewed online . Below the interfaces of some classes that are important when using the class system are summarized. An overview over which files contain which classes can be found in the components diagram . The interfaces are aggregated in one class as soon as the RDF API has been passed. Further information is available on http://www-db.stanford.edu/~melnik/rdf/api.html .

Class RDFModel

Return value

Function

Parameter

STRING (Instance name) 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 {}
Class RDFXMLModel

(inherits from class RDFModel)

Return value

Function

Parameter

STRING (Instance name) 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 {}
Class AbstractQuery

(TripleQuery and NamespaceQuery)

Return value

Function

Parameter

STRING (Instance name) init { -selection STRING -table STRING -where STRING -oderby STRING }
STRING startQuery {}
BOOLEAN setTable { STRING }
BOOLEAN isValidTable {}
Class AbstractRDFViewer

(RDFTripleViewer and RDFXMLViewer)

Return value

Function

Parameter

STRING (Instance name) init { -withDescriptionBags BOOLEAN }
STRING viewModel { STRING }
Class RDFio

Return value

Function

Parameter

STRING (Instance name) init { -model STRING }
STRING writeToDisk { STRING STRING STRING }
STRING readFromDisk { STRING STRING STRING }
arrow_up

Literature

An overview over the Resource Description Framework and further links to this topic are available at the W3C . The RDF is defined in the RDF Model and Syntax Specification and in the RDF Schema Specification of the W3C. To get a better understanding of the assembly of XML/RDF documents one can read the Extensible Markup Language specification of the W3C.

There is also some documentation that is important for the implementation. There exists a web page with documentation about the Extended Object Oriented Tool Command Language (XOTcl) one should have read. Furthermore the are two papers available for download dealing with the use of design patterns together with XOTcl. The first describes the so called per object mixins while the second describes filters that are used to achieve the same.

There is a paper about Wafe/Mofe, that contains an introduction and an overview over the available commands