Lade Inhalt...

Aufbau einer Webdatenbank für Bibliographien auf der Basis von PHP, MySQL und XML

Diplomarbeit 2006 75 Seiten

Informatik - Internet, neue Technologien

Leseprobe

Inhaltsverzeichnis

Kurzfassung

Abstract

Abbildungsverzeichnis

Tabellenverzeichnis

Abkürzungsverzeichnis

1 Überblick

2 Aufgabenstellung und Zielsetzung

3 Bibliographieverwaltung: Eine Einführung
3.1 Bibtex und BibteXML
3.1.1 Bibtex
3.1.2 XML und BibteXML
3.2 Stand der Technik
3.2.1 LiteRat
3.2.2 Bibster
3.2.3 Unterschiede zur in dieser Arbeit konzipierten Applikation

4 Konzeption der Datenbank
4.1 Datenanalyse
4.2 Use-Case Diagramm
4.3 Entitäten-Beziehungsmodell
4.4 Export in das Bibtex- und BibteXML-Format
4.4.1 Vorhandene Möglichkeiten der Ausgabe in XML
4.4.2 Planung der Export-Funktionen

5 Realisierung
5.1 Aufbau der Tabellen
5.2 Die Web-Applikation in PHP
5.2.1 Struktur der Anwendung
5.2.2 Erläuterung des PHP-Codes
5.2.3 Realisierung der Export-Funktionen
5.2.4 Weitere Dateien

6 Ergebnis
6.1 Hauptfenster
6.2 Bibliographie anlegen
6.3 Literatur eingeben und zuweisen
6.4 Bibliographie anzeigen
6.5 Bearbeiten, Löschen, Eintrag neu zuweisen
6.6 Suche
6.7 Literaturlisten
6.8 Export nach BibteXML und Bibtex

7 Zusammenfassung und Ausblick

Anhang: MySQL Tabellenstrukturen

Glossar

Literatur- und Quellenverzeichnis

Erklärung

Kurzfassung

Gegenstand der hier vorgestellten Arbeit ist eine Webdatenbank für Bibliographien auf der Basis von MySQL, PHP (Hypertext Preprocessor) und XML (eXtensible Markup Language). Zunächst werden Aufgabenstellung und Ziele der Applikation definiert. Es folgt eine kurze Einführung in den aktuellen Stand der Bibliographieverwaltung, in deren Rahmen die beiden Bibliographieformate Bibtex[1] und BibteXML[2] vorgestellt werden. Die Datenbank wird mit Hilfe eines Entitäten-Beziehungsmodells geplant, aus dem die nötigen Tabellen abgeleitet und implementiert werden. Der Zugriff auf die Datenbank erfolgt webbasiert mittels PHP-Skripten. Für die Eingabe und Verwaltung der Bibliographiedaten dienen Formularschnittstellen, welche die Anfragen an die Datenbank ausführen. Weiterhin steht eine einfache Suchfunktion zur Verfügung. Literaturlisten können nach Typen in HTML (Hypertext Markup Language) angezeigt werden, ebenso wie die erstellten Bibliographien. Eine Funktion ermöglicht den Export der Bibliographien in die Formate Bibtex und BibteXML. Ein Überblick über bereits vorhandene Exportfunktionen von MySQL nach XML wird gegeben.

Schlagwörter: Bibliographie, Datenbank, PHP, Bibtex, BibteXML

Abstract

The subject of this thesis is a web-database for bibliographies based on MySQL, PHP and XML. First task formulation and the application´s objectives are defined, followed by a short introduction on the state of the art of bibliographic administration. Within this framework the two bibliographic formats Bibtex and BibteXML are presented. The database is planned by means of an entity-relationship model, from which the necessary tables are derived and implemented. The database is accessed web-based by means of PHP-scripts. For entering and administrating bibliographic data, serve web-form interfaces, which perform the queries to the database. Furthermore a simple search is provided. Reference lists can be displayed by types in HTML likewise the authored bibliographies. A function allows exporting the bibliographies to Bibtex and BibteXML. A survey about already existing export functions from MySQL to XML is provided.

Keywords: bibliographie, database, PHP, Bibtex, BibteXML

Abbildungsverzeichnis

Abbildung 1: Funktionsweise von Bibtex (o. V., 2006c)

Abbildung 2: LiteRat Eingabemaske (Steuber, 2006b)

Abbildung 3: Hauptfenster von Bibster (Haase, 2004)

Abbildung 4: Use-Case Diagramm

Abbildung 5: Entitäten-Beziehungsmodell (1)

