Bibliography Styles

Summary

Mentor(s): Dr. Mike Murphy
Project Type: Software development
Technologies: Python, HTML, XML, Git
Undergraduate Credit: CSCI 399, CSCI 490
Graduate Credit: IST 659, IST 799 (Thesis)
Locality: Main campus and/or remote

Purpose

As a general rule, scientific and academic writing involves the citation of sources of information. The TealSite static site generator provides a mechanism to store a database of sources as a set of files. Whenever the site author cites a source or requests generation of a full bibliography, TealSite generates the citations and references in whatever style (or format) that the author has configured.

At the moment, TealSite only supports a basic proof-of-concept style that uses footnote-style citations and basic reference formatting. Supporting additional citation formats will require implementing additional styles via one of two methods: either the styles can be implemented directly in Python, or the XML-based Citation Style Language can be employed to obtain formatting rules for a wide variety of citation styles.

Scope of Work

Adding support for relatively simple styles could be done using Python code. High priority simple styles include the Association for Computing Machinery citation style and the Institute of Electrical and Electronics Engineers style. Beyond these two computing discipline styles, the American Psychological Association style (widely used in science), Modern Language Association style (widely used in English), Turabian or Chicago style (used in history and some other humanities), and Bluebook style (used in law schools) are also support priorities. However, these latter styles will be more complicated to implement, especially Turabian and Blue Book.

A more advanced way to support a bunch of styles at once is to make use of the XML descriptions in the Citation Style Language (CSL). CSL is natively supported by a variety of citation managers and other tools, and there is even a partial Python implementation of a CSL parser. However, this Python implementation depends on an external XML parser (LXML) and uses a form of the BSD license that is not directly compatible with the MIT license used by TealSite. Accordingly, use of CSL as a shortcut for supporting multiple styles will require reading the CSL specification and implementing a parser using one of Python's built-in XML parsers (Expat or SAX). Leveraging artificial intelligence tools to create some of the required code may be especially viable for this approach.