2014-10-27 21 views
3

我已经在prolog中编写了一组规则,如果规则匹配发生特定操作。 类似:prolog如何作为智能语言工作?

rule_second_question(X, Y, X, W):- 
    (
     LINK_BASE == 'G', 
     is_verb_form(X), 
     aggregate_all(X, linkage(W, _, _, _, _, _, _, _, _, 'RS'), Y), 
     writeln(Y), 
     Count == 1, 
     SUBJECT = X, 
     nb_linkval(rule, 'twol') 
    ) 

我可以在Python写类似的规则,C++也与ifelse

我的程序是关于语言的。我不明白prolog如何与其他编程语言相比有所作为。

任何例子的帮助将是非常可观的。

+2

自动回溯使得编码深度优先搜索非常容易;当你天真地进行树木建造时,这非常棒。当然,你也可以用任何其他语言来做,只需要更多的努力。虽然你可以用勺子吃牛排,但叉子和刀具还有什么要说的。 – Amadan 2014-10-27 08:36:31

+2

您可能想比较编程范例而不是编程语言。一个好地方开始:https://en.wikipedia.org/wiki/Programming_paradigm – Pierre 2014-10-27 10:06:45

回答

3

Prolog的功率从逻辑变量,加上一个嵌入搜索算法,和表现力和均匀的结构化数据导出的设施。

它实现了一个关系数据模型,但在一个比SQL更结构的值域。 从某种意义上说,我认为它是antesignan的“无SQL”语言。因此,我们可以谨慎地编码 - 复杂数据结构之间的关系,就像那些在NLP早期研究中被认为是必需的关系一样。

一些容易实现的语法糖(所谓的DGC - 定义语句语法),然后让你编写可执行 ASTs。如果你认为语言(或多或少)与C一样古老,你可以欣赏它的魅力。然后,NLP研究被更立即生产性的范例所吸引:统计分析。 Prolog不是以算术为导向,而是松散的时尚。

查看项目Attempto获取在Prolog中实现的宝贵资源。

此外,我关于Prolog的首选书籍是Pereira-Shieber,其编号为freely available。它通过NLP的方式介绍Prolog。

+0

“antesignan”这是一个comerulent表达? – false 2014-10-28 17:57:46

+0

@false:oops,italics ... antesignano意思是前体,但它似乎不可翻译。抱歉 – CapelliC 2014-10-28 18:32:09