Persistent Identifiers & Discovery (PIDs, DIDs, GUIDs & Scoped IDs)#
Findability and Discovery are fundamental pillars of the FAIR Principles (F1: (Meta)data are assigned a globally unique and persistent identifier) and CDIF (Cross-Domain Interoperability Framework).
This guide explains how to document primary canonical identifiers ($id, $anchor), web-resolvable persistent identifiers (DOIs, w3ids, DIDs, ARKs, Handles), random synthetic identifiers (GUIDs/UUIDs), and secondary identifiers across administrative uniqueness scopes (global, regional, national, institutional, project, local, other).
1. Primary Identifiers: $id and $anchor#
Standard JSON Schema Draft 2020-12 uses $id to declare the canonical base URI of a schema object. In FAIR Data JSON Schema, $id serves as the primary Persistent Identifier (PID) or Decentralized Identifier (DID) for a dataset or data product.
Persistent Web URIs as $id#
Whenever possible, use a web-resolvable persistent URI as the $id of your root dataset schema:
{
"$schema": "https://highvaluedata.net/fair-data-schema",
"$id": "https://doi.org/10.5281/zenodo.1234567",
"title": "Global Longitudinal Demographic Survey (2024)"
}
Other valid persistent $id schemes include:
w3ids:
https://w3id.org/my-project/dataset/v1ARKs:
https://n2t.net/ark:/12345/fk36108Handles:
https://hdl.handle.net/10222/3456Decentralized Identifiers (DIDs):
did:example:123456789abcdefghi
Fragment Identifiers ($anchor)#
To reference specific tables or individual variables within a larger schema document, use $anchor. Combining $id with $anchor produces a globally resolvable URI fragment PID:
"properties": {
"age": {
"$anchor": "var_age",
"type": "integer",
"fair:label": "Respondent Age"
}
}
The resulting PID for the age variable is https://doi.org/10.5281/zenodo.1234567#var_age.
Benefits of Root Anchors ($anchor at Root Level)#
While $id provides the canonical base URI for the document, defining a root $anchor (e.g., "$anchor": "dataset_demographics_2024") provides key advantages:
Decoupling Opaque PIDs (DOIs) from Readable Slugs: PIDs like DOIs (
https://doi.org/10.5281/zenodo.1234567) are numeric and opaque. A root$anchorcreates a human-readable alias URI (https://doi.org/10.5281/zenodo.1234567#dataset_demographics_2024), making$refstatements in external schemas self-documenting.Bundled Catalogs & Multi-Schema Documents: When multiple dataset schemas are packaged into a single master file (e.g., inside
$defsor an API catalog payload), sub-schemas share the master fileβs$id. The root$anchorallows tools to target and pull out that specific dataset schema from the bundle via$ref.Offline & Local Registry Resolution: If schemas are resolved locally (where
https://doi.org/...cannot be fetched over the network), internal references using#dataset_demographics_2024remain valid within the local schema scope regardless of base URI rewriting.Uniform Identifier Hierarchy: Establishes a consistent naming pattern across the entire data product hierarchy:
Dataset Root:
https://doi.org/10.5281/zenodo.1234567#dataset_demographics_2024Table / Resource:
https://doi.org/10.5281/zenodo.1234567#table_respondentsVariable / Property:
https://doi.org/10.5281/zenodo.1234567#var_age
2. Resolvable PIDs vs. Random GUIDs / UUIDs#
Data stewards and software systems deal with two main classes of identifiers:
Identifier Category |
Examples |
Resolution Mechanism |
Primary Use Case |
|---|---|---|---|
Resolvable PIDs |
DOI, w3id, DID, ARK, Handle |
Direct HTTP GET / DID resolver |
Canonical dataset identification, publishing, external citation |
Random / Synthetic GUIDs |
UUID v4 ( |
Non-resolvable (offline hash) |
Local database keys, transaction logs, immutable payload snapshots |
Resolvable PIDs#
Resolvable PIDs provide active resolution services that redirect human users to dataset landing pages and machine agents (LLMs, FAIR tools, MCP servers) to machine-readable JSON Schema payloads.
Random Identifiers (GUIDs / UUIDs)#
Random synthetic identifiers like RFC 4122 UUID v4 (urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6) guarantee mathematical uniqueness (global scope) without relying on a centralized domain authority. They are ideal for tagging offline data extracts, local primary keys, or runtime message payloads.
3. Secondary Identifiers (fair:identifiers)#
Datasets and variables often carry legacy accession numbers, institutional database keys, or project-level grant numbers. The fair:identifiers annotation keyword follows progressive disclosure: start with simple string shorthands and add richer metadata only when needed.
π’ MVP Shorthand: Simple String List (Option A)#
For 90% of everyday datasets, simply list your identifier strings:
"fair:identifiers": [
"10.5281/zenodo.1234567",
"ICPSR-38492",
"urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
]
π’ MVP Shorthand: Clean 2-Key Objects (Option B)#
Add light category or scope context using clean key aliases (type and scope):
"fair:identifiers": [
{ "identifier": "10.5281/zenodo.1234567", "type": "DOI" },
{ "identifier": "ICPSR-38492", "type": "Accession", "scope": "institutional" },
{ "identifier": "GRANT-2024-EU-8842", "type": "Custom", "scope": "project" }
]
π΅ Advanced Stewardship: Extended Objects (Optional)#
When institutional data stewards require active resolution links, formal scheme references, or historical notes, expand to full objects:
"fair:identifiers": [
{
"identifier": "10.5281/zenodo.1234567",
"identifierType": "DOI",
"identifierTypeRef": "https://highvaluedata.net/fair-data-schema/cv/identifier-types-v1#DOI",
"uniquenessScope": "global",
"scheme": "DataCite",
"isResolvable": true,
"resolverUrl": "https://doi.org/",
"description": "Canonical DOI published on Zenodo."
}
]
Uniqueness Scopes#
The uniquenessScope property specifies the administrative or spatial scope within which the identifier is guaranteed unique:
global: Globally unique across all systems worldwide (DOIs, w3ids, DIDs, UUIDs).regional: Unique within a supranational geopolitical region (e.g. Eurostat series keys, EU NUTS codes).national: Unique within a national statistical agency or country (e.g. US Census ID, INSEE commune code).subnational: Unique within a subnational jurisdiction, state, province, canton, city, municipality, or district (e.g. US State FIPS code, city parcel ID).institutional: Unique within a specific university, data bank, or repository (e.g. ICPSR study number, Dataverse accession).project: Unique within a research project or grant (e.g.PROJ-2024-VAR01).local: Unique only within a single table, database schema, or runtime instance (e.g. primary key integer).other: Custom or unlisted administrative uniqueness scope.
Controlled vocabulary reference: Identifier Scopes CV. Controlled vocabulary reference: Identifier Types CV.
Primer on Identifiers#
Understanding the core properties, trade-offs, and ecosystem tooling of digital identifiers helps data stewards and software engineers choose the right identifier strategy for datasets, tables, and variables.
π 1. Persistent Identifiers (PIDs)#
Concept: A long-lasting, stable digital reference to a resource that remains constant even if the hosting institution, web server URL, or backend database changes over time.
How it Works: PIDs rely on institutional commitment and central resolution infrastructure (e.g. DataCite, Crossref, ORCID, ROR) to update target URLs behind the scenes without breaking citations.
Key Standards & Schemes: Digital Object Identifiers (
DOI), Archival Resource Keys (ARK), Handles (Handle), Permanent Web URLs (w3id).Primary Benefits: Ensures long-term research reproducibility, FAIR Findability (F1), and citation integrity across decades.
Drawbacks & Challenges: Some persistent identifiers may involve registration and fees (e.g. formal DataCite or Crossref memberships). All PIDs require ongoing commitment to keep target redirection URLs updated.
Common Tools & Services:
Free / Open Access / Self-Hosted: Zenodo, Figshare, Harvard Dataverse, ORCID, ROR Registry,
w3id.org, N2T.net (ARK resolver), self-hosted PURLs/ARKs.Fee-Based / Institutional Membership Registrars: DataCite, Crossref, EZID (requires institutional subscription/account for direct minting).
π 2. Resolvable Identifiers#
Concept: An identifier that can be actively dereferenced over a network protocol (HTTP/HTTPS, DNS, or DID resolution protocol) to retrieve metadata, documentation, or payload data.
How it Works: When a human browser or machine agent (LLM, MCP server, API tool) sends an HTTP GET request (or content negotiation header
Accept: application/schema+json), the resolver returns machine-actionable metadata.Key Standards & Schemes: Web PIDs (
https://doi.org/...,https://w3id.org/...), HTTP URIs, resolvable DIDs (did:web:...).Primary Benefits: Enables automated machine-to-machine discovery, API tool calling, and programmatic FAIR data access without human intervention.
Drawbacks & Challenges: Subject to network outages, resolver server downtime, or link rot if web domain registrations expire or HTTP redirection rules break.
Common Tools & Services:
w3id.org(community redirector), Handle.net, DOI.org,purl.org, cURL / HTTP client libraries with content negotiation support (httpx,fetch).
π 3. Decentralized Identifiers (DIDs)#
Concept: A W3C standard for globally unique, self-sovereign digital identifiers that operate without relying on a centralized registration authority, DNS provider, or single database operator.
How it Works: DIDs use public-key cryptography, distributed ledgers, or peer-to-peer networks to cryptographically verify data authenticity, origin, and ownership.
Key Standards & Schemes: W3C DID Specification (
did:key:...,did:ion:...,did:web:...).Primary Benefits: Enables tamper-proof, cryptographically verifiable data products across decentralized ecosystems and multi-party research networks.
Drawbacks & Challenges: Higher technical complexity, evolving standards across different DID methods (
did:keyvsdid:webvsdid:ion), and potential blockchain gas fees or indexer latency depending on the underlying DID method.Common Tools & Services: W3C Universal Resolver (
resolver.identity.foundation), Veramo Framework, ION / Sidetree, Spruce ID,did-cli, DIF (Decentralized Identity Foundation) SDKs.
π² 4. Random / Synthetic Identifiers (GUIDs & UUIDs)#
Concept: Mathematically generated, non-semantic strings created algorithmically without central coordination, designed to guarantee collision prevention.
How it Works: Uses 128-bit pseudo-random generators (e.g. RFC 4122 UUID v4) to ensure that the probability of generating identical strings across different systems worldwide is effectively zero.
Key Standards & Schemes: Universally Unique Identifiers (
UUIDv4), Globally Unique Identifiers (GUID).Primary Benefits: Fast, offline generation for internal primary keys, payload hashes, or message transaction logs without needing web domain setup or registrar fees.
Drawbacks & Challenges: Typically non-resolvable over HTTP nativelyβa raw UUID (
f81d4fae-7dec-11d0-a765-00a0c91e6bf6) cannot be pasted into a browser to view metadata unless wrapped in a resolver URL. Opaque and non-semantic (contains no human title or domain context).Common Tools & Services:
uuidgenCLI tool, Pythonuuidmodule, JavaScriptcrypto.randomUUID(), PostgreSQLgen_random_uuid(), Rustuuidcrate.
CDIF Metadata Publication, Signposting & RDA PID Kernel Alignment#
The Cross-Domain Interoperability Framework (CDIF) Handbook on Publishing Metadata defines mechanisms for making digital objects discoverable by search engines, machine crawlers, and autonomous agents across domains.
π 1. Signposting & FAIR Digital Object (FDO) Discovery (IETF RFC 8288)#
CDIF recommends Signpostingβusing typed HTTP web links (IETF RFC 8288) and IANA-registered link relation typesβto allow software agents to discover a resourceβs metadata when resolving its PID URI ($id).
When hosting or serving FAIR Data JSON Schemas over HTTP, web servers and API endpoints should return typed Signposting link headers:
HTTP/1.1 200 OK
Content-Type: application/schema+json
Link: <https://doi.org/10.5281/zenodo.1234567>; rel="cite-as",
<https://highvaluedata.net/fair-data-schema/dev/schema.json>; rel="describedby"; type="application/schema+json",
<https://spdx.org/licenses/CC-BY-4.0>; rel="license",
<https://ror.org/007qwym43>; rel="author"
In human-readable landing pages, Signposting links can also be embedded directly in HTML <head> tags:
<link rel="cite-as" href="https://doi.org/10.5281/zenodo.1234567" />
<link rel="describedby" href="https://example.org/dataset-schema.json" type="application/schema+json" />
<link rel="license" href="https://spdx.org/licenses/CC-BY-4.0" />
π 2. RDA PID Kernel & FAIR Digital Object (FDOF) Attribute Mapping#
The Research Data Alliance (RDA) Recommendation on PID Kernel Information and the FAIR Digital Object Framework (FDOF) specify a minimal metadata record returned when resolving a PID. The table below illustrates how FAIR Data JSON Schema keywords map to RDA PID Kernel attributes and CDIF schema.org recommendations:
RDA PID Kernel Attribute |
CDIF schema.org Element |
FAIR Data JSON Schema Keyword |
Mapping & Implementation Notes |
|---|---|---|---|
FDO Canonical PID |
|
|
Primary web-resolvable PID / base URI ( |
FDO Secondary PIDs |
|
|
List of secondary, institutional accessions, or legacy database keys. |
FDO Resource Type |
|
|
Object role ( |
FDO Creator / Agent |
|
|
Agent responsible for creating the object / registering the PID. |
FDO Responsible Org |
|
|
Responsible organization holding custody (supports ROR URIs). |
Rights & License |
|
|
SPDX license URI or license terms string. |
Bit Checksum / Integrity |
|
|
Hash digest (e.g. SHA-256) verifying payload bit-sequence integrity. |
Persistency Policy |
|
|
Maintenance intentions and archiving policies. |