SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
SPARQLとMashup環境 
年岡晃一 
中部大学 
LODチャレンジJapan実行委員 東海地区支部長 
toshioka@cs.chubu.ac.jp SparqlEPCU 
2014/09/07 
1 
http://lodcu.cs.chubu.ac.jp/SparqlEPCU/ 
2014/09/07
contents 
I. 
LOD開発の現況 
II. 
LODとは 
III. 
プログラミング無しで 
1. 
データ登録と更新 
2. 
検索 
IV. 
プログラミングして 
1. 
Mashup 
2. 
サンプルコード 
V. 
SPARQLを学ぶ 
VI. 
さらに学ぶには(今回パス) SparqlEPCU 
2014/09/07 
2 
9/13 
LODチャレンジデー2014 in 名古屋 
でも話します
I.LOD開発の現況 SparqlEPCU 
2014/09/07 
3
LOD構築の実際 SparqlEPCU 
2014/09/07 
4 
行政 
学術機関 
民間 
民間・学術機関 
データ作成者 
RDFデータ公開者 
アプリ開発者 
SPARQL Endpoint提供者 
SPARQL利用 
RでもOK 
データ提供 
データ収集 
LinkData 
DBpedia 
DBpediaJapanese 
SparqlEPCU 
LODAC Museum 
・・・ 
RDFstore 
Sparql Timeliner 
LOD Browser 
・・・ 
エンドユーザー 
多くはSPARQLコマンド画面を 用意している
LOD構築の実際 SparqlEPCU 
2014/09/07 
5 
行政 
学術機関 
民間 
民間・学術機関 
データ作成者 
RDFデータ公開者 
アプリ開発者 
SPARQL Endpoint提供者 
SPARQL 
csv,xls,xml 
csv,ttl 
LinkData 
csv,ttl 
DBpedia DBpediaJapanese SparqlEPCU LODAC Museum ・・・ 
RDFstore 
Sparql Timeliner 
LOD Browser 
・・・ 
エンドユーザー 
GUI 
LOD catalog 
CKAN 
Fuseki 
virtuoso
II.Linked Open Data(LOD)とは SparqlEPCU 
2014/09/07 
6 
RDFとは (Resource Description Framework ) 
SPARQLとは (SPARQL Protocol and RDF Query Language)
rel:participant 
bibo:organizer 
RDF(Resource Description Framework) 
CodeForNagoya Meeting 
foaf:name 
2014-09-27 
http://codeForJapan.org/conf19 
dc:date 
http://www.facebook.com/kawaguchi 
河口信夫 
foaf:name 
http://codeForeJapan.org/ 
http://www.facebook.com/miyauchi 
宮内元 
foaf:name 
CodeForNagoya 
foaf:name 
nco:representative 
foaf:knows 
 
事物をURIで指定する 
 
