metadatatools

Inspired by the Python IdUtils package metadatatools provides similar functionality in TypeScript.

https://github.com/caltechlibrary/metadatatools

Science Score: 52.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization caltechlibrary has institutional domain (www.library.caltech.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

library-metadata
Last synced: 6 months ago · JSON representation ·

Repository

Inspired by the Python IdUtils package metadatatools provides similar functionality in TypeScript.

Basic Info
  • Host: GitHub
  • Owner: caltechlibrary
  • License: other
  • Language: TypeScript
  • Default Branch: main
  • Homepage:
  • Size: 1.81 MB
Statistics
  • Stars: 0
  • Watchers: 3
  • Forks: 0
  • Open Issues: 2
  • Releases: 6
Topics
library-metadata
Created about 1 year ago · Last pushed 7 months ago
Metadata Files
Readme License Citation Codemeta

README.md

Metadata Tools

This project was inspired by the idutils Python package. This package is not a port of the Python idutils. This project focuses on the identifiers Caltech Library needs for the COLD project.

For each supported identifier three types of methods are implemented.

normalization : this will return a valid identifier into a regularize format for validation and verification

validation : this checks if the form of the identifier string makes sense, e.g. does it look like an ORCID is expected to look?

verification : verification checks with the authoritative organization to see if data is available for the identifier. In most cases that means the organizations that supports creating and managing the identifier (e.g. orcid.org, isni.org, ror.org).

Supported identifiers

  • ArXiv ID
  • DOI
  • ISBN
  • ISSN
  • ISNI
  • ORCID
  • PMID
  • PMCID
  • ROR
  • LCNAF
  • VIAF
  • SNAC

USAGE

There are three ways to use Metadata Tools. The first is via the command line program mdtools. This simple command line program accepts three parameters, ACTION, ID_TYPE and IDENTIFIER. See man page for details. An ACTION can be one of three things, "normalize", "validate" and "verify". The second parameter is one of the types listed above. The final parameter the identifier value. "normalize" will accept an identifier in a common format variation and return a consisantly formated result. E.g. The ORCID "https://orcid.org/0000-0003-0900-6903" will be normalize to "0000-0003-0900-6903" where as an ROR of "05dxps055" will normalize to "https://ror.org/05dxps055". The normalization appplied reflects the typical way we handle the idenfier formatting in Caltech Library's repository systems.

"validate" will check of the identifier matches and expected form. E.g. An order looks like four digits dash four digits dash four digits dash for digits. There is some check summing also applied to validate the sequence (like with ISNI). Validate will make sure the supplied identifier confirms to those types of rules. It does not verify the value with the originating organization.

"verify" will validate the identifier supplied then check via a web service if the identifier is known to the sponsoring organization or authority control. As a result it requires network access and will fail if the sponsoring organization's website or service is unavailable.

Both "validate" and "verfiy" return booleaning true if everything checks out and false otherwise. The command line program mtd will also return a non-zero exit code if the validation or verification fails.

The second way Metadata Tools can be use is as a ESM TypeScript module. The TypeScript module you can use from Deno. The latest version of the Metadata Tools module can be found at https://github.com/caltechlibrary/metadatatools/latest/release and on the Caltech Library development group's GitHub website, https://caltechlibrary.github.io/metadatatools/mod.ts. The mod.ts file will pull in the whole set of identifier normalization, validation and verification routines.

Installation

The command line program can be installed using installer scripts hosted at https://caltechlibrary.github.io/metadatatools. See INSTALL.md for details.

While Metadata Tools should be considered experimental binaries are being provided for macOS (x8664 and M series processes), Windows 11 running on x8664 processors and for Linux on x86_64 and aarch64 processesor.

License

See LICENSE for license details.

Owner

  • Name: Caltech Library
  • Login: caltechlibrary
  • Kind: organization
  • Email: helpdesk@library.caltech.edu
  • Location: Pasadena, CA 91125

We manage the physical and digital holdings of the California Institute of Technology, provide services and training, and develop open-source software.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
type: software
title: metadatatools
abstract: "Inspired by the Python IdUtils package metadatatools provides similar functionality in TypeScript."
authors:
  - family-names: Doiel
    given-names: R. S.
    orcid: https://orcid.org/0000-0003-0900-6903
    email: rsdoiel@caltech.edu

contacts:
  - family-names: Doiel
    given-names: R. S.
    orcid: https://orcid.org/0000-0003-0900-6903
    email: rsdoiel@caltech.edu

repository-code: "https://github.com/caltechlibrary/metadatatools"
version: 0.0.6
date-released: 2025-05-05

license-url: "https://caltechlibrary.github.io/metadatatools/LICENSE"
keywords:
  - metadata
  - identifiers

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "type": "SoftwareSourceCode",
  "codeRepository": "https://github.com/caltechlibrary/metadatatools",
  "author": [
    {
      "id": "https://orcid.org/0000-0003-0900-6903",
      "type": "Person",
      "givenName": "R. S.",
      "familyName": "Doiel",
      "affiliation": {
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "rsdoiel@caltech.edu"
    }
  ],
  "maintainer": [
    {
      "id": "https://orcid.org/0000-0003-0900-6903",
      "type": "Person",
      "givenName": "R. S.",
      "familyName": "Doiel",
      "affiliation": {
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "rsdoiel@caltech.edu"
    }
  ],
  "dateCreated": "2024-12-04",
  "dateModified": "2025-05-05",
  "datePublished": "2025-05-05",
  "description": "Inspired by the Python IdUtils package metadatatools provides similar functionality in TypeScript.",
  "funder": [
    {
      "@id": "https://doi.org/10.13039/100006961",
      "@type": "Organization",
      "name": "Caltech Library"
    }
  ],
  "keywords": [
    "metadata",
    "identifiers"
  ],
  "name": "metadatatools",
  "license": "https://caltechlibrary.github.io/metadatatools/LICENSE",
  "operatingSystem": [
    "Linux",
    "Windows",
    "macOS",
    "web browser"
  ],
  "programmingLanguage": [
    "Typescript"
  ],
  "softwareRequirements": [
    "Deno >= 2.3",
    "Pandoc >= 3.1",
    "GNU Make >= 3.81",
    "CMTools >= 0.0.25"
  ],
  "version": "0.0.6",
  "developmentStatus": "WIP",
  "issueTracker": "https://github.com/caltechlibrary/metadatatools/issues",
  "downloadUrl": "https://github.com/caltechlibrary/metadatatools/release/latest",
  "releaseNotes": "WIP, passing lint and passing publish --dry-run. Renamed demo program of mdt to mdtools so it doesn't conflict with another program called mdt.\nFixed missing install/uninstall in Makefile. Using cmt generated INSTALL.md. First release published via `deno publish`.",
  "copyrightYear": 2024,
  "copyrightHolder": [
    {
      "@id": "https://ror.org/05dxps055",
      "@type": "Organization",
      "name": "California Institute of Technology"
    }
  ]
}

GitHub Events

Total
  • Create event: 6
  • Issues event: 1
  • Release event: 6
  • Push event: 38
  • Public event: 1
Last Year
  • Create event: 6
  • Issues event: 1
  • Release event: 6
  • Push event: 38
  • Public event: 1

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • rsdoiel (1)
Pull Request Authors
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels