解释
Chess Query Language简称CQL,可让用户构造精确的国际象棋查询。查询是对搜索目标的形式化描述,例如某个棋子位于特定格子、一段着法序列、包含将军的局面,或若干条件的组合。CQL用于在对局和研究合集内搜索模式。
基本流程分为两部分:先用CQL写出模式,再对一个PGN文件运行cql程序。PGN指Portable Game Notation,是记录对局的文本格式。CQL会生成另一个文件,其中包含匹配的对局。该语言可以描述棋子、格子和序列,交换双方颜色、镜像棋盘,并使用类似正则表达式的重复规则,说明模式的一部分可以重复多少次。
CQL不是用日常语言写成的问题,不是记录对局的记谱法,本身也不是数据库。用户必须学习它的书写规则,而查询会精确定义什么才算匹配。过于严格的查询可能漏掉等价示例,过于宽泛的查询则可能返回只有表面相似的局面。
用法与背景
当搜索条件取决于国际象棋几何关系或着法顺序,无法用棋手、日期或开局等字段准确描述时,CQL尤其有用。
常见混淆
自然语言搜索
CQL不会解释“查找漂亮的弃子”这类自由文本请求。必须用其语法说明哪些棋子、格子、着法或关系构成目标模式。
存储格式
CQL描述一次搜索。对局从另一种格式读取并写入另一种格式,通常是PGN。
来源
- 1.CQL: The Chess Query Language, Gady Costeff
