嵌入式专家系统的小型prolog实现

pyexpert的Python项目详细描述


#pyexpert 0.0.1

这是python3中的一个小型嵌入式prolog解释器,主要用于实现可解释的专家系统。






用法:

``python

prolog_core廑u库

初始化环境
env=prolog_default廑env()

执行查询
ret,vars=prolog廑u驱动程序(env,'?附加(a,b,[x,y])。)
打印(变量)

检查所有剩余的解决方案
,而prolog下一个解决方案(env):
打印(变量)

````

产生一个包含两个
集合元素的新集合。这对于实现某些类型的系统和更高级别的hack非常有用,例如跟踪prolog执行(例如,对于专家系统决策的人类可读叙述),实现
约束等。

例如:

``prolog
?弱(a,w1),弱(b,w1),弱(c,w2),w1=w2。
````


结果是“w1=w2=[a,b,c]`


请参见“弱/叙述.py”以获取用于生成执行跟踪的prolog代码的插装示例,或“叙述”,然后可用于生成,例如,专家系统思维过程的简单英语描述。


请参见“tests/demo.py”以获取构建可解释专家系统的示例。




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ContentExchange设置请求属性   java Spark/Hdfs/Hdfsclient兼容性   java springcloudstreamkafka配置:instanceCount和instanceIndex   Java中web服务序列化日期   java用动态数据替换占位符   java git gc似乎覆盖了一个packfile,留下了一个打开的文件描述符,其中包含对“oldxxx.pack”的引用   为什么Apache项目对Java版本敏感?   java Anylogic帮助如何在导入的3dobject通过输送机上的多个“站”时更改其颜色?   JavaEclipseNeonM2E可以导入一个大型项目,但似乎不能自动解决依赖关系   java@FindBy搜索具有满足条件的子元素的元素   java如何将ActionEvent e与键绑定一起使用?   java转换以集中方式从外部库抛出的异常   java中用户文件/数据文件与系统/程序文件的区别   java使用变量字符串或字符作为对象名   字体使用Java图形操纵字符串中每个字符的形状   JavaFX图表移动数据   java RandomAccessFile:将所有项设置为相同的字节数?   java Google Play inapp Billing onPurchasesUpdated()错误响应代码1   java在不知道属性名和属性数的情况下处理json对象   java是否可以一次从HazelcastInstance(映射和列表)中删除所有数据?