Open Library¶
Open Metadata Exchange (OME) plugin¶
An OME plugin defines how to import and publish metadata from an Open Education Resources system.
plugin.py provides the class that enables OME to understand Open Library metadata.
This plugin defines one or more:
mimetypesso that Open Library json data can be stored as enclosures in InterNetNews (INN) articles.newsgroupsso Open Library metadata can be published to and subscribed from those INN newsgroups.
The plugin is composed of at least three code files.
plugin.py: Definesmimetypes,newsgroups, and amake_metadata_card()function that translates Open Library data into an OME EducationalResource.openlibrary_work_models.py: Generated by Pydantic tools to make it fast and reliable to import Open Library work metadata.openlibrary_authors_models.py: Generated by Pydantic tools to make it fast and reliable to import Open Library author metadata.bulk_import.py: Utilities to convert data directly from the Open Library API into OME EducationalResources.
Open Library is an example of dealing with linked metadata where one API call accesses a Work (e.g. a book) and a second API call is required to access linked metadata about that Work’s Authors.
[!NOTE]
Please do NOT edit this line and below because when the docs are rebuilt, these lines will be overwritten by scripts/sync_plugin_docs.py.
MIMETYPES:
application/vnd.openlibrary.authors+json
application/vnd.openlibrary.work+json
NEWSGROUPS:
{‘ome.openlibrary’: “Metadata from the Internet Archive’s Open Library https://openlibrary.org”}
server/plugins/openlibrary
├── __init__.py
├── bulk_import.py
├── openlibrary_article.eml
├── openlibrary_authors_models.py
├── openlibrary_authors.json
├── openlibrary_item.json
├── openlibrary_ome_item.json
├── openlibrary_work_models.py
├── openlibrary_work.json
├── plugin.py
└── README.md
1 directory, 11 files