How MEF Linking Works

MEF (Multilingual Entity File) merges authority records from multiple national library sources into a single unified record per entity. The linking strategy differs by entity type — agents use VIAF as a central hub, while concepts and places rely on shared identifier codes embedded directly in the source records.

Agents

Persons · Organisations

Agent records from GND (Deutsche Nationalbibliothek), IdRef (Agence bibliographique de l’enseignement supérieur), and RERO (Réseau des bibliothèques de Suisse occidentale) are linked through VIAF (Virtual International Authority File) — an international hub that cross-references authority files from dozens of national libraries.

Each source record carries a VIAF source code inside its identifiedBy list. VIAF groups records from different sources that refer to the same person or organisation under a shared cluster. MEF harvests those VIAF clusters and uses the shared viaf_pid to merge the source records into one unified MEF record.

SourcesGND(opens in a new window)IdRef(opens in a new window)RERO
Linking hubVIAF(opens in a new window)
MEF link keyviaf_pid
VIAF source codesDNB (GND) · FRBNF (IdRef) · RERO (RERO)
Browse agents
viaf_pidGNDIdRefREROVIAFlinking hubMEFsourcesresult
Source records connect to VIAF via their source code in identifiedBy. VIAF clusters matching records under a shared viaf_pid, which MEF uses to build one unified record.

Concepts

Topics · Subjects · Genres

Concept records from GND and IdRef are linked through a shared BNF identifier (Bibliothèque nationale de France). There is no external hub — the link key is embedded directly in the source records.

IdRef concept records carry a FRBNF* number in their identifiedBy list (type bf:Nbn); a heading that absorbed several BNF records keeps all of their numbers. GND concept records carry the same FRBNF* number inside their exactMatch entries. If no exactMatch entry contains a BNF identifier, MEF falls back to closeMatch. Whichever is used, all its entries must carry the same BNF number: when they carry different ones, the GND record is not linked, to avoid ambiguous links. MEF compares only the eight digits of the numbers (a trailing check character is ignored) to find and merge matching records. A BNF number carried by several records of a source links none of them, unless a single GND record carries it in an exactMatch entry.

RERO concept records are also included in MEF but do not carry a cross-source identifier, so they are not directly linked to GND or IdRef records.

SourcesGND(opens in a new window)IdRef(opens in a new window)RERO(RERO not cross-linked)
Linking methodBNF association identifier
Link keyFRBNF* number
IdRef fieldidentifiedBy[type="bf:Nbn"].value
all the numbers, when there are several
GND fieldexactMatch[].identifiedBy[type="bf:Nbn"].value
fallback: closeMatch[]; no link when the entries carry different numbers
Browse concepts
FRBNF* in identifiedBy[BNF] FRBNF* in exactMatch / closeMatch[BNF] IdRefGNDMEFsourcesresult
IdRef and GND each embed the same FRBNF* BNF number in different fields. GND uses exactMatch entries, falling back to closeMatch; entries carrying different numbers give no link. MEF matches those codes across sources to link the records.

Places

Geographic locations

Place records from GND and IdRef are linked through the GND PID. RERO does not publish place authority data, so there is no RERO source for places.

GND place records serve as the anchor: their own pid is the link key. IdRef place records embed the corresponding GND PID (prefixed with (DE-101)) inside their identifiedBy list (source GND, type bf:Nbn). MEF strips the prefix and matches the bare PID to find the corresponding GND record. An IdRef record stating several different GND PIDs is not linked, nor are several IdRef records stating the same GND PID.

SourcesGND(opens in a new window)IdRef(opens in a new window)
Linking methodGND PID cross-reference
GND link keyown pid (anchor)
IdRef link keyidentifiedBy[source="GND", type="bf:Nbn"].value
e.g. (DE-101)1234567
Browse places
(DE-101)GND_PID in identifiedBy[GND]own pid (anchor)IdRefGNDMEFsourcesresult
GND place records are the anchor. IdRef records carry the matching GND PID (with (DE-101) prefix) in identifiedBy.

Record redirects & lifecycle

How superseded records are tracked

Source authorities regularly merge or deprecate records. MEF tracks these changes through a relation_pid field on the source record embedded in each MEF record. The type depends on the source:

SourceTypeMeaning
GNDredirect_to Old GND record (MARC 682 “Umlenkung”) points to its canonical replacement. The old record has its own MEF entry.
IdRefredirect_from Canonical IdRef record (MARC 035 sudoc) records the old SUDOC PID it replaced. The old PID may have no separate MEF entry.

The latest API endpoint resolves any source PID to the current MEF record:

Agents/api/agents/mef/latest/<pid_type>:<pid>
Concepts/api/concepts/mef/latest/<pid_type>:<pid>
Places/api/places/mef/latest/<pid_type>:<pid>

Example: /api/agents/mef/latest/gnd:069774331 follows the redirect_to chain to return the current MEF record.

redirect_to /latest/gnd:A → follows redirect_to → current MEF GND Aredirect_to: BGND BcanonicalMEFold sourcecanonical sourceresult
GND: old record A carries redirect_to: B and has its own MEF entry. /latest/gnd:A follows the redirect_to chain to reach the canonical MEF record.
reverse lookup /latest/idref:A → reverse lookup → current MEF IdRef Aold SUDOC pidIdRef Bredirect_from: AMEFold SUDOC pidcanonical sourceresult
IdRef: canonical record B carries redirect_from: A. Old SUDOC PID A may have no separate MEF entry. /latest/idref:A finds B by searching for any record where idref.relation_pid.value = A.