Skip to content

Tools and Services

pid4cat-model Python package

pid4cat-model is a Python package for

  • interacting with the pid4cat API to create, read and update pid4cat identifiers and their metadata.
  • validating pid4cat metadata against the pid4cat-model schema.
  • calculating and validating ISO 7064 checksums which may be used in local identifier schemes.

ISO/IEC 7064 describes eight generic check digit (character) systems for numeric, alphabetic, and alphanumeric strings. It specifies two types of systems that use the same algorithm with different parameters: Pure systems and Hybrid systems.

Algorithm Function name Input string Check character(s)
Pure
ISO/IEC 7064, MOD 11-2 mod11_2 Numeric (0-9) 1 digit or 'X' (0-9X)
ISO/IEC 7064, MOD 37-2 mod37_2 Alphanumeric (0-9A-Z) 1 digit, letter, or '*' (0-9A-Z*)
ISO/IEC 7064, MOD 97-10 mod97_10 Numeric (0-9) 2 digits (0-9)
ISO/IEC 7064, MOD 661-26 mod661_26 Alphabetic (A-Z) 2 letters (A-Z)
ISO/IEC 7064, MOD 1271-36 mod1271_36 Alphanumeric (0-9A-Z) 2 digits or letters (0-9A-Z)
Hybrid
ISO/IEC 7064, MOD 11,10 mod11_10 Numeric (0-9) 1 digit (0-9)
ISO/IEC 7064, MOD 27,26 mod27_26 Alphabetic (A-Z) 1 letter (A-Z)
ISO/IEC 7064, MOD 37,36 mod37_36 Alphanumeric (0-9A-Z) 1 digit or letter (0-9A-Z)

The pid4cat_model.iso7064 module contains implementations of all algorithms in the table.

pid4cat API

A REST API server that provides the endpoints to create, read and update pid4cat identifiers. It handles authentication of the SNAAs and SNAA-related validation.

The source code of the software is not yet available as open source but there are plans to release it in the future.

For usage instructions, see pid4cat API.

Features

  • Sub-namespace management
  • Create, read, update operation on single pid4cat handles
  • Bulk operations (future)
  • Reporting (future)
  • Monitoring (future)

Access

The pid4cat-admin tool is available only to the core organization and authorized administrators.

Integration with NFDI Base4IAM is ongoing in order to use NFDI identification and authorisation services for access control to the pid4cat API gateway.

pid4cat in Django

A Django application django-pid to integrate pid4cat in django-based ELNs/LIMS solutions is in development (pre-alpha state).

Schema representations

Through LinkML generators we provide other schema representations that are automatically derived from the pid4cat-model. These are available in the repository under /project, and are, for example JSON-schema, SHACL shapes, SQL.

Integration Libraries

Through LinkML generators, pid4cat provides integration code for some programming languages other than Python, see generated model artifacts.