Skip to content

DOI

Type Registry

DOI

technology.code.doi

Digital Object Identifier — a persistent identifier for digital content (journal articles, datasets, books). Format: 10.XXXX/suffix where XXXX is a registrant code and suffix is assigned by the registrant.

Domain technologycode
Casts to VARCHAR
Scope Universal

Try it

CLI
$ finetype infer -i "10.1038/nature12373"
→ technology.code.doi

DuckDB

Detect
SELECT finetype('10.1038/nature12373');
-- → 'technology.code.doi'
Cast expression
CAST({col} AS VARCHAR)
Safe cast pipeline
-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS VARCHAR) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'technology.code.doi';

Struct Expansion

registrant: REGEXP_EXTRACT({col}, '^10\.([0-9]+)/')
suffix: REGEXP_EXTRACT({col}, '^10\.[0-9]+/(.*)')

JSON Schema

finetype schema technology.code.doi
{
  "$id": "https://noon.sh/schemas/technology.code.doi",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Digital Object Identifier — a persistent identifier for digital content (journal articles, datasets, books). Format: 10.XXXX/suffix where XXXX is a registrant code and suffix is assigned by the registrant.",
  "examples": [
    "10.1038/nature12373",
    "10.1000/xyz123",
    "10.1016/j.cell.2009.01.043",
    "10.48550/arXiv.2301.07041"
  ],
  "pattern": "^10\\.[0-9]{4,9}/[^\\s]+$",
  "title": "DOI",
  "type": "string"
}

Examples

10.1038/nature1237310.1000/xyz12310.1016/j.cell.2009.01.04310.48550/arXiv.2301.07041

Types in technology