Thursday, July 19, 2018

The Homer Multitext Microservice

The Homer Multitext produces integrated data on Greek Epic poetry, its language, its evolution over time, the traditions of scholarship surrounding it, and the physical artifacts, manuscripts and papyri, that are our only evidence. For a concise explanation of what the HMT publishes, please see https://github.com/homermultitext/hmt-archive/blob/master/overview.md.

At the same time, we Project Architects of the HMT, Neel Smith and Christopher Blackwell, are interested in making this data as widely accessible as possible. The data is released in CEX Format, a plain-text serialization of data organized according to defined abstract data models. We have developed code libraries in Scala implementing these abstract data models. These libraries provide the greatest flexibility in manipulating, locating, aggregating, and transforming the data of the Homer Mulititext.

For users who may not want to write code directly, we have provided an online application offering a graphical user interface for interacting with HMT data using the Cite Architecture’s Scala libraries.

For those who might want to write their own applications that interact with the HMT data, we provide a collection of microservices.

The examples below demonstrate the Scala Cite Services (Akka) application, SCS-Akka, running at beta.hpcc.uh.edu/scs/, and (as of July 19, 2018) serving data from the 2018g Release of the Homer Multitext Data.

The service accepts requests via HTTP, and returns JSON expressions of CITE objects. We have published a library in Scala for de-marshalling those JSON expressions into CITE data objects.

The CiteApp web-based application for the Homer Multitext gets its data from this service, and indeed the web-application and the microservice were developed jointly.

This collection of microservices is serving current data from the Homer Multitext, edited by Casey Dué and Mary Ebbott, a project of the Center for Hellenic Studies of Harvard University.

For more information on this service, please see https://github.com/cite-architecture/scs-akka.

For information on the CITE Architecture, please see https://cite-architecture.github.io.

Report bugs by filing issues on GitHub.

Texts

About the Service’s Catalog

See the Text Catalog

Get the First Valid Reference in a text

Get Valid References

All references for a version of a text:

Valid references for parts of a text:

Get Passages

Passages for a specific version of a text:

Passages for all versions of a text:

NGrams

NGrams in works present in the library:

Find citations to NGrams:

Returning a Corpus of Passages containing an NGram:

String Searches

Token Searches

Collections of Objects

Catalog

Objects

Get objects from multiple collections:

Finding Objects

urn-match

regexmatch

stringcontains

valueequals

numeric less-than

numeric less-than-or-equal

numeric equals

numeric greater-than

numeric greater-than-or-equal

numeric within

Data Models

Images

Basic Image Retrieval

Defining a width

Defining MaxWidth and MaxHeight

Embedding

  • 12-recto
  • 12-recto-detail

Relations

CITE Relations are associations of URN to URN, with the relationship specified by a Cite2 URN.

Commentary Data Model

If a library includes CiteRelations and implements the Commentary datamodel, comments associated with passages of text can (optionally) be attached to replies for a corpus of texts.

Documented Scholarly Editions (DSE) Data Model

The DSE Data model consists of a CITE Collection of objects, each documenting a three-way relationship between (a) a text-bearing artifact, (b) a documentary image (ideally with a region-of-interest defined), and © a citable passage of text.

(The dse=true parameter is valid for all object-searching, as well as for retrieval of individual objects or ranges of objects.)