セマンティック Web、Linked Data、そして Drupal: 第 2 回 Drupal 7 と SPARQL Views を使って複数の関連するデータ・セットを合成する

この連載の第 1 回では、Drupal コンテンツ管理システムに最近導入された新しい概念をいくつか紹介し、最近の技術では独自仕様の API ではなく、マシンで読み取り可能な RDF (Resource Description Framework) フォーマットを優先して使用するようになったことから、データの共有および再利用が容易になっていることなどを説明しました。今回の記事では、「データの Web」で現在使用可能になっている既存の Linked Data を利用する方法、そして複数の異なるエンドポイントからデータを取得して Drupal 7 サイトを強化する方法を説明します。また、独立した個々のパブリッシャーから実際にデータを取得して使用する例を紹介します。

Stéphane Corlosquet, Software Englineer, MassGeneral Institute for Neurodegenerative Disease (MIND), MGH

Photo of Stéphane CorlosquetStéphane Corlosquet は、アイルランドの DERI (Digital Enterprise Research Institute) でセマンティク Web の修士号を取得しました。MGH の MIND (Mass General Institute for Neurodegenerative Disease) でソフトウェア・エンジニアとして働く彼は、Science Collaboration Framework という、生体臨床医学の研究者たちからなるオンライン・コミュニティーを築くための Drupal ベースのディストリビューションに取り組んでいます。彼は Drupal 6 に貢献し、Drupal 7 コアに最も貢献した上位 30 人のコントリビューターの 1 人として数えられます。Drupal 7 の RDF モジュールを保守管理する彼は、Drupal セキュリティー・チームの一員です。詳細については、http://openspring.net/ にアクセスしてください。



Lin Clark, Drupal Developer, Digital Enterprise Research Institute, NUI Galway

Author photoLin Clark は、Linked Data を専門とする Drupal 開発者です。Drupal 7 コア・イニシアチブでは RDF に貢献し、2010 Google Summer of Code の一部として SPARQL Views を作成しました。また。Linked Data 技術を日常的アプリケーションで使用するメリットについて広範囲にわたって話しています。カーネギー・メロン大学で教育を受けた彼女は、現在はアイルランド国立大学ゴールウェイ校のDigital Enterprise Research Institute でリサーチ修士号を目指しています。詳細については、lin-clark.com にアクセスしてください。



2011年 6月 03日

はじめに

連載第 1 回の「セマンティック Web、Linked Data、そして Drupal: 第 1 回 RDF を使ってデータを公開する」では、Drupal 7 に導入された新機能をいくつか紹介し、Web データの相互運用性を改善してデータをより効率的に共有する方法を概説しました。そして一例として、Drupal 7 を使用して、RDF でコンテンツを公開することによって Linked Data を公開する方法を紹介しました。

今回の記事では、Web 上にある既存の Linked Data を利用する方法を説明します。また、複数の異なるエンドポイントからのデータを使って Drupal 7 を強化する方法を探り、2 つの独立したパブリッシャーから実際にデータを取得して使用する例を紹介します。


シナリオ: 英国の研究資金支援

この記事で紹介するシナリオは、DBpedia と英国政府という 2 つの独立したパブリッシャーが提供しているデータを実際に取得して使用する例です。

第 1 回で紹介したように、DBpedia プロジェクトはウィキペディアから情報ボックスの情報を取得して、そのコンテンツをマシンが読み取れるようにします。Linking Open Data イニシアチブの最初にして最大の取り組みの 1 つである DBpedia には、350 万を超える項目に関する情報が格納され、1,850,000 の画像リンクがあります。すべてのデータはクリエイティブ・コモンズの「帰属 ― 同様に共有」ライセンスの下で提供されているため、皆さんの Drupal サイトで安心して再利用することができます。