Abbildung 6: Entitäten-Beziehungsmodell (2): Verknüpfung der Literaturentitäten

Abbildung 7: Verknüpfung der Tabellen

Abbildung 8: Verknüpfung innerhalb der Tabelle tbl_lit

Abbildung 9: Struktur der Web-Applikation

Abbildung 10: Verzeichnisstruktur auf dem Webserver

Abbildung 11: Das Hauptfenster

Abbildung 12: Neue Bibliographie erstellen

Abbildung 13: Eingabemaske article

Abbildung 14: Eingabemaske inbook

Abbildung 15: Eingabebestätigung

Abbildung 16: Eintrag Bibliographien zuweisen

Abbildung 17: Bestätigung

Abbildung 18: Auswahlliste „Bibliographien“

Abbildung 19: Bibliographie anzeigen (oberer Abschnitt)

Abbildung 20: Bibliographie anzeigen (unterer Abschnitt)

Abbildung 21: Eintrag auswählen

Abbildung 22: Änderungsformular

Abbildung 23: Aktion „Eintrag löschen“ bestätigen

Abbildung 24: Eintrag neu zuweisen

Abbildung 25: Suchformular

Abbildung 26: Suchergebnis (Autor)

Abbildung 27: Veröffentlichungen anzeigen

Abbildung 28: Suchergebnis (Literatur)

Abbildung 29: Literaturliste auswählen

Abbildung 30: Literaturliste books anzeigen

Abbildung 31: Exportbuttons

Abbildung 32: Kontextmenü

Abbildung 33: Dialog „Sichern unter“

Tabellenverzeichnis

Tabelle 1: Die Datenbanktabelle tbl_author

Tabelle 2: Die Datenbanktabelle tbl_lit

Tabelle 3: Die Datenbanktabelle tbl_bib

Tabelle 4: Die Datenbanktabelle tbl_as

Tabelle 5: Die Datenbanktabelle tbl_inc

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

1 Überblick

Ziel dieser Arbeit ist die Entwicklung eines Prototyps für ein Bibliographieverwaltungssystem, welches auf einer Webdatenbank (MySQL) aufsetzt und mittels einer Webschnittstelle (realisiert mit PHP) zugänglich ist. Dem Aufbau des Systems liegt das Bibliographieformat Bibtex zugrunde. Im Folgenden wird ein kurzer Überblick über den Aufbau und die Struktur der Arbeit gegeben:

Im zweiten Kapitel werden die Aufgabe und das Ziel der Datenbankanwendung definiert. Hier wird festgelegt, welche Ergebnisse am Ende der Arbeit stehen sollen. Kapitel 3 bietet eine Einführung in Bibtex und BibteXML, sowie in den Stand der Technik der Bibliographieverwaltung. Exemplarisch werden zwei Systeme (LiteRat und Bibster) herausgegriffen und kurz beschrieben. Hier werden die Unterschiede zu den, in Kapitel 2 festgelegten, Funktionalitäten der hier vorgestellten Applikation deutlich. Die nächsten drei Kapitel beschäftigen sich mit der eigentlichen Anwendung: Zuerst wird die Konzeption der Datenbank mit Datenanalyse, Use-Case Diagramm und Entitäten-Beziehungsmodell dargelegt (Kapitel 4). Darauf folgt die Realisierungsphase mit dem Aufbau der Tabellen und der Struktur der PHP-Anwendung, das heißt mit den Funktionen der Dateien und Code-Beispielen (Kapitel 5). Schließlich wird das Ergebnis dargelegt (Kapitel 6). Hierzu wird der Ablauf einer kompletten Benutzungssession (inklusive Screenshots) erläutert. Alle drei Kapitel enthalten Unterpunkte zum Thema Exportfunktionen. In Kapitel 4 die Darstellung und Bewertung zweier vorhandener Exportmöglichkeiten, sowie die grobe Planung für die im Rahmen dieser Arbeit konzipierten und entwickelten Anwendung. In Kapitel 5 die Realisierung in PHP und in Kapitel 6 die Verwendung der Exportfunktionen. Das letzte Kapitel fasst alle Ergebnisse zusammen und gibt einen Ausblick auf mögliche, weitere Funktionen, die auf der Basis des Erreichten realisierbar sind, und schon vorhandene Lösungsansätze.

2 Aufgabenstellung und Zielsetzung

