2014-10-27 60 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