CyberLibrarian

【注意】 このドキュメントは、W3CのSPARQL Query Results XML Format (Second Edition) W3C Recommendation 21 March 2013の和訳です。
このドキュメントの正式版はW3Cのサイト上にある英語版であり、このドキュメントには翻訳に起因する誤りがありえます。誤訳、誤植などのご指摘は、訳者までお願い致します。

First Update: 2013年8月7日


W3C

SPARQLクエリ結果XMLフォーマット(第2版)

W3C勧告 2013年3月21日

本バージョン:
http://www.w3.org/TR/2013/REC-rdf-sparql-XMLres-20130321/
最新バージョン:
http://www.w3.org/TR/rdf-sparql-XMLres/
旧バージョン:
http://www.w3.org/TR/2012/PER-rdf-sparql-XMLres-20121108/
旧勧告:
http://www.w3.org/TR/2008/REC-rdf-sparql-XMLres-20080115/
第2版の編集者:
Sandro Hawke
編集者:
Dave Beckett, Institute for Learning and Research Technology (ILRT), University of Bristol
Jeen Broekstra, Information Systems Group, Eindhoven University of Technology

このドキュメントに対する正誤表を参照してください。いくつかの規範的な修正が含まれているかもしれません。

翻訳版も参照してください。


要約

RDFは、WWW資源に関する情報を表すための、柔軟で、拡張可能な手段です。これは、とりわけ、個人情報、ソーシャル・ネットワーク、音楽や画像のようなデジタル・アーティファクトに関するメタデータを表現し、異なるソースの情報を統合する手段を提供するために用いられます複数の実装を有するRDFデータ用の標準クエリ言語は、開発者やエンドユーザに、この広範囲な分野にわたる情報のクエリ結果を記述し利用する方法を提供します。

このドキュメントでは、アクティビティ声明で記述されているように、セマンティック・ウェブ・アクティビティの一部であるW3CのRDFデータ・アクセス・ワーキンググループ(DAWG)によって開発された、RDF用のクエリ言語SPARQLで提供される変数バインディングのためのXMLフォーマットおよびブール結果フォーマットについて説明します。

このドキュメントのステータス

置き換えられる可能性

この項は、このドキュメントの公開時のステータスについて記述しています。他のドキュメントがこのドキュメントに取って代わることがありえます。現行のW3Cの刊行物およびこの技術報告の最新の改訂版のリストは、http://www.w3.org/TR/のW3C技術報告インデックスにあります。

このドキュメントは、SPARQLワーキンググループが作成した以下の11のSPARQL 1.1勧告のうちの1つです。

  1. SPARQL 1.1概要
  2. SPARQL 1.1クエリ言語
  3. SPARQL 1.1更新
  4. SPARQL 1.1サービス記述
  5. SPARQL 1.1統合クエリ
  6. SPARQL 1.1クエリ結果JSONフォーマット
  7. SPARQL 1.1クエリ結果CSVおよびTSVフォーマット
  8. SPARQLクエリ結果XMLフォーマット(第2版)
  9. SPARQL 1.1含意レジーム
  10. SPARQL 1.1プロトコル
  11. SPARQL 1.1グラフ・ストアHTTPプロトコル

本質的な変更なし

旧バージョン以降、このドキュメントには実質的な変更はありませんでした。マイナーな編集上の変更がある場合には、変更履歴に詳細が記述されており、色分けした差分として見ることができます。

コメントの送信

[email protected]公開アーカイブ)にコメントをお送りください。このドキュメントに対するSPARQLワーキンググループの作業は完了していますが、コメントは正誤表や今後の改定で扱われることがあります。公開討論は、 [email protected]公開アーカイブ)で歓迎します。

W3Cによる承認

このドキュメントは、W3Cメンバー、ソフトウェア開発者、他のW3Cグループ、および他の利害関係者によりレビューされ、W3C勧告として管理者の協賛を得ました。これは確定済みドキュメントであり、参考資料として用いたり、別のドキュメントで引用することができます。勧告の作成におけるW3Cの役割は、仕様に注意を引き付け、広範囲な開発を促進することです。これによってウェブの機能性および相互運用性が増強されます。

特許

