pyDatalog可以做到这些功能。 下面是关于从文件中读取pyDatalog程序,我自己写的简单例子: In [1]: from pyDatalog import pyDatalog def run_program(): # 创建一个简单的 (mc) file_in.close() print(pyDatalog.ask('factorial[3]==N')) # 执行语句,注意这里不需要预先create_terms 下面的例子给出了所有动态Datalog语句的接口: In [2]: from pyDatalog.pyDatalog import assert_fact, retract_fact, load, ask from pyDatalog import pyDatalog # load(string): 从字符中加载Datalog语句 load(""" + parent('Kangxi', 'Yongzheng
在探索"知识推理"的时候找到了pyDatalog这个工具。它借鉴了Datalog这种声明式语言,可以很方便自然地表达一些逻辑命题和数学公式,并且它是在我现在最爱的python上实现的。 来看一个官网上用它实现阶乘的例子: from pyDatalog import pyDatalog pyDatalog.create_terms('factorial, N') factorial[N] factorial[1] = 1 print(factorial[3]==N) # prints N=6 (如同数学公式一般的简洁) 还有一个我自己写的一个关于推理的例子: # 自己写了一个小推理规则 pyDatalog.create_terms pyDatalog官网:https://sites.google.com/site/pydatalog/home https://github.com/pcarbonn/pyDatalog python
变量和表达式 第一步是导入pyDatalog: 下一步是声明我们将使用的变量。 他们必须以大写字母开头: 变量出现在逻辑查询中,返回可打印的结果 In [1]: from pyDatalog import pyDatalog pyDatalog.create_terms('X,Y' pyDatalog没有符号解析器(目前)! 当搜索可能的答案时,pyDatalog从最后定义的规则开始,即更具体的规则,只要找到该函数的有效答案就立即停止。 这个简短的表示法以及可以按任意顺序定义函数的事实,使得编写pyDatalog程序像创建电子表格一样简单。 为了说明这一点,看看这个不能更清晰的Factorial的定义!
In [1]: from pyDatalog import pyDatalog pyDatalog.create_terms('X,Y,manager, count_of_direct_reports' 字面值和集合 就像pyDatalog函数的行为与Python中的字典一样,pyDatalog字面值的行为与Python中的集合很相似。 In [3]: from pyDatalog import pyDatalog pyDatalog.create_terms('X,Y,Z, works_in, department_size, manager 这个例子( https://github.com/pcarbonn/pyDatalog/blob/master/pyDatalog/examples/graph.py ) 中有更多的图算法的例子。 In [13]: from pyDatalog import pyDatalog pyDatalog.create_terms('N,X0,X1,X2,X3,X4,X5,X6,X7') pyDatalog.create_terms
这一回,我们的目标是用pyDatalog与“知识图谱”交互。 知识图谱是个很复杂的概念,但一般其中的知识都是以RDF三元组的形式存储的,所以我在这里实际上演示的是pyDatalog与RDF类三元组的交互。 所以我就以这个作为例子,演示pyDatalog与知识图谱的交互。 In [1]: #coding=utf-8 # 与RDF的交互 from pyDatalog import pyDatalog from pyDatalog.pyDatalog import assert_fact , retract_fact, load, ask import rdflib from rdflib import Literal pyDatalog.create_terms('X,Y,R,relation
符号层:逻辑表达与规则编码 使用Python中的pyDatalog或Prolog语法,我们可以表示符号之间的逻辑规则: from pyDatalog import pyDatalog pyDatalog.create_terms # 扩展逻辑推理规则 pyDatalog.create_terms('MoreLeft') # 规则:传递性推理定义 MoreLeft(X, Z) <= LeftOf(X, Y) & LeftOf(Y
AI的Python库 总体的AI库 AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法 pyDatalog:Python中的逻辑编程引擎 SimpleAI:
除此之外,还有一堆的 AI 相关的框架库,也都纷纷采用,如 AIMA、pyDatalog、SimpleAI、PyBrain、PyML 等。
AI的Python库 总体的AI库 AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法 pyDatalog:Python中的逻辑编程引擎 SimpleAI
有Python AI库:AIMA,pyDatalog,SimpleAI,EasyAi等。还有用于机器学习的Python库:PyBrain,MDP,scikit,PyML。
有Python AI库:AIMA,pyDatalog,SimpleAI,EasyAi等。还有用于机器学习的Python库:PyBrain,MDP,scikit,PyML。
dnspython重复) six-1.11.0 setuptools-39.1.0 dnspython-1.15.0 ullib3-1.22 pyDatalog
除此之外,还有一堆 AI 相关的框架库,也都纷纷采用,如 AIMA、pyDatalog、SimpleAI、PyBrain、PyML 等。 作为这么一门有前途的语言,必然是要去学习和使用的。
2、总体的AI库 AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法; pyDatalog:Python中的逻辑编程引擎; SimpleAI:Python