Object Model - ccnmtl/footprints GitHub Wiki

Overview

The Footprints object model was designed to support a fragmentary, ambiguous data set. The project team's overarching goals were to create a model that strongly enforced data integrity, minimized duplication and allowed entry flexibility. These goals were reached by minimizing required fields, carefully adding constraints across objects and constructing normalized relationships between people, places and roles.

The object model, like all models, is a back-end construct that can look quite different in the front-end interface. Developing an understanding for how the data is stored can be helpful for both new developers and data contributors.

Related Models

The Footprints related models describe a person, place or date that plays a part in the overall Footprint narrative. A few supporting models are left out of this detailed description, i.e. Place, Language and Digital Format, as they are self-explanatory.

Extended Date

The ExtendedDate models an ambiguous or uncertain date, and is based on the Library of Congress' Extended Date Time Format. Dates are serialized and stored in the EDTF format as a string, then reconstituted for sorting and searching.

StandardizedIdentification

The StandardizedIdentification model along with the StandardizedIdentificationType capture an authority's normalized way of referencing a person, place, literary work or imprint. For example, the Sefer Rav Mordekhai is identified by the Library of Congress as n 85045465. Other listed authorities are Bibliography of the Hebrew Book, VIAF, The Getty Thesaurus of Geographic Names and WorldCat (OCLC).

Person

The Person model describes a unique individual living or dead.

Role

A Role describes the work a person did over the course of his or her life. Roles can be ascribed to a particular point of the Footprint timeline, such as associating the role of author with a literary work.

Actor

The Actor model combines a person with a role to describe an indvidual's work. The combination allows a (talented) person serve multiple roles within the system. For example, Levi Koppel shows up as both an owner and an approbator. The system constrains

The Footprint Hierarchy

A footprint is evidence of a literary work at a moment in time and space, e.g. an auction catalog listing the sale of a book. A footprint is fully described by a hierarchy of models. Starting at the most general, and moving to the most granular:

Written Work a.k.a. Literary Work

A literary work is a written composition that might circulate in any number of manuscript or printed versions. A WrittenWork can have many imprints.

Imprint

The imprint is an edition of a particular work. Imprint attributes include publication date, location and language. An imprint has a one-to-one relationship with a WrittenWork. Within a given imprint or publication run, there are many BookCopys.

Book Copy

The book copy in individual exemplar of an imprint; can be an extant copy or a presumed copy. More simply, the book copy is one unique physical instance of a literary work. Within the Footprints system, a book copy is identified by combining the written work, imprint and copy ids. A BookCopy has a one-to-one relationship with an Imprint. A BookCopy can have many Footprints.

Footprint

Finally, the Footprint contains the details around a moment in time when a BookCopy was handled, often through a sale or other transaction. A Footprint has a one-to-one relationship with a BookCopy.

Visualization

A quick object model graph showing the high-level relationships.

Footprints ORM Graph