Birisi Drools veya diğer bazı kural motorlarının kılavuzlarına (belki de daha eski) bakarsa, katma değerlerinin çizimlerinden biri Miss Manners bulmaca (Drools kılavuzu) gibi bulmacaları çözmektir. Şimdi, bu tür bulmacalar Prolog veya daha yeni Kısıtlama Programlama dilleri kullanılarak doğal olarak formüle edilir ve çözülür ve biri neden Drools'u bu amaçla kullanacağını merak eder. Prolog ve CPL'nin bu durumda verdiği katma değer, bulmacayı doğal olarak bir dizi mantıksal tahminler olarak formüle etme ve çözüm uzayını otomatik olarak arama yetenekleri (CPL bu açıdan daha verimli). Ama Drools gibi ürünün katma değeri nedir (örneğin, bir Excel dosyasını alıp bir dizi kurala çevirmek için çanlar ve ıslıkların yanı sıra)?
Daha spesifik olarak, Prolog backtrack araması uygular, CLP kısıt yayılımı ile backtrack araması uygular ve bu nedenle, tek tek değişkenler için alanların tüm Kartezyen ürününü aramak yerine, bu ürün alanının büyük bölümlerini budanırlar. Onları etkili ve kullanışlı kılan budur. Hem Prolog hem de CLP literatürde geniş ölçüde tartışılmaktadır.
Öte yandan, Rete algoritmasının bazı veri yapıları biçimindeki kuralları kümesini önbelleğe aldığı açıktır, bu nedenle (benim görüşüme göre) bazı girdiler değiştiğinde çıktıyı değerlendirmeyi daha etkili hale getirir, ve bu veri yapısını artımlı değişiklikler için etkin bir şekilde güncellemek için araçlar vererek, temel fikri anlamak daha zordur (ve benim için daha da etkilidir) (Prolog? ndan CLP'ye?)? Ne yazık ki, bu daha geniş bağlamda Rete algoritmasını görüntüleyen iyi referanslar bulmak zor.
Drools'un dokümantasyonu maalesef bu konuda çok bilgilendirici değil. Bulabildiğim en fazla şey "Rete algoritması, Sıçramalar algoritması ve Drools 'Reteoo (ve Sıçramalar) gibi torunları, etki alanı nesne verilerinizle kural kalıplarını eşleştirmenin çok etkili yollarını sağlar. Bunlar, özellikle veri kümeleriniz olduğunda etkili olur. tamamen değişmeyin (kural motoru geçmiş eşleşmeleri hatırlayabildiğinden). Çok verimli - neye kıyasla? Savaş kanıtlanmış - gerçek dünya uygulamalarına bir nokta olabilir mi?
Bu konuya biraz daha ışık tutabileceği veya geçerli bir referans verebileceği için minnettar olurum.