Dari apa yang saya lihat tentang Prolog, sepertinya itu akan ideal untuk membuat mesin aturan untuk suatu aplikasi. Namun, saya tidak percaya saya pernah melihat mesin aturan yang ditulis dalam Prolog. Apakah ada batasan bawaan dalam Prolog (mis. Algoritma pengumpulan sampah yang buruk) yang akan mencegahnya digunakan untuk membangun mesin aturan?
prolog
rules-engine
Onorio Catenacci
sumber
sumber
Jawaban:
Mesin aturan pada masa bayi ditulis hampir secara eksklusif di Prolog - itu adalah bahasa yang logis. Untuk seperangkat aturan kecil, mereka bekerja dengan baik. Namun, ternyata skala mereka tidak terlalu baik. Saya tidak memiliki referensi yang pasti, tetapi pemahaman saya adalah bahwa cara Prolog menangani rantai aturan tidak efisien - model rekursif yang dibuat untuk membuat tumpukan sangat besar yang membawanya ke perayapan.
Pengembangan algoritma RETE dan penerusnya memungkinkan cara yang lebih efisien untuk memproses sejumlah besar aturan, dan mengambil alih.
Mungkin prolog modern akan lebih efisien daripada di tahun 80-an, ketika sebagian besar pekerjaan awal dilakukan.
sumber
Lidah-dalam-pipi menjawab: karena jika pembuat Mesin Peraturan tahu tentang Prolog (atau Merkuri atau PERENCANAAN atau ...) mereka tidak akan menulis Mesin Aturan, mereka akan menggunakan Prolog.
sumber
Secara umum, inti dari mesin aturan adalah bahwa ia merupakan bagian dari aplikasi lain. Agak jarang melihat aplikasi yang ditulis dalam Prolog, dan tidak ada antarmuka yang tersedia untuk menghubungkan Prolog ke aplikasi yang ditulis dalam bahasa lain.
Salah satu alat berbasis aturan untuk mesin aturan, yang ditulis untuk ditambahkan ke aplikasi lain, adalah CLIPS . CLIPS didasarkan pada OPS5 dan menggunakan algoritma Rete untuk aturan pemangkasan.
sumber