Rabu, 25 November 2009

INPUT AND OUTPUT in PROLOG..

SOAL 1

Define a predicate makelower/0 which reads in a line of characters from the
keyboard and outputs it again as a single line with any upper case letters converted
to lower case. (The ASCII values of the characters a, z, A and Z are 97, 122, 65 and
90, respectively.)
Thus the following would be a typical use of makelower:
?- makelower.
: This is an Example 123 inCLUDing numbers and symbols +-*/@[] XYz
this is an example 123 including numbers and symbols +-*/@[] xyz
yes

JAWAB
1. deklarasikan dan simpan dengan format .pl



2. lalu buka file tadi


3. lalu ketikkan kata makelower. (akhiri dengan tanda titik), setelah itu tuliskan kata-kata terserah anda, huruf besar kecil juga boleh

hasilnya adalah, semua huruf besar yang ditulis menjadi kecil

SOAL 2
Define a predicate  copyterms which reads all the terms in a text file and
outputs them as terms to another text file one by one on separate lines.
The output file should be in a format suitable for use as the input file in a
subsequent call of copyterms. Thus for example if the input file contained
'first term'. 'second term'.
'third term'.
fourth. 'fifth term'.
sixth.
The output file would contain
'first term'.
'second term'.
'third term'.
fourth.
'fifth term'.
sixth.


JAWAB
1. deklarasikan dan simpan dengan format pl

2. buat file baru bernama Infile.txt, isinya seperti berikut

3. Lalu buka file berformat .pl tadi


4. Setelah itu ketikkan copyterms('Infile.txt','Outfile.txt').


5. hasilnya akan keluar di file baru bernama Outfile.txt, yang berisi seperti ini



SOAL 3
Create a text file testa.txt containing two lines, each of five characters followed
by a new line, e.g.
abcde
fghij
Define a predicate readfile that will read  fifteen characters from this file one by
one and output the ASCII value of each character. Use this to establish whether the   Input and Output  83
representations of 'end of file' and 'end of record' for your version of Prolog are as
suggested in Sections 5.9.1 and 5.9.2, respectively.

JAWAB
1. deklarasikan lalu simpan dengan fromat .pl

2. lalu buat file testa.txt yang berisi seperti di bawah


3. setelah itu buka file berformat .pl tadi


4. Setelah itu ketikkan readfile('testa.txt'). hasilnya adalah seperti ini





SOAL 4
 Using a text editor, create two text files in1.txt and in2.txt, each comprising a
number of terms terminated by end.
Define and test a predicate combine that takes the names of two input files as its
first two arguments and the name of an output file as its third argument. The output
file should contain the terms in the first input file followed by the terms in the
second, one per line and terminated by end.
JAWAB
1. deklarasikan dan simpan dengan format .pl


2. Buat s file lagi, yang satu bernama In1.txt dan yang kedua bernama In2.txt. Isinya lihat di bawah ini (bisa berubah-ubah)


3. lalu buka file yang berformat .pl tadi


4. Setelah itu tuliskan combine('In1.txt','In2.txt','Out.txt').


5. Hasilnya akan muncul file baru bernama Out.txt dan isinya adalah gabungan antara In1 dan In2 seperti ini






SOAL 5
Define and test a predicate compare that reads in two text files term by term
and for each pair of corresponding terms outputs a message either saying that they
are the same or that they are different. Assume that both files contain the same
number of terms and that the final term in each is end.
JAWAB
1. deklarasikan dan simpan dalam format .pl

2. Lalu buat file bernama Satu.txt dan Dua.txt, isinya seperti di bawah ini





 5. setelah itu buka file berformat .pl tadi, dan ketikkan compare('Satu.txt','Dua.txt'). maka hasilnya akan seperti berikut



Selasa, 24 November 2009

SUMMARY FOR CHAPTER 5

Input dan Output

built-in predikat yang membaca dari dan menulis baik untuk pengguna
terminal (keyboard dan layar) atau file, kedua istilah tersebut dengan istilah dan characterby -
karakter dalam program Anda sendiri. nilai ASCII untuk memanipulasi string karakter. Menggunakan istilah lebih sederhana dan akan dijelaskan terlebih dahulu. Awalnya, maka akan diasumsikan bahwa
semua output ke layar pengguna dan semua input adalah dari pengguna keyboard. Masukan dan keluaran menggunakan file eksternal.

