<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>OpenOffice Bibliographic Project Discussion and Issues</title>
</head>

<body lang="en-US" link="#6666CC" bgcolor="#ffffff">
<h2>OpenOffice Bibliographic Project Discussion and
Issues</h2>

<p>2005-December-4</p>

<h3>Contents</h3>
<ol>
  <li><a href="#1">Document Style Options</a></li>
  <li><a href="#2">Revert to declared style</a></li>
  <li><a href="#3">And symbols to the automatic footnote numbering
  scheme.</a></li>
  <li><a href="#4">Provide Support for Footnote Citation Styles by Adapting
    the Field Editor for the Bibliography Tables.</a></li>
  <li><a href="#5">Modify the &#x2018;Bibliographic Entry&gt;Edit&#x2019;
    Panel to support appropriate field entry options for the citation type
    selected.</a></li>
  <li><a href="#6">Defining citations and references different treatment may
    be needed for first and subsequent use of the citation.</a></li>
  <li><a href="#7">There needs to be a mechanism for transferring the
    internal Document Bibliographic entries to and from the database to allow
    import and export from OpenOffice.</a></li>
  <li><a href="#8">Some of the Bibliographic Databasefields need to be
    increased in length.</a></li>
  <li><a href="#9">Should we persist with the DBASE Bibliographic Database
    ?</a></li>
  <li><a href="#10">It would be nice to have search capability to Internet
    Bibliographic Databases</a></li>
</ol>
<hr>

<p align="right"><em>A printer friendly PDF version of this page is available
<a href="detailed.pdf">detailed.pdf (63Kb)</a></em></p>

<h3><a name="1">1. Add a selection option for 'Document Style' to cover whole
document.</a></h3>

<p>We need to add user selection for a 'Document Style' to apply to a whole
document. I see two options for doing this -</p>
<ol>
  <li><p>Adding a new tab-panel 'Document Styles' to File&gt;Properties.</p>
    <p>or</p>
  </li>
  <li><p>Adding a new tab-panel 'Document Styles' to Format&gt;Page. (Does
    Page format only apply to the current section or the whole document ?)</p>
  </li>
</ol>

<p>This tab-panel would contain a 'Document Style' selection list which
include the supported styles eg APA, ASA, Chicago, MLA, German DIN, French
ISO, etc. {need to collect full list.}. Also we need provision for the users
to create their own styles. (See the list of BibTeX supported styles <a
href="bibtex-defs.html">BibTeX supported styles.)</a></p>

<h4><a name="1.1">1.1</a>. Document Style Options</h4>

<p>Other options in the tab panel could be such things as -</p>
<ul>
  <li><p>Style Data import / export; (Endnote <sup>(TM)</sup> and Refman
    <sup>(TM)</sup> provide style definitions to the general public which
    could be imported if their import format was decoded)</p>
  </li>
  <li><p>'Strictly Enforce Style' (Y/N), This would prevent the user
    modifying the document style aspects defined by the Style Manual. This
    could make the OO word processor easier to use as many of the functions
    would be grayed-out. 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>
  </li>
</ul>

<p>There would also need to be provision for options which are provided by
the selected style that the user can choose. Eg. The Chicago Style allows
selection of either in-text, footnote or endnotes, or a dual footnote
comments endnote citation scheme. Perhaps a 'Style Option' tab would handle
this.</p>