事物間の関係を意味的リンクで結ぶグラフでデータを表現する(モデル) 
規則 
ノードはURIで特定できる(世界で只1つ) 
プロパティもURIなので関係性の意味定 義も唯一が保証される 
WEB上の知識(リソース)を 
URIで特定し、「意味定義が唯一」が保証 された述語で表現していきましょうLOD
RDFとは SparqlEPCU 
2014/09/07 
8 
名古屋 
愛知 
河村 
橋本 
県 
市長 
友人 
グラフ表現による知識ネットワーク 
実世界 
メタデータ
検索 SPARQL 
select ?s, ?o where{ 
?s 県 愛知 . 
?s 市長 ?o . 
} SparqlEPCU 
2014/09/07 
9 
?s 
愛知 
?o 
県 
市長 
検索はグラフ探索だが上記 テーブルの自己結合で出来る 
愛知県にある市の市長は誰? 
subject 
predicate 
object 
名古屋 
県 
愛知 
松阪 
県 
三重 
千種 
市 
名古屋市 
松本町 
市 
春日井市 
担当教員 
町 
松本町 
名古屋 
市長 
河村 
松本町 
町長 
佐藤 
このトリプルが知識の最少単位
LODデータ 
Webアプリケーションサイト(LODアプリ) 
エンドユーザ 
CLOUD SparqlEPCU 
2014/09/07 
10 
LODアプリサイト がマッシュアッ プで作れるわ♪ 
グーグルマップの 環境と同じ
III.先ずはプログラミング無しで データ格納と データ検索 SparqlEPCU 
2014/09/07 
11 
誰でも手軽にRDFをアップロードして SPARQLでクエリかけられる 
http://lodcu.cs.chubu.ac.jp/SparqlEPCU/
コース順 SparqlEPCU 
2014/09/07 
12 
データの登録 
データの検索 
プログラミング無しで、 RDFの登録・検索を体験 
データの登録 
データの検索 
JavaScriptを書いて、 RDFの登録・検索を体験 
csv形式 
緯度・経度 
csv形式 
緯度・経度
CSV形式でRDF登録データを準備する 
• 
addCSV.html SparqlEPCU 
2014/09/07 
13 
@学生, 学籍, 名前, mail 
ID09038, 藤木 晋太郎, fujiki_s@mail.com 
ID09000, 青山 哲也, aoyama_t@mail.com 
ID09001, 伊藤 信士, ito_s@mail.com 
ID09002, 遠藤 京子, endo_k@mail.com 
クラス 
属性 
個々の 
データ 
_id 
学籍 
名前 
学生 
ID09xx 
藤木xx 
fujiki@xx 
mail 
type
CSV形式でRDF登録 (subjectIDを付けて) 
• 
addCSV2.html SparqlEPCU 
2014/09/07 
14 
@学生, SubjectID, 学籍, 名前, mail http://aaa/, ID09038, 藤木 晋太郎, fujiki_s@mail.com http://bbb/, ID09000, 青山 哲也, aoyama_t@mail.com http://ccc/, ID09001, 伊藤 信士, ito_s@mail.com http://ddd/, ID09002, 遠藤 京子, endo_k@mail.com 
クラス 
属性 
個々の 
データ 
http://aaa/ 
学籍 
名前 
学生 
ID09xx 
藤木xx 
fujiki@xx 
mail 
type 
先頭属性がsubjectIDであれば、指定 URLのRDF登録になります
データを登録する 
SparqlEPCU 
2014/09/07 
15
登録したデータを検索してみる SparqlEPCU 
2014/09/07 
16
IV.ここからはプログラミング SparqlEPCU 
2014/09/07 
17 
JavaScript 
jQuery 
LODを簡単に扱うためのJSライブラリ 
サンプルコードをダウンロード 
マッシュアップ環境 
SlideShare 
http://www.slideshare.net/KohichiToshioka/sparql-epculod-28065847
SparqlEPCU RDFstoreにアクセスするJavaScript APIを公開 SparqlEPCU 2014/09/07 18
LODデータ 
Webアプリケーションサイト(LODアプリ) 
エンドユーザ 
認証システム 
OAuth 
CLOUD SparqlEPCU 
2014/09/07 
19 
LODアプリサイト がマッシュアッ プで作れるわ♪ 
SparqlEPCUでは、各LODデータ セット毎にアクセス権設定を行 えるようにしている
JavaScript APIをつかう 
 
RDFの登録 
 
RDFの更新 
 
RDFの削除 
 
