24
SparqlEPCUで LODをマッシュアップ 年岡晃一 2013第3回LODチャレンジデーin東海 改訂版 2013/11/06 SparqlEPCU 2013/08/24 1 lodcu.cs.chubu.ac.jp/SparqlEPCU/

Sparql epcuでlodをマッシュアップ

Embed Size (px)

Citation preview

Page 1: Sparql epcuでlodをマッシュアップ

SparqlEPCUで LODをマッシュアップ

年岡晃一

2013第3回LODチャレンジデーin東海 改訂版 2013/11/06

SparqlEPCU 2013/08/24 1

lodcu.cs.chubu.ac.jp/SparqlEPCU/

Page 2: Sparql epcuでlodをマッシュアップ

contents

1. 概要 – LOD開発環境SparqlEPCU

– lod_browser

2. プログラミング無しでCSVデータをRDF登録 – Projectとアクセス権

– 汎用アプリで格納データを確認

3. JavaScriptでLODをマッシュアップ – CSVデータをクラウドへ格納

– SPARQL実行

SparqlEPCU 2013/08/24 2

Page 3: Sparql epcuでlodをマッシュアップ

1.概要

SparqlEPCU 2013/08/24 3

目的:LOD開発環境を提供する SparqlEPCU mashup LOD_browser

ユーザー: JavaScriptプログラマー マッシュアップ

Page 4: Sparql epcuでlodをマッシュアップ

LODデータ

Webアプリケーションサイト

エンドユーザ

認証システム OAuth

CLOUD

SparqlEPCU 2013/08/24 4

LODがクラウド で使えるわ♪ らくちん!

Page 5: Sparql epcuでlodをマッシュアップ

コース順

SparqlEPCU 2013/08/24 5

データの登録

データの検索

プログラミング無しで、RDFの登録・検索を体験

自分のプロジェクトを作る

データの登録

データの検索

JavaScriptを書いて、

RDFの登録・検索を体験

csv形式 緯度・経度

csv形式 緯度・経度

Page 6: Sparql epcuでlodをマッシュアップ

RDFとは

SparqlEPCU 2013/08/24 6

名古屋 愛知

河村

橋本

市長

友人

グラフ表現による知識ネットワーク

実世界

メタデータ

Page 7: Sparql epcuでlodをマッシュアップ

SPARQL

select ?s, ?o where{

?s 県 愛知 .

?s 市長 ?o .

}

SparqlEPCU 2013/08/24 7

?s

愛知

?o

市長

グラフ探索

愛知県にある市の市長は誰?

Page 8: Sparql epcuでlodをマッシュアップ

SparqlEPCU RDFstoreにアクセスするJavaScript APIを公開

SparqlEPCU 2013/08/24 8

Page 9: Sparql epcuでlodをマッシュアップ

2.先ずはプログラミング無しで データ格納と データ検索

SparqlEPCU 2013/08/24 9

誰でも手軽にRDFをアップロードしてSPARQLでクエリかけられる

Page 10: Sparql epcuでlodをマッシュアップ

CSV形式でRDF登録データを準備する

• addCSV.html

SparqlEPCU 2013/08/24 10

@学生, 学籍, 名前, mail ID09038, 藤木 晋太郎, [email protected] ID09000, 青山 哲也, [email protected] ID09001, 伊藤 信士, [email protected] ID09002, 遠藤 京子, [email protected]

クラス 属性

個々の データ

_id 学籍

名前

学生

ID09xx

藤木xx

fujiki@xx

mail type

Page 11: Sparql epcuでlodをマッシュアップ

CSV形式でRDF登録 (subjectIDを付けて)

• addCSV2.html

SparqlEPCU 2013/08/24 11

@学生, SubjectID, 学籍, 名前, mail http://aaa/, ID09038, 藤木 晋太郎, [email protected] http://bbb/, ID09000, 青山 哲也, [email protected] http://ccc/, ID09001, 伊藤 信士, [email protected] http://ddd/, ID09002, 遠藤 京子, [email protected]

クラス 属性

個々の データ

http://aaa/ 学籍

名前

学生

ID09xx

藤木xx

fujiki@xx

mail type

先頭属性がsubjectIDであれば、指定URLのRDF登録になります

Page 12: Sparql epcuでlodをマッシュアップ

データを登録する

SparqlEPCU 2013/08/24 12

Page 13: Sparql epcuでlodをマッシュアップ

登録したデータを検索してみる

SparqlEPCU 2013/08/24 13

?s ?p ?o

Page 14: Sparql epcuでlodをマッシュアップ

LOD Browserで検索してみる

SparqlEPCU 2013/08/24 14

緯度、経度情報があればgoogleマップ上に表示します。この画面で編集も出来ます。

Page 15: Sparql epcuでlodをマッシュアップ

3.ここからはプログラミング

SparqlEPCU 2013/08/24 15

