Difference between revisions of "User talk:Dnw"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (1st Stage, Bibliographic Facility Redevelopment)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
----
 
Why is this on the '''User_talk''' page instead of being a real content page? --[[User:ErAck|erAck]] 11:03, 6 January 2006 (CET)
 
----
 
  
  
The Bibliographic Project's Developer Page has been moved to a proper 'content' page at [[Bibliographic Project's Developer Page]]
 
  
  
Line 10: Line 6:
  
  
== 2nd Stage Bibliographic Facility Redevelopment ==
 
  
=== Summary ===
 
  
The second stage is focused on adding backward and forward compatibility support, integration with remote servers, and user interface improvements.
 
  
=== Details ===
 
  
==== Backwards and Forwards Compatibility ====
 
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 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 citation and data storage in the document. Older version of OpenOffice, without the bibliographic enhancements, 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 a flowchart, see[http://bibliographic.openoffice.org/backwards.png].
 
  
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.
 
 
==== Remote Server Integration ====
 
Build Z39.50 and SRU/W based internet searching facility using the YAZ toolkit. This would enable searching for and retrieving bibliographic data from internet sources and storing them in a document or bibliographic database.
 
 
We would like to use SRU/W as the standard method for OOo retrieving bibliographic data from any source. In that case, even a local Bibliographic database would also be accessed through SRU/W methods. The user would just select a local or remote source and the same access mechanism would be used. SRU[http://www.loc.gov/standards/sru/] is particularly promising because while it shares the same model as the SOAP-based SRW, it is expressed in an easier to implement RESTful protocol.
 
 
This would mean adopting a standard API, which ZOOM[http://zoom.z3950.org/index.html] provides, and then wrapping the YAZ client code in a UNO interface.
 
 
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 Indexdata toolkits could used as a basis. [this may need more thought; sharing is good, but there are different ways to do this]
 
 
The modules that may need to be modified are:
 
 
Bibliography
 
textfield/Bibliography
 
FieldMaster/Bibliography
 
BibliographyDataField
 
 
==== Graphical User Interface (GUI) ====
 
This stage will involve designing a building a GUI to offer:
 
* Basic citation insertion
 
* Basic bibliographic data entry
 
* Citation and bibliographic table formating using Citeproc.
 
* Basic Bibliographic database access
 
* Basic bibliographic internet search and database storage.
 
 
== Further References ==
 
 
For an overview of the Bibliographic project's major components and a context diagram see components.html[http://bibliographic.openoffice.org/components.html]. There is information about the current OpenOffice Bibliographic implementation[http://bibliographic.openoffice.org/implementation.html]. There is an example of bibliographic data in a Writer XML save file.[http://bibliographic.openoffice.org/xml_contents.html]
 
 
A start has been made to the Specification for this work (see the Projects Specifications folder[http://bibliographic.openoffice.org/servlets/ProjectDocumentList?folderID=266] on the Documents and Files page). Also see a attempt at an analysis[http://bibliographic.openoffice.org/mindmap/content-analysis.html] of the proposed Bibliographic enhancement components and their relationships.
 
The best place to start for finding out about development in OpenOffice is the OpenOffice.org For Developers page[http://development.openoffice.org/index.html]. An important resource is the Developer's guide which is part of the SDK (software development kit) or available online[http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html].
 
 
The OOo API is based on UNO (Universal Network Objects)[http://udk.openoffice.org] 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).
 
Implementing the new citation element in ''xmloff'' (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 xmloff works. Florian Reuter, from the Sun OOo team, has written in his blog an explanation of how the citation changes could be implemented.[http://blogs.sun.com/roller/page/flo?entry=the_community_and_me_the]
 
 
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 backwards and forwards compatability logic[http://bibliographic.openoffice.org/backwards.png] to Writer the "''interface XComponentLoader''"[http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html], which supports loadComponentFromURL and storeAsURL, needs to be enhanced. See the Development Guide explanation for - 6.1.5 Handling Documents[http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_5_Handling_Documents].
 
See other wiki page [[Bibliographic Document XML Format]] [http://wiki.services.openoffice.org/wiki/User_talk:Bibliographic_Document_XML_Format] for a sample Writer save file contents (a .odt file) with the proposed bibliographic enhancements. This is very much a DRAFT effort.
 
 
There is also a demonstration client program for the YAZ toolkit (C & C++). - IRTCL[http://www.indexdata.dk/irtcl/] 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. Screen pic[http://bibliographic.openoffice.org/irclient.jpeg], screen pic2[http://bibliographic.openoffice.org/irclient-setup.png].
 
 
A demonstration internet searching facility that writes selected bibliographic records back to the OOo bibliographic database has been written in Python - PyOOBib[http://bibliographic.openoffice.org/files/documents/124/1675/PyOOBib-02.zip], instructions[http://bibliographic.openoffice.org/files/documents/124/2446/file_2446.dat?filename=PyOOBib%20Instructions%2esxw] 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.
 
 
There is description of the OOo save-file XML Package[http://xml.openoffice.org/package.html], and is a FAQ[http://xml.openoffice.org/faq.html#4] about it.
 
 
For details about GUI interface design please look at our Project Documentation; GUI Design Documents' Folder[http://wiki.services.openoffice.org/wiki/User_talk:Dnw#Graphical_User_Interface_.28GUI.29]
 
 
== How to get started ==
 
 
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 xmloff[http://xml.openoffice.org/source/browse/xml/xmloff] (OpenOffice.org XML File Format Definition) and sw (the word processor application component and the WYSIWYG HTML editor component) code.
 
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)[http://eis.services.openoffice.org/EIS2/servlet/cws.ShowCWS?Id=3272&Path=SRC680%2Fmetabib]. ( Web access to CWS ). If you can not handle that size download then ask us about sending it to you on cdroms.
 
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.
 
See OpenOffice.org For Developers[http://development.openoffice.org/index.html] for general development information.
 
 
== Sample Code ==
 
 
* Sample python code that reads and outputs some of the fields of the records in the bibliographic database. biblioacess.py[]
 
* Sample OpenOffice Basic program to write records to the bibliographic database bibwrite.html[http://bibliographic.openoffice.org/Bibwrite.html]
 
* Henrik Just's LaTeX and BibTeX export filter http://www.hj-gym.dk/~hj/writer2latex/[http://www.hj-gym.dk/~hj/writer2latex/]
 
Applications which interact with Openoffice- Bibus (WxPython) and B3 (Java).
 
* A Perl module OpenOffice::OODoc[http://search.cpan.org/~jmgdoc/OpenOffice-OODoc/OODoc/Intro.pod] provides a simple way to access document elements in the (closed i.e. not interactive with OOo) document save file. An example[http://bibliographic.openoffice.org/bibquery.perl] which retrieves bibliographic details is provided.
 
  
 
== Contacts ==
 
== Contacts ==
  
 
Question or comments can be put to the Bibliographic Project development list dev@bibliographic.openoffice.org or to the project co-leader David Wilson at dnw@openoffice.org.
 
Question or comments can be put to the Bibliographic Project development list dev@bibliographic.openoffice.org or to the project co-leader David Wilson at dnw@openoffice.org.

Latest revision as of 23:21, 30 April 2006







Contacts

Question or comments can be put to the Bibliographic Project development list dev@bibliographic.openoffice.org or to the project co-leader David Wilson at dnw@openoffice.org.

Personal tools