一个简单的Python库,用于与SWI-Prologs Pengines交互
项目描述
这是一个模块,用于使Python与Prolog Pengines知识库进行交互。
API
创建一个基本的运行pengine服务器脚本,并使用swipl运行它。
:- use_module(library(http/thread_httpd)). :- use_module(library(http/http_dispatch)). :- use_module(library(pengines)). server(Port) :- http_server(http_dispatch, [port(Port)]). :- server(4242).
初始化一个基本的PengineBuilder
from pengines.Builder import PengineBuilder from pengines.Pengine import Pengine pengine_builder = PengineBuilder(urlserver="http://localhost:4242")
创建pengine查询对象。
pengine = Pengine(builder=pengine_builder) pengine.create()
执行查询 – 注意没有结束句号 – Pengine会像这样执行查询‘ask(member(X, [1,2,3], [])).’
query = "member(X, [1,2,3])" pengine.ask(query) print(pengine.currentQuery.availProofs)
像这样迭代证明
while pengine.currentQuery.hasMore: pengine.doNext(pengine.currentQuery) print(pengine.currentQuery.availProofs)
prologterms库
Python库prologterms旨在使在Python中构建prolog程序和查询项更加容易。
有关如何结合pengines使用prologterms的示例,请参阅
https://pypi.ac.cn/project/prologterms/
from pengines.Builder import PengineBuilder from pengines.Pengine import Pengine from prologterms import TermGenerator, PrologRenderer, Program, Var P = TermGenerator() X = Var('X') Y = Var('Y') Z = Var('Z') R = PrologRenderer() p = Program( P.ancestor(X,Y) <= (P.parent(X,Z), P.ancestor(Z,Y)), P.ancestor(X,Y) <= P.parent(X,Y), P.parent('a','b'), P.parent('b','c'), P.parent('c','d') ) q = P.ancestor(X,Y) factory = PengineBuilder(urlserver="http://localhost:4242", srctext=R.render(p), ask=R.render(q)) pengine = Pengine(builder=factory, debug=True) while pengine.currentQuery.hasMore: pengine.doNext(pengine.currentQuery) for p in pengine.currentQuery.availProofs: print('{} <- {}'.format(p[X.name], p[Y.name]))
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源代码分发
pengines-0.1.8.tar.gz (8.1 kB 查看哈希值)
构建分发
pengines-0.1.8-py3-none-any.whl (9.2 kB 查看哈希值)
关闭
pengines-0.1.8.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5325205eaa538f0c02ec886ff5bfd031949e141d0459479817173ec99a6c9d95 |
|
MD5 | 7c3c73c847763602cfae7a4479be5b85 |
|
BLAKE2b-256 | 74a3fd7e21f2d00d6eb6f6a6e932f6479149ce01265f125b203942cdfcac9089 |
关闭
pengines-0.1.8-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 35ea10b7d2c77757b2a97160298c5d28b4145b00635005647afecdbf5a47763b |
|
MD5 | 0499d3efac6414e6d3259111b48f5060 |
|
BLAKE2b-256 | bcdefab4d98642b805839e7d7779780a1c567db61f1a0f8829686b55e1d265f8 |