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 technology›code
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