英国政府が Linking Open Data の動きに加わったのは、比較的最近のことです。英国政府は Web の考案者である Tim Berners Lee 氏の助言を受けて、政府機関と地方自治体に公共のデータをオンラインに公開させるイニシアチブを立ち上げました。英国政府は公開するデータを増やすことに本腰を入れており、この記事を執筆している時点で使用可能なデータ・セットは 5,400 を数えます。データ・セットの一部は SPARQL エンドポイントから RDF として入手することができます。その一例は、研究資金支援に関するデータ・セットです。このデータ・セットには、英国のさまざまな資金提供機関が支援を行ってきたプロジェクトについての 43,000 を超える情報が含まれています。例えば、以下の情報です。

以下の話題については、「参考文献」にその詳細にアクセスするためのリンクが記載されています。

  • Linking Open Data イニシアチブ
  • データに対してクエリーを実行可能な SPARQL エンドポイント
  • 英国政府が提供している 5,400 のデータ・セット
  • 研究資金支援データ・セット
  • 代表的プロジェクトに関する情報
  • RDF を使用したさまざまなデータ・セットのリンク
  • プロジェクト名
  • プロジェクトの説明
  • プロジェクトに資金提供している機関
  • 助成金の額
  • プロジェクトの開始日と完了予定日
  • 助成金交付の参照番号
  • プロジェクトの状況 (運営中、または完了)

Linking Open Data クラウドは、Web 上にオープン・データ・セットを公開して、各種データ・セットに含まれるデータを RDF を使用して関連付ける、コミュニティーによるプロジェクトです。DBpedia のデータ・セットと data.gov.uk の研究資金支援データ・セットは、どちらも Linking Open Data クラウドで重要なノードとなっています。データ・セット同士を関連付けるということは、「データの Web」をまるでデータベースであるかのように閲覧して、さまざまな場所からコンテンツを取得してマージできることを意味します。

data.gov.uk の研究資金支援データ・セットには、DBpedia 内のリソースへのリンクが含まれているため、両方のデータ・セットからのデータを合成することができます。研究資金支援データ・セットに含まれる各プロジェクトは、そのプロジェクトの資金提供機関の DBpedia URI にリンクしています。このような資金提供機関の 1 つである工学・物理科学研究会議 (EPSRC: Engineering and Physical Sciences Research Council) の DBpedia の URI は http://dbpedia.org/resource/Engineering_and_Physical_Sciences_Research_Council です。この HTTP URI をブラウザーで指定すると、DBpedia がこの機関に関して保有している情報が表示されます。表示される情報には、以下の内容が含まれます。

  • 機関の名称
  • 機関の略称
  • 機関の活動内容についての説明
  • 所在地
  • ホーム・ページ

図 1 に Linked Open Data クラウドの一部を抜粋します。この図には、data.gov.uk の研究資金支援データ・セットと DBpedia との間の関係が示されています。

図 1. Linking Open Data クラウドでの data.gov.uk 研究資金支援データ・セットと DBpedia との関係
多数の円と矢印が示されていますが、data.gov.uk の研究資金支援データ・セットと DBpedia は赤丸で囲まれ、赤い矢印で関係付けられています。

現時点では、データはインターネット上の 2 つの別個のページ (資金提供機関のページと典型的なプロジェクトのページ) にあり、それぞれのページに記載された豊富な情報を 1 つに集約するページはありません。そこで、資金提供機関について説明する単一のページを作成して、そのページに DBpedia から取得したデータを載せ、さらにこの機関が資金提供しているすべてのプロジェクトを研究資金支援データ・セットから取得して一覧にできたとしたらどうでしょう。記事の残りでは、このようなページを Drupal 7 と SPARQL Views を使って作成していきます。


Drupal 7 と必要なパッケージのセットアップ

第 1 回では LAMP スタックをインストールして Drupal 7 を導入する方法を説明しましたが、この記事で取り上げる例では、drupal.org から以下のすべてのパッケージをダウンロードする必要があります。以下に、この記事を執筆している時点でのパッケージの最新バージョンを記載します (個々のパッケージへのリンクについては「参考文献」を参照してください)。

  • RDF 7.x-2.0-alpha1
  • SPARQL 7.x-2.0-alpha1
  • Views 7.x-3.0-beta3
  • SPARQL Views 7.x-2.0-alpha2
  • Entity API 7.x-1.0-beta8
  • CTools 7.x-1.0-alpha4

