freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

drools應(yīng)用手冊(cè)(留存版)

  

【正文】 e 可以阻止該規(guī)則被再次激活。它包含 0 個(gè)或更多的條件元素。amp。amp。,39?!?Or’條件元素的行為與約束和字段約束中的限制中使用的‘ ||’連接符是不同的。 Eval 不能被索引,因此不能對(duì)使用 eval 的字段約束進(jìn)行優(yōu)化。 Example . Atleast one Bus exists Bus() Example . Atleast one red Bus exists Bus(color == red) exists ( Bus(color == red, number == 42) ) //brackets are optional exists ( Bus(color == red) and Bus(color == blue)) // exists with nested 39。源數(shù)據(jù)可能是綁定變量的子字段,或者方法調(diào)用的結(jié)果。 ) ) then Raise priority, because system $system has 3 or more alarms pending. The pending alarms are $alarms. end 在上面的例子中,規(guī)則將為每一個(gè)給定的系統(tǒng)在 working memory 中尋找所有未解決的警報(bào),并將它們?cè)?ArrayList 中分組。F39。 p : Person( ) Restaurant( food == ) from ( list restaurants by postcode ) .setProperties( [ postcode : ] ) .list() ‘collect’ 第 29 頁(yè) 共 29 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) Figure . collect Collect條件元素允許規(guī)則對(duì)從給定的源或 WorkingMemory 中的對(duì)象集合進(jìn)行推論。 ) ) // 這里省略了最初的 Bus()模式 then all asserted Bus facts are red end 上面的例子與下面的多重模式寫法類同 : Example . MultiPattern Forall rule all employees have health and dental care programs when forall( $emp : Employee() HealthCare( employee == $emp ) DentalCare( employee == $emp ) ) then all employees have health and dental care end forall 可以嵌套在其它條件元素中組成完整的表達(dá)式。exists39。 第 24 頁(yè) 共 24 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) ‘eval’ Figure . eval Eval 本質(zhì)上是一個(gè)大雜燴( catch all),它允許任何語(yǔ)義代碼被執(zhí)行,只要最后返回一個(gè) boolean值。amp。amp。||39。變量的前綴使用的 $是可選的,但是在復(fù)雜的規(guī)則中它會(huì)很方便用來(lái)區(qū)別變量與字段的不同。 dateeffective 默認(rèn)值 : N/A 類型 : String, 包含日期 /時(shí)間定義 規(guī)則只能在 dateeffective 指定的日期和時(shí)間之后激活。 (true)。傳入 function 的參數(shù)就像普通的方法一樣(如果不需要參數(shù)可以為空)。 注意,這些全局變量只 是從你的應(yīng)用傳到 Working Memory 的對(duì)象的實(shí)例。如果多個(gè)包定義了同樣名稱的全局變量,它們必須使用同樣的類型,并且全部指向同一個(gè)全局值。包名也就是名稱空間名,與文件或目錄名稱無(wú)關(guān)。 保留字 在規(guī)則語(yǔ)言中使用了一些保留字。 講到這里相信大家都已經(jīng)對(duì) Drools 規(guī)則引擎的運(yùn)行有了初步了解。 update( m )。 第 4 頁(yè) 共 4 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) 從上圖我們也可以 看出 Drools 被分為兩個(gè)主要的部分:編制和運(yùn)行時(shí)。 Eclipse啟動(dòng)后,打開 Windows Preference。 第 4 頁(yè) 共 4 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) RETE 算法 RETE 算法是一個(gè)用來(lái)實(shí)現(xiàn) 產(chǎn)生式規(guī)則系統(tǒng)的高效模式匹配算法。通常規(guī)則最好被當(dāng)作一個(gè)有狀態(tài)的組件使用 —— 因此它們通常在應(yīng)用中是一個(gè)整體。 第 2 頁(yè) 共 2 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) ? 問(wèn)題超越了任何有明顯運(yùn)算法則的方案。并由此帶來(lái)編譯、打包、發(fā)布等等問(wèn)題。這對(duì)于生產(chǎn)系統(tǒng)來(lái)說(shuō)是極不方便的。 它是一個(gè)難以解決的復(fù)雜問(wèn)題,沒(méi)有明顯的傳統(tǒng)解決方案或者問(wèn)題沒(méi)有一個(gè)準(zhǔn)確的定論。無(wú)論怎樣,在一些規(guī)則被成功定義為可重用的服務(wù)的個(gè)案中,規(guī)則是無(wú)狀態(tài)的。該算法是由卡內(nèi)基美隆大學(xué)的 Charles L. Fy在 1974年發(fā)表的論文中所闡述的算法。我們就看到 Drools插件已經(jīng)加載進(jìn)來(lái),看下圖: 然后進(jìn)入 Drools Install Drools Runtime 點(diǎn)擊 Add 按鈕。 編制的過(guò)程包括為規(guī)則建立 DRL 或 XML文件,傳入一個(gè)由 Antlr 3文法器定義的解析器中。 end rule GoodBye when Message( status == , myMessage : message ) then ( myMessage )。接下來(lái)我們先學(xué)習(xí)一下Drools文件里的語(yǔ)法吧。避免在你的領(lǐng)域?qū)ο螅瑢傩?,方法,函?shù)以及規(guī)則的其它部分中使用保留字是明智的。 運(yùn)行時(shí)的規(guī)則包可以從多個(gè)規(guī)則源碼處組裝,當(dāng)組裝完成時(shí),所有的規(guī)則被放入一個(gè)頂級(jí)的Package 配置中。全部變量通常用來(lái)返回?cái)?shù)據(jù),如一個(gè)動(dòng)作的記錄,獲 得提供數(shù)據(jù)或服務(wù)給規(guī)則使用。這意味著你可以傳入任何你想要的對(duì)象:你可以傳遞一個(gè)服務(wù)的位置代理,或者可能是一個(gè)服務(wù)本身。返回值的概念也和普通方法相同。 end 規(guī)則 屬性 規(guī)則屬性提供了影響規(guī)則行為的一種聲明式的方法,有些十分簡(jiǎn)單,而另一些是復(fù)雜子系統(tǒng)的一部分,如規(guī)則流。 dateexptires 默認(rèn)值 : N/A 類型 : String, 包含日期 /時(shí)間定義 如果當(dāng)前時(shí)間在 dateexpires 指定的時(shí)間之后,規(guī)則不能激活。 Example . Pattern $c : Cheese( ) 在模式的圓 括號(hào)范圍內(nèi)是所有操作發(fā)生的地方。 (or)約束連接符允許約束組有多個(gè)約束,如: Example . amp。39?!献鳛椤?and’的同義選擇,不推薦使用,但是作為向后兼容原因它仍然在語(yǔ)言中提供。這可以涉及在規(guī)則 LHS 中綁定的變量和在規(guī)則 Package 中 定義的函數(shù)。是一階邏輯的存在判斷量詞,檢查在 Working Memory 中某些 Fact 的存在性。例如: Example . Combining Forall with Not CE rule not all employees have health and dental care when not forall( $emp : Employee() HealthCare( employee == $emp ) DentalCare( employee == $emp ) 第 27 頁(yè) 共 27 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) ) then not all employees have health and dental care end 作為一個(gè)邊注, forall 條件元素等價(jià)于寫為: not( first pattern and not ( and remaining patterns ) ) 要注意的是 forall 是一個(gè)范圍界定符,因此在它之前定義的變量都可以使用,但是在它之內(nèi)綁定的變量不能用在外面。在一階邏輯術(shù)語(yǔ)中這稱為 Cardinality Quantifier。, children 0 ) from $() ) then send a message to all mothers End 。pending39。這允許引擎使用不在 Working Memory中的數(shù)據(jù)進(jìn)行推論。如果你將模式與 exist 一起使用,那么不管在 working memory 中有多少數(shù)據(jù)匹配約束,規(guī)則只激活一次?!?eval’可以在模式的任意位置使用,但最好的方式是作為規(guī)則 LHS 中最后的條件元素增加。 Drools 支持前綴和中綴符,但是前綴是首選的,因?yàn)榫幗M是默認(rèn)使用前綴的,這樣避免了混淆。 Example . 不等價(jià)的連接 Cheese( ( type == stilton, price 10 ) || age == mature ) // 無(wú)效!因?yàn)? 39。 和 || 約束連接符 Cheese( type == stilton amp。約束之間可以使用‘,’ , 39。 LHS (when) 條件元素 LHS 是規(guī)則條件部分的常用名稱。 noloop 第 16 頁(yè) 共 16 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) 默認(rèn)值 : false 類型 : Boolean 當(dāng)規(guī)則在推論中對(duì) fact進(jìn)行修改后,可能會(huì)導(dǎo)致該規(guī)則的重新激活,引起遞歸。 支持靜態(tài)方法導(dǎo)入,因此你只需要做下面的事情: import static 對(duì)于上面的情況,要使用函數(shù)只需要在推論或 代碼塊中通過(guò)函數(shù)名稱來(lái)調(diào)用它,例如: rule using a static function when eval( true ) then ( hello( Bob ) )。 可能的一個(gè)例子是 Email 服務(wù)。在條件約束中錯(cuò)誤使用 第 12 頁(yè) 共 12 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) 全局變量會(huì)導(dǎo)致意想不到的結(jié)果。在一個(gè)RuleBase 上可以建立多個(gè) Package。當(dāng)然你可以將這也關(guān)鍵字用作方法等定義的一部分,例如 notSomething(),這樣沒(méi)有問(wèn)題。在一個(gè) drl 文件中可以包含多個(gè)規(guī)則,函數(shù)等等。規(guī)則文件里面有兩條規(guī)則,分別是“ Hello World”和“ GoodBye”。 AST 然后將 descr傳入 Package Builder中,由其進(jìn)行打包。 包存后,勾上 CheckBox。 規(guī)則推理引擎做為產(chǎn)生式系統(tǒng)的一部分,當(dāng)進(jìn)行事實(shí)的斷言時(shí),包含三個(gè)階段:匹配、選擇和執(zhí)行,稱做 matchselectact cycle。 第 3 頁(yè) 共 3 頁(yè) 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國(guó) 2 Drools 工作 原理 上文中曾經(jīng)提到過(guò), Drools 是基于 RETE算法的產(chǎn)生式規(guī) 則引擎。在許多軟件組織中正式版 本的間隔是較長(zhǎng)并且較少的,規(guī)則可以在適當(dāng)?shù)陌踩疤嵯聨椭峁┮欢ǖ拿艚菪?。并最好是能夠?qū)崟r(shí)的修改業(yè)務(wù)規(guī)則,這樣就可以做到不用打包編譯發(fā)布等等。這就對(duì)商業(yè)系統(tǒng)提出了較大的挑戰(zhàn)。下面上對(duì)所謂沒(méi)有傳統(tǒng)解決方法的一個(gè)描述: ? 對(duì)于傳統(tǒng)代碼來(lái)說(shuō),問(wèn)題需要的精確度太高。如果你所面對(duì)的問(wèn)題沒(méi)有算法或者模式合適解決,考慮使用規(guī)則。一個(gè)有大量規(guī)則和事實(shí)的系統(tǒng)可能會(huì)很多規(guī)則被滿足,這些規(guī)則被稱為具有沖突性。 第
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1