

<!--#include virtual="/doctype.html" -->
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <link href="/css/ooo.css" rel="stylesheet" type="text/css">
    
  <title>User requirements and current deficiencies</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
  </head>
  <body lang="en-GB">
    <!--#include virtual="/brand.html" -->
    <div id="topbara">
      <!--#include virtual="/topnav.html" -->
      <div id="breadcrumbsa"><a href="/">home</a>&nbsp;&raquo;&nbsp;<a href="/bibliographic/">bibliographic</a></div>
    </div>
    <div id="clear"></div>
      
      
    <div id="content">
      
      
<h2 align="center">User requirements and current deficiencies </h2>

<p>Last modified 2006 March 23</p>

<h3 align="left">General requirements</h3>

<p align="left">OpenOffice needs -</p>
<ol>
  <li>Enhancements to the bibliographic database and internal data structure;
    fields need to be able to handle larger texts eg multiple authors; the
    data structure need to be compatible to new standards; it needs to
    support more complex data structures such as a author table liked to
    bibliographic records.</li>
  <li>Provision for document style support, which includes page formatting
    and citation method and bibliographic formats. (eg MLA specifies page
    formatting and citation types for technical papers and student
  essays.)</li>
  <li>Build a method for building document style descriptions and importing
    and exporting these.</li>
  <li>Provide import and export facilities for bibliographic data in common
    formats.</li>
  <li>Support for the full range of common citation styles. In-text and
    footnote / endnote methods and Footnote symbols.</li>
  <li>A much better bibliographic data entry, edit, and browsing facilities.
    Similar to high-end commercial applications such as Endnote.</li>
  <li>Ability store and directly access bibliographic data on a database.
    Ability to interact with other bibliographic databases.</li>
  <li>Ability to directly query reference sources via the internet and add
    responses to bibliographic records.</li>
</ol>

<h3 align="left">Deficiencies needing correction</h3>

<p align="left">1. The Bibliographic referencing needs to support the
footnote citation style (commonly used in the Humanities, and particularly in
History) such as defined in the Chicago Manual of Style. Eg<br>
------------</p>

<blockquote>
  <p>34. T.M. Charles-Edwards<i>,</i>"Honour and Status in Some Irish and
  Welsh Prose Tales.", <i>Eriu</i>, xxxvi, 1978.</p>
</blockquote>

<p>Currently citation key is currently defined as fixed character string
called the ‘short name’ eg [DWILSON:2000] which the user enters when the
bibliographic reference is entered. The field selection and formatting
facility available for the bibliographic table (and other index and tables)
needs to be able to format the footnote citation string. <br>
<br>
2a. There needs to provision for defining citations and references with
different treatment for first and subsequent uses of the citation. There is a
tedious and fault prone aspects of the footnote / endnote citation method -
the maintenance the Initial and Subsequent citations in the correct order as
one edits the text. It is not difficult when editing to move a piece of text
and have as result the Initial Citation reference coming after the Subsequent
reference. <br>
<br>
2b.Then there is the issue of support for treating repeating footnote
references such as the use of - 24. ibid. <br>
<br>
3a. Endnote citations are only partially supported. Citations can be marked
by numbers and this enables the use of the endnote method of citation. As the
Bibliographic table can function as the endnote citations placed at the end
of the chapter of the document. However the Chicago Manual of Style specifies
different formats for footnote / endnote citations and the bibliographic
table (citation use Initials &amp; Surname, Bibliography Table uses Surname
&amp; Initials). Currently only one format can be defined.</p>

<p>3b. There needs to be an option to place the endnotes an a user selectable
location. Currently there are only two options availalbe at the end of the
document or at the end of each section. The reason this needs to be make more
flexable is that style manuals specify different locations. For example the
formatting guidelines for APA and Chicago style submissions specify the
following order for the sections in a document:</p>
<dl>
  <dt>APA Style</dt>
    <dd>title page</dd>
    <dd>abstract</dd>
    <dd>text</dd>
    <dd>references</dd>
    <dd>appendixes</dd>
    <dd>author note</dd>
    <dd><strong>footnotes/endnotes</strong></dd>
    <dd>tables</dd>
    <dd>figure captions</dd>
    <dd>figures</dd>
