資源描述框架 是什麼?
RDF:資源描述框架 的完整解釋
基於三元組的網頁語義描述標準,使用主體-謂語-賓語結構表達信息。
核心概念
RDF 的最小單位是三元組(Triple),包括三個部分:
- 主體(Subject):被描述的資源,通常是一個 URI(如 http://example.com/Paris)
- 謂語(Predicate):描述的性質或關係,也是 URI(如 http://example.com/capital)
- 賓語(Object):屬性值或相關資源,可以是 URI 或字面值(如 "Paris" 或 http://example.com/France)
例如,三元組 http://example.com/Paris http://example.com/capital http://example.com/France 表達「巴黎是法國的首都」這一事實。
RDF 的核心設計原則是開放世界假設(Open World Assumption):不被明確表述的事實被認為未知,而非假設其為假。這與傳統數據庫的閉世界假設不同。這個假設使得 RDF 適合在互聯網上整合和共享數據:無需預先定義完整的數據模式。
RDF 還強調使用 URI 作為標識符。每個資源都有一個唯一的 URI,使得不同來源發佈的數據可以互連。例如,Wikipedia、DBpedia、Freebase 等都可以用各自的 URI 表示「巴黎」,但通過 URI 的等價聲明,系統可以將它們識別為同一個實體。
運作原理
RDF 有多種序列化格式,最常見的包括:
RDF/XML:基於 XML 的格式,易於解析和驗證,但相對冗長。適合在企業系統和 Web 服務中使用。
Turtle(Terse RDF Triple Language):更緊湊和可讀的文本格式,通常用於人工編寫或查看 RDF 數據。例子: http://example.com/Paris http://example.com/capital http://example.com/France.
RDF/JSON:基於 JSON 的格式,適合與 JavaScript 和 Web 應用集成。
N-Triples 和 N-Quads:行式格式,每行一個三元組,易於流式處理大規模數據。
RDF 數據可以存儲在 RDF 存儲系統(RDF Stores 或三元組存儲)中,支持 SPARQL 查詢。SPARQL 是針對 RDF 的查詢語言,允許複雜的圖查詢和模式匹配。例如,查詢「所有歐洲國家及其首都」可以用 SPARQL 進行圖模式匹配。
RDF 還支持命名空間(Namespace)的概念。不同的組織可以定義自己的命名空間,例如 DBpedia 的命名空間是 http://dbpedia.org/,FOAF(Friend of a Friend)的命名空間是 http://xmlns.com/foaf/。通過命名空間,不同組織發佈的本體可以共存而不衝突。
實際應用
在語義網和開放數據中,RDF 是主要的數據發佈格式。歐盟、美國政府等開放數據門戶都提供 RDF 格式的數據,便於自動化整合。例如,歐盟的互操作性框架(SEMIC)規定成員國發佈的公共數據必須支持 RDF 格式。
在圖書館和檔案館中,RDF 被用於描述圖書、檔案、文物等資源及其關係。美國國會圖書館的 BIBFRAME(Bibliographic Framework)就是基於 RDF 的,用於現代化傳統的 MARC 格式。
在電子商務和產品信息管理中,一些平台採用 RDF 描述商品屬性和關係,支持跨平台的商品信息同步。例如,Schema.org 的商品 Schema 可以在 RDF 中表示。
在知識圖譜系統中,許多知識圖譜(DBpedia、Wikidata、YAGO)都使用 RDF 格式發佈數據。這使得知識圖譜中的信息可以被任何支持 SPARQL 的系統查詢和利用。
在生物信息學中,公開的生物數據庫(GenBank、UniProt、ChEBI)都提供 RDF 格式的數據,便於研究人員整合和分析。
常見誤區
一個誤區是認為 RDF 就是一個完整的知識表示系統。實際上,RDF 只提供基本的三元組表示,缺乏表達複雜邏輯的能力。為了表達如「所有人都有名字」這類通用規則,需要在 RDF 之上添加 OWL 等本體語言。
另一個誤區是以為 RDF 三元組可以直接對應自然語言句子。實際上,許多複雜的語義概念無法簡潔地表示為三元組。例如,「在過去的十年中,股票價格上升趨勢」涉及時間、範圍等複雜概念。
有人認為 RDF 數據一定是高質量的。實際上,RDF 只是格式,不能保證數據的準確性和完整性。許多 RDF 數據集含有噪聲和不一致。需要額外的驗證和清理工作。
與相關技術的比較
RDF vs JSON-LD:兩者都用於在網頁中表達結構化數據。JSON-LD 基於 JSON,更容易與 JavaScript 集成,而 RDF 更通用但學習曲線更陡。搜索引擎(Google)傾向於接受 JSON-LD。
RDF vs XML:XML 也用於描述結構化數據,但 RDF 特別針對語義網,支持 URI 標識和本體推理,而 XML 是通用的標記格式。
RDF vs 關聯數據庫:關聯數據庫基於表和 SQL 查詢,RDF 基於圖和 SPARQL 查詢。數據庫適合結構化程度高的數據,RDF 適合結構多變的異構數據。
RDF vs CSV/JSON:這些都是數據交換格式,但 RDF 特別強調語義互操作性和可鏈接性。CSV 和 JSON 更簡單,但無法表達複雜的語義關係。