Skip to content

stain/signposting

Repository files navigation

Signposting link parser library

Finding signposting in FAIR resources

pypi install signposting Python Apache License v.2.0 Test Status Package Build Codecov Read the Docs DOI 10.5281/zenodo.6815412

Summary

This library helps client to discover links that follow the signposting conventions, most notably FAIR Signposting.

This can then be used to navigate between:

  • Persistent identifiers
  • HTML landing pages
  • File downloads/items
  • Structured metadata

Method

The library works by inspecting the HTTP messages for Link headers from a given URI with find_signposting_http, which which categorize them by their rel Link relation into a Signposting object with absolute URIs.

It is up to the clients of this library to decide how to further navigate or retrieve the associated resources, e.g. using a RDF library like rdflib or retrieving resources using urllib.

Future versions of this library may also provide ways to discover FAIR signposting in HTML <link> annotations and in linkset documents.

Motivation

FAIR Signposting has been proposed as a mechanism for automated clients to find metadata and persistent identifiers for FAIR data residing in repositories that follow the traditional PID-to-landing-page metaphor.

This avoids the need for client guesswork with content-negotiation, and allows structured metadata to be provided by the repository rather than just PID providers like DataCite.

The main idea of FAIR Signposting is to re-use the existing HTTP mechanism for links, using existing relations like describedby, cite-as and item.

The aim of this library is to assist such clients to find and consume FAIR resources for further processing. It is out of scope for this code to handle parsing of the structured metadata files.

Copyright and license

© Copyright 2022 The University of Manchester, UK.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

SPDX-License-Identifier: Apache-2.0

See the authors page for a full list of contributors.

How to use this repository

The documentation pages explain briefly how to use this library including a listing of modules and methods.

Issues and Discussions

As usual in any GitHub based project, raise an issue if you find any bug or have other suggestions; or open a discussion if you want to discuss or talk :-)

Version

v0.9.9