</dl>
<dl>
  <dt>Chicago Style (back matter)</dt>
    <dd>Appendix</dd>
    <dd><strong>Endnotes</strong></dd>
    <dd>Glossary</dd>
    <dd>Bibliography</dd>
    <dd>Index</dd>
    <dd>Colophon</dd>
</dl>

<p>See issue number <a
href="http://qa.openoffice.org/issues/show_bug.cgi?id=37679">37679</a> for
details.</p>

<p>4a. Chicago Manual of Style requires repeated author names in the
Bibliographic Tables to be indicated by a three-em dash eg.</p>

<blockquote>
  <p>Dickens, Charles. <i>A Tale of Two Cities</i> (London:Penguin Books,
  2000)<br>
  <font face="courier">———</font> <i>Nicholas Nickelby,</i> (London:
  Penguin Books, 1956)<br>
  <font face="courier">———</font> <i>Oliver Twist</i>, (New York,
  Random House,1965)</p>
</blockquote>

<p>The bibliographic table generator should do this. <br>
<br>
4b. Associated with bibliographic table generation is special sorting rules.
Provision needs to be made for these. (as so well discussed in D. E. Knuth.
<i>Sorting and Searching</i>. Example: how to sort ‘Mujahid Usamah Bin
Ladin’ ; ‘ bin ‘ is always ignored in sorting.) </p>

<p>Another sorting issue - When used to create a list of references for an
APA style paper, the references need to be sorted by (Author, Date) sequence,
which is straightforward enough, but references without an identifiable
author (such as a web page) need to be listed by the title of the article and
alphabatized in the list accordingly. <br>
<br>
5. There is a need to support more that one document style. The current
facilities support only one document style. The table definitions for
bibliographic table can be manually modified to support a particular citation
style. But the modified style can not be save, or selected. (Saving the
document table formats as templates is possible, but this is not the most
convenient way of dealing with citation styles.) <br>
<br>
6. There should be provision for Footnote symbols. The Chicago Manual of
Style stipulates that when Endnotes and Footnotes are both used, the Endnotes
are consecutively numbered (1,2,3 ...) and the footnotes referenced by
symbols. The series they suggest are -</p>

<table width="100%" border="0" cellpadding="2" cellspacing="0">
  <col width="256*"><tbody>
    <tr>
      <td width="100%"><img src="sym1.gif" name="Graphic1"
        alt="a list of symbols like # * ect." align="left" width="188"
        height="47" border="0"></td>
    </tr>
    <tr>
      <td width="100%"><p>As more symbols are needed they are doubled and
        trebled -</p>
      </td>
    </tr>
    <tr>
      <td width="100%"><img src="sym2.gif" name="Graphic2"
        alt="a list of symbols like ## ** ### *** ect." align="left"
        width="570" height="50" border="0"><br clear="left">
      </td>
    </tr>
  </tbody>
</table>

<p><br>
6a. At present there are two loosely coupled bibliographic facilities. One is
the old StarOffice 5.2 Bibliographic database (dbase format) It has a simple
reference insertion process. When an database bibliographic entry is dragged
onto a document, a dialog box opens which allows the fields required for the
entry to be selected. This process can be configured for only one citation
format in one citation style - eg book reference for MLA - and it does not
support character formatting of fields, such as italic or underlining. <br>
<br>
6b. The other facility in new in OpenOffice. It stores bibliographic data
within the document. The data is entered through 'Insert &gt;Indexes and
Tables&gt; Bibliographic Entry' function, and bibliographic tables can be
generated from it. There is no capacity for this in-document bibliographic
data to be imported or exported (other than hacking them out of the save
file). <br>
<br>
6c. There is no provision to enable the transfer of data between the internal
document storage and the dbase Bibliographic database.</p>

<p>6d. Currently no link is maintained between the database and the inserted
citation. If the database reference is changed, currently the citations
refering to that reference have to be manually re-inserted or manually
corrected. A link to the bibliographic citation source (such as the database)
must be made, and an 'citation update for source' command created. See issue
<a
href="http://www.openoffice.org/issues/show_bug.cgi?id=44189">44189.</a></p>

