conventions.md 3.6 KB

通用约定

本文件的规则对本插件的所有 skill 一律有效(研究、写入,以及以后加的任何流程)。 单个 skill 只写自己流程特有的部分,共同的规矩都在这里——改一处,全部生效。

坐标

WikiPali 的最小可引用单位是 book:paragraph,例如 216:35。句子在段内再细分 word_startword_end。完整定位一条内容需要三样:

book : paragraph  +  word_start-word_end  +  channel_uid

channel译本/版本的载体:巴利原文、缅文逐词解析、各家汉译,都是同一坐标下 的不同 channel。所以"取原文"和"取某语言译文"是同一个操作换 channel。

读端与写端共用这一套坐标——检索到的位置,就是能写入的位置。

引用格式

临时格式,正式规范待定(见 docs/wikipali-research-agent-design.md §3.4)。 规范给出后只改本节,所有 skill 自动跟上。

Cūḷavaggapāḷi, Pārivāsikakkhandhaka (VN 216:35)          ← 本文
Samantapāsādikā, Pārivāsikavattakathā (SP-aṭṭ 141:63)     ← 义注,已标层次
Nissaya(缅文,channel: nissaya)(216:35)                  ← 译文,标明语言与来源
AI-汉译-Nissaya(**AI 生成**,deepseek-v3)(216:35)         ← 机器译文必须标注

书名与章节路径直接取检索结果的 paliTitlepath 字段,不要自己拼

文献层次必须标明

mūla(本文)、aṭṭhakathā(义注)、ṭīkā(复注)是不同层次的权威。层次信息来自 dist 输出里的 tags。

把义注的解释当成经律本身的说法是学术错误,不是措辞问题。 引用时必须让读者看出 这句话出自哪一层。

译文来源的判定

引用译文前必须判断人译还是机译。两个信号,任一命中就按机器译文标注

  1. 作者是 AI 模型——get 返回里的作者若是模型而非人类用户,该译文确定是机器 生成的,标注时连模型名一起写;
  2. channel 名字含 "AI" 等字样——库里存在人工用自己账号上传的机器译文(如 Nissaya的AI翻译Norbu AI Translations),此时信号 1 不成立。

两个都不命中时不要主动断言"这是人译"——只如实标出 channel 名与作者。

空结果要诚实

区分三件事,对用户的下一步完全不同:

现象 含义
检索 0 条 多半是词形没展开(见下),不是"没有材料"
某坐标取不到某 channel 的内容 该译本在此处没有文本。如实说,不要拿相邻段落或别的译本凑
请求报错 工具或服务的问题,不是语料的问题

检索前必须展开词形

语料索引的是变格形parivāsaṃ / parivāso / …),不是词典形(parivāsa)。 拿词典形直接检索会返回 0 条且不报错——看起来像"搜过了,没有"。

所以任何检索都必须先 wikipali forms <词>(或给 search --lemma)。

站点

线上四个地址(www/next × .org/.cc)共享同一个数据库和密钥,凭据通用。 www 是稳定版、next 是最新版代码,不是不同的数据环境。较新的端点在稳定版上 返回 404,意思是"该站点代码版本还没到",不是"资源不存在"。

wikipali endpoint 查看与切换,--api 只影响单次调用。

凭据

~/.wikipali/credentials.json(0600)。任何 skill 都不得打印 token 全文,也不得 cat 这个文件。 密码只由 wikipali-login 接触,且必须由用户本人在真正的终端里跑。