文件
edu-content/schemas/vocab-1.1.md

2.4 KiB

词库统一 Schema(vocab-1.1)

vocab-1.1 在原有 vocab 记录上新增 source.source_id 血缘字段(记录级 license 标注模式原样继承,这是现有设计最好的部分)。每行一条 JSON(JSONL),一条记录 = 一个单词条目。

记录级字段

字段 类型 必填 说明
id string ✅ 全局唯一 {cefr缩写}{考试}-{来源}-{序号4位},如 a2k-vocab-0001
level string ✅ A2/B1
headword string ✅ 词头
pos array ✅ 词性,如 ["det","adj"];无则 []
pos_notes string|null ❌ 词性说明
examples array|null ❌ [{text}]
phrases array|null ❌ 短语
topics array|null ❌ 主题标签
origin string ✅ 来源分类,如 main_list
source object ✅ 溯源 + 血缘(见下)
gloss object ✅ 释义对象(见下)

source 对象(含血缘)

{
  "source_id": "cambridge-official",   // [新增·必填] 指 sources/ 的 source id
  "source_item_id": "a2-key-vocab",    // [新增·可选] 精确到文件
  "file": "assets/vocab/a2-key-vocabulary-list.pdf",
  "url": "https://www.cambridgeenglish.org/Images/506886-a2-key-2020-vocabulary-list.pdf",
  "publisher": "Cambridge English / UCLES",
  "licence": "official-free"           // 记录级 license 标注,原样保留
}

注意:现有 vocab 用 licence(英式)字段名;迁移时保留不改,新增 source_id。licence 取值遵循 ../LICENSES.md 枚举。

gloss 释义对象

{
  "zh": "几个, 少数, 一些",
  "phonetic": "/ə/ 或 /eɪ/",
  "phonetic_source": "..." ,
  "source": "ecdict",
  "licence": "CC-BY-SA-4.0"            // 释义来源 license,记录级标注
}
  • zh:中文释义;phonetic:音标;phonetic_source:音标来源;source:释义来源(如 ecdict);licence:释义 license。
  • 若释义为 LLM 生成,source: "llm"、licence: "llm-generated"。

机器校验

../schemas/vocab-1.1.schema.json 为该格式 JSON Schema。tools/lint_structured.py 校验:每条 source.source_id 必须存在于 sources/;词条的对外 license = 词表 source 与 gloss.licence 的最严格者。

词集

word-sets.json:数字/星期/月份等主题词集,引用 vocab 的 id。与 vocab JSONL 同目录。