smithery.ai

pv-mapping

Map permissible values in LinkML enums to ontology terms. Use this skill when: (1) Adding or updating ontology mappings (meaning: field) for enum permissible values, (2) Fixing validation errors from linkml-term-validator, (3) User asks to map enums to ontology terms or fix CURIE mappings. This skill covers OAK/runoak lookup, CURIE verification, and validation workflows.

First seen Apr 2, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,568 B
  • docs SUMMARY.md 391 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Permissible Value Ontology Mapping

Core Rules

  1. Never change PERMISSIBLEVALUE names - Keep uppercase names like NUCLEICACID
  2. Use title: for ontology label - Match the ontology term's label
  3. Use meaning: for CURIE - Always verify via runoak before adding
  4. Never guess CURIEs - Wrong mappings are worse than no mappings

Workflow

1. Look up term via runoak

# Search for terms
runoak -i sqlite:obo:ncit search "nucleic acid"

# Verify a CURIE exists and get its label
runoak -i sqlite:obo:ncit info NCIT:C706

2. Add mapping

NUCLEIC_ACID:
  title: Nucleic Acids          # matches ontology term label
  description: DNA or RNA sample
  meaning: NCIT:C706            # verified CURIE

Note that either the permissible value key, the title, or one of the aliases should be a (case insensitive) match to the ontology term.

If there is already a canonical meaning field, OR the concept is not a close map, then linkml close/narrow/broad/exact mappings can be used:

NUCLEIC_ACID:
  title: Nucleic Acids          # matches ontology term label
  description: DNA or RNA sample
  meaning: NCIT:C706            # verified CURIE
  close_mappings:
    - SO:0000348.               # label is nucleic_acid
  aliases:
    - nucleic_acid              # to match SO

3. Validate

just validate

Interpreting Validation Errors

Error Type Action
"resolves to [wrong concept]" Fix immediately - CURIE points to wrong term
"label mismatch" Usually OK - add title: to match label if needed, or use an aliases
"Could not retrieve" Check CURIE format or remove if term doesn't exist

Ontology Selection

See [references/ontologies.md](references/ontologies.md) for:

  • Domain-to-ontology mapping (which ontology for which concept type)
  • CURIE format patterns for each ontology
  • Additional runoak commands

When to Remove Mappings

Remove meaning: when:

  • No appropriate ontology term exists
  • CURIE consistently fails validation
  • Mapped term is semantically incorrect or not the same concept