2016-01-23 52 views

回答

1

只是指出了一个显而易见的事实:“事实部分”是针对事实,事实是始终如一的谓词,用于描述某些属性。

Singledeterm是“事实模式”中,在一个事实声明任选地使用,是指Single事实上总是具有一个且仅一个值,determ意味着事实上可以具有零个或一个值。

+1

谢谢,我理解了第二部分,但是关于第一部分,我只是明白,我不能使用“单个” 和“确定”谓词“部分,我只能在”谓词“部分使用”非定义“关键字 但在”事实“部分中,我可以使用”确定“,”单个“,”非定序“ 因此,何时使用谓词部分可以替换为“事实”部分? –

+0

你不能用事实替代谓词,因为我写的是不同的事物,事实是谓词,但谓词并不总是事实!事实总是如此,像“太阳(黄色)“,但谓词可以是真或假,它取决于哪些术语包含,通常是你已经评估过的东西,比如'sun(Color)'('Color'现在是一个变量)。 – rok

1

事实在序言中以dB 表(列1,列2,...)如表predicat的替代确实Facts需要像Fact(Arg1,Arg2)形式给了我们{真,假}值仅适用于特定的常量提到里面“()”

所以事实是一个复杂的术语或谓词的确实,Args不是变量,是个别常量。

例如

father(fathername,childname). 

规则也谓词的取代的形式为

rule_type1(+In_Args,?Out_Args) :- body . 
rule_type2(+In_Args) :- body . % (true,false) 
rule_type3 :- body . 

它为了产生从事实或从通过Querys

衍生成体logique规则数据

示例

max(X,Y,Z) :- X>=Y -> Z=X ; Z=Y . 

?- max(3,5,Z). /* give us */ Z=5 

在视觉序言Facts可与多种可选关键字声明:与关键字determ的声明

事实。

关键字determ确定事实数据库只能包含使用此关键字声明的事实(数据库谓词)fact_N(...)的一个实例。因此,如果您尝试使用assert之一,然后将第二个这样的事实写入数据库,则Visual Prolog引擎将生成运行时错误。 (1041断言宣称为确定的事实,但事实已经存在)。 example

以关键字single声明的事实。

事实fact_N声明确定一个与事实只有一个实例必须始终存在之前的关键字single

由于单事实必须当程序调用目标将已经知道;因此,必须在程序源代码的子句部分初始化单个事实。

例如:

FACTS 
single singleFact(STRING, STRING) 
CLAUSES 
singleFact("","").