Bibliographic software such as BibTeX and EndNote help you construct customized databases of literature references and manage the citation and formatting of a list of references, making the insertion of new citations into documents a seamless operation. A database of citations serves as the repository for each of these tools and can record all pertinent information about specific publicationsauthor names, title, publication type, and date of publication.
However, when a large collection of articles already exists, the task of creating the database of references can be daunting. Manually typing or copying-and-pasting from existing documents into databases can be tedious and error prone. And with existing bibliographic software, there is no pre-packaged solution to assist in automating the initial manual entry of references into the database.
In this article, we present BibPort, an automated tool that extracts relevant information from a set of legacy documents to create a database of bibliographic references using Word 2007's reference-management facilities. In the context of bibliographic text mining, this article is a case study in using Microsoft Visual Studio Tools for Office (VSTO) (msdn .microsoft.com/office/understanding/vsto) in combination with Visual Studio 2008 and Word 2007.
Design Principles for BibPort
Many organizations have specific formatting styles for bibliographic citation; the IEEE, ACM, APA, and MLA. A cursory web search yields several dozen citation styles in widespread use. Therefore, an important BibPort design goal addresses the flexibility needed to work with multiple citation formats. BibPort is not hard-coded to a specific format; new citation formats can be added by supplying new parsers. Furthermore, while individual bibliographic-management tools tend to have their own format, the choice of database format is flexible within BibPort.
BibPort has a plug-in architecture that has a parser manager as a front-end to any number of citation formats. Similarly, an export manager serves as a back-end for multiple export engines for citation database formats. Input/output processes are modularized such that any export engine is able to understand the output of any parser.