Token导航 LogoToken导航TokenDH.com
研究检索执行命令github未标认证来源可访问许可证需确认审计通过

ontology-mapper本体映射器

Agent Skill

ontology-mapper 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

474

周安装

19

GitHub Stars

31

下载量

154
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ontology-mapper(本体映射器)
来源仓库:https://github.com/heshamfs/materials-simulation-skills
仓库路径:skills/ontology-mapper
安装命令:
npx skills add https://github.com/heshamfs/materials-simulation-skills --skill ontology-mapper
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/heshamfs/materials-simulation-skills --skill ontology-mapper

简介

用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词快速定位候选结果。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装使用。
  • 安装前需确认权限范围、维护状态,避免触发联网或文件读写操作。
  • ontology-mapper 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Ontology Mapper

Goal

Translate real-world materials science descriptions into standardized ontology annotations. Given terms like "FCC copper" or structured data like {"material": "iron", "structure": "BCC", "lattice_a": 2.87}, produce the corresponding ontology classes and properties for any registered ontology.

Requirements

  • Python 3.8+
  • No external dependencies (Python standard library only)
  • Requires ontology-explorer's summary JSON and ontology_registry.json
  • Per-ontology mapping config (<name>_mappings.json) for ontology-specific synonyms and labels

Inputs to Gather

InputDescriptionExample
OntologyOntology name from registrycmso, asmo
Term(s)Natural-language materials concept(s)"unit cell", "FCC,copper,lattice"
Crystal systemOne of the 7 crystal systemscubic, hexagonal
Bravais latticeLattice type (symbol or common name)FCC, cF, BCC
Space groupSpace group number (1-230)225
Lattice parametersa, b, c in angstroms; alpha, beta, gamma in degreesa=3.615
Sample descriptionJSON dict with material properties{"material":"copper","structure":"FCC"}

Decision Guidance

What do you need to map?
├── A concept or term to find its ontology class
│   └── concept_mapper.py --ontology <name> --term "<term>"
├── Crystal structure parameters to ontology terms
│   └── crystal_mapper.py --ontology <name> --bravais <type> --space-group <N> --a <val>
├── A full sample description to ontology annotations
│   └── sample_annotator.py --ontology <name> --sample '<json>'
└── Multiple terms at once
    └── concept_mapper.py --ontology <name> --terms "term1,term2,term3"

Script Outputs (JSON Fields)

ScriptKey Outputs
scripts/concept_mapper.pyresults.matches, results.unmatched, results.suggestions
scripts/crystal_mapper.pyresults.ontology_classes, results.ontology_properties, results.effective_system, results.bravais_lattice, results.validation_warnings
scripts/sample_annotator.pyresults.annotations, results.sample_type, results.material_type, results.unmapped_fields, results.suggested_properties

Workflow

  1. If the user provides natural-language terms, use concept_mapper.py to find matching ontology classes.
  2. If the user describes crystal structure parameters, use crystal_mapper.py to map them and validate constraints.
  3. For a complete sample description, use sample_annotator.py to produce full ontology annotations.
  4. Review any validation warnings (e.g., lattice parameter mismatches for the crystal system).
  5. Check unmapped_fields and suggested_properties for completeness.

Conversational Workflow Example

User: I'm setting up an MD simulation of BCC iron with lattice parameter 2.87 angstroms.
      What CMSO terms should I use?

Agent: Let me map your iron sample to CMSO ontology terms.

[Runs: sample_annotator.py --ontology cmso --sample '{"material":"iron","structure":"BCC","lattice_a":2.87,"space_group":229}' --json]

Your BCC iron simulation maps to these CMSO annotations:

- **Sample**: Atomic Scale Sample (subclass of Computational Sample)
- **Material**: Crystalline Material
- **Unit Cell**: Bravais lattice = "cI" (body-centered cubic)
- **Space Group**: number = 229 (Im-3m)
- **Lattice**: a = 2.87 Å
- **Element**: Fe

Suggested additions:
- Number of atoms in the simulation cell
- Simulation cell vectors and angles

CLI Examples

# Map a single concept
python3 skills/ontology/ontology-mapper/scripts/concept_mapper.py \
  --ontology cmso --term "space group" --json

# Map multiple terms
python3 skills/ontology/ontology-mapper/scripts/concept_mapper.py \
  --ontology cmso --terms "FCC,copper,lattice constant" --json

