萬潤之 孫麗平 王延博 李雅馨
1.長春中醫藥大學醫藥信息學院,吉林長春 130117;2.長春中醫藥大學附屬醫院兒童診療中心,吉林長春 130021;3.長春中醫藥大學中西醫結合學院,吉林長春 130117
20 世紀90 年代本體概念被引入人工智能、圖書情報和知識工程等領域,一度成為這些領域的熱門研究課題。近年來,關于本體理論和技術的應用逐漸擴大到醫學領域,其關注度也不斷提升[1]。如朱玲等[2]構建了哮喘疾病本體和功能性胃腸病領域本體,對哮喘領域知識體系和腸胃病知識庫進行重新組織和表示,王明強等[3]利用Neo4j 存儲資源描述框架模型,實現中醫皮膚病“疾病-證候-治療”領域本體的具體認識及規范化表達,郭夢瑩等[4]利用“領域本體七步法”探討中醫辨證論治知識庫構建的應用。本體在醫學領域的發展為疾病本體構建提供了方法基礎[5-6],對于不同疾病的病因病機、發病機制、辨證論治、治療方法等的理解與學習具有積極意義。
肺炎喘嗽是小兒時期常見的肺系疾病之一,以發熱、咳嗽、痰壅、氣急、鼻煽為主要癥狀。清代汪昂《湯頭歌訣·瀉白散》首次提出“肺炎喘嗽”之名[7],對比西醫治法,中醫治法同樣有很好的效果[8]。本研究基于本體構建方法構建肺炎喘嗽本體知識庫,并進行推理驗證,實現了可視化查詢。
資料來源包括中醫兒科學教材、小兒肺炎喘嗽中醫診療指南[9]、小兒病毒性肺炎中醫診療指南[10]、兒童肺炎支原體肺炎中西醫結合診治專家共識[11]以及名老中醫醫案[12],術語的標準化參考中國中醫藥學主題詞表[13]。
使用Protégé 5.5.0 對網絡本體語言(ontology web language,OWL)進行完整闡述,采用本體構建七步法[14]構建本體,并使用推理機Pellet 進行一致性檢驗。見圖1。
圖1 構建肺炎喘嗽本體流程
1.2.1 類和類目 類是本體的核心。圖2 為知識庫中抽取的可以用于本體構建的肺炎喘嗽的類和類目,該統計共分為四級類目,一共7 個一級類目,并按從上而下的方法構建類和類之間的關系。
圖2 小兒肺炎喘嗽類目圖
1.2.2 類的屬性 構建類的屬性需要區分類的對象屬性和數據屬性。對象屬性使用英文表示,并在注釋中添加中文注釋,如“肺part_of(是…的部分)患者”。創建與其相關的逆屬性(inverse of),如“表現出”(show)和“是...的表現”(reflect),同時限定其定義域(domain)和值域(range)。構建的對象屬性如表1 所示,在Protégé 中構建對象屬性。數據屬性是一個類或實例的數據值,如“某兒童的年齡為4 歲,體重17 kg,體溫38℃,血氧飽和度>0.96。”其中的個體兒童、體重、身高、脈搏血氧飽和度為實例的數據屬性。圖3 展示了在Protégé 中創建的數據屬性、其定義域與數據類型,并為其添加備注與定義域、字符串類型標識。
圖3 Protégé 構建的數據屬性
表1 小兒肺炎喘嗽本體對象屬性
1.2.3 實例 實例也稱個體,是指類的成員個體。例如圖4 在對象屬性欄中選擇“has component”(由…組成)與每一項組成方劑的中藥相聯系,在數據屬性欄選擇“method of foumula”(方劑使用方法)和“strength of recommand”(推薦度)兩個屬性,并為其添加“日1 劑,水煎服,早晚分服,每次25~40 ml”和“強推薦”的屬性,在注釋欄添加加減情況,這樣就構成了“銀翹散合麻杏石甘湯”的實例。
1.2.4 一致性檢驗 本體推理檢驗是判斷類的從屬關系是否正確,實例是否屬于該類,如本體具有一致性,則會根據語義關系推理出“中藥”沒有設置的屬性,如果不具有內在邏輯的一致性,則會報錯。使用推理機插件Pellet 進行推理檢驗,根據推理得出,中藥類中的實例“連翹”組成了“三拗湯合蔥豉湯”和“銀翹散合麻杏石甘湯”,該本體通過了內部的一致性檢驗。見圖5。
1.3.1 工具 Protégé 自帶的可視化功能易造成圖像重疊[15],并且不適合復雜網絡的可視化,數據驅動文檔(data-driven documents,D3.js)庫是一個基于數據的JavaScript 庫[16],能高效地操作基于數據的Web 文檔,實現數據可視化。WebVOWL 是一款本體可視化編輯器[17],本研究使用D3.js 庫,并將本體通過WebVOWL展示。
1.3.2 可視化方法 使用Java 開發工具包并為其配置環境變量,將Protégé 中構建的本體文件導出為OWL文件格式[18-20],使用Java 項目管理工具Maven[21-22]構建肺炎喘嗽本體項目的Jar 包。最后,在命令中部署好D3.js[23-24]包,將json 的本體文件導入WebVOWL 中完成可視化。
1.3.3 可視化結果 肺炎喘嗽本體類和類目可視化的結果如圖6 所示,圖中肺炎喘嗽為中心,線段上的注釋為本體的對象屬性,灰色圖塊的注釋為數據屬性和數據類型,“Thing”為實例的集合。部分肺炎喘嗽本體實例的可視化結果如圖7 所示,圖中可以清晰看出類、實例的關系,如中醫證型-常證-風熱閉肺證、方劑-銀翹散合麻杏石甘湯、中成藥-小兒肺熱咳喘顆粒之中,可看出證型和方劑、中成藥的聯系。
圖6 肺炎喘嗽本體類和類目可視化圖譜
圖7 肺炎喘嗽實例可視化圖
在兒科領域乃至中醫領域都較缺乏本體技術、計算機語言等新興應用的研究。構建小兒肺炎喘嗽本體知識庫難點在于對眾多權威診療資料、多版本教材中信息的提取,在如何利用本體和計算機技術相結合上提供技術支持。
本研究采用本體工具Protégé,使用OWL 語言定義、整理小兒肺炎喘嗽專家診療指南等權威資料提取出的31 個類、17 個對象屬性和6 個數據屬性,并可以自主的為其添加實例,類和實例都有明確的定義,并通過本體一致性檢驗,使用Java 程序語言的D3.js 庫實現可視化功能和交互功能,通過創建的本體規則進行本體推理或為其添加新的實例,可以通過推理得出新的規則。
本研究在實現知識數據結構的標準化和規范化的基礎上展望未來,將來可以發展成為檢索、推薦、問答和決策服務等各種語義服務的主要知識庫,并在未來形成兒科系統疾病本體、兒科疾病專家診療系統等。