Skip to content

Latest commit

 

History

History
29 lines (25 loc) · 3.16 KB

JS-SPARQL-Basic+ans.md

File metadata and controls

29 lines (25 loc) · 3.16 KB

JavaScriptを用いたSPARQL処理の基礎【解答付き】

演習課題1

  • 演習には「templete」フォルダにあるコードを利用すること
  • 回答例は「sample」フォルダを参照

1-1) SPARQLクエリ実行の基本テンプレートの動作確認 【解答例

Ex1-1.htmlを実行し,WikidataのSPARQLエンドポイントでSELECT ?o WHERE{wd:Q7105556 wdt:P131 ?o.} というSPARQLクエリを実行して,得られた?oの値を表示するプログラムの動作の仕組みを確認しなさい.
具体的には,以下の内容を確認する.

  • SPARQLクエリを実行している処理(関数やその引数の設定※関数の中身は参考程度に見ればよい)
  • SPARQLクエリを実行した結果のJSON形式のデータ(実行時に「クエリ実行結果の戻り値(JSON形式) 」に表示される内容)
  • SPARQLクエリを実行した結果をHTMLとして表示する処理(関数の処理の中身も確認する)

1-2) 結果が複数行となるSPARQLの処理【解答例

Ex1-1.htmlで実行するSPARQLクエリをSELECT ?p ?o WHERE{wd:Q7105556 ?p ?o.} に変更し,?pと?oの組を表示するプログラムを作成しなさい,【Ex1-2.htmlとする】

  • ?pと?oの組は1行で表示し,間に「---」など区切りが分かるような記号を挿入すること
  • ヒント:検索結果のデータの長さはdata.lengthで得られるので,これを用いてfor文を使えばよい
  • ヒント:HTMLでの改行には<BR>タグを用いる

1-3) 結果のリンク処理【解答例

Ex1-2.htmlを修正し,クエリ結果として得られた「?oの値」が「URI」のとき,結果表示を「該当URIへのハイパーリンクとする」プログラムを作成しなさい.【Ex1-3.htmlとする】

  • 値がURIかどうかは,data[i]['o'].typeで判定できる
  • HTMLでのハイパーリンク表示には<a href="リンク先URL" target="_blank">のタグを使うとよい.(target="_blank">は表示先のウィンドウの指示だが,省略も可能)

1-4) 結果のラベル処理【解答例

Ex1-3.htmlを修正し,クエリ結果として得られた「?oの値」が「リテラル(文字列)」のとき,「言語(xml:lang)」や「データタイプ(datatype)」の情報も結果に表示プログラムを作成しなさい.【Ex1-4.htmlとする】

  • 「言語(xml:lang)」は大阪電気通信大学@jaのように「値」の末尾に「@言語コード」を付与して表す
  • ヒント:「言語(xml:lang)」の取得はdata[i]['o'].xml:langではなくdata[i]['o']['xml:lang']のように記載する必要があるので注意
  • 「データタイプ(datatype)」は2022-09-24T16:46:19Z^^http://www.w3.org/2001/XMLSchema#dateTimeのように「値」の末尾に「^^データタイプのURI」を付与して表す