From CORDIS PICs to ROR identifiers
EU-funded research projects identify their participants by a 9-digit Participant Identification Code, or PIC. Academic outputs cite organisations by the persistent identifiers in the Research Organization Registry (ROR). This pipeline maps PICs to RORs, so any tool that knows a project's PIC can look up the canonical ROR-backed organisation. Click any item below for more.
Sources
CORDIS
The European Commission's CORDIS portal publishes XML dumps of EU-funded research projects. Each project record lists its participating organisations identified by PIC. The pipeline reads three archives covering the major framework programmes: Horizon Europe, Horizon 2020, and FP7. CORDIS is the source of the participation records the pipeline aims to map.
OpenAIRE Graph · OpenOrgs
OpenAIRE's organisation graph sits on top of OpenOrgs, the deduplicated registry that consolidates organisations across funder portals (CORDIS, NIH, NSF, and so on) and other sources. Each OpenOrgs record carries a stable identifier alongside many external IDs (PIC, ROR, GRID, ISNI, Wikidata, Crossref Funder), making it the single richest source of evidence for cross-walking PIC to ROR. When a record carries both a PIC and a ROR, the linkage can be taken directly. The wider OpenAIRE Graph wraps OpenOrgs in research-output context (publications, datasets, software) the pipeline doesn't currently use.
ROR
The Research Organization Registry is the open registry for research organisations. Each entry has a persistent ROR identifier alongside name aliases, websites, country, and external IDs. ROR is the destination format every mapping points at.
Zenodo communities
Zenodo communities are curated collections of research records, often organised by funded project. Some EU-project communities maintain organisation metadata for their participants, recording PIC and ROR side by side. The pipeline uses this as supporting evidence when other strategies are uncertain.
Match candidates
Six strategies score candidate PIC ↔ ROR pairs. Each strategy emits zero or more candidates per PIC; the resolver in the next stage weighs all of them and picks one ROR.
Direct OpenAIRE link
When an OpenOrgs record carries both a PIC and a ROR, the pipeline takes the linkage directly. OpenOrgs has already done the matching work, so this is the strongest signal available. Most high-confidence resolutions come from this strategy.
External-identifier overlap
OpenOrgs records often carry GRID, ISNI, Wikidata, or Crossref-Funder identifiers alongside a PIC. ROR records carry the same external IDs. When the two sides reference an identical external identifier, the organisations are the same; the pipeline pulls the matching ROR through that shared id.
Website-domain match
ROR records list each organisation's primary domain. CORDIS
participant rows include a website URL. When the two domains match
(e.g. cnrs.fr), it's strong evidence the participant is
the same organisation as the ROR record. Ambiguous domains
(university portals shared across faculties, generic provider
domains) are filtered out.
Exact name + country
The normalised legal name plus country code uniquely identifies many organisations. The pipeline normalises capitalisation, strips legal-form suffixes (SA, GmbH, Ltd), and matches against ROR's name and alias fields. When a single ROR org in the right country matches the normalised CORDIS name, it's a confident match.
Fuzzy name
For names that don't match exactly, the pipeline uses RapidFuzz to score similarity (token-sort, token-set, partial-ratio) within the same country. A high similarity threshold keeps false positives down, but fuzzy matches are still tagged for human review by default. They handle typos, language variants, and abbreviated legal forms that the exact-match strategy misses.
Community-curated evidence
Some Zenodo communities maintain organisation metadata for their EU projects, including PIC and ROR. When a community has explicitly matched a PIC to a ROR, the pipeline counts that as supporting evidence. A single community linkage is weak on its own (one curator's opinion). Multiple independent communities agreeing on the same PIC ↔ ROR is strong.
PIC → ROR mapping … rows
The resolver picks one ROR per PIC and tags it with a confidence level. The tag drives whether downstream tools apply the mapping automatically or hand it to a human reviewer.
high
OpenOrgs already links the PIC to exactly one ROR (most of these), or a community match agrees with another strategy on the same ROR. Applied automatically.
From Direct OpenAIRE link Community + another match
medium
Two strategies pick the same ROR (for example website domain and exact name both point at one ROR), or OpenOrgs has several candidate RORs and another strategy picks one of them. Applied automatically; worth spot-checking when you care about a specific organisation.
From combinations of Website-domain match Exact name + country External-identifier overlap Fuzzy name
review
Only one strategy fired, with nothing else backing it up. The match is plausible but it's a single signal, so it's not applied automatically; held back for a human.
From a single Website-domain match Exact name + country Fuzzy name Community-curated evidence
Automatic mapping
Slim CSV (~830 KB) with one row per PIC, published to Zenodo.
Human curation
Reviewer walks a frequency-ranked queue and writes decisions to a YAML file in this repo. More →
Downstream tools
Research-data platforms (first Zenodo itself, then anyone else) fetch the published Zenodo record and look up PIC → ROR at runtime. Every pipeline run publishes as a new version of the same record, so consumers always see the latest mapping.
Read more
- Manual curation workflow walks through how a reviewer goes through the queue and writes overrides.
- Current numbers shows the current top-N unresolved PICs, a coverage curve, and AI-review statistics.
- Reference docs are the dense schema-and-rules reference for everyone who wants to read the code.