Syarat keluaran
predikat mengambil satu argumen, yang harus yang valid Prolog istilah. Mengevaluasi menyebabkan predikat istilah yang akan ditulis ke arus keluaran
sungai, yang secara default adalah layar pengguna. (Yang dimaksud dengan arus keluaran Dengan Logika Pemrograman Prolog
streaming)

Contoh
? - Menulis (26), nl.
26
ya
? - Menulis ( 'string karakter'), nl.
string karakter
ya
? - Menulis ([a, b, c, d, [x, y, z]]), nl.
[a, b, c, d, [x, y, z]]
ya
? - Tulis (mypred (a, b, c)), nl.
mypred (a, b, c)
ya
? - Write ( 'Contoh penggunaan nl'), nl, nl, write ( 'akhir contoh'), nl.
Contoh penggunaan nl
contoh akhir
ya


Syarat memasukkan
Built-in predikat membaca disediakan untuk memasukkan istilah. Dibutuhkan satu argumen, yang harus menjadi variabel.
Mengevaluasi itu menyebabkan istilah berikutnya untuk dibaca dari input arus sungai,
yang secara default adalah pengguna keyboard. (Yang dimaksud dengan arus input). Dalam input stream, istilah harus diikuti oleh sebuah titik ('.') dan setidaknya satu spasi, seperti spasi atau baris baru. Titik dan spasi karakter dibaca dalam tetapi tidak dianggap bagian dari istilah. Perhatikan bahwa untuk masukan dari keyboard (hanya) sebuah prompt karakter seperti titik dua biasanya akan ditampilkan untuk menunjukkan bahwa input pengguna diperlukan. Mungkin perlu untuk tekan tombol 'kembali' tombol sebelum Prolog akan menerima input. Kedua tidak berlaku untuk masukan dari file. Ketika sebuah tujuan membaca dievaluasi, istilah input disatukan dengan argumen variabel. Jika variabel tidak terikat (yang biasanya terjadi) itu adalah terikat pada masukan nilai.

Contoh
? - Read (X).
: Jim.
X = jim
? - Read (X).
: 26.
X = 26
? - Read (X).
: Mypred (a, b, c).
X = mypred (a, b, c)
? - Read (Z).
: [A, b, mypred (p, q, r), [z, y, x]].
Z = [a, b, mypred (p, q, r), [z, y, x]]
? - Read (Y).
: 'String karakter'.
Y = 'string karakter'

Input dan Output Menggunakan Karakter
Meskipun input dan output dari syarat-syarat sangat mudah, penggunaan tanda kutip dan penuh berhenti dapat menjadi rumit dan tidak selalu sesuai. Sebagai contoh, akan membosankan untuk menentukan predikat (menggunakan baca) yang akan membaca serangkaian karakter dari keyboard dan menghitung jumlah huruf vokal. Sebuah pendekatan yang lebih baik untuk masalah semacam ini adalah untuk masukan sebuah karakter pada satu waktu. Untuk melakukan hal ini, pertama-tama perlu
untuk mengetahui tentang nilai ASCII karakter. Semua mencetak karakter dan banyak karakter non-cetak (seperti ruang dan tab) memiliki sesuai ASCII (American Standard Kode untuk Informasi Interchange) nilai, yang merupakan integer 0-255. Nilai ASCII karakter yang kurang dari atau sama dengan 32 yang dikenal sebagai putih ruang karakter.

Keluaran karakter
Karakter adalah output dengan menggunakan built-in predikat meletakkan predikat mengambil argumen tunggal, yang harus menjadi nomor 0-255 atau ekspresi yang
mengevaluasi ke integer dalam jangkauan. Mengevaluasi tujuan put menyebabkan satu karakter untuk menjadi output untuk saat ini output stream. Ini adalah karakter yang sesuai dengan nilai numerik (ASCII nilai) dari argumen.

