5. Kueri Prolog
parent(tom, X).
X = bob ;
X = liz ;
false.
• Siapa yang memiliki tom sebagai orang tua?
parent(Y, ann).
Y = bob ;
false.
• Siapa orang tua dari ann?
Pemrograman Prolog – IKP213 5
6. Kueri Prolog
parent(X, Y).
• Menampilkan semua fakta
• Cari semua X dan Y yang memenuhi relasi
parent
• Substitusi variabel dengan atom di dalam
fakta yang ada
Pemrograman Prolog – IKP213 6
7. Kueri Prolog
• Tidak ada atom yang dapat mensubstitusi:
false
parent(badu, Y).
false.
Pemrograman Prolog – IKP213 7
9. Konjungsi Kueri
• Siapa grandparent dari jim?
– Siapa parent dari jim? Y
– Siapa parent dari Y? X
– X adalah grandparent dari jim
• parent(Y, jim), parent(X, Y).
• Cari seseorang, Y, yang menjadi parent dari jim
dan cari X yang menjadi orang tua dari Y
Pemrograman Prolog – IKP213 9
10. Rules
offspring(X, Y) :- parent(Y, X).
• X adalah offspring dari Y, jika Y adalah parent
dari X
mother(X,Y) :- parent(X,Y),
female(X).
• X adalah mother dari Y, jika X adalah parent
dari Y dan X adalah female
Pemrograman Prolog – IKP213 10
11. Horn Clause
• u :- p, q, r, .. t.
• u (p ˄ q ˄ r . . ˄ t)
• to show U holds,
• show P holds and show Q holds . . and show T
holds
Pemrograman Prolog – IKP213 11
12. Horn Clause
• Logical clause
– A set of disjuncts
– a set of literals, combined with logical OR
• Easy to prove
– one literal True, the whole clause must be True
• Horn Clause
– Logical clause with at most 1 positive literals
– -a ˅ -b ˅ -c ˅ . . . –y ˅ z
Pemrograman Prolog – IKP213 12
13. Logical Equivalence
• PQ
– -Q -P
• -P ˅ Q
• Back to Horn Clause:
• u (p ˄ q ˄ r ˄ . . . ˄ t)
– u ˅ -(p ˄ q ˄ r ˄ . . . ˄ t)
– u ˅ -p ˅ -q ˅ -r ˅ . . . ˅ -t
Pemrograman Prolog – IKP213 13
14. Computational Complexity
• It is linear time solvable
– Diberikan data sejumlah N, ada waktu yang cukup
untuk mendapatkan jawaban yang dicari
• NP-Complete
– Seberapa banyak pun waktu yang kita miliki, tak
akan cukup untuk mendapatkan jawaban yang
dicari
Pemrograman Prolog – IKP213 14