このドキュメントは、2004年2月5日のW3C特許方針の下で活動しているグループによって作成されました。W3Cは、このグループの成果物に関連するあらゆる特許の開示の公開リストを維持し、このページには特許の開示に関する指示も含まれています。不可欠な請求権(Essential Claim(s))を含んでいると思われる特許に関して実際に知っている人は、W3C特許方針の6項に従って情報を開示しなければなりません。


目次

1. はじめに

RDF用クエリ言語SPARQL [SPARQL-QUERY]では、いくつかのQuery Result FormsSPARQLクエリの10項)が定義されています。このドキュメントは、SELECTクエリ(SPARQLクエリの10.2項)の変数バインディング・クエリ結果と、ASKクエリのブールクエリ結果(SPARQLクエリの10.5項)をXML [XML]でコード化するSPARQL結果ドキュメントを定義します。

同じような設計に従うけれども、XMLを使用しない結果フォーマットが他に2つあり、それらは、SPARQL 1.1クエリ結果JSONフォーマット [SRJ]と、SPARQL 1.1クエリ結果CSVおよびTSVフォーマット [SRC]です。

2. 定義

定義: SPARQL結果ドキュメント

A SPARQL結果ドキュメントは、4項のRELAX NG XMLスキーマまたはW3C XMLスキーマのどちらかに対して有効なXMLドキュメントです。

2.1. ドキュメント要素

SPARQL結果ドキュメントは、次のように記述された名前空間http://www.w3.org/2005/sparql-results#sparqlというドキュメント要素で始まります。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
 ...
</sparql>

sparql要素内には、headと結果要素(resultsまたはbooleanのどちらか)という2つの下位要素があり、これらは、この順序で出現しなければなりません。

2.2. ヘッダ

head要素は、sparql要素の最初の子要素です。

変数バインディング・クエリ結果では、headは、ソリューション・シーケンス内のクエリ変数名の集合を記述した要素のシーケンスを含まなければなりません(ここでは、クエリ結果と呼びます)。

シーケンス内の変数名の順序は、SPARQLクエリにおけるSELECTステートメントの引数に与えられた変数名の順序です。SELECT *を用いた場合は、名前の順序は定義されません。

head要素内では、選択された変数名の順序付きシーケンスは、name属性の値として変数名を持つvariableという空の子要素を作成するために用いられ、次のようなドキュメントを出力します。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">

  <head>
    <variable name="x"/>
    <variable name="hpage"/>
    <variable name="name"/>
    <variable name="mbox"/>
    <variable name="blurb"/>
  </head>
...
</sparql>

ブール・クエリ結果には、head内では要素は必要なく、variableは存在してはなりません。

また、任意のクエリ結果では、headには、クエリ結果に関する何らかの追加メタデータへのリンクを提供する相対URIを含んだhref属性を有するlink子供要素を含むこともできます。相対URIは、通常はクエリ結果フォーマット・ドキュメントURIである、スコープ内の基底URIに対して解決されます。link要素は、存在する任意のvariable要素の後で出現しなければなりません。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">

  <head>
    ...
    <link href="metadata.rdf"/>
  </head>
...
</sparql>

2.3. 結果

sparqlの2番目の子要素は、headの後で出現しなければならず、resultsbooleanのどちらかです。クエリ結果が空であっても、これは記述されます。

2.3.1. 変数バインディング結果

results要素には、クエリ結果の完全なシーケンスが含まれます。

クエリ結果内の各クエリ・ソリューションに対し、resultsresult子要素が追加され、次のようなドキュメントを出力します。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  ...  head ...

  <results>
    <result>...
    </result>
    <result>...
    </result>
    ...
  </results>

</sparql>

result要素は、結果の中の1つのクエリ・ソリューションに対応しており、ソリューションに出現する各クエリ変数に対する子要素を含んでいます(特定の順序ではなく)。これは、クエリ変数がどのようにRDF用語にバインドするかを記録するために用いられます。

ソリューション内の各バインディングは、name属性の値としてクエリ変数名を持つresultの子供としてのbinding要素として記述されます。そのため、2つの変数xhpageをバインドした結果は、次のようなものになるでしょう。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  <head>
    <variable name="x"/>
    <variable name="hpage"/>
  </head>

  <results>
    <result>
      <binding name="x"> ... </binding>
      <binding name="hpage"> ... </binding>
    </result>

    <result>
      <binding name="x"> ... </binding>
      <binding name="hpage"> ... </binding>
    </result>
    ...
  </results>