JavaScript jQuery マッシュアップ

先ずはサンプルコードをダウンロード

Page 16: Sparql epcuでlodをマッシュアップ

JavaScript APIをつかう

CLOUDを使えばJavaScriptのコードを書くだけで LODアプリケーションサイト構築が可

RDFの登録

RDFの更新

RDFの削除

RDFの検索(SPARQL実行)

SparqlEPCU 2013/08/24 16

Zipを解凍してindex.htmlをダブルクリック

Page 17: Sparql epcuでlodをマッシュアップ

開発にあたっての前提知識

• RDFに関する知識

• JavaScript, jQuery, JSON • RDF登録の入力データ形式

– CSV

– TURTLE

– N3

– RDF/XML

– N-TRIPLE

• RDFダウンロード

– TURTLE

– N3

– RDF/XML

– N-TRIPLE

SparqlEPCU 2013/08/24 17

Page 18: Sparql epcuでlodをマッシュアップ

設定

• conf.jsの設定 (使用するプロジェクトを指定する)

var rdfserver_project=“nagoyadata";

• Jsライブラリの指定 <script type="text/javascript" src="http://lodcu.cs.chubu.ac.jp:8080/SparqlEPCU/RDFmgr/rdfmgr-2.0.0.js"> </script>

SparqlEPCU 2013/08/24 18

Page 19: Sparql epcuでlodをマッシュアップ

LOD登録script <script type="text/javascript"> //インスタンスの宣言

var rdfmgr = new RDFmgr( rdfserver_project ); function goData(){

rdfmgr.insertInstance({ // CSV形式のデータをSparqlEPCUに送信

rdfdata: $("#csvdata").val(), success: function(){ alert("成功しました。"); } , error: getErrorMsg, overwrite: false }); } //エラー表示用関数 function getErrorMsg ( eType,eMsg,eInfo ){ alert(eMsg+"¥n¥n"+eInfo); } </script>

SparqlEPCU 2013/08/24 19

Page 20: Sparql epcuでlodをマッシュアップ

LOD検索script function sparqlSend () {

var stext = $(“#sparql”).val(); // 検索式を入力フィールドより持って来る

rdfmgr.executeSparql ( { // SPARQL検索を行う

sparql: stext, // 検索式

inference: false, // 推論を行うか行わないかを指定する

success: maketable, // 処理が終わった時に表示関数を呼び出す指定

error: getErrorMsg // 例外が起きた時にエラー処理関数を呼び出す

});

} function maketable(re) { // 検索結果のJSONデータを、イテレータを使用して取り出して表作成する

$("#disp").empty();

var str = new String("<tr>");

for(var i=0; i<re.getKeyListLength();i++){ str += “<td>”+re.getKey(i)+“</td>”; }

str += "</tr>";

while(re.next()) { for(var i=0; i < re.getLength();i++) { str += “<td><pre>”+re.getValue(i)+“</pre></td>”; }

str += "</tr>";

}

$("#disp").append(str);

}

SparqlEPCU 2013/08/24 20

http://lodcu.cs.chubu.ac.jp/SparqlEPCU/RDFServer.jsp?reqtype=api&project=nagoyadata&query=select * where{?s ?p ?o}&output=JSON

Page 21: Sparql epcuでlodをマッシュアップ

DeleteInstance

GET http://lodcu.cs.chubu.ac.jp/SparqlEPCU/RDFServer.jsp?

sparqlCallback=xxx&

hostname=&

reqtype=manage&

type=removeInstance&

graphID=null&

project=test2&

subject= http://lodcu.cs.chubu.ac.jp/SparqlEPCU/project/test2#id_2

SparqlEPCU 2013/08/24 21

Page 22: Sparql epcuでlodをマッシュアップ

APIs

• CSV形式で登録されたインスタンスの操作 – rdfmgr.insertInstance() – rdfmgr.updateInstance() – rdfmgr.deleteInstance()

• 検索 – rdfmgr.executeSparql ()

• 3つ組みとしての操作

– rdfmgr.insertStatement() – rdfmgr.updateStatement() – Rdfmgr.deleteStatement()

SparqlEPCU 2013/08/24 22

Page 23: Sparql epcuでlodをマッシュアップ

まとめ

• データを生成する人

• データを登録する人

• アプリを作る人

• 基盤環境を作る人

– Sparqlエンドポイントを作る人

–データカタログ、Hubを作る人

–語彙の統制を計る人

–問い合わせ文からSPARQL式を作る人

SparqlEPCU 2013/08/24 23

Page 24: Sparql epcuでlodをマッシュアップ

SparqlEPCU 2013/08/24 24

• サポートサイト – http://lodcu.cs.chubu.ac.jp/SparqlEPCU/

• ダウンロード・サービス – Web API 仕様書

– APP JavaScriptサンプルコード

• デモへのリンク – LOD Browser

• お問い合わせ

[email protected]