跳到主要內容

串接 知識決策模型 / 知識推論引擎 / 工作流程模型 / 工作分派引擎 ,一起手牽手心連心!

DSC08287

還記得九年前 (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 架構為例,這裡提供一個實際流程、工具與應用範例:
。知識決策架構
  1. 瞭解領域環境
  2. 分析並歸納領域問題
  3. 定義領域知識與知識關聯架構
  4. 透過 OWL-DL (Web Ontology Language-Description Logic) 語言建立Ontology 模型
  5. 透過Protégé 工具進行管理Ontology (亦可用於建立)
  6. 定義屬性(Property)
  7. 建立實體案例(Instance)
  8. 轉換Ontology為SWRL (Semantic Web Rule Language) 語言以提供溝通
  9. 建立語義推論引擎系統 (Semantic Reasoning Engine) 如 Jess Rule Engine
  10. 轉化SWRL成為推論法則,以Jess Rule Engine為例,需將其轉化為Jess fect
  11. 依據系統輸入進行Rule Patten Matching
  12. 啟動(Lunch) 對應動作、程序

。流程控制架構
  1. 分析環境並瞭解組織或應用標的之流程
  2. 建立Framewrok 架構以定義行為與程序
  3. 解析各行為、程序、法則、決策點,並定義資訊交換流程
  4. 建立最基本化之單元執行程序(Atomic Procedure)
  5. 使用BPMN塑模建立流程與Framework
  6. 以上可以由Drools-Flow 與 jBPM 實作 (目前兩者已整合)
  7. 依據系統輸入進行流程引導追蹤
  8. 依據連續輸入推進流程,直至流程結束產生結果

。系統實作與架構結合
  1. Web-Based系統建置,上述系統皆使用Java開發實作
  2. 流程控制引擎建置,以JBPM為例則運行於JBOSS環境
  3. 知識決策引擎建置,以Jess Rule Engine為例亦為Java-Based服務
  4. 建立Web-Base UI架構,並依據各UI端設計Web Service接口
  5. 建立實例Model物件
  6. 各UI與應用層 ( JBPM) 進行溝通時,先轉送Model物件至推論引擎
  7. 推論引擎進行法則(Rule)查詢比對
  8. 產生規則觸發 (trigger)
  9. 觸發後之法則將指示對應單元執行程序
  10. 結合各單元程序,產生Workflow
  11. UI持續逐一輸入資訊,流程持續追蹤,推論引擎反覆進行條件推論(Forward or Backward)
  12. 直至流程完成

上述,
就是一個你找不到一篇完整文章會告訴你的,
以實際系統建置(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

留言

這個網誌中的熱門文章

醫學健康跨領域合作的開始:資料工程

一直都很喜歡在會議上與跨領域的專家、醫師、學者分享我們在數據工程與分析應用上的發展經驗。 許多的專家學者,對於大數據應用的認知都仍侷限在一個超大型結構化資料集的子集合應用,在規劃好的條件設定下,針對特定的目標(疾病、行為)進行篩選,將數據narrow down到可以被個人電腦或是單一伺服器架構處理的小型資料集。 這樣的半手工處理方式,對於專一(Specific)領域主題的資料追蹤計算或許已經十分足夠,但當中倘若資料清理方式有改變、篩選條件增減,所有的數據都要從raw重新處理,不僅造成大量的時間與人力浪費,對於專案計畫進度的延宕更是麻煩。這些還不包含

Google 資料庫方案–Spreadsheet–(1)資料呈現

HEMiDEMi 的標籤: Google , Google SpreadSheet , 雲端 早在規劃『 教育,意義! 』project時, 便有打算將整個網站建立過程撰寫一篇教學,讓有興趣以google 服務為基礎進行開發的朋友參考。 沒想到這個想法擺著就拖了好幾個月, 好在學生提出了問題,就趁這機會寫一寫吧。 基本上『 教育,意義! 』網站的架構完全建立在Google提供的服務, 廣義來說也是個雲端的系統, 所有的資料是分散在不同的服務架構下,再用GAE, Javascrript將服務資訊串接起來, 由Blogspot 統一呈現。 省了租主機的費用,或架站的硬體、電費, 最好的地方在於不用管理主機維運的問題, 只要專心做我的創意、嘗鮮就好了!!   多棒! 若將『 教育,意義! 』網站依功能層次來分類,可以分為三層結構, 當中的層次與使用技術大致如下: UI 介面層 服務 : Blogspot (網站介面) , Picasa (相簿空間), Google Apps 技術 : Javascript , AJAX ( JQuery ) App應用層  服務 : Google App Engine (GAE) 技術 : Java, Java Server Page (JSP) 資料層 服務 : Google Docs (文件), Google Spreadsheet (試算表) 技術/函式庫 : Java, Google Data APIs 本篇文章將著重在介紹以Google Spreadsheet 做為雲端資料庫, 其他主題將會陸續推出。 若對Google API 與 Google App Engine 初步建置有興趣, 可以參考之前文章: 佛心來著的 Google Data API – for JAVA 雲端的開始:Netbeans 無痛 Google App Engine Java 服務開發 Google Spreadsheet 做為資料庫系統 對於小型的資料系統來說, 採用Google Spreadsheet做為應用程式資料庫(如問卷調查或線上系統) 也算堪用, 目前的儲存限制為 : 40 萬個儲存格 每張工作表最多...

歡迎引戰的Threads演算法機制

  最近受到江老師 江振維的啟發,開始測試Threads的演算法機制,發現它驚人的傳播速度 先講成果,一篇thread文: 第17小時,10,689瀏覽,106則回覆 第24小時,22,122瀏覽,179則回覆  帳號追蹤數僅104位  簡單來說,Threads的機制跟過去Facebook大多鎖定在親朋好友社交網絡之間的內容不一樣,它會大量收集有相關興趣的人來觸及,內容散亂主題分散觸及效果越差,但太過專業不是一般人能理解的效果會更差,所以主題明確直白淺顯易懂,可以快速激發討論的內容,就是容易被擴散的。 這次實驗做了一個策略,文章很簡單,短短三行: 『小朋友為什麼不能學ai?  學生交作業為什麼不能用ai?  為什麼要阻礙進化?』 (文章連結) 策略設計 用爭議性內容(Controversial topics)並參考坎寧安定律(Cunningham's Law)方式,讓主題有開放性討論(疑問句、ai)、敏感性主題(小朋友、學生),最後錨定一個負面且帶有爭議性的價值論述 (阻礙進化),來引發討論 每一個回文,都按愛心 回覆一人只回一次,不深追討論 回覆時回疑問句(諷刺、引戰),但不評斷價值 結果~~ 碰🔥  快速大量瀏覽以及對立式發言,中午時刻短短三小時擴增5000人瀏覽,當回覆互動增加時,會在一個短時間內快速吸人進來討論,直到24小時後觸及就自動下降幾乎歸零。 對比前後實驗的發文,專業文、分享文,效果都非常有限。 可以了解,在這樣同溫特化以及互動至上的平台,"引戰"對於流量製造的效果非常好,但是否能產生導流效果,不得而知,未來可以再嘗試☕ 最後,我自己還是不喜歡這種操作, 認真看待事物、追求專業、理想與和諧,這種人格特質,對於製造混亂、誘發對立討論,雖然還是可以引導教育意義,但互動過於浪費時間、缺少實質回饋、仇恨言論造成心理疙瘩,這都是自己不喜歡的特性😅 還是留給有心理素質的人去玩吧! XD PAN 20240704 Reference Berger, J., & Milkman, K. L. (2012). What Makes Online Content Viral? "Content that evokes high-arousal emotions such as awe, anger, and anxiet...