Bibliographic/Database

From Apache OpenOffice Wiki
< Bibliographic
Revision as of 07:28, 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 OOo documentation for bibliodatafield for a list of the fields supported in that database. This database is a simple single table database. A limitation of this type of database is that it makes it very difficult or impossible to maintain information about the relationships between works and their parts and the contributors to the works. An example is authors of works. In a single table database, like the current bibliographic database, to search for 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 the same format for every work. The benefits of a separate author table where the author's name has to entered only once and then linked to the works of that author is clear. However, 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 is often better to define relationships in the database than have long lists of the fields in a database table to cover every possibility, most of which would not be not used in any one record. This approach of defining the relationships through the database makes the database more flexible and preserves the actual relationships, at the cost of a more complex database and increased coding complexity. A cost we believe worth incurring.

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.

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

Status

The database is currently is currently under-development. The current database definition is the SQL version, which can be obtained using the subversion check-out command you can download the sql definition -

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

An entity-relationship diagram and same documentation is available, however, these may not be fully up-to-date with the definitive sql version. 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 document save-package biblio-data.xml 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