...
Looking at the whole data model at once can be overwhelming, so we'll consider it as a few smaller simpler systems:
- 187176996Bibliographic metadata187176996
- Licensing
- 187176996Works187176996
- Custom lists
- 187176996Libraries
- Patrons187176996
- Site configuration
- 187176996Background processes
These systems overlap around a few key classes, mainly DataSource
, Identifier
, LicensePool
, and Work
.
...
For the sake of simplicity, this document will talk about "books", but the rules are the same for audiobooks and other forms of content.
Anchor | ||||
---|---|---|---|---|
|
Bibliographic metadata
Bibliographic information is information about books as opposed to the books themselves. A book's title, its cover image, and its ISBN are all bibliographic information--the text of the book is not. Bibliographic information flows into the circulation manager and metadata wrangler from a variety of sources, mainly OPDS feeds and proprietary APIs. We keep track of all this information and where it came from, and when necessary we weigh it, sort it, and boil it down into a small amount of information that can be used by other parts of the system.
...
Each A |
Measurement
A Measurement
is a numeric value associated with an Identifier
.
...
- We'd create an
Identifier
for the ISBN "97812345678". - We'd create a
Resource
forhttp://example.org/covers/my-book.png
- We'd create a
Hyperlink
with therel
"http://opds-spec.org/image", for "cover image". The.data_source
of thisHyperlink
would be set to theDataSource
that made the original claim. - We don't have to actually download http://example.org/covers/my-book.png, but if we do decide to download it, the binary image will be stored as a
Representation
. If there's a problem and we can't complete the download, that fact will be stored in theRepresentation
instead. - If we download the image and everything goes well, we may also decide to create a thumbnail out of it. This would be stored as a second
Representation
, and its.thumbnail_of
would point to the original, full-sizeRepresentation
.
ResourceTransformation
A ResourceTransformation
represents a change that was made to one Resource
to generate another Resource
.
Currently it's used in the circulation manager's "cover image upload" feature. You can upload a background image (the original Theoretically, thumbnailing could also be handled as a |
Anchor | ||||
---|---|---|---|---|
|
Licensing
Collection
A Collection
represents a set of books that are made available through one set of credentials.
...
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.
ConfigurationSetting
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 | ||||
---|---|---|---|---|
|
Background processes
- 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).
...