Glossary Generation

Summary

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

Purpose

A useful feature of any scientific or technical publication is a glossary that defines terms for easy cross-referencing. While glossaries are typically found in larger works, such as books, there is no reason why a website couldn't have one. A glossary would be especially useful for a site containing digital learning materials.

During processing, TealSite generates tag index data for each HTML tag found in the document. One way to give formal definitions to terms in a document is to use a definition list with the dl tag. There is also a dfn tag that can be used to mark terms that are defined in-text. It is therefore relatively easy for a site author to include definition information without having to do much extra work.

A feature that still needs to be implemented is to use the tag indexes to generate glossaries. A glossary could have different scopes, from site-level down to page-level (with directories in between). One challenge in producing a useful glossary is that a single term can have more than one meaning. For example, in networking, the term bandwidth is often colloquially used as a synonym for the data throughput that a network connection can carry. Thus, a network engineer might say that a connection has 1 gigabit per second of "bandwidth." However, bandwidth has another meaning at the physical layer of the network stack: it is a measure of the range of frequencies that a particular transmission system can carry (measured in Hertz, or Hz). A category 6A Ethernet cable has 500 MHz of physical bandwidth and can carry data at speeds of 10 Gbps over a distance of 100 meters. A site-level glossary for a networking site would probably need to contain both of these definitions.

Scope of Work

Add glossary support to TealSite by using a combination of Python and HTML to generate the glossary data. As described above, the generated glossary might have its scope limited to part of a site or include the entire site. Also, a term might have more than one definition.