AGENT SKILL

ontology-scout

Searches for and evaluates reusable ontological resources. Queries OLS, BioPortal, OBO Foundry, and LOV. Extracts ontology modules via ROBOT. Finds applicable Ontology Design Patterns. Use when looking for existing ontologies to reuse or align with.

适用职业设计师
使用场景视觉设计
License 许可
Apache-2.0
最近更新
2026-11-10
Stars
★ 80
Forks
14

01 前言 Front Matter

name
ontology-scout
description
Searches for and evaluates reusable ontological resources. Queries OLS, BioPortal, OBO Foundry, and LOV. Extracts ontology modules via ROBOT. Finds applicable Ontology Design Patterns. Use when looking for existing ontologies to reuse or align with.

03 SKILL.md 正文

Ontology Scout (Reuse Advisor)

Role Statement

You are responsible for the knowledge acquisition phase — specifically, discovering and evaluating existing ontological resources before building from scratch. You search registries, evaluate candidate ontologies for quality and coverage, recommend reuse strategies, and extract modules via ROBOT. You do NOT create new classes or axioms — that is the work of downstream skills.

When to Activate

  • User wants to find existing ontologies covering their domain
  • User mentions "reuse", "import", "alignment", or "existing ontology"
  • Starting conceptualization (always check what exists first)
  • Pipeline A Step 2 or Pipeline B Step 1

Shared Reference Materials

Read these files from _shared/ before beginning work:

  • _shared/methodology-backbone.md — lifecycle phase context (Phase 2: Knowledge Acquisition)
  • _shared/bfo-categories.md — needed to evaluate BFO alignment of candidates
  • _shared/naming-conventions.md — to assess naming quality of candidates
  • _shared/namespaces.json — standard prefixes for search queries

Core Workflow

Always-Reuse Baseline

Before domain-specific search, assume these foundational ontologies are in-scope unless there is a project-specific reason not to use them:

  • Dublin Core Terms (dcterms): common metadata fields
  • SKOS: concept labeling and lexical organization
  • PROV-O: provenance and derivation modeling
  • FOAF or schema.org: people/organization basics

Document baseline reuse decisions in the reuse report before evaluating domain ontologies.

Step 1: Search Registries

For each candidate term from the pre-glossary, search multiple registries:

# Search via oaklib (OLS backend)
uv run runoak -i ols: search "TERM"

# Search via oaklib (BioPortal backend, if API key configured)
uv run runoak -i bioportal: search "TERM"

# Search OBO Foundry ontologies specifically
uv run runoak -i sqlite:obo:{ontology_id} search "TERM"

Also check specialized repositories when relevant:

  • OMG specifications catalog
  • COLORE repository
  • Schema.org vocabulary docs
  • IBC AgroPortal
  • Google Dataset Search (for ontology-linked datasets)

Step 2: Evaluate Candidates

Score each candidate ontology on nine dimensions:

Criterion Weight How to Assess
Coverage High % of pre-glossary terms found in the ontology
Quality High OBO Dashboard score, label/definition coverage, ROBOT report
License Required Must be open (CC-BY or CC0 preferred)
Community Medium Active maintenance, GitHub activity, publications
BFO Alignment Medium Already aligned to BFO? Uses RO relations?
Syntactic correctness Required robot validate --input candidate.owl
Logical consistency Required robot reason --reasoner ELK --input candidate.owl
Modularization Medium Can modules be imported independently?
Metadata completeness Medium robot report --input candidate.owl + header metadata checks

Even when a candidate is not reusable, keep it as a benchmark reference for coverage and modeling comparison.

Step 3: Reuse Decision

Apply the NeOn reuse decision tree:

Coverage Strategy Tool
>80% of needs Direct Import owl:imports
40-80% Module Extraction robot extract
<40% but has useful terms MIREOT (term borrowing) robot extract --method MIREOT
Good structure, wrong domain ODP Reuse Instantiate design pattern
Related ontology exists SSSOM Mapping Defer to ontology-mapper

CQ Benchmark Probe

Run representative competency-question probes against each short-listed candidate (or extracted module) to test practical fit:

  • Select 3-5 high-priority CQs from requirements.
  • Draft quick probe queries (or adapt existing CQ drafts).
  • Record whether the candidate can answer each probe fully, partially, or not at all.

Step 4: Module Extraction

Extraction Method Trade-offs

Method What It Extracts Best For Watch Out
MIREOT Term + ancestors only Large ontologies (GO, ChEBI) — fast, minimal Loses sibling context and some axioms
STAR All axioms involving the term Small/medium ontologies — most complete Can pull in unexpected classes via axiom references
BOT Term + all ancestors (bottom module) Good middle ground May include more than needed for deep hierarchies
TOP Term + all descendants (top module) Extracting a subtree Large result if term has many descendants

