| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="content-type" content="text/html; charset=us-ascii"> |
| <title></title> |
| <link> |
| <meta http-equiv="content-type" content="text/html; charset=us-ascii"> |
| </head> |
| |
| <body lang="en"> |
| <h2><a name="Bibliograp" id="Bibliograp">Bibliographic</a> <a name="Project" |
| id="Project">Project</a>'s Developer Page</h2> |
| |
| <table width="98%" border="0"> |
| <tbody> |
| <tr> |
| <td>Last Modified 2005-December-9</td> |
| <td style="text-align: right"><em>A printer friendly PDF version of |
| this page is available <a href="developer1.pdf">developer1.pdf |
| (36Kb)</a></em></td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h3>Contents</h3> |
| <ul> |
| <li><a href="#Projects">Project Overview</a></li> |
| <li><a href="#L1071">1st Stage, Bibliographic Facility Redevelopment</a> |
| <ul> |
| <li>Modify the Writer document-read and document-save modules to |
| support the new OpenDocument enhanced citation format.</li> |
| <li>Modify the writer code to insert and display the new format |
| citations.</li> |
| <li>Add support in the OOo save file package for storage of document |
| bibliographic data an the code changes necessary to read and save |
| that bibliographic data.</li> |
| <li>Modify the Writer save-file read and save modules to support the |
| new the bibliographic data file in the document save package.</li> |
| </ul> |
| </li> |
| </ul> |
| <ul> |
| <li><a href="#L1075">2nd Stage, Bibliographic Facility Redevelopment</a> |
| <ul> |
| <li>Add Backwards and Forwards Compatability Logic to Writer</li> |
| <li>Add Z39.50 and SRU/W support for the Bibliographic modules.</li> |
| <li>Design and Build a basic Graphical User Interface (GUI)</li> |
| </ul> |
| </li> |
| </ul> |
| <ul> |
| <li><a href="#Further">Further References</a></li> |
| <li><a href="#started">How to get started</a></li> |
| <li><a href="#Sample">Sample code</a></li> |
| <li><a href="#Contacts">Contacts</a></li> |
| </ul> |
| <hr> |
| |
| <h3>Project <a name="Overview" id="Overview">Overview</a></h3> |
| The Bibliographic Project (OOoBib) plans to enhance the bibliographic |
| functions of the OpenOffice.org Writer (wordprocessing) application to |
| achieve: |
| <ol> |
| <li>Enhance bibliographic formatting to support: |
| <p>a. complex features required of commonly used citation styles like APA |
| and Chicago.</p> |
| <p>b. automatically switching between potentially radically different |
| citation styles (ie. footnote to in-text).</p> |
| </li> |
| <li>Enhance data model to support a broader range of reference types.</li> |
| <li>Add support for connection to remote database.</li> |
| </ol> |
| |
| <p>Our current objective is to design and build OOoBib version 0.1, which |
| will contain the most basic functions for an usable bibligraphic facility |
| with the above features.</p> |
| |
| <table border="0" width="100%"> |
| <tbody> |
| <tr> |
| <td><h3><a name="L1071" id="L1071">1st Stage</a>, Bibliographic |
| Facility Redevelopment</h3> |
| </td> |
| <td align="right"><p><a href="#Bibliograp">top of page</a></p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h4>Summary</h4> |
| |
| <p>As our first step, we will implement the most simple changes to the OOo |
| core code (the API basic code, and UNO mappings, but not yet the user |
| interface code) necessary to implement basic support for:</p> |
| <ol> |
| <li>Support saving and reading enhanced citation support in |
| OpenDocument</li> |
| <li>Ability to insert and display citations in OpenOffice Writer using the |
| new format. (Note this task does not include the GUI interface to insert |
| the citation in the new format, only the UNO interface to provide the |
| basic function.</li> |
| <li>Storage of document bibliographic data in the OOo document save package |
| and the code changes necessary to read and save that bibliographic |
| data.</li> |
| </ol> |
| |
| <p>When these basic functions are built into OOo and are made assessable via |
| the UNO, we can then use rapid prototyping development methods to design and |
| build prototype GUI interfaces and bibliographic formatting engines. We will |
| be able to use any of the programming languages which have OpenOffice |
| bindings: C++, Java, Python and, of course, OpenOffice Basic. We believe that |
| we will find more developers who can work in these languages than by |
| insisting on C++ code from the start. Also it is much easier to build |
| prototypes using Java, Python and OpenOffice Basic than in C++.</p> |
| |
| <p><strong>NB</strong>. When we have designed, built and tested the |
| prototypes and they have been accepted by the OOo community we intend to |
| rebuild them in C++ and to have them made part of the core OpenOffice |
| application.</p> |
| <hr> |
| |
| <p><strong>Skills required</strong> - good C++ programming and some XML |
| skills with knowledge of, or willingness to learn, the OpenOffice UNO (see |
| the <a |
| href="http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html">Openoffice |
| Developer's Guide</a>)</p> |
| <hr> |
| |
| <h4>1. Modify the Writer document-read and document-save modules to support |
| the new OpenDocument enhanced citation format.</h4> |
| |
| <p>Implement the citation and bibliography changes to the OOo Writer save |
| file (in Open Document format) accepted by the <a |
| href="http://lists.oasis-open.org/archives/office/200409/msg00023.html">OpenDocument |
| Technical Committee</a>. The changes to the document schema are detailed in |
| our <a |
| href="http://bibliographic.openoffice.org/XML-bibliography-proposal.pdf">OpenDocument |
| XML Citation Proposal.pdf</a></p> |
| |
| <p>Here are two examples of the new citation format. The first is a standard |
| author-year style, with additional page number details:</p> |
| |
| <p><code><cite:citation |
| xmlns:cite="http://purl.org/NET/xbiblio/cite/1.0"</code><br> |
| <code> |
| xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"></code><br> |
| <code> <cite:citation-source></code><br> |
| <code> <cite:biblioref cite:key="Veer1996a"></code><br> |
| <code> <cite:detail cite:units="pages" cite:begin="23" |
| cite:end="24"/></code><br> |
| <code></cite:biblioref></code><br> |
| <code></cite:citation-source></code><br> |
| <code><cite:citation-body></code><br> |
| <code> <text:span text:style-name="Citation">(Veer, |
| 1996:</code><code>23-24)</text:span></code><br> |
| <code></cite:citation-body></code><br> |
| <code></cite:citation></code></p> |
| |
| <p>The second is a footnoted example.</p> |
| |
| <p><code><cite:citation |
| xmlns:cite="http://purl.org/NET/xbiblio/cite/1.0"</code><br> |
| <code> |
| xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"></code><br> |
| <code> <cite:citation-source></code><br> |
| <code> <cite:biblioref cite:key="Veer1996a"/></code><br> |
| <code> </cite:citation-source></code><br> |
| <code> <cite:citation-body></code><br> |
| <code> <text:note text:id="ftn0" text:note-class="footnote"></code><br> |
| <code> <text:note-citation>1</text:note-citation></code><br> |
| <code> <text:note-body></code><br> |
| <code> <text:p text:style-name="Footnote">Peter van der Veer |
| (1996)</code><br> |
| <code>Riots and Rituals: The</code><code> Construction of Violence and Public |
| Space in HindU</code><code>Nationalism, In Paul Brass Ed., Riots</code><code> |
| and Pogroms (New York:NYU Press) 154–76.</text:p></code><br> |
| <code> </text:note-body></code><br> |
| <code> </text:note></code><br> |
| <code> </cite:citation-body></code><br> |
| <code></cite:citation></code></p> |
| |
| <p>To compare this to the current format see <a |
| href="implementation.html">implementation</a>. The changes to the document |
| schema need to be supported by the document save and load modules. These are |
| detailed into the <a href="#Further">Further References</a> below.</p> |
| |
| <h4>2. Modify the writer code to insert and display the new format |
| citations</h4> |
| |
| <p>The bibliographic modules in OOo Writer need to modified to support the |
| new schema. The modules that need to be modified are</p> |
| <ul> |
| <li><a href="implementation.html#text">Bibliography</a></li> |
| <li><a href="implementation.html#text1">textfield/Bibliography</a></li> |
| <li><a href="implementation.html#text2">FieldMaster/Bibliography</a></li> |
| <li><a href="implementation.html#text3">BibliographyDataField</a></li> |
| </ul> |
| |
| <h4>3. Add support in the OOo save file package for storage of document |
| bibliographic data.</h4> |
| |
| <p>Currently the Writer saves a complete copy of the bibliographic data |
| associated with a citation, with each ciation. We propose to separate the |
| citation and the bibliographic data, by leaving just the citation details in |
| the document save file and place the detailed bibliographic data in a |
| seperate bibliographic data file the OOo save file package.</p> |
| |
| <p>The task is to complete the design of the bibliographic data file and add |
| support for it in the OOo save file package.</p> |
| |
| <h4><strong>4. Modify the Writer save-file read and save modules to support |
| the new the bibliographic data file in the document save |
| package.</strong></h4> |
| |
| <p>The relevant component is "<a |
| href="http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html">interface |
| XComponentLoader</a>" which supports <em>loadComponentFromURL</em> and |
| <em>storeAsURL.</em></p> |
| |
| <h4>5. Refine and Improve the CITEPROC bibliographic formating engine.</h4> |
| |
| <p>Experience XSLT programers are needed to work on this core component of |
| the Bibliographic facility. It is functioning and a book has been published |
| which used it to format the bibliographic table and citations.</p> |
| |
| <p>We propose to build Bibliographic table and citation formating using XSLT |
| style-sheets with a process called <a |
| href="http://bibliographic.openoffice.org/citeproc/index.html">CiteProc</a>. |
| Also see <a href="http://www.silmaril.ie/bibliox/biblioxdoc.html">BiblioX</a> |
| for technical discusion of this approach.</p> |
| <hr> |
| |
| <table border="0" width="100%"> |
| <tbody> |
| <tr> |
| <td><h3><a name="L1075" id="L1075">2nd Stage</a>, Bibliographic |
| Facility Redevelopment</h3> |
| </td> |
| <td align="right"><p><a href="#Bibliograp">top of page</a></p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h4>1. Add Backwards and Forwards Compatability Logic to Writer</h4> |
| |
| <p>An important object of Bibliographic Enhancement project is to maintain |
| document file backwards compatibility with older versions of OpenOffice. To |
| achieve this when Bibliographic Entries are inserted into a Document they are |
| stored with the same format as is currently the case. A new bibliographic |
| entry tag will be will be added with the enhanced citation functions, each |
| citation will contain a key that will point to the bibliographic data which |
| will be saved in the document save package. To preserve backwards |
| compatability we will need to also maintain the old bibliographic ciation and |
| dtat storage in the document. Older version of OpenOffice, without the |
| bibliographic enhacments, in the OOo 2.X .ods format, will read the old |
| format of the bibliographic citations and ignore the bibliographic data file |
| in the save package. A suggested approach is illustrated in this <a |
| href="backwards.png">flowchart.</a></p> |
| |
| <p>When a major revision of the save package format is introduced the support |
| of the older bibliographic representations can be dropped form the document |
| save file.</p> |
| |
| <h4>2. Add Z39.50 and SRU/W support for the Bibliographic modules.</h4> |
| |
| <p>Build <a href="biblio-sw.html#ZING">Z39.50</a> and <a |
| href="biblio-sw.html#ZING">SRU/W</a> based internet searching facility using |
| the <a href="http://www.indexdata.dk/yaz/">YAZ</a> toolkit. This would enable |
| searching for and retrieving bibliographic data from internet sources and |
| storing them in a document or bibliographic database.</p> |
| |
| <p>Also build Z39.50 and SRU/W server capability into OOo to enable users to |
| share their bibliographic (and other) databases over the internet. One of the |
| <a href="http://www.indexdata.dk/">Indexdata</a> toolkits could probably used |
| as a basis.</p> |
| |
| <p>The modules that may need to be modified are:</p> |
| <ul> |
| <li><a href="implementation.html#text">Bibliography</a></li> |
| <li><a href="implementation.html#text1">textfield/Bibliography</a></li> |
| <li><a href="implementation.html#text2">FieldMaster/Bibliography</a></li> |
| <li><a href="implementation.html#text3">BibliographyDataField</a></li> |
| </ul> |
| |
| <p><strong>NB</strong>: We are considering using SWU/W as the standard method |
| for OOo retrieving bibliographic data from any source. So that even a local |
| Bibliographic database would also be accessed through SWU/W methods. The user |
| would just select a local or remote source and the same access mechanism |
| would be used.</p> |
| |
| <h4>3. Design and Build a basic Graphical User Interface (GUI). To provide |
| -</h4> |
| <ul> |
| <li>Basic citation insertion</li> |
| <li>Basic bibliographic data entry</li> |
| <li>Citation and bibliographic table formating using Citeproc.</li> |
| <li>Basic Bibliographic database access</li> |
| <li>Basic bibliographic internet search and database storage.</li> |
| </ul> |
| |
| <table border="0" width="100%"> |
| <tbody> |
| <tr> |
| <td><hr> |
| |
| <h3><a name="Further" id="Further">Further</a> References</h3> |
| |
| <p>For an overview of the Bibliographic project's major components |
| and a context diagram see <a |
| href="components.html">components.html.</a> There is information |
| about the current OpenOffice Bibliographic <a |
| href="implementation.html">implementation</a>.</p> |
| |
| <p>A start has been made to the Specification for this work (see the |
| <a |
| href="http://bibliographic.openoffice.org/servlets/ProjectDocumentList?folderID=266"> |
| Projects Specifications folder</a> on the Documents and Files page). |
| Also see a attempt at an <a |
| href="mindmap/content-analysis.html">analysis</a> of the proposed |
| Bibliographic enhancement components and their relationships.</p> |
| |
| <p>The best place to start for finding out about development in |
| OpenOffice is the <a |
| href="http://development.openoffice.org/index.html">OpenOffice.org |
| For Developers</a> page. An important resource is the Developer's |
| guide which is part of the SDK (software development kit) or |
| available online on at <a |
| href="http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html">http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html</a></p> |
| |
| <p style="margin-bottom: 0cm">The <a |
| href="http://api.openoffice.org">OOo API</a> is based on <a |
| href="http://udk.openoffice.org">UNO (Universal Network Objects)</a> |
| is the interface-based component model of OpenOffice.org. UNO offers |
| interpretability between different programming languages, different |
| object models, different machine architectures and different |
| processes; either in a local network or even via the Internet. UNO |
| components can be implemented in and accessed from any programming |
| language for which a UNO language binding exists. We currently |
| provide several language bindings for UNO which allows to use the API |
| from Java, C++, OpenOffice.org Basic, Python and Common Language |
| Infrastructure (CLI).</p> |
| |
| <p>Implementing the new citation element in <em>xmloff</em> (the |
| XmlOffice module) is a routine task. The Sun developers want to do it |
| together with our programmer, so that he/she can learn how |
| <em>xmloff</em> works.</p> |
| |
| <p>To modify the Writer save-file read and save modules to support |
| the new the bibliographic data file in the document save package, and |
| to support <a href="backwards.png">backwards and forwards</a> |
| compatability logic to Writer the "<a |
| href="http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html">interface |
| XComponentLoader</a>", which supports <em>loadComponentFromURL</em> |
| and storeAsURL, needs to be enhanced. See the Development Guide |
| explanation for - <a |
| href="http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_5_Handling_Documents">6.1.5 |
| Handling Documents</a>.</p> |
| |
| <p>There is also a demonstration client program for the <a |
| href="http://www.indexdata.dk/yaz/">YAZ</a> toolkit (C & C++). - |
| <a href="http://www.indexdata.dk/irtcl/">IRTCL</a> that can perform |
| the reference searches. (Requires YAZ and Tcl/Tk libraries be |
| installed). It does everything but save or export the results ! |
| However it is good model of how to use the toolkit and could be used |
| as the basis for or model of a prototype internet searching facility. |
| <a href="http://bibliographic.openoffice.org/irclient.jpeg">Screen |
| pic</a>, <a href="irclient-setup.png">screen pic2</a>.</p> |
| |
| <p>A demonstration internet searching facility that writes selected |
| bibliographic records back to the OOo bibliographic database has been |
| written in Python - <a |
| href="http://bibliographic.openoffice.org/files/documents/124/1675/PyOOBib-02.zip">PyOOBib</a>, |
| <a |
| href="http://bibliographic.openoffice.org/files/documents/124/2446/file_2446.dat?filename=PyOOBib%20Instructions%2esxw">instructions</a> |
| are available. Various problems with OOo Python have lead to us |
| concluding that YAZ in C++ would be a better foundation than the |
| Python code.</p> |
| |
| <p>There is <a |
| href="http://xml.openoffice.org/package.html">description</a> of the |
| OOo save-file XML Package, and is a <a |
| href="http://xml.openoffice.org/faq.html#4">FAQ</a> about it.</p> |
| </td> |
| <td align="right"><a href="#Bibliograp">top of page</a></td> |
| </tr> |
| </tbody> |
| </table> |
| <hr> |
| |
| <table border="0" width="100%"> |
| <tbody> |
| <tr> |
| <td><h3>How to get <a name="started" id="started">started</a></h3> |
| </td> |
| <td align="right"><p><a href="#Bibliograp">top of page</a></p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <p>Access to the source code for this project is available for download via |
| CVS. A child work space has been created for us called "metabib" which |
| contains a copy of the <a |
| href="http://xml.openoffice.org/source/browse/xml/xmloff"><em>xmloff</em></a><em> |
| </em>(OpenOffice.org XML File Format Definition) and<em> </em><a |
| href="http://sw.openoffice.org/source/browse/sw/">sw</a> (the word processor |
| application component and the WYSIWYG HTML editor component) code.</p> |
| |
| <p>The down load size will be about 1GB(?). And you will need about 2GB of |
| disk space to compile the metabib CWS (Child-Work-Space). ( <a |
| href="http://eis.services.openoffice.org/EIS2/servlet/cws.ShowCWS?Id=3272&Path=SRC680%2Fmetabib ">Web |
| access to CWS</a> ). If you can not handle that size download then ask us |
| about sending it to you on cdroms.</p> |
| |
| <p>Administration process - you first need to sign the JCA and then obtain |
| the ssh key. After that we will show you how you can access the 'CWS'. It's |
| basically a CVS branch. The most complicated thing is the setup of your |
| tools, such that you can participate in the OOo development --- but, when you |
| have got the ssh key we will show you.</p> |
| |
| <p>See <a href="http://development.openoffice.org/index.html">OpenOffice.org |
| For Developers</a> for general development information.</p> |
| <hr> |
| |
| <table border="0" width="100%"> |
| <tbody> |
| <tr> |
| <td><h4><a name="Sample" id="Sample">Sample</a> Code</h4> |
| </td> |
| <td align="right"><a href="#Bibliograp">top of page</a></td> |
| </tr> |
| </tbody> |
| </table> |
| <ul> |
| <li>Sample python code that reads and outputs some of the fields of the |
| records in the bibliographic database. <a |
| href="http://udk.openoffice.org/python/samples/biblioaccess.py">biblioacess.py</a></li> |
| <li>Sample OpenOffice Basic program to write records to the bibliographic |
| database <a href="Bibwrite.html">bibwrite.html</a> |
| <li>A python script that reads RIS format files containing one or more |
| references and inserts them into the default |
| OpenOffice.orgBibliography/'biblio' database. <a |
| href="biblio-sw.html#RISImport.">RISImport.py</a></li> |
| </li> |
| <li>Henrik Just's LaTeX and BibTeX export filter <a |
| href="http://www.hj-gym.dk/~hj/writer2latex/">http://www.hj-gym.dk/~hj/writer2latex/</a></li> |
| <li>Applications which interact with Openoffice- <a |
| href="biblio-sw.html#Bibus">Bibus</a> (WxPython) and <a |
| href="biblio-sw.html#B3">B3</a> (Java).</li> |
| <li>A Perl module <a |
| href="http://search.cpan.org/~jmgdoc/OpenOffice-OODoc/OODoc/Intro.pod">OpenOffice::OODoc</a> |
| provides a simple way to access document elements in the (closed i.e. not |
| interactive with OOo) document save file. An <a |
| href="bibquery.perl">example</a> which retrieves bibliographic details is |
| provided.</li> |
| </ul> |
| |
| <h3><a name="Contacts" id="Contacts">Contacts</a></h3> |
| |
| <p>Question or comments can be put to the Bibliographic Project development |
| list <a |
| href="mailto:dev@bibliographic.openoffice.org">dev@bibliographic.openoffice.org</a> |
| or to the project co-leader <a href="mailto:dnw@openoffice.org">David |
| Wilson.</a></p> |
| <hr> |
| </body> |
| </html> |