...
Looking at the whole data model at once can be overwhelming, so we'll consider it as a few smaller simpler systems:
- Bibliographic metadata
- Licensing
- Works
- Custom lists
- Libraries
- Patrons
- Site configuration
- Background processes
These systems overlap around a few key classes, mainly DataSource
, Identifier
, LicensePool
, and Work
.
...
Theoretically, thumbnailing could also be handled as a ResourceTransformation
, but it's probably not worth making this change.
Anchor | ||||
---|---|---|---|---|
|
Collection
A Collection
represents a set of books that are made available through one set of credentials.
...
CirculationEvent
s are aggregated and used to create library analytics.
Anchor | ||||
---|---|---|---|---|
|
A Work represents a book in general, as opposed to one specific edition of a book, or a specific licensing agreement to deliver copies of a book.
...
- May have copies scattered across many LicensePools
- May have many Editions, but derives its presentation metadata from one particular Edition, which is known as its “presentation edition.” This special
Edition
represents the best available bibliographic metadata for the book. - Stores information that has been aggregated from multiple sources and summarized:
- Subject matter classification (aggregated from
Classification
s) - Intended audience (aggregated from
Classification
s) - Fiction/nonfiction status (aggregated from
Classification
s) - Popularity (aggregated from
Measurement
s) - The best available summary (aggregated from
Resource
s)
- Subject matter classification (aggregated from
- May be referenced by multiple
CustomListEntries
and/orCachedFeeds
. - May participate in many
WorkGenre
assignments.WorkGenre
is a simple join table that tracks the assignment ofWork
s toGenre
s.
Anchor | ||||
---|---|---|---|---|
|
A CustomList is a list of books, typically grouped by a criterion such as genre, subject, bestseller status, etc., which a librarian has compiled in the admin interface. Each CustomList is associated with, and presented to patrons in the front-end as, one Lane. A CustomList has at least one CustomListEntry, each of which refers to a particular Work.
Anchor | ||||
---|---|---|---|---|
|
Library
A library represents some organization that serves a distinct set of patrons.
...
Annotations are synced between client and server using the Web Annotation Protocol. A patron must opt in before their annotations are synchronized with the circulation manager. A patron's decision to opt-in or not is tracked in the field Patron.synchronize_annotations
.
Anchor | ||||
---|---|---|---|---|
|
ExternalIntegration
A ConfigurationSetting holds information about an extra piece of site configuration. A ConfigurationSetting may be associated with an ExternalIntegration, a Library, both, or neither.
...
An ExternalIntegration contains the configuration for connecting to a third-party API. Commonly used third-party APIs include the metadata wrangler, DataSources that require protocols, authentication services, storage services, and search providers.
Anchor | ||||
---|---|---|---|---|
|
- A Timestamp provides a record of when a Monitor was run.
- A CoverageRecord provides a record of any processes that have been performed on a book (referred to via its Identifier)
- A WorkCoverageRecord provides a record of any processes that have been performed on a Work (similar to what CoverageRecord does for Identifiers).