ontology-terms

Query parents, children, definitions, and search results for OBO biomedical ontology terms.

Updated Apr 18, 2026
One-click install
npx skills add https://github.com/ppavlidis/skillz --skill ontology-terms-ppavlidis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ontology-terms
Source: https://github.com/ppavlidis/skillz/tree/main/skills/ontology-terms
Command: npx skills add https://github.com/ppavlidis/skillz --skill ontology-terms-ppavlidis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, pandas, obonet, and includes scripts (resource) components.

What problem does it solve? Ontology lookups vary by source and date — OLS, Gemma, and OntoBee can disagree on which relations are shown and which terms are included, making results hard to reproduce. This Skill standardizes ontology term operations across four sources and stamps every output with provenance (source URL, ontology version, sha256 hashes) so downstream analyses can be reconstructed. ## Core Features & Use Cases - Four operations: immediate parents, immediate children, definition plus synonyms, and free-text search, accepting both compact IDs (GO:0006915) and full OBO URIs. - Four sources with explicit semantics: OLS at EBI (immediate relations, version-pinned), Gemma annotations API (transitive relations, strong search), direct OBO file parsing (audit-grade reproducibility), and OntoBee SPARQL (cross-ontology flexibility). - Provenance-stamped outputs: every TSV ships with a sidecar .meta.json recording source URL, ontology version, and sha256 of both the raw upstream response and the output file. - Use Case: A reviewer asks which GO release was used to claim that apoptotic process (GO:0006915) is a child of a given parent term — point them at the .meta.json with the ontology version and source hash. ## Quick Start Ask the assistant to find the immediate parents of GO:0006915 using the ontology-terms skill, optionally specifying a source such as OLS or Gemma.

Frequently Asked Questions about ontology-terms

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find the immediate parents of a GO term?

Run the parents operation with the term ID, for example: python scripts/ontology.py parents GO:0006915. The default OLS source returns immediate is_a parents only; use --source obo for a version-pinned local OBO file parse.

What is the difference between OLS and Gemma for ontology parents and children?

OLS returns immediate relations only and records an explicit ontology version per call. Gemma returns transitive (propagated) ancestors and descendants, reflecting how Gemma uses hierarchies internally, and does not expose a per-term version.

Can I use full OBO URIs instead of compact term IDs?

Yes, both forms are accepted. Compact IDs like GO:0006915 and full URIs like http://purl.obolibrary.org/obo/GO_0006915 are converted automatically, including non-OBO patterns such as EFO's EBI URIs.

Which biomedical ontologies are supported?

The built-in registry covers OBO Foundry ontologies including GO, MONDO, MP, HP, CL, UBERON, DOID, CHEBI, PR, OBI, PATO, SO, and NCBITAXON, plus EFO via EBI URIs. Unregistered prefixes fall back to the lowercase prefix as the OLS ontology slug.

Why does the Gemma source fail for definition lookups?

Gemma's annotations API does not expose a term-definition endpoint, so the definition operation fails loud with a pointer to use --source ols instead. Gemma remains useful for transitive parents/children and strong free-text search.

When should I use the OBO file source instead of OLS?

Use the OBO source for audit-grade reproducibility or offline work: it downloads the ontology's OBO file, whose data-version header pins the exact release, and the downloaded bytes are sha256-hashed in the metadata. OLS is better for broad coverage and current data.