Die Aufgabe besteht in der Entwicklung einer Webdatenbank für Bibliographien auf der Basis von MySQL, PHP und XML. Eine Bibliographie bezeichnet ein Literaturverzeichnis von Büchern, Zeitschriften, etc. mit Angaben zu Verfassern, Titel, Erscheinungsort, Erscheinungsjahr, u.a. MySQL ist das verwendete DBMS (Datenbankmanagementsystem); auf die Datenbank wird mit PHP zugegriffen. Der Konzeption der Datenbank liegt die Struktur des Bibliographieformats Bibtex zugrunde, welches verschiedene Literaturtypen festlegt (s. Kapitel 3.1.1). Dies soll die Bibtex-basierte Eingabe von Literatur ermöglichen.

Sinn und Zweck der Anwendung ist es, Verfassern wissenschaftlicher Arbeiten, beispielsweise Studierenden oder Professoren an Hochschulen, eine einfache Verwaltung ihrer Quellen zu ermöglichen. Die Anwendung soll intuitiv zu bedienen sein und keine überflüssigen Funktionen und Navigationselemente beinhalten.

Die Web-Applikation soll Eingabemasken für die unterschiedlichen Bibtex-Typen (article, book, etc.) bieten, sowie deren Bearbeitung und Löschung ermöglichen. Der Benutzer soll Bibliographien anlegen und diesen dann die Literatureinträge zuweisen können. Die Bibliographien sollen in HTML angezeigt und wahlweise in Bibtex oder dessen XML-Version BibteXML (s. Kapitel 3.1) exportiert werden können. Der Export in BibteXML ist ein innovatives Element der angestrebten Lösung. Er steht in keinem der beiden, in Kapitel 3 vorgestellten, Bibliographiesysteme LiteRat und Bibster, zur Verfügung. Weiterhin soll eine einfache Suchfunktion implementiert werden, welche die Suche anhand des Autors oder des Titels ermöglicht.

Der Vorteil eines XML-basierten Formats besteht darin, dass nur die logische Struktur der Literatureinträge wiedergegeben wird. Verschiedene Bibliographieformate können später mit Hilfe von Stylesheets erzeugt werden (Die Umwandlung von BibteXML zu HTML mittels XSLT (eXtensible Stylesheets Language Transformation) wird in der Diplomarbeit von Nora Kersten (2002) ausführlich behandelt). Anders als bei HTML dienen Tags in XML nur der Abgrenzung von Daten. Die Interpretation wird der Anwendung überlassen, die sie verarbeitet. XML ist erweiterbar, unabhängig von einer Plattform und unterstützt Unicode (Vgl. Bos, 1999).

Das Ziel besteht in der Entwicklung und Implementierung eines funktionsfähigen Prototyps, welcher bereits verwendet werden kann, dessen Funktionen jedoch noch weiter ausgebaut werden können. Hierzu gehören beispielsweise eine Importfunktion, sowie die Ergänzung um die so genannten optional fields (Erläuterung in Kapitel 3.1.1).

Die Software trägt den Namen „biblioTeX.“

3 Bibliographieverwaltung: Eine Einführung

Das folgende Kapitel soll einen Überblick über Werkzeuge der Bibliographieverwaltung geben und den Stand der Technik darstellen. Zu diesem Zweck wird kurz in das LaTeX-basierte Bibtex und in BibteXML eingeführt. Darauf werden zwei moderne Bibliographieverwaltungssysteme vorgestellt: LiteRat und Bibster. Das Kapitel schließt mit einer kurzen Darstellung der Alleinstellungsmerkmale der im Rahmen dieser Arbeit konzipierten und entwickelten Applikation.

3.1 Bibtex und BibteXML

3.1.1 Bibtex

Bibtex ist ein Begleitprogramm für LaTeX und TeX. TeX wurde von Donald E. Knuth entwickelt. Die TeX Users Group definiert TeX wie folgt (o. V., 2006a):

„TeX is a typesetting language. Instead of visually formatting your text, you type your manuscript text combined with commands in a plain text file. You then run TeX to produce the final layout. Thus, in contrast to standard word processors, the source (TeX commands) is a separate file that does not pretend to be a representation of the final typeset document, and thus can be edited by any text editor.“

LaTeX ist ein Textsatzsystem, welches von Leslie Lamport entwickelt wurde und auf TeX basiert. Die TeX Users Group zu LaTeX (o. V., 2006b):

„LaTeX allows markup to describe the structure of a document, so that the user need not think about presentation. By using document classes and add-on packages, the same document can be produced in a variety of different layouts.“

Bibtex dient als Hilfsmittel zur Erstellung von einheitlichen Literaturverzeichnissen. Es wurde von Oren Patashnik (1988) entwickelt.

