Resource Description Framework (RDF) について
Resource Description Framework(RDF、
リソース記述フレームワーク)は、ウェブ上の情報を記述するためのW3C(
World Wide Web Consortium)の
仕様の一つです。元々は
メタデータのデータモデルを記述するためのフレームワークとして設計されましたが、現在ではウェブ上の
リソースに関する情報を概念的に記述・モデル化するための一般的な手法として広く利用されています。ナレッジマネジメントの分野でも応用されています。
RDFは、セマンティックウェブを実現するための重要な構成要素であり、Linked Open Data(LOD)の基盤技術としても活用されています。1999年にW3C勧告として初めて発表され、その後2004年にRDF 1.0、2014年にRDF 1.1と
仕様が改訂されています。
RDFの構造
RDFの基本的な構造は「トリプル」と呼ばれる形式で表現されます。トリプルは、主語(subject)、述語(predicate)、目的語(object)の3つの要素から構成されます。
主語: 記述対象となるリソース。
述語: 主語の特性や主語と目的語との関係性を示す。
目的語: 主語との関係性を持つ対象や、述語の値。
例えば、「空の色は青い」という情報をRDFで表現する場合、「空」を主語、「(~という)色を持つ」を述語、「青」を目的語として扱います。このように、RDFにおける主語、述語、目的語は、一般的な文法とは異なる意味合いを持つ場合があります。
トリプルはグラフ理論におけるグラフで表現することが可能です。リソースはノードとして表現され、ノード間の関係は述語を重みとするエッジで表現されます。これにより、RDFに記述されたすべてのトリプルを可視化することができます。このグラフはRDF Validation Serviceなどのツールで描画できます。
RDFはトリプルに基づく抽象構文を定義しており、具体的な構文としてはXMLを用いたRDF/XMLが定義されています。他にも、トリプルを簡易に表現するための形式として、N-Triples、Notation3、Turtleなどがあります。
N-Triples: 各行に1つのトリプルを主語、述語、目的語の順にスペースで区切って記述する形式。
Notation3: N-Triplesを拡張し、XMLのような接頭辞とローカル名に基づく表記や、推論規則の記述を可能にした形式。
Turtle: N-TriplesにNotation3の便利な記述形式を取り入れた形式。
RDFにおける主語は、URI(Uniform Resource Identifier)で示される
リソースか、URIを持たない空白ノードのいずれかです。述語は必ずURIで示されます。目的語は
Unicode文字列、URIで示される
リソース、または空白ノードのいずれかです。
RSSやFOAFなどのRDFベースの技術では、ウェブ上に存在するデータを指し示すURIが用いられますが、RDFでは
インターネット上で参照できないURIも扱うことができます。この場合、抽象的な概念を表すURIである可能性があり、その意味を事前に定義する必要があります。RDF自体は共通の語彙を提供していませんが、
Dublin Coreのような共通語彙が利用可能です。
RDFの例
例として、「門前仲町の
略語は“モンナカ”である」という文をRDFで表現する場合を考えます。この文は以下のトリプルで表現されます。
主語: 「門前仲町」(URI: https://www.wikidata.org/wiki/Q11654956)
述語: 「
略語である」(URI: http://purl.org/dc/terms/alternative)
目的語: 「モンナカ」(文字列リテラル)
この例では、主語と述語はURIで表現されたリソースである必要がありますが、目的語は単なる文字列でも構いません。
別の例として、Wikipedia英語版の「Tony Benn」のページに関する情報をRDFで記述する場合を考えます。
ページのURI: `http://en.wikipedia.org/wiki/Tony_Benn`
タイトル: 「Tony Benn」
発行元: 「Wikipedia」
この例では、1つの主語に対して複数のトリプルが関連付けられます。
xml
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
Tony Benn
Wikipedia
RDFで情報を記述することにより、
コンピュータがその情報を理解することが可能になります。特に、
Dublin Coreのような共通語彙を使用することで、情報の意味を明確に定義し、ソフトウェア間での相互運用性を高めることができます。
RDFの活用例
Open Directory Project
関連技術
RDF Schema
OWL
RSS
マイクロフォーマット
RDFクエリ言語 - SPARQL
トピックマップ
参考資料
W3C公式RDFサイト
RDF Primer
RDF Primer(和訳)
What is RDF?
RDF/XML構文の簡単な説明
一般的な語彙
Dublin Core Metadata Terms
FOAF Vocabulary Specification