misalnya
? - Meletakkan (97), nl.
sebuah
ya
? - Meletakkan (122), nl.
z
ya
? - Meletakkan (64), nl.
@
ya

Output ke sebuah File
Meskipun definisi di atas kirim menyatakan bahwa 'semua file yang sudah ada dengan yang sama Namanya dihapus ', ada kemungkinan lain, yang penting bagi beberapa aplikasi, yaitu bahwa file tersebut tidak dihapus dan setiap output ditempatkan setelah akhir isi yang ada file. Baik 'menimpa' dan 'append' pilihan
kemungkinan besar akan tersedia dalam pelaksanaan praktis Prolog tetapi mungkin melibatkan menggunakan predikat yang berbeda (misalnya terbuka) sebagai pengganti atau serta kirim.

Input: Mengubah Input Current Stream
Input stream yang aktif dapat diubah dengan menggunakan melihat / 1 predikat. Ini membutuhkan argumen tunggal, yang merupakan atom atau variabel yang mewakili nama file, misalnya lihat ( 'myfile.txt'). Mengevaluasi sebuah tujuan melihat menyebabkan file bernama input yang menjadi sungai. Jika file ini belum terbuka itu pertama kali dibuka (untuk akses baca saja). Jika tidak mungkin untuk membuka file dengan nama yang diberikan, kesalahan akan dihasilkan.

Senin, 23 November 2009

Penerapan Expert System pada Sistem Identifikasi Suara dan Sidik Jari sebagai Absen Kehadiran

Penerapan Expert System dengan Menggunakan Sistem identifikasi suara dan sidik jari sebagai absen kehadiran

Latar belakang
Dewasa ini, sistem absensi dengan cara tandatangan dirasa kurang optimal dalam penjalanannya. Banyak sekali siswa, mahasiswa hingga pegawai karyawan suka membolos dan terlambat masuk. Seperti yang kita ketahui sekarang ini, sistem absensi tandatangan yang diberlakukan di kampus jurusan Sistem Informasi ITS sangat menguntungkan mahasiswa yang biasanya malas kuliah. Banyak dari mereka yang menggampangkan jadwal kuliah, hingga mereka sering sekali datang tidak tepat waktu. Bahkan, parahnya lagi, mereka seringkali titip absen kepada teman mereka yang biasanya rajin masuk kuliah. Hal, ini sangat berpengaruh buruk bagi siswa yang sering titip absen (TA) ini, karena mereka akan ketinggalan materi kuliah dan tidak tahu apa-apa tentang materi yang dibahas. Walaupun absen mereka penuh, tapi mereka tidak mendapatkan apa-apa. Bahkan TA ini lebih buruknya lagi menjadi budaya mahasiswa sekarang ini. Sama halnya dengan mahasiswa, para karyawan baik swasta maupun negeri biasanya sering datang terlambat ke kantor, karena mereka menganggap absensi itu yang penting ada. Beberapa kantor sudah menerapkan sistem absensi check lock yang didalamnya terdapat waktu kedatangan para karyawan tersebut. Hal ini sebenarnya memang sudah bagus, tapi masih ada juga beberapa karyawan yang mengakalinya dengan titip kepada temannya. Apabila hal ini terus menerus dilakukan, maka keterlambatan dan membolos akan menjadi budaya bangsa Indonesia.
Tujuan
Menjadikan disiplin dan tegas dalam bekerja dan belajara merupakan hal yang utama dalam menjalankan keseharian. Supaya keterlambatan dan membolos itu tidak menjadi budaya yang buruk bagi Bangsa Indonesia
Penjelasan
Sistem absensi dengan menggunakan suara dan sidik jari ini diterapkan pada seluruh kantor dan di setiap ruang kelas pada kampus. Setiap ruang dipasang alat pendeteksi suara dan sidik jari yang kemudian dihubungkan ke operator pusat. Fungsi operator pusat ini adalah untuk memantau, mendeteksi serta mencatat kehadiran dari mahasiswa atau pegawai yang datang. Dengan hal ini, maka budaya titip absen atau yang biasa disebut dengan TA tidak akan terjadi lagi.

