知識圖譜要支援語意查詢和推理,用哪種圖模型?
某企業欲建構知識圖譜(Knowledge Graph),以整合內部的研究報告、專利資料與專家知識,並支援語意查詢與關聯推理。若希望模型能具備良好的語意擴展性與高效推理能力,下列哪一種圖模型設計最為合適?
一家企業要建知識圖譜(Knowledge Graph),整合研究報告、專利和專家知識,並且要能做語意查詢和關聯推理。目標是讓這個圖譜具備語意擴展性和推理能力。
問你:要支援語意查詢和推理的知識圖譜,應該選哪一種圖模型設計?
一句話總結
知識圖譜要做語意查詢和推理,要用RDF(Resource Description Framework)三元組(Subject-Predicate-Object)結構,它是語意網路的標準格式,支援 OWL 推理引擎和 SPARQL 語意查詢。
先感受問題:研究報告裡的知識怎麼變成可查詢的圖
「科睿智慧」公司有幾千份研究報告和專利文件,裡面充滿了知識關係:
「GPT-4」使用了「Transformer」架構
「Transformer」由「Attention Mechanism」組成
「某專利 US123」涵蓋了「自注意力機制」
工程師珮琳想讓這些知識「活起來」,可以問:「哪些技術和 GPT-4 相關?」「Attention Mechanism 被哪些模型使用?」甚至:「能不能推理出哪些技術涉及我們的專利範圍?」
這不只是查詢,還需要語意推理。
其他資料儲存方式無法滿足語意推理需求
- 純節點邊圖,沒有語意標準:自訂的節點和邊格式缺乏語意互通性,無法接上現有的推理引擎(如 OWL Reasoner),也無法和外部知識庫(如 Wikidata、DBpedia)整合。
- 文件型資料庫靠標籤連接,語意薄弱:MongoDB 等文件型資料庫用 Tag 標記關係,但 Tag 只是字串,沒有語意定義,「is-a」和「part-of」對資料庫來說是一樣的,無法推理「是子類就繼承父類屬性」。
- 關聯式資料庫的 JOIN 無法表達推理:RDBMS 可以表達「A 和 B 有關係」,但「A 是 B 的子類,所以 A 也是 C 的子類(因為 B 是 C 的子類)」這種傳遞推理,不是 SQL 能做的。
- 缺乏標準 URI,無法全球互通:非 RDF 格式的知識圖譜用自訂 ID,無法和網路上其他知識庫對齊(Linked Data 概念),知識孤島化。
- 語意擴展困難:要加入新的關係類型(如新領域的術語),需要修改資料庫 schema;RDF 可以動態加入新的謂語(Predicate),無需更動既有資料。
RDF 三元組:主語-謂語-賓語,語意推理的基礎
珮琳選擇 RDF 三元組格式建立知識圖譜:
(GPT-4) → [使用了] → (Transformer架構)
(Transformer架構) → [由...組成] → (Attention Mechanism)
主語(Subject) → 謂語(Predicate) → 賓語(Object)
RDF 的三個關鍵優勢:
- 謂語有語意定義(用 OWL 本體論定義「是子類型」的涵義),推理引擎可自動推導新知識
- SPARQL 查詢語言可做複雜的語意查詢,包括跨多層關係的路徑查詢
- 使用全球唯一 URI 標識實體,可和外部知識庫(Wikidata、DBpedia)對齊整合
這就是選項 B 講的:將資料結構建為 RDF(Resource Description Framework)三元組(Subject-Predicate-Object)。
技術版:RDF 三元組和知識圖譜的概念位置
RDF(Resource Description Framework)是 W3C 制定的語意網路標準,用來表達「關於事物的陳述」。每個陳述都是一個三元組(Triple):主語(Subject)→ 謂語(Predicate)→ 賓語(Object)。
配合的標準家族:
- OWL(Web Ontology Language):定義謂語的語意規則,如「是子類型」的傳遞性、對稱性
- SPARQL:針對 RDF 知識圖譜的查詢語言,功能類似 SQL 但針對圖結構設計
- Triplestore:儲存 RDF 三元組的資料庫,如 Apache Jena、Stardog、Neo4j(支援 RDF 模式)
知識圖譜的代表性應用:Google Knowledge Graph、Wikidata、DBpedia 都採用 RDF 或 RDF 相近的格式,讓全球知識庫能互相連結和查詢。企業內部知識圖譜整合這些外部資源時,RDF 的標準 URI 讓對齊變得直接。
為什麼其他選項是錯的
A僅以節點與邊表示,所有資訊存放於節點屬性中
用圖形資料庫建模,但關係語意存在節點的屬性欄位裡,不做標準化。
把資訊全存入節點屬性,邊只是「有連到」但沒有語意定義,無法進行推理。更重要的是,「所有資訊存放於節點屬性中」意味著忽略了邊的語意,正是 RDF 三元組用謂語(Predicate)精確定義關係的反面設計。
知道知識圖譜用圖形資料庫,但不熟悉 RDF 標準,直覺選了「節點邊」這個最廣義的描述。
C使用文件型資料庫儲存內容,並以標籤連接節點
用 MongoDB 等文件型資料庫存每份知識文件,用 Tag 標記相關性。
Tag 只是字串標籤,沒有語意定義,「AI 標籤」和「機器學習標籤」的上下位關係在資料庫裡無法表達。文件型資料庫適合全文搜尋,但不支援圖推理,無法回答「哪些技術從屬於 AI 的子領域」這類語意問題。
習慣用 Elasticsearch 或 MongoDB 做企業知識管理,誤以為加個 Tag 就等於知識圖譜的人。
D採用關聯式資料庫儲存對應關係,並搭配預建索引加速查詢
用 MySQL 等關聯式資料庫建表,加索引讓查詢快一點。
關聯式資料庫擅長結構化資料的精確查詢,但語意推理(如「繼承關係的傳遞」「實例是其類別的成員」)需要推理引擎,不是 SQL 和索引能解決的。加索引只解決查詢速度,完全不解決語意推理問題。
把「查詢速度」等同於「推理能力」,或認為「加索引就能解決所有查詢問題」的人。
同個考點下次怎麼變形
SPARQL 是什麼?它和 SQL 有什麼不同?
SPARQL 感覺是查詢語言,和 SQL 一樣嗎?
SPARQL 是針對 RDF 三元組資料設計的查詢語言,可以做圖模式匹配(如「找所有使用了 Transformer 架構的模型」)。SQL 針對表格,JOIN 處理多層關係;SPARQL 天然適合圖走訪,語意查詢更直覺,且可跨多個 RDF 資料集聯合查詢。
本體論(Ontology)在知識圖譜裡扮演什麼角色?
知識圖譜常提到本體論,它是什麼?
本體論定義「關係類型」的語意規則,例如定義「是子類型」是傳遞性的(A 是 B 子類,B 是 C 子類,所以 A 也是 C 子類)。OWL 就是用來定義本體論的語言。沒有本體論,知識圖譜只是資料庫;有了本體論,才能支援自動推理。
知識圖譜和向量資料庫(Vector Database)在 RAG 中各扮演什麼角色?
現在 RAG 很流行,知識圖譜和向量資料庫有什麼不同?
向量資料庫擅長語意相似度搜尋(找語意相近的段落),但不處理結構化關係推理;知識圖譜擅長結構化關係查詢和推理,但語意搜尋弱。Graph RAG 結合兩者,先用知識圖譜找出概念關係,再用向量搜尋找相關文本,召回品質更高。
知識圖譜的三元組和自然語言處理的三元組抽取(Triple Extraction)有什麼關係?
聽說 NLP 可以從文章自動抽出三元組,和知識圖譜的三元組是同一件事嗎?
是的,NLP 的三元組抽取(Triple Extraction 或關係抽取)就是自動從非結構化文章中找出「主語-謂語-賓語」陳述,抽出的三元組直接可以匯入 RDF 知識圖譜。這是知識圖譜自動建構的核心技術之一。
什麼是「連結資料(Linked Data)」?它和知識圖譜有什麼關係?
偶爾聽到「連結資料」這個詞,跟知識圖譜是同一件事嗎?
連結資料是 Tim Berners-Lee 提出的概念,核心是「用 URI 標識實體,讓不同知識庫的實體可以互相連結」。知識圖譜是連結資料的實現形式。RDF 三元組天然支援連結資料,Wikidata 就是最大的開放連結資料知識圖譜。
想再往下看,這 5 個
- 本體論(Ontology)定義知識圖譜中關係類型的語意規則,是 RDF 推理能力的核心支撐。
- 知識庫(Knowledge Base)知識圖譜是結構化知識庫的一種形式,強調實體間的關聯和推理能力。
- SPARQL(SPARQL查詢)針對 RDF 三元組資料的查詢語言,能進行複雜的語意圖查詢。
- 圖檢索增強(Graph RAG)結合知識圖譜和大型語言模型的 RAG 架構,讓 AI 具備結構化推理能力。
- 三元組抽取(Triple Extraction)從非結構化文本自動抽取主語-謂語-賓語,是知識圖譜自動建構的核心技術。