eyeprolog

中文文档
1.6.44发布于 2026/11/03MITTypeScriptES Module零依赖构建来源已验证

EyeProlog将事实和规则转化为答案和证明。

中文使用文档
文档目录6 节
  1. 20年的EYE,接下来的20年
  2. 快速启动
  3. 链接
  4. RDF、Prolog和共生知识图
  5. 表演
  6. 发展

EyeProlog

npm version DOI

EyeProlog将便携式ISO Prolog程序转换为答案和可检查的证明。

Read The Art of EyeProlog
点击封面阅读 视觉的艺术。

单个实现引用是 视觉的艺术。 它记录了语言,内置,库,命令行,JavaScript API, 示例、证明、一致性概要文件和实现。

20年的EYE,接下来的20年

欧拉项目始于2001年,并于2006年成为基于prolog的推理器EYE;它在2026年还活着。EYE以一种象征性的方式纪念一只眼睛失明的莱昂哈德·欧拉。视网膜项目始于2021年,并于2026年成为EyeProlog;我们希望在接下来的二十年里保持增长。这种延续让人想起了欧拉,他后来失去了另一只眼睛,而这个项目一直试图通过逻辑、证明和推理看得更远。

快速启动

EyeProlog需要Node.js 18或更新版本:

node --version

如有必要,请通过Node版本管理器或 官方Node.js下载。

运行EyeProlog而不全局安装:

npx --yes eyeprolog
?- member(X, [prolog, logic]).
   X = prolog
;  X = logic.
?- halt.

对于一个持久化命令,使用一个用户自定义的npm前缀:

npm install --global --prefix "$HOME/.local" eyeprolog
export PATH="$HOME/.local/bin:$PATH"
eyeprolog

添加 PATH 导出到shell启动文件。不要使用 sudo npm install; npm的 EACCES指导 还建议使用Node版本管理器或用户拥有的前缀。

非交互式地运行程序:

printf 'human(socrates).\nmortal(X) :- human(X).\n' |
  npx --yes eyeprolog --proof --goal 'mortal(socrates)' -

或者将答案以对话的形式播放出来,让验证检查者作为对手:

printf 'human(socrates).\nmortal(X) :- human(X).\n' |
  npx --yes eyeprolog --dialogue --goal 'mortal(socrates)' -

RDF、Prolog和共生知识图

EyeProlog可以隐藏在RDF知识图之后,而无需发明私有的图表示。 rdf-interchange 将RDF 1.2数据集转换为普通数据集 rdf(Subject, Predicate, Object, Graph) 事实,EyeProlog应用可移植的规则和基础 rdf/4 结果可以转换回RDF。

的检查 共生知识图的例子 使用命名图和RDF 1.2三重术语来区分可信知识、人工智能建议的语句和人工审阅。它的 广大读者的同伴 解释了为什么这是人类/AI/KG共同进化的一个有用的软件模型:RDF提供共享的语义记忆,Prolog提供明确的审议,AI提供新的假设,而人们仍然是意义和判断的参与者。

相同的RDF→Prolog→RDF边界由五个额外的检查场景执行: 跨组织数据共享, 可解释的EV-depot配置, 运营事件响应, 软件供应链漏洞响应,和 科学证据图. 它们一起涵盖了策略决策、可逆配置推理、依赖图诊断、可传递的SBOM公开和明显不一致的证据聚合。

表演

EyeProlog没有单独的挂钟基准测试套件。 npm test在数千个一致性、回归和示例程序中运行的运行时间是粗略的性能指标——在那里显示了真正的减速。 OpenRuleBench 仍然是专门针对Datalog规则引擎配置文件的经过检查的正确性和规模基准。 有关后iso标准和WG17兼容性特性(如数字分隔符)的项目策略,请参见 ISO/WG17兼容性扩展。

发展

git clone https://github.com/eyereasoner/eyeprolog.git
cd eyeprolog
npm install
npm test

npm命令列表故意设置得很小:

  • npm test (或 npm run test):运行发布闸门,包括实时的上游符合性检查(其中包括WG17语法)。
  • npm run neumerkel:重新获取上游neuerkel一致性源,如果跟踪的报告不再与它们匹配,则失败。释放门将漂移报告为警告;这个命令会导致错误,所以它会自己回答“我们还在运行吗?”

使用 npm test -- --offline 用于无网络的本地通行证(这也会跳过实时发现的WG17语法检查,因为它没有脱机快照)。例如,集中检查仍然是直接可用的 node test/run-regression.mjs docs;看到 测试运行. 自动版本挂钩重新构建生成的库和图书文件,运行发布闸门,刷新和执行一致性报告,并推送发布。详细的上游报告维护记录在 一致性指导。

EyeProlog是在 麻省理工学院的许可。

版本与发布记录

eyeprolog 共发布 359 个版本,首次发布于 2026/08/07;过去 12 个月发布了 359 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.6.44latest2026/11/03今天
1.6.432026/11/012 天前
1.6.422026/10/1817 天前
1.6.412026/10/1222 天前
1.6.402026/10/1222 天前
1.6.392026/10/1223 天前

关于 eyeprolog 的常见问题

eyeprolog 是什么?

EyeProlog将事实和规则转化为答案和证明。

如何安装 eyeprolog?

在项目目录运行 npm install eyeprolog,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 eyeprolog,可以用 npx eyeprolog 直接运行。

eyeprolog 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

eyeprolog 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

eyeprolog 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

eyeprolog 可以商用吗?

eyeprolog 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

eyeprolog 还在维护吗?

最新版本 1.6.44 发布于 2026/11/03(今天);至今共发布 359 个版本,其中过去 12 个月发布了 359 个;首次发布于 2026/08/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。