SPARQLクエリ結果XMLフォーマット (original) (raw)

CyberLibrarian

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

First Update: 2008年3月22日



要約

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

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


目次

1. はじめに

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

2. 定義

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

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

2.1. ドキュメント要素

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

...

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

2.2. ヘッダ

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

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

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

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

...

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

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

... ...

2.3. 結果

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

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

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

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

... head ... ... ... ...

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

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

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

_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用語に対する空白ノード・ラベルといかなる関連性も持つ必要はありません。

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

<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:bob@work.example.org</uri>
  </binding>
</result>

...

2.3.2. ブール結果

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

... head ...

true

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 SPARQLクエリの例<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属性を用いてスキーマを示すことができます。

...

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

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

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

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

下記のこの情報は、IANAでのレビュー、承認、および登録のためにIESGに提出されました。このドキュメントの公開日現在、IESGからの回答はありません。

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

To: ietf-types@iana.org
Subject: Registration of media type application/sparql-results+xml

タイプ名:

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 Query Language for RDF, E. Prud'hommeaux, A. Seaborne, Editors, W3C Recommendation, 15 January 2008. This document is http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/ . The latest version is available at http://www.w3.org/TR/rdf-sparql-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/ .