<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE spec SYSTEM "xmlspec.dtd" [
  <!ENTITY base.uri "http://www.w3.org/TR/">
  <!ENTITY maturity.level "LC">
  <!ENTITY doc.shortname "sparql11-results-json">
  <!ENTITY draft.year "2011">
  <!ENTITY draft.month.name "May">
  <!ENTITY draft.month "05">
  <!ENTITY draft.day "14">
  <!ENTITY iso6.doc.date "&draft.year;&draft.month;&draft.day;">
  <!ENTITY doc.ident "&maturity.level;-&doc.shortname;-&iso6.doc.date;">
  <!ENTITY this.version "&base.uri;&doc.ident;">
<!--
  <!ENTITY xml.version "&doc.ident;.xml">
  <!ENTITY review.version "&doc.ident;-review.html">
  <!ENTITY pdf.version "&doc.ident;.pdf">
  <!ENTITY errataloc "http://www.w3.org/2009/sparql/docs/json-results/json-results-errata">
  <!ENTITY preverrataloc "">
  <!ENTITY translationloc "http://www.w3.org/2003/03/Translations/byTechnology?technology=&doc.shortname;">
-->
  <!ENTITY impreploc "">
  <!ENTITY versionOfSPARQL "1.1">
  <!ENTITY nbsp "&#160;">
  <!ENTITY ndash "&#x2013;">
  <!ENTITY mdash "&#x2014;">
  <!ENTITY eacute "&#xe9;">
  <!ENTITY aacute "&#xe1;">
  <!ENTITY udotdot "&#xfc;">
  <!ENTITY mu "&#x3bc;">
  <!ENTITY Psi "&#x3a8;">
  <!ENTITY psi "&#968;">
  <!ENTITY Omega "&#x3a9;">
  <!ENTITY prime "&#x2032;">
  <!ENTITY rarr "-&gt;">
  <!ENTITY forall "&#8704;">
  <!ENTITY exists "&#8707;">
  <!-- Union -->
  <!ENTITY cup "&#8746;">
  <!-- Intersection -->
  <!ENTITY cap "&#8745;">
  <!ENTITY member "&#8712;">
  <!-- Empty set -->
  <!ENTITY empty "&#8709;">
  <!ENTITY magicents "<code>amp</code>,
  <code>lt</code>,
  <code>gt</code>,
  <code>apos</code>,
  <code>quot</code>">
  <!ENTITY MAY "<rfc2119>MAY</rfc2119>">
  <!ENTITY SHOULD "<rfc2119>SHOULD</rfc2119>">
  <!ENTITY MUST "<rfc2119>MUST</rfc2119>">
  <!ENTITY % local.common.att "xml:lang    CDATA  #IMPLIED">
  ]>
<?xml-stylesheet type="text/xsl" href="REC-xml.xsl"?>

<!-- Process: 
    Set the date above correctly.
    Look for the string "publication-process" (3 places, one immediately next)
    1/ set the w3c-doctype
    2/ set the link to the previous version
    3/ comment out the working draft paragraph
 -->
 
<!-- publication-process 
    Set w3c-doctype="wd" etc for publication ; "ed" or "review" for editor's working draft 
-->