上記以降のバージョンのモジュールが使用できるようになっている場合には、遠慮なくその最新バージョンを使ってください。Drush のパッケージ・マネージャー (Drupal での apt-get または yum に相当) を使用すれば、Drupal 7に必要なすべてのパッケージをワン・ステップでダウンロードすることができます (リスト 1 を参照)。

リスト 1. Drush のパッケージ・マネージャーで Drupal 7 に必要なすべてのパッケージをダウンロードする
drush pm-download rdfx sparql views sparql_views entity ctools

すべてのパッケージが /sites/all/modules ディレクトリーにダウンロードされたら、以下のモジュールを有効にします。

  • SPARQL Views
  • RDF UI
  • Views の UI モジュール

Drupal はこれらのモジュールの依存関係もインストールするはずですが、インストールされていない場合は drush pm-enable sparql_views rdfui views_ui を実行してください。

メインの RDF パッケージには ARC2 ライブラリーが必要です。詳しい説明については、sites/all/modules/rdf にある README.txt を参照してください。ここでも Drush を使うと時間の節約になります。drush rdf-download を実行すれば、Drush によって ARC2 が自動的に正しい場所にダウンロードされます。


SPARQL Views の紹介

SPARQL Views の詳細を説明する前に理解しておかなければならない重要な点として、SPARQL Views は、最もよく使用されている Drupal モジュールの 1 つである Views の機能を利用します。Views を使用すると、コンテンツのリストをさまざまなフォーマットで作成することができます。Views では、サイト管理者が柔軟なユーザー・インターフェースを使って、表示するデータとその表示方法を決定できるようになっています。

問い合わせ言語をよく知らない人でも、クエリーを作成し、フィルターと引数を使ってクエリーをカスタマイズし、データを表示するためのテンプレート (Google Chart API で作成したグラフや jQuery を使ったスライドショーなど) を持つ多種多様なプラグインを使用することができます。このプロセスのパーツはすべてプラガバブルであるため、Views を拡張して極めて強力なデータ選択および表示ツールにするための多種多様なモジュールが存在します。

ビューには通常、グループのメンバー、ブログ・ポストのリスト、画像ギャラリーなど、何らかの類の関連データが表示されます。Views の以前のバージョンではローカル Drupal データベース内のデータにアクセスすることしかできませんでしたが、Views 3 は Flickr、Amazon S3、Solr サーバーなどのあらゆるデータ・ソースに接続して、どこからでもデータを取得することができます。SPARQL Views では、Views を使って SPARQL エンドポイントに対してクエリーを実行し、その結果をローカル・データベースから取得したかのように表示する機能を追加します。

データ・セットについて Drupal に指示する

Drupal はデータの取得元を知っていなければなりません。そのためにまず必要となる作業は、いくつかの名前空間をセットアップして、この例で使用する 2 つの SPARQL エンドポイントを登録することです。

  1. 名前空間をセットアップするには、管理ツールバーで「Configuration (構成)」をクリックして「Web Services (Web サービス)」ブロックの「RDF publishing settings (RDF パブリッシュの設定)」ページに進み、「RDF namespaces (RDF 名前空間)」タブを選択します。研究資金支援データ・セットが使用する特定の RDF スキーマの名前空間は、http://research.data.gov.uk/def/project/ です。

    この名前空間を、project という接頭辞に関連付けます (図 2 を参照)。DBpedia の場合には、名前空間 http://dbpedia.org/property/ を接頭辞 dbp に関連付けてください。

    図 2. 研究資金支援データ・セットで使用する project 名前空間を登録する
    接頭辞と語彙 URI の 2つのフィールドが示された画面。接頭辞のフィールドには project、語彙 URI のフィールドには http://research.data.gov.uk/def/project/ が指定されています。
  2. 次は SPARQL エンドポイントを登録するために、管理ツールバーで「Structure (構造)」をクリックし、「SPARQL Endpoints Registry (SPARQL エンドポイントの登録)」を選択します。図 3 に一例を示します。以下のタイトルとエンドポイントを入力して、それぞれの SPARQL エンドポイントを登録します。
    • DBpedia: http://dbpedia.org/sparql
    • 研究資金支援: http://services.data.gov.uk/research/sparql
    図 3. 2 つのデータ・セットのエンドポイントを指定して SPARQL エンドポイントを登録する
    2 つのデータ・セットのエンドポイントが追加された SPARQL エンドポイントの登録

