具有可變更換學期我在序言一DCG,我可以查詢,像這樣:在序言
q(Tree, [name, of, company], []).
,並獲取顯示我分析查詢所採取的路徑的響應:
Tree = q(['company (Class)', 'name (Attribute)'])
現在我想提出一個查詢,如:
q(Tree, [name, of, acme], []).
,並沒有相匹配的長期acme
,我想創建一個變量Acme
讓我得到的東西,如:
Acme = company Tree = q(['company (Class)', 'name (Attribute)'])
我使用SWI-Prolog的和我從另一種語言查詢它,那就是爲什麼查詢全部爲小寫。我的另一種選擇是創建一個所有有效條款的詞典,並用變量替換查詢中的所有unknows,但希望獲得Prolog解決方案。
謝謝。
我不知道,我明白你的問題,但可能是你可以重複查詢嘗試,如下所示:q(Tree,[name,of,acme],[]); q(樹,[名稱,| X],[]); q(Tree,[name | X],[]); q(樹,X,[])並在你得到答案後立即停止? – 2012-04-10 06:13:29
@AlexanderSerebrenik將工作!現在我只需要限制X列表大小,因爲我還可以執行諸如「公司部門名稱」之類的查詢。 – Radek 2012-04-10 07:08:40
我會把它寫成一個答案,因爲否則就不能包含代碼片段。 – 2012-04-10 11:31:43