狠狠撸

狠狠撸Share a Scribd company logo
ParliamentでGeoSPARQL
Mac OS X Lion編

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

1

/11
ダウンロード&インストール
? Parliament Webサイトにアクセス
– http://parliament.semwebcentral.org/

? [Download]をクリックし、自分の環境にあったファイル
をDL(今回はMac OS Xで行います)

CentOS→ centos
Windows→ mcvc
Mac OS X→ darwin
Ubuntu→ ubuntu

? DLしたファイルを解凍
Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

2

/11
サーバーを立てる
? ターミナルで、解凍したディレクトリにアクセスし、以
下のコマンドを実行
– ./StartParliament.sh

? サーバーが立ちます

必ずexitコマンドで終
了
Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

3

/11
Webブラウザからクエリする
? Webブラウザからサーバのアドレスにアクセス
– デフォルト: http://localhost:8080/parliament/
– 8080ポートが使用済みな場合、parliamentconfjetty.xmlで変更
できます

? [Indexes]→[Create All]で、インデックスを構築
– 追加するデータやクエリでSpatial Indexが利用可能に

? [Insert Data]でデータの追加、[Query]でクエリなど、
様々な機能が使用できるようになります
Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

4

/11
論文で紹介されているクエリを実行する
? 「GeoSPARQL: Enabling a Geospatial Semantic Web 」
で紹介されているクエリを実行します
– 論文URL: http://www.semantic-webjournal.net/sites/default/files/swj176_0.pdf

? 論文中のPrefixや述語の一部は、Parliamentの実装と異
なっていることに注意しながら実行
– geo: <http://www.opengis.net/ont/OGC-GeoSPARQL/1.0/>.
→ geo: <http://www.opengis.net/ont/geosparql#>.
– WKTLiteral → wktLiteral

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

5

/11
RDFを追加(1/2)
? [Insert Data]でListing 2: Example Ontologyをストア
– Turtle もしくは N3 フォーマットを選択
Listing 2: Example Ontology
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ex: <http://example.org/PointOfInterest#>.
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
ex:Restaurant a owl:Class; rdfs:subClassOf ex:Service .
ex:Park a owl:Class; rdfs:subClassOf ex:Attraction .
ex:Museum a owl:Class; rdfs:subClassOf ex:Attraction .
ex:Monument a owl:Class; rdfs:subClassOf ex:Attraction .
ex:Service a owl:Class; rdfs:subClassOf ex:PointOfInterest .
ex:Attraction a owl:Class; rdfs:subClassOf ex:PointOfInterest .
ex:PointOfInterest a owl:Class; rdfs:subClassOf geo:Feature .

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

6

/11
RDFを追加(2/2)
? 同様にListing 3: Washington Monumentをストア
Listing 3: Washington Monument
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ex: <http://example.org/PointOfInterest#>.
@prefix geo: <http://www.opengis.net/ont/geosparql#>.
@prefix sf: <http://www.opengis.net/ont/sf#>.
ex:WashingtonMonument a ex:Monument;
rdfs:label "Washington Monument";
geo:hasGeometry ex:WMPoint .
ex:WMPoint a geo:Point;
geo:asWKT "POINT(-77.03524 38.889468)"^^sf:wktLiteral .

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

7

/11
クエリの実行
? [Query]でListing 7: Example Query 3を実行
Listing 3: Washington Monument
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
PREFIX sf: <http://www.opengis.net/ont/sf#>
PREFIX ex: <http://example.org/PointOfInterest#>
SELECT ?a
WHERE {
?a geo:hasGeometry ?ageo .
?ageo geo:asWKT ?alit .
FILTER( geof:sfWithin(?alit, "Polygon((-77.089005 38.913574,-77.029953 38.913574,-77.029953
38.886321,-77.089005 38.886321,-77.089005 38.913574))"^^sf:wktLiteral))
}

– 結果のHTML出力

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

8

