{% extends "prose.html" %} {% block title %}Related{% endblock %} {% macro render_circle(value, link=None) -%} {% if link %} {{ schema_status_map[value] }} {% else %} {{ schema_status_map[value] }} {% endif %} {% endmacro %} {% macro registry_field_dl(cls, key) -%} {% if is_pydantic_1 %} {% set field = cls.__fields__[key].field_info %}
{{ field.title or key.replace("_", " ").title() }}
{{ field.description }}
{% else %} {% set field = cls.__fields__[key] %}
{{ field.title or key.replace("_", " ").title() }}
{{ field.description }}
{% endif %} {% endmacro %} {% block styles %} {{ super() }} {% endblock %} {% block scripts %} {{ super() }} {% endblock %} {% block content %}

Comparison of Registries

An overview on registries covering biomedical ontologies, controlled vocabularies, and databases.

Data Models

A {{ schema_status_map[True] }} means the field is required. A {{ schema_status_map["present"] }} means it is part of the schema, but not required or incomplete on some entries. A {{ schema_status_map[False] }} means that it is not part of the metadata schema. For lookup services like the OLS, some fields (i.e., Example ID, Default Provider, Alternate Providers) are omitted because inclusion would be redundant.

Data Model Score
The weighted sum of green dots, less valuable yellow dots, and some negatively weighted red dots. Higher is better.
{{ registry_field_dl(registry_schema_cls, "name") }} {{ registry_field_dl(registry_schema_cls, "homepage") }} {{ registry_field_dl(registry_schema_cls, "description") }} {{ registry_field_dl(registry_schema_cls, "example") }} {{ registry_field_dl(registry_schema_cls, "pattern") }} {{ registry_field_dl(registry_schema_cls, "provider") }} {{ registry_field_dl(registry_schema_cls, "alternate_providers") }} {{ registry_field_dl(registry_schema_cls, "synonyms") }} {{ registry_field_dl(registry_schema_cls, "license") }} {{ registry_field_dl(registry_schema_cls, "version") }} {{ registry_field_dl(registry_schema_cls, "contact") }}
{% for registry in registries %} {% endfor %}
Registry Data Model Score Name Homepage Description Example Pattern Provider Alternate Providers Alternate Prefixes License Version Contact
{{ registry.get_short_name() }} {{ registry.availability.score() }} {{ render_circle(registry.availability.name) }} {{ render_circle(registry.availability.homepage) }} {{ render_circle(registry.availability.description) }} {{ render_circle(registry.availability.example) }} {{ render_circle(registry.availability.pattern) }} {{ render_circle(registry.availability.provider) }} {{ render_circle(registry.availability.alternate_providers) }} {{ render_circle(registry.availability.synonyms) }} {{ render_circle(registry.availability.license) }} {{ render_circle(registry.availability.version) }} {{ render_circle(registry.availability.contact) }}

Notes: Several of Wikidata's fields can be accessed indirectly with alternative SPARQL queries. Non-english language registries in the OntoPortal Alliance were not considered.

Capabilities and Qualities

This section provides a systematic evaluation and comparison of the capabilities of each registry.

Quality Score
The sum of the number of green dots across each row.
{{ registry_field_dl(registry_qualities_cls, "structured_data") }} {{ registry_field_dl(registry_qualities_cls, "bulk_data") }} {{ registry_field_dl(registry_qualities_cls, "no_authentication") }} {{ registry_field_dl(registry_qualities_cls, "automatable_download") }}
Permissive License
This field denotes if the registry uses a license that permits reuse and or remixing? Based on the OBO Foundry's FP-001 "openness" principle, this includes Creative Commons CC BY 3.0, CC BY 4.0, and CC Zero. This explicitly does not include resources licensed with share-alike clauses, no derivatives clauses, or ones that are missing license statements entirely.
{{ registry_field_dl(registry_schema_cls, "search") }}
Prefix Provider
This field denotes if the registry provides information about its own prefixes either in the form of a web page or an API endpoint. These can be accessed through a stable URL into which a prefix from the registry can be formatted.
CURIE Resolver
This field denotes if the registry can act as a resolver, i.e., it redirects to an external page about a given biomedical concept or entity based on its CURIE and the registry's internal metadata data about the prefix's associated URI format string.
CURIE Lookup
This field denotes if the registry act as a lookup service, i.e., it gives information about a given biomedical concept or entity based on its CURIE.
{% for registry in registries %} {% endfor %}
Registry Mappings Quality Score Structured Data Bulk Data Requires Authentication Automatable Download Permissive License Prefix Search Prefix Provider CURIE Resolver CURIE Lookup
{{ registry.get_short_name() }} {{ mapping_counts[registry.prefix] }} {{ registry.get_quality_score() }} {{ render_circle(registry.qualities.structured_data) }} {{ render_circle(registry.qualities.bulk_data) }} {{ render_circle(registry.qualities.no_authentication) }} {{ render_circle(registry.qualities.automatable_download) }} {{ render_circle(registry.has_permissive_license) }} {{ render_circle(registry.availability.search) }} {{ render_circle(registry.is_prefix_provider) }} {{ render_circle(registry.is_resolver) }} {{ render_circle(registry.is_lookup) }}

Community and Governance

This section provides a systematic evaluation and comparison of the governance and standard operating procedures for each registry. We generated the following list of objective, measurable metrics:

We have made a survey of a subset of these questions which are presented in the table below, but, first, an explanation of each field is given.

Governance Score
The sum of the following boolean fields and some additional logic. One point is deducted from registries with internal-focused scope.
{{ registry_field_dl(registry_governance_cls, "accepts_external_contributions") }} {{ registry_field_dl(registry_governance_cls, "public_version_controlled_data") }} {{ registry_field_dl(registry_governance_cls, "issue_tracker") }} {{ registry_field_dl(registry_governance_cls, "review_team") }} {{ registry_field_dl(registry_governance_cls, "scope") }} {{ registry_field_dl(registry_governance_cls, "status") }}
{% for registry in registries %} {% endfor %}
Registry Score Accepts External Contributions Public Version-Controlled Data Issue Tracker Review Team Scope Status
{{ registry.get_short_name() }} {{ registry.governance.score() }} {{ render_circle(registry.governance.accepts_external_contributions) }} {{ render_circle(registry.governance.public_version_controlled_data, registry.governance.data_repository) }} {% if registry.governance.issue_tracker %} {% endif %} {{ registry.governance.review_team }} {{ registry.governance.scope }} {{ registry.governance.status }}

Related Software

Conversion between CURIEs and IRIs

The semantic web and ontology communities are bound to the use of IRIs as identifiers and therefore are very interested in the interconversion between compact identifiers (i.e., CURIEs) and IRIs. While the Bioregistry provides many tools for one way conversion from CURIEs to IRIs, there are several related packages that help parse CURIEs from IRIs:

{% endblock %}