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

正文內(nèi)容

drools應用手冊-閱讀頁

2024-11-27 12:42本頁面
  

【正文】 一個屬性。設置 noloop為 true 可以阻止該規(guī)則被再次激活。優(yōu)先級數(shù)字高的規(guī)則會比優(yōu)先級低的規(guī)則先執(zhí)行 。只有在具有焦點的 agenda group 中的規(guī)則才能夠激發(fā)。 activationgroup 默認值 : N/A 類型 : String 在同名 activationgroup 中的規(guī)則將以互斥的方式激發(fā)。 Activationgroup 屬性可以是任何字符,只要所有你需要放在同一個組中的規(guī)則中的 activationgroup 屬性是相同的即可。當前兩種語言有效, Java 和MVEL。 dateeffective 默認值 : N/A 類型 : String, 包含日期 /時間定義 規(guī)則只能在 dateeffective 指定的日期和時間之后激活。 duration 默認值 : N/A 類型 : long Duration 指 出規(guī)則將在指定的一段時間后激發(fā),如果那個時候規(guī)則的激活條件還是處于 true的情況下。它包含 0 個或更多的條件元素。 第 18 頁 共 18 頁 機密 – 未經(jīng)允許不得擴散 紅帽軟件中國 Example: Rule Syntax Overview Example rule no CEs when then action* end 在內(nèi)部被重寫為 : rule no CEs when eval( true ) then action* end 條件元素工作在一種或多種模式下(將在下面介紹)。注意在“ and”之 前不能使用像“ or”這樣的聲明,你想一下就知道這是必然的。下面的實體關系圖給出了一個構建模式約束的不同部分以及它們是如何一起工作的一個概要圖,每一個都會使用藍圖和例子詳細說明。下面的藍圖顯示了關于這點的語法。 第 20 頁 共 20 頁 機密 – 未經(jīng)允許不得擴散 紅帽軟件中國 這意味著模式將匹配 working memory 中的每一個 Cheese 對象。變量的前綴使用的 $是可選的,但是在復雜的規(guī)則中它會很方便用來區(qū)別變量與字段的不同。一個約束可以是字段約束,內(nèi)部 Eval(在 中稱為斷言)或一個約束組。amp。39。||39。 Figure . Constraints Figure . Constraint Figure . Group Constraint 逗號 (,)被用來分隔約束組,它隱含著‘ and’的連接語法。amp。39。||39。amp。amp。 連接符按照以下順序求值,從高到低: amp。 || , 在任何邏輯或數(shù)學表達式中,可以通過圓括號來改 變求值的順序。amp。amp。 要特別注意的是, 39。amp。和逗號雖然有著同樣的語義,但是逗號不能被包含在復雜的約束表達式中。,39。amp。amp。and39。 LHS 的根元素是一個隱含的前綴 And 元素,不需要指定。 第 22 頁 共 22 頁 機密 – 未經(jīng)允許不得擴散 紅帽軟件中國 Figure . prefixAnd Example . prefixAnd (and Cheese( cheeseType : type ) Person( favouriteCheese == cheeseType ) ) Example . implicit root prefixAnd when Cheese( cheeseType : type ) Person( favouriteCheese == cheeseType ) 中綴‘ and’與圓括號在一起進行顯式的分組。amp。 Figure . infixAnd Example . infixAnd Cheese( cheeseType : type ) and Person( favouriteCheese == cheeseType ) //infixAnd (Cheese( cheeseType : type ) and (Person( favouriteCheese == cheeseType ) or Person( favouriteCheese == cheeseType ) ) //infixAnd with grouping ‘or’ ‘ or’條件元素用來組織其它條件元素?!?Or’條件元素的行為與約束和字段約束中的限制中使用的‘ ||’連接符是不同的。每個子規(guī)則可以像正常的規(guī)則一樣激活和激發(fā),在子規(guī)則直接沒有交互的行為 —— 這可能給新的規(guī)則編制者帶來很大的混淆?!?||’符號作為 or 的同義操作,不推薦使用,只是因為歷史的原因在語法中保留。 Example . or with binding pensioner : (or Person( sex == f, age 60 ) Person( sex == m, age 65 ) ) 也允許顯式綁定每一個模式。上面的例子將在內(nèi)部產(chǎn)生的兩個規(guī)則中獲得結果。 最好的考慮方法是將 OR 條件元素看成產(chǎn)生兩個額外規(guī)則的快捷方式。 第 24 頁 共 24 頁 機密 – 未經(jīng)允許不得擴散 紅帽軟件中國 ‘eval’ Figure . eval Eval 本質(zhì)上是一個大雜燴( catch all),它允許任何語義代碼被執(zhí)行,只要最后返回一個 boolean值。使用 eval 可以減少規(guī)則的聲明情況以及用一個低性能的引擎獲得結果。 Eval 不能被索引,因此不能對使用 eval 的字段約束進行優(yōu)化。普通的字段約束中不能調(diào)用 drools 中定義的函數(shù)。 Example . eval p1 : Parameter() p2 : Parameter() eval( ().containsKey(()) ) eval( isValid(p1, p2) ) //只是如何在 LHS 中調(diào)用函數(shù)的方法 – 函數(shù)名是 isValid ‘not’ Figure . not 39。是一階邏輯的存在判斷量詞,檢查在 Working Memory 中某些 Fact 的存在性。將‘ not’理解為那里必須沒有任何 … 。and39。exists39。將 exist理解為至少有一個 … 。 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。 infix used here as ony two patterns ‘forall’ Figure . forall Forall 條件元素在 Drools 中完全支持一階邏輯。 rule All english buses are red when forall( $bus : Bus( type == 39。) Bus( this == $bus, color = 39。 ) ) then all english buses are red 第 26 頁 共 26 頁 機密 – 未經(jīng)允許不得擴散 紅帽軟件中國 end 在上面的規(guī)則中,我們選擇所有類型為 english 的 Bus對象,然后對每一個匹配的 fact 進行接下來的模式匹配,如果它們都匹配,則 forall 條件元素被求值為 true。 Example . Single Pattern Forall rule All Buses are Red when forall( Bus( color == 39。 ) ) // 這里省略了最初的 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 可以嵌套在其它條件元素中組成完整的表達式。 ‘from’ Figure . from ‘ from’條件元素允許你為模式聲明一個推論的來源。源數(shù)據(jù)可能是綁定變量的子字段,或者方法調(diào)用的結果。一個常見的例子是使用 hibernate 命名查詢從數(shù)據(jù)庫中返回需要的數(shù)據(jù)。例如,它允許你容易的使用對象 特性導航,執(zhí)行方法調(diào)用以及訪問映射和集合元素。下面是同樣的結果,但是用“ .”來 實現(xiàn)。 Form 元素也支持返回對象集合的對象源。例如,如果我們希望規(guī)則對訂單中的每一個項目增加 10%的折扣,可以如下: rule apply 10% discount to all items over US$ 100,00 in an order when $order : Order() $item : OrderItem( value 100 ) from $ then apply discount to $item end 上面的例子將導致每一次遇到給定訂單的任一個項目的值大于 100 時都激發(fā)規(guī)則。 p : Person( ) Restaurant( food == ) from ( list restaurants by postcode ) .setProperties( [ postcode : ] ) .list() ‘collect’ 第 29 頁 共 29 頁 機密 – 未經(jīng)允許不得擴散 紅帽軟件中國 Figure . collect Collect條件元素允許規(guī)則對從給定的源或 WorkingMemory 中的對象集合進行推論。下面是簡單的例子: import rule Raise priority if system has more than 3 pending alarms when $system : System() $alarms : ArrayList( size = 3 ) from collect( Alarm( system == $system, status == 39。 ) ) then Raise priority, because system $system has 3 or more alarms pending. The pending alarms are $alarms. end 在上面的例子中,規(guī)則將為每一個給定的系統(tǒng)在 working memory 中尋找所有未解決的警報,并將它們在 ArrayList 中分組。 Collect條件元素結果模式可以接受任何實現(xiàn)了 造函數(shù)的類。 源模式和結果模式都可以被約束為任何其它模式。 Both source and result patterns can be constrained as any other pattern.) 在 collect 條件元素前的綁定變量中的元素是在源與結果模式的范圍內(nèi),你可以使用它們限制你的源和結果模式。 Collect 接受嵌套的 from元素,因此下面的例子是有效的 collect 使用: import 。Paris39。F
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1