データ・セットを Drupal に記述する

次に必要なのは、Drupal 内にデータ・セットを記述して、データ・セットから取得しようとしている具体的なデータ項目を SPARQL Views が認識するようにすることです。第 1 回で説明したように、「データの Web」は、属性 (述部) と値 (オブジェクト) を持つリソースからなります。そのため、SPARQL Views がどの属性を実際にクエリーに使用できるのかを認識していなければ、RDF に対してクエリーを実行することはできません。これらの属性は、Views ではフィールドと呼ばれます。したがって、SPARQL ビューを作成する前に、フィールドを定義する必要があります。この記事の例には、agencyproject という 2 つのタイプのリソースがあります。このそれぞれのリソース・タイプについて、以下の手順に従って、対象とするフィールドと、該当するデータ・セットからそのフィールドの値を取得するために使用できる RDF 述部を定義します。

管理ツールバーで「Structure (構造)」をクリックして、「SPARQL Views resource types (SPARQL Views のリソース・タイプ)」を選択します。「Add SPARQL Views resource type (SPARQL Views のリソース・タイプを追加する)」をクリックし、各リソース・タイプのエンドポイントの名前を入力します。agency は DBpedia エンドポイントと関連付け、project は研究資金支援エンドポイントと関連付けてください (図 4 を参照)。

図 4. SPARQL Views のリソース・タイプを作成するためのフォーム
SPARQL Views のリソース・タイプを作成するためのフォーム。研究資金支援エンドポイントにチェック・マークが付けられています。

これで、両方のリソース・タイプがシステムに設定されたので、それぞれのタイプにクエリーの対象とする適切なフィールドを追加することができます。Drupal 7 でフィールドを作成するのは簡単です。その方法は、ノードのコンテンツ・タイプのフィールドを作成する方法とまったく変わりありません。

agency リソース・タイプの「Manage fields (フィールドの管理)」をクリックし、フィールドの名前 (例えば、Description) を入力します。マシン名には通常、フィールド名をすべて小文字にした名前 (description) を選択します。マシン名には小文字、数字、アンダーバーしか使用することができません。マシン名は、内部でフィールドを参照するために使用されるためです。フィールド・タイプとして「Text (テキスト)」を選択した後 (図 5 を参照)、「Save (保存)」をクリックしてフォームを保存します。

図 5. データ・セットから抽出する属性に対応するフィールドを追加する
データ・セットから抽出する属性に対応するフィールドを追加するためのフォーム

上記の操作によって、フィールド構成フォームが表示されます。フォームを保存するときには、最後のフィールド・セットを除き、すべての設定を変更しないでください。最後のフィールド・セットには、データ・セットからこのデータ項目を抽出するために使用する RDF 述部を指定します。この例では、DBpedia の資金提供機関の「Description (説明)」フィールドに対して rdfs:comment を指定します (図 6 を参照)。

図 6. 特定の値を検索するクエリーを実行するためにデータ・セットで使用する RDF 述部を指定する
特定の値 (この図では資金提供機関の説明) を検索するクエリーを実行するためにデータ・セットで使用する RDF 述部を指定します。

表 1 に、agency リソース・タイプに使用するフィールドおよび対応する RDF マッピングを記載します。

表 1. agency リソース・タイプのフィールドおよび対応する RDF マッピング
Name (名称)rdfs:label
Abbreviation (略称)dbp:abbreviation
Description (説明)rdfs:comment
Homepage (ホーム・ページ)foaf:homepage
Location (所在地)dbp:location

表 2 には、project リソース・タイプの場合のフィールドおよび RDF マッピングを記載します。

