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.
DOI
technology.code.doiDigital 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
Category
code
Casts to
VARCHAR
Scope
Universal
Try it
CLI
$ finetype infer -i "10.1038/nature12373"
→ technology.code.doiDuckDB
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
Expression
registrant: REGEXP_EXTRACT({col}, '^10\.([0-9]+)/')
suffix: REGEXP_EXTRACT({col}, '^10\.[0-9]+/(.*)')JSON Schema
finetype schema technology.code.doi
{
"$id": "https://meridian.online/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",
"x-finetype-broad-type": "VARCHAR",
"x-finetype-transform": "CAST({col} AS VARCHAR)"
}Examples
10.1038/nature1237310.1000/xyz12310.1016/j.cell.2009.01.04310.48550/arXiv.2301.07041