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:

  • mimetypes so that Open Library json data can be stored as enclosures in InterNetNews (INN) articles.

  • newsgroups so 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: Defines mimetypes, newsgroups, and a make_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.

OpenLibrary module

[!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:

  1. application/vnd.openlibrary.authors+json

  2. 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