表 2. project リソース・タイプの場合のフィールドおよび RDF マッピング
Name (名称)rdfs:label
Reference Number (参照番号)project:grantRefNumber
Value (金額)project:grant
Abstract (摘要)dc:abstract
Funding agency (資金提供機関)project:funder

リソース・タイプごとに、表に記載されたすべてのフィールドを作成してください。2 回目に「Name (名称)」フィールドを作成するときには、必ずフィールド作成フォームの「Add existing field (既存のフィールドを追加する)」行を使用するようにしてください。Drupal のフィールドには任意の名前を選択することができ、その名前はデータ・セットで使用する RDF マッピングに対応したものである必要はありません。

SPARQL Views の結果を表示するページを作成する

最終的に必要となるのは、両方のデータ・セットの結果を表示するコンテナーです。この例では、そのためのコンテナーとして Drupal ノードを使用します。最初のタスクとして、Agency page というコンテンツ・タイプを作成してください。それには「Structure (構造)」 > 「Content type (コンテンツ・タイプ)」の順に選択し、「Add content type (コンテンツ・タイプの追加)」をクリックして、以下の情報を指定します。

  • Name (名前): Agency page (資金提供機関ページ)
  • Description (説明): A page containing information about an agency from various datasets (各種データ・セットからの資金提供機関に関する情報を記載するページ)
  • Display settings (表示設定): 「Display author and date information (作成者および日付情報を表示する)」チェック・ボックスを選択解除します。この例では、関係のない情報であるためです。
  • Comment settings (コメント設定): このページでは、コメント機能は必要ないので、「Closed (閉じる)」を選択します。

このフォームを保存した後、「Manage fields (フィールドの管理)」をクリックして、「Body (本体)」フィールドを削除します (このフィールドは使用しません)。情報を表示したい対象の資金提供機関の URI を記載するためのフィールドとして、「Agency URI (資金提供機関の URI)」というフィールドを追加します。このフィールドに RDF マッピングを指定する必要はありません。

以上の作業が完了すれば、いよいよ資金提供機関に関する情報を実際に表示するためのページを作成することができます。グレーのショートカット・バーで「Add content (コンテンツの追加)」をクリックして、「Agency page (資金提供機関ページ)」を選択してください。このページのタイトルを入力し (例えば、「Information about the Engineering and Physical Sciences Research Council (工学・物理科学研究会議に関する情報)」など)、「Agency URI (資金提供機関の URI)」テキスト・フィールドに、この機関の DBpedia URI を貼り付けます。DBpedia URI を調べるには、まず以下のプロジェクト・ページにアクセスしてください。

http://research.data.gov.uk/doc/project/epsrc/EP/C545222/1

このページで資金提供機関の名前を右クリックすると、以下の URI が示されます。

http://dbpedia.org/resource/Engineering_and_Physical_Sciences_Research_Council

この特定の URI が選ばれた理由は、2 つのデータ・セットの間の共通項だからです。フォームを送信すると、タイトルの下に、フィールドに貼り付けた URI が表示されることがわかります。この URI は、あとでこのページでビューを組み立てる際に重要な役割を果たしますが、必ずしも表示しなければならないわけではありません。この URI を非表示にするには、「Agency page」コンテンツ・タイプを編集するときに、「Manage Display (表示の管理)」タブでフォーマットのドロップ・ダウンから「<hidden>」を選択します。


DBpedia の SPARQL ビューの作成

すべての要素が準備できたところで、これから以下の作業を行います。

  • 指定した RDF マッピングを使用してデータ・セットをクエリーする実際のビューを作成する。
  • 結果を適切なページに表示する。

