SPARQL APIの概要

統計LODのデータは、SPARQLクエリを用いて検索できます。このクエリをAPI経由で送ることで、検索結果が得られます。SPARQL1.1に準拠しています。

統計LODへのSPARQLによる照会は、次のURLに対して行ないます。
http://data.e-stat.go.jp/lod/sparql/alldata/query

この後に、以下のように、queryというパラメータを使いURLエンコードしたSPARQLクエリを記載します。
http://data.e-stat.go.jp/lod/sparql/alldata/query?query=[URLエンコードしたクエリ]

例として、以下のSPARQLを発行して結果を得る場合を考えます。

#2015年6月の消費者物価指数を調べる

select  ?cpi  
where {
     ?s <http://data.e-stat.go.jp/lod/ontology/measure/index> ?cpi ; 
        <http://data.e-stat.go.jp/lod/ontology/crossDomain/dimension/timePeriod> "2015-06"^^<http://www.w3.org/2001/XMLSchema#gYearMonth> . 
}

例1)curlコマンドを用いて結果を得る

curl -X POST -H "Accept: application/sparql-results+json" http://data.e-stat.go.jp/lod/sparql/alldata/query?query=select+%3Fcpi++%0Awhere+%7B+%3Fs+%3Chttp%3A%2F%2Fdata.e-stat.go.jp%2Flod%2Fontology%2Fmeasure%2Findex%3E+%3Fcpi+%3B+%0A%3Chttp%3A%2F%2Fdata.e-stat.go.jp%2Flod%2Fontology%2FcrossDomain%2Fdimension%2FtimePeriod%3E+%222015-06%22%5E%5E%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23gYearMonth%3E.%0A%7D

検索結果のフォーマットは、HTTP Acceptヘッダーで指定します。指定できるフォーマットを下表に示します。

クエリ種別 フォーマット HTTP Acceptヘッダー
SELECT
ASK
JSON* application/sparql-results+json
XML application/sparql-results+xml
TEXT text/plain
CSV text/csv
TSV text/tab-separated-values
CONSTRUCT
DESCRIBE
RDF/XML* application/rdf+xml
N-triples application/n-triples
text/plain
Turtle text/turtle

*はデフォルト

例2)JavaScriptを用いたHTMLで結果を得る

以下は、SPQRQLエンドポイントに対して、POSTを発行してJSON形式で結果を得る例です。

<!DOCTYPE html>
<html>
<head>
      <script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
</head>
<body>
<script type='text/javascript'>
      var query = 'select ?cpi where { ?s <http://data.e-stat.go.jp/lod/ontology/measure/index> ?cpi ; <http://data.e-stat.go.jp/lod/ontology/crossDomain/dimension/timePeriod> "2015-06"^^<http://www.w3.org/2001/XMLSchema#gYearMonth>.}';
      var url = 'http://data.e-stat.go.jp/lod/sparql/alldata/query';
      $.ajax({
            method: 'POST',
            dataType: 'json',
            url: url,
            data: {query: query},
            success: function(data) {
                alert('cpi: ' + data.results.bindings[0].cpi.value);
            }
      });
</script>
</body>
</html>

 
参考)
・SPARQL 1.1 Protocol(http://www.w3.org/TR/sparql11-protocol/
・SPARQL 1.1 Query Results JSON Format(https://www.w3.org/TR/sparql11-results-json/
・SPARQL Query Results XML Format (Second Edition)(https://www.w3.org/TR/rdf-sparql-XMLres/
・SPARQL 1.1 Query Results CSV and TSV Formats(https://www.w3.org/TR/sparql11-results-csv-tsv/
・Open access to Scotland’s official statistics(http://statistics.gov.scot/sparql