Funktionsweise: Die in einem LaTeX-Dokument (beispielsweise mit dem Namen foo.tex) mit /cite gekennzeichneten Zitate werden in eine Hilfsdatei (foo.aux) geschrieben, welche von Bibtex eingelesen wird. Die referenzierten Literaturverweise werden aus einer Referenzdatenbank der foo.bib -Datei eingelesen. Die Ausgabe erfolgt als foo.bbl -Datei, in der die formatierten Literaturverweise enthalten sind. Eine ausführliche Erläuterung findet sich in der Diplomarbeit von Heike Müller (2001).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Funktionsweise von Bibtex
(o. V., 2006c)

Innerhalb von Bibtex gibt es 13 Literaturtypen. Diese lauten:

- article (Artikel in einer Zeitschrift oder einem Magazin)
- book (Buch mit einem bestimmten Herausgeber)
- booklet (Gedrucktes und gebundenes Werk ohne Verlag)
- manual (Technische Dokumentation)
- techreport (Report, von einer Institution oder Hochschule herausgegeben)
- masterthesis (Masterarbeit)
- phdthesis (Ph.D.-Arbeit)
- inbook (Kapitel oder Seitenbereich eines Buches)
- incollection (Teil eines Buches mit einem eigenen Titel)
- proceedings (Protokoll einer Konferenz)
- inproceedings (Artikel in einem Konferenzprotokoll)
- conference (Artikel in einem Konferenzprotokoll)
- unpublished (Ein Dokument mit Autor und Titel, nicht veröffentlicht)
- misc (Sonstiges)

Jeder dieser Typen besitzt eine Definition, sowie Felder, wie zum Beispiel den Autoren, den Titel, den Verlag, etc. Für jeden Literaturtyp gibt es notwendige Felder (required fields) und optionale Felder (optional fields). Als Beispiel sei hier der Bibtex-Typ article genannt (Patashnik, 1988):

article An article from a journal or magazine. Required fields: author, title, journal, year. Optional fields: volume, number, pages, month, note.“

Jeder Eintrag beginnt mit einem @ und dem gewählten Bibtex-Typ. Es folgt der eigentliche Eintrag in geschweiften Klammern, beginnend mit einer eindeutigen ID (Identifikationsnummer), meistens dem Nachnamen des Autors und dem Erscheinungsjahr. Darauf folgen alle required fields und die optional fields. Die Inhalte der Felder stehen wiederum einzeln in geschweiften Klammern.

Hier ein Beispiel für einen Bibtex-Eintrag vom Typ article (Vgl. o. V., 2005a):

Abbildung in dieser Leseprobe nicht enthalten

3.1.2 XML und BibteXML

XML ist eine Meta-Auszeichnungssprache und eine Untermenge von SGML (Standard Generalized Markup Language). SGML ist ein ISO (International Standard Organisation)-Standard mit dessen Hilfe sich verschiedene Auszeichnungssprachen für Dokumente definieren lassen. Das W3C (World Wide Web Consortium) fasst XML wie folgt zusammen (Bray et al., 2000):

„Die Extensible Markup Language (XML) ist eine Teilmenge von SGML, die vollständig in diesem Dokument beschrieben ist. Das Ziel ist es, zu ermöglichen, (...) SGML in der Weise über das Web auszuliefern, zu empfangen und zu verarbeiten, wie es jetzt mit HTML möglich ist. XML wurde entworfen, um eine einfache Implementierung und Zusammenarbeit sowohl mit SGML als auch mit HTML zu gewährleisten.“

Im Unterschied zu HTML lassen sich eigene Elemente definieren. Die Struktur eines XML-Dokuments wird in der so genannten Document Type Definition (DTD) festgelegt, in welcher alle Elemente und Attribute, sowie Entitäten definiert werden. Diese Regeln werden unabhängig von den eigentlichen Daten definiert. Die DTD bildet eine Grammatik für eine Klasse von Dokumenten (Vgl. Bray et al., 2000).

Eine Definition zu HTML findet sich im Glossar.

BibteXML wurde an der Eidgenössischen Technischen Hochschule (ETH) Zürich entwickelt (Lurati et al., 2000/2001). Das Format verbindet die Eigenschaften von XML (Anpassungsmöglichkeiten, einfache Handhabung und Strukturierung) mit den Vorteilen von Bibtex. Eine Bibtex-Bibliographie lässt sich leicht mittel eines eigens implementierten Parsers in eine BibteXML-Datei umwandeln und dann mit Funktionen wie zum Beispiel XSLT weiterverarbeiten. XSLT ist eine Ableitung von XSL (eXtensible Stylesheet Language). Es ermöglicht die Konvertierung von XML Daten in andere Textformate. XSLT definiert, wie die Konvertierung ablaufen soll (Vgl. Schellong, 2003).