新しい SPARQL ビューを作成するには、「Structure (構造)」 > 「Views (ビュー)」の順に選択して、「Add new view (新規ビューの追加)」をクリックします。まずは、DBpedia の資金提供機関に関する情報を表示するビューから作成しましょう。ビューに名前を付けて (例えば「Agency information (資金提供機関の情報)」)、「Show (表示)」ドロップダウン・リストから「SPARQL Views: DBpedia」タイプを選択します。ここではページを作成するのではなく、代わりに「Funding Agency Details (source: DBpedia) (資金提供機関の詳細 (情報提供元: DBpedia))」というタイトルのブロックを作成します。「Continue and edit (続行して編集)」をクリックすると、Views のメイン・ユーザー・インターフェースが表示されます。このユーザー・インターフェースの大部分は、SPARQL Views に特有なものではありません。Views を使い慣れているとしたら、フィールド、関係、ソート基準、フィルターなど、お馴染みの概念が数多くあることでしょう。Views は非常に柔軟で、使用できるオプションおよび設定が豊富に提供されています。

フィールドは、結果の表示中に有効になるデータ項目です。フィールドは表示することも、非表示にすることも、場合によっては別のフィールドと合成することもできます。

  1. 使用可能なフィールドを表示する「Fields (フィールド)」ボックスの右上隅にある「add (追加)」ボタンをクリックします。「agency: field_name」チェック・ボックスにチェック・マークを付けてから「Add and configure field (フィールドを追加して構成)」をクリックして、これをフィールドのリストに追加します。フィールドの構成フォームはそのままの状態にして、「Apply (適用)」をクリックします。

    このステップを他のすべてのフィールド (Description (説明)、Homepage (ホーム・ページ)、Location (所在地)、Abbreviation (略称)) について繰り返します。各フィールドの設定を試すために、フィールドにラベルを指定し、フィールド出力を <strong> または <em> の中にラップします。ホーム・ページの URI は、「Output this field as a link (このフィールドをリンクとして出力する)」を選択してリンクのパスを [agency_field_homepage] に設定することで、リンクに変換することができます。

  2. コンテキスト依存フィルターを使用すると、クエリーを実行するときに使用するビューの入力パラメーターを指定することができます。この例で使用する引数は、「Agency information (資金提供機関の情報)」ビューに対して表示中の資金提供機関に関するデータへのクエリーだけを行うことを指定します。ここで重宝するのが、ノードに入力した URI です。

    コンテキスト依存フィルターを追加するには、右側の「Advanced (詳細設定)」フィールド・セットを開いて「Add (追加)」をクリックし、「agency: URI」チェック・ボックスにチェック・マークを付けて、「Add and configure contextual filters (コンテキスト依存フィルターを追加および構成する)」をクリックします「When the filter value is NOT in the URL (フィルターの値が URL に含まれていない場合)」には、「Provide default argument (デフォルト引数を指定する)」を選択します。「Type (タイプ)」には、「Field Value (Node) (フィールドの値 (ノード))」を選択します。「Source Field (ソース・フィールド)」には、「Agency URI (資金提供機関の URI)」フィールドを選択します。以上の設定によって、ビューは SPARQL クエリーの WHERE パターンの主部として、資金提供機関の URI の値を使用するようになります。この設定が完了したら、「Apply (適用)」をクリックします。

  3. 右上隅の「Save (保存)」をクリックして、今まで行ったすべての設定を保存することを忘れないでください。

これで最初の基本的な SPARQL ビューが完成しました。このビューは、工学・物理科学研究会議のために作成したノード内に配置することができます。すると、そのノードで表示されるブロックを使用してビューが実体化されます。

  1. サイト上のブロックを管理するために、「Structure (構造)」 > 「Blocks (ブロック)」の順に進み、「agency_information: Block」という名前のブロックを特定してください。コンテンツ領域で、このブロックを「Main page content (メイン・ページのコンテンツ)」ページ・ブロックの真上に移動して (図 7 を参照)、「Save (保存)」をクリックします。
    図 7. サイト上のブロックを管理する
    ドロップダウン・フィールドと構成オプションが組み込まれた 3 列からなるフォーム
  2. このブロックの可視性の設定を管理するには、このブロックの「configure (構成)」オプションをクリックします。縦に並んだタブのなかから「Content types (コンテンツ・タイプ)」タブを選択し、「Agency page (資金提供機関ページ)」にチェック・マークを付けることで、この SPARQL Views ブロックが意図されたページでのみ表示されるようにします。図 8 を参照してください。
    図 8. 可視性の設定を管理する
    可視性の設定フォーム。「Show block for specific content types (特定のコンテンツ・タイプに対してブロックを表示する)」という項目下の「Agency page (資金提供機関ページ)」にチェック・マークが付いています。
  3. 資金提供機関用に作成したノードでは、上記の手順で作成した SPARQL Views ブロックに、DBpedia から取得されたこの機関に関する詳細情報が表示されるはずです (図 9 を参照)。
    図 9. 資金提供機関に関する詳細情報を表示する SPARQL Views ブロック
    ページ上の 2 つのタブ。SPARQL Views ブロックには資金提供機関に関する詳細情報が表示されています。

