我只是想知道,prolog中“fact”和“谓词”部分有什么区别?
“单个”和“确定”关键字有什么区别?
答案 0 :(得分:1)
只是指出显而易见的事实:“事实部分”是指事实,事实是始终为真的谓词,用于描述某些属性。
vid2name
和Single
是“事实模式”,可选地在事实声明中使用,determ
表示事实始终只有一个值,Single
表示事实上可以有零个或一个值。
答案 1 :(得分:1)
事实是替换db 表中的谓词,如表(Column1,Column2,...)确实Facts
采用类似{{的形式1}}仅为"()"
Fact(Arg1,Arg2)
不是变量,而是个体常量。
示例强>
Args
规则也是谓词的替换格式
father(fathername,childname).
它命令从事实或通过Querys
派生到身体的逻辑规则生成数据示例
rule_type1(+In_Args,?Out_Args) :- body .
rule_type2(+In_Args) :- body . % (true,false)
rule_type3 :- body .
可以使用几个可选关键字声明visual-prolog max(X,Y,Z) :- X>=Y -> Z=X ; Z=Y .
?- max(3,5,Z). /* give us */ Z=5
中的:
使用关键字确定声明的事实。
关键字Facts
确定事实数据库只能包含使用此关键字声明的事实(数据库谓词)fact_N(...)的一个实例。因此,如果您尝试determ
一个然后第二个这样的事实进入数据库,Visual Prolog引擎将生成运行时错误。 (1041断言一个被宣称为确定的事实,但事实已经存在)。
example
使用关键字single声明的事实。
事实fact_N声明之前的关键字assert
确定事实中只有一个实例必须始终存在:
因为当程序调用目标时必须已知单个事实;因此,必须在程序源代码的子句中初始化单个事实。
例如:
single