Bibliographic/Database

From Apache OpenOffice Wiki
< Bibliographic
Revision as of 00:34, 3 April 2006 by Dnw (Talk | contribs)

Jump to: navigation, search

Back to Bibliographic Index

Introduction

Background

The biographic database is used to store a collection of bibliographic records. Many traditional bibliographic databases contained fields to store information about a limited range of printed works, books, articles, manuscripts etc. An example of this type database is the BibTex which is used with the LaTex word-processing application. Many of the current bibliographic database are derived of that early and pioneering application. As new media types were developed new fields were added to the older databases structures, such as URL's for web addresses. Also a miscellaneous reference type was added to support all the other types of media now available, video, graphics etc.

The current OpenOffice bibliographic database is of that type. See bibliodatafield for a list of the fields supported in that database. This database is a simple single table database. The problem with this type of database is that it make it very difficult or impossible to maintain relationships between works and their parts and the contributors to the work. An example is the question of Authors of works. In a single table database, in order to find the works that an Author has been involved with requires the text string searching of the author text fields, and for this to work the user would have had to accurately enter the Author's name in the exactly authorse format of every work. Thus the benefits of a separate author table where the authors name has to entered only once and liked to the works table is clear. As there are often several people and organizations associated with a published work, (authors, editors, publishers, authors of parts of the work, sponsors, series editors etc it often better to define relationships in the database than have long lists of the possible fields in a table most of which are not used. This approach make the database more flexible and preserves the actual relationships, at the cost of a more complex database and increased coding complexity.

er-relationships.gif

The enhanced bibliographic database - OOo-BiblioDB

The proposed new bibliographic database for OpenOffice is more complex because with wish to maintain more information about different types of works and parts of works.

Bibli0DB_small.png A larger entity-relationship diagram


The design we are working towards is is based on two sources. We wanted to utilise the USA Library of Congress "Metadata Object Description Schema" (MODS) which supports modern library cataloging requirements using an XML schema, "it is intended to be able to carry selected data from existing MARC 21 records as well as to enable the creation of original resource description records". However we found it did not adequately define the structure of the reference material that we were dealing with, so we have used some of the concepts from the document 'Functional Requirements for Bibliographic Records' (PDF version) by the International Federation of Library Associations and Institutions. This document defined the parts of creative works and relationships between these and their published manifestations; and relationships that people and organizations have with the various components. The highest level views of this schema is shown in the diagrams below.

frfbs-er1.png frfbs-er2.png



The database is currently is currently under-development. The current definitive version is the SQL version, an entity-realationship diagram and same partial documentation is available, however, these may not be fully up-to-date with the definitive sql version which is available via a subversion repository. Using the subversion check-out command you can download the sql definition -

svn co https://svn.sourceforge.net/svnroot/xbiblio/bib-sql

For an overview of the bibliographic database interaction with the rest of the bibliographic application see the components page.

What needs to be done ?

The main tasks are -

  • Complete the design of the database.
  • Write core code modules to -
    • read records in the bibliographic database and convert them to the xml format used in the document save-package, and append them to the save-package biblio-data.xml file.
    • covert records in the the document save-package format to the database format, and insert them in the database.
    • covert records in bibliographic database format to that used in the bibutils package (to allow database export using biblio-utils)
    • covert records in format to that used in the bibutils package package to the format used in the bibliographic database (to allow database import using the bibutils package )
  • Design the Graphical User Interface (GUI) for maintaining the bibliographic database: adding, modifying, deleting, and searching database records.
  • Design the Graphical User Interface (GUI) for searching and selecting bibliographic records to be inserted for citations in Writer documents.
  • Build prototype GUI panels for maintaining the bibliographic database: adding, modifying, deleting, and searching database records. (These could built using OOo Database forms and OOo Basic, Java or Python.)
  • Build prototype GUI panels for searching and selecting bibliographic records to be inserted for citations in Writer documents. (These could built using OOo Database forms and OOo Basic, Java or Python.)
Personal tools