• 検索結果がありません。

ORACLEセミナー key

N/A
N/A
Protected

Academic year: 2021

シェア "ORACLEセミナー key"

Copied!
21
0
0

読み込み中.... (全文を見る)

全文

(1)

SPARQL advanced

山本

泰智 (@yayamamo)


ライフサイエンス統合データベースセンター

(2)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

お題

プロパティパス

代入

(BIND/VALUES)

Federated Queries (SERVICE)

CONSTRUCT、ASK、DESCRIBE

(更新系)

(3)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

始めに

データサンプルは

Turtle 形式で記述します

スペースの都合上、多くの

prefixを記述していなかったり、

元テキストからの変更を行ったりしています

オープンデータ時代の標準

WEB API SPAQL


(4)
(5)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

プロパティパス(

p118)

SPARQLならではの強力な検索機能

述語のパターンを柔軟に表現可能

(6)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

プロパティパス例

:taro foaf:knows / foaf:interest ?t .

?t ^foaf:interest :taro .

:taro foaf:interest ?t .

:taro foaf:interest | foaf:publications ?t .

:taro foaf:knows+ ?p .

(7)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

プロパティパス例

2

?l

?t

p3

p2

p1

?t ^p3 / ^p2 / p1 ?l .

以上のような構造のグラフパターンのうち、

?tと?lの関係だけに焦点をあてて検索する

(8)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

代入

: BINDとVALUES(p116)

クエリ中の変数に演算結果や定数値などを代入できる

BINDは一変数に対する一つの値の代入が可能

(9)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

BIND

?p * (1 - ?discount) を ?price に代入


SELECT ?title ?price {


?x ns:price ?p .


?x ns:discount ?discount


BIND (?p * (1 - ?discount) AS ?price)

FILTER(?price < 20)


?x dc:title ?title . 


}

(10)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

VALUES

?book に :book1 と :book3 を順に代入する


SELECT ?book ?title ?price {


VALUES ?book { :book1 :book3 }


?book dc:title ?title ;


ns:price ?price . }

WHEREの外側でも書けるが、対応している実装は少ない

SELECT ?book ?title ?price {


?book dc:title ?title ;


ns:price ?price . }


VALUES (?book ?title)


