Lehrstuhl für Wirtschaftsinformatik und Softwaretechnik
(Prof. Dr. G. Neumann)
bearbeitet von
Wolfgang Büning
Am Großen Kamp 8
46342 Velen
Matr.-Nr. 206545
Betreuer: Diplom-Wirtschaftsinformatiker Reinhold Klapsing
Inhaltsverzeichnis
5.1 Beispiele für die Erstellung
von XML-Dateien in der Basic Serialization Syntax
5.2 Beispiele für die Erstellung
von XML-Dateien in der Basic Abbreviated Syntax
5.3 Sonstige Beispiele
Einleseroutine für die RDF-Triple Interne Repräsentation der RDF-Triple Transformation der RDF-Triple in XML Speicherroutine für die XML-Dateien
Um die Projektanforderung zu erfüllen, werden folgende Klassen erstellt:
Im folgenden werden die zentralen Funktionen der einzelnen Klassen genauer beschrieben.
Funktionen der Klasse Statement
Funktionen der Klasse Namespaceorg
Die Klassen zur XML-Erstellung CreateXMLBSS und CreateXMLBAS werden aufbauend auf den EBNF-Beschreibungen aus der »RDF Model and Syntax Specification« erstellt. In den verwendeten Funktionen werden die Aufrufe der anderen Funktionen entsprechend der EBNF-Beschreibung realisiert. Diese Vorgehensweise hat den Vorteil, daß man eventuelle Änderungen an der Spezifikation ohne große Probleme in die CreateXML - Klassen implementieren kann.
In den Objekten der Klassen »Statement« und »Namespace« werden Informationen gespeichert. Um mehrere Objekte dieser Klassen verarbeiten zu können, sind die Klassen »Statementorg« und »Namespaceorg« implementiert. Statement und Namespace Klassen sollten über die Funktionen der entsprechenden Verwaltungsklassen angelegt werden und der Zugriff sollte über die Verwaltungsklassen erfolgen.
Um die Umsetzung der in den Statement-Objekten gespeicherten Triple in XML zu erleichtern, hat jedes Statement-Objekt die Variablen SortInfo und XMLUsed. Die Variable SortInfo dient dazu, in den Statements die Reihenfolge, in der die Triple in XML umzuwandeln sind, zu speichern. Die Variable XMLUsed wird benötigt, um in XML umgewandelte Triple zu kennzeichnen.
Die Klasse TripleFileRead liest wie in der Aufgabenstellung gefordert RDF-Triple aus einer Datei ein. Da diese Klasse als einzige Aufgabe das Parsen der Eingabe und das Anlegen der Statements hat, kann sie durch andere Klassen ersetzt werden, z. B. durch eine Klasse, die RDF-Triple aus dem Internet verarbeitet.
XMLFileWrite ist die Klasse, die eine Ausgabedatei öffnet und Daten
hineinschreibt. Die Klasse ist zeilenorientiert angelegt. Wenn eine Zeile
XML-Code generiert ist, wird die Funktion »writeLine {writeString}«
aufgerufen. Bei dieser Klasse ist es möglich, durch geringe Modifikationen
die Daten auch als HTML-Seiten an einen Browser zu liefern.
Zur Ausführung des Programms sind die folgenden Eingaben erforderlich bzw. möglich.
Eine Triple-Zeile der Eingabedatei kann beispielsweise folgende
Gestalt haben:
{"http://purl.org/dc/elements/1.0/Creator",[http://swt.wi-inf.uni-essen.de/~wbuening],"Wolfgang Buening"}
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/"
Wenn die Eingaben erfolgt sind, wird das Programm über die
Kommandozeile mit dem Befehl »rdftoxml« gestartet. Diesem Befehl
müssen folgende Parameter übergeben werden:
Beispiel A:
Triple-Datei:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:DC="http://purl.org/dc/elements/1.0/" {"http://purl.org/dc/elements/1.0/Creator",[http://swt.wi-inf.uni-essen.de/~wbuening],"Wolfgang Buening"} |
<?xml version="1.0"?>
<RDF xmlns:DC="http://purl.org/dc/elements/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://swt.wi-inf.uni-essen.de/~wbuening"> <DC:Creator>Wolfgang Buening</DC:Creator> </rdf:Description> </RDF> |
Triple-Datei:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/" {"http://description.org/schema/Publisher",[http://www.wi-inf.uni-essen.de/~buening],"Wolfgang Buening"} {"http://description.org/schema/Title",[http://www.wi-inf.uni-essen.de/~buening],"Wollis Homepage"} {"http://description.org/schema/Date",[http://www.wi-inf.uni-essen.de/~buening],"1999-06-22T00:00"} |
<RDF xmlns:s="http://description.org/schema/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://www.wi-inf.uni-essen.de/~buening"> <s:Publisher>Wolfgang Buening</s:Publisher> <s:Title>Wollis Homepage</s:Title> <s:Date>1999-06-22T00:00</s:Date> </rdf:Description> </RDF> |
Triple-Datei:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/" {"http://www.w3.org/1999/02/22-rdf-syntax-ns#type",[http://www.wi-inf.uni-essen.de/~buening],[http://description.org/schema/Person]} {"Name",[http://www.wi-inf.uni-essen.de/~buening],"Wolfgang Buening"} {"Email",[http://www.wi-inf.uni-essen.de/~buening],"wolfgang.buening@uni-essen.de"} {"Age",[http://www.wi-inf.uni-essen.de/~buening],"27"} {"http://description.org/schema/Creator",[http://swt.wi-inf.uni-essen.de/~wbuening],[http://www.wi-inf.uni-essen.de/~buening]} |
<?xml version="1.0"?>
<RDF xmlns:s="http://description.org/schema/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://swt.wi-inf.uni-essen.de/~wbuening"> <s:Creator> <rdf:Description about="http://www.wi-inf.uni-essen.de/~buening"> <rdf:type resource="http://description.org/schema/Person"/> <Name>Wolfgang Buening</Name> <Email>wolfgang.buening@uni-essen.de</Email> <Age>27</Age> </rdf:Description> </s:Creator> </rdf:Description> </RDF> |
Beispiel D:
Triple-Datei:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/" {"http://description.org/schema/Publisher",[http://www.wi-inf.uni-essen.de/~buening],"Wolfgang Buening"} {"http://description.org/schema/Title",[http://www.wi-inf.uni-essen.de/~buening],"Wollis Homepage"} {"http://description.org/schema/Date",[http://www.wi-inf.uni-essen.de/~buening],"1999-06-22T00:00"} |
<?xml version="1.0"?>
<RDF xmlns:s="http://description.org/schema/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://www.wi-inf.uni-essen.de/~buening" s:Publisher="Wolfgang Buening" s:Title="Wollis Homepage" s:Date="1999-06-22T00:00" /> </RDF> |
Triple-Datei:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/" {"Name",[http://www.wi-inf.uni-essen.de/~buening],"Wolfgang Buening"} {"Email",[http://www.wi-inf.uni-essen.de/~buening],"wolfgang.buening@uni-essen.de"} {"Age",[http://www.wi-inf.uni-essen.de/~buening],"27"} {"http://description.org/schema/Creator",[http://swt.wi-inf.uni-essen.de/~wbuening],[http://www.wi-inf.uni-essen.de/~buening]} |
<?xml version="1.0"?>
<RDF xmlns:s="http://description.org/schema/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://swt.wi-inf.uni-essen.de/~wbuening"> <s:Creator resource="http://www.wi-inf.uni-essen.de/~buening" Name="Wolfgang Buening" Email="wolfgang.buening@uni-essen.de" Age="27" /> </rdf:Description> </RDF> |
Triple-Datei:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/" {"http://www.w3.org/1999/02/22-rdf-syntax-ns#type",[http://www.wi-inf.uni-essen.de/~buening],[http://description.org/schema/Person]} {"Name",[http://www.wi-inf.uni-essen.de/~buening],"Wolfgang Buening"} {"Email",[http://www.wi-inf.uni-essen.de/~buening],"wolfgang.buening@uni-essen.de"} {"Age",[http://www.wi-inf.uni-essen.de/~buening],"27"} {"http://description.org/schema/Creator",[http://swt.wi-inf.uni-essen.de/~wbuening],[http://www.wi-inf.uni-essen.de/~buening]} |
<?xml version="1.0"?>
<RDF xmlns:s="http://description.org/schema/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://swt.wi-inf.uni-essen.de/~wbuening"> <s:Creator> <s:Person about="http://www.wi-inf.uni-essen.de/~buening"> <Name>Wolfgang Buening</Name> <Email>wolfgang.buening@uni-essen.de</Email> <Age>27</Age> </s:Person> </s:Creator> </rdf:Description> </RDF> |
Beispiel G:
Triple-Datei:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/metadata/dublin_core#" {"http://purl.org/metadata/dublin_core#Title",[http://www.dlib.org/],"D-Lib Program - Research in Digital Libraries"} {"http://purl.org/metadata/dublin_core#Description",[http://www.dlib.org/],"The D-Lib program supports the community of people with research interests in digital libraries and electronic publishing."} {"http://purl.org/metadata/dublin_core#Publisher",[http://www.dlib.org/],"Corporation For National Research Initiatives"} {"http://purl.org/metadata/dublin_core#Date",[http://www.dlib.org/],"1995-01-07"} {"http://www.w3.org/1999/02/22-rdf-syntax-ns#type","genid2",[http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag]} {"http://www.w3.org/1999/02/22-rdf-syntax-ns#_1","genid2","Research; statistical methods"} {"http://www.w3.org/1999/02/22-rdf-syntax-ns#_2","genid2","Education, research, related topics"} {"http://www.w3.org/1999/02/22-rdf-syntax-ns#_3","genid2","Library use Studies"} {"http://purl.org/metadata/dublin_core#Subject",[http://www.dlib.org/],"genid2"} {"http://purl.org/metadata/dublin_core#Type",[http://www.dlib.org/],"World Wide Web Home Page"} {"http://purl.org/metadata/dublin_core#Format",[http://www.dlib.org/],"text/html"} {"http://purl.org/metadata/dublin_core#Language",[http://www.dlib.org/],"en"} |
<?xml version="1.0"?>
<RDF xmlns:dc="http://purl.org/metadata/dublin_core#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://www.dlib.org/"> <dc:Title>D-Lib Program - Research in Digital Libraries</dc:Title> <dc:Type>World Wide Web Home Page</dc:Type> <dc:Format>text/html</dc:Format> <dc:Language>en</dc:Language> <dc:Description>The D-Lib program supports the community of people with research interests in digital libraries and electronic publishing.</dc:Description> <dc:Publisher>Corporation For National Research Initiatives</dc:Publisher> <dc:Date>1995-01-07</dc:Date> <dc:Subject> <rdf:Description ID="genid2"> <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag"/> <rdf:_1>Research; statistical methods</rdf:_1> <rdf:_2>Education, research, related topics</rdf:_2> <rdf:_3>Library use Studies</rdf:_3> </rdf:Description> </dc:Subject> </rdf:Description> </RDF> |
<?xml version="1.0"?>
<RDF xmlns:dc="http://purl.org/metadata/dublin_core#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description about="http://www.dlib.org/" dc:Title="D-Lib Program - Research in Digital Libraries" dc:Type="World Wide Web Home Page" dc:Format="text/html" dc:Language="en" dc:Description="The D-Lib program supports the community of people with research interests in digital libraries and electronic publishing." dc:Publisher="Corporation For National Research Initiatives" dc:Date="1995-01-07" dc:Subject="genid2" /> <rdf:Description ID="genid2"> <rdf:type>http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag</rdf:type> <rdf:_1>Research; statistical methods</rdf:_1> <rdf:_2>Education, research, related topics</rdf:_2> <rdf:_3>Library use Studies</rdf:_3> </rdf:Description> </RDF> |