Weitere ähnliche Inhalte
Ähnlich wie SPARQLによるLODの検索@第4回LODとオントロジー勉強会- (20)
Mehr von Kouji Kozaki (20)
Kürzlich hochgeladen (11)
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
- 6. 本日の勉強会のねらい
メイントピック
SPARQLによるLODの検索
本日の目標
SPARQLの基本的な使い方を学ぶ
基本的な文法
簡単なクエリの書き方
いろいろなクエリのパターンを学ぶ
基本的なクエリを組み合わせて,少し複雑な
SPARQLクエリを書けるようになる
初めて見るデータセット(SPARQL Endpoint)に対
しても,いろいろ試せるようになる
2015/10/27 LODとオントロジー勉強会 6
- 8. Linked Open Data(LOD)
Linked Data:Web上のデータを,つなぐ(linkする)ことで,新しい価値
を生み出そうとする取り組み.Webの創始者Tim Berners-Lee氏が提唱
※ Linked Open Data(LOD):オープンな形で公開されたLinked Data
2015/10/27 LODとオントロジー勉強会
http://linkeddata.org/
• 誰もが同じ方法で,「データをつなぐことができる仕組み」を提供している.
• 技術的には,
-データ公開の共通フォーマット(URIによる名前付け,RDFによるグラフ表現
-コンピュータが,データにアクセスする共通の仕組み
が提供されている.
→Web上に公開された膨大なデータを統合した1つのデータベースとして利用できる.
8
- 9. 5 ★ オープンデータ
★ (どんな形式でも良いので) あなたのデータをオープンライセンスでWeb上に公
開しましょう
★★ データを構造化データとして公開しましょう
★★★ 非独占の形式を使いましょう
★★★★ 物事を示すのにURIを使いましょう,そうすることで他の人々があなたのデータ
にリンクすることができます
★★★★★ あなたのデータのコンテキストを提供するために他のデータへリンクしましょう
http://5stardata.info/ja/
より引用
(図および原文は
http://5stardata.info/ )
ライセンスについて
フォーマットについて
Webの発明者でありLinked Dataの創始者でもあ
るティム・バーナーズ=リーがオープンデータのた
めに提案したスキーム
※注:図中のPDF,エクセル,CSVのアイコンは,
あくまでも例示であって,そのフォーマットを推奨
している訳ではない.
2015/10/27 LODとオントロジー勉強会
LOD
9
- 14. SPARQLによるRDFの検索
SPARQL
RDFデータに対するクエリ言語
「指定したグラフ構造」に一致するトリプルを検索する
最も基本的な検索
select ?s ?p ?o
where {
?s ?p ?o .
}
LIMIT 100 ←取得する数の制限
←検索するグラフのパターン
←返す要素
この例では「任意のトリプルの組み合わせ」
このパターンを変
えることで,欲しい
データを取得する
142015/10/27
「.」(ピリオド)を忘れない
LODとオントロジー勉強会
* とすると全ての変数を返す
- 15. SPARQL検索のハンズオン
SPARQLの検索の基本例
DBpedia Japaneseの検索を例に,基本的な
SPARQLクエリについて学ぶ
さまざまなクエリのパターン
大阪市の情報LODを用いた簡単な検索
CSVなどの表形式のオープンデータから変換された
RDFの検索
DBpedia Japaneseのより複雑な検索
興味があるデータ(リソース)を中心とした検索
同一種類のデータ(リソース)を中心とした検索
2015/10/27 LODとオントロジー勉強会 15
- 25. SPARQLの省略表現①
PREFIXの利用
select distinct ?p ?o where {
?s <http://www.w3.org/2000/01/rdf-schema#label> "大阪"@ja .
?s ?p ?o.
}LIMIT 100
252015/10/27
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?p ?o where {
?s rdfs:label "大阪"@ja .
?s ?p ?o.
}LIMIT 100
LODとオントロジー勉強会
- 26. SPARQLの省略表現②
主語が同じ時の省略表現
262015/10/27
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?p ?o where {
?s rdfs:label "大阪"@ja .
?s ?p ?o.
}LIMIT 100
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?p ?o where {
?s rdfs:label "大阪"@ja ;
?p ?o.
}LIMIT 100
LODとオントロジー勉強会
- 27. SPARQL検索のハンズオン
SPARQLの検索の基本例
DBpedia Japaneseの検索を例に,基本的な
SPARQLクエリについて学ぶ
さまざまなクエリのパターン
大阪市の情報LODを用いた簡単な検索
CSVなどの表形式のオープンデータから変換された
RDFの検索
DBpedia Japaneseのより複雑な検索
興味があるデータ(リソース)を中心とした検索
同一種類のデータ(リソース)を中心とした検索
2015/10/27 LODとオントロジー勉強会 27
- 31. SPARQL検索のハンズオン
SPARQLの検索の基本例
DBpedia Japaneseの検索を例に,基本的な
SPARQLクエリについて学ぶ
さまざまなクエリのパターン
大阪市の情報LODを用いた簡単な検索
CSVなどの表形式のオープンデータから変換された
RDFの検索
DBpedia Japaneseのより複雑な検索
興味があるデータ(リソース)を中心とした検索
同一種類のデータ(リソース)を中心とした検索
2015/10/27 LODとオントロジー勉強会 31
- 40. DBpedia Japaneseの検索例
大阪府の隣接都道府県の数
countを使うと,取得したデータの数を取得できる.
2015/10/27 40
PREFIX prop-ja: <http://ja.dbpedia.org/property/>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
select distinct count(?o) where {
dbpedia-ja:大阪府 prop-ja:隣接都道府県 ?o.
}
大阪府の
隣接都道府県
PREFIX prop-ja: <http://ja.dbpedia.org/property/>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
select distinct count(?o) AS ?count where {
dbpedia-ja:大阪府 prop-ja:隣接都道府県 ?o.
}
カウントした結果(数)を?countに代入
LODとオントロジー勉強会
- 43. SPARQL検索のハンズオン
SPARQLの検索の基本例
DBpedia Japaneseの検索を例に,基本的な
SPARQLクエリについて学ぶ
さまざまなクエリのパターン
大阪市の情報LODを用いた簡単な検索
CSVなどの表形式のオープンデータから変換された
RDFの検索
DBpedia Japaneseのより複雑な検索
興味があるデータ(リソース)を中心とした検索
同一種類のデータ(リソース)を中心とした検索
2015/10/27 LODとオントロジー勉強会 43
- 46. DBpedia Japaneseの検索例
都道府県の一覧を取得
rdf:typeプロパティの目的語となるクラスを指定することで,
特定の種類のリソースが取得できる.
ただ,DBpedia Japaneseでは,クラスの種類が少ないため,
dcterms:subjectプロパティで,Wikipediaでの記事のカテゴリ
を指定することで,うまく調整する.
2015/10/27 46
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
PREFIX category-ja: <http://ja.dbpedia.org/resource/Category:>
select distinct ?s where {
?s rdf:type dbpedia-owl:Place.
?s dcterms:subject category-ja:日本の都道府県.
}
クラスの指定
カテゴリの指定
LODとオントロジー勉強会
- 48. DBpedia Japaneseの検索例
都道府県の一覧を郵便番号でソート
ORDER BYを使うと,取得した一覧をソートできる.
“ソートのキー”とする変数を指定する.
2015/10/27 48
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
PREFIX category-ja: <http://ja.dbpedia.org/resource/Category:>
select distinct ?s ?o where {
?s rdf:type dbpedia-owl:Place;
dcterms:subject category-ja:日本の都道府県;
dbpedia-owl:postalCode ?o.
} ORDER BY ?o
各都道府県(?s)
の郵便番号
郵便番号(?o)を
ソートのキーに指定
DESC(?o)
に変えると「降順」でソート
都道府県
LODとオントロジー勉強会
- 50. DBpedia Japaneseの検索例
都道府県を「隣接自治体の数」でソート
ORDER BYの“ソートのキー”としてcount結果を利用する.
2015/10/27 50
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
PREFIX category-ja: <http://ja.dbpedia.org/resource/Category:>
select distinct ?s count(?o) AS ?c where {
?s rdf:type dbpedia-owl:Place;
dcterms:subject category-ja:日本の都道府県;
prop-ja:隣接都道府県 ?o.
} ORDER BY ?c
隣接都道府数(?c)を
ソートのキーに指定
各都道府県(?s)
の隣接都道府県
隣接都道府(?o)をカウントして?cに代入
都道府県
LODとオントロジー勉強会
- 52. DBpedia Japaneseの検索例
各都道府県で生まれた政治家
都道府県一覧を取得するクエリに,もう少し複雑なクエリを組み合
わせてみる.
2015/10/27 52
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
PREFIX category-ja: <http://ja.dbpedia.org/resource/Category:>
select distinct ?pref ?s where {
?pref rdf:type dbpedia-owl:Place.
?pref dcterms:subject category-ja:日本の都道府県.
?s rdf:type dbpedia-owl:Politician;
dbpedia-owl:birthPlace ?pref.
}ORDER BY ?pref
政治家(?s)=タイプが政治家で,
生まれた場所が,各都道府県(?pref)
各都道府県の一覧
(?pref)を得るクエリ
都道府県
都道府数(?pref)を
ソートのキーに指定
LODとオントロジー勉強会
- 54. DBpedia Japaneseの検索例
各都道府県で生まれた政治家の数
GROUP BYを用いると,取得したトリプルをグループ化できる.
2015/10/27 54
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
PREFIX category-ja: <http://ja.dbpedia.org/resource/Category:>
select distinct ?pref (count(?s) AS ?c) where {
?pref rdf:type dbpedia-owl:Place.
?pref dcterms:subject category-ja:日本の都道府県.
?s rdf:type dbpedia-owl:Politician;
dbpedia-owl:birthPlace ?pref.
} GROUP BY ?pref
ORDER BY ?c
政治家(?s)の数をカウント
都道府県
都道府数(?pref)
毎にグループ化
都道府県(?pref)毎の
政治家(?s)の数(?c)
をソートのキーに指定
ここを変えると,
いろんな職業の出身県
別ランキングが出来る
例)Comedian
LODとオントロジー勉強会
- 56. DBpedia Japaneseの検索例
出生地が大阪府または東京都の政治家
UNIONを使うとOR条件での検索が可能.
2015/10/27 56
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/>
PREFIX category-ja: <http://ja.dbpedia.org/resource/Category:>
select distinct ?s ?pref where {
{?s rdf:type dbpedia-owl:Politician;
dbpedia-owl:birthPlace dbpedia-ja:大阪府.}
UNION
{?s rdf:type dbpedia-owl:Politician;
dbpedia-owl:birthPlace dbpedia-ja:東京都.}
?s dbpedia-owl:birthPlace ?pref.
}ORDER BY ?pref
取得した政治家(?s)の出生地(?pref)
※この例では「大阪府」か「東京都」
出生地が大阪府の
政治家を得るクエリ
出生地が東京都の
政治家を得るクエリ
LODとオントロジー勉強会
- 58. SPARQLに関する参考資料
SPARQL 1.1の仕様書(W3C)
http://www.w3.org/TR/sparql11-overview/
LODハッカソン関西
http://wp.lodosaka.jp/
リンクト・オープン・データ・イニシアティブ(LODI)による
「Linked Open Data連続講義」
http://linkedopendata.jp/?cat=17
第5回 「LODの作り方・使い方」
http://linkedopendata.jp/?p=554
SPARQLでマッシュアップ-LOD活用のための技術紹介
(by Hiroshi Ueda)
http://www.slideshare.net/uedayou/sparqllod
2015/10/27 58LODとオントロジー勉強会
- 59. LODの公開・利用に便利なツール
の紹介
CSV2RDF http://lodosaka.jp/tool/CSV2LOD/
CSVファイルをRDFに変化するツール
テンプレートを用いることで柔軟な変換が可能
解説スライド
http://www.slideshare.net/KoujiKozaki/csvlod
DyDra.com http://dydra.com/
RDFデータベース(トリプルストア)のクラウドサービス
Free版有り(100万トリプル?まで)
アカウントを発行してもらうと
http://dydra.com/koujikozaki/osakacitydata
のようなURLで,SPARQLエンドポイントを立てることが出来る
2015/10/27 LODとオントロジー勉強会 59