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

正文內容

drools應用手冊(文件)

2024-12-01 12:42 上一頁面

下一頁面
 

【正文】 。僅有的特別的關鍵字是為了設置,刪除和修改 facts所用。避免在你的領域對象,屬性,方法,函數(shù)以及規(guī)則的其它部分中使用保留字是明智的。 ? package ? function ? global ? import ? template ? attributes ? enabled ? salience ? duration ? init ? action ? reverse ? result ? contains ? excludes 第 10 頁 共 10 頁 機密 – 未經允許不得擴散 紅帽軟件中國 ? memberOf ? matches ? in ? dateeffective ? dateexpires ? noloop ? autofocus ? activationgroup ? agendagroup ? dialect ? ruleflowgroup 當然,你可以將它們用作方法名稱 的一部分,如 notSomething()—— 這完全沒有問題。//39。 /* this is a multiline ment in the left hand side of a rule */ Package 包是規(guī)則以及其它相關結構的一個 集合,如 import 和 global。 運行時的規(guī)則包可以從多個規(guī)則源碼處組裝,當組裝完成時,所有的規(guī)則被放入一個頂級的Package 配置中。 下面的藍圖 顯示一個包中可能包含的所有組件。 Import Import標記就像 java中的含義一樣。這為解析器提供了如何理解你自定義的規(guī)則語言。全部變量通常用來返回數(shù)據(jù),如一個動作的記錄,獲 得提供數(shù)據(jù)或服務給規(guī)則使用。他們常用來將應用程序的對象提供給規(guī)則使用,通常是將數(shù)據(jù)或服務提供給規(guī)則使用(指定使用在規(guī)則推論中的應用服務),從規(guī)則處返回數(shù)據(jù)(如日志或在規(guī)則推論中增加的值)或者從規(guī)則中對應用進行回調。 如果多個 Package 聲明了同樣的全局變量,那么它們必須有相同的類型,并指向同一個全局變量。最好是在將 fact 插入 working memory 之前設置完所有全局變量,如: List list = new ArrayList()。這意味著你可以傳入任何你想要的對象:你可以傳遞一個服務的位置代理,或者可能是一個服務本身。在 DRL文件中,聲明你已經有了一個 EmailService 類型的全局 變量 ,并 給它 一個名 稱為 。 從規(guī)則中設置全局變量的值是非常不合適的,我們建議你在應用程序中通過 working memory的接口設置這個值。函數(shù)最大的用處是被規(guī)則的推論( then)部分中的行為所調用,特別是當一個行為操作需要反復被調用時 —— 如發(fā)送郵件。返回值的概念也和普通方法相同。一個用戶經常問的問題是“為什么使用 when代替 if”。如果你在同一個 DRL中定義同名規(guī)則兩次,在裝載時將產生一個錯誤。規(guī)則使用 end 關鍵字結尾。 end 規(guī)則 屬性 規(guī)則屬性提供了影響規(guī)則行為的一種聲明式的方法,有些十分簡單,而另一些是復雜子系統(tǒng)的一部分,如規(guī)則流。 salience 默認值 : 0 類型 : integer 每一個規(guī)則有一個整數(shù)類型的優(yōu)先級屬性,默認為 0,這個整數(shù)可以使正負數(shù)。 autofocus 自動獲取焦點 默認值 false 類型 : Boolean 當規(guī)則的 autofocus 屬性為 true時,如果該規(guī)則符合激活條件,則該規(guī)則所在 agendagroup自動獲得焦點,允許規(guī)則激發(fā)。 第 17 頁 共 17 頁 機密 – 未經允許不得擴散 紅帽軟件中國 dialect 默認值 : 由 Package 指定 類型 : String 可能值 : java or mvel Dialect 指定在 LHS 代碼表達式或 RHS 代碼塊中使用的語言。 dateexptires 默認值 : N/A 類型 : String, 包含日期 /時間定義 如果當前時間在 dateexpires 指定的時間之后,規(guī)則不能激活。如果 LSH是空的,那它被重寫為 eval(true),這意味著規(guī)則一直是 true 狀態(tài),并且將在 working memory 一建立時就被激發(fā)。一個聲明只能指向一個單獨的 Fact,當‘ and’被滿足是,它匹配超過一個 fact—— 哪一個是它綁定的 fact 呢? Pattern 模式 模式元素是條件元素中最重要的。 Figure . Pattern 在最簡單情況下,沒有約束,它只是簡單的匹配一個類型,下面的例子中這個類型是“ Cheese”。 Example . Pattern $c : Cheese( ) 在模式的圓 括號范圍內是所有操作發(fā)生的地方。amp。符號分隔。amp。 (or)約束連接符允許約束組有多個約束,如: Example . 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 上面例子有兩個約束組,第一個有兩個約束而第二個組有一個約束。如: Example . 使用圓括號改變求值優(yōu)先級 Cheese type is stilton and ( price is less than 20 or age is mature ). Cheese( type == stilton amp。連接符之前被求值。39。 不能用于表達式綁定 Cheese( ( type == stilton amp??梢杂迷诒磉_式綁定中 ‘and’ 39。 Drools支持前綴和 中綴符,但是前綴是首選的,因為編組時默認使用前綴的,這樣避免了混淆。’符合作為‘ and’的同義選擇,不推薦使用,但是作為向后兼容原因它仍然在語言中提供。引擎實際上并不理解‘ or’條件元素,而 是用許多不同的邏輯轉換,規(guī)則被重寫為許多的子規(guī)則;轉換后的規(guī)則將單個‘ or’作為根節(jié)點并且每個子規(guī)則有一個邏輯結果。 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’條件元素也允許使用模式綁定,這意味著每一個結果子規(guī)則將綁定它的模式到模式綁定。這兩個規(guī)則獨立工作在 Working Memory中,這意味著都可以進行匹配,激活和激發(fā) —— 那里沒有簡捷的方式。這可以涉及在規(guī)則 LHS 中綁定的變量和在規(guī)則 Package 中 定義的函數(shù)。因此最好只是在函數(shù)的返回值隨時發(fā)生變化的情況下使用它。not39。 Example . No Busses not Bus() Example . No red Busses not Bus(color == red) not ( Bus(color == red, number == 42) ) //brackets are optional 第 25 頁 共 25 頁 機密 – 未經允許不得擴散 紅帽軟件中國 not ( Bus(color == red) and Bus(color == blue)) // not with nested 39。是一階邏輯的存在判斷量詞,檢查在 Working Memory 中某些 Fact 的存在性。and39。english39。 要聲明在 working memory 中給定類型的所有 fact 必須匹配一組約束, forall 可以簡單的使用單模式。例如: 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 頁 機密 – 未經允許不得擴散 紅帽軟件中國 ) then not all employees have health and dental care end 作為一個邊注, forall 條件元素等價于寫為: not( first pattern and not ( and remaining patterns ) ) 要注意的是 forall 是一個范圍界定符,因此在它之前定義的變量都可以使用,但是在它之內綁定的變量不能用在外面。它是一種強大的結構,允許在盒子(指 Drools 的運行環(huán)境)的外面與其它應用程序組件和框架集成。 這是綁定其它模式子字段的一個簡單例子: rule validate zipcode when Person( $personAddress : address ) Address( zipcode == 23920W) from $personAddress then zip code is ok end 利用 Drools 引擎提供的新的表示方法帶來的靈活性,你可以用很多辦法來解決這個問題。在那種情況中, from將遍歷集合中所有對象,并嘗試單獨匹配每一個對象。在一階邏輯術語中這稱為 Cardinality Quantifier。如果對一個系統(tǒng)發(fā)現(xiàn) 3 個以上的警報,規(guī)則將激發(fā)。(譯者注:保留原文。 rule Send a message to all mothers when 第 30 頁 共 30 頁 機密 – 未經允許不得擴散 紅帽軟件中國 $town : Town( name == 39。, children 0 ) from $() ) then send a message to all mothers End 。 ) $mothers : LinkedList() from collect( Person( gender == 39。但是, collect是一個范圍界定符,意味著在其內的任何綁定不能在 它的外面使用。例如你可以使用默 認的 java集合如 ArrayList、 LinkedList、 HashSet 等等,或者你自己定義的類,只要它符合上面的條件。pending39。 下一個例子舉例如何在一個 hibernate查詢結果上進行推論, Restaurant 模式 將依次在每一個結果上進行推論和綁定。 rule validate zipcode when 第 28 頁 共 28 頁 機密 – 未經允許不得擴散 紅帽軟件中國 $p : Person( ) $a : Address( zipcode == 23920W) from $ then zip code is ok end 前面的例子在單模式上推論。 用來定義對象源的表達式可以是任何符合 MVEL 語法的表達式。這允許引擎使用不在 Working Memory中的數(shù)據(jù)進行推論。red39。red39。 Forall 條件元素在所有匹配最初模式的 fact也同時匹配后面的模式的情況下為 true。如果你將模式與
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1