5.3 代理人執行
5.3.1 角色代理人
5.3.1.1 工作記憶
RA 的工作記憶主要包括角色 IE 地圖、三種不同的 ICF 地圖、ICF 詞典與想法元 件,還有代理人溝通語言的相關資訊。除了 ICF 詞典是由目錄(
list
)所構成外,其它 RA 的工作記憶皆由不同種類的樣板所構成,每一種樣板根據其所屬的名稱與 包含不同欄位而呈現 RA 的工作記憶,包括想法元件樣板、IE 地圖樣板、三種類 型的 ICF 地圖樣板與代理人溝通語言樣板。
ICF 詞典目錄
ICF 詞典主要由許多詞典目錄所組成。基本上,詞典目錄由二個 tokens 所構成,第 一個 token 是 RA 所能了解包含在 ICF 詞典之外部領域概念語彙的關鍵字,第二個 token 是 RA 所能了解包含在 ICF 詞典之內部領域概念語彙的關鍵字,同時此關鍵 字必須存在於此 RA 的角色 IE 地圖,而這些外部與內部的關鍵字對於 RA 而言,
彼此不相同但具有相類似的意義。這些詞典目錄的語法定義如下:
(movement circulation)
在上述這個目錄的例子中,“circulation”和“movement”是儲存在一位 RA 之 ICF 字 典的詞典目錄中的關鍵字,對此 RA 而言,“circulation”和“movement”具有相同的 意義,且能被此 RA 了解的領域概念語彙,而其中“circulation”的關鍵字須存在於 此 RA 的角色 IE 地圖。
想法元件樣板
想法元件的樣板名稱是 ie,主要包含議題(issue)、概念(concept)、形式(form)
與喜好(preference)四個欄位。議題、概念與形式的欄位值是關鍵字,而其中的 概念與形式是多重欄位(multislot),可以放置一個以上的關鍵字,另外,喜好欄 位值是 1 到 5 的整數值(內定值為 1)。因此,想法元件樣板的語法定義如下:
(deftemplate ie
(slot issue) (multislot concept) (multislot form) (slot preference (default 1)) )
例如:在一個 RA 的想法元件中,其議題值是“light”,概念值是“opening”和
“centralization” , 而 形 式 值 是 “courtyard” , 且 形 式 值 的 設 計 案 例 被 放 置 在 http://lai.cyut.edu.tw/DIM/RA1_1 的 URL,另外,RA 對於此想法元件的喜好值是 3。
因此,此想法元件可以由下列的想法元件樣板加以定義。
(ie (issue light) (concept opening centralization)
(form courtyard http://lai.cyut.edu.tw/DIM/RA1_1 ) (preference 3) )
IE 地圖樣板
IE 地圖的樣板名稱是 map,主要包含兩組想法元件的 ICF 欄位(issue、concept、
form)和想法元件之間的元件連結欄位,因此,IE 地圖樣板包括七個欄位,這些 欄位值皆為關鍵字,而其中的概念與形式是多重欄位,分別放置一個以上的關鍵 字和形式的 URL 位址。因此,IE 地圖樣板的語法定義如下:
(deftemplate map
(slot issue_1) (multislot concept_1) (multislot form_1) (slot link_type)
(slot issue_2) (multislot concept_2) (multislot form_2) )
例如:在一個包括二個想法元件的 IE 地圖中,一個想法元件的議題值是“light”,
概 念 值 是 “opening” 和 “centralization” , 而 形 式 值 是 “courtyard” 與
http://lai.cyut.edu.tw/DIM/RA1_1 的 URL , 而 另 外 一 個 想 法 元 件 的 議 題 值 是
“light” , 概 念 值 是 “opening” 和 “centralization” , 而 “garden” 與
http://lai.cyut.edu.tw/DIM/RA1_12 的 URL 是此想法元件的形式值,且這兩個想法
元件間存在相似元件連結。因此,此 IE 地圖可以由下列的 IE 地圖樣板加以定義。(map (issue_1 light) (concept_1 opening centralization) (form_1 courtyard http://lai.cyut.edu.tw/DIM/RA1_1 ) (link_type similarity)
(issue_2 light) (concept_2 opening centralization) (form_2 garden http://lai.cyut.edu.tw/DIM/RA1_12 ) )
ICF 地圖樣板
ICF 地圖樣板主要由三種不同類型的樣版所構成:議題地圖樣板、概念地圖樣板與 形式地圖樣板,而這些樣版的名稱分別是 issue_map、concept_map 和 form_map。
基本上,每一種類型的樣板皆包含三個欄位值:二個相同類型的屬性欄位值,與 它們之間的屬性連結欄位值(similarity, contrast 或 contiguity),這些欄位值皆是關 鍵字。這三種 ICF 地圖樣板的語法定義如下:
(deftemplate issue_map
(slot issue_1)(slot link_type)(slot issue_2) )
(deftemplate concept_map
(multislot concept_1)(slot link_type)(multislot concept_2) )
(deftemplate form_map
(multislot form_1)(slot link_type)(multislot form_2) )
例 如 : 在 一 個 形 式 地 圖 中 , 其 中 一 個 形 式 的 欄 位 值 是 “courtyard” 與
http://lai.cyut.edu.tw/DIM/RA1_1
的 URL,而另外一個形式的欄位值是“garden”與http://lai.cyut.edu.tw/DIM/RA1_12 的 URL , 且 屬 性 連 結 的 欄 位 值 則 是 相 似 性
(similarity)。因此,此形式地圖可以由下列的議題樣板加以定義。
(form_map (form_1 courtyard http://lai.cyut.edu.tw/DIM/RA1_1) (link_type similarity)
(form_2 terrace http://lai.cyut.edu.tw/DIM/RA1_12 ) )
ACL 訊息樣板
ACL 訊息樣板的名稱是 ACLMessage,其主要功能是提供 RA 與 RAS 之間的訊息 傳遞以連結與產生想法元件。根據之前 JESS 語法定義的 ACL 訊息樣板(詳見 5.2.3 章節),例如:在解決有關空間組構(spatial organization)的設計問題時,RA_1 將產生的元件連結“similarity”與想法元件“light, opening, courtyard”,以“PROPOSE”
的語言意圖向 RAS 提出計畫,此訊息內容可以用下列的 ACLMessage 樣板加以定 義。
(ACLMessage (communicative-act PROPOSE) (sender RA_1) (receiver RAS) (content “similarity light opening courtyard”)
(language JESS) (ontology spatial_organization)
)
除了上面論述的樣板外,為了執行 DIM 之原則有關想法元件的解譯、連結語選擇 等機制,RA 的資料結構還包含其他規則基礎在運算過程中所需要的樣板,包括解 譯規則在搜尋 ICF 關鍵字的樣板(search_issue template、search_concept template
和 search_form template)、解譯完成後的樣板(temporary_ie template)與經由想法
在 DIM 系統中,上述的規則皆建構在 JESS 的向前鏈接(forward chaining)之邏輯 機制中,此邏輯機制是以左右手定則(分別稱為 LHS 和 RHS)的假如…然後 括 search-issue、search-concept 和 search-form templates)後,才可以進行此 input_ie 的解譯。因此,在解譯規則的邏輯機制中,當其 LHS 中的比對條件滿足 RA 的容 許限制(tolerance 樣板中的欄位值),同時,上述 input_ie 在搜尋字彙樣板中的欄 位值與 RA 之 ICF 詞典中詞典目錄的第一個 token 值或第二個 token 值相同時,在 此規則的 RHS 中,則宣稱(assert)一個臨時想法元件樣板(樣板名稱是 temporary_ie)
的事實。此解譯規則(容許限制為 3)的語法定義如下:
(defrule search-key-word-3 (tolerance (number 3))
(search-issue (word ?i))(search-concept (word ?c))(search-form (word ?f)) (?my_i1 ?my_i2)( ?my_c1 ?my_c2)( ?my_f1 ?my_f2)
(test ( and (or (eq ?my_i2 ?i)(eq ?my_i1 ?i)) (or (eq ?my_c2 ?c)(eq ?my_c1 ?c)) (or (eq ?my_f2 ?f)(eq ?my_f1 ?f))))