Jumat, 13 November 2009

OPERATOR AND ARITMETHIC in Prolog

SOAL 1
 (1) This program is based on Animals Program 3, given in Chapter 2.
dog(fido). large(fido).
cat(mary). large(mary).
dog(rover). small(rover).
cat(jane). small(jane).
dog(tom). small(tom).
cat(harry).
dog(fred). large(fred).
cat(henry). large(henry).
cat(bill).
cat(steve). large(steve).
large(jim).
large(mike).
large_dog(X):- dog(X),large(X).
small_animal(A):- dog(A),small(A).
small_animal(B):- cat(B),small(B).
chases(X,Y):-
      large_dog(X),small_animal(Y),
      write(X),write(' chases '),write(Y),nl.
Convert the seven predicates used to operator form and test your revised program.
The output should be the same as the output from the program above. Include
directives to define the operators in your program.

 
Langkah-Langkah

1. kita diperintah untuk mengonvert predikat menggunakan operator form seperti yang ada pada contoh. Dan hasilnya harus sama dengan program yang ada pada contoh.
Jadi yang kita menuliskan soal pada notepad dengan format .pl
Yang awalnya seperti ini:


 
2. Setelah itu kita mengubah notepad pada program yang pertama dengan suatu rule yang baru



3. Setelah itu buka file yang telah disimpan dalam format .pl tadi
 


4. Setelah itu ketikkan chases(X,Y). untuk melihat hasilnya. Dan tekan ; (titik koma) sampai keluar kata NO


5. Hasilnya pun sama dengan kita memakai rule yang ada di soal dengan rule yang telah kita buat sendiri
 



SOAL 2

(2) Define and test a predicate which takes two arguments, both numbers, and
calculates and outputs the following values: (a) their average, (b) the square root of
their product and (c) the larger of (a) and (b).


Langkah-Langkah
1. Melakukan hitungan rata-rata dari 2 buah bilangan.
Misal: X=45
Y=53
Maka kita mencari Z dengan rumus rata-rata yaitu (X+Y)/2



 
2. Menghitung akar dari hasil rata-rata tersebut. Maka kita mencari I dengan sqrt(Z).


3. Menentukan hasil yang paling besar dari 2 perhitungan sebelumnya. Maka kita mencari J dengan max(Z,I).
 
 


 

OPERATOR AND ARITHMETIC

SUMMARY FOR CHAPTER 4
Operator dan Arithmetic

Operator
notasi yang digunakan untuk predikat adalah salah satu dari standar
functor diikuti oleh sejumlah argumen dalam kurung, misalnya suka (john, mary).
Sebagai alternatif, apapun predikat yang ditetapkan pengguna dengan dua argumen (binary predikat) dapat dikonversi ke operator infiks. Hal ini memungkinkan functor
(predikat nama) yang akan ditulis di antara dua argumen tanpa tanda kurung, misalnya
john suka mary. Setiap predikat yang ditetapkan pengguna dengan satu argumen (a unary predikat)dapat diubah menjadi prefiks operator. Hal ini memungkinkan untuk functor ditulis sebelum argumen tanpa tanda kurung. Notasi operator juga dapat digunakan dengan mudah dibaca aturan untuk bantuan. Setiap predikat yang ditetapkan pengguna dengan satu atau dua argumen dapat dikonversi ke operator dengan memasukkan tujuan menggunakan op predikat pada sistem prompt.

relasional operator untuk membandingkan nilai numerik, termasuk
daripada 'dan> menunjukkan' lebih besar dari '.
Jadi istilah berikut adalah valid, yang dapat dimasukkan ke dalam tubuh seorang
aturan:

X> 4
Y
A = B

Notasi tanda kurung juga dapat digunakan dengan built-in predikat yang didefinisikan sebagai
operator, e.g. > (X, 4) bukan X> 4.


