CIFR

Resources

Frequently Asked Questions

Common questions about RAI — the identifier system, resolution, governance, and relationship to DOI.

General

What does RAI stand for?

Research Agent Identifier. It is a persistent, resolvable identifier for callable research computations.

How is RAI different from DOI?

DOI identifies static documents (papers, datasets, reports). RAI identifies executable computations (agents that accept inputs and produce outputs). They are complementary — a paper has a DOI, its code has an RAI. The RAI descriptor includes the paper's DOI for cross-linking.

Why not just use DOI for code?

DOI was designed for static objects. While you can assign a DOI to a software release (via Zenodo/DataCite), a DOI doesn't express that the object is callable, what inputs it accepts, what outputs it produces, or how to invoke it. RAI's descriptor schema is purpose-built for executable research artifacts.

Why not use Software Heritage IDs (SWHID)?

SWHID identifies source code snapshots by content hash — it's excellent for archival ("this exact source tree existed"). RAI identifies a callable agent — a built, containerized computation with a declared interface. An agent's source may have a SWHID; its callable form has an RAI. They serve different purposes and can coexist.

Is RAI an ISO standard?

Not yet. RAI is currently a CIFR-governed specification (v0.1). The system is designed to be compatible with ISO 26324 (the DOI standard) and the Handle System architecture, and formal standardization is a goal. The system doesn't need ISO approval to operate — DOI ran for years before ISO standardization.

What does 18 mean?

18 is the RAI foundation namespace, parallel to DOI's 10. The number was chosen to be distinct from DOI's 10 while maintaining structural similarity, signaling that RAI is a related but separate identifier system.

Registration

How do I get an RAI for my code?

Register your code as a CIFR agent with a cifr.yml contract that includes a paper: block. Choose your RAI following the format 18.cifr/YYYY.author.slug and include it in the contract. Once the agent is registered and its canonical run succeeds, the RAI is live.

Does my code need to be associated with a paper?

Yes — RAIs require a paper: block in the contract. This is deliberate: RAIs are citation-grade identifiers, and the paper provides the intellectual provenance. For unpublished methodologies, use the original_unpublished provenance type and a brief description in place of full paper metadata.

Can I change my RAI after minting?

No. An RAI is permanent. You can publish new versions of the agent under the same RAI, but the identifier itself cannot be renamed, reassigned, or deleted. Choose your RAI deliberately — it will outlive your current institution.

Can multiple people register agents for the same paper?

Yes. The original author might register 18.cifr/2016.chanda.resiliency-pds with provenance_type: author_original, and a community member might register 18.cifr/2016.chanda.resiliency-pds/d.kumar.pytorch-reimpl as a reimplementation. Both RAIs resolve independently.

What if I find a bug — do I mint a new RAI?

No. Fix the bug and publish a new version (e.g., 1.0.01.0.1). The RAI stays the same. Only mint a new RAI for genuinely new work — a different paper, a different methodology.

Resolution

What happens when I visit an RAI URL in a browser?

You see an HTML landing page with the agent's identity, paper metadata, trust tier, interface contract, and links to invoke it or view it on CIFR. The page is self-contained — no JavaScript required.

What happens when a machine fetches an RAI URL?

Without an Accept: text/html header, the resolver returns a JSON descriptor containing structured metadata, invocation endpoints, and cross-references. This is the machine-readable equivalent of the landing page.

Can I pin a specific version?

Yes. Append ?version=1.0.0 to the resolution URL. Without a version pin, the resolver returns the latest registered version.

What if the resolver goes down?

CIFR's resolver targets 99.9% uptime. The resolver is backed by a persistent database and standard web infrastructure. If CIFR were to cease operations, the resolver software is open source and the database schema is documented — another organization could take over resolution.

Governance

Who governs RAI?

The Council for Independent Frontier Research (CIFR), a 501(c)(3) nonprofit. CIFR acts as both the Foundation (governing the 18 namespace) and the first Registration Agency (operating 18.cifr).

Can my institution get its own prefix?

Yes. Institutions can apply for a dedicated prefix (e.g., 18.mit, 18.ieee). The applicant must operate or commit to operating a compliant resolver. Contact institutions@cifr.org.in.

Is RAI free?

Yes for individual researchers and academic institutions. Institutional memberships with advanced features are available for organizations that need them. The core identifier system — minting, resolution, citation tracking — is free.

Technical

What is the RAI Descriptor?

The structured metadata record an RAI resolves to. It contains: identity (name, version, history), agent interface (inputs, outputs), paper metadata (title, DOI, authors), trust assessment (tier, image digest), resolution URLs (self, invoke, landing page), and status (visibility, deprecation).

What schema does the descriptor follow?

RAI Descriptor Schema v0.1 (JSON Schema). The schema is published alongside the specification and validated by the resolver.

How does composition work?

An agent can declare depends_on: [18.cifr/YYYY.author.slug] in its contract and bind specific inputs to upstream agent outputs. When the downstream agent runs, CIFR's composition runtime automatically calls the upstream agent and feeds its output to the downstream. The RAI is the stable handle that makes this composition work across versions and institutions.