查询DSL[#127]

  • query/run*:声明要返回的逻辑变量并收集全部解。
  • fresh:引入只在当前目标内可见的存在量词变量。
  • conde:析取,列出多个可接受的目标分支。
  • ==:统一两个项;=/=约束两项不相等。
  • fail/succeed:失败与成功的空目标,用作条件选择。

目标顺序会影响效率:先把变量限定到可索引的类别,再调用nodeo,可以避免枚举全站节点。