Arithmetic
Meskipun contoh-contoh yang digunakan dalam bab-bab sebelumnya buku ini adalah non-numerik(hewan yang mamalia dll), Prolog juga menyediakan fasilitas untuk melakukan aritmatika menggunakan notasi yang serupa dengan yang sudah akrab bagi banyak pengguna dari aljabar dasar. Hal ini dicapai dengan menggunakan built-in predikat adalah / 2, yang telah ditetapkan sebagai infiks operator dan dengan demikian ditulis antara dua argumen. Cara yang paling umum adalah menggunakan / 2 adalah dimana argumen pertama adalah terikat variabel. Mengevaluasi tujuan X -6,5 akan menyebabkan X untuk terikat dengan jumlah -6,5 dan tujuan untuk sukses.

Argumen kedua dapat berupa nomor atau ekspresi aritmatika misalnya
X adalah 6 * Y + Z-3.2 + P-Q / 4 (* menandakan perkalian).
Setiap variabel yang muncul dalam sebuah ekspresi aritmatika sudah harus terikat(sebagai mengevaluasi hasil dari tujuan sebelumnya) dan nilai-nilai mereka harus numerik. Disediakan Dengan 60 Logika Pemrograman Prolog
mereka, tujuan akan selalu berhasil dan variabel yang membentuk pertama
argumen akan terikat dengan nilai ekspresi aritmetik. Jika tidak, kesalahan
pesan akan muncul.

? - X 10,5 4,7 * 2.
X = 19,9
? - Y adalah 10, Z adalah Y 1.
Y = 10,
Z = 11

Simbol seperti + - * / dalam ekspresi aritmatika adalah jenis khusus infiks
operator yang dikenal sebagai operator aritmetika. Tidak seperti operator digunakan di tempat lain di Prolog mereka tidak predikat tetapi fungsi yang mengembalikan nilai numerik. Seperti halnya angka-angka, variabel dan operator, ekspresi aritmatika dapat mencakup fungsi aritmatika, ditulis dengan argumen mereka dalam tanda kurung (yaitu bukan sebagai operator). Seperti operator aritmetika ini kembali nilai-nilai numerik, misalnya menemukan akar kuadrat dari 36:

? - X adalah sqrt (36).
X = 6

Operator aritmetik - dapat digunakan tidak hanya sebagai operator infiks biner
menunjukkan perbedaan dua nilai numerik, misalnya X-6, tetapi juga sebagai awalan unary operator untuk menunjukkan negatif dari sebuah nilai numerik, misalnya

? - X adalah 10, Y-X-2.
X = 10,
Y = -12

Tabel di bawah menunjukkan beberapa operator dan aritmatika aritmetika
fungsi yang tersedia dalam Prolog.
X + Y jumlah X dan Y
X-Y perbedaan dari X dan Y
X * Y produk X dan Y
X / Y hasil bagi X dan Y
X / / Y 'integer hasil bagi' dari X dan Y (hasilnya adalah dipotong ke
terdekat integer antara itu dan nol)
X ^ Y X ke Y kekuatan
-X negatif X
abs (X) nilai absolut X
sin (X) sinus X (untuk X diukur dalam derajat)
cos (X) kosinus X (untuk X diukur dalam derajat)
max (X, Y) yang lebih besar dari X dan Y
sqrt (X) akar kuadrat X
Operator dan Artithmetic 61

Contoh
? - X adalah 30, Y adalah 5, Z adalah X + Y + X * Y + sin (x).
X = 30,
Y = 5,
Z = 185,5

Meskipun merupakan predikat biasanya digunakan dalam cara yang dijelaskan di sini, pertama argumen juga bisa menjadi nomor atau sebuah variabel terikat dengan nilai numerik. Dalam kasus, nilai numerik dari dua argumen dihitung. Tujuan berhasil
jika ini adalah sama. Jika tidak, itu gagal.

? - X 7, X adalah 6 +1.
X = 7
? - 10 adalah 7 13-11 9.
tidak
? - 18 adalah 7 13-11 9.
ya

Unifikasi
Deskripsi sebelumnya dapat disederhanakan dengan mengatakan bahwa argumen kedua dari
yang adalah / 2 operator dievaluasi dan nilai ini kemudian disatukan dengan argumen pertama. Hal ini menggambarkan fleksibilitas konsep penyatuan.