RDFの検索(SPARQL実行) 
SparqlEPCU 
2014/09/07 
20 
Zipを解凍してindex.htmlをダブルクリック
開発にあたっての前提知識 
• 
RDFに関する知識 
• 
JavaScript, jQuery, JSON 
• 
RDF登録の入力データ形式 
– 
CSV 
– 
TURTLE 
– 
N3 
– 
RDF/XML 
– 
N-TRIPLE 
• 
RDFダウンロード 
– 
TURTLE 
– 
N3 
– 
RDF/XML 
– 
N-TRIPLE SparqlEPCU 
2014/09/07 
21
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 
2014/09/07 
22
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 
2014/09/07 
23 
http://lodcu.cs.chubu.ac.jp/SparqlEPCU/RDFServer.jsp?reqtype=api&project= nagoyadata&query=select * where{?s ?p ?o}&output=JSON
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 
2014/09/07 
24
APIs 
• 
CSV形式で登録されたインスタンスの操作 
– 
rdfmgr.insertInstance() 
– 
rdfmgr.updateInstance() 
– 
rdfmgr.deleteInstance() 
• 
検索 
– 
rdfmgr.executeSparql () 
• 
3つ組みとしての操作 
– 
rdfmgr.insertStatement() 
– 
rdfmgr.updateStatement() 
– 
Rdfmgr.deleteStatement() SparqlEPCU 
2014/09/07 
25
LOD Browserで検索してみる SparqlEPCU 2014/09/07 26 
緯度、経度情報があればgoogleマップ上に表示します。この画面で編集も出来ます。
SparqlEPCUの今後 
• 
NamedGraphの利用 
– 
現バージョンでも使える 
• 
FederatedSearchへの対応 
• 
GoogleRefineや語彙のNegotiation 
• 
ScaleOut SparqlEPCU 
2014/09/07 
27
V.SPARQLの機能いろいろ SparqlEPCU 
2014/09/07 
28 
SQLに似ている
SPARQLの諸機能 
• 
DISTINCT 
• 
COUNT 
• 
LIMIT OFFSET 
• 
OPTIONAL 
• 
ORDER BY 
• 
GROUP BY 
• 
FILTER SparqlEPCU 
2014/09/07 
29 
SPARQL 1.1の追加機能 
• 
CONSTRUCT 
• 
ASK 
• 
DESCRIBE 
• 
NAMED GRAPH
基本クエリ SparqlEPCU 
2014/09/07 
30 
SELECT * 
WHERE { 
?s ?p ?o . 
} 
?s 
?p 
?o 
主 語 
述 語 
目 的 語 
SELECT ?s ? p ?o 
WHERE { 
?s ?p ?o . 
} 
SELECT ? p ?o 
WHERE { 
?s ?p ?o . 
} 
左と同じ 
主語は結果表示 に含めない
DISTINCT 重複を取り除く SparqlEPCU 
2014/09/07 
31 
select DISTINCT ?o where { ?s lodcu:駅 ?o } 
?s 
駅 
?o
COUNT データ総数を返す SparqlEPCU 
2014/09/07 
32 
select (count(?o) as ?c) where { ?s lodcu:駅 ?o } 
?s 
駅 
?o 
select (count( distinct ?o) as ?c) 
where { 
?s lodcu:駅 ?o 
} 
上記では同じ駅が何回で も出て来るので 
集約関数 他にSUM,AVG,MAX.MINなども 
select (count(?s) as ?c) 
where { 
?s ?p ?o 
} 
すべてのトリプルを数える
LIMIT OFFSET SparqlEPCU 
2014/09/07 
33 
SELECT * WHERE 
{ 
?s ?p ?o . 
} 
LIMIT 5 offset 10 
?s 
?p 
?o
ORDER BY SparqlEPCU 
2014/09/07 
34 
SELECT * WHERE {?s ?p ?o . } 
ORDER BY ?o 
?s 
?p 
?o 
降順なら ORDER BY DESC( ?o)
FILTER SparqlEPCU 
2014/09/07 
35 
SELECT * WHERE { ?s ?p ?o . FILTER (?o >2 && ?o <5) } 
?s 
?p 
?o 
条件で絞り込む
FILTER + regex SparqlEPCU 
2014/09/07 
36 
select * where { 
?s ?p ?o. 
FILTER ( regex(?o,"名", "i")) 
} 
?s 
?p 
?o 
文字列検索
OPTIONAL SparqlEPCU 
2014/09/07 
37 
SELECT * WHERE { 
?s rdfs:label ?o . 
OPTIONAL{ 
?s lodcu:TEL ?o2 . 
} 
} 
?s 
?p 
?o 
在ればそれも出すという付帯的な条件 
ラベル付きが必須だが、電話が 無くてもリストには出る。 外部結合に相当する
GROUP BY+ count グループごとに集約関数 SparqlEPCU 
2014/09/07 
38 
?s 
?p 
?o 
SELECT ?o (count(?s) as ?cnt) WHERE {?s lodcu:駅 ?o . } GROUP BY ?o
BIND SparqlEPCU 
2014/09/07 
39 
select distinct ?o ?strlen 
where { 
?s lodcu:駅 ?o . 
BIND (STRLEN(?o) as ?strlen) 
} order by desc(?strlen) 
?s 
?p 
?o
他に 
• 
多言語用にラベルを用意 
• 
深いパスへの探索 
• 
複数LODサイトにSPARQLを実行してもらう SparqlEPCU 
2014/09/07 
40
Thank you SparqlEPCU 
2014/09/07 
41

Weitere ähnliche Inhalte

Was ist angesagt?

RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについてRDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについてMasayuki Isobe
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-uedayou
 
SPARQL作成ツール SPARQL Creator
SPARQL作成ツール SPARQL CreatorSPARQL作成ツール SPARQL Creator
SPARQL作成ツール SPARQL CreatorRyouya Fujimoto
 
SparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォームSparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォームChubu University
 
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~uedayou
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップChubu University
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開KnowledgeGraph
 
Rdf入門handout
Rdf入門handoutRdf入門handout
Rdf入門handoutSeiji Koide
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!uedayou
 
SPARQL Timelinerの使い方
SPARQL Timelinerの使い方SPARQL Timelinerの使い方
SPARQL Timelinerの使い方uedayou
 
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発KnowledgeGraph
 
大阪市オープンデータポータルAPI(SPARQL)勉強会
大阪市オープンデータポータルAPI(SPARQL)勉強会大阪市オープンデータポータルAPI(SPARQL)勉強会
大阪市オープンデータポータルAPI(SPARQL)勉強会Kouji Kozaki
 
お手軽Linked Open Data可視化ツールSPARQL Timeliner
お手軽Linked Open Data可視化ツールSPARQL Timelinerお手軽Linked Open Data可視化ツールSPARQL Timeliner
お手軽Linked Open Data可視化ツールSPARQL Timelineruedayou
 
プログラムなしで公開できるLODアプリケーション
プログラムなしで公開できるLODアプリケーションプログラムなしで公開できるLODアプリケーション
プログラムなしで公開できるLODアプリケーションKouji Kozaki
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)KnowledgeGraph
 
LOD技術の概要と LinkData.orgを用いたLOD公開
LOD技術の概要とLinkData.orgを用いたLOD公開LOD技術の概要とLinkData.orgを用いたLOD公開
LOD技術の概要と LinkData.orgを用いたLOD公開Kouji Kozaki
 
CSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンCSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンKouji Kozaki
 

Was ist angesagt? (20)

RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについてRDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについて
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-
 
SPARQL作成ツール SPARQL Creator
SPARQL作成ツール SPARQL CreatorSPARQL作成ツール SPARQL Creator
SPARQL作成ツール SPARQL Creator
 
SparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォームSparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォーム
 
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップ
 
Linked Data (再)入門
Linked Data (再)入門Linked Data (再)入門
Linked Data (再)入門
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
 
Rdf入門handout
Rdf入門handoutRdf入門handout
Rdf入門handout
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!
 
SPARQL Timelinerの使い方
SPARQL Timelinerの使い方SPARQL Timelinerの使い方
SPARQL Timelinerの使い方
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
 
大阪市オープンデータポータルAPI(SPARQL)勉強会
大阪市オープンデータポータルAPI(SPARQL)勉強会大阪市オープンデータポータルAPI(SPARQL)勉強会
大阪市オープンデータポータルAPI(SPARQL)勉強会
 
お手軽Linked Open Data可視化ツールSPARQL Timeliner
お手軽Linked Open Data可視化ツールSPARQL Timelinerお手軽Linked Open Data可視化ツールSPARQL Timeliner
お手軽Linked Open Data可視化ツールSPARQL Timeliner
 
プログラムなしで公開できるLODアプリケーション
プログラムなしで公開できるLODアプリケーションプログラムなしで公開できるLODアプリケーション
プログラムなしで公開できるLODアプリケーション
 
SPARQLとMashup環境
SPARQLとMashup環境SPARQLとMashup環境
SPARQLとMashup環境
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
 
LOD技術の概要と LinkData.orgを用いたLOD公開
LOD技術の概要とLinkData.orgを用いたLOD公開LOD技術の概要とLinkData.orgを用いたLOD公開
LOD技術の概要と LinkData.orgを用いたLOD公開
 
CSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンCSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソン
 

Ähnlich wie SPARQLとMashup環境 (年岡先生)

SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回yamahige
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜Naohiro Yoshida
 
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoMap server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoHideo Harada
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLTaisuke Fukuno
 
Stream processing and Norikra
Stream processing and NorikraStream processing and Norikra
Stream processing and NorikraSATOSHI TAGOMORI
 
Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks Hiroshi Ito
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Kouji Kozaki
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Satoshi Noto
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Fuyuko Matsumura
 
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験Toshio Ehara
 
WordPressと外部APIとの連携
WordPressと外部APIとの連携WordPressと外部APIとの連携
WordPressと外部APIとの連携Hidekazu Ishikawa
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...Holden Karau
 
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!Naruhiko Ogasawara
 
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームはじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームTaisuke Fukuno
 
オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取Taisuke Fukuno
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!Midori Oge
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24Kazuhiro Sera
 

Ähnlich wie SPARQLとMashup環境 (年岡先生) (20)

SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
 
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 HokkaidoMap server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
 
Stream processing and Norikra
Stream processing and NorikraStream processing and Norikra
Stream processing and Norikra
 
Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?
 
Survey of Apache Spark
Survey of Apache SparkSurvey of Apache Spark
Survey of Apache Spark
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
 
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験
 
WordPressと外部APIとの連携
WordPressと外部APIとの連携WordPressと外部APIとの連携
WordPressと外部APIとの連携
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
 
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!
 
Driverについて
DriverについてDriverについて
Driverについて
 
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームはじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
 
Gdg geo2
Gdg geo2Gdg geo2
Gdg geo2
 
オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 

Mehr von Shun Shiramatsu

Linked Open Dataで市民協働と情報技術者をつなげる試み
Linked Open Dataで市民協働と情報技術者をつなげる試みLinked Open Dataで市民協働と情報技術者をつなげる試み
Linked Open Dataで市民協働と情報技術者をつなげる試みShun Shiramatsu
 
シビックテックって何? ~IT技術者と市民・行政の協働による まちの課題解決/まちづくり~
シビックテックって何? ~IT技術者と市民・行政の協働によるまちの課題解決/まちづくり~シビックテックって何? ~IT技術者と市民・行政の協働によるまちの課題解決/まちづくり~
シビックテックって何? ~IT技術者と市民・行政の協働による まちの課題解決/まちづくり~Shun Shiramatsu
 
徘徊高齢者捜索のための BLEビーコンの電波強度分布を用いた 位置推定手法
徘徊高齢者捜索のためのBLEビーコンの電波強度分布を用いた位置推定手法徘徊高齢者捜索のためのBLEビーコンの電波強度分布を用いた位置推定手法
徘徊高齢者捜索のための BLEビーコンの電波強度分布を用いた 位置推定手法Shun Shiramatsu
 
オープンデータで課題発見って?
オープンデータで課題発見って?オープンデータで課題発見って?
オープンデータで課題発見って?Shun Shiramatsu
 
Linked Open Data を用いた シビックテックプロジェクトの 透明性向上と協働促進
Linked Open Data を用いたシビックテックプロジェクトの透明性向上と協働促進Linked Open Data を用いたシビックテックプロジェクトの透明性向上と協働促進
Linked Open Data を用いた シビックテックプロジェクトの 透明性向上と協働促進Shun Shiramatsu
 
LODとシビックテック
LODとシビックテックLODとシビックテック
LODとシビックテックShun Shiramatsu
 
社会課題とその解決目標のLOD化による公共圏での協働促進サービス
社会課題とその解決目標のLOD化による公共圏での協働促進サービス社会課題とその解決目標のLOD化による公共圏での協働促進サービス
社会課題とその解決目標のLOD化による公共圏での協働促進サービスShun Shiramatsu
 
Linked Open Dataを用いた公的目標マッチングサービスの試作
Linked Open Dataを用いた公的目標マッチングサービスの試作Linked Open Dataを用いた公的目標マッチングサービスの試作
Linked Open Dataを用いた公的目標マッチングサービスの試作Shun Shiramatsu
 
Reference point effect に基づく「不安」のモデル
Reference point effect に基づく「不安」のモデルReference point effect に基づく「不安」のモデル
Reference point effect に基づく「不安」のモデルShun Shiramatsu
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進Shun Shiramatsu
 

Mehr von Shun Shiramatsu (11)

Linked Open Dataで市民協働と情報技術者をつなげる試み
Linked Open Dataで市民協働と情報技術者をつなげる試みLinked Open Dataで市民協働と情報技術者をつなげる試み
Linked Open Dataで市民協働と情報技術者をつなげる試み
 
シビックテックって何? ~IT技術者と市民・行政の協働による まちの課題解決/まちづくり~
シビックテックって何? ~IT技術者と市民・行政の協働によるまちの課題解決/まちづくり~シビックテックって何? ~IT技術者と市民・行政の協働によるまちの課題解決/まちづくり~
シビックテックって何? ~IT技術者と市民・行政の協働による まちの課題解決/まちづくり~
 