研究資金支援 SPARQL ビューを作成する

2 つ目の SPARQL ビューを作成する方法は、最初のビューを作成した方法とほとんど同じです。同じ手順に従って、2 つ目のビューには「Funded projects (資金支援プロジェクト)」という名前を指定し、タイプとして「SPARQL Views: Research funding (SPARQL Views: 研究資金支援)」を選択してください。ブロックのタイトルは、「Projects funded (source: data.gov.uk) (資金支援対象プロジェクト (情報提供元: data.gov.uk))」にします。追加するフィールドは以下のとおりです。

  • Name (名称)
  • Reference Number (参照番号)
  • Value (金額)
  • Abstract (摘要)

「Funding Agency (資金提供機関)」フィールドは省略します。このページを見るときには、資金提供機関は既知であるためです。

コンテキスト依存フィルター field_funding_agency を追加して、最初のビューで行ったように構成します。ブロックをコンテンツ領域に追加して、最初のビューのブロックと同じように構成した後、資金提供機関ノードを見てください。コンテンツが大幅に追加されていることがわかるはずですが、適切なレイアウトには見えないことと思います。最初のビューが表示していたのは 1 つのリソース (資金提供機関) の値だけでしたが、2 つ目のビューは多数のリソースを同時に表示します。したがって、このビューには別のテンプレートを使用する必要があります。この場合のテンプレートとして妥当なのは、表です。つまり、それぞれの結果を行にして、値を表の列にします。Views でこのような表を作成するのは、難しいことではありません。

「Funded Projects (資金援助対象プロジェクト)」ビューの編集フォームに戻ってください。左側のフォーマット・ペインで「Unformatted list (フォーマットなしリスト)」をクリックして、代わりに「Table (表)」を選択します。するとすべての列のリストが表示されるので、このリストを使って、例えば「Value (金額)」列を右寄せにして読みやすくするなど、表のレイアウトを改善することができます。さらに、表をソート可能にすることもできます。

他に考えられるビューの改善内容としては、「Trim this field (このフィールドを制限する)」を選択して、摘要フィールドの最大長 (例えば、150 文字) を設定するのも一考です。また、「Name (名称)」フィールドはリンクとして出力することができます。それには、URI フィールドを追加し、表示からはこのフィールドを除外して、名称の代替パターンとして使用します。ビューを保存して資金提供機関ページにアクセスすると、この資金提供機関が援助したすべてのプロジェクトが表形式で記載されていることがわかります (図 10 を参照)。

図 10. 資金援助を行ったすべてのプロジェクトの表を記載する資金提供機関のページ
資金援助を行ったすべてのプロジェクトの表を記載する資金提供機関のページ

まとめ

この記事では、Drupal 7 と SPARQL Views を使用して、2 つの異なる SPARQL エンドポイントから同じリソースに関するデータを取得して 1 つのページに合成する方法を説明しました。この記事で説明したのは、Views を RDF 問い合わせ言語である SPARQL と組み合わせる数多くの方法のうち、ほんの一例に過ぎません。読者の皆さんがこれからも Drupal 7、Views、そして SPARQL Views が実現する新しい可能性を探り続けて、Linked Data を合成する新しい方法を発見することを願っています。

参考文献