Die Struktur der BibteXML-Datei wird durch zwei XML-Schemata, eines für die required fields und eines für die optional fields, festgelegt. XML-Schema ist eine XML-Sprache zur Definition von XML-Vokabularen. Das W3C hierzu (Sperberg et al., 2000):

„XML Schemas express shared vocabularies and allow machines to carry out rules made by people. They provide a means for defining the structure, content and semantics of XML documents in more detail.“

Als Alternative steht eine DTD zur Verfügung. Die Rückwandlung einer BibteXML-Datei in eine Bibtex-Datei ist durch ein XSLT-Stylesheet möglich.

Da die an der ETH Zürich entwickelte BibteXML-Version nicht mehr weiter entwickelt wird, wird im Weiteren die Version von Sourceforge (Gundersen, 2005) verwendet:

Jedes BibteXML-Dokument beginnt mit der XML-Deklaration, es folgt der Verweis auf den Dokumenttyp (die DTD). Alle Einträge werden mit dem <Bibtex:file>-Element, jeder einzelne Bibtex-Eintrag mit dem <Bibtex:entry>-Element umschlossen, welches das Attribut id enthält und so jedem Eintrag eine eindeutige ID zuweist. Der jeweilige Bibtex-Typ wird ebenfalls durch ein Element (zum Beispiel <Bibtex:article>) ausgedrückt, ebenso die Bibtex-Felder.

Hier der in BibteXML umgewandelte, obige Bibtex-Eintrag (Vgl. o. V., 2005b):

Abbildung in dieser Leseprobe nicht enthalten

3.2 Stand der Technik

3.2.1 LiteRat

LiteRat ist ein Literaturverwaltungsprogramm, welches kostenlos erhältlich ist. Entwickelt wurde die Software an der Heinrich-Heine-Universität in Düsseldorf. Sie wird vor allem in privaten und halböffentlichen Bibliotheken eingesetzt. Zum Funktionsumfang gehören:

- Titelverwaltung
- Schlagwortverwaltung
- Benutzerverwaltung
- Fundortverwaltung
- Zitatekartei

Zu jedem Titel lassen sich beliebig viele Zitate eintragen, welche angeordnet und in den Text eingefügt werden können. Kurzfassungen und Kommentare lassen sich eingeben, Titel können mit Rezensionen verknüpft werden.

Folgende Import- und Exportfunktionen sind vorhanden (Steuber, 2006a):

- „Datensätze aus der »FIS Bildung Literaturdatenbank« importieren – mit allen Datenbankfeldern
- Datensätze in andere LiteRat-Datenbanken übertragen
- Literaturverzeichnisse in Textverarbeitungsprogramme exportieren
- Literaturlisten und Arbeitsblätter drucken
- Liste der Schlagwörter und Zeitschriften drucken“

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2: LiteRat Eingabemaske
(Steuber, 2006b)

3.2.2 Bibster

Bibster (Vgl. Haase et al., 2004) ist ein semantisches Peer-to-Peer (P2P) System für Bibliographien. Bibster ist Open Source und setzt auf der JXTA-Plattform auf. JXTA leitet sich vom englischen „juxtapose“ ab, was soviel wie „Nebeneinanderstellung“ bedeutet. JXTA ist wie folgt definiert (Horn, 2006):

„Distributed Application Protocol (http://www.jxta.org). Open-Source-Protokoll von Sun für Services im Internet z.B. für Suns SunONE. JXTA funktioniert per Peer-to-Peer (P2P) und benötigt deshalb keinen zentralen Server. Der Datenaustausch erfolgt per XML.“

[...]


[1] Die offizielle Schreibweise lautet „BibTeX“

[2] Die offizielle Schreibweise lautet „BibTeXML“

Details

Seiten
75
Jahr
2006
ISBN (eBook)
9783638552189
Dateigröße
1.5 MB
Sprache
Deutsch
Katalognummer
v61859
Institution / Hochschule
Hochschule der Medien Stuttgart
Note
1,3
Schlagworte
Aufbau Webdatenbank Bibliographien Basis MySQL

Autor

Teilen

Zurück

Titel: Aufbau einer Webdatenbank für Bibliographien auf der Basis von PHP, MySQL und XML