5.3 代理人執行
5.3.3 場景代理人
在 DIM 系統的外在設計情境層中,場景代理人(ScA)經由和不同 UA、DA 和 StA 的外部相互作用(包括如想法元件與其他腳本內容的訊息傳遞),而動態性的儲存 並視覺化此相互作用的設計結果(外部 IE 地圖),同時,ScA 也會在此外部 IE 地 圖中,自動的搜尋一個想法等級最大的想法元件,以提供使用者輸入想法元件的 參考依據。因此,ScA 的知識基礎主要包括:1) 工作記憶、2) 規則基礎、3) 外 部 IE 地圖產生器與 4) ScA 知識庫(圖 49)。
圖 49 . 場景代理人的知識基礎元素
基本上,ScA 的工作記憶主要放置場景腳本、外部 IE 地圖與進行訊息傳遞的樣板 資料,規則基礎則是儲存 ScA 進行想法連結的相關規則,而外部 IE 地圖產生器是 控制整個產生地圖的規則與其資訊的流程,另外,外部 IE 地圖知識庫則儲存不同 UA 與 DA 共同產生的想法元件與其之間的元件連結。
5.3.3.1 工作記憶
ScA 的工作記憶主要包括場景腳本、想法元件、外部 IE 地圖與代理人溝通語言的 相關資訊,而這些資訊分別由場景樣板、想法元件樣板、IE 地圖樣板與 ACL 訊息 樣板所構成。
場景樣板
場景樣板的名稱是 scene,其功能是描述 ScA 在某一特定場景的外部相互作用中之 腳本內容,而此腳本內容主要提供 ScA 與其他代理人進行相互作用的依據。基本 上,場景樣板包括“issue”、“time”、“role-number”、“role-skill”與“role-id” 五個欄 位。
所謂 issue 欄位係指使用者(UA 或 DA)在一個場景中欲解決的一個特定設計問題
(議題),而 time 欄位關係此場景所需要的時間,role-number 欄位是使用者可以 扮演角色的最大數量,role-skill 欄位是此場景所需要 RA 的設計技能,另外,role-id 欄位則是使用者在其各自的內部相互作用中,他們選擇之不同 RA 的 AID。因此,
場景樣板的語法定義如下:
(deftemplate scene (slot issue)(slot time)(slot role-number)(multislot role-skill) (multislot role-id)
)
例如:在一個有關 circulation 議題的場景中,此場景需要有住宅設計之設計技能的 角色代理人,同時,每一位使用者(UA 和 DA)在此場景最多只能扮演兩位角色,
因此,當使用者是 DAlai和 UAtengwen,而其中 DAlai扮演的角色是 RA1 和 RA2,而
UAtengwen扮演的角色是 RA3 和 RA4,另外,此場景進行的時間是十分鐘。因此,
上述的腳本內容可以用下列場景樣板事實予以呈現:
(scene (issue circulation) (time 10) (role-number 2)( role-skill house)
(role-id RA1@lai:1099/jade RA2@lai:1099/jade RA3@tengwen:1099/jade RA4@tengwen:1099/jade )
)
除了上述的場景樣板外,想法元件樣板是構成外部 IE 地圖的主要元素,並提供 ScA 能在外在相互作用中,搜尋到最大想法等級之想法元件相關規則的的主要資料,
而 IE 地圖樣板提供 ScA 將不同 UA 或 DA 產生的輸出想法元件與元件連結,予以 建立外部 IE 地圖的資料,另外,ACL 訊息樣板則是提供 ScA 與其他代理人進行外 部相互作用時的相關訊息資料。有關這些 ScA 樣板的機制與語法相同於上述 RA 工作記憶的樣板,其內容詳見 5.3.1 章節。
5.3.3.2 規則基礎
ScA 的規則基礎主要包括搜尋規則與溝通規則。搜尋規則是對於使用者(UA 與 DA)所共同產生的外部 IE 地圖,經由計算出具有最多想法等級的想法元件,以提 供這些使用者選擇共同設計想法的參考依據。另外,溝通規則是提供 ScA 與 StA 和使用者在進行外部相互作用中,有關訊息傳遞的發送規則與接收規則。
基本上,ScA 與 RAS 有相似的搜尋規則,其差別在於 ScA 的搜尋規則是在其外部 IE 地圖的知識庫中計算並搜尋最多想法等級的想法元件(有關 ScA 的搜尋規則可 以參考 RAS 在 propose_highest_link_ie 規則的語法),同時,將此場景的腳本內容、
產生的 IE 地圖與想法元件儲存在此 ScA 的 JESS 知識庫中。其語法定義如下:
(deffunction time_save ( )
(bind ?t2 (- (time) ?*time-begin*))
(bind ?file (implode$ (create$ c:/DIM/ScA1/E_IE_Map ?t2 .clp))) (save-facts ?file scene map ie)
)
最後,儲存在此 ScA 知識庫的外部 IE 地圖,可以藉由圖像視覺化介面予以呈現。
另外,ScA 也會把此外部相互作用的訊息流程(message queue)予以儲存在 StA 的知識庫,此訊息流程提供 DA 藉由重新載入訊息流程的檔案,重新加以利用這 communicative-act 欄位值是 REQUEST_WHEN,且 scene 樣板事實的 role-number 欄位值是一個整數值(以 RA 的參與數量為 2 為例)時,在此規則的 RHS 中,則 宣稱(assert)一個 scene 樣板事實和 ACLMessage 樣板事實,且控制此外部相互 作用的時間,而 ScA 也經由一個新宣稱的 ACLMessage 樣板事實將訊息回傳給 StA。此規則的語法定義如下:
(defrule request_when_external_interplay
?m <- (ACLMessage (communicative-act REQUEST_WHEN) (sender ?s) (content ?c) (receiver ?r)) (scene (role-number 2))
=>
(assert (scene (issue (nth$ 1 (explode$ ?c))) (time (nth$ 2 (explode$ ?c))) (role-number (nth$ 3 (explode$ ?c)))
(role-skill (nth$ 4 (explode$ ?c)))
(role-id (nth$ 5 (explode$ ?c)) (nth$ 6 (explode$ ?c))))
(bind ?*time-duration* (* (nth$ 2 (explode$ ?c)) 60 )
(assert (ACLMessage (communicative-act INFORM) (sender ?s) (receiver ?r)) (content ?c))
(retract ?m) )
此外,上述規則藉由 scene 樣板事實之 role-number 欄位值來控制 ACLMessage 樣 板事實中有關字串轉換成 token 的數量,進而影響 scene 樣板事實相關的欄位值。 (MyAgent (name ?n))
?m <- (ACLMessage (sender ?n))
=>