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

正文內(nèi)容

drools應(yīng)用手冊(cè)(參考版)

2024-11-11 12:42本頁面
  

【正文】 , children 0 ) from $() ) then send a message to all mothers End 。 ) $mothers : LinkedList() from collect( Person( gender == 39。 rule Send a message to all mothers when 第 30 頁 共 30 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 $town : Town( name == 39。但是, collect是一個(gè)范圍界定符,意味著在其內(nèi)的任何綁定不能在 它的外面使用。(譯者注:保留原文。例如你可以使用默 認(rèn)的 java集合如 ArrayList、 LinkedList、 HashSet 等等,或者你自己定義的類,只要它符合上面的條件。如果對(duì)一個(gè)系統(tǒng)發(fā)現(xiàn) 3 個(gè)以上的警報(bào),規(guī)則將激發(fā)。pending39。在一階邏輯術(shù)語中這稱為 Cardinality Quantifier。 下一個(gè)例子舉例如何在一個(gè) hibernate查詢結(jié)果上進(jìn)行推論, Restaurant 模式 將依次在每一個(gè)結(jié)果上進(jìn)行推論和綁定。在那種情況中, from將遍歷集合中所有對(duì)象,并嘗試單獨(dú)匹配每一個(gè)對(duì)象。 rule validate zipcode when 第 28 頁 共 28 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 $p : Person( ) $a : Address( zipcode == 23920W) from $ then zip code is ok end 前面的例子在單模式上推論。 這是綁定其它模式子字段的一個(gè)簡(jiǎn)單例子: rule validate zipcode when Person( $personAddress : address ) Address( zipcode == 23920W) from $personAddress then zip code is ok end 利用 Drools 引擎提供的新的表示方法帶來的靈活性,你可以用很多辦法來解決這個(gè)問題。 用來定義對(duì)象源的表達(dá)式可以是任何符合 MVEL 語法的表達(dá)式。它是一種強(qiáng)大的結(jié)構(gòu),允許在盒子(指 Drools 的運(yùn)行環(huán)境)的外面與其它應(yīng)用程序組件和框架集成。這允許引擎使用不在 Working Memory中的數(shù)據(jù)進(jìn)行推論。例如: 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 頁 共 27 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 ) 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)綁定的變量不能用在外面。red39。 要聲明在 working memory 中給定類型的所有 fact 必須匹配一組約束, forall 可以簡(jiǎn)單的使用單模式。red39。english39。 Forall 條件元素在所有匹配最初模式的 fact也同時(shí)匹配后面的模式的情況下為 true。and39。如果你將模式與 exist 一起使用,那么不管在 working memory 中有多少數(shù)據(jù)匹配約束,規(guī)則只激活一次。是一階邏輯的存在判斷量詞,檢查在 Working Memory 中某些 Fact 的存在性。 infix used here as ony two patterns ‘exists’ Figure . exists 39。 Example . No Busses not Bus() Example . No red Busses not Bus(color == red) not ( Bus(color == red, number == 42) ) //brackets are optional 第 25 頁 共 25 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 not ( Bus(color == red) and Bus(color == blue)) // not with nested 39。括號(hào)是可選的。not39。 對(duì)于熟悉 ,舊的 Drools參數(shù)和條件標(biāo)簽等同于綁定變量到適當(dāng)?shù)念愋停缓笤谝粋€(gè) eval 節(jié)點(diǎn)中使用它。因此最好只是在函數(shù)的返回值隨時(shí)發(fā)生變化的情況下使用它。‘ eval’可以在模式的任意位置使用,但最好的方式是作為規(guī)則 LHS 中最后的條件元素增加。這可以涉及在規(guī)則 LHS 中綁定的變量和在規(guī)則 Package 中 定義的函數(shù)。當(dāng)你按照這種思路思考時(shí),對(duì)于一個(gè)規(guī)則如果 OR 兩邊的條件都為 true 時(shí)能夠被激活多次就很清晰了。這兩個(gè)規(guī)則獨(dú)立工作在 Working Memory中,這意味著都可以進(jìn)行匹配,激活和激發(fā) —— 那里沒有簡(jiǎn)捷的方式。 (or pensioner : Person( sex == f, age 60 ) pensioner : Person( sex == m, age 65 ) ) ‘ or’條件元素從多個(gè)規(guī)則中產(chǎn)生結(jié)果,稱為子規(guī)則,對(duì)每一個(gè)可能的邏輯輸出。 Figure . infixOr Example . infixOr Cheese( cheeseType : type ) or Person( favouriteCheese == cheeseType ) //infixOr (Cheese( cheeseType : type ) or (Person( favouriteCheese == cheeseType ) and Person( favouriteCheese == cheeseType ) ) //infixOr with grouping ‘ or’條件元素也允許使用模式綁定,這意味著每一個(gè)結(jié)果子規(guī)則將綁定它的模式到模式綁定。 第 23 頁 共 23 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 Figure . prefixOr Example . prefixOr (or Person( sex == f, age 60 ) Person( sex == m, age 65 ) 中綴‘ or’與圓括號(hào)一起使用。引擎實(shí)際上并不理解‘ or’條件元素,而 是用許多不同的邏輯轉(zhuǎn)換,規(guī)則被重寫為許多的子規(guī)則;轉(zhuǎn)換后的規(guī)則將單個(gè)‘ or’作為根節(jié)點(diǎn)并且每個(gè)子規(guī)則有一個(gè)邏輯結(jié)果。 Drools 支持前綴和中綴符,但是前綴是首選的,因?yàn)榫幗M是默認(rèn)使用前綴的,這樣避免了混淆?!献鳛椤?and’的同義選擇,不推薦使用,但是作為向后兼容原因它仍然在語言中提供。‘ amp。 Drools支持前綴和 中綴符,但是前綴是首選的,因?yàn)榫幗M時(shí)默認(rèn)使用前綴的,這樣避免了混淆。條件元素用來將其它條件元素組合在一起??梢杂迷诒磉_(dá)式綁定中 ‘a(chǎn)nd’ 39。 price 10 ) || age == mature) // 有效! amp。 不能用于表達(dá)式綁定 Cheese( ( type == stilton amp。 Example . 不等價(jià)的連接 Cheese( ( type == stilton, price 10 ) || age == mature ) // 無效!因?yàn)? 39。39。amp。連接符之前被求值。 ( price 20 || age == mature ) ) 在上面的例子中,圓括號(hào)使得 ||連接符在 amp。如: Example . 使用圓括號(hào)改變求值優(yōu)先級(jí) Cheese type is stilton and ( price is less than 20 or age is mature ). Cheese( type == stilton amp。amp。 price 10, age == mature ) // Cheese type is stilton and price 10, and age is mature Cheese( type == stilton || price 10, age == mature ) // Cheese type is stilton or price 10, and age is mature 上面例子有兩個(gè)約束組,第一個(gè)有兩個(gè)約束而第二個(gè)組有一個(gè)約束。 和 || 約束連接符 Cheese( type == stilton amp。 (or)約束連接符允許約束組有多個(gè)約束,如: Example . amp。 (and) 和 39。amp。 Example . 逗號(hào)連接的約束組 Cheese 類型是 stilton 并且 price 10 并且 age==mature. Cheese( type == stilton, price 10, age == mature ) 上面的例子是有三個(gè)約束組,每一個(gè)是單獨(dú)的約束條件: group 1: type is stilton type == stilton group 2: price is less than 10 price 10 第 21 頁 共 21 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 group 3: age is mature age == mature 39。符號(hào)分隔。 或者 39。amp。約束之間可以使用‘,’ , 39。 Example . Pattern $c : Cheese( ) 在模式的圓 括號(hào)范圍內(nèi)是所有操作發(fā)生的地方。 Example . Pattern Cheese( ) 為了能夠引用匹配的對(duì)象,使用一個(gè)模式綁定變量如‘ $c’。 Figure . Pattern 在最簡(jiǎn)單情況下,沒有約束,它只是簡(jiǎn)單的匹配一個(gè)類型,下面的例子中這個(gè)類型是“ Cheese”。 第 19 頁 共 19 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 Figure . 模式實(shí)體關(guān)系圖 在 ER 圖的最頂部,你可以看到模式包含 0..n 個(gè)約束,并且可以有一個(gè)可選的模式綁定。一個(gè)聲明只能指向一個(gè)單獨(dú)的 Fact,當(dāng)‘ and’被滿足是,它匹配超過一個(gè) fact—— 哪一個(gè)是它綁定的 fact 呢? Pattern 模式 模式元素是條件元素中最重要的。常用的一種是“ and”,它是當(dāng) LHS中的多個(gè)條件元素之間沒有任何連接時(shí)的默認(rèn)情況。如果 LSH是空的,那它被重寫為 eval(true),這意味著規(guī)則一直是 true 狀態(tài),并且將在 working memory 一建立時(shí)就被激發(fā)。 LHS (when) 條件元素 LHS 是規(guī)則條件部分的常用名稱。 dateexptires 默認(rèn)值 : N/A 類型 : String, 包含日期 /時(shí)間定義 如果當(dāng)前時(shí)間在 dateexpires 指定的時(shí)間之后,規(guī)則不能激活。 Dialect可以在 Package級(jí)別統(tǒng)一指定,而 Rule屬性中指定的 dialect將局部覆蓋掉 Package中的定義。 第 17 頁 共 17 頁 機(jī)密 – 未經(jīng)允許不得擴(kuò)散 紅帽軟件中國 dialect 默認(rèn)值 : 由
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1