</sparql>

RDF用語であるクエリ変数バインディングの値は、下記のbindingの内容として含まれています。

RDF URI参照U
<binding><uri>U</uri></binding>
RDFリテラルS
<binding><literal>S</literal></binding>
言語Lを持つRDFリテラルS
<binding><literal xml:lang="L">S</literal></binding>
データ型URI Dを持つRDF型付きリテラルS
<binding><literal datatype="D">S</literal></binding>
空白ノード・ラベルI
<binding><bnode>I</bnode></binding>

特定のソリューションに対し、変数がバインドされていない場合、result要素には、その変数に対するbinding要素もは含まれていません。

注意: 空白ノード・ラベルIは、結果集合XMLドキュメントで有効で、クエリ・グラフの当該RDF用語に対する空白ノード・ラベルといかなる関連性も持つ必要はありません。

このフォーマットでコード化されたクエリ・ソリューションの例は、下記の通りです。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">

  <head>
    <variable name="x"/>
    <variable name="hpage"/>
    <variable name="name"/>
    <variable name="age"/>
    <variable name="mbox"/>
    <variable name="friend"/>
  </head>

  <results>

    <result> 
      <binding name="x">
	<bnode>r2</bnode>
      </binding>
      <binding name="hpage">
	<uri>http://work.example.org/bob/</uri>
      </binding>
      <binding name="name">
	<literal xml:lang="en">Bob</literal>
      </binding>
      <binding name="age">
	<literal datatype="http://www.w3.org/2001/XMLSchema#integer">30</literal>
      </binding>
      <binding name="mbox">
	<uri>mailto:[email protected]</uri>
      </binding>
    </result>

    ...
  </results>

</sparql>

2.3.2. ブール結果

ブール結果は、下記の通り、headの直後に、sparql要素のboolean子要素の要素内容としてtrueまたはfalseで記述されます。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  ...  head ...

  <boolean>true</boolean>

</sparql>

3. 例

3.1. 変数バインディング結果の例

クエリ・グラフTurtle/N3データdata.n3で動作し、XMLで記述された順序付き変数バインディング・クエリ結果output.srxをもたらす、SPARQLクエリSELECTの例example.rq

このXMLは、output-xquery.htmlを出力するサンプルXMLクエリ・スクリプトresult-to-html.xqを用いるか、output-xslt.htmlを出力するXSLTシートresult-to-html.xslを用いてXHTMLに変換できます。

3.2. ブール結果の例

クエリ・グラフTurtle/N3データdata.n3で動作し、XMLで記述されたブール・クエリ結果output2.srxをもたらす、ASK PARQLクエリの例example2.rq

このXMLは、output-xquery2.htmlを出力するサンプルXMLクエリ・スクリプトresult-to-html.xqを用いるか、output-xslt2.htmlを出力するXSLTシートresult-to-html.xslを用いてXHTMLに変換できます。

4. XMLスキーマ

次のフォーマットで提供される規範的なXMLスキーマがあります。

  1. RELAX NG[RELAXNG] Compact[RELAXNG-COMPACT]は、result.rnc
  2. RELAX NG XMLは、result.rng
  3. W3C XML Schema[XMLSCHEMA-1]は、result.xsd
    注意: このスキーマは、RELAX NG XMLスキーマから機械的に生成されています。

W3C XMLスキーマを用いる場合、次のように、xsi:schemaLocation属性を用いてスキーマを示すことができます。

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.w3.org/2007/SPARQL/result.xsd">

  ...

</sparql>

5. インターネット・メディア・タイプ、ファイル拡張子、およびマッキントッシュ・ファイル・タイプ

SPARQLクエリ結果XMLフォーマットのインターネット・メディア・タイプ/MIMEタイプは、「application/sparql-results+xml」です。

結果ファイルは、全てのプラットホーム上で拡張子「.srx」(全て小文字)であることが推奨されます。

マッキントッシュHFSファイル・システム上に保存された結果ファイルには、ファイル・タイプ「テキスト」が付与されていることが推奨されます。

インターネット・メディア・タイプ登録書式