徘徊高齢者捜索のための BLEビーコンの電波強度分布を用いた 位置推定手法
徘徊高齢者捜索のためのBLEビーコンの電波強度分布を用いた位置推定手法徘徊高齢者捜索のためのBLEビーコンの電波強度分布を用いた位置推定手法
徘徊高齢者捜索のための BLEビーコンの電波強度分布を用いた 位置推定手法
 
オープンデータで課題発見って?
オープンデータで課題発見って?オープンデータで課題発見って?
オープンデータで課題発見って?
 
Linked Open Data を用いた シビックテックプロジェクトの 透明性向上と協働促進
Linked Open Data を用いたシビックテックプロジェクトの透明性向上と協働促進Linked Open Data を用いたシビックテックプロジェクトの透明性向上と協働促進
Linked Open Data を用いた シビックテックプロジェクトの 透明性向上と協働促進
 
LODとシビックテック
LODとシビックテックLODとシビックテック
LODとシビックテック
 
社会課題とその解決目標のLOD化による公共圏での協働促進サービス
社会課題とその解決目標のLOD化による公共圏での協働促進サービス社会課題とその解決目標のLOD化による公共圏での協働促進サービス
社会課題とその解決目標のLOD化による公共圏での協働促進サービス
 
Spending nagoya 131214
Spending nagoya 131214Spending nagoya 131214
Spending nagoya 131214
 
Linked Open Dataを用いた公的目標マッチングサービスの試作
Linked Open Dataを用いた公的目標マッチングサービスの試作Linked Open Dataを用いた公的目標マッチングサービスの試作
Linked Open Dataを用いた公的目標マッチングサービスの試作
 
Reference point effect に基づく「不安」のモデル
Reference point effect に基づく「不安」のモデルReference point effect に基づく「不安」のモデル
Reference point effect に基づく「不安」のモデル
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
 

Kürzlich hochgeladen

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Kürzlich hochgeladen (8)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

