JSONで受け取ったSPARQLの検索結果をイテレータ風に扱えるよう加工してくれるライブラリ。
<script type="text/javascript" src="result_parser.js"></script>
といった感じに読み込んで使用してください。
$.ajax({
url: "http://ja.dbpedia.org/sparql",
data: {query: "select * where{?s ?p ?o}limit 100",output: "json"},
success: makeTable
});
function makeTable(data){
//SPARQLエンドポイントから返ってきたjsonを引数として渡す
result = resultParse(data);
var str = new String("<tr>");
for(var i=0; i<result.getKeyListLength();i++){
str += "<td>"+result.getKey(i)+"</td>";
}
str += "</tr>";
while(result.next()){ //検索結果を1組進める
for(var i=0; i < result.getLength();i++){
str += "<td><pre>"+result.getValue(i)+"</pre></td>";
//ここではgetValueに数値を渡しているが
//result.getValue("s")のようにSPARQL内で使用した変数名を直接指定することも可能
}
str += "</tr>";
}
$("#table1").append(str);
}
getJson()
検索結果をJSON形式で取得するgetKeyList()
KeyListを配列として取得するgetKeyListLength()
KeyListの長さを数値として取得するgetKey(i)
KeyListのi番目の値を取得するgetValueList()
ValueListを配列として取得するgetValueListLength()
ValueListの長さを数値として取得するnext()
ValueListを1行分進める。ValueListの長さを超えた場合falseを返し、そうでない場合はtrueを返すgetList()
ValueListの現在いる行の内容を配列として取得するgetLength()
ValueListの現在いる行の配列長を数値として取得するgetValue(keyname)
ValueListの現在いる行から変数名を指定して値を取得する。数値を指定した場合KeyListに準じた順に値を取り出すgetType(keyname)
getValue()と同じ方法で値の型を取り出す(例:uri, literal)getLang(keyname)
getValue()と同じ方法で値の言語情報を取得する(例:en, ja)reset()
next()で進められた行数をリセットする。