# EIDR

> How OWG carries EIDR Title and Edit IDs on assets, and models registration as a task against the registry.

**Status:** buildable on v0.92 with no schema change. The identifier scopes below are a convention set by this page.

## What EIDR is

EIDR, the Entertainment Identifier Registry, issues the industry's persistent identifiers for film and television. Two levels matter for a production workflow:

- The **Title** (abstraction) ID identifies the work as a whole. Content IDs take the form `10.5240/XXXX-XXXX-XXXX-XXXX-XXXX-C`, with a trailing check character. See the [EIDR ID format](https://eidr.org/documents/EIDR_ID_Format.pdf).
- The **Edit** ID identifies one version of the work, such as a director's cut, a broadcast cut or a localized edit. See [EIDR's best practices for Edits](https://eidr.org/documents/2016-05-12_Best_Practices_and_Use_Cases_for_EIDR_Edits_v24.pdf).

MovieLabs' [short guide to identifiers](https://movielabs.com/wp-content/uploads/2017/12/A-Short-Guide-to-Identifiers-for-the-Digital-Supply-Chain-Final-12-13-17.pdf) shows how these IDs travel through the digital supply chain, including inside Avails and Media Manifests.

## The hook

EIDR IDs ride in the asset's `identifiers` array, using the [identifier pass-through](/standards-bindings#1-identifier-pass-through) rule.

```json
{
  "id": "edit_fr",
  "type": "video.master",
  "version_relation": "alternative",
  "predecessor": "master_en",
  "identifiers": [
    { "scope": "eidr.title", "id": "10.5240/0000-0000-0000-0000-0000-A" },
    { "scope": "eidr.edit",  "id": "10.5240/0000-0000-0000-0000-2222-C" }
  ]
}
```

| Scope | Holds |
|---|---|
| `eidr.title` | The Title-level ID of the work. Every asset that belongs to the work carries it. |
| `eidr.edit` | The Edit-level ID of the specific version this asset is. |

The IDs above are placeholders in the correct format. They are not registry records.

## How it maps

| EIDR | OWG |
|---|---|
| Title ID | `identifiers[]` entry, scope `eidr.title`, on every asset of the work |
| Edit ID | `identifiers[]` entry, scope `eidr.edit`, on the asset that is that version |
| Edit is a version of a Title | a `version_of` [relationship](/relationships), or `predecessor` with a `version_relation` |
| Registering an Edit | a **task** whose executor is a registration client and whose `ran_on` infrastructure is the registry |
| The registry's response | an asset produced by the registration task |
| Who approved the descriptors | a preceding `review` task with a named participant |

Registration is work, so it gets an executor and an attributed author like any other task. That answers the audit question *who registered this edit, from which master, after whose approval* by traversal.

## Reference workflow

[`eidr-edit-registration.owg.json`](/corpus/eidr-edit-registration.owg.json) — a French edit derives from the English master, a metadata lead approves the descriptors, a service registers the Edit ID against the master's Title ID, and both IDs sit on the asset.

```bash
curl -O https://openworkflowgraph.org/corpus/eidr-edit-registration.owg.json
owg-validate eidr-edit-registration.owg.json --json
```

**What to take from it:**

- The Title ID is copied onto the new edit. It never changes; the Edit ID is what is new.
- The registration task `used` the master and the edit, so the record of what was registered against what is structural, not a separate log.
- Approval comes before registration and is an ordinary `depends_on` edge.

## What stays in EIDR

OWG does not copy EIDR's descriptive record (titles, credits, release data). The registry remains the system of record for that. OWG holds the ID, the fact that it was issued, and the lineage that led to it.

Registering is an external, hard-to-reverse act. Test against EIDR's sandbox registry before pointing a workflow at production.

## Known gaps

- The scopes `eidr.title` and `eidr.edit` are a convention documented on this page. The schema's own list of example scopes does not yet include them.
- Other EIDR levels follow the same pattern with their own scope. None is defined here yet.
- No reference registration client ships with OWG. It is an implementation concern.

See also: [Standards bindings](/standards-bindings), [Assets and versioning](/assets-and-versioning#external-identifiers), [MDDF Avails](/mddf-avails), [IMF](/imf).