{ (UNDEF "SPARQL Tutorial")


(11)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

Federated Queries: SERVICE(p114)

一つの

SPARQLクエリで複数のSPARQLエンドポイントにク

エリを発行して結果をまとめて取得

従来はプログラムを組んで行う必要があった

分散データベース環境に適した仕組みといえる

(12)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

サブクエリと

SERVICE

クエリの中にクエリ

(サブクエリ)を書ける

SERVICEキーワードで問合せ先エンドポイントを指定

SELECT ?p ?o


WHERE {


SERVICE <http://ja.DBpedia.org/sparql>


{ SELECT ?p ?o

WHERE { dbpedia:東京 ?p ?o .}

}


}

(13)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

CONSTRUCT(p92)

検索結果とテンプレートに基づく新たな

RDFデータを生成

する

既存

RDFデータに対して、SPARQLが提供する様々な演算を

適用した結果を

RDFとして取得できる

SERVICEと併用することで複数データセットから必要な

データを収集して新たな

RDFデータセットを構築できる

(14)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

CONSTRUCTで新たなトリプルを生成

SELECTの代わりにCONSTRUCTを用いて結果をトリプルに

CONSTRUCT {

:taro :knows ?who .


?who foaf:birthday ?birth_date .

}

WHERE {


:taro :likes ?who .


SERVICE <http://DBpedia.org/sparql>


{ SELECT ?who ?birth_date


WHERE {


?who dbpedia-owl:birthDate ?birth_date .


}}}

パターンとテンプレートが同じ場合は短縮表記が可能

(15)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

ASK(p93)

パターンにマッチするトリプルの有無をみる

結果は真偽値

(16)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

DESCRIBE(p93)

特定のリソースに関する情報を

RDFで取得する

対象リソースが主語か目的語のトリプル一覧が得られるこ

とが多い

リソース

IRIを参照解決可能(dereferenceable)にするた

め利用される

(17)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

DESCRIBE例

DESCRIBE <http://ja.dbpedia.org/resource/東京都>

DESCRIBE ?who WHERE { :taro faof:knows ?who .}

(18)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

参照解決(

dereferenceable)例

$ curl -stderr /dev/null -LH 'Accept: application/rdf+xml' 'http://ja.dbpedia.org/resource/%E6%9D%B1%E4%BA%AC%E9%83%BD' <?xml version="1.0" encoding="utf-8" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:prop-ja="http://ja.dbpedia.org/property/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:dbpedia-owl="http://dbpedia.org/ontology/" > <rdf:Description rdf:about="http://ja.dbpedia.org/resource/Colorvariation"> <dbpedia-owl:wikiPageWikiLink rdf:resource="http://ja.dbpedia.org/resource/東京都" /> </rdf:Description> <rdf:Description rdf:about="http://ja.dbpedia.org/resource/KM-MARKIT"> <dbpedia-owl:wikiPageWikiLink rdf:resource="http://ja.dbpedia.org/resource/東京都" /> </rdf:Description> <rdf:Description rdf:about="http://ja.dbpedia.org/resource/Ryoko"> <dbpedia-owl:wikiPageWikiLink rdf:resource="http://ja.dbpedia.org/resource/東京都" /> </rdf:Description> <rdf:Description rdf:about="http://ja.dbpedia.org/resource/おかわりシスターズ"> <dbpedia-owl:wikiPageWikiLink rdf:resource="http://ja.dbpedia.org/resource/東京都" /> </rdf:Description> <rdf:Description rdf:about="http://ja.dbpedia.org/resource/たまらん坂"> <dbpedia-owl:wikiPageWikiLink rdf:resource="http://ja.dbpedia.org/resource/東京都" /> </rdf:Description> <rdf:Description rdf:about="http://ja.dbpedia.org/resource/ふぁみ魂家郎"> <dbpedia-owl:wikiPageWikiLink rdf:resource="http://ja.dbpedia.org/resource/東京都" /> </rdf:Description> ...

(19)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

更新系クエリ(

p94∼)

SPARQL1.1ではデータベースの値を更新する様々な仕様が追

加された

LOAD / CLEAR / DROP / ADD / COPY / MOVE / CREATE

/ INSERT DATA / DELETE DATA / INSERT / DELETE

(20)

実践

SPARQL 5/17 @ 日本オラクル株式会社

山本

泰智

IRIを一部置換してデータ更新(p194)

クラス

http://dbpedia.org/ontology/City のインスタンス

IRIについて、http://ja.dbpedia.org/resource/ に当たる部

分を、

http://sparqlbook.jp/city/ に置換して対象DBを更新


WITH <http://sparqlbook.jp/graph>


DELETE { ?old_iri a <http://dbpedia.org/ontology/City> . }


INSERT { ?new_iri a <http://dbpedia.org/ontology/City> . }


WHERE {


?old_iri a <http://dbpedia.org/ontology/City> .


BIND(STR(?old_iri) AS ?old_iri_string)


BIND("http://ja.dbpedia.org/resource/", AS ?old_prefix)


BIND("http://sparqlbook.jp/city/", AS ?new_prefix)


BIND(IRI(REPLACE(?old_iri_string, ?old_prefix,


?new_prefix)) AS ?new_iri) }

(21)

Questions?

@yayamamo


参照

関連したドキュメント

加藤 由起夫 日本内航海運組合総連合会 理事長 理事 田渕 訓生 日本内航海運組合総連合会 (田渕海運株社長) 会長 山﨑 潤一 (一社)日本旅客船協会

「基本計画 2020(案) 」では、健康づくり施策の達 成を図る指標を 65

BIGIグループ 株式会社ビームス BEAMS 株式会社アダストリア 株式会社ユナイテッドアローズ JUNグループ 株式会社シップス

FSIS が実施する HACCP の検証には、基本的検証と HACCP 運用に関する検証から構 成されている。基本的検証では、危害分析などの

三洋電機株式会社 住友電気工業株式会社 ソニー株式会社 株式会社東芝 日本電気株式会社 パナソニック株式会社 株式会社日立製作所

3. 小 こ ばや 早 かわ 川  とも 智  あき 明 (昭和38年6月29日生) 新任 所有する当社 普通株式の数 3,129

古安田層 ・炉心孔の PS 検層結果に基づく平均値 西山層 ・炉心孔の PS 検層結果に基づく平均値 椎谷層 ・炉心孔の

3. かね 金 子 こ よし 禎 のり 則 (昭和38年5月17日生) 新任 所有する当社 普通株式の数 2,252