還記得九年前 (oh my god!! ) 在做Ontology研究時,
總是對整個流程架構、如何真正的應用有很大的問號,
當時看到稱的上劃時代知識工程ontology應用語言的RDF時,
還對於其高複雜度與如何真正實作有著更大的問號!
沒辦法,畢竟工程人員對於實作一個真正有function系統的渴望,
相較於一個定義充沛、複雜卻無法直接應用的 Model 來的高出太多太多。
但這些時間過去了,
不同領域間的工具經驗、知識累積下,
竟然也整合孕育出了真正結合理論與實作的方式,真是感動的我快老淚縱橫了。
以現在當下的作法,
如何真正整合 Ontology到決策workflow的中,而非以前的Model / Implementation 兩邊各玩各的?
最精準的方式就是整合流程管理方法,
而這點在流程方法電子化研究趨近成熟的現在,一切也都不是難事。
過去在探討企業流程塑模同樣也只是個說故事的工具,
例如用來描繪工作流程、決策、資訊傳遞等過程的 BPMN (Business Process Model and Notation) 的發展,
最初,也只是一種塑模 (Modeling)的表示方式。
但現在同樣的也在龐大組織架構的複雜資訊化需求下產生了進化,
不只是標準化的提出,連底層結合都綁在一起了,
這意味著,現在的軟體流程可以直接串聯早期屬於管理層級的流層架構,
而且利用的,不再是底層開發語言的指令模式,而是更高階的管理流程規則。
同樣的,在知識決策人工智慧的領域,
從20年前的數學模型、機率統計到之後的語意描述建模,
演化到如今,將語意描述語言轉譯為語意法則,
再真正透過推論引擎去分析推斷,產生真實的邏輯判斷結果,
一切就這樣從無到有,從不可能到可能!
我們就舉實例來說吧,
知識工程方面,
過去我們使用Ontology來定義領域知識架構與其樹狀圖,
再新潮點用RDF真正去標準化結構。
現在,則是直接是有了Ontology 原型後,直接用OWL (The Web Ontology Language) 定義出Ontology結構,
並且定義關係屬性(property),隨後建立出實例(Instance)後便可以轉化規則,並且透過規則(Rule)推論引擎產生推論結果。
(是的,現在RDF也少人用了,你說時間多殘酷)
而在企業流程方面,
現在同樣的可以透過 BPMN 的工具進行流程分析,隨後直接利用BPMN塑模語言產生XML文本的流程描述,
最後直接透過流程管理引擎進行流程的指派與傳遞。
到這邊,是不是還是很模糊? 還是不知道到底要怎麼實現??
當然,如果說了流程後就會讓你知道怎麼做,
那業界一套幾百萬甚至上千萬的軟體是賣假的?
如何整合,一直都是用來賺錢的 Know-how,
入門者,知道結果,
進階者,知道工具與方法,
但怎麼跨領域去整合千千百百種方法、模式、開發方案?
就是各憑本事了。
最後,針對這個case提供一個solution給大家,
這是廠商不會告訴你,學校不會教,論文也顯少講清楚。
但要拿來寫論文、寫計畫、甚至是商用化來營利,絕對是綽綽有餘。
如何結合(Linking) 知識決策模型(Hypothesis) / 知識推論引擎(Procedure) / 工作流程模型(Model) / 工作分派引擎(Procedure) 與系統開發 (Implementation) ??
以 Ontology 架構為例,這裡提供一個實際流程、工具與應用範例:
。知識決策架構
- 瞭解領域環境
- 分析並歸納領域問題
- 定義領域知識與知識關聯架構
- 透過 OWL-DL (Web Ontology Language-Description Logic) 語言建立Ontology 模型
- 透過Protégé 工具進行管理Ontology (亦可用於建立)
- 定義屬性(Property)
- 建立實體案例(Instance)
- 轉換Ontology為SWRL (Semantic Web Rule Language) 語言以提供溝通
- 建立語義推論引擎系統 (Semantic Reasoning Engine) 如 Jess Rule Engine
- 轉化SWRL成為推論法則,以Jess Rule Engine為例,需將其轉化為Jess fect
- 依據系統輸入進行Rule Patten Matching
- 啟動(Lunch) 對應動作、程序
。流程控制架構
- 分析環境並瞭解組織或應用標的之流程
- 建立Framewrok 架構以定義行為與程序
- 解析各行為、程序、法則、決策點,並定義資訊交換流程
- 建立最基本化之單元執行程序(Atomic Procedure)
- 使用BPMN塑模建立流程與Framework
- 以上可以由Drools-Flow 與 jBPM 實作 (目前兩者已整合)
- 依據系統輸入進行流程引導追蹤
- 依據連續輸入推進流程,直至流程結束產生結果
。系統實作與架構結合
- Web-Based系統建置,上述系統皆使用Java開發實作
- 流程控制引擎建置,以JBPM為例則運行於JBOSS環境
- 知識決策引擎建置,以Jess Rule Engine為例亦為Java-Based服務
- 建立Web-Base UI架構,並依據各UI端設計Web Service接口
- 建立實例Model物件
- 各UI與應用層 ( JBPM) 進行溝通時,先轉送Model物件至推論引擎
- 推論引擎進行法則(Rule)查詢比對
- 產生規則觸發 (trigger)
- 觸發後之法則將指示對應單元執行程序
- 結合各單元程序,產生Workflow
- UI持續逐一輸入資訊,流程持續追蹤,推論引擎反覆進行條件推論(Forward or Backward)
- 直至流程完成
上述,
就是一個你找不到一篇完整文章會告訴你的,
以實際系統建置(Implementation) 角度去探討的整合個案,
雖說已經逐步分解到實作的每個環節,但仍然是有許多細節要處理,
像不同的Model語言要做的轉換,如將SWRL語言對應至Jess Fact語法,
如合分析BPMN的XML語言並且執行? 或將Trigger的動作(Action)串接到程序(Process)
這個,就看各位的功力跟造化了。
只能說現在的IT人員越來越難當,
不只基礎程式、資料處理能力要夠,
還要有工具應用的能力 (Database , XML , JSON … )
現在還要有架構實作的能力 ( OO , MVC, SAS … )
更慘的是,還要懂的以往的研究領域知識 ( KM, Ontology , DSS , ES, BP, Algorithm, BPMN …… )
還沒說那些多元的應用端技巧 ( Mobile, Android, CSS , Javascript, AJAX , EK… )
學海無涯,用在資訊領域,還真的是剛好而已 !!
但現在資訊相關學生,
連資料庫都學的有問題,程式修了兩年還是不會寫,
你說該怎麼辦?
PAN
2013.04.02
留言
張貼留言