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.
Worked samples
DuckDB 1.5.5 · finetype 0.6.64
| Value | As VARCHAR | registrant | suffix |
|---|---|---|---|
| 10.1038/nature12373 | 10.1038/nature12373 | 1038 | nature12373 |
| 10.1000/xyz123 | 10.1000/xyz123 | 1000 | xyz123 |
| 10.1016/j.cell.2009.01.043 | 10.1016/j.cell.2009.01.043 | 1016 | j.cell.2009.01.043 |
| 10.48550/arXiv.2301.07041 | 10.48550/arXiv.2301.07041 | 48550 | arXiv.2301.07041 |
Shape
^10\.[0-9]{4,9}/[^\s]+$| Value | Length | Shape |
|---|---|---|
| 10.1038/nature12373 | 19 | matches |
| 10.1000/xyz123 | 14 | matches |
| 10.1016/j.cell.2009.01.043 | 26 | matches |
| 10.48550/arXiv.2301.07041 | 25 | matches |
| 10-1038/nature12373 | 19 | rejected: separator swapped |
Background
Origin
The DOI system was initiated by The DOI Foundation in 1998.[1] First applications of the DOI system were launched in 2000.[1] The DOI system has been standardised through ISO as ISO 26324, Digital Object Identifier System.[2] ISO 26324 was approved in November 2010, published in May 2012 and revised in 2022.[2] ISO has appointed The DOI Foundation as the registration authority for ISO 26324.[1] The DOI Foundation uses Handle System technology for the resolution part of the DOI System.[2] The Handle System was developed by CNRI and is administered and maintained by the DONA Foundation.[2]
A DOI is made up of a prefix and a suffix separated by a forward slash.[2] The DOI suffix is a character string of any length chosen by the registrant.[1] Each DOI suffix is required to be unique within the space defined by the prefix that precedes it.[1] A DOI suffix can in some circumstances incorporate an identifier from another system used by the registrant, such as an ISBN or ISSN.[1] In the DOI name 10.1000/182, the prefix is 10.1000 and the suffix is 182.[1][3] In 10.1000/182, the registrant code 1000 identifies the International DOI Foundation itself.[3] The DOI 10.1000/182 points to the DOI Handbook.[1][2]
Use
Current applications of the DOI system include articles published in scholarly journals, scientific data sets and movie/TV production objects.[1] A DOI can still resolve to a dead link if the publisher fails to update the metadata for it when the URL changes.[3]
Crossref's display guidelines say Crossref DOIs should not be preceded by doi: or DOI:.[4] Crossref's March 2017 guidelines dropped dx from the domain name portion of Crossref links.[4] Crossref says DOI links in the older http://dx.doi.org/ form will continue to work indefinitely.[4] ISO 26324 requires that a DOI name displayed on screen or in print be preceded by a lowercase doi: unless the context clearly indicates that a DOI name is implied.[1] The doi: label is not part of the DOI name.[1] The resolver address https://doi.org is not part of the identifier string.[1] The DOI Foundation's IANA registration treats urn:doi:10.1000/456%23789, https://doi.org/10.1000/456%23789, doi:10.1000/456#789 and 10.1000/456#789 as equivalent representations of one DOI name.[1] Expect a DOI column to mix bare names, doi: labels and resolver URLs, and strip every wrapper back to the bare 10.xxxx/suffix form before you compare or join. (Meridian's view)
DOI names are case insensitive with respect to printable ASCII characters.[1] Fold DOIs to one case before deduplicating or joining, and keep the original spelling for display. (Meridian's view)
According to ISO 26324, DOI names may incorporate any printable characters from ISO/IEC 10646.[1] In practice, most DOIs use only printable ASCII characters.[1] DOI registration agencies are permitted to impose additional constraints on available characters, and Crossref and DataCite have done so.[1] URI percent encoding is required for DOI characters that are outside the ASCII printable character set or reserved in the URI syntax.[1] Percent encoding turns the DOI 10.1000/456#789 into the URI https://doi.org/10.1000/456%23789.[1]
Where you'll meet it
All articles submitted to arXiv are automatically assigned DOIs that correspond to their arXiv ID.[5] arXiv's DOI prefix with DataCite is 10.48550.[5] arXiv forms an article's DOI from the prefix https://doi.org/10.48550/ and the arXiv ID with the colon replaced by a period, so arXiv:2202.01037 becomes https://doi.org/10.48550/arXiv.2202.01037.[5] Replacing an arXiv article with a new version does not generate a new DOI.[5]
OpenAlex describes a work's DOI as the canonical external ID for works.[6] A work in OpenAlex can have more than one DOI, such as a preprint DOI and a published DOI.[6] OpenAlex's doi filter accepts both the short form, such as 10.7717/peerj.4375, and the URL form, case-insensitively.[6]
Sources
- [1]Namespace Registration for Digital Object Identifier (DOI)documentation
- [2]What is a DOI?documentation
- [3]Digital object identifiersecondary source
- [4]Display guidelines - Crossrefdocumentation
- [5]Understanding arXiv Assigned DOIs - arXiv infoorganisation
- [6]Attributes – Works | OpenAlex Help Centerorganisation
Detection notes
New in v2. DOI prefix always starts with "10." followed by registrant code (4-9 digits), then "/" and a suffix. Common registrants include 10.1038 (Nature), 10.1016 (Elsevier), 10.1126 (Science), 10.1145 (ACM), 10.48550 (arXiv). Suffix may contain dots, hyphens, slashes.
Use it
$ finetype infer -i "10.1038/nature12373" --mode column
→ technology.code.doi
SELECT ft_infer('10.1038/nature12373');
-- → 'technology.code.doi'CAST({col} AS VARCHAR)Schema
https://meridian.online/schemas/technology.code.doi · Frictionless type string
finetype taxonomy technology.code.doi -o json-schema