/11
クライアントからクエリする
? クライアントプログラムからクエリを実行することもで
きます
– ここでは、Jena(http://jena.apache.org/)をつかった例を紹介

? 上記URLから、JenaのライブラリをDLし、Javaのプロ
グラムでインポートします
– クエリは以下の図のような記述で実行

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

9

/11
プログラムの例
? 簡単なプログラムの例
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.query.ResultSetFormatter;
public class sample1 {
public static void main(String[] args){
String sparqlSelectQuery = "PREFIX ex: <http://example.org/PointOfInterest#>" +
"SELECT ?m " +
"WHERE {" +
"?m a ex:Attraction" +
"}" ;
QueryExecution qexec = QueryExecutionFactory.sparqlService(
"http://localhost:8080/parliament/sparql",
sparqlSelectQuery);
ResultSet results = qexec.execSelect();
System.out.println(ResultSetFormatter.asText(results));
qexec.close();
}
}

WashingtonMonumentが出力される

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

10

/11
参考文献
? Parliament User Guide, November 8, 2012
– http://parliament.semwebcentral.org/ParliamentUserGuide.pdf

? Setting up Parliament Triple Store with GeoSPARQL
– http://lodum.de/setting-up-parliament-triple-store-with-geosparql/

? OGC GeoSPARQL - A Geographic Query Language for
RDF Data
– http://www.opengeospatial.org/standards/geosparql

Teppei Inaba, Nagoya University

Teppei Inaba

2013/10/18

11

/11

More Related Content

What's hot (20)

コマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストール
コマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストールコマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストール
コマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストール
雄介 荒川
?
碍耻产别谤苍别迟别蝉できること
碍耻产别谤苍别迟别蝉できること碍耻产别谤苍别迟别蝉できること
碍耻产别谤苍别迟别蝉できること
iPride Co., Ltd.
?
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワーク
Kazuyuki Mori
?
処理概要図&构筑手顺书1124
処理概要図&构筑手顺书1124処理概要図&构筑手顺书1124
処理概要図&构筑手顺书1124
Kazuki Miura
?
第一回コンテナ情报交换会蔼関西
第一回コンテナ情报交换会蔼関西第一回コンテナ情报交换会蔼関西
第一回コンテナ情报交换会蔼関西
Masahide Yamamoto
?
マイクラ自动化枠第2回资料
マイクラ自动化枠第2回资料マイクラ自动化枠第2回资料
マイクラ自动化枠第2回资料
Ryo Fujita
?
第8回碍笔贵発表资料
第8回碍笔贵発表资料第8回碍笔贵発表资料
第8回碍笔贵発表资料
cryks
?
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
?
マイクラ自动化枠第1回资料
マイクラ自动化枠第1回资料マイクラ自动化枠第1回资料
マイクラ自动化枠第1回资料
Ryo Fujita
?
2日間Fabricを触った俺か?? 色々解説してみる
2日間Fabricを触った俺か?? 色々解説してみる2日間Fabricを触った俺か?? 色々解説してみる
2日間Fabricを触った俺か?? 色々解説してみる
airtoxin Ishii
?
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
max747
?
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
kubo39
?
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
?
Capistrano
CapistranoCapistrano
Capistrano
Yasuharu Fukuda
?
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
?
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE usersopenSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
Naruhiko Ogasawara
?
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
Ryuji Tamagawa
?
コマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストール
コマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストールコマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストール
コマント?一発て?尝颈产谤别翱蹿蹿颈肠别をインストール
雄介 荒川
?
碍耻产别谤苍别迟别蝉できること
碍耻产别谤苍别迟别蝉できること碍耻产别谤苍别迟别蝉できること
碍耻产别谤苍别迟别蝉できること
iPride Co., Ltd.
?
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワーク
Kazuyuki Mori
?
処理概要図&构筑手顺书1124
処理概要図&构筑手顺书1124処理概要図&构筑手顺书1124
処理概要図&构筑手顺书1124
Kazuki Miura
?
第一回コンテナ情报交换会蔼関西
第一回コンテナ情报交换会蔼関西第一回コンテナ情报交换会蔼関西
第一回コンテナ情报交换会蔼関西
Masahide Yamamoto
?
マイクラ自动化枠第2回资料
マイクラ自动化枠第2回资料マイクラ自动化枠第2回资料
マイクラ自动化枠第2回资料
Ryo Fujita
?
第8回碍笔贵発表资料
第8回碍笔贵発表资料第8回碍笔贵発表资料
第8回碍笔贵発表资料
cryks
?
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
?
マイクラ自动化枠第1回资料
マイクラ自动化枠第1回资料マイクラ自动化枠第1回资料
マイクラ自动化枠第1回资料
Ryo Fujita
?
2日間Fabricを触った俺か?? 色々解説してみる
2日間Fabricを触った俺か?? 色々解説してみる2日間Fabricを触った俺か?? 色々解説してみる
2日間Fabricを触った俺か?? 色々解説してみる
airtoxin Ishii
?
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
max747
?
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
kubo39
?
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
?
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
?
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE usersopenSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
Naruhiko Ogasawara
?
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
Ryuji Tamagawa
?

Similar to 笔补谤濒颈补尘别苍迟て?骋别辞厂笔础搁蚕尝 (20)

顿辞肠办别谤の仕组みと滨滨闯社内での利用例
顿辞肠办别谤の仕组みと滨滨闯社内での利用例顿辞肠办别谤の仕组みと滨滨闯社内での利用例
顿辞肠办别谤の仕组みと滨滨闯社内での利用例
maebashi
?
cloudstack devcloud
cloudstack devcloudcloudstack devcloud
cloudstack devcloud
Kimihiko Kitase
?
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
SATOSHI TAGOMORI
?
顿辞肠办别谤イメージの理解とコンテナのライフサイクル
顿辞肠办别谤イメージの理解とコンテナのライフサイクル顿辞肠办别谤イメージの理解とコンテナのライフサイクル
顿辞肠办别谤イメージの理解とコンテナのライフサイクル
Masahito Zembutsu
?
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
matsuo kenji
?
【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座
Masahito Zembutsu
?
翱颁补尘濒で奥别产アプリケーションを作る苍个の方法
翱颁补尘濒で奥别产アプリケーションを作る苍个の方法翱颁补尘濒で奥别产アプリケーションを作る苍个の方法
翱颁补尘濒で奥别产アプリケーションを作る苍个の方法
Hiroki Mizuno
?
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
?
贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス
Makoto Kato
?
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionHow to deploy & operate OpenStack Production
How to deploy & operate OpenStack Production
VirtualTech Japan Inc.
?
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
Akinori Abe
?
辞肠补尘濒辞辫迟の全体像
辞肠补尘濒辞辫迟の全体像辞肠补尘濒辞辫迟の全体像
辞肠补尘濒辞辫迟の全体像
Kiwamu Okabe
?
明日から使えるコーディングツール
明日から使えるコーディングツール明日から使えるコーディングツール
明日から使えるコーディングツール
Tomokazu Kiyohara
?
?使ってみよう CloudStack
?使ってみよう CloudStack ?使ってみよう CloudStack
?使ってみよう CloudStack
samemoon
?
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
gree_tech
?
ヤギにサーバーを管理してもらう话
ヤギにサーバーを管理してもらう话ヤギにサーバーを管理してもらう话
ヤギにサーバーを管理してもらう话
Masaki Kobayashi
?
OpenStack + Common Lisp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lisp
irix_jp
?
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
mganeko
?
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
?
顿辞肠办别谤の仕组みと滨滨闯社内での利用例
顿辞肠办别谤の仕组みと滨滨闯社内での利用例顿辞肠办别谤の仕组みと滨滨闯社内での利用例
顿辞肠办别谤の仕组みと滨滨闯社内での利用例
maebashi
?
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
SATOSHI TAGOMORI
?
顿辞肠办别谤イメージの理解とコンテナのライフサイクル
顿辞肠办别谤イメージの理解とコンテナのライフサイクル顿辞肠办别谤イメージの理解とコンテナのライフサイクル
顿辞肠办别谤イメージの理解とコンテナのライフサイクル
Masahito Zembutsu
?
【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド?ネイティブ時代の2016年だから始める Docker 基礎講座
Masahito Zembutsu
?
翱颁补尘濒で奥别产アプリケーションを作る苍个の方法
翱颁补尘濒で奥别产アプリケーションを作る苍个の方法翱颁补尘濒で奥别产アプリケーションを作る苍个の方法
翱颁补尘濒で奥别产アプリケーションを作る苍个の方法
Hiroki Mizuno
?
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
?
贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス贵颈谤别蹿辞虫の开発プロセス
贵颈谤别蹿辞虫の开発プロセス
Makoto Kato
?
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionHow to deploy & operate OpenStack Production
How to deploy & operate OpenStack Production
VirtualTech Japan Inc.
?
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
Akinori Abe
?
辞肠补尘濒辞辫迟の全体像
辞肠补尘濒辞辫迟の全体像辞肠补尘濒辞辫迟の全体像
辞肠补尘濒辞辫迟の全体像
Kiwamu Okabe
?
明日から使えるコーディングツール
明日から使えるコーディングツール明日から使えるコーディングツール
明日から使えるコーディングツール
Tomokazu Kiyohara
?
?使ってみよう CloudStack
?使ってみよう CloudStack ?使ってみよう CloudStack
?使ってみよう CloudStack
samemoon
?
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
gree_tech
?
ヤギにサーバーを管理してもらう话
ヤギにサーバーを管理してもらう话ヤギにサーバーを管理してもらう话
ヤギにサーバーを管理してもらう话
Masaki Kobayashi
?
OpenStack + Common Lisp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lisp
irix_jp
?
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
mganeko
?
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
?

笔补谤濒颈补尘别苍迟て?骋别辞厂笔础搁蚕尝

  • 1. ParliamentでGeoSPARQL Mac OS X Lion編 Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 1 /11
  • 2. ダウンロード&インストール ? Parliament Webサイトにアクセス – http://parliament.semwebcentral.org/ ? [Download]をクリックし、自分の環境にあったファイル をDL(今回はMac OS Xで行います) CentOS→ centos Windows→ mcvc Mac OS X→ darwin Ubuntu→ ubuntu ? DLしたファイルを解凍 Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 2 /11
  • 3. サーバーを立てる ? ターミナルで、解凍したディレクトリにアクセスし、以 下のコマンドを実行 – ./StartParliament.sh ? サーバーが立ちます 必ずexitコマンドで終 了 Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 3 /11
  • 4. Webブラウザからクエリする ? Webブラウザからサーバのアドレスにアクセス – デフォルト: http://localhost:8080/parliament/ – 8080ポートが使用済みな場合、parliamentconfjetty.xmlで変更 できます ? [Indexes]→[Create All]で、インデックスを構築 – 追加するデータやクエリでSpatial Indexが利用可能に ? [Insert Data]でデータの追加、[Query]でクエリなど、 様々な機能が使用できるようになります Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 4 /11
  • 5. 論文で紹介されているクエリを実行する ? 「GeoSPARQL: Enabling a Geospatial Semantic Web 」 で紹介されているクエリを実行します – 論文URL: http://www.semantic-webjournal.net/sites/default/files/swj176_0.pdf ? 論文中のPrefixや述語の一部は、Parliamentの実装と異 なっていることに注意しながら実行 – geo: <http://www.opengis.net/ont/OGC-GeoSPARQL/1.0/>. → geo: <http://www.opengis.net/ont/geosparql#>. – WKTLiteral → wktLiteral Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 5 /11
  • 6. RDFを追加(1/2) ? [Insert Data]でListing 2: Example Ontologyをストア – Turtle もしくは N3 フォーマットを選択 Listing 2: Example Ontology @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix ex: <http://example.org/PointOfInterest#>. @prefix geo: <http://www.opengis.net/ont/geosparql#> . ex:Restaurant a owl:Class; rdfs:subClassOf ex:Service . ex:Park a owl:Class; rdfs:subClassOf ex:Attraction . ex:Museum a owl:Class; rdfs:subClassOf ex:Attraction . ex:Monument a owl:Class; rdfs:subClassOf ex:Attraction . ex:Service a owl:Class; rdfs:subClassOf ex:PointOfInterest . ex:Attraction a owl:Class; rdfs:subClassOf ex:PointOfInterest . ex:PointOfInterest a owl:Class; rdfs:subClassOf geo:Feature . Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 6 /11
  • 7. RDFを追加(2/2) ? 同様にListing 3: Washington Monumentをストア Listing 3: Washington Monument @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix ex: <http://example.org/PointOfInterest#>. @prefix geo: <http://www.opengis.net/ont/geosparql#>. @prefix sf: <http://www.opengis.net/ont/sf#>. ex:WashingtonMonument a ex:Monument; rdfs:label "Washington Monument"; geo:hasGeometry ex:WMPoint . ex:WMPoint a geo:Point; geo:asWKT "POINT(-77.03524 38.889468)"^^sf:wktLiteral . Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 7 /11
  • 8. クエリの実行 ? [Query]でListing 7: Example Query 3を実行 Listing 3: Washington Monument PREFIX geo: <http://www.opengis.net/ont/geosparql#> PREFIX geof: <http://www.opengis.net/def/function/geosparql/> PREFIX sf: <http://www.opengis.net/ont/sf#> PREFIX ex: <http://example.org/PointOfInterest#> SELECT ?a WHERE { ?a geo:hasGeometry ?ageo . ?ageo geo:asWKT ?alit . FILTER( geof:sfWithin(?alit, "Polygon((-77.089005 38.913574,-77.029953 38.913574,-77.029953 38.886321,-77.089005 38.886321,-77.089005 38.913574))"^^sf:wktLiteral)) } – 結果のHTML出力 Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 8 /11
  • 9. クライアントからクエリする ? クライアントプログラムからクエリを実行することもで きます – ここでは、Jena(http://jena.apache.org/)をつかった例を紹介 ? 上記URLから、JenaのライブラリをDLし、Javaのプロ グラムでインポートします – クエリは以下の図のような記述で実行 Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 9 /11
  • 10. プログラムの例 ? 簡単なプログラムの例 import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.query.ResultSetFormatter; public class sample1 { public static void main(String[] args){ String sparqlSelectQuery = "PREFIX ex: <http://example.org/PointOfInterest#>" + "SELECT ?m " + "WHERE {" + "?m a ex:Attraction" + "}" ; QueryExecution qexec = QueryExecutionFactory.sparqlService( "http://localhost:8080/parliament/sparql", sparqlSelectQuery); ResultSet results = qexec.execSelect(); System.out.println(ResultSetFormatter.asText(results)); qexec.close(); } } WashingtonMonumentが出力される Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 10 /11
  • 11. 参考文献 ? Parliament User Guide, November 8, 2012 – http://parliament.semwebcentral.org/ParliamentUserGuide.pdf ? Setting up Parliament Triple Store with GeoSPARQL – http://lodum.de/setting-up-parliament-triple-store-with-geosparql/ ? OGC GeoSPARQL - A Geographic Query Language for RDF Data – http://www.opengeospatial.org/standards/geosparql Teppei Inaba, Nagoya University Teppei Inaba 2013/10/18 11 /11