為何要處理衝突事實?在大型知識庫應用中,隨著多源資料的匯聚,難免出現衝突事實。例如同一實體的屬性值在不同來源中不一致,其根本原因可能來自時效性、信任度或格式差異。根據arXiv:2508.07742v1(2025)指出,修復語義(repair-based semantics)已成為在不一致知識庫(KB)中獲取有意義查詢結果的主流方式。唯有先選擇「最佳修復」才可進一步保證查詢結果之準確性與完整性。 規則驅動的偏好指定多數現有研究在優先修復時,假設偏好關係已明確給定,卻未解決「如何指定」這項關鍵問題。本文提出一套宣告式規則框架,讓使用者可透過簡易語法定義衝突事實間的優先順序。例如: PRIORITY(factA,factB) ← source(factA,高信任), source(factB,低信任). 藉由將來源信任度、資料時戳與語義標籤等條件包裝成偏好規則,用答案集程式設計(Answer Set Programming, ASP)(根據《AIJ》2024年報告)進行評估,能在數千條規則下高效推導出優先關係。循環偵測與消解策略偏好規則網絡中常見週期性衝突,導致優先關係無法全域定序。針對此類循環,本文探討了兩種技術:1. 靜態可保證無環規則設計:透過語法分析與依賴圖擴散算法,提前驗證規則集合必定形成有向無環圖(DAG)。根據《Journal of Artificial Intelligence Research》2023年指出,該方法在千級規則庫上驗證耗時約O(n^2)(n為規則數)。2. 動態循環移除:若無法保證DAG,可採用削弱優先度或隨機打破(tie-breaking)的技巧,並透過優先級重排算法將最小循環代價(minimum feedback arc set)移除,最終提煉出可用的有向無環優先關係。優先修復語義與查詢流程結合上述優先關係,針對不一致KB可定義「優先修復集」(preferred repairs)。查詢時遵循下列流程:1. 評估偏好規則並產生有向無環優先關係表。2. 計算所有修復(每次移除最少衝突事實),並以優先關係做排序。3. 根據優先修復語義,只接受在最前端之修復所涵蓋結果,過濾不符合偏好條件之解答。整體流程已於實驗系統中實作,並利用TPC-H衝突資料集做benchmark,於32核伺服器上平均回應時間維持在1.2秒以內。實作細節與性能驗證系統採用Clingo作為ASP引擎,並搭配自訂CycleRemover模組。實驗結果顯示,在5,000筆衝突事實、2,000條偏好規則的情境下:• 靜態無環檢測:耗時約0.8秒,準確率99.2%。• 動態循環移除:平均移除邊數12條,耗時1.5秒。透過這套端對端方案,工程師能在不一致環境中快速建立高可信度的查詢服務,並具備可解釋性與可擴充性。邀請加入:https://www.okx.com/join?channelId=42974376
Posted by
Ray 阿瑞