...
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.
DataSource
A DataSource
is some external entity that puts data into the system. This data generally falls into two categories:
- Bibliographic information about a book, such as its title or cover image. This goes into the bibliographic metadata subsystem.
- Licensing information which can be used to serve actual copies of the book to library patrons. This goes into the licensing subsystem.
Some examples of DataSource
s:
- Overdrive, Bibliotheca, and Axis 360 license commercially published ebooks to libraries for delivery to patrons. They also provide bibliographic information about the books they license.
- Standard Ebooks provides bibliographic information about books, as well as free copies of the books themselves.
- OCLC and Content Cafe provide bibliographic information about books, but have no way of giving access to the actual books.
- VIAF provides information about the people who write books, but very little about the books themselves.
- The New York Times knows the ISBNs of the books on its best-seller lists, but not much more.
A
|
Identifier
An Identifier
provides a way to uniquely refer to a particular book. Common types of Identifier
include ISBNs and proprietary IDs such as Overdrive or Bibliotheca IDs.
An
|
...
The linked resources subsystem
This system keeps track of external resources associated with a book. An "external resource" can be pretty much anything, but these are the most common types of resources we track:
...
A Hyperlink
represents a connection between an Identifier
and a Resource
.
It contains two extra pieces of information about the link:
|
Resource
A Resource
represents a document found somewhere on the Internet -- probably either a cover image or a free book. It has a url
, and that's basically it -- everything about the document itself is kept in Representation
.
|
Representation
A Representation
is a local cache of a Resource
. It represents our attempt to actually download a Resource
and records what happened when we tried.
If everything went well, the Circulation managers don't usually |
...
create An image |
Putting it all together
Here's how the whole subsystem works together. Let's say one of our data sources that claims the URL http://example.org/covers/my-book.png is a cover image for the ISBN "97812345678". We want to represent this fact in our system.
...
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 | ||||
---|---|---|---|---|
|
...
About Works | DB Schema |
---|---|
May have copies scattered across many | |
May have many Editions, but derives its presentation metadata from one particular Edition, which is known as its “presentation edition.” This special | |
Stores information that has been aggregated from multiple sources and summarized:
| |
May be referenced by multiple | |
May participate in many |
...
Anchor | ||||
---|---|---|---|---|
|
Library
A library represents some organization that serves a distinct set of patrons.
...
* one or more `Collections`.
* one or more `CustomLists`.
* one or more Lanes, each of which is associated with one CachedFeed.
* one or more Admins.
Admin
Admins are people such as librarians who have access to the admin interface (via accounts in the circulation manager). An Admin
is associated with a particular Library
through AdminRole
. An Admin may have more than one AdminRole
. The AdminRoles
are:
- Librarian
- SitewideLibrarian
- LibraryManager
- SitewideLibraryManager
- SystemAdmin
Lane
A library groups its books together using Lane
s. A Lane
may group books by any combination of these criteria:
...
A lane may have many CachedFeed
s.
CachedFeed
A CachedFeed
is a pregenerated OPDS document that's stored in the database to serve future client requests. If a CachedFeed
can be used, it greatly improves patron-visible response time.
...