SlideShare a Scribd company logo
1 of 17
RDF をプロパティグラフに
変換するマッピング言語 G2GML
2017/11/02
PGXユーザ勉強会#5
松本 翔太(matsusho)
1
RDF[1]とは?
Resource Description Framework
• セマンティックウェブ[2]のための枠組み
• 主語 述語 目的語の3つ組で関係グラフを記述
[1] W3C.org, https://www.w3.org/RDF/
[2] W3C.org, https://www.w3.org/2001/sw/
New York has the postal abbreviation NY.
urn:states:
New_York
NY
http://purl.org/dc/terms/alternative
例
各ノードやエッジのラベルは
文字列やURI
2
RDFの実用例
京都市オープンデータ
(https://data.city.kyoto.lg.jp/)
データ利活用のために多くの機関が公開
Wikidata(https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service)
Data.gov(https://www.data.gov/)
neXt prot (https://www.nextprot.org/)
3
RDFのクエリ言語SPARQL
PREFIX abc: <http://mynamespace.com/exampleOntologie#>
SELECT ?capital ?country
WHERE {
?x abc:cityname ?capital.
?y abc:countryname ?country.
?x abc:isCapitalOf ?y.
?y abc:isInContinent abc:africa.
}
※Wikipedia (https://ja.wikipedia.org/wiki/SPARQL) より引用
例:アフリカの国々の首都を得るSPARQL
?capital や ?country は変数
4
RDF vs Property Graph
どちらもグラフ構造を表現
• W3Cによって標準化
• セマンティックウェブの実現手段として
広まりつつある
• 基本構造(トリプル)が覚えやすい
RDFの利点
• ノードやエッジがプロパティを直接持てない
(回避策はあるが・・・)
=> 検索性能や構造の煩雑さにつながる
RDFの欠点
※他にもいくつか違いはあります。多重辺の有無など
5
G2GML Project (https://github.com/ryotas/g2gml)
RDFグラフ(の一部)をグラフDBに簡単にインポート!
目的
 マッピング言語G2GML
 プロパティグラフのための汎用フォーマットGPG
 G2GMLの処理エンジン
目標成果物
 ryotas
 matsusho
メンバー
6
G2GML Project (https://github.com/ryotas/g2gml)
RDFグラフ(の一部)をグラフDBに簡単にインポート!
目的
 マッピング言語G2GML
 プロパティグラフのための汎用フォーマットGPG
 G2GMLの処理エンジン
目標成果物
 ryotas
 matsusho
 他募集中!
メンバー
7
Implemented
in Node.js
インポートまでの流れ
G2GML
Engine
SPARQL
エンドポイント
G2GML
SPARQL
GPG
Translators
Import
Files
8
例:Linked ICGC の RDF スキーマ
※Linked ICGC (http://icgc.link/) より引用 9
例:Linked ICGC の RDF スキーマ
10
Example of G2GML
PREFIX icgc: <http://icgc.link/vocab/>
PREFIX icgc-class: <http://icgc.link/>
PREFIX faldo: <http://biohackathon.org/resource/faldo>
nodes:
donor:
type: S rdf:type icgc-class:Donor
label: S rdfs:label O
age: S icgc:age_at_diagnosis O
gender: S icgc:sex O
mutation:
type: S rdf:type icgc-class:Mutation
label: S rdfs:label O
start_position:
S faldo:region ?r . ?r faldo:begin ?b . ?b faldo:position O
edges:
has_mutation (donor, mutation):
?det icgc:donor ?donor . ?det icgc:mutation ?mutation
affects (mutation, effect):
?mutation ^icgc:mutation ?effect . ?effect icgc:gene_affected ?gene
Prefix定義
ノード定義
エッジ定義
11
Example of G2GML
PREFIX icgc: <http://icgc.link/vocab/>
PREFIX icgc-class: <http://icgc.link/>
PREFIX faldo: <http://biohackathon.org/resource/faldo>
nodes:
donor:
type: S rdf:type icgc-class:Donor
label: S rdfs:label O
age: S icgc:age_at_diagnosis O
gender: S icgc:sex O
mutation:
type: S rdf:type icgc-class:Mutation
label: S rdfs:label O
start_position:
S faldo:region ?r . ?r faldo:begin ?b . ?b faldo:position O
edges:
has_mutation (donor, mutation):
?det icgc:donor ?donor . ?det icgc:mutation ?mutation
affects (mutation, effect):
?mutation ^icgc:mutation ?effect . ?effect icgc:gene_affected ?gene
12
Nodes in G2GML
nodes:
donor:
type: S rdf:type icgc-class:Donor
label: S rdfs:label O
age: S icgc:age_at_diagnosis O
gender: S icgc:sex O
mutation:
type: S rdf:type icgc-class:Mutation
label: S rdfs:label O
start_position:
S faldo:region ?r . ?r faldo:begin ?b . ?b faldo:position O
13
Edges in G2GML
edges:
has_mutation (donor, mutation):
?det icgc:donor ?donor . ?det icgc:mutation ?mutation
affects (mutation, effect):
?mutation ^icgc:mutation ?effect . ?effect icgc:gene_affected ?gene
14
GPG
"nid" "property" "value"
"http://icgc.link/Donor/DO1" "type" "donor”
"http://icgc.link/Donor/DO10" "type" "donor”
…
"http://icgc.link/Donor/DO1" "age" "7"
"http://icgc.link/Donor/DO10" "age" "3"
…
"s_nid” "d_nid" "label"
"http://icgc.link/Donor/DO162" "http://icgc.link/Mutation/MU28469480" "has_mutation"
"http://icgc.link/Donor/DO162" "http://icgc.link/Mutation/MU40447273" "has_mutation”
…
15
デモを行います!
16
今後の展望
言語仕様の洗練、明確化
あわよくばW3Cに・・・
G2GMLエンジンの強化
性能調査
グラフDB間の比較、およびSPARQLとの比較
性能以外の面での比較
RDFより簡潔に表現できているか?
17

More Related Content

What's hot

GTFS (General Transit Feed Specification) について
GTFS (General Transit Feed Specification) についてGTFS (General Transit Feed Specification) について
GTFS (General Transit Feed Specification) についてSaga University
 
1st LODandOntology studysession aboutRDF
1st LODandOntology studysession aboutRDF1st LODandOntology studysession aboutRDF
1st LODandOntology studysession aboutRDFTakeshi Masuda
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開KnowledgeGraph
 
FOSS4G 2009 Tokyo (R and Geo) in Japanese
FOSS4G 2009 Tokyo (R and Geo) in JapaneseFOSS4G 2009 Tokyo (R and Geo) in Japanese
FOSS4G 2009 Tokyo (R and Geo) in JapaneseMasafumi Okada
 
LOD for Yokohama city budget plan
LOD for Yokohama city budget planLOD for Yokohama city budget plan
LOD for Yokohama city budget planHiroyuki Sato
 
2013-06-13_FRBR&RDA勉強会復習スライド
2013-06-13_FRBR&RDA勉強会復習スライド2013-06-13_FRBR&RDA勉強会復習スライド
2013-06-13_FRBR&RDA勉強会復習スライドYuka Egusa
 

What's hot (7)

GTFS (General Transit Feed Specification) について
GTFS (General Transit Feed Specification) についてGTFS (General Transit Feed Specification) について
GTFS (General Transit Feed Specification) について
 
1st LODandOntology studysession aboutRDF
1st LODandOntology studysession aboutRDF1st LODandOntology studysession aboutRDF
1st LODandOntology studysession aboutRDF
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
 
FOSS4G 2009 Tokyo (R and Geo) in Japanese
FOSS4G 2009 Tokyo (R and Geo) in JapaneseFOSS4G 2009 Tokyo (R and Geo) in Japanese
FOSS4G 2009 Tokyo (R and Geo) in Japanese
 
Linked Data (再)入門
Linked Data (再)入門Linked Data (再)入門
Linked Data (再)入門
 
LOD for Yokohama city budget plan
LOD for Yokohama city budget planLOD for Yokohama city budget plan
LOD for Yokohama city budget plan
 
2013-06-13_FRBR&RDA勉強会復習スライド
2013-06-13_FRBR&RDA勉強会復習スライド2013-06-13_FRBR&RDA勉強会復習スライド
2013-06-13_FRBR&RDA勉強会復習スライド
 

Similar to RDF をプロパティグラフに 変換するマッピング言語 G2GML

セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-mettoboshi
 
Rから利用するオープンデータAPI
Rから利用するオープンデータAPIRから利用するオープンデータAPI
Rから利用するオープンデータAPIs3works
 
WebDAV, ATOM, and REST
WebDAV, ATOM, and RESTWebDAV, ATOM, and REST
WebDAV, ATOM, and RESTTaisuke Yamada
 
201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索Satoshi Kume
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料Siena. N
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!uedayou
 
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」KAMURA
 
2013-08-01_FRBR&RDA勉強会復習スライド
2013-08-01_FRBR&RDA勉強会復習スライド2013-08-01_FRBR&RDA勉強会復習スライド
2013-08-01_FRBR&RDA勉強会復習スライドYuka Egusa
 
Voltdb - wikipedia
Voltdb - wikipediaVoltdb - wikipedia
Voltdb - wikipediaHiroshi Ono
 
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Global Azure Bootcamp 2017  DocumentDB Deep DiveGlobal Azure Bootcamp 2017  DocumentDB Deep Dive
Global Azure Bootcamp 2017 DocumentDB Deep DiveTakekazu Omi
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進Shun Shiramatsu
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Fuyuko Matsumura
 
メタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridgeメタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridgeMitsuharu Nagamori
 
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-uedayou
 
RubyとPost Gis
RubyとPost GisRubyとPost Gis
RubyとPost Gisngi group.
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame IntroductionYu Ishikawa
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップChubu University
 
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~decode2016
 

Similar to RDF をプロパティグラフに 変換するマッピング言語 G2GML (20)

DBpedia Japanese
DBpedia JapaneseDBpedia Japanese
DBpedia Japanese
 
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
 
Rから利用するオープンデータAPI
Rから利用するオープンデータAPIRから利用するオープンデータAPI
Rから利用するオープンデータAPI
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
WebDAV, ATOM, and REST
WebDAV, ATOM, and RESTWebDAV, ATOM, and REST
WebDAV, ATOM, and REST
 
201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!
 
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
 
2013-08-01_FRBR&RDA勉強会復習スライド
2013-08-01_FRBR&RDA勉強会復習スライド2013-08-01_FRBR&RDA勉強会復習スライド
2013-08-01_FRBR&RDA勉強会復習スライド
 
Voltdb - wikipedia
Voltdb - wikipediaVoltdb - wikipedia
Voltdb - wikipedia
 
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Global Azure Bootcamp 2017  DocumentDB Deep DiveGlobal Azure Bootcamp 2017  DocumentDB Deep Dive
Global Azure Bootcamp 2017 DocumentDB Deep Dive
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
 
メタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridgeメタデータスキーマレジストリ MetaBridge
メタデータスキーマレジストリ MetaBridge
 
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
 
RubyとPost Gis
RubyとPost GisRubyとPost Gis
RubyとPost Gis
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップ
 
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
 

RDF をプロパティグラフに 変換するマッピング言語 G2GML