<spec w3c-doctype="ed" xml:lang="en">
  <header>
    <title>SPARQL &versionOfSPARQL; Query Results JSON Format</title>
    <!--<w3c-doctype>Editors' Working Draft</w3c-doctype>-->
    <w3c-doctype>W3C Working Draft</w3c-doctype>
    <w3c-designation>&doc.ident;</w3c-designation>
    <pubdate>
      <day>&draft.day;</day>
      <month>&draft.month.name;</month>
      <year>&draft.year;</year>
    </pubdate>
    <publoc>
      <loc href="&this.version;/">&this.version;/</loc>
    </publoc>
    <!--
    <altlocs>
      <loc href="&xml.version;">XML</loc>
      <loc href="&pdf.version;">PDF</loc>
      <loc href="&review.version;">XHTML with color-coded revision indicators</loc>
    </altlocs>
    -->
    <latestloc>
      <loc href="http://www.w3.org/TR/&doc.shortname;/">http://www.w3.org/TR/&doc.shortname;/</loc>
    </latestloc>
    <prevlocs>
      <!--  publication-process
           Make this a link to the previous version -->
      <!--
      <loc href="http://www.w3.org/TR/2010/WD-sparql11-query-YYYYMMMDD">http://www.w3.org/TR/2010/WD-sparql11-query-YYYYMMMDD/</loc>-->
      <loc href="http://www.w3.org/TR/rdf-sparql-json-res/">http://www.w3.org/TR/rdf-sparql-json-res/</loc>

    </prevlocs>
    <authlist>
      <author role="Editor">
        <name>Andy Seaborne</name>
        <affiliation>The Apache Software Foundation</affiliation>
        <!--<email href="mailto:andy.seaborne@epimorphics.com">andy.seaborne@epimorphics.com</email>-->
      </author>
      <author role="PreviousEditor">
        <name>Kendall Grant Clark</name>
        <affiliation>UMD Mindswap</affiliation>
      </author>
      <author role="PreviousEditor">
        <name>Lee Feigenbaum</name>
        <affiliation>IBM</affiliation>
      </author>
      <author role="PreviousEditor">
        <name>Elias Torres</name>
        <affiliation>IBM</affiliation>
      </author>
    </authlist>
    <errataloc href="&errataloc;"/>
    <!--<preverrataloc href="&preverrataloc;"/>-->
    <translationloc href="&translationloc;"/>
    <abstract>
      <p>
        <a href="http://www.w3.org/TR/sparql11-query/">SPARQL</a> is a set of standards for the
        query and update of RDF data, along with ways to access such data over the web.  
        This document describes the representation of SELECT and ASK query results using 
        <a href="http://www.ietf.org/rfc/rfc4627.txt">JSON</a>.
      </p>
    </abstract>
    <status>
      <p><em>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 <a href=
      "http://www.w3.org/TR/">W3C technical reports index</a> at
      http://www.w3.org/TR/.</em></p>

      <!-- Working Draft text -->
      <p>Publication as a Working Draft 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.</p>

      <!-- publication-process : comment out this paragraph -->
      <p>This is an <a href="http://www.w3.org/2005/10/Process-20051014/tr.html#RecsWD">Editors' Working Draft</a>.</p>

      <p>The set of SPARQL documents comprises:</p>
      <ul>
        <li><a href="http://www.w3.org/TR/sparql11-query/">SPARQL 1.1 Query</a></li>
        <li><a href="http://www.w3.org/TR/sparql11-update/">SPARQL 1.1 Update</a></li>
        <li><a href="http://www.w3.org/TR/sparql11-protocol/">SPARQL 1.1 Protocol for RDF</a></li>
        <li><a href="http://www.w3.org/TR/sparql11-http-rdf-update/">SPARQL 1.1 Graph Store HTTP Protocol</a></li>
        <li><a href="http://www.w3.org/TR/sparql11-entailment/">SPARQL 1.1 Entailment Regimes</a></li>
        <li><a href="http://www.w3.org/TR/sparql11-service-description/">SPARQL 1.1 Service Description</a></li>
        <li><a href="http://www.w3.org/TR/sparql11-federation/">SPARQL 1.1 Federation Extensions</a></li>
        <li><a href="http://www.w3.org/2009/sparql/docs/tests/">SPARQL 1.1 Conformance Tests</a></li>
        <li>SPARQL 1.1 Query Results JSON Format (this document)</li>
        <li><a href= "http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL Query Results XML Format</a></li>
      </ul>
     
      <p>The JSON result format was previously available as a Working Group Note: 
      <a href="http://www.w3.org/TR/2007/NOTE-rdf-sparql-json-res-20070618/">Serializing SPARQL Query Results in JSON</a>. That Note is superseded by this specification, which does not change the normative definition of the SPARQL Query Results JSON Format. The SPARQL Working Group has not revised the <a href= "http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL Query Results XML Format</a>.</p>
       <!-- Working Draft text -->
      <p>The design of the features presented here is work-in-progress and does not represent
      the final decisions of the working group.  Implementers and application writers should
      not assume that the designs in this document will not change.</p>

      <p>Comments on this document should be sent to <a href="mailto:public-rdf-dawg-comments@w3.org">public-rdf-dawg-comments@w3.org</a>, a mailing list with a <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments">public archive</a>. Questions and comments about SPARQL that are not related to this specification, including extensions and features, can be discussed on the mailing list <a href="mailto:public-sparql-dev@w3.org">public-sparql-dev@w3.org</a>, (<a href="http://lists.w3.org/Archives/Public/public-sparql-dev">public archive</a>).</p>

      <p>This document was produced by the <a href="http://www.w3.org/2001/sw/DataAccess/">SPARQL Working Group</a>, which is part of the <a href="http://www.w3.org/2001/sw/Activity">W3C Semantic Web Activity</a>.</p>

      <p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. W3C maintains a <a rel="disclosure" href="http://www.w3.org/2004/01/pp-impl/35463/status">public list of any patent disclosures</a> 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 <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</a>.</p>
    </status>
    <pubstmt>
      <!-- Unused -->
      <p>Copyright © 2011 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.</p>
    </pubstmt>
    <sourcedesc>
      <p>Created in electronic form.</p>
    </sourcedesc>
    <langusage>
      <language id="EN">English</language>
    </langusage>
    <revisiondesc>
      <p role="cvsid">$Id: json-results.xml,v 1.21 2013/03/20 17:56:49 sandro Exp $</p>
    </revisiondesc>
  </header>

  <body>
    <div1 id="introduction">
      <head>Introduction</head>
      
      <p>This document describes how to serialize SPARQL results (SELECT and ASK query forms) 
      in a <a href="http://www.ietf.org/rfc/rfc4627.txt">JSON</a> format.
      The format is designed to be a complete representation of the information 
      in the query results.  The results of a SELECT query are serilialized as
      an array, where each array element is one "row" of the query results; 
      the results of an ASK query give the boolean value of the query result.
      </p>

      <p>An Internet Media Type is provied for <code>application/sparql-results+json</code>.</p>

      <p>
        There is also a <a href="http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL Query Results XML Format</a>
        [<a href="#SRX">SRX</a>] which follows a similar design pattern but uses XML as the serialization.
      </p>

      <p>
        Unless otherwise noted in the section heading, all sections 
        and appendices in this document are normative.
      </p>

    </div1>

    <div1 id="json-result-object">
      <head>JSON Results Object</head>
      <p>The results of a SPARQL Query are serialized in JSON as a single top-level JSON object. This object has a <code>"head"</code> member and either a <code>"results"</code> member or a <code>"boolean"</code> member, depending on the query form.
    </p>

      <p>This example shows the results of a <code>SELECT</code> query. The query solutions are represented in an array which is the value of the <code>"bindings"</code> key, in turn part of an object that is the value of the <code>"results"</code> key:</p>

      <pre class="json"><![CDATA[{
  "head": { "vars": [ "book" , "title" ]
  } ,
  "results": { 
    "bindings": [
      {
        "book": { "type": "uri" , "value": "http://example.org/book/book6" } ,
        "title": { "type": "literal" , "value": "Harry Potter and the Half-Blood Prince" }
      } ,
      {
        "book": { "type": "uri" , "value": "http://example.org/book/book7" } ,
        "title": { "type": "literal" , "value": "Harry Potter and the Deathly Hallows" }
      } ,
      {
        "book": { "type": "uri" , "value": "http://example.org/book/book5" } ,
        "title": { "type": "literal" , "value": "Harry Potter and the Order of the Phoenix" }
      } ,
      {
        "book": { "type": "uri" , "value": "http://example.org/book/book4" } ,
        "title": { "type": "literal" , "value": "Harry Potter and the Goblet of Fire" }
      } ,
      {
        "book": { "type": "uri" , "value": "http://example.org/book/book2" } ,
        "title": { "type": "literal" , "value": "Harry Potter and the Chamber of Secrets" }
      } ,
      {
        "book": { "type": "uri" , "value": "http://example.org/book/book3" } ,
        "title": { "type": "literal" , "value": "Harry Potter and the Prisoner Of Azkaban" }
      } ,
      {
        "book": { "type": "uri" , "value": "http://example.org/book/book1" } ,
        "title": { "type": "literal" , "value": "Harry Potter and the Philosopher's Stone" }
      }
    ]
  }
}]]></pre>

    <p>This example shows the result from an <code>ASK</code> query:</p>
    <pre class="json">{ 
  "head" : { } ,
  "boolean" : true
}</pre>

    <p>Other keys, with different names, may be present in the JSON Results Object 
    but are not defined by this specification.</p>

    </div1>

    <div1 id="select-results-form">
      <head>Variable Binding Results</head>
      <p>The results of a SPARQL <code>SELECT</code> query are serialized as 
      an array of bindings of variables. The value of the <code>"head"</code> key is an array of all variables projected in the query's <code>SELECT</code> clause.</p>

      <div2 id="select-head">
        <head>"head"</head>
        <p>The <code>"head"</code> member gives the variables mentioned in the results and
        may contain a <code>"link"</code> member.</p>

        <pre class="json"><![CDATA[{
"head" { 
   "vars" : [ ... ] ,
   "link" : [ ... ] }]]></pre>
        
        <div3 id="select-vars">
          <head>"vars"</head>
          <p>
            The <code>"vars"</code> member is an array giving the names of the variables used in the results.
            These are the projected variables from the query.
            A variable is not necessarily given a value in every query solution of the results.
          </p>
          <pre class="json"><![CDATA["vars" : [ "book" , "title" ] ]]></pre>
          <p>The order of variable names should correspond to the variables in the SELECT clause of the query, 
          unless the query is of the form <code>SELECT *</code> in which case order is not significant.</p>

        </div3>
          <div3 id="select-link">
            <head>"link"</head>
            <p>The optional <code>"link"</code> member gives an array
            of URIs, as strings, to refer for further information.
            The format and content of these link references is not
            defined by this document.</p>
             <pre class="json"><![CDATA["link" : [ "http://example/dataset/metadata.ttl" ] ]]></pre>
        </div3>
      </div2>

      <div2 id="select-results">
        <head>"results"</head>

    <p>The value of the <code>"results"</code> member is an object with a single key, <code>"bindings"</code>.</p>
        
        <div3 id="select-bindings">
          <head>"bindings"</head>

          <p>The value of the <code>"bindings"</code> member is an array with zero
          or more elements, one element per query solution. 
          Each query solution is a JSON object. Each key
          of this object is a variable name from the query solution. The value for
          a given variable name is a JSON object that  
          <a href="#select-encode-terms">encodes the variable's bound value, an RDF term.</a>
          There are zero elements in the array if the query returned an
          empty solution sequence.
          Variables names do not include the initial "?" or "$" character.
          Each variable name that appears as a key within the <code>"bindings"</code> array will have appeared in the <a href="#select-vars"><code>"vars"</code></a>
          array in the results header.</p>

          <p>A variable does not appear in an array element if it is
          not bound in that particular query solution.
          </p>
          <p>The order of elements in the bindings array reflects the order, if any, 
          of the query solution sequence.</p>

          <pre class="json">"bindings" : [
               {
                 "a" : { ... } ,
                 "b" : { ... } 
               } ,
               {
                 "a" : { ... } ,
                 "b" : { ... } 
               }
             ]</pre>
        <p>If the query returns no solutions, an empty array is used.
        </p>
	<pre class="json">"bindings" : []</pre>
        </div3>
        
        <div3 id="select-encode-terms">
          <head>Encoding RDF terms</head>

          <p>An RDF term (IRI, literal or blank node) is encoded as a JSON object.
          All aspects of the RDF term are represented.  The JSON object has
          a <code>"type"</code> member and other members depending on the
          specific kind of RDF term.</p>

          <table style="border-collapse: collapse; border-color: #000000" border="1" cellpadding="5">
            <tr>
              <th>RDF Term</th>
              <th>JSON form</th>
            </tr>
            <tr>
              <td>IRI <em><b>I</b></em></td>
              <td><code>{"type": "uri", "value": "<em><b>I</b></em>"}</code></td>
            </tr>
            <tr>
              <td>Literal <em><b>S</b></em></td>
              <td><code>{"type": "literal","value": "<em><b>S</b></em>"}</code></td>
            </tr>
            <tr>
              <td>Literal <em><b>S</b></em>  with language tag <em><b>L</b></em></td>
              <td><code>{ "type": "literal", "value": "<em><b>S</b></em>", "xml:lang": "<em><b>L</b></em>"}</code></td>
            </tr>
            <tr>
              <td>Literal <em><b>S</b></em> with datatype IRI <em><b>D</b></em></td>
              <td><code>{ "type": "literal", "value": "<em><b>S</b></em>", "datatype": "<em><b>D</b></em>"}</code></td>
            </tr>
            <tr>
              <td>Blank node, label <em><b>B</b></em></td>
              <td><code>{"type": "bnode", "value": "<em><b>B</b></em>"}</code></td>
            </tr>
          </table>

          <p>The blank node label is scoped to the results object.  
          That is, two blank nodes with the same label in a single SPARQL Results 
          JSON object are the same blank node. This is not an indication of any 
          internal system identifier the SPARQL processor may use.
          Use of the same label in another SPARQL Results 
          JSON object does not imply it is the same blank node.</p>
        </div3>
      </div2>
    </div1>

    <div1 id="ask-result-form">
      <head>Boolean Results</head>

      <p>The results of a SPARQL <code>ASK</code> query are serialized as 
      a boolean value, giving the result of the query evaluation.</p>

      <div2 id="ask-head">
        <head>"head"</head>
        <div3 id="ask-link">
          <head>"link"</head>
          <p>The <code>"link"</code> member has the same format as the <a href="#select-link">SELECT <code>"link"</code></a> member.</p>
        </div3>

      </div2>
        <div2 id="ask-boolean">
          <head>"boolean"</head>
          <p>The result of an <code>ASK</code> query form are encoded by the <code>"boolean"</code> member,
          which takes either the JSON value <code>true</code> or the JSON value <code>false</code>.</p>
          <pre class="json"><![CDATA["boolean" : true ]]></pre>
      </div2>
    </div1>

    <div1 id="example">
      <head>Example</head>
      <p>This section is not normative.</p>
      
      <p>The following JSON is a serialization of the XML document <a class="reference" href="http://www.w3.org/TR/rdf-sparql-XMLres/output.srx">output.srx</a>:</p>

      <pre class="json"><![CDATA[{
   "head": {
       "link": [
           "http://www.w3.org/TR/rdf-sparql-XMLres/example.rq"
           ],
       "vars": [
           "x",
           "hpage",
           "name",
           "mbox",
           "age",
           "blurb",
           "friend"
           ]
       },
   "results": {
       "bindings": [
               {
                   "x" : { "type": "bnode", "value": "r1" },

                   "hpage" : { "type": "uri", "value": "http://work.example.org/alice/" },

                   "name" : {  "type": "literal", "value": "Alice" } ,
                   
		   "mbox" : {  "type": "literal", "value": "" } ,

                   "blurb" : {
                     "datatype": "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral",
                     "type": "literal",
                     "value": "<p xmlns=\"http://www.w3.org/1999/xhtml\">My name is <b>alice</b></p>"
                   },

                   "friend" : { "type": "bnode", "value": "r2" }
               },
               {
                   "x" : { "type": "bnode", "value": "r2" },
                   
                   "hpage" : { "type": "uri", "value": "http://work.example.org/bob/" },
                   
                   "name" : { "type": "literal", "value": "Bob", "xml:lang": "en" },

                   "mbox" : { "type": "uri", "value": "mailto:bob@work.example.org" },

                   "friend" : { "type": "bnode", "value": "r1" }
               }
           ]
       }
}]]></pre>

    </div1>

<!--
This section was not popular.
    <div1 id="utility">
      <head>Progammatic Utility</head>
      <p>This section is not normative</p>
      <div class="note"><p>Do we need this section?</p></div>
      
      <p>In programming languages with a concise syntax for accessing
      data structures and their elements, the JSON serialization of SPARQL results
      offers a path-like language for accessing the parts of SPARQL query
      results. For example, consider the following code fragments:</p>

      <pre class="javascript"><![CDATA[// The array of metadata links
// returns: http://www.w3.org/TR/rdf-sparql-XMLres/example.rq
alert(sr.head.link); 

// The first link in the array
// returns: http://www.w3.org/TR/rdf-sparql-XMLres/example.rq
alert(sr.head.link[0]);

// The bindings array
// [object Object],...,[object Object]
alert(sr.results.bindings);

// The name of the last variable
// returns: friend
alert(sr.head.vars.slice(-1));

var bindings = sr.results.bindings;

// JavaScript  for...in loop iterates
// through the properties of bindings array
// which are [0,1,length-1] as opposed to the
// array item.

for(i in bindings) {
  var binding = bindings[i];
  alert(binding); // a for-loop to print all the bindings
}

// The only difference here (a subtle one) is
// that the iterator variable is n as opposed to r
// n=name, r=row index
for(i in bindings) {
  var binding = bindings[i];
  for(n in binding) {
    alert(binding[n].value); // a nested for-loop to print binding values
  }
}

alert(bindings[0].hpage.value);]]>
      </pre>
    </div1>
-->


    <div1 id="content-type">
      <head>Internet Media Type, File Extension and Macintosh File Type</head>
      
      <p>The Internet Media Type / MIME Type for the SPARQL Query Results JSON Format
      is "application/sparql-results+json".</p>
      
      <p>It is recommended that SPARQL Query Results JSON Format files have the extension ".srj" (all
      lowercase) on all platforms.</p>

      <p>It is recommended that SPARQL Query Results JSON Format files stored on Macintosh HFS file
      systems be given a file type of "TEXT".</p>

      <p>This information that follows is intended to be submitted to the IESG
      for review, approval, and registration with IANA.</p>

      <dl>
        <dt>Type name:</dt>
        <dd>application</dd>

        <dt>Subtype name:</dt>
        <dd>sparql-results+json</dd>

        <dt>Required parameters:</dt>
        <dd>None</dd>

        <dt>Optional parameters:</dt>
        <dd>None</dd>

        <dt>Encoding considerations:</dt>
        <dd>The encoding considerations of the SPARQL Query Results JSON 
        Format is identical to those of the "application/json" as specified in 
        [<a href="#JSON-RFC">JSON-RFC</a>].</dd>

        <dt>Security considerations:</dt>

        <dd>SPARQL query results uses URIs. See Section 7 of [<a href="#RFC3986">RFC3986</a>].<br/>
        SPARQL query results uses IRIs. See Section 8 of [<a href="#RFC3987">RFC3987</a>].<br/>

        The security considerations of the SPARQL Query Results JSON 
        Format is identical to those of the "application/json" as specified in 
        [<a href="#JSON-RFC">JSON-RFC</a>].</dd>

        <dt>Interoperability considerations:</dt>
        <dd>There are no known interoperability issues.</dd>

        <dt>Published specification:</dt>
        <dd>http://www.w3.org/TR/&doc.shortname;/</dd>

        <dt>Applications which use this media type:</dt>
        <dd>No known applications currently use this media type.</dd>

        <dt>Additional information:</dt>

        <dt>Magic number(s):</dt>
        <dd>n/a</dd>

        <dt>File extension(s): </dt>
        <dd>".srj"</dd>

        <dt>Macintosh file type code(s):</dt>
        <dd>"TEXT"</dd>

        <dt>Person &amp; email address to contact for further information:</dt>

        <dd>Andy Seaborne &lt;public-rdf-dawg-comments@w3.org&gt;</dd>

        <dt>Intended usage:</dt>
        <dd>COMMON</dd>

        <dt>Restrictions on usage:</dt>
        <dd>None</dd>

        <dt>Author/Change controller:</dt>
        <dd>The SPARQL specification is a work product of the World Wide Web
        Consortium's SPARQL Working Group.  The W3C has change
        control over these specifications.</dd>
      </dl>
    </div1>
    


  </body>
  <back>
    <!-- &Biblio; -->
    <div1 id="sec-bibliography">
      <head>References</head>
      <div2 id="sec-normative-refs">
        <head>Normative References</head>

        <dl>
          <dt>
            <a name="JSON-RFC" id="JSON-RFC">[JSON-RFC]</a>
          </dt>
          <dd>
            <a href="http://www.ietf.org/rfc/rfc4627.txt">RFC 4627</a>,<br/>
            <cite>The application/json Media Type for JavaScript Object Notation (JSON)</cite>,<br/>
            D. Crockford,<br/>
            <a href="http://www.ietf.org/rfc/rfc4627.txt">http://www.ietf.org/rfc/rfc4627.txt</a>
          </dd>
          <dt>
            <a name="RFC3986" id="RFC3986">[RFC3986]</a>
          </dt>
          <dd>
            <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,<br/>
            <cite>Uniform Resource Identifier (URI): Generic Syntax</cite>,<br/>
            T. Berners-Lee, R. Fielding, L. Masinter, <br/>
            <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
          </dd>

          <dt>
            <a name="RFC3987" id="RFC3987">[RFC3987]</a>
          </dt>
          <dd>
            <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>,<br/>
            <cite>Internationalized Resource Identifiers (IRIs)</cite>,<br/>
            M. D&udotdot;rst, M. Suignard, <br/>
            <a href="http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
          </dd>
        </dl>      
      </div2>

      <div2 id="sec-non-normative-refs">
        <head>Other References</head>
        <dl>
          <dt>
            <a name="SRX" id="SRX">[SRX]</a>
          </dt>
          <dd>@@ref-rdf-sparql-XMLres</dd>

        </dl>
      </div2>
    </div1>
 <!-- begin cvs history --> 
    <div1 id="sec-cvsLog">
      <head>CVS History (Last Call and after)</head>
        <pre>
$Log: json-results.xml,v $
Revision 1.21  2013/03/20 17:56:49  sandro
updated changelog

Revision 1.20  2012/11/07 00:17:42  sandro
fix id on changelog

Revision 1.19  2012/11/07 00:10:26  sandro
*** empty log message ***

Revision 1.18  2012/11/07 00:09:37  sandro
add changelog, update references

Revision 1.17  2012/11/06 14:15:34  sandro
mark cvs log

Revision 1.16  2012/06/26 07:33:16  aseaborne
Correct bad JSON

Revision 1.15  2011/09/13 07:43:48  aseaborne
Prepare for publication

        </pre>
    </div1>
 <!-- end cvs history --> 


<div>
  <h2 id="changelog">Change Log</h2>


    <h3 id="changes-since-pr">Changes since Proposed Recommendation</h3>

    <ul>
      <li>None</li>
    </ul>


    <h3 id="changes-since-lc">Changes since Last Call</h3>

    <ul>
      <li>Fix typo in example.</li>
      <li>Update references</li>
    </ul>

</div>

  </back>
</spec>
