Skip to content

Commit

Permalink
Add a new blog post
Browse files Browse the repository at this point in the history
  • Loading branch information
pkiraly committed Oct 4, 2023
1 parent 4c7c90a commit 7e5d21d
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions _posts/2023-10-04-library-apis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: Library APIs
layout: post
date: 2023-10-04 00:00:00
author: "pkiraly"
customjs:
- http://code.jquery.com/jquery-1.4.2.min.js
- http://pkiraly.github.io/js/table.js
---

Libraries provides different application programming interfaces (APIs) that allows users to access library data programmatically, e.g. via a script. The APIs can be implementation of widely used specification, which are available in many libraries, or custom interfaces which are available in particular institutions. APIs have three important layers:

1. the specification of the service. It describes how the data can be accessed (in some cases also how to create, modify or delete), whether the particular _call_ (an individual functionality of the service) requires authentication and authorization.
2. client libraries for particular language and tools that work on the command line or have a graphical user interface
3. the access points and terms of use at a particular library.

Some of the most important standardized APIs are:

* [Open Archives Initiative Protocol for Metadata Harvesting](https://www.openarchives.org/pmh/) (OAI-PMH) provides a mechanism to iterate over predefined sets of records. The sets are created by the libraries. It does not provide searches, but the implementation might provide information of the changes of the database. In the jargon the activity of using OAI-PMH is called "harvesting".
* [Information Retrieval (Z39.50): Application Service Definition and Protocol Specification](https://www.loc.gov/z3950/agency/) is an older standard, and implemented in almost all cataloguing system, however its access point is not always public. Most of the libraries set some limitations, so one can not download an arbitrary number of records. It provides search possibility via a peculiar query language.
* [SPARQL Protocol and RDF Query Language](https://www.w3.org/TR/sparql11-overview/), a communication protocoll and a query language for RDF graphs (linked data). We live in a transition period from MARC-based or MARC-liked precoordinated metadata schemas to a post-coordinated and open linked data graphs. SPARQL defines how these graphs can be searched and retrieved.
* [Cool URIs for the Semantic Web](https://www.w3.org/TR/cooluris/) is a simple API describing to access different representations of the resource.
* [Signposting](https://signposting.org/) provides a mechanism to specify links between scholarly papers, its metadata, landing page, authors, and different formats.

Most of the library cataloguing system vendors include API to their products, but sometimes mainly for helping the work of librarians, not created for end usres. The large libraries and library consortia also provide custom APIs, such like [Europeana](https://pro.europeana.eu/page/apis), [Digital Public Library of America](https://dp.la/guides/for-developers), [Library of Congress](https://www.loc.gov/apis/), [OCLC WorldCat](https://developer.api.oclc.org/wcv2)

0 comments on commit 7e5d21d

Please sign in to comment.