タイプ名:
application
サブタイプ名:
sparql-results+xml
必須パラメータ:
なし
任意のパラメータ:
"charset": このパラメータは、[RFC3023]の3.2項で定められている「application/xml」メディア・タイプのcharsetパラメータと同じセマンティクスを持っています。
コード化に関する留意点:
[RFC3023]の3.2項で定められている「application/xml」と同じです。
セキュリティに関する留意点:

SPARQLクエリ結果は、URIを用います。[RFC3986]の7項を参照してください。

SPARQLクエリ結果は、IRIを用います。[RFC3987]の8項を参照してください。。

このメディア・タイプが「+xml」という慣習を用いるため、[RFC3023]の10項で記述されるのと同じセキュリティ上の留意点を共有します。

互換性に関する留意点:
互換性の問題は知られていません。
公開済み仕様書:
この仕様書。
このメディア・タイプを使用するアプリケーション:
現時点でこのメディア・タイプを使用するアプリケーションは知られていません。
追加情報:
マジック・ナンバー:
[RFC3023]の3.2項の「application/xml」で定められているとおり。
ファイル拡張子:
".srx"
フラグメント識別子:
RFC 3023 [RFC3023]の5項で記述されている「application/xml」のものと同じです。
基底URI:
[RFC3023]の6項で定められているとおり。
マッキントッシュ・ファイル・タイプ・コード:
"TEXT"
詳細情報に関する連絡先:
Dave Beckett, Eric Prud'hommeaux <public-rdf-dawg-comments@w3.org>
意図する使途:
汎用
使用上の制限:
なし
著者/改版管理者:
SPARQL仕様は、ワールド・ワイド・ウェブ・コンソーシアム(World Wide Web Consortium)のRDFデータ・アクセス・ワーキンググループ(RDF Data Access Working Group)の作業の成果です。W3Cは、これらの仕様の変更に対する管理権を有します。

参考文献

[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.

[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.

[RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource Identifiers (IRIs)", RFC 3987, January 2005.

6. 参考文献

[XML]
Extensible Markup Language (XML) 1.0, Third Edition, T. Bray, J. Paoli, C.M. Sperberg-McQueen, E. Maler, F. Yergeau, Editors, W3C Recommendation, 4 February 2004. This document is http://www.w3.org/TR/2004/REC-xml-20040204 . The latest version is available at http://www.w3.org/TR/REC-xml .
[SPARQL-QUERY]
SPARQL 1.1 Query Language, S. Harris, A. Seaborne, Editors, W3C Recommendation, 21 March 2013, http://www.w3.org/TR/2013/REC-sparql11-query-20130321. Latest version available at http://www.w3.org/TR/sparql11-query.
[RELAXNG]
RELAX NG Specification, James Clark and MURATA Makoto, Editors, OASIS Committee Specification, 3 December 2001. This document is http://www.oasis-open.org/committees/relax-ng/spec-20011203.html . The latest version is available at http://www.oasis-open.org/committees/relax-ng/spec.html .
[RELAXNG-COMPACT]
RELAX NG Compact Syntax, James Clark, Editor. OASIS Committee Specification, 21 November 2002. This document is http://www.oasis-open.org/committees/relax-ng/compact-20021121.html .
[XMLSCHEMA-1]
XML Schema Part 1: Structures Second Edition, D. Beech, N. Mendelsohn, M. Maloney, H. S. Thompson, Editors, W3C Recommendation, 28 October 2004. This document is http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/ . The latest version is available at http://www.w3.org/TR/xmlschema-1/ .
[SRJ]
SPARQL 1.1 Query Results JSON Format, A. Seaborne, Editor, W3C Recommendation, 21 March 2013, http://www.w3.org/TR/2013/REC-sparql11-results-json-20130321. Latest version available at http://www.w3.org/TR/sparql11-results-json.
[SRC]
SPARQL 1.1 Query Results CSV and TSV Formats, A. Seaborne, Editor, W3C Recommendation, 21 March 2013, http://www.w3.org/TR/2013/REC-sparql11-results-csv-tsv-20130321. Latest version available at http://www.w3.org/TR/sparql11-results-csv-tsv.

変更履歴

編集版勧告案以後の変更

2008年の勧告以後の変更