(事实和谓词)与&&和(单身和确定)

时间:2016-01-23 10:52:20

标签: visual-prolog

我只是想知道,prolog中“fact”和“谓词”部分有什么区别?

“单个”和“确定”关键字有什么区别?

2 个答案:

答案 0 :(得分:1)

只是指出显而易见的事实:“事实部分”是指事实,事实是始终为真的谓词,用于描述某些属性。

vid2nameSingle是“事实模式”,可选地在事实声明中使用,determ表示事实始终只有一个值,Single表示事实上可以有零个或一个值。

答案 1 :(得分:1)

prolog中的

事实是替换db 表中的谓词,如表(Column1,Column2,...)确实Facts采用类似{{的形式1}}仅为"()"

中提到的特定常量提供{true,false}值 事实上,事实是一个复杂的术语或谓词的谓词,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