<!-- capability_id: cap.xinhua-dictionary.xinhua-idiom-source-lookup | revision: 1 | status: active -->
成语出处反查(xinhua-idiom-source-lookup)
R — 原文(数据实态)
> 出处结构:"唐·孟郊《送崔爽之湖南》定知一日帆,使得千里风。"(【26212】一帆风顺)
> 朝代正则命中:清 2571 / 明 2282 / 宋 1972 / 唐 1560 / 元 1245 / 汉 851 / 先秦 64。
> 典籍 top5:红楼梦 411 / 三国演义 209 / 儿女英雄传 175 / 西游记 171 / 水浒传 167。
(来源:成语册 derivation 字段全量聚合,30,895 条)
I — 自述
本能力做反方向查询:用户给朝代或典籍,返回该来源下的成语清单。数据底座同样是成语册,但对 derivation 字段做模式聚合而非单条匹配:
- 两个聚合维度:①朝代——
^朝代词·取最左匹配、长词优先(避免"南朝·宋"判成"宋");②典籍——取第一个《…》去掉·篇名后缀。正查(成语→朝代)与反查(朝代→成语)共用同一字段。 - 必须带覆盖率标注:derivation 为空/无 6,850 条(22.2%)、明示朝代仅 12,645 条(40.9%)——反查结果只能声称"数据源中出处标注为 X 的成语",不能声称"所有出自 X 的成语"。
- 不要做推测性断代:出处未署朝代的 18,250 条,不对《后汉书》《晋书》这类书名做朝代推断——那是编辑判断,会引入错误;用户想知道朝代时指去看典籍即可。
A1 — 数据中的实例
- "出自《红楼梦》的成语":聚合得 411 条清单(含"查无实据"这类)。
- "清代成语":正则命中 2,571 条;必须同时说明另有大量出处未署朝代的条目未计入。
- "半部论语治天下":出处"宋·罗大经《鹤林玉露》卷七…"——朝代与典籍可同时命中。
A2 — 未来触发
场景:①"出自《论语》的成语有哪些";②"清代/先秦的成语";③"有哪些成语出自《史记》";④文学/文化知识问答与出题。
语言信号:出自、来源、朝代、哪本书、有哪些成语(idioms from … / idioms originated in dynasty X)。
与相邻能力的区分:查单个成语的完整档案 → xinhua-idiom-lookup(正向);本能力是"来源→清单"的反向聚合。
E — 可执行步骤
- 定位数据:
<skill目录>/data/idiom.json的 derivation 字段。 - 识别查询方向:给典籍名 → 按
《…》包含匹配(去篇名后缀);给朝代 → 按^朝代词·最左长词优先匹配。 - 聚合输出:成语 + 拼音 + 释义首句的清单;量大时先给计数与前 20 条,声明"共 N 条,可展开"。
- 覆盖率标注(硬性):输出必须附一句"数据源中 22.2% 成语出处未标注,结果不含这部分",防止用户当成完备清单。
- 判停:典籍/朝代命中 0 条 → 检查是否别名(《石头记》→红楼梦需人工映射)→ 仍无则明说"数据源出处字段中无该来源"。
B — 边界
- 结果是"出处字段标注的",不是语言事实上的完备集——引用时说"本数据集收录的"。
- 朝代词表需要长词优先(先秦/南朝宋/北魏…),直接取首字会把"南朝·宋"算进"宋"。
- 释义内也会出现《书名》(p07 边界),不能见《》就当出处切分。
- 出处大量摘句不完整(引号右括号丢失 25,831 条),引用原文时按原样并注明体例。
- 本数据是社区整理集合,出处条目的准确性未经学术校勘,权威研究场景须核对原典。