metadatatools
Inspired by the Python IdUtils package metadatatools provides similar functionality in TypeScript.
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
Repository
Inspired by the Python IdUtils package metadatatools provides similar functionality in TypeScript.
Basic Info
Statistics
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
- Releases: 6
Topics
Metadata Files
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
- Website: https://www.library.caltech.edu/
- Repositories: 84
- Profile: https://github.com/caltechlibrary
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)