<p>The information associated with Document Style would include the following
methods for Bibliographic citation -</p>
<ul>
  <li>in-text</li>
  <li>footnotes</li>
  <li>endnotes</li>
  <li>endnotes and footnotes. (requires symbols detailed in item 2 the field
    formats for Bibliographic citation and Bibliographic Tables (Reference
    Lists and Bibliographic Lists).</li>
  <li>special editing for Bibliographic Tables eg repeated author names
    indicated by a three-em dash eg. (they should be a continuous line not
    dashes)-</li>
</ul>

<blockquote>
  <font>Charles Dickens, <i>A Tale of Two Cities.</i> London: Penguin Books,
  2000.<br>
  <span style="font-family: courier">&#x2014;&#x2014;&#x2014;</span>.
  <i>Nicholas Nickelby.</i> London: Penguin Classics, 1956.<br>
  <span style="font-family: courier">&#x2014;&#x2014;&#x2014;</span>.
  <i>Oliver Twist</i>. New York, Random House,1965.</font><br>
</blockquote>

<h4>1.2. Other Style considerations</h4>

<p>Page formating constraints (the MLA Manual specifies page margins (need to
check details)<br>
There may be particular requirements for Section, Chapter and Heading
styles.</p>

<div align="right">
<a href="#Project">Top of Page</a></div>

<h4>1.3. Conversion code</h4>

<p>When a new 'Document Style' was selected there would need to be some
format conversion process that would be applied to an existing document. This
would change the citation style from the current to the new, the trickiest
ones to do would be 'author-date in-text' to footnote or endnote or visa
versa.</p>

<p>An Issue: In order to allow a user change citation methods it will be
necessary to consider how we treat the footnote entry. It seems to me there
are two options. Utilise the standard footnote entry code, or to have a
special citation footnote.</p>

<h3><a name="2">2. Revert to declared style</a></h3>

<p>Is there a 'revert to declared style' function in OpenOffice ? In MS Word
there is a function that resets text to the declared format. It removes all
user made minor adjustments with fonts, margins etc. This facility is
probably required to make the above work and very useful in it own right.</p>

<h3><a name="3">3. And symbols to the automatic footnote numbering
scheme.</a></h3>

<p>The Chicago Manual of Style stipulates that when Endnotes and Footnotes
are both used the Endnotes are consecutively numbered (1,2,3 ...) and for the
Footnotes symbols are to be used. The series they suggest are -</p>

<table width="100%" border="0" cellspacing="0">
  <tbody>
    <tr>
      <td><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>As more symbols are needed they are doubled and trebled -</td>
    </tr>
    <tr>
      <td><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>
The proposal is to add this set of symbols to the automatic numbering options
for footnotes.

<p>The processing of the footnotes will need to be adjusted for symbols, as
the symbol sequence is restarted at the initial symbol ( * ), for each new
page they are use on.</p>

<h3><a name="4">4.</a> Provide Support for Footnote Citation Styles by
Adapting the Field Editor for the Bibliography Tables.</h3>
The current Insert&gt;Indexes and Tables&gt;'Bibliographic Entry' mechanism
[<a href="biblio1_html_4a7d5d98.png">screen image</a>] which is use to select
fields and format Tables [including the bibliographic table] should be
extended to enable defining footnote citation fields. Currently Bibliographic
Entry has only two options available - selection from bibliographic database
or document content. Then there is the selection box for the 'short name';
which is the reference string to be inserted with the text, eg.
[CharlesE1978]. This mechanism needs to be extended to the footnote or
endnote method. These methods require this information in a more complex
format in a footnote or endnote; for example<sup>34</sup>,<br>


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

<p>The Bibliographic Entry selection box should be changed from 'short name'
to 'citation type' - Book, Article, Journal Article, Collection etc. A new
button 'Customise Citation Styles' would bring up a new field selection and
formating panel very similar (maybe identical) to the table format editor.
Note that the Citation Style and style options will have been set in the new
File&gt;Properties tab-panel 'Document Styles' mentioned above at section 1.
Also the 'Customise Citation Styles' button would be inoperative and greyed
out if 'Strictly Enforce Style' is set to 'Yes', so as not mess up the style
settings.</p>

<p>Note: when the citation formats are defined and provided for the various
Document Style Conventions the average user will not have to use this. All
the fields will be predefined.</p>

<div align="right">
<a href="#Project">Top of Page</a></div>

<h3><a name="5">5</a>. Modify the &#x2018;Bibliographic Entry&gt;Edit&#x2019;
Panel to support appropriate field entry options for the citation type
selected.</h3>

<p>Currently the Insert&gt;Indexes and Tables&gt;Bibliographic
Entry&gt;Edit&gt;New Panel [<a href="biblio1_html_1bd246eb.gif">screen
image</a>] offers a selection box that allows the user to selection citation
type from a pick list eg Book, Article, Manual, Incollection etc. And is
presented with a selection of 29 fields in which to place their data. The
preferred action would be that the selection of a citation type would
indicate which fields are Required, Optional, or Ignored for that citation
type. See a screen-print of sixpack as an example of such an <a
href="sixpack.jpg">editor</a> .</p>

<p>The list of citation types and fields that are used in BibTeX are given
below and should be considered as a minimum requirement.</p>
<dl>
    <dd><strong>article</strong> - An article from a journal or magazine.
      Required fields: <tt>author</tt>, <tt>title</tt>, <tt>journal</tt>,
      <tt>year</tt>. Optional fields: <tt>volume</tt>, <tt>number</tt>,
      <tt>pages</tt> , <tt>month</tt>, <tt>note</tt>.</dd>
    <dd><strong>Book</strong> - A book with an explicit publisher. Required
      fields: <tt>author</tt> or <tt>editor</tt>, <tt>title</tt>,
      <tt>publisher</tt> , <tt>year</tt>. Optional fields: <tt>volume</tt> or
      <tt>number</tt> , <tt>series</tt>, <tt>address</tt>, <tt>edition</tt>,
      <tt>month</tt> , <tt>note</tt> .</dd>
    <dd><strong>Booklet</strong> - A work that is printed and bound, but
      without a named publisher or sponsoring institution. Required field:
      <tt>title</tt>. Optional fields: <tt>author</tt>, <tt>howpublished</tt>
      , <tt>address</tt>, <tt>month</tt>, <tt>year</tt>, <tt>note</tt>.</dd>
    <dd><strong>Conference</strong> - The same as <tt>INPROCEEDINGS</tt> ,
      included for <i>Scribe</i> compatibility.</dd>
    <dd><strong>Inbook</strong> - A part of a book, which may be a chapter
      (or section or whatever) and/or a range of pages. Required fields:
      <tt>author</tt> or <tt>editor</tt>, <tt>title</tt>, <tt>chapter</tt>
      and/or <tt>pages</tt>, <tt>publisher</tt>, <tt>year</tt> . Optional
      fields: <tt>volume</tt> or <tt>number</tt>, <tt>series</tt>,
      <tt>type</tt> , <tt>address</tt>, <tt>edition</tt>, <tt>month</tt>,
      <tt>note</tt>.<br>
      <strong>Incollection</strong> - A part of a book having its own title.
      Required fields: <tt>author</tt>, <tt>title</tt>, <tt>booktitle</tt>,
      <tt>publisher</tt>, <tt>year</tt>. Optional fields: <tt>editor</tt>,
      <tt>volume</tt> or <tt>number</tt>, <tt>series</tt>, <tt>type</tt>,
      <tt>chapter</tt> , <tt>pages</tt>, <tt>address</tt>, <tt>edition</tt>,
      <tt>month</tt> , <tt>note</tt>.<br>
      <strong>Inproceedings</strong> - An article in a conference
      proceedings. Required fields: <tt>author</tt>, <tt>title</tt>,
      <tt>booktitle</tt>, <tt>year</tt>. Optional fields: <tt>editor</tt>,
      <tt>volume</tt> or <tt>number</tt>, <tt>series</tt>,
      <tt>pages</tt>,<tt>address</tt>, <tt>month</tt> ,
      <tt>organization</tt>, <tt>publisher</tt>, <tt>note</tt> .<br>
      <strong>Manual</strong> - Technical documentation. Required field:
      <tt>title</tt>. Optional fields: <tt>author</tt>,
      <tt>organization</tt>, <tt>address</tt>, <tt>edition</tt>,
      <tt>month</tt>, <tt>year</tt>, <tt>note</tt>.<br>
      <strong>Mastersthesis</strong> - A Master's thesis. Required fields:
      <tt>author</tt>, <tt>title</tt>, <tt>school</tt>, <tt>year</tt> .
      Optional fields: <tt>type</tt>, <tt>address</tt>, <tt>month</tt>,
      <tt>note</tt> .<br>
      <strong>Misc</strong> - Use this type when nothing else fits. Required
      fields: none. Optional fields: <tt>author</tt>, <tt>title</tt>,
      <tt>howpublished</tt>, <tt>month</tt>, <tt>year</tt>, <tt>note</tt>.<br>
      <strong>Phdthesis</strong> - A PhD thesis. Required fields:
      <tt>author</tt>, <tt>title</tt>, <tt>school</tt>, <tt>year</tt> .
      Optional fields: <tt>type</tt>, <tt>address</tt>, <tt>month</tt>,
      <tt>note</tt>.<br>
      <strong>Proceedings</strong> - The proceedings of a conference.
      Required fields: <tt>title</tt>, <tt>year</tt>. Optional fields:
      <tt>editor</tt>, <tt>volume</tt> or <tt>number</tt>, <tt>series</tt>,
      <tt>address</tt> , <tt>month</tt>, <tt>organization</tt>,
      <tt>publisher</tt>, <tt>note</tt>.<br>
      <strong>Techreport</strong> - A report published by a school or other
      institution, usually numbered within a series. Required fields:
      <tt>author</tt>, <tt>title</tt>, <tt>institution</tt>, <tt>year</tt>.
      Optional fields: <tt>type</tt>, <tt>number</tt>, <tt>address</tt> ,
      <tt>month</tt>, <tt>note</tt>.<br>
      <strong>Unpublished</strong> - A document having an author and title,
      but not formally published. Required fields: <tt>author</tt>,
      <tt>title</tt>, <tt>note</tt>. Optional fields: <tt>month</tt>,
      <tt>year</tt>.</dd>
</dl>

<p><a href="bibtex-defs.html">The full text with field definitions and usage
hints.</a></p>

<div align="right">
<a href="#Project">Top of Page</a></div>

<h3><a name="6">6.</a> Defining citations and references different treatment
maybe needed for first and subsequent use of the citation.</h3>

<p>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. In the mad rush to complete the paper as
the deadline approaches, a piece of text is moved and the Initial Citation
reference now comes after the Subsequent reference, and the examiner gives
you a red mark.</p>

<p>I do not know enough about the internals of OpenOffice to suggest how this
would be implemented. Two options would be to include a check after
bibliographic entry or to check and adjust when the update fields function is
activated. This would require the citation field to have an identifier which
signified that a citation's initial and subsequent appearances were related
to the same reference in order to check if the current Initial citation is
still the initial one after some text editing. That is not using string
matching but reference identifiers.</p>

<p>This also requires that with style that require it all of the citation
formats will have two versions; the full initial one and the shorter
subsequent one.</p>

<p>Example. An Initial Reference -</p>

<blockquote>
  <font>'Oisin and Patrick' in <i>Irish Myths and Legends</i>, Lady Gregory.
  (London: Running Press, 1989), 412-421.</font></blockquote>

<p>A Subsequent Reference -</p>

<blockquote>
  <font>'Oisin and Patrick' in <i>Irish Myths and Legends</i>,
450.</font></blockquote>
or just -

<blockquote>
  <font>'Oisin and Patrick', 25.</font></blockquote>

<h4>6.1. Some Implementation Issues</h4>

<p>In order to allow a user change citation methods it will be necessary to
consider how we treat the footnote / endnote entry. It seems to me there are
two options. Utilise the standard footnote / endnote entry code, or to have a
special citation footnote.</p>

<p>I will give some examples. A document has in-text author-date citations.
This is what is currently implemented. eg.</p>

<blockquote>
  <font>The story of Finn (Gregory1989) is central to our
argument.</font>/</blockquote>

<p>We now change the citation setting to footnote method and it deletes the
In-text field, creates a footnote and places the citation field into the
footnote.</p>

<blockquote>
  <font>The story of Finn<sup>1</sup> is central to our argument.<br>
  </font> -----<br>
  <font>1. Lady Gregory,<i>Irish Myths and Legends</i> ,. (London: Running
  Press, 1989)</font></blockquote>

<p>This seems simple enough. But what happens if we are starting with the
footnote / endnote style, and change to the in-text style. Will it be just as
simple a matter to find all the bibliographic entries, go to the footnote /
endnote reference, delete the footnote / endnote and insert a new in-text
author-date citations? What do we do if the user has added extra text into
citation footnote / endnote ? -</p>

<blockquote>
  <font>1. Lady Gregory ,<i>Irish Myths and Legends</i>,. (London: Running
  Press, 1989) Note that this was originally published in
1903.</font></blockquote>

<p>Do we than leave the footnote / endnote with just the added text? And
deleted if there was no added text ?</p>

<blockquote>
  <font>The story of Finn (Gregory1989) <sup>1</sup> is central to our
  argument. eg.<br>
  -----</font><br>
  <font>1. Note that this was originally published in
1903.</font></blockquote>
As more symbols are needed they are doubled and trebled - The proposal is to
add this set of symbols to the automatic numbering options for footnotes.

<p>Would it help to have a special field for footnote / endnote or citations,
and if we did how do we deal with added comments? A user writable text area
with the citation field ?</p>

<div align="right">
<a href="#Project">Top of Page</a></div>

<h4>6.2 The inset citation dialog will need to support types of citations
within a citation style.</h4>

<p>This will be required in order to support the following type of citation
system -</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)<br>
or<br>
"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)"<br>
or<br>
"'This method is very reliable' (BASLER 2003:12 ff.)"<br>
or<br>
"AUTHOR (YEAR:12) stated 'This method is very reliable.'"<br>
f.e. "BASLER (2003:12) stated 'This method is very reliable.'"<br>
or<br>
"BASLER (2003:12 f.) concludes that this method is very reliable.'"</p>

<p><br>
Some comments on that:<br>
1. The AUTHOR(s) must be in small capitals (as every person everywhere in the
text).<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.<br>
or<br>
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 align="right">
<a href="#Project">Top of Page</a></div>

<h3><a name="7">7.</a> There needs to be a mechanism for transferring the
internal Document Bibliographic entries to and from the database to allow
import and export from OpenOffice.</h3>

<p>Currently if a users creates Bibliographic entries with the
Insert&gt;Indexes and tables&gt;Bibliographic Entry&gt;New function, these
entries can not be easily exported from the document.</p>

<p>As the first priority there needs to be an export and import of
bibliographic data in the BibTeX format. As this is the most common format
and the one most other bibliographic tools will utilise.</p>

<h3><a name="8">8. Some of the Bibliographic Database fields need to be
increased in length.</a></h3>

<p>Some users have run into the field length limit of the varchar datatype
(or of the Input form). At least Title and Authors, and possibly some others
should be made longvarchar. Currently if the user changes the field
definitions in the database the bibliographic functions - Bibliographic
Entry, and Bibliographic Table cease to work on the altered table. Some
journal articles have hundreds of authors !</p>

<h3><a name="9">9.</a> Should we persist with the DBASE Bibliographic
Database?</h3>

<p>Or, to replace it with storage in BibTeX format and utilise other
OpenSource (eg. sixpack or pybliographer) work (code or design) for a BibTeX
editor and browser. We should also check the OpenOffice Database project for
their view and plans.</p>

<h3><a name="10">10.</a> It would be nice to have search capability to
Internet Bibliographic Database</h3>

<p>P.S from an Institute of Biochemistry requested the ability to connect and
query on-line databases (like Medline), or at least import records from saved
queries. He wrote - "PubMed for example would allow your browser to save the
queries in several formats that are easy to import."</p>

<div align="right">
<p><a href="#Project">Top of Page</a></p>
</div>
<hr>

<p>By <a href="mailto:dnw@openoffice.org">David N. Wilson</a></p>
</body>
</html>