SPARQLとMashup環境 (年岡先生)

  • 1. SPARQLとMashup環境 年岡晃一 中部大学 LODチャレンジJapan実行委員 東海地区支部長 toshioka@cs.chubu.ac.jp SparqlEPCU 2014/09/07 1 http://lodcu.cs.chubu.ac.jp/SparqlEPCU/ 2014/09/07
  • 2. contents I. LOD開発の現況 II. LODとは III. プログラミング無しで 1. データ登録と更新 2. 検索 IV. プログラミングして 1. Mashup 2. サンプルコード V. SPARQLを学ぶ VI. さらに学ぶには(今回パス) SparqlEPCU 2014/09/07 2 9/13 LODチャレンジデー2014 in 名古屋 でも話します
  • 4. LOD構築の実際 SparqlEPCU 2014/09/07 4 行政 学術機関 民間 民間・学術機関 データ作成者 RDFデータ公開者 アプリ開発者 SPARQL Endpoint提供者 SPARQL利用 RでもOK データ提供 データ収集 LinkData DBpedia DBpediaJapanese SparqlEPCU LODAC Museum ・・・ RDFstore Sparql Timeliner LOD Browser ・・・ エンドユーザー 多くはSPARQLコマンド画面を 用意している
  • 5. LOD構築の実際 SparqlEPCU 2014/09/07 5 行政 学術機関 民間 民間・学術機関 データ作成者 RDFデータ公開者 アプリ開発者 SPARQL Endpoint提供者 SPARQL csv,xls,xml csv,ttl LinkData csv,ttl DBpedia DBpediaJapanese SparqlEPCU LODAC Museum ・・・ RDFstore Sparql Timeliner LOD Browser ・・・ エンドユーザー GUI LOD catalog CKAN Fuseki virtuoso
  • 6. II.Linked Open Data(LOD)とは SparqlEPCU 2014/09/07 6 RDFとは (Resource Description Framework ) SPARQLとは (SPARQL Protocol and RDF Query Language)
  • 7. rel:participant bibo:organizer RDF(Resource Description Framework) CodeForNagoya Meeting foaf:name 2014-09-27 http://codeForJapan.org/conf19 dc:date http://www.facebook.com/kawaguchi 河口信夫 foaf:name http://codeForeJapan.org/ http://www.facebook.com/miyauchi 宮内元 foaf:name CodeForNagoya foaf:name nco:representative foaf:knows  事物をURIで指定する  事物間の関係を意味的リンクで結ぶグラフでデータを表現する(モデル) 規則 ノードはURIで特定できる(世界で只1つ) プロパティもURIなので関係性の意味定 義も唯一が保証される WEB上の知識(リソース)を URIで特定し、「意味定義が唯一」が保証 された述語で表現していきましょうLOD
  • 8. RDFとは SparqlEPCU 2014/09/07 8 名古屋 愛知 河村 橋本 県 市長 友人 グラフ表現による知識ネットワーク 実世界 メタデータ
  • 9. 検索 SPARQL select ?s, ?o where{ ?s 県 愛知 . ?s 市長 ?o . } SparqlEPCU 2014/09/07 9 ?s 愛知 ?o 県 市長 検索はグラフ探索だが上記 テーブルの自己結合で出来る 愛知県にある市の市長は誰? subject predicate object 名古屋 県 愛知 松阪 県 三重 千種 市 名古屋市 松本町 市 春日井市 担当教員 町 松本町 名古屋 市長 河村 松本町 町長 佐藤 このトリプルが知識の最少単位
  • 10. LODデータ Webアプリケーションサイト(LODアプリ) エンドユーザ CLOUD SparqlEPCU 2014/09/07 10 LODアプリサイト がマッシュアッ プで作れるわ♪ グーグルマップの 環境と同じ
  • 11. III.先ずはプログラミング無しで データ格納と データ検索 SparqlEPCU 2014/09/07 11 誰でも手軽にRDFをアップロードして SPARQLでクエリかけられる http://lodcu.cs.chubu.ac.jp/SparqlEPCU/
  • 12. コース順 SparqlEPCU 2014/09/07 12 データの登録 データの検索 プログラミング無しで、 RDFの登録・検索を体験 データの登録 データの検索 JavaScriptを書いて、 RDFの登録・検索を体験 csv形式 緯度・経度 csv形式 緯度・経度
  • 13. CSV形式でRDF登録データを準備する • addCSV.html SparqlEPCU 2014/09/07 13 @学生, 学籍, 名前, mail ID09038, 藤木 晋太郎, fujiki_s@mail.com ID09000, 青山 哲也, aoyama_t@mail.com ID09001, 伊藤 信士, ito_s@mail.com ID09002, 遠藤 京子, endo_k@mail.com クラス 属性 個々の データ _id 学籍 名前 学生 ID09xx 藤木xx fujiki@xx mail type
  • 14. CSV形式でRDF登録 (subjectIDを付けて) • addCSV2.html SparqlEPCU 2014/09/07 14 @学生, SubjectID, 学籍, 名前, mail http://aaa/, ID09038, 藤木 晋太郎, fujiki_s@mail.com http://bbb/, ID09000, 青山 哲也, aoyama_t@mail.com http://ccc/, ID09001, 伊藤 信士, ito_s@mail.com http://ddd/, ID09002, 遠藤 京子, endo_k@mail.com クラス 属性 個々の データ http://aaa/ 学籍 名前 学生 ID09xx 藤木xx fujiki@xx mail type 先頭属性がsubjectIDであれば、指定 URLのRDF登録になります
  • 17. IV.ここからはプログラミング SparqlEPCU 2014/09/07 17 JavaScript jQuery LODを簡単に扱うためのJSライブラリ サンプルコードをダウンロード マッシュアップ環境 SlideShare http://www.slideshare.net/KohichiToshioka/sparql-epculod-28065847
  • 19. LODデータ Webアプリケーションサイト(LODアプリ) エンドユーザ 認証システム OAuth CLOUD SparqlEPCU 2014/09/07 19 LODアプリサイト がマッシュアッ プで作れるわ♪ SparqlEPCUでは、各LODデータ セット毎にアクセス権設定を行 えるようにしている
  • 20. JavaScript APIをつかう  RDFの登録  RDFの更新  RDFの削除  RDFの検索(SPARQL実行) SparqlEPCU 2014/09/07 20 Zipを解凍してindex.htmlをダブルクリック
  • 21. 開発にあたっての前提知識 • RDFに関する知識 • JavaScript, jQuery, JSON • RDF登録の入力データ形式 – CSV – TURTLE – N3 – RDF/XML – N-TRIPLE • RDFダウンロード – TURTLE – N3 – RDF/XML – N-TRIPLE SparqlEPCU 2014/09/07 21
  • 22. 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 2014/09/07 22
  • 23. 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 2014/09/07 23 http://lodcu.cs.chubu.ac.jp/SparqlEPCU/RDFServer.jsp?reqtype=api&project= nagoyadata&query=select * where{?s ?p ?o}&output=JSON
  • 24. 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 2014/09/07 24
  • 25. APIs • CSV形式で登録されたインスタンスの操作 – rdfmgr.insertInstance() – rdfmgr.updateInstance() – rdfmgr.deleteInstance() • 検索 – rdfmgr.executeSparql () • 3つ組みとしての操作 – rdfmgr.insertStatement() – rdfmgr.updateStatement() – Rdfmgr.deleteStatement() SparqlEPCU 2014/09/07 25
  • 26. LOD Browserで検索してみる SparqlEPCU 2014/09/07 26 緯度、経度情報があればgoogleマップ上に表示します。この画面で編集も出来ます。
  • 27. SparqlEPCUの今後 • NamedGraphの利用 – 現バージョンでも使える • FederatedSearchへの対応 • GoogleRefineや語彙のNegotiation • ScaleOut SparqlEPCU 2014/09/07 27
  • 29. SPARQLの諸機能 • DISTINCT • COUNT • LIMIT OFFSET • OPTIONAL • ORDER BY • GROUP BY • FILTER SparqlEPCU 2014/09/07 29 SPARQL 1.1の追加機能 • CONSTRUCT • ASK • DESCRIBE • NAMED GRAPH
  • 30. 基本クエリ SparqlEPCU 2014/09/07 30 SELECT * WHERE { ?s ?p ?o . } ?s ?p ?o 主 語 述 語 目 的 語 SELECT ?s ? p ?o WHERE { ?s ?p ?o . } SELECT ? p ?o WHERE { ?s ?p ?o . } 左と同じ 主語は結果表示 に含めない
  • 31. DISTINCT 重複を取り除く SparqlEPCU 2014/09/07 31 select DISTINCT ?o where { ?s lodcu:駅 ?o } ?s 駅 ?o
  • 32. COUNT データ総数を返す SparqlEPCU 2014/09/07 32 select (count(?o) as ?c) where { ?s lodcu:駅 ?o } ?s 駅 ?o select (count( distinct ?o) as ?c) where { ?s lodcu:駅 ?o } 上記では同じ駅が何回で も出て来るので 集約関数 他にSUM,AVG,MAX.MINなども select (count(?s) as ?c) where { ?s ?p ?o } すべてのトリプルを数える
  • 33. LIMIT OFFSET SparqlEPCU 2014/09/07 33 SELECT * WHERE { ?s ?p ?o . } LIMIT 5 offset 10 ?s ?p ?o
  • 34. ORDER BY SparqlEPCU 2014/09/07 34 SELECT * WHERE {?s ?p ?o . } ORDER BY ?o ?s ?p ?o 降順なら ORDER BY DESC( ?o)
  • 35. FILTER SparqlEPCU 2014/09/07 35 SELECT * WHERE { ?s ?p ?o . FILTER (?o >2 && ?o <5) } ?s ?p ?o 条件で絞り込む
  • 36. FILTER + regex SparqlEPCU 2014/09/07 36 select * where { ?s ?p ?o. FILTER ( regex(?o,"名", "i")) } ?s ?p ?o 文字列検索
  • 37. OPTIONAL SparqlEPCU 2014/09/07 37 SELECT * WHERE { ?s rdfs:label ?o . OPTIONAL{ ?s lodcu:TEL ?o2 . } } ?s ?p ?o 在ればそれも出すという付帯的な条件 ラベル付きが必須だが、電話が 無くてもリストには出る。 外部結合に相当する
  • 38. GROUP BY+ count グループごとに集約関数 SparqlEPCU 2014/09/07 38 ?s ?p ?o SELECT ?o (count(?s) as ?cnt) WHERE {?s lodcu:駅 ?o . } GROUP BY ?o
  • 39. BIND SparqlEPCU 2014/09/07 39 select distinct ?o ?strlen where { ?s lodcu:駅 ?o . BIND (STRLEN(?o) as ?strlen) } order by desc(?strlen) ?s ?p ?o
  • 40. 他に • 多言語用にラベルを用意 • 深いパスへの探索 • 複数LODサイトにSPARQLを実行してもらう SparqlEPCU 2014/09/07 40
  • 41. Thank you SparqlEPCU 2014/09/07 41