学ぶために

  • DBpedia は、Wikipedia プロジェクトの一環として作成された情報のなかから構造化コンテンツを抽出することを目的とするプロジェクトです。
  • Linked Data イニシアチブは、以前はリンクされていなかった互いに関連するデータを Web を使用して結び付けること、あるいは現在リンクされているデータを別の方法でリンクする際の障壁を Web によって低くすることを目指しています。
  • Linking Open Data クラウドの図には、Linking Open Data コミュニティー・プロジェクトの貢献者やその他の個人ならびに組織によって Linked Data フォーマットでパブリッシュされているデータ・セットが示されています。
  • SPARQL Views は、Google Summer of Code 2010 の一環として、常にこのプロジェクトの改善に取り組んでいる Lin Clark によって作成されました。
  • Semantic Web グループで皆さんの調査結果を共有してください。
  • DBpedia プロジェクトは、この SPARQL エンドポイントでのクエリーに有効です。
  • Opening up government の研究資金支援データ・セットには、DBpedia 内のリソースへのリンクが含まれているため、この両方のデータ・セットからのデータを結合できます。
  • この記事を執筆している時点で、Opening up government - Data には 5,400 のデータ・セットが揃っています。これらのデータ・セットの一部は SPARQL エンドポイントから RDF として入手することができます。その一例は、services.data.gov.uk/research/sparql にある研究資金支援に関するデータ・セットです。このデータ・セットには、各種の英国資金提供機関が資金援助したプロジェクトに関する 43,000 を超える情報が含まれています。
  • HM Government サイト「Opening up government」で、代表的プロジェクトに関する情報を見てください。
  • Tim Berners-Lee 氏、James Hendler 氏、および Ora Lassila 氏による独創性に富んだ記事、「The Semantic Web」では、新しい形の Web コンテンツについて詳しく探っています。
  • ReadWriteWeb に掲載されている Linked Data に関する Tim Berners-Lee 氏へのインタビューを読んでください。
  • Linked Data の設計に関する問題について Tim Berners-Lee 氏が説明しています。
  • SPARQL Query Language for RDF の W3C 仕様を読んでください。
  • Google リッチ・スニペットの資料を読んでください。
  • Implement Semantic Web standards in your Web site」(developerWorks、2008年5月) では、PHP と MySQL を使用して単純なソーシャル・ネットワーキング・サイトを実装する方法を説明しています。このサイトは、セマンティック URI (Uniform Resource Identifier) スキームの一環として、hCard や FOAF (Friend of a Friend) などのセマンティック Web 標準を実装しています。
  • Developing Drupal publications to support standards-based XML」(developerWorks、2011年2月) で、TEI や他の XML 文書をサポートするように Drupal システムをカスタマイズする方法を学んでください。
  • 公式 Drupal インストール・ガイドを読んでください。
  • Acquia Stack Installer を使って Drupal 7 をインストールする手順について、ステップバイステップで紹介しています。
  • W3C の RDF 技術を使用した名前付きプロパティーおよびクラスのディクショナリーとして定義された FOAF 言語については、「The FOAF Vocabulary Specification 0.98」に記述されています。
  • DCMI (Dublin Core Metadata Initiative) は、広範な目的とビジネス・モデルをサポートする相互運用可能なメタデータの開発に取り組むオープンな組織です。
  • SIOC (Semantically-Interlinked Online Communities) Core Ontology Specification」は、オンライン・コミュニティー (メッセージ・ボード、ウィキ、ブログ) からの情報をセマンティック Web で記述するために必要な主要概念およびプロパティーを説明しています。
  • Web にもデモ用クエリー・インターフェースが用意されています。http://dbpedia.org/snorql/ にアクセスしてください。
  • developerWorks Web development ゾーンでは、多種多様な Web ベースのソリューションを話題にした記事を揃えています。
  • developerWorks の Technical events and webcasts: developerWorks technical events and webcasts で最新情報を入手してください。

製品や技術を入手するために

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Web development
ArticleID=665016
ArticleTitle=セマンティック Web、Linked Data、そして Drupal: 第 2 回 Drupal 7 と SPARQL Views を使って複数の関連するデータ・セットを合成する
publish-date=06032011