Import management pitfalls:

  • Transitive import chains: Importing one OBO ontology can pull in dozens of transitive imports. Check what you are actually loading.
  • Import freshness: Upstream ontologies release on their own schedule. Pin versions and use a refresh workflow (see curator skill).
  • Circular imports: Occasionally A imports B imports C imports A. This causes reasoner failures. Check for cycles before committing.
  • Stale term files: The *_terms.txt pattern (one IRI per line) breaks silently if a term has been obsoleted upstream. Validate term existence during import refresh.

For recommended imports:

# Create term list file
echo "http://purl.obolibrary.org/obo/GO_0008150" > imports/go_terms.txt
echo "http://purl.obolibrary.org/obo/GO_0003674" >> imports/go_terms.txt

# Extract module (STAR method — most complete)
robot extract --method STAR \
  --input-iri http://purl.obolibrary.org/obo/go.owl \
  --term-file imports/go_terms.txt \
  --output imports/go_import.owl

# Extract module (MIREOT — minimal, just term + parents)
robot extract --method MIREOT \
  --input-iri http://purl.obolibrary.org/obo/go.owl \
  --term-file imports/go_terms.txt \
  --output imports/go_import.owl

Step 5: ODP Search

Search for applicable Ontology Design Patterns:

  • Part-Whole: Modeling mereological relationships
  • N-ary Relation: Relations with >2 participants
  • Value Partition: Quality values as controlled vocabularies
  • Participation: Continuant participation in processes
  • Information Realization: GDC/ICE patterns
  • Role: Social/contextual properties

Document which ODPs apply and how they should be instantiated.

Tool Commands

Registry search

# OLS search with result limit
uv run runoak -i ols: search "musical instrument" -l 20

# Get term details from a specific ontology
uv run runoak -i sqlite:obo:go info GO:0008150

# Get ancestors of a term
uv run runoak -i sqlite:obo:go ancestors GO:0008150

# Check if ontology is in OBO Foundry
uv run runoak -i obo: ontologies

ROBOT extraction

# BOT extraction (bottom module — term + all ancestors)
robot extract --method BOT \
  --input source.owl \
  --term "http://example.org/Term" \
  --output module.owl

# TOP extraction (top module — term + all descendants)
robot extract --method TOP \
  --input source.owl \
  --term "http://example.org/Term" \
  --output module.owl

Quality assessment of candidate

# Syntax validation
robot validate --input candidate.owl

# Logical consistency
robot reason --reasoner ELK --input candidate.owl

# Run ROBOT report on candidate ontology
robot report --input candidate.owl --output candidate-report.tsv

# Check label coverage
uv run runoak -i candidate.owl statistics

# Run representative CQ probes (if available)
robot verify --input candidate.owl --queries ontologies/{name}/tests/candidate-probes/

Outputs

This skill produces:

Artifact Location Format Description
Reuse report ontologies/{name}/docs/reuse-report.md Markdown Scored candidate ontologies with recommendations
Import term lists imports/{source}_terms.txt Text (one IRI per line) Terms to extract from each source
Extracted modules imports/{source}_import.owl OWL/XML ROBOT-extracted modules
ODP recommendations ontologies/{name}/docs/odp-recommendations.md Markdown Applicable design patterns with instantiation guidance

Handoff

Receives from: ontology-requirements — ontologies/{name}/docs/pre-glossary.csv, ontologies/{name}/docs/scope.md

Passes to:

  • ontology-foundational-auditor — reuse report, import term lists, ODP recommendations (the auditor's reuse pass consumes these; the conceptualizer receives only ratified results downstream)
  • ontology-mapper (Pipeline B) — target ontology identifiers, reuse recommendations

Handoff checklist:

  • [ ] Every pre-glossary term has been searched in at least one registry
  • [ ] Reuse report includes scored candidates with clear recommendations
  • [ ] Extracted modules load without errors (robot validate)
  • [ ] ODP recommendations reference specific pattern templates

Anti-Patterns to Avoid

  • Not-invented-here syndrome: Always search before creating new terms. Reuse is preferred over reinvention.
  • Uncritical reuse: Don't import entire large ontologies (e.g., all of GO) when only a handful of terms are needed. Use module extraction.
  • License violations: Never recommend importing ontologies with incompatible licenses.
  • Stale sources: Check that candidate ontologies are actively maintained. An unmaintained ontology is a liability.

Error Handling

Error Likely Cause Recovery
OLS API unreachable Network issue or rate limit Retry with backoff; fall back to local SQLite cache
ROBOT extract fails Invalid IRI or unreachable source Download ontology locally first, then extract
No candidates found Domain is niche or uses non-standard terminology Broaden search terms; try synonyms from pre-glossary
Candidate has no license License not declared in metadata Contact maintainers or choose alternatives

04 同仓库更多 Skills