涓涓猚lause褰㈠
B1錛孊2, …, Bm >- A1, A2, …, An
濡傛灉A1, A2, …, An鍚屾椂鎴愮珛錛岄偅涔堝彲浠ュ鍑築1鎴朆2錛?#8230;, 鎴朆m
A涔嬮棿鏄痑nd鐨勫叧緋伙紝B鏄痮r鐨勫叧緋匯?/p>
濡傛灉X鏄痁鐨勭埗姣嶏紝涓擹鏄痀鐨勭埗姣嶏紝閭d箞X鏄痀鐨勭鐖舵瘝
grandparent(X, Y) >- parent(X, Z), parent(Z, Y).
涓嶈兘瀵煎嚭緇撹錛実ood鍜宐ad涓嶅彲鑳藉悓鏃舵垚绔?br /> >- good(X), bad(X).
濡傛灉X鏄漢錛岄偅涔圶鎴栬呬負(fù)鐢鋒э紝鎴栬呬負(fù)濂蟲?br />
male(X), female(X) >- human(X).
鍙互鐪嬪嚭錛屼竴涓猚lause鍙互瀵煎嚭澶氫釜緇撹銆傚鏋滀竴涓猚lause鏈澶氬彧瀵煎嚭1涓粨璁猴紝閭d箞榪欑clause灝辯О涓篽orn clause銆傞昏緫瀛﹀Alfred Horn鎻愬嚭浜?jiǎn)杩欐牱涓涓蹇碉紝渚夸簬榪涜閫昏緫鎺ㄧ悊銆?/p>
horn clause鍙堝垎涓ょ:
鍍廹randparent榪欐牱鐨勶紝鍙湁涓涓粨璁猴紝m=1錛岀О涓篽eaded horn clause, 褰㈠
B >- A1, A2, …, An
鍍忕浜屼釜渚嬪瓙閭f牱鐨勶紝娌℃湁浠諱綍緇撹錛宮=0錛?縐頒負(fù)headless horn clause, 褰㈠
>- A1, A2, …, An
prolog紼嬪簭涓昏鏄敱3縐峢orn clauses鏋勬垚鐨勩?/p>
Facts 鎬繪槸鎴愮珛鐨勪簨瀹烇紝鏄墍鏈夋帹鐞嗙殑鍩虹銆傛鏃訛紝鐢變簬涓嶉渶瑕佷換浣曠殑An錛屾墍浠=0. 褰㈠ B :- 綆鍐欎負(fù) B
‘:-’鏄痯rolog閲岄潰鐨勬帹鐞嗙鍙鳳紝鐩稿綋浜?‘>- ‘.
Rules鏄嚜瀹氫箟鐨勬帹鐞嗚鍒欙紝瀹冨熀浜巉acts錛岀浉褰撲簬瀹氫箟浜?jiǎn)涓濂楁帹鐞嗙殑杈呭姪宸ュ叿銆傚艦濡?B :- A1, A2, …, An
鍙煡鐪嬪嚭錛屼互涓婁袱縐嶄負(fù)headed horn clause銆?/p>
Querys 鏄痟eadless鐨刪orn clause. 褰㈠ :- A1, A2, …, An , 閫氬父鍐欎負(fù) ?- A1, A2, …, An
‘?-’琛ㄧず鏌ヨ錛?a >swi prolog鐨勬彁紺虹鍗蟲槸榪欎釜錛岃鏄巔rolog榛樿涓鐩村浜庢煡璇㈢姸鎬併?br />
鍙湁褰揂1, A2, …, An閮芥垚绔嬫椂錛宷uery鐨勭粨鏋滄墠涓?true銆?/p>
鍙傝冿細(xì)
A PROLOG Database System, Deyi Li Ph.D. , Department of Computer Science, Heriot-Watt University, Edinburgh, UK, 1984