リソース記述フレームワーク(RDF)の紹介
1. 序章
このチュートリアルでは、Resource Description Framework(RDF)の概念とその主な特徴、その使用方法、およびその目的を紹介します。 RDFは、物理オブジェクトと抽象的な概念に関するデータを表すためのモデルです。 グラフ形式でエンティティ間の関係を表現するモデルです。 次のセクションでは、RDFモデルの詳細、表現方法、使用方法、およびその理由について説明します。
2. リソース記述フレームワーク(RDF)表現
RDFでは、人、動物、オブジェクト、あらゆる種類の概念など、あらゆるものを記述できます。 それらはリソースと見なされます。 RDFは、ソフトウェアアプリケーションにとって意味のある情報を表します。 ただし、人間はRDFを読み取って使用することができます。
情報は、次の形式のステートメントで表されます。
<subject> <predicate> <object>
これらのステートメントは、サブジェクトとオブジェクトの間の関係を表します。 サブジェクトとオブジェクトの両方がリソースです。
擬似コードでいくつかのRDFの例を見てみましょう:
<John> <is a> <person>
<John> <is a friend of> <Jane>
<John> <is born on> <the 10th of May 2000>
<John> <is interested in> <the Rosetta Stone>
<the sculpture of David> <is in> <British Museum>
ここでは、同じリソースを参照しているいくつかのステートメントを見ることができます。 同じリソースが、異なるステートメントで異なる役割を果たす可能性があります。 このようにして、これらのステートメントを関連付け、異なるステートメント内のリソース間の接続を見つけることができます。
RDFは通常、有向グラフによって視覚化されます。
これは、それを行うための簡単で明確な方法です。
RDFステートメントはトリプルとも呼ばれます。 次のセクションでは、RDFで使用されるデータ型について説明します。
3. Resource Description Framework(RDF)データ型
RDFのコンポーネントは、IRI、リテラル、および空白ノードである可能性があります。
IRI(Internationalized Resource Identifier)は、 Unix Resource Identifier(URI)を拡張したプロトコル標準です。 URI標準は、US-ASCII文字セットのみを使用します。 IRIでは、Unicode文字セットの文字を含めることができます。 IRIでは、中国語、日本語、韓国語、およびキリル文字を使用できます。 IRIは、RDFのすべての位置に表示される可能性があります。
たとえば、RosettaStoneのIRIは次のとおりです。
https://dbpedia.org/describe/?url=http%3A%2F%2Fdbpedia.org%2Fresource%2FRosetta_stone&sid=4560
大英博物館のIRIは次のとおりです。
https://dbpedia.org/describe/?url=http%3A%2F%2Fdbpedia.org%2Fresource%2FCategory%3ABritish_Museum&sid=4560
RDFでは、 Wikidata 、 DBpedia 、WordNetなどのさまざまなデータセットからの情報を組み合わせることができます。
リテラルは、文字列、日付、数値などの基本的な値です。 それらは、主語または述語の位置には表示できず、オブジェクトの位置にのみ表示されます。
RDFを定義するための基本的な資料は、IRIとリテラルです。 ただし、匿名リソースと見なされるグローバル識別子のないリソースを参照すると便利な場合があります。 それらは、詳細に指定せずに何かの存在を示します。 これらは、サブジェクトまたはオブジェクトの位置でのみ使用できます。
4. RDFのクエリ言語
SPARQL は、RDF形式を使用するデータを要求および取得するクエリ言語です。 したがって、データベースは、前に説明したsubject-predicate-objectの形式のアイテムのセットです。 SPARQLを使用すると、JOIN、SORT、AGGREGATEなどのクエリ操作を他の操作と一緒に使用できます。
次の例では、 FOAF (Friend Of A Friend)データセット内のすべての人の名前と電子メールを取得できます。
PREFIX foaf:
SELECT ?name
?email
WHERE
{
?person a foaf:Person .
?person foaf:name ?name .
?person foaf:mbox ?email .
}
PREFIX句は、山括弧の間に示されるURIを表すラベルfoafを宣言します。 SELECT句は、述語aが foaf データセットに従った人物に対応するすべてのRDF、および人物の名前とメールボックスを結合します。
結合結果は、データセット内の各人の名前と電子メールを含む一連の行で構成されます。 人は複数の名前とメールボックスを持っている可能性があるため、返される結果のセットには、同じ人の複数の行が含まれる可能性があります。
5. RDFデータセット
RDFグラフはデータセットにまとめることができます。 それらには、区別されたデフォルトのグラフと0個以上の名前付きグラフが含まれている必要があります。 これらのデータセットには正式なセマンティクスは存在しません。 SPARQLはクエリにRDFデータセットを使用します。 名前付きグラフは、3つのコンポーネントがRDFトリプルに対応し、4番目のコンポーネントがグラフの名前であるクワッドです。 デフォルトのグラフには名前を付ける必要はありません。
DBpediaプロジェクトは、ウィキペディアからRDF形式の構造化コンテンツを抽出します。 DBpediaデータセットは、Web上の他のさまざまなオープンデータデータセットと相互リンクされています。 DBpediaと他のデータセットの間には4500万を超えるリンクがあります。 SPARQLを使用してDBpediaデータにアクセスできます。
6. RDFを使用するアプリケーション
RDFフレームワークを使用するアプリケーションには多くの利点があります。 RDFは、データとメタデータを交換するための標準フレームワークを提供します。 このフレームワークはオープンで相互運用可能です。 RDF標準構文により、ソフトウェアはメタデータを使用し、情報をより効率的に交換できます。 RDFグラフは、リレーショナルデータベースよりもエンティティの関係に関するより多くの情報を提供します。
6.1. RDFを使用するアプリケーション
以下では、RDFトリプルを使用する実際のアプリケーションをいくつか紹介します。 IBM DB2 Enterprise Server Edition を使用すると、RDFグラフをデータベースに保存および照会できます。 DB2データベースを使用すると、アプリケーションはRDFデータを取得するためにSPARQLを使用できます。 DB2は、RDFデータをユーザー表にロードするJENAフレームワークAPIをサポートします。
Amazon Neptune は、RDFとSPARQLをサポートするグラフデータベースです。 22のAWSリージョンで利用できます。 Amazon Neptune の顧客には、Samsung Electronics、Pearson、Siemens、AstraZeneca、AmazonAlexaがあります。
Apache Jena は、RDFグラフを使用するためのAPIを備えたJava用のフレームワークです。 これらのグラフには、ファイル、データベース、およびURLからのデータを含めることができます。 Jenaでは、SPARQLを使用してRDFトリプルを照会できます。 Jena は、オントロジーを使用した知識表現のための言語ファミリーであるWebオントロジー言語(OWL)のサポートも提供します。 Jenaでは、RDFグラフを他の形式の間でリレーショナルデータベースに変換できます。
6.2. RDFを使用したサービス
RDFグラフを使用するいくつかのサービスを紹介しましょう。 Open Calais 、 Thomson Reuters サービスは、DBpediaへのリンクを使用します。 構造化されていないテキストからエンティティ、ファクト、イベントを識別するRDFトリプルを抽出します。 カレーは、ロンドン証券取引所グループの子会社であるRefinitivから入手できます。 リフィニティブは金融市場データを提供します。 カレーは、ブログ記事のタグ付けや美術館のコレクションの整理にも使用されます。
BBC Learning-Open Lab は、コンテンツにタグを付け、それらのタグ間の混乱を避けるためにDBpediaを使用しています。 DBpediaを使用すると、「aeroplane」、「airplane」、および「aircraft」を参照するテキストに同じタグを付けることができます。 彼らはトルコ(国)とトルコ(鳥)を簡単に区別することができます。
7. 結論
このチュートリアルでは、Resource Description Framework(RDF)の概念とそのフォーマットについて説明しました。 また、RDFトリプルのコンポーネントを表現する方法、RDFデータセットを照会する方法、およびいくつかの重要なRDFデータセットについても説明しました。