LOD4ALL API

URLによるデータアクセスを提供しています。アクセス用のURLは、「SPARQL検索」にて実行結果を確認しながら、組み立てることができます。



検索APIライブラリ (LFASparql)

LFASparqlについて

LFASparqlはLOD4ALL上のリソースを検索するためのJavaScriptライブラリです。LFASparqlを利用することにより、LOD4ALLに登録されているデータセットのリソースを横断的に検索することが出来ます。

  1. 利用方法
  2. サンプルコード

ページトップへ

1. 利用方法

以下の手順で利用することができます。

1. LFASparqlの読込

利用のためにはまずjLFASparqlを読み込んでください。またLFASparqlについては、"http://lod4all.net/api/lfasparql-2.0.0.js"を参照してもよいですし、ダウンロードして利用してもかまいません。

<script type="text/javascript" src="http://lod4all.net/api/lfasparql-2.0.0.js"></script>

2. LFASparqlクラスのインスタンスを作成

var lfasparql = new LFASparql();

3. 検索リクエストの送信

executeSparqlメソッドを利用することで、LOD4ALLに検索リクエストを送信することができます。executeSparqlの引数には検索するためのSPARQL文、検索成功時・失敗時のコールバック関数を含む連想配列を与えます。使用できるPrefix名はこちら


var sparql_query = "select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . }";

lfasparql.executeSparql({
    appID: "xawsaykmcb",
    sparql: sparql_query,
    success: getResult,
    error: getError
});

4. 検索結果の取得

executeSparqlの引数に指定したコールバック関数で、検索結果を取得することができます。検索成功時のコールバック関数には、検索のレスポンスのJSONの文字列から生成されたJavaScriptオブジェクトが引数として与えられます。また検索失敗時のコールバック関数には、xhrオブジェクトとエラーの状態を表す文字列およびHTTPのステータスを表す文字列が引数として与えられます。これは、jQueryのajaxメソッドのエラー時のコールバック関数と同じです。

function getResult(data) {
    for(var i = 0; i < data.length; i++) {
    	var items = data[i];
    	var p_type = items["p"]["type"];
    	var p_value = items["p"]["value"];

    	var o_type = items["o"]["type"];
    	var o_value = items["o"]["value"];

    	var o_datatype = "";
       	if(o_type == "typed-literal")
        {
        	o_datatype = items["o"]["datatype"];
        }

        var o_lang = "";
        if(o_type == "literal")
        {
        	o_lang = items["o"]["xml:lang"];
        }

        //Do something
    }
}
function getError(xhr, status, error) {
    error_json = JSON.parse(xhr.responseText);
    console.log("Error occured: " + status + "\nError: " + error + "\nError detail: " + error_json.message);
}

また以下のフォーマットになります。typeが"typed-literal"の場合はデータ型、typeが"literal"の場合は、言語ラベルが付加されます。

 [
      {
        "p": { "type": "uri" , "value": "http://dbpedia.org/ontology/wikiPageWikiLink" } ,
        "o": { "type": "uri" , "value": "http://ja.dbpedia.org/resource/成田国際空港" }
      } ,
      {
        "p": { "type": "uri" , "value": "http://dbpedia.org/ontology/wikiPageOutLinkCount" } ,
        "o": { "datatype": "http://www.w3.org/2001/XMLSchema#integer" , "type": "typed-literal" , "value": "926" }
      } ,
	  {
        "p": { "type": "uri" , "value": "http://ja.dbpedia.org/property/before" } ,
        "o": { "type": "literal" , "xml:lang": "ja" , "value": "東京(東京府)" }
      }
]

SPARQL 1.1 Query Results JSON Formatで出力したい場合は、実行引数にdataType:"json"を付けてください。


var sparql_query = "select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . }";

lfasparql.executeSparql({
    appID: "xawsaykmcb",
    sparql: sparql_query,
    success: getResult,
    dataType:"json",
    error: getError
});

ページトップへ

2. サンプルコード

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="http://lod4all.net/api/lfasparql-2.0.0.js"></script>
    <script type="text/javascript">
        var lfasparql = new LFASparql();

        $(document).ready( function() {
            test();
        });

 		function test() {

			var sparql_query = "select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . }";

			lfasparql.executeSparql({
			    appID: "xawsaykmcb",
    			sparql: sparql_query,
    			success: getResult,
    			error: getError
			});

			function getResult(data) {
    			for(var i = 0; i < data.length; i++) {
        			var items = data[i];
        			var p_type = items["p"]["type"];
        			var p_value = items["p"]["value"];

        			var o_type = items["o"]["type"];
        			var o_value = items["o"]["value"];

        			var o_datatype = "";
       				if(o_type == "typed-literal")
        			{
        				o_datatype = items["o"]["datatype"];
        			}

        			var o_lang = "";
        			if(o_type == "literal")
        			{
        				o_lang = items["o"]["xml:lang"];
        			}

        			$("#result")
                	.append(
                    	"
  • " + p_type + ": " + p_value + ", " + o_type + ": " + o_value + ", " + o_datatype+", " + o_lang+", "+ "
  • " ); } } function getError(xhr, status, error) { console.log("Error occured: " + status + "\nError: " + error + "\nError detail: " + xhr.responseText); } } </script> <title>API Test</title> </head> <body> <h3>API Test</h3> <ol id="result"> </ol> </body> </html>

    ページトップへ

    3. 旧バージョン互換について

    旧バージョン互換として、execute, executeMultipleメソッドを提供します。executeSparqlメソッドへの付け替えを推奨します。execute, executeMultipleメソッドの詳細は、こちらを参照ください。

    ページトップへ