Drools - Kural Yazımı
Hello World projesinde (Sample.drl) yazılan varsayılan kuralı görürseniz, şimdi açıklayacağımız kullanılan birçok anahtar kelime var.
Sample.drl
Package- Her Kural bir paket adıyla başlar. Paket, Kurallar için bir ad alanı görevi görür. Bir paket içindeki kural adları benzersiz olmalıdır. Kurallardaki paketler, Java'daki paketlere benzer.
Import statement- Kuralı uygulamak istediğiniz gerçekler ne olursa olsun, bu gerçeklerin içe aktarılması gerekir. Örneğin, com.sample.DroolsTest.Message; yukarıdaki örnekte.
Rule Definition- Kural Adı, koşul ve Sonuçtan oluşur. Drools anahtar kelimelerirule, when, then, ve end. Yukarıdaki örnekte, kural adları "Merhaba Dünya" ve "Hoşçakal" dır. when kısım hem kurallarda hem de thensonuç kısmıdır. Kural terminolojisinde,when bölüm ayrıca LHS (sol taraf) olarak da adlandırılır ve then kuralın sağ tarafı (sağ taraf) olarak bölüm.
Şimdi Drool'ları yüklemek ve kuralları yürütmek için kullanılan Java dosyasında kullanılan terimleri inceleyelim.
Bilgi tabanı
Bilgi Tabanı, bir kurallar, süreçler ve dahili türler koleksiyonunu yöneten bir arabirimdir. Paketin içinde bulunurorg.drools.KnowledgeBase. Drools'da bunlara genellikleknowledge definitions veya knowledge. Bilgi tanımları şu şekilde gruplandırılır:knowledge packages. Bilgi tanımları eklenebilir veya kaldırılabilir. Bilgi Bankası'nın temel amacı, bunları depolamak ve yeniden kullanmaktır çünkü bunların oluşturulması pahalıdır. Bilgi Bankası, bilgi oturumları oluşturmak için yöntemler sağlar.
Bilgi Oturumu
Bilgi oturumu, bilgi tabanından alınır. Drools Engine ile etkileşim için ana arayüzdür. Bilgi oturumu iki tür olabilir -
Durumsuz Bilgi Oturumu
Durum Bilgili Bilgi Oturumu
Durumsuz Bilgi Oturumu
Durumsuz Bilgi Oturumu, çıkarımdan yararlanmadan en basit kullanım örneğini oluşturan durumsuz bir oturumdur. Durumsuz bir oturum, bir işlev gibi çağrılabilir, ona bazı verileri iletebilir ve ardından bazı sonuçları geri alabilir. Vatansız oturumun yaygın örnekleri şunlardır:
Validation
Bu kişi ipotek için uygun mu?
Calculation
Bir ipotek primi hesaplayın.
Routing and Filtering
E-postalar gibi gelen mesajları klasörler halinde filtreleyin.
Gelen mesajları bir hedefe gönder
Durum Bilgili Bilgi Oturumu
Durum bilgisi olan oturumlar daha uzun ömürlüdür ve zaman içinde yinelemeli değişikliklere izin verir. Durum bilgisi olan oturumlar için bazı yaygın kullanım örnekleri şunlardır:
Monitoring
Yarı otomatik satın alma için borsa izleme ve analizi.
Diagnostics
Arıza bulma, tıbbi teşhis
Logistics
Paket izleme ve teslimat sağlama
Bilgi Oluşturucu
KnoledgeBuilder arayüzü, bilgi tanımlarından (kurallar, süreçler, türler) bir Bilgi Paketi oluşturmaktan sorumludur. Paketin içinde bulunurorg.drools.builder.KnowledgeBuilder. Bilgi tanımları çeşitli formatlarda olabilir. Oluşturmayla ilgili herhangi bir sorun varsa, KnowledgeBuilder hataları şu iki yöntemle bildirir:hasErrors ve getError.
Aşağıdaki şema süreci açıklamaktadır
Yukarıdaki örnekte, basit bir durumsuz bilgi oturumu örneğini alırken, olguyu oturuma ekledik ve ardından fireAllRules () yöntemi çağrıldı ve çıktıyı görüyorsunuz.
Durum bilgisi olan bir bilgi oturumu durumunda, kurallar tetiklendikten sonra, durum bilgisi olan bilgi oturumu nesnesi yöntemi çağırmalıdır dispose() oturumu serbest bırakmak ve bellek sızıntılarını önlemek için.