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

正文內(nèi)容

drools使用手冊第三章(專業(yè)版)

2026-01-14 04:41上一頁面

下一頁面
  

【正文】 eval(Goodbye)/eval /lhs rhs goodbyeWorld( goodbye )。在代碼片斷中可以包含函數(shù)調(diào)用。 . XML格式 一個完整的用語取代 XSD 的 WSC標(biāo)準(zhǔn)( XMLSchema)已經(jīng)提供,它也使用 XML 語言進行描述,在這里不再重復(fù)說明該規(guī)范。并重復(fù)這個過程。在任何情況下,規(guī)則可以很好的與扁平對象模型一起工作。)。我們可以在普通的 DRL 的 LHS 條件中向下面這樣表達: Cheese(age 5, price == 20, type==stilton, country==ch) 如果你之前確認(rèn)你在任何時候都需要用到上面所有的屬性,那很容易使用 DSL對上面的規(guī)則 LHS 進行編碼。這使得事情變得非常流暢。注意圍繞的字符(雙引號)在進行內(nèi)部替代時不會被包含進 去,只有中間的內(nèi)容被使用(而隨后到行尾的內(nèi)容,將被視為 Case 中的其它情況)。如果你的規(guī)則的條件或推論遵循相似的模式,可以用模板的方式表達;當(dāng)你希望隱藏實現(xiàn)的細(xì)節(jié),而將焦點放在商業(yè)規(guī)則上時;或者你希望通過提供預(yù)定義的模版來控制規(guī)則的修改;這些都適合使用 DSL。 下例為所有 30 歲以上的人建立了一個簡單的查詢。 (true)。是一階邏輯的存在判斷量詞,檢查在 Working Memory 中某些 Fact 的存在性。 OR的最好的使用方式是作為產(chǎn)生兩個額外規(guī)則的捷徑。注意在這里我們不需要綁定 boyAge,這樣看起來容易閱讀一些。下面的例子顯示了綁定到 Cheese 對象實例的變量 $stilton 被用來對 Cheesery 對象進行約束。 有效操作 : ? true ? false 例 . Boolean Literal Constraint Cheese( smelly == true ) Matches 匹配操作 任何有效的 Java 正則表達式可以用來對字符串字段進行匹配。 注:在 版本中可直接使用原類型,不再需要封箱和拆箱支持。第二個例子引用兩 個字段約束,它們使用逗號分開,這意味著‘ and’。 . Rule Attriutes 規(guī)則屬性 圖 . rule attributes . noloop 無循環(huán) 默認(rèn)值 : false 類型 : Boolean 當(dāng)規(guī)則在推論中對 fact 進行修改后,可能會導(dǎo)致該規(guī)則的重新激活,引起遞歸。規(guī)則使用 end 關(guān)鍵字 結(jié)尾。然后在規(guī)則的推論中,你就可以使用類似 (number,message)這樣的調(diào)用。 The following rail road diagram shows all the ponents that may make up a package. Note that a package MUST have a namespace and be declared using standard java conventions for package names。 . Reserved words 在規(guī)則語言中使用了一些保留字。 ATTRIBUTES(通常是可選項)指出規(guī)則的行為表現(xiàn)。對該技術(shù)非常有興趣的話,你可以查閱“ ” ,那是 Antlr3 為規(guī)則語言提供的語法分析。你可以認(rèn)為這些 dsl 文件也是對你的域模型的映射(它為你提供了一點的隔絕性)。包名也就是名稱空間名,與文件或目錄名稱無關(guān)。 Global 不會設(shè)置到 Working Memory中,因此當(dāng)全局變量發(fā)生改變時,引擎不會得知;因為這個原因,全局變量不能用在條件約束上,除非這個值不會發(fā)生改變。在規(guī)則的推論中調(diào)用一個函數(shù),簡單的使用函數(shù)名稱,并且傳入?yún)?shù)即可,就像方法調(diào)用一樣。將你建立的新對象放到 working memory 中。Activationgroup 屬性可以是任何字符,只要所有你需要放在同一個組中的規(guī)則中的 activationgroup 屬性是相同的即可。 示例,查閱前面的 Cheese 類,這個: Cheese( type==?)使用了實例的 getType()方法。 Null 注意:你可以使用 ==和 !=將字段與 null 關(guān)鍵字進行比較,象Cheese(type!=null)。聲明不能被用來 進行匹配 (matchs)操作,雖然它與約束一起工作。M39。 圖 . and 有效的子條件元素 (用括號進行組合 ): and, or, not, exists, column 例 . Column Cheese( cheeseType : type ) amp。但是當(dāng)函數(shù)的返回值不斷改變時(這樣的函數(shù)不能用在值約束中),使用 eval 非常合適。如果只是要求 Column,則意味著對每一個符 合的 Column。另一個要注意的是返回值約束,返回值片斷必須返回一個對象而不是原型。 Person person = ( Person ) ( person )。 分解器將獲得你指定的表達式,然后取出輸入中的 {something}(稱為 Tokens)值進行匹配。 [when]And = and 上面定義的翻譯規(guī)則,將下面的輸入翻譯成指定的結(jié)果 例 . Some examples as processed There is a Person with name of kitty Person(name=kitty) Person is at least 42 years old and lives in atlanta Person(age 42, location=atlanta) Log boo (boo)。 . 增加 facts的約束條件 當(dāng)編寫規(guī)則表達式時,通常要對 fact聲明增加許多約束。{country}39。 { 和 }不包括在被提取的值中,它們只是用來為tokens 劃分 界限,你不能將 { 和 }在 DSL 表達式中當(dāng)其它字符使用,但是可以在目標(biāo)中使用。 ? 建立新的 DSL,開始從前面的步驟中增加聲明。但是我們希望那不是一個默認(rèn)選擇,因為 XML 非常的不易閱讀,并且會使得規(guī)則膨脹的很厲害。在斷言和返回值約束中允許包含 java 表達式。注意 的 DSL 沒有太高的價值導(dǎo)入 drools 3XML。 。 /java:consequence /rule . 整合到 Drools 3 通常需要將 Drools2 整合到 3的 XML格式,如果你已經(jīng)有了規(guī)則庫,希望導(dǎo)入Drools3。它允許你指定一個類型并且可以綁定變量到類的實例上。 XML 格式中沒有任何擴展和變化,所有 XML 支持的特性,在 DRL 中也支持。如果你是從頭開始的,建議按照下面的流程安排工作: ? 捕獲規(guī)則為松散的“ if then”聲明,這主要考慮到尺寸和復(fù)雜度(可能在一個文本文檔中) ? 在捕獲的規(guī)則中尋找重復(fù)的聲明。 Token占位符所對應(yīng)的值被保存在以 token 名稱為基礎(chǔ)的 map中,然后用來對目標(biāo)進行值替換。{country}39。 DSL 表達式的處理根據(jù)映射文件的順序,按照從頂部到底部的順序。 } 不要忘記 ,如果你從用戶處捕捉字符串,你也需要在表達式右邊的映射出加上引號,就像一個普通的規(guī)則一樣,因為作為映射的結(jié)果在規(guī)則語言中也必須是有效的。在 [when]之后是要用在規(guī)則之內(nèi)的表達式(通常是自然語言表達式,但不是必需的)。 ()。這樣的話,如果你綁定了 field 在一個 int 原型數(shù)值上,它的行為在規(guī)則中看起來像對象一樣 (如斷言、返回值約束和 RHS)。存在的意思是至少有一個。你可以在規(guī)則中有多個 evanl ,通常你需 要使用一些列約束將他們組合起來。 ] . 39。 下面的例子是找到所有男性比女性大兩歲的配對。 例 . Literal Constraints with Collections 集合的值約束 CheeseCounter( cheeses excludes cheddar ) . Bound Variable Constraint 綁定變量約束 圖 . Bound Variable Declaration 變量可以綁定 Fact 或它們的字段,然后在后來的值約束中使用。 Matches操作只能在字符串字段上可用, contains 和 excludes 操作只能在集合類型上可用。如果你的模型對象使用 java bean 模式, fields 由 getXXX 或 isXXX 方法提供(這些方法是無參數(shù),有返回值的)。 . activationgroup 默認(rèn)值 N/A 類型 : String 在同名 activationgroup 中的規(guī)則將以互斥的方式激發(fā)。 modify(obj)。傳入 function的參數(shù)就像不同的方法一樣(如果不需要參數(shù)可以為空)。如果多個包定義了同樣名稱的全局變量,它們必須使用同樣的類型,并且全部指向同一個全局值。包的成員應(yīng)該彼此有一定聯(lián)系,如人力資源的規(guī)則包。使用了“ expander(擴展 )”機制。這章主要介紹 Drools3自帶的規(guī)則語言。 RHS 是允許 Java 語義代碼(很快將支持其它語言和 C)執(zhí)行的塊。接下來的列表是你應(yīng)該在規(guī)則內(nèi)容中避免使用的保留字(如果使用了,大多數(shù)時候可以正常工作,但有時會引起解析錯誤)。對于任何要用在規(guī)則中的對象,你需要指定完整的路徑和類型名。它們不可能做任何超過你可以在幫助類(在 java 中定義,被設(shè)置入規(guī)則的 Working Memory 中的類)中做到的事情(實際上,編譯器為后面的場景產(chǎn)生幫助類,那樣幫助不大)。 . Left Hand Side 左手元 左手元 (LHS)是對規(guī)則的條件部分的一個通稱。 . salience 優(yōu)先級 默認(rèn)值 : 0 類型 : integer 每一個規(guī)則有一個整數(shù)類型的優(yōu)先級屬性,默認(rèn)為 0,這個整數(shù)可以使正負(fù)數(shù)。這意味著你可以在其它條件或規(guī)則的推論部分使用cheapStilton。這種調(diào)用對方法的名稱大小寫敏感。contains39。contains39。M39。 . 39。 例 . No Busses not Bus() 例 . No red Busses not Bus(color == red) not ( Bus(color == red, number == 42) ) //not 后的括號可選 . 39。這使得代碼的閱讀方便簡捷。這些 Column可以通過聲明的名稱或索引位置存取。 注意 Drools3 的 DSL 與 Drools 2 基于 XML 的 DSL 很不相同。你也可以在 {tokens}外加上引號以確認(rèn)你想捕捉的數(shù)據(jù)。 PackageBuilder builder = new PackageBuilder()。如果在這一案例中,你可以如下映射: [when]There is a Cheese with=Cheese() [when] age is less than {age}=age{age} [when] type is 39。 DSL 配置被解析器讀取,因此解析器可以擴展 DSL表達式到真正的規(guī)則語言表達式。對象模型中通常有復(fù)雜的關(guān)聯(lián)和繼承關(guān)系,對于規(guī)則你會希望模型盡可能簡單和扁平化,并且讓規(guī)則引擎推斷關(guān)聯(lián)性(這提供了未來的靈活性)。 在 DSL 中一項具有挑戰(zhàn)性的內(nèi)容是表達綁定變量。 /body /function rule name=my rule ruleattribute name=salience value=10 / lhs column objecttype=Foo / /lhs rhs ( hello )。 ] . 遺留的 Drools XML 規(guī)則格式 從上面看, Drools 遺留的 XML 格式與 有所不同。這個工作首先通過將規(guī)則從源碼狀態(tài)轉(zhuǎn)換到 AST 狀態(tài),然后倒出到需要的目標(biāo)格式。 objecttype=39。 Exists 和 Not 圍繞 Column 工作,檢查一個帶有約束條件
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1