# Map crystal parameters (with ontology-specific labels)
python3 skills/ontology/ontology-mapper/scripts/crystal_mapper.py \
  --ontology cmso --bravais FCC --space-group 225 --a 3.615 --json

# Map crystal parameters (generic labels, no ontology specified)
python3 skills/ontology/ontology-mapper/scripts/crystal_mapper.py \
  --bravais FCC --space-group 225 --a 3.615 --json

# Annotate a full sample
python3 skills/ontology/ontology-mapper/scripts/sample_annotator.py \
  --ontology cmso \
  --sample '{"material":"copper","structure":"FCC","space_group":225,"lattice_a":3.615}' \
  --json

Adding a New Ontology

To support a new ontology (e.g., ASMO), create a <name>_mappings.json in references/:

{
  "ontology": "asmo",
  "synonyms": { "simulation method": "Simulation Method", ... },
  "property_synonyms": { "timestep": "has timestep", ... },
  "material_type_rules": { "keyword_rules": [...], "default": "Material" },
  "sample_schema": { "sample_class": "Simulation", ... },
  "crystal_output": { "base_classes": [...], "property_map": {...} },
  "annotation_routing": { "unit_cell_indicators": [...], ... }
}

Then add "mappings_file": "asmo_mappings.json" to the ontology's entry in ontology_registry.json. No code changes needed.

Error Handling

ErrorCauseResolution
space_group must be between 1 and 230Invalid space group numberUse a valid space group number
a must be positiveNon-positive lattice parameterProvide positive values in angstroms
Sample must be a non-empty dictEmpty or missing sample dataProvide a valid JSON sample dict
Validation warningsLattice parameters inconsistent with crystal systemCheck that a=b=c for cubic, etc.

Interpretation Guidance

  • Confidence scores: 1.0 = exact match, 0.9 = synonym match, 0.7 = substring match, 0.5 = description match
  • Validation warnings: indicate potential mistakes (e.g., specifying a!=b for cubic). These are warnings, not errors — the mapping still proceeds.
  • Unmapped fields: input keys that the annotator doesn't recognize. These may need manual mapping.
  • Suggested properties: additional ontology properties that would make the annotation more complete.

Security

Input Validation

  • --ontology is validated against registered ontology names in ontology_registry.json (fixed allowlist)
  • --term and --terms are length-limited and used only for substring matching against pre-processed synonym tables (never interpolated into code)
  • --bravais is validated against a fixed set of recognized lattice type symbols
  • --space-group is validated as an integer between 1 and 230
  • Lattice parameters (--a, --b, --c, --alpha, --beta, --gamma) are validated as finite positive numbers
  • --sample JSON is parsed with json.loads() and validated as a non-empty dict; keys and values are type-checked

File Access

  • Scripts read pre-processed JSON files from the references/ directory: ontology_registry.json, *_mappings.json, *_summary.json, crystal_systems.json, element_data.json (all read-only)
  • No scripts write to the filesystem; all output goes to stdout
  • No network access is required

Tool Restrictions

  • Read: Used to inspect script source, reference files, and ontology data
  • Grep: Used to search reference files for mapping patterns or ontology terms
  • Glob: Used to locate reference files and ontology data
  • Notably, this skill has no Bash or Write access, giving it the lowest attack surface of all skills

Safety Measures

  • No eval(), exec(), or dynamic code generation
  • No subprocess calls of any kind; all logic runs within Python scripts invoked by the agent
  • No file writes; the skill is purely read-only and analytical
  • Minimal tool surface (Read, Grep, Glob only) means the agent cannot execute arbitrary commands or modify the filesystem

Limitations

  • Concept mapping uses string matching and a per-ontology synonym table; it does not understand arbitrary natural language
  • Crystal system validation checks basic constraints only (not all crystallographic rules)
  • The element resolver recognizes common element names and symbols but may miss unusual spellings
  • Bravais lattice aliases cover common usage (FCC, BCC, HCP) but not all crystallographic notation variants

References

Version History

DateVersionChanges
2026-02-251.1Refactored for multi-ontology support: externalized CMSO-specific knowledge to config
2026-02-251.0Initial release with CMSO mapping support

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.48%
按下载量换算59

Claude

29.78%
按下载量换算46

Cursor

17.66%
按下载量换算27

Gemini CLI

8.78%
按下载量换算14

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/heshamfs/materials-simulation-skills --skill ontology-mapper 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills