Java ScriptによるSPARQL利用の方法

Java Scriptを用いて,外部サイトに公開されているSPARQLエンドポイントにアクセスする方法をいろいろ試した結果,および,サンプルコードです.

同一ドメインで公開されているSPARQLエンドポイントへは,Java Scriptを用いて簡単にアクセスすることができますが,外部サイトで公開されているSPARQLエンドポイントについては,一般に,セキュリティの問題からうまくアクセスすることができません(一部のエンドポイントはアクセスできるようですが...).

試した方法は,下記の3種類です.
それぞれ,テキスト入力欄に入力した「SPARQLクエリ」をDBpedia JapaneseのSPARQLエンドポイント(http://ja.dbpedia.org/sparql )に投げ,結果をJSONで受け取って,JSONからHTMLのテーブルを作成して表示する,というシンプルなサンプルになっています.

1. 本プロジェクトで開発しているEasyLODSite(wiki:EasyLODSite )のJava Scriptとサーブレットを利用する.
    http://lodosaka.hozo.jp/sample/sample0_EasyLodSite.html
    →様々な例については,wiki:JavaScriptによるSPARQL利用のサンプル集 をご覧下さい

2. jquery-sparql(SPARQL用のJava Scriptライブラリ)を利用する
    http://lodosaka.hozo.jp/sample/sample0_jq_sparq.html

3. Java Scriptのみで処理を記述する
    http://lodosaka.hozo.jp/sample/sample0_js_only.html

ただし,2.と3.は共に,クロスドメインでのquery発行するためにyahooIのapi(yql)を利用しており,
その影響のためか「2バイト文字を利用できない」という問題があります.

また,2.jquery-sparqlについては,ダブルクォーテーションを含むqueryが発行できないため,SPARQLのクエリ分のダブルクォーテーション(")をシングルクォーテーション(')に置き換えておく必要があります.

以上の結果から考えますと,「日本語」のデータを含むSPARQLエンドポイントを利用するのであれば,現時点では,1.のEasyLODSiteを使うなど(JavaScriptとサーブレット等のサーバサイドでの処理を組み合わせる)のが良さそうです.

※もっとよいJava Scriptライブラリがあるのかも知れませんが...(ご存じ方がありましたら,教えていただけると助かります)

あと,window.XMLHttpRequestを利用してxmlhttp.onreadystatechangeイベントを監視する方法もあるようですが,下記のサンプルでは,やはりクォーテーションを含むqueryが発行できないようです.
   http://semapps.blogspot.jp/2012/05/sparql-query-from-javascript.html