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.