The CITE Architecture Technology-independent, machine-actionable citation of scholarly resources

Reworking code, reworking concepts

In our work on the Homer Multitext project, Chris Blackwell and I work daily with the CITE Architecture – its abstract models, and the code libraries that implement them. That experience has led us to refine our models, and to begin work on a completely new suite of libraries implementing our thinking about citation and digital scholarship. We’ll be posting notes here about our new work as it begins to come on line.

Our first release offers a hint of some of what is to come. xcite is a cross-platform library for semantic manipulation of references expressed in URN notation. In technical terms, it departs from our previous work: the source code is in Scala, cross compiled for both the JVM and ScalaJS using scala versions 2.10, 2.11 and 2.12, so it is available for both JVM environments and for use in javascript compiled with ScalaJS. We are releasing binaries for all platforms through jcenter ( Source code continues to be available from github (

Conceptually, xcite directly extends our previous work. It introduces a second version of the CiteUrn notation, predictably called Cite2Urn. We will follow this announcement with a fuller explanation of its logic, and how we believe it improves on the incompletely articulated model implied by the original CiteUrn notation. The most important innovation in the xcite library is the introduction of URN matching functionality. This is an important change that we will discuss later in some detail: it is especially significant because of its applications to implementing our abstract model of reading texts.