(a) Jika argumen pertama adalah variabel terikat, ia terikat dengan nilai yang
Argumen kedua (sebagai efek samping) dan tujuan adalah berhasil.

(b) Jika argumen pertama adalah angka, atau variabel terikat dengan nilai numerik, itu dibandingkan dengan nilai argumen kedua. Jika mereka adalah sama, adalah tujuan
berhasil, selain itu gagal. Jika argumen pertama adalah atom, istilah majemuk, daftar, atau variabel terikat satu ini (tidak ada yang seharusnya terjadi), hasilnya adalah tergantung pada implementasi. Kemungkinan besar akan terjadi kesalahan. Perhatikan bahwa tujuan seperti X adalah X 1 akan selalu gagal, apakah X tidak terikat.

? - X adalah 10, X adalah X +1.
tidak
Untuk meningkatkan nilai oleh satu memerlukan pendekatan yang berbeda.
62 Logika Pemrograman Dengan Prolog
/ * Versi salah * /
meningkatkan (N):-N adalah N +1.
? - Meningkatkan (4).
tidak
/ * Benar versi * /
meningkatkan (N, M):-M adalah N +1.
? - Meningkat (4, X).
X = 5

Operator Precedence di Arithmetic Expressions
Bila ada lebih dari satu operator di sebuah ekspresi aritmatika, misalnya A + B * C-D, Prolog kebutuhan sarana menentukan urutan operator akan diterapkan.
Untuk operator dasar seperti + - * dan / itu sangat diinginkan bahwa ini adalah
adat 'matematika' order, yaitu ekspresi A + B * CD harus ditafsirkan
sebagai 'menghitung produk B dan C, tambahkan ke A dan kemudian kurangi D', bukan sebagai 'menambahkan A dan B, kemudian kalikan dengan C dan kurangi D '. Prolog mencapai hal ini dengan memberikan masing-masing operator numerik nilai didahulukan. Operator didahulukan relatif tinggi seperti * dan / diterapkan sebelum mereka yang didahulukan lebih rendah seperti + dan -. Operator dengan prioritas yang sama (misalnya + dan -, * dan /) diterapkan dari kiri ke kanan. Efeknya adalah untuk memberikan ekspresi seperti A + B * CD makna bahwa pengguna yang akrab dengan aljabar akan mengharapkan untuk memiliki, yaitu A + (B * C)-D. Jika urutan yang berbeda diperlukan evaluasi ini dapat dicapai dengan menggunakan kurung, e.g. X adalah (A + B) * (C-D). Ungkapan tanda kurung selalu dievaluasi terlebih dahulu.

Relational Operator
The infiks operator =: = = \ =>> = <=
relasional operator. Mereka digunakan untuk membandingkan nilai dari dua aritmatika
ekspresi. Tujuan berhasil jika nilai ekspresi pertama adalah sama dengan, tidak
sama dengan, lebih besar dari, lebih besar dari atau sama dengan, kurang dari atau kurang dari atau sama dengan
nilai dari ekspresi kedua, masing-masing. Kedua argumen harus angka,
terikat variabel atau ekspresi aritmetika (di mana setiap variabel terikat untuk
nilai numerik).

? - 88 15-3 =: = 110-5 * 2.
ya
? - 100 = \ = 99.
ya
Operator dan Artithmetic 63
Kesetaraan 4,3 Operator

Ada tiga jenis operator relasional untuk pengujian kesetaraan dan ketidaksetaraan
tersedia dalam Prolog. Tipe pertama digunakan untuk membandingkan nilai-nilai aritmatika ekspresi. Dua lainnya jenis tersebut digunakan untuk membandingkan istilah.

Aritmatika Expression Kesetaraan =: =
E1 =: = E2 berhasil jika ekspresi aritmetika mengevaluasi E1 dan E2 yang sama
nilai

? - 6 +4 =: = 6 * 3-8.
ya
? - Sqrt (36) +4 =: = 5 * 11-45.
ya

Untuk memeriksa apakah suatu bilangan bulat ganjil atau bahkan kita dapat menggunakan checkeven / 1 predikat
didefinisikan di bawah ini.

