本體工程:頗析專業領域的奧妙

許恆修 | Heng-Shiou Sheu
4 min readMar 15, 2019
圖源自:ontologydesignpattern.org

前言

本文將會簡單介紹 Ontology Engineering(本體工程)的特性,與其具有的幾項特性,後面還會帶到如何進行開發,與開發的難點在何處,基於以上觀點來進行介紹。

介紹

Ontology Engineering 為任何人可以針對某個特定的 Domain 或是 concept 來進行關係編寫並與其他人進行交流的一項工程學。一般來說,常見的例子會有 酒類,食物,生物學等。就舉 Pizza 為例好了,當提到 Pizza 這個詞時,你可以想到有餅皮,餡料,調味料,接著再往下發想,餅皮會有薄的,脆的,厚實的,起司醬的,其他亦同。最後把剛剛想到的東西使用線連接在一起,這樣會形成個 web。過去幾年流行的詞彙為 semantic web(語意網),近幾年為 knowledge graph(知識圖譜)。這東西的商業應用為知識推理,推薦系統,風險管理,醫療詢問等。詢問 web 的工具為 SPARQL Protocol and RDF Query Language (SPARQL)。實作資料庫為 Graph database。

基本元件

最基本的單位稱為 Tuple(三元祖),組成為 Subject + predicate + Object。舉例來說:Nikon_D300(S.) manufactured_by(P.) Nikon(O.),這樣就是一組 tuple,用以表達名詞間的關聯性。

具有多組 tuple 之後,可以存放在 RDF/XML 檔案裡面,這為一種充滿 RDF 表述並使用 XML 存放的資料格式。RDF 表 Resource Description Framework 。

開發流程

主要還是依循正常設計流程=> requirement => analysis => design => implementation => measurement,大多數工程開發都會依照這下去走。我自己是走以下流程進行開發的,主要有五個步驟,1. 詢問問題, 2. 定下名詞 3. 找出屬性 4. 填上限制 5. 放入實例。

  1. 詢問問題是在讓自己訂下驗收標準與圈選範圍,例如:我想知道這塊牛排該搭配哪種紅酒一起吃?;
  2. 定下名詞是在這個 Domain 找到該有的名詞,例如:左岸紅葡萄酒,紐約客,肋眼等專有名詞就會一一被找出
  3. 找出屬性,這個就會延數前一個過程了,左岸紅葡萄酒是來自法國波爾多產區的酒品,這時候法國就是一個屬性,波爾多產區就會是一個屬性
  4. 填上限制,這個頗容易的,但我不好舉例XD,大概就是假設說,法國底下產區不會至少會有五個,或是是說產區內的酒名不會超過 30 個字之類的
  5. 放上實例,這前面的步驟都是很 concept 的,我們一定要放入個真實存在的東西填入。

設計模式

這東西也是有 design pattern 的,我自己覺得裡面的內容是很有價值的,這裡的 pattern 基本上就是個 domain 該有的知識與關係,但缺點就是 數量太過稀少了。

開發難題

這個開發難題有兩大特徵,第一個為沒有一定的開發流程,跨越難度高,入門研究者少,自然討論的方法就少,第二項為每個流程都是 iteractive 的,像剛剛我們使用紅酒為舉例,如果再分類的過程中錯了的話,必須重新往前去修改階層關係,動一個階層,就代表要更多許多屬性,更動完之後你當然要檢查是不是符合邏輯。就是這以上兩點導致開發困難重重O_Q

結語

這個月的稿子我成功交出來啦!!!!!!

#本體工程 #OntologyEngineering #knowledgeGraph #Graph database

--

--

許恆修 | Heng-Shiou Sheu
許恆修 | Heng-Shiou Sheu

Written by 許恆修 | Heng-Shiou Sheu

AI研究員 @喬泰科技,軟體工程師@微光國際,業界講師 @FCU 創能學院,Co-Founder @圖靈文本。專注將科技應用於改善生活中,持續性分享軟體架構設計、前沿人工智慧研究、公司治理等觀念。整合科技、人文思維於一體。聯絡 📪 hengshiousheu@gmail.com

No responses yet