SPARQL Query Results XML Format
SPARQL Query Results XML Format
W3C Candidate Recommendation 25 September 2007
This version:
Latest version:
Previous version:
Editors:
Dave Beckett
Institute for Learning and Research Technology (ILRT)
University of Bristol
Jeen Broekstra
Information Systems Group
Eindhoven University of Technology
W3C
MIT
ERCIM
Keio
), All Rights Reserved. W3C
liability
trademark
and
document use
rules apply.
Abstract
RDF is a flexible, extensible way to represent information
about World Wide Web resources. It is used to represent, among
other things, personal information, social networks, metadata
about digital artifacts like music and images, as well as
provide a means of integration over disparate sources of
information. A standardized query language for RDF data with
multiple implementations offers developers and end users a way
to write and to consume the results of queries across this wide
range of information.
This document describes an XML format for the variable binding
and boolean results formats provided by the
SPARQL
query language for RDF, developed by the
W3C RDF Data Access
Working Group
(DAWG), part of the
Semantic Web Activity
as described in the
activity statement
Status of This Document
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the
W3C technical reports index
at http://www.w3.org/TR/.
This 25 Sep 2007
draft, along with the other working drafts for SPARQL, is a
Candidate
Recommendation
; it been widely reviewed and satisfies the
requirements documented in
RDF Data Access Use Cases and
Requirements
; W3C publishes a Candidate
Recommendation to gather implementation experience.
The first release of this document was 21 Dec 2004
and the
RDF Data Access Working
Group
has made its best effort to address
comments
received
since then, releasing several drafts and resolving a
list of
issues
meanwhile. The design has stabilized and the Working Group intends to advance this
specification to Proposed Recommendation
once the exit
criteria below are met:
The SPARQL Query Results XML Format has at least two implementations.
This specification will
remain a Candidate Recommendation until at least 9 October 2007.
An implementation report will be produced.
Comments on this document should be sent to
public-rdf-dawg-comments@w3.org
, a mailing list with a
public
archive
Publication as a Candidate Recommendation does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the
5 February 2004 W3C Patent Policy
. W3C maintains a
public list of any patent disclosures
made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains
Essential Claim(s)
must disclose the information in accordance with
section 6 of the W3C Patent Policy
Table of Contents
1. Introduction
2. Definition
2.1. Document Element
2.2. Header
2.3. Results
3. Examples
4. XML Schemas
5. Internet Media Type, File Extension and Macintosh File Type
6. References
A Changes
1.
Introduction
The
SPARQL Query Language for RDF
[SPARQL-QUERY]
defines several
Query Result Forms
SPARQL Query section 10
).
This document defines a
SPARQL Results Document
that encodes
the variable binding query results from
SELECT
queries
SPARQL Query section 10.2
and boolean query results from
ASK
queries
SPARQL Query section 10.5
in
XML
[XML]
2. Definition
Definition:
SPARQL Results Document
SPARQL Results Document
is an
XML document that is valid with respect to either the
RELAX NG XML Schema or the W3C XML Schema in
Section 4.
2.1. Document Element
The
SPARQL Results Document
begins with
sparql
document element in the
namespace,
written as follows:
...
Inside the
sparql
element are two sub-elements,
head
and
a results element (either
results
or
boolean
which must appear in that order.
2.2. Header
The
head
element is the first child element of
the
sparql
element.
For a variable binding query result,
head
must contain a
sequence of elements describing the set of
Query Variable
names in the
Solution Sequence
(here called query results).
The order of the variable names in the sequence is the order of
the variable names given to the argument of the
SELECT
statement in the SPARQL query. If
SELECT *
is used, the
order of the names is undefined.
Inside the
head
element, the ordered sequence of
variable names chosen are used to create empty child elements
variable
with the variable name as the value of an
attribute
name
giving a document like this:
...
For a boolean query result, no elements are required inside
head
and
variable
must not be present.
For any query result,
head
may also contain
link
child elements with an
href
attribute
containing a relative URI that provides a link to some additional
metadata about the query results. The relative URI is resolved
against the in-scope base URI which is usually the query results
format document URI.
link
elements must appear after
any
variable
elements that are present.
...
...
2.3. Results
The second child-element of
sparql
must appear after
head
and is either
results
or
boolean
It is written even if the query results are empty.
2.3.1. Variable Binding Results
The
results
element contains the complete sequence of
query results.
NOTE: in previous versions of this document the
results
element had two required attributes,
distinct
and
ordered
. Both attributes have been removed (see
change log entry for 2007-05-03
).
For each
Query Solution
in the query results, a
result
child-element of
results
is added giving
a document like:
... head ...
...
Each
result
element corresponds to one
Query
Solution
in a result and contains child elements (in no particular order) for each
Query
Variable
that appears in the solution. It
is used to record how the query variables bind to
RDF
Term
s.
Each binding inside a solution is written as an element
binding
as a child of
result
with the query
variable name as the value of the
name
attribute. So for a
result binding two variables
and
hpage
it would
look like:
...
The value of a query variable binding, which is an
RDF Term
, is
included as the content of the
binding
as follows:
RDF URI Reference
RDF Literal
RDF Literal
with language
">
RDF Typed Literal
with datatype URI
">
Blank Node label
If, for a particular solution, a variable is
unbound
, no
binding
element for that variable is included in the
result
element.
Note:
The blank node label
is scoped
to the result set XML document and need not have any association to
the blank node label for that RDF Term in the query graph.
An example of a query solution encoded in this format is as follows:
...
2.3.2. Boolean Results
A boolean result is written as the element content of a
boolean
child-element of the
sparql
element directly after a
head
containing either
true
or
false
as follows:
... head ...
3. Examples
3.1. Variable Binding Results Examples
An example
SELECT
SPARQL Query in
example.rq
operating
on query graph Turtle/N3 data in
data.n3
providing ordered variable binding query results written in XML
in
output.srx
This XML can be transformed into XHTML using the
sample XML Query script
result2-to-html.xq
giving
output-xquery.html
or with
XSLT sheet
result2-to-html.xsl
giving
output-xslt.html
3.2. Boolean Results Examples
An example
ASK
SPARQL Query in
example2.rq
operating
on query graph Turtle/N3 data in
data.n3
provides a boolean query result written in XML
in
output2.srx
This XML can be transformed into XHTML using the
sample XML Query script
result2-to-html.xq
giving
output-xquery2.html
or with
XSLT sheet
result2-to-html.xsl
giving
output-xslt2.html
4. XML Schemas
There are normative XML schemas provided in the following formats:
RELAX NG
[RELAXNG]
Compact
[RELAXNG-COMPACT]
in
result2.rnc
RELAX NG XML in
result2.rng
W3C XML Schema
[XMLSCHEMA-1]
in
result2.xsd
Note: this schema is machine-generated from the RELAX NG XML schema.
If W3C XML Schema is used, an
xsi:schemaLocation
attribute can be used pointing to the schema as follows:
xsi:schemaLocation="http://www.w3.org/TR/2007/CR-rdf-sparql-XMLres-20070925/result2.xsd">
...
5. Internet Media Type, File Extension and Macintosh File Type
The Internet Media Type / MIME Type for the SPARQL Query Results XML
Format is "application/sparql-results+xml".
It is recommended that result files have the extension ".srx" (all
lowercase) on all platforms.
It is recommended that result files stored on Macintosh HFS file
systems be given a file type of "TEXT".
This information that follows is intended to be submitted to the IESG
for review, approval, and registration with IANA.
Internet Media Type Registration Form
To: ietf-types@iana.org
Subject: Registration of media type application/sparql-results+xml
Type name:
application
Subtype name:
sparql-results+xml
Required parameters:
None
Optional parameters:
"charset": This parameter has identical semantics to the charset
parameter of the "application/xml" media type as
specified in
[RFC3023]
, section 3.2.
Encoding considerations:
Identical to those of "application/xml" as specified in
[RFC3023]
section 3.2.
Security considerations:
SPARQL query results uses URIs. See Section 7 of
[RFC3986]
SPARQL query results uses IRIs. See Section 8 of
[RFC3987]
As this media type uses the "+xml" convention, it shares the same
security considerations as described in
[RFC3023]
, section 10.
Interoperability considerations:
There are no known interoperability issues.
Published specification:
This specification.
Applications which use this media type:
No known applications currently use this media type.
Additional information:
Magic number(s):
As specified for "application/xml" in
[RFC3023]
, section 3.2.
File extension(s):
".srx"
Fragment identifiers:
Identical to that of "application/xml" as described in RFC 3023
[RFC3023]
, section 5.
Base URI:
As specified in
[RFC3023]
, section 6.
Macintosh file type code(s):
"TEXT"
Person & email address to contact for further information:
Dave Beckett, Eric Prud'hommeaux
Intended usage:
COMMON
Restrictions on usage:
None
Author/Change controller:
The SPARQL specification is a work product of the World Wide Web
Consortium's RDF Data Access Working Group. The W3C has change
control over these specifications.
References
[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. References
[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 Working Draft (work in progress), 21 July 2005. This document is http://www.w3.org/TR/2005/WD-rdf-sparql-query-20050721/ . 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/ .
A. Changes
(Informative)
2007-05-03. The attributes 'ordered' and 'distinct' of the 'results'
element have been removed per
WG decision at 2007-05-01 telcon
2005-12-21. Unbound variables are no longer explicitly encoded, instead
binding element for such variables is left out. Restriction on order of
binding elements inside a solution is dropped. Cf. WG decision at 2005-12-20 telcon.
2005-08-02. Fixed typo, reverted to editor's draft format.
2005-08-01. Published as
SPARQL Query Results XML Format
, W3C Working Draft 1 August 2005.
For earlier changes see the
changes
in the 1 August 2005 working draft.