checkeven (N):-M adalah N / / 2, N =: = 2 * M.
? - Checkeven (12).
ya
? - Checkeven (23).
tidak
? - Checkeven (-11).
tidak
? - Checkeven (-30).
ya

Integer hasil bagi para operator / / membagi argumen pertama dengan kedua dan
memotong hasilnya ke integer terdekat antara itu dan nol. Jadi 12 / / 2 adalah 6, 23 / / 2 adalah 11, -11 / / 2 adalah -5 dan -30 / / 2 adalah -15. Membagi sebuah integer dengan 2 menggunakan / / dan mengalikan itu dengan 2 lagi akan memberikan bilangan asli jika bahkan, tetapi tidak sebaliknya. Ekspresi aritmatika Ketidaksetaraan = \ = E1 = \ = E2 berhasil jika ekspresi aritmetika E1 dan E2 tidak mengevaluasi ke nilai sama

? - 10 = \ = 8 3.
ya

Logika Pemrograman Dengan Prolog
Persyaratan Identik ==
Kedua argumen dari operator == infiks harus istilah. Tujuan Term1 == Term2
berhasil jika dan hanya jika Term1 identik dengan Term2. Setiap variabel yang digunakan dalam istilah mungkin atau mungkin tidak sudah terikat, tetapi tidak ada variabel terikat sebagai akibat dari mengevaluasi tujuan.

? - Suka (X, Prolog) == suka (X, Prolog).
X = _
? - Suka (X, Prolog) == suka (Y, Prolog).
tidak
(X dan Y adalah variabel yang berbeda)
? - X adalah 10, pred1 (X) == pred1 (10).
X = 10
? - X == 0.
tidak
? - 6 4 == 3 +7.
tidak

Nilai sebuah ekspresi aritmatika hanya dievaluasi jika digunakan dengan adalah / 2
operator. Berikut 6 +4 hanyalah sebuah istilah dengan functor + dan argumen 6 dan 4. Ini sama sekali berbeda dari istilah 3 +7. Persyaratan Tidak Identik \ ==
Term1 \ == Term2 tes apakah Term1 tidak identik dengan Term2. Tujuan berhasil
jika Term1 == Term2 gagal. Selain itu gagal.

? - Pred1 (X) \ == pred1 (Y).
X = _,
Y = _

(Output menandakan bahwa baik X dan Y adalah terikat dan variabel yang berbeda.)
Syarat Identik Dengan Unifikasi = Istilah kesetaraan operator = adalah serupa dengan == dengan satu penting (dan sering sangat berguna) perbedaan. Tujuan Term1 = Term2 berhasil jika Term2 istilah Term1 dan menyatukan, yaitu ada beberapa cara untuk mengikat nilai-nilai variabel yang akan membuat persyaratan identik. Jika tujuan berhasil, seperti terjadi sebenarnya mengikat.


Logical Operator
Bagian ini memberikan gambaran singkat dari dua operator yang mengambil argumen yang
panggilan istilah, yaitu istilah yang dapat dianggap sebagai tujuan.
Operator yang tidak Operator awalan bukan / 1 dapat ditempatkan sebelum tujuan untuk memberikan yang pengingkaran. Itu tujuan menegasikan berhasil jika tujuan asli gagal dan gagal jika tujuan asli berhasil. Contoh berikut menggambarkan penggunaan tidak / 1. Diasumsikan bahwa database berisi satu klausul

anjing (fido).
? - Tidak anjing (fido).
tidak
? - Anjing (fred).
tidak
? - Tidak anjing (fred).
ya
? - X = 0, X adalah 0.
X = 0
? - X = 0, bukan X adalah 0.
tidak

The pemisahan Operator
The pemisahan operator; / 2 (ditulis sebagai karakter titik koma) digunakan untuk mewakili
'atau'. Ini adalah infiks operator yang membutuhkan dua argumen, yang keduanya adalah tujuan.
Tujuan1; Tujuan2 berhasil jika salah Tujuan1 atau Tujuan2 berhasil.
? - 6 <3; 7 adalah 5 +2.
ya
Operator dan Artithmetic 67
? - 6 * 6 =: = 36; 10 = 8 3.
ya