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

正文內容

drools應用手冊-文庫吧資料

2024-11-15 12:42本頁面
  

【正文】 Package 指定 類型 : String 可能值 : java or mvel Dialect 指定在 LHS 代碼表達式或 RHS 代碼塊中使用的語言。這個意思時在這個組中第一條被激發(fā)的規(guī)則將取消其它規(guī)則的激發(fā),即使它們已經在激發(fā)隊列中。 autofocus 自動獲取焦點 默認值 false 類型 : Boolean 當規(guī)則的 autofocus 屬性為 true時,如果該規(guī)則符合激活條件,則該規(guī)則所在 agendagroup自動獲得焦點,允許規(guī)則激發(fā)。 agendagroup 默認值 : MAIN 類型 : String Agenda group 允許用戶對分隔 Agenda 執(zhí)行區(qū)提供更多的控制。 salience 默認值 : 0 類型 : integer 每一個規(guī)則有一個整數(shù)類型的優(yōu)先級屬性,默認為 0,這個整數(shù)可以使正負數(shù)。 noloop 第 16 頁 共 16 頁 機密 – 未經允許不得擴散 紅帽軟件中國 默認值 : false 類型 : Boolean 當規(guī)則在推論中對 fact進行修改后,可能會導致該規(guī)則的重新激活,引起遞歸。 end 規(guī)則 屬性 規(guī)則屬性提供了影響規(guī)則行為的一種聲明式的方法,有些十分簡單,而另一些是復雜子系統(tǒng)的一部分,如規(guī)則流。 Example 規(guī)則語法 rule name attribute* when conditional element* then action* end Example 規(guī)則示例 第 15 頁 共 15 頁 機密 – 未經允許不得擴散 紅帽軟件中國 rule Approve if not rejected salience 100 agendagroup approval when not Rejection() p : Policy(approved == false, policyState:status) exists Driver(age 25) Process(status == policyState) then log(APPROVED: due to no objections.)。規(guī)則使用 end 關鍵字結尾。如果規(guī)則名稱中有空格,需要使用雙引號包含(好習慣是定義名稱時都使用雙引號)。如果你在同一個 DRL中定義同名規(guī)則兩次,在裝載時將產生一個錯誤。而“ when”代表著它不約束在特定的評估順序或時間點,在引擎生命周期的任何時候“ when”都可以執(zhí)行。一個用戶經常問的問題是“為什么使用 when代替 if”。 支持靜態(tài)方法導入,因此你只需要做下面的事情: import static 對于上面的情況,要使用函數(shù)只需要在推論或 代碼塊中通過函數(shù)名稱來調用它,例如: rule using a static function when eval( true ) then ( hello( Bob ) )。返回值的概念也和普通方法相同。 } 注意 function 關鍵字的使用,雖然它并不真的是 java 的一部分。函數(shù)最大的用處是被規(guī)則的推論( then)部分中的行為所調用,特別是當一個行為操作需要反復被調用時 —— 如發(fā)送郵件。它們不可能做任何超過你可以在幫助類(在 java中定義,被設置入規(guī)則的 Working Memory 中的類)中做到的事情(實際上,編譯器為后面的場景產生幫助類,那樣幫助不大)。 從規(guī)則中設置全局變量的值是非常不合適的,我們建議你在應用程序中通過 working memory的接口設置這個值。 第 13 頁 共 13 頁 機密 – 未經允許不得擴散 紅帽軟件中國 全局變量不是被設計用來在規(guī)則之間共享數(shù)據的,并且它們永遠都不應該用于這個目的。在 DRL文件中,聲明你已經有了一個 EmailService 類型的全局 變量 ,并 給它 一個名 稱為 。 可能的一個例子是 Email 服務。這意味著你可以傳入任何你想要的對象:你可以傳遞一個服務的位置代理,或者可能是一個服務本身。 ( myGlobalList, list )。最好是在將 fact 插入 working memory 之前設置完所有全局變量,如: List list = new ArrayList()。 rule Using a global when eval( true ) then ( Hello World )。 如果多個 Package 聲明了同樣的全局變量,那么它們必須有相同的類型,并指向同一個全局變量。引擎不會通知和跟蹤全局變量的值變更。他們常用來將應用程序的對象提供給規(guī)則使用,通常是將數(shù)據或服務提供給規(guī)則使用(指定使用在規(guī)則推論中的應用服務),從規(guī)則處返回數(shù)據(如日志或在規(guī)則推論中增加的值)或者從規(guī)則中對應用進行回調。在條件約束中錯誤使用 第 12 頁 共 12 頁 機密 – 未經允許不得擴散 紅帽軟件中國 全局變量會導致意想不到的結果。全部變量通常用來返回數(shù)據,如一個動作的記錄,獲 得提供數(shù)據或服務給規(guī)則使用。 Global 全局變量 Global是全局變量。這為解析器提供了如何理解你自定義的規(guī)則語言。 Drools 從同名的 java 包中自動導入類。 Import Import標記就像 java中的含義一樣。除了 package 和 expander 第 11 頁 共 11 頁 機密 – 未經允許不得擴散 紅帽軟件中國 標記必須放在文件的頂部,在其它規(guī)則之前,其它關鍵字元素的使用沒有任何順序要求,可以使用在文件的任何地方。 下面的藍圖 顯示一個包中可能包含的所有組件。在一個RuleBase 上可以建立多個 Package。 運行時的規(guī)則包可以從多個規(guī)則源碼處組裝,當組裝完成時,所有的規(guī)則被放入一個頂級的Package 配置中。一個包通過名稱空間描繪,這樣很好的保持了一組規(guī)則的獨立性。 /* this is a multiline ment in the left hand side of a rule */ Package 包是規(guī)則以及其它相關結構的一個 集合,如 import 和 global。語法分析器會自動忽略注釋的內容。//39。39。 ? 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()—— 這完全沒有問題。當然你可以將這也關鍵字用作方法等定義的一部分,例如 notSomething(),這樣沒有問題。避免在你的領域對象,屬性,方法,函數(shù)以及規(guī)則的其它部分中使用保留字是明智的。 特別注意的是,空白是不重要的,除非在 DSL中使用,在 DSL中每一行會先于下一行處理(空白在這里可能有很重要的作用)。僅有的特別的關鍵字是為了設置,刪除和修改 facts所用。 LHS是規(guī)則的條件部分,它遵循下面將提到的語法。 規(guī)則構成 規(guī)則 具有如下主體結構 : rule name attributes when LHS then RHS end 規(guī)則的結構是非常簡單的,許多符號都是不需要的,甚至“ name”兩邊的引號也是可選的。所有的元素都是可選的,因此你只要用你所需要的就行了。 DRL 是簡單的 text 文件格式。在一個 drl 文件中可以包含多個規(guī)則,函數(shù)等等。接下來我們先學習一下Drools文件里的語法吧。然后執(zhí)行其 RHS,輸出 message。實際上,直到現(xiàn)在 Working Memory中的 Message 還沒有被更改,當用戶調用 update 方法時 ,事實才被修改 ,通知也會通知 Working Memory, Message這個事實已經被更新,要求進行新一輪的規(guī)則匹配。 這個事實就會去匹配各個規(guī)則,當匹配到“ Hello World”規(guī)則的時候,他就符合LHT, RHT會被執(zhí)行。我們可以在控制窗口中看到運行的結果: 我們一起來解析一下這個例子的運行步驟: Working Memory插入了一個, message為 [Hello World], status 為 []的 Message對象。 現(xiàn)在我們回過頭來看看這個例子的執(zhí)行結果吧。當一個事實傳進來時,他會先去 LHS匹配,如果匹配成功就執(zhí)行 RHS的代碼;否則,就不執(zhí)行 RHS。規(guī)則文件里面有兩條規(guī)則,分別是“ Hello World”和“ GoodBye”。 end rule GoodBye when Message( status == , myMessage : message ) then ( myMessage )。 ( )。 rule Hello World when m : Message( status == , myMessage : message ) then ( myMessage )。 Agenda 負有規(guī)劃激活規(guī)則運行的責任。 Working Memory 包含許多子組件,如 Working Memory Event Support(事件支持 ), Truth Maintenance System(真值維護系統(tǒng) ), Agenda 和 Agenda Event Support(事件支持 )。 Package 在任何時候都可以向 RuleBase 中添加或刪除。(請參考下圖理解) Package 對象是自包含并可配置的,它是一個包含規(guī)則的序列化的對象。 AST 然后將 descr傳入 Package Builder中,由其進行打包。 編制的過程包括為規(guī)則建立 DRL 或 XML文件,傳入一個由 Antlr 3文法器定義的解析器中。首先,是 文件。第 1 個是調用規(guī)則文件的 Java 文件,里面寫有如何去加載和執(zhí)行規(guī)則文件;第 2 個文件就是規(guī)則文件,里面定義了一些規(guī)則。接下來我們看看這 個項目的結構吧。 來到例子的生成頁面,勾上頭兩項:生成一個 Hello World 的規(guī)則文件和生成一個執(zhí)行規(guī)則文件的 Java 文件。 首先,打開 File New Other窗口 打開新建項目窗口,展開 Drools 節(jié)點選擇 Drools Project再點擊 Next 按鈕。 第 2 頁 共 2 頁 機密 – 未經允許不得擴散 紅帽軟件中國 到此為止, Drools 的 Eclipse 插件 安裝已經成功。 包存后,勾上 CheckBox。我們就看到 Drools插件已經加載進來,看下圖: 然后進入 Drools Install Drools Runtime 點擊 Add 按鈕。把解壓出來的 features 和 plugins 文件夾拷貝到 Eclipse 安裝目錄下 dropins文件夾, 然后重啟 Eclipse。每個非根結點都代表著產生式左部的一個模式,從根結點到終結點的路徑表示產生式的左部。 Token 是 WME 的列表,包含有多個 WME,(在 Fy 的論文中,把 Token看成是 WME的列表或者單個 WME,為了闡述方便,本文將把 Token 只看成 WME 的列表,該列表可以包含一個 WME或者多個 WME),用于 2in
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1