2010-06-14 9 views
7

यहां मुझे क्या करना है।गतिशील निर्णय तालिकाओं के साथ drools विशेषज्ञ का उपयोग

मुझे डेटाबेस तालिका में "नियम" रखना पसंद था। यह drools xls निर्णय तालिका प्रारूप की तरह है, सिवाय इसके कि सभी नियम एक तालिका में पंक्तियां होंगी। इस तरह मैं आसानी से नियमों को संशोधित कर सकता हूं। मुझे इसे एक टेबल में रखना होगा, न कि xls क्योंकि मेरे नियम अक्सर बदल सकते हैं। क्या यह संभव है drools के साथ? क्या मैं एक डीबी (एक डीआरएल या एक्सएलएस फ़ाइल की बजाय) से प्राप्त नियमों के साथ नॉलेजबेस बना सकता हूं और हर बार नियम बदल सकता है, क्या मैं ज्ञान आधार को स्क्रैच से पुनर्निर्माण कर सकता हूं (या शायद ज्ञानबेस के कुछ हिस्सों को, केवल उन नियमों को अपडेट करना जो बदले गए हैं ..)

उत्तर

6

यह इस बात पर निर्भर करता है कि आपके मन में किस प्रकार के नियम हैं। डेटाबेस-बैक किए गए दृष्टिकोण को समझ में आता है यदि आपके पास बहुत सारे नियम हैं जिनके पास समान संरचना है, और जो केवल कुछ 'पैरामीटर' के अनुसार भिन्न होते हैं। इस मामले में आप एक सामान्य जेनेरिक नियम लिख सकते हैं, और लागू होने वाले सभी संयोजनों को स्टोर करने के लिए डेटाबेस का उपयोग कर सकते हैं। उदाहरण के लिए, मान लीजिए कि आपके पास प्रति देश शिपिंग दरों की गणना करने के लिए नियम हैं, उदाहरण के लिए, उदा।

rule "Shipping rates to France" 
when 
    $order : Order(country == 'fr') 
then 
    $order.setShippingRate(10.0); 
    update(order); 
end 

// Similar rules for other countries… 

आप जहां प्रत्येक CountryShippingRate एक देश के लिए दर निर्दिष्ट करता है अपने डेटाबेस से इन नियमों डेटा बदल सकते थे। तो फिर तुम जैसे नियम सत्र में तथ्य वस्तुओं, और एक भी नियम के रूप में CountryShippingRate पंक्तियों के सभी, सम्मिलित करें:

rule "Shipping rates" 
when 
    $order : Order($country : country) 
    CountryShippingRate($rate : rate, country == $country) 
then 
    $order.setShippingRate($rate); 
    update(order); 
end 

व्यवहार में, यह पता चला है कि निर्णय तालिका प्रकार नियमों के बहुत सारे इस तरह से फिर से लिखा जा सकता है।

+1

मेरी इच्छा है कि मैं 10 बार ऊपर उठा सकूं :) –

+0

@ पीटर हिल्टन कृपया इस प्रश्न को देखें। धन्यवाद http://stackoverflow.com/questions/26322576/stop-rules-on-update-facts-drools – Kumar