SlideShare a Scribd company logo
1 of 11
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

コマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストールコマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストール雄介 荒川
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワークKazuyuki Mori
 
処理概要図&構築手順書1124
処理概要図&構築手順書1124処理概要図&構築手順書1124
処理概要図&構築手順書1124Kazuki Miura
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西Masahide Yamamoto
 
マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料Ryo Fujita
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料cryks
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
マイクラ自動化枠第1回資料
マイクラ自動化枠第1回資料マイクラ自動化枠第1回資料
マイクラ自動化枠第1回資料Ryo Fujita
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0Satoshi Kume
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみるairtoxin Ishii
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようmax747
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentookubo39
 
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 ExtensionsYoshifumi 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 usersNaruhiko Ogasawara
 
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみましたRyuji Tamagawa
 

What's hot (20)

コマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストールコマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストール
 
Kubernetesできること
KubernetesできることKubernetesできること
Kubernetesできること
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワーク
 
処理概要図&構築手順書1124
処理概要図&構築手順書1124処理概要図&構築手順書1124
処理概要図&構築手順書1124
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料
 
20131109 ruby conf2013
20131109 ruby conf201320131109 ruby conf2013
20131109 ruby conf2013
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
マイクラ自動化枠第1回資料
マイクラ自動化枠第1回資料マイクラ自動化枠第1回資料
マイクラ自動化枠第1回資料
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
 
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
 
Capistrano
CapistranoCapistrano
Capistrano
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
 
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
 
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
 
Docker やってみた
Docker やってみたDocker やってみた
Docker やってみた
 

Similar to ParliamentでGeoSPARQL

Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例maebashi
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編SATOSHI TAGOMORI
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法Hiroki Mizuno
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streamingmganeko
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセスMakoto Kato
 
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionHow to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionVirtualTech Japan Inc.
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析Akinori Abe
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像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 Lispirix_jp
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3mganeko
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 

Similar to ParliamentでGeoSPARQL (20)

Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
cloudstack devcloud
cloudstack devcloudcloudstack devcloud
cloudstack devcloud
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
 
Osoljp201210 oi swift
Osoljp201210 oi swiftOsoljp201210 oi swift
Osoljp201210 oi swift
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionHow to deploy & operate OpenStack Production
How to deploy & operate OpenStack Production
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像
 
明日から使えるコーディングツール
明日から使えるコーディングツール明日から使えるコーディングツール
明日から使えるコーディングツール
 
使ってみよう CloudStack
使ってみよう CloudStack 使ってみよう CloudStack
使ってみよう CloudStack
 
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話
 
ヤギにサーバーを管理してもらう話
ヤギにサーバーを管理してもらう話ヤギにサーバーを管理してもらう話
ヤギにサーバーを管理してもらう話
 
OpenStack + Common Lisp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lisp
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 

ParliamentでGeoSPARQL

  • 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