<p><br>
7. The only import / export facilities available for bibliographic data is
via the dbase Bibliographic database by copying the table and pasting in into
another one and saving it as dbase, CSV or text. The same method can be used
to import. This is hardly convenient. Nor is there any provision to import or
export bibliographic data using any of the common formats – Endnotes,
bibtex, Ovid, Medline, Refer, isifile, etc. <br>
<br>
8. The data model used for the bibliographic database is based upon BibTeX.
This has several limitations, it only supports a few document types and does
not properly support new media types. A MODS compatible data model is
preferable.</p>

<p>"<a href="http://www.loc.gov/standards/mods/">MODS - Metadata Object
Description Schema.</a> The Library of Congress' Network Development and MARC
Standards Office, with interested experts, has developed a schema for a
bibliographic element set that may be used for a variety of purposes, and
particularly for library applications. As an XML schema, the "Metadata Object
Description Schema" (MODS) 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. It includes a subset of MARC fields and uses
language-based tags rather than numeric ones, in some cases regrouping
elements from the MARC 21 bibliographic format. MODS is expressed using the
<a href="http://www.w3.org/XML/Schema">XML schema language</a>."</p>

<p>9. The dbase bibliographic database has field size restrictions which are
too small for most situations.<br>
<br>
10. There should be option to select a document style that applies to the
whole document. Some styles such as MLA’s Research Paper defines line
spacing, margins and headings. <br>
<br>
11. If a user is expected to conform to a document style, there is no support
to assist a user to maintain this style. It would be useful to have some
function that could save the user from accidently modifing a setting that
violates the style.</p>

<p>We could achieve this adding an option that would allow a user to switch
on a 'Strictly Enforce Style (Y/N)' flag. The idea is that it would prevent
the user from modifying the document style aspects defined by the selected
Document Style. This could also make the OOo word processor easier to use as
many of the functions would be grayed-out or not shown. The user would not be
so bewildered with choice. The user could at any time turn off 'Strictly
Enforce Style' and have access to all settings.</p>

<p>I envisage this function with working with a 'Select Document Style'
option which would select the bibliographic format style, but could include
all the elments that make up a document style guide. Margins, text size
spacing, order of document components etc.</p>

<p>12. There is no support for types of citations with a style, of the type
-</p>

<p>If I quote a document(book/journal/article etc.) without a page it looks
like</p>

<p>"This method is very reliable (AUTHOR YEAR)"<br>
f.e. "This method is very reliable (BASLER 2003)</p>

<p>or</p>

<p>"But AUTHOR (YEAR) showed that..."<br>
f.e. "But WILSON(2002) showed that this method is not very reliable."<br>
If a page or some pages are quoted (direct or indirect) it must look like<br>
"'This method is very reliable' (AUTHOR YEAR:12)"<br>
f.e. "'This method is very reliable' (BASLER 2003:12)"</p>

<p>or</p>

<p>"'This method is very reliable' (BASLER 2003:12 ff.)"</p>

<p>or</p>

<p>"AUTHOR (YEAR:12) stated 'This method is very reliable.'"<br>
f.e. "BASLER (2003:12) stated 'This method is very reliable.'"</p>

<p>or</p>

<p>"BASLER (2003:12 f.) concludes that this method is very reliable.'"</p>

<p>Some comments on that:<br>
1. The AUTHOR(s) must be in small capitals (as every person everywhere in the
text - a requirement in some European countries).<br>
2. One author: "AUTHOR 2003" Two authors: "AUTHOR1 &amp; AUTHOR2 2003" Three
or more: "AUTHOR1 ET AL. 2003"</p>

<p>If there are more than one publication of an author in the same year it
must look like:<br>
"BASLER 2003a" and "BASLER 2003b" a.s.o.<br>
In the bibliography the above example would look like<br>
BASLER, M. (YEAR): Book title. City1 et al.</p>

<p>or</p>

<p>BASLER, M. &amp; D. WILSON (YEAR): Book title. City1 et al. or BASLER, M.
D., WILSON, A. NONAME &amp; B. NONAME (YEAR): Book title. City1 et al.</p>

<p>Note that in the bibliography index ALL authors including their initials
must be stated, in the text citations only the first, followed by "ET AL."</p>

      
    </div>
    <!--#include virtual="/footer.html" -->
  </body>
</html>
