improved

2022-12-01 Organization status changes

After a 6-month period of planning, community input and implementation, we've released changes to the API, UI and data dump in order to support cases where an organization has ceased to operate, merged with another organization, was added to ROR in error. Read the rest of this post for complete details!

These changes were developed in consultation with the ROR community; a draft proposal was open for public comment 15 Jun-15 Jul 2022 and a "final" proposal was shared in Aug 2022. The specifications for these changes were based on the final proposal.

These changes are non-breaking and are compatible with the current ROR schema.

What changed?

Record schema

New values allowed in status field:

  • inactive: Organization no longer operates as described in its ROR record. For example, it has split into multiple organizations, merged with 1 or more organizations or has otherwise ceased to operate.
  • withdrawn: Organization whose ROR record was created in error. For example, the organization already existed in ROR under a different name or the organization is not in scope for ROR and should not have been added.

New values allowed in relationships.type field:

  • Successor: An active organization that continues the work of a given organization after it has become inactive
  • Predecessor: An inactive organization that previously carried out the work of a given organization

Note: Unlike Parent/Child relationships in ROR, Successor/Predecessor relationships are not always added in pairs. In other works, each Successor relationship does not necessarily have a corresponding Predecessor relationship.

See ROR data structure for more information about status and relationships.

API

  • Returns active records only by default; use parameter ?all_status to return all records. ?all_status=true and ?all_status=false are also supported. This is true for listing organizations using /organizations, querying using either ?query or ?query.advanced and matching affiliation strings using ?affiliation.
  • When retrieving a record by its ROR ID, the record will be returned regardless of its status and whether ?all_status or ?filter parameters are present.
  • New filter parameter value status is available, ex ?filter=status:inactive. If ?filter=status: is used, ?all_status parameter is ignored.
  • New status and relationship type values are available in fielded searches using query.advanced, ex ?query.advanced=status:inactive. If a fielded search includes status field, ?all_status parameter is ignored.
  • New aggregation statuses in meta section of responses

Data dump

  • Data dump files include all records with all statuses. No changes, except that some records contain the new values above in status and relationships.type fields. The first data dump file with new status and relationship type values is https://doi.org/10.5281/zenodo.7387951.

Search UI

  • List views return active records only by default
  • Results can be filtered by status
  • Query for a specific ROR ID will return matching result regardless of status

Data release v1.15

Additionally, we’ve just published data release v1.15, which is the first data release that includes records with the new status and relationship type values above. Release v1.15 includes open IDs and metadata for 103,047 organizations (102,935 active, 103 inactive, 9 withdrawn). Both the API and data dump have been updated. The latest data dump is available at https://doi.org/10.5281/zenodo.7387951. This release includes updated records listed in the v1.15 data release notes.

Example records

Inactive

Withdrawn

Example API requests

List active organizations only (no change from existing request)

curl https://api.ror.org/organizations

Note: Request above returns same results as ?filter=status:active and ?query.advanced=status:active

List organizations with any status

curl https://api.ror.org/organizations?all_status

Query active organizations only (no change from existing request)

curl https://api.ror.org/organizations?query=university

Query organizations with any status

curl https://api.ror.org/organizations?query=university&all_status

Match affiliation strings to active organizations only (no change from existing request)

curl https://api.ror.org/organizations?affiliation=Laboratory+of+Hydrology+and+Geochemistry

Match affiliation strings to organizations with any status

curl https://api.ror.org/organizations?affiliation=Laboratory+of+Hydrology+and+Geochemistry?all_status

Filter by status

curl https://api.ror.org/organizations?filter=status:inactive

Can be repeated, for example to retrieve organizations with a status of inactive OR withdrawn

curl https://api.ror.org/organizations?filter=status:inactive,status:withdrawn

Can be combined with other filters (see list of available filters and values)

curl https://api.ror.org/organizations?filter=status:inactive,status:withdrawn,country.country_code:us

Can be combined with ?query or ?query.advanced searches.
Note: Filters cannot be used with ?affiliation searches.

curl 'https://api.ror.org/organizations?query=International+Union&filter=status:inactive,status:withdrawn'

Use new status/relationship type values in fielded searches

Note: if a fielded search includes status field, ?all_status is not needed in order to return records with statuses other than active.

curl 'https://api.ror.org/organizations?query.advanced=status:inactive+AND+addresses.city:Yerevan'
curl 'https://api.ror.org/organizations?query.advanced=status:inactive+AND+relationships.type:Successor'

The API documentation has also been updated to reflect the above changes.