SlideShare a Scribd company logo
1 of 20
Download to read offline
takemikamiʼs note ‒ http://takemikami.com/
RDFチェックツール「rdflint」のご紹介
im@sparlのデータセットをコミュニティで運⽤するために
Copyright (C) Takeshi Mikami. All rights reserved. 1
三上威(アーリース情報技術株式会社 代表) twitter: @takemikami
2019.4.21アイマスハッカソン2019 in 名古屋 (o・∇・o)
尾張だよ〜
takemikamiʼs note ‒ http://takemikami.com/
副業紹介
• みかみんP (@takemikamas)
• フリーランスITエンジニア
• データ分析及び機械学習等の応⽤システム開発
• マーケティングデータ分析基盤のシステム開発
• 略歴
• 情報通信ネットワーク・確率論 @ 甲南⼤学理学部応⽤数学科
• EC, CRM等のシステム開発・構築 @ NEC系SIer
• 旅⾏系ECサイトのマーケティングデータ分析 @ DeNA
• データ分析及び機械学習等の応⽤システム開発 @ アーリース情報技術(株)
• 最近扱っている技術領域
• GCP, Hadoop, SparkMLlib, Python, R, TensorFlow/Keras
Copyright (C) Takeshi Mikami. All rights reserved. 2
発表者のプロフィールを紹介します
P
takemikamiʼs note ‒ http://takemikami.com/
本業紹介
• 担当
• 765AS: 萩原雪歩
• ミリオン: 箱崎星梨花
• デレマス: ⼩⽇向美穂
• IM@Study関連
• 何つながりなのかな?を探る⾃然⾔語処理
〜765PRO LIVE THEATERに通りがかる⼩⽇向美穂〜
@週刊IM@Study 2019年5⽉
• ima@sparqlではじめるR Markdownとgitbookによるレポート⽣成
@2017.9.2 あいますえんじにあ Meetup in 京都
• 担当アイドルに反応してLチカさせる予測モデル開発
@2017.5.17 アイマスエンジニア MeetUp In Tokyo
• RDFファイルの⾃動検査ツール https://github.com/imas/rdflint
Copyright (C) Takeshi Mikami. All rights reserved. 3
発表者の本業を紹介します
takemikamiʼs note ‒ http://takemikami.com/
テーマとアジェンダ
• テーマ
• RDFチェックツール「rdflint」の使い⽅の紹介と仕組みの概要
• アジェンダ
• RDFとトリプル
• rdflintで出来ること
Copyright (C) Takeshi Mikami. All rights reserved. 4
本資料のテーマ、アジェンダを⽰します
takemikamiʼs note ‒ http://takemikami.com/
rdflintとは
• 以下のチェックが⾃動化出来る
• RDF、Turtle(ttl)ファイルの⽂法チェック
• 未定義の主語が、⽬的語として使われていないかのチェック
• SPARQLクエリによるカスタムチェック
• CIに組み込んでPullRequestによるマスターデータ運⽤に利⽤可能
• Apache Jenaを利⽤して実装されている
Copyright (C) Takeshi Mikami. All rights reserved. 5
RDFファイルの⾃動検査ツール
リポジトリ → https://github.com/imas/rdflint
takemikamiʼs note ‒ http://takemikami.com/
RDFとトリプル
Copyright (C) Takeshi Mikami. All rights reserved. 6
takemikamiʼs note ‒ http://takemikami.com/
グラフデータベースのデータモデル
Copyright (C) Takeshi Mikami. All rights reserved. 7
グラフデータベースとLinked Open Data
グラフDBのデータモデルとしてプロパティグラフとトリプルを⽰します
プロパティグラフ トリプル
主語(Subject) ⽬的語(Object)
述語(Predicate)
頂点
辺
プロパティ
点、辺、プロパティで構成
点・辺にキー/値ペアのプロパティを持つ
→有向グラフ+プロパティ
主語、述語、⽬的語の集まりで構成
→⼀般的な有向グラフ
RDFではこちらの
データモデルを表現する
takemikamiʼs note ‒ http://takemikami.com/
トリプルによるデータの表現 グラフ表現
Copyright (C) Takeshi Mikami. All rights reserved. 8
グラフデータベースとLinked Open Data
トリプルによるデータ表現の例を⽰します
宮沢賢治 岩⼿県
花巻市
盛岡市
銀河鉄道の夜
ジョバンニ
カムパネルラ
1934年
宮沢賢治
花巻市
盛岡市⽣誕県
⽣誕市
著作品 名称
岩⼿県
県庁
所在地
所属
所属
名称
名称
名称
銀河鉄道の夜名称
初出年
登場⼈物
登場⼈物
リソースのURI
リテラル
凡例:
宮沢賢治と
銀河鉄道の夜に関する
データを例として
takemikamiʼs note ‒ http://takemikami.com/
トリプルによるデータの表現 関係とリテラル
• リソース間の関係を表現
• リソースに関連する値(リテラル)を表現
Copyright (C) Takeshi Mikami. All rights reserved. 9
グラフデータベースとLinked Open Data
トリプルによるデータ表現の例を⽰します
宮沢賢治 銀河鉄道の夜
1934年
著作品
銀河鉄道の夜
主語 述語 ⽬的語
初出年
主語 述語 ⽬的語
これらの集合が前スライドで⽰したようなグラフ表現になる
リソースのURI
リテラル
凡例:
takemikamiʼs note ‒ http://takemikami.com/
Resource Description Framework (RDF)
• 主語・述語・⽬的語かのセット(=トリプル)を記述できる
• 必要に応じて、RDFスキーマで語彙を拡張できる
• 語彙には、述語に使⽤されるものや、リソースのクラスを⽰すものがある
• SPARQL(SPARQL Protocol and RDF Query Language)などのクエリ⾔
語で問い合わせが出来る
Copyright (C) Takeshi Mikami. All rights reserved. 10
グラフデータベースとLinked Open Data
Resource Description Framework(RDF)について説明します
ウェブ上のリソースの
メタデータを記述するための枠組み
takemikamiʼs note ‒ http://takemikami.com/
RDFファイルの例
Copyright (C) Takeshi Mikami. All rights reserved. 11
箱崎星梨花に関するRDFの抜粋と、グラフ表現を⽰します
<rdf:Description rdf:about="detail/Hakozaki_Serika">
<imas:nameKana xml:lang="ja">はこざきせりか</imas:nameKana>
<schema:name xml:lang="ja">箱崎星梨花</schema:name>
<foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">13</foaf:age>
<rdf:type rdf:resource="https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol"/>
<imas:cv rdf:resource="http://ja.dbpedia.org/resource/⿇倉もも"/>
</rdf:Description>
detail/Hakozaki_Serika
http://ja.dbpedia.org/resource/⿇倉もも
はこざきせりか
imasrdf/URIs/imas-schema.ttl#Idol
箱崎星梨花
13
imas:nameKana
imas:name
foaf:age
rdf:type
imas:cv
takemikamiʼs note ‒ http://takemikami.com/
rdflintで出来ること
Copyright (C) Takeshi Mikami. All rights reserved. 12
takemikamiʼs note ‒ http://takemikami.com/
rdflintで出来ること① 〜RDFファイルとして正しいか〜
Copyright (C) Takeshi Mikami. All rights reserved. 13
rdflintで出来ること: RDFファイルとして正しいかのチェック のイメージを⽰します
<rdf:Description rdf:about="detail/Hakozaki_Serika">
<imas:nameKana xml:lang="ja">はこざきせりか</imas:nameKana>
<schema:name xml:lang="ja">箱崎星梨花</schema:name>
<foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">13</foaf:age>
<rdf:type rdf:resource="https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol"/>
<imas:cv rdf:resource="http://ja.dbpedia.org/resource/⿇倉もも"/>
</rdf:Description>
detail/Hakozaki_Serika
http://ja.dbpedia.org/resource/⿇倉もも
はこざきせりか
imasrdf/URIs/imas-schema.ttl#Idol
箱崎星梨花
13
imas:nameKana
imas:name
foaf:age
rdf:type
imas:cv
RDFファイルとして
正しいかチェック
takemikamiʼs note ‒ http://takemikami.com/
rdflintで出来ること② 〜主語の存在チェック〜
Copyright (C) Takeshi Mikami. All rights reserved. 14
rdflintで出来ること: 主語の存在チェック のイメージを⽰します
<rdf:Description rdf:about="detail/Hakozaki_Serika">
<imas:nameKana xml:lang="ja">はこざきせりか</imas:nameKana>
<schema:name xml:lang="ja">箱崎星梨花</schema:name>
<foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">13</foaf:age>
<rdf:type rdf:resource="https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol"/>
<imas:cv rdf:resource="http://ja.dbpedia.org/resource/⿇倉もも"/>
</rdf:Description>
detail/Hakozaki_Serika
http://ja.dbpedia.org/resource/⿇倉もも
はこざきせりか
imasrdf/URIs/imas-schema.ttl#Idol
箱崎星梨花
13
imas:nameKana
imas:name
foaf:age
rdf:type
imas:cv
im@sparqlのデータセットで
管理されている主語の
存在チェック
im@sparqlのデータセットで
管理されている主語の
存在チェック
im@sparqlのデータセットで
管理されている主語の
存在チェック
im@sparqlのデータセットで
管理されている主語の
存在チェック
takemikamiʼs note ‒ http://takemikami.com/
rdflintで出来ること③ 〜SPARQLクエリによるチェック〜
Copyright (C) Takeshi Mikami. All rights reserved. 15
rdflintで出来ること: SPARQLクエリによるカスタムチェック のイメージを⽰します
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?s ?o
WHERE {
?s rdf:type ?o .
FILTER NOT EXISTS {
?s rdf:type <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol>
}
}
チェック⽤SPARQLクエリ
rdf:typeが「imasrdf/URIs/imas-schema.ttl#Idol」以外
の主語・述語を返却するクエリ
対象ファイル: RDFs/765AS.rdf
765ASのメンバを定義するファイル
やりたいこと: 765ASのアイドル定義⽤ファイルに
アイドル以外が定義されていないかチェックしたい
takemikamiʼs note ‒ http://takemikami.com/
rdflintで出来ること③ 〜SPARQLクエリによるチェック〜
Copyright (C) Takeshi Mikami. All rights reserved. 16
rdflintで出来ること: SPARQLクエリによるカスタムチェック のイメージを⽰します
while(rs.hasNext()) {
log.warn("アイドル以外の定義があります " + rs.next())
}
クエリ結果を警告として出⼒するスクリプト(groovy)
RDFs/765AS.rdf
warn アイドル定義⽤ファイル: アイドル以外の定義があります ( ?o =
<https://schema.org/MusicRecording> ) ( ?s =
<https://sparql.crssnky.xyz/imasrdf/RDFs/detail/%E9%AD%94%E6%B3%95%E3%82%92%E3%81%8B%E3%
81%91%E3%81%A6%21%20%28M%40STER%20VERSION%29_01> )
チェック結果の表⽰
※意図的に誤ったデータを追加して確認した結果です。
takemikamiʼs note ‒ http://takemikami.com/
検査の実⾏イメージ
Copyright (C) Takeshi Mikami. All rights reserved. 17
検査の実⾏イメージを⽰します
$ wget https://jitpack.io/com/github/imas/rdflint/0.0.4/rdflint-0.0.4-all.jar
rdflintのダウンロード
$ java -jar rdflint-0.0.4-all.jar -config .circleci/rdflint-config.yml
RDFs/Event.rdf
warn Undefined URI: https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Hakozaki_serika (Triple:
https://sparql.crssnky.xyz/imasrdf/RDFs/detail/765Caravan_2 - http://schema.org/actor -
https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Hakozaki_serika)
rdflint検査の実⾏
対象ファイル
エラー理由
※Hakozaki_serika → Hakozaki_Serika (⼤⽂字・⼩⽂字の誤り)
takemikamiʼs note ‒ http://takemikami.com/
SPARQLクエリによるチェックの設定イメージ
Copyright (C) Takeshi Mikami. All rights reserved. 18
SPARQLクエリによるチェックの設定イメージを⽰します
baseUri: https://sparql.crssnky.xyz/imasrdf/
rules:
- name: アイドル定義⽤ファイル
target: "RDFs/765AS.rdf"
query: |
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?s ?o
WHERE {
?s rdf:type ?o .
FILTER NOT EXISTS {
?s rdf:type <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol>
}
}
valid: |
while(rs.hasNext()) {
log.warn("アイドル以外の定義があります " + rs.next())
}
設定ファイル: .circleci/rdflint-config.yml
takemikamiʼs note ‒ http://takemikami.com/
インタラクティブモード
• コマンドラインでローカルにあるRDFファイルにSPARQL実⾏が出来る
Copyright (C) Takeshi Mikami. All rights reserved. 19
インタラクティブモードを紹介します
$ wget https://jitpack.io/com/github/imas/rdflint/0.0.4/rdflint-0.0.4-all.jar
rdflintのダウンロード
$ java -jar rdflint-0.0.4-all.jar -i -config .circleci/rdflint-config.yml
sparql >
rdflintインタラクティブモードの開始
takemikamiʼs note ‒ http://takemikami.com/
インタラクティブモードの実⾏イメージ
Copyright (C) Takeshi Mikami. All rights reserved. 20
インタラクティブモードの実⾏イメージを⽰す
$ java -jar rdflint-0.0.4-all.jar -i -config .circleci/rdflint-config.yml
sparql > PREFIX schema: <http://schema.org/>
> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX imas: <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#>
> SELECT ?星梨花の主語
> WHERE {
> ?星梨花の主語 rdf:type imas:Idol;
> schema:name ?アイドル名.
> filter(contains(?アイドル名,"箱崎星梨花"))
> }
>
--------------------------------------------------------------------
| 星梨花の主語 |
====================================================================
| <https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Hakozaki_Serika> |
--------------------------------------------------------------------
rdflintインタラクティブモードでのクエリ実⾏

More Related Content

What's hot

【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデルDeep Learning JP
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング佑哉 廣岡
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報Emma Haruka Iwao
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live![part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!KnowledgeGraph
 
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative ModelingDeep Learning JP
 
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向Koichiro Mori
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
簡単な算数でできる文章校正
簡単な算数でできる文章校正簡単な算数でできる文章校正
簡単な算数でできる文章校正hirokiky
 
Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16Mitsuru Kariya
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
[DL輪読会]Weakly-Supervised Disentanglement Without Compromises
[DL輪読会]Weakly-Supervised Disentanglement Without Compromises[DL輪読会]Weakly-Supervised Disentanglement Without Compromises
[DL輪読会]Weakly-Supervised Disentanglement Without CompromisesDeep Learning JP
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 

What's hot (20)

【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live![part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
 
Tesseract ocr
Tesseract ocrTesseract ocr
Tesseract ocr
 
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling
 
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
簡単な算数でできる文章校正
簡単な算数でできる文章校正簡単な算数でできる文章校正
簡単な算数でできる文章校正
 
Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
[DL輪読会]Weakly-Supervised Disentanglement Without Compromises
[DL輪読会]Weakly-Supervised Disentanglement Without Compromises[DL輪読会]Weakly-Supervised Disentanglement Without Compromises
[DL輪読会]Weakly-Supervised Disentanglement Without Compromises
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 

Similar to RDFチェックツール「rdflint」のご紹介

RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成Takeshi Mikami
 
Ims@sparqlではじめるr markdownとgitbookによるレポート生成
Ims@sparqlではじめるr markdownとgitbookによるレポート生成Ims@sparqlではじめるr markdownとgitbookによるレポート生成
Ims@sparqlではじめるr markdownとgitbookによるレポート生成Takeshi Mikami
 
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)Takeshi Mikami
 
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016Tatsuya Atsumi
 
Feature Store in DRIVE CHART
Feature Store in DRIVE CHARTFeature Store in DRIVE CHART
Feature Store in DRIVE CHARTemakryo
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424guest17bfe2
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424龍一 田中
 
ひよこさんのための
ひよこさんのための ひよこさんのための
ひよこさんのための cocoa_dahlia
 
JSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメJSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメTakami Kazuya
 
rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法Takeshi Mikami
 
Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Nanako Takahashi
 
最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととかM Hagiwara
 
アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方Takeshi Mikami
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-LINE Corp.
 
データカタログソフトウェア CKAN
データカタログソフトウェア CKANデータカタログソフトウェア CKAN
データカタログソフトウェア CKANFumihiro Kato
 
Im@sparqlを作った理由(ワケ)
Im@sparqlを作った理由(ワケ)Im@sparqlを作った理由(ワケ)
Im@sparqlを作った理由(ワケ)crssnky
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜Naohiro Yoshida
 
Power platform day summer 19
Power platform day summer 19 Power platform day summer 19
Power platform day summer 19 ssuser6e9dab
 
趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)
趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)
趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)National Institute of Informatics (NII)
 

Similar to RDFチェックツール「rdflint」のご紹介 (20)

RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
 
Ims@sparqlではじめるr markdownとgitbookによるレポート生成
Ims@sparqlではじめるr markdownとgitbookによるレポート生成Ims@sparqlではじめるr markdownとgitbookによるレポート生成
Ims@sparqlではじめるr markdownとgitbookによるレポート生成
 
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
 
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
 
Feature Store in DRIVE CHART
Feature Store in DRIVE CHARTFeature Store in DRIVE CHART
Feature Store in DRIVE CHART
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424
 
ひよこさんのための
ひよこさんのための ひよこさんのための
ひよこさんのための
 
JSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメJSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメ
 
rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法
 
Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901
 
最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか最近のTremaを触ってみてちょっとはまったこととか
最近のTremaを触ってみてちょっとはまったこととか
 
アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
 
データカタログソフトウェア CKAN
データカタログソフトウェア CKANデータカタログソフトウェア CKAN
データカタログソフトウェア CKAN
 
Im@sparqlを作った理由(ワケ)
Im@sparqlを作った理由(ワケ)Im@sparqlを作った理由(ワケ)
Im@sparqlを作った理由(ワケ)
 
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜Spring Framework / Boot / Data 徹底活用  〜Spring Data Redis 編〜
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜
 
Power platform day summer 19
Power platform day summer 19 Power platform day summer 19
Power platform day summer 19
 
趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)
趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)
趙簡単LOD入門 〜デジタル庁をデジタル化する〜 (改訂版)
 

More from Takeshi Mikami

適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介Takeshi Mikami
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れTakeshi Mikami
 
MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方Takeshi Mikami
 
データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」Takeshi Mikami
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウTakeshi Mikami
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方Takeshi Mikami
 
HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題Takeshi Mikami
 
アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)Takeshi Mikami
 
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Takeshi Mikami
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本Takeshi Mikami
 
Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Takeshi Mikami
 
Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Takeshi Mikami
 
IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介Takeshi Mikami
 
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介Takeshi Mikami
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門Takeshi Mikami
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法Takeshi Mikami
 
担当アイドルに反応してLチカさせる予測モデル開発
担当アイドルに反応してLチカさせる予測モデル開発担当アイドルに反応してLチカさせる予測モデル開発
担当アイドルに反応してLチカさせる予測モデル開発Takeshi Mikami
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)Takeshi Mikami
 
Apache Hbase バルクロードの使い方
Apache Hbase バルクロードの使い方Apache Hbase バルクロードの使い方
Apache Hbase バルクロードの使い方Takeshi Mikami
 

More from Takeshi Mikami (20)

適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れ
 
MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方
 
データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
 
HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題
 
アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)
 
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
 
SPARQL入門
SPARQL入門SPARQL入門
SPARQL入門
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本
 
Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定
 
Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門
 
IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介
 
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
 
担当アイドルに反応してLチカさせる予測モデル開発
担当アイドルに反応してLチカさせる予測モデル開発担当アイドルに反応してLチカさせる予測モデル開発
担当アイドルに反応してLチカさせる予測モデル開発
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
 
Apache Hbase バルクロードの使い方
Apache Hbase バルクロードの使い方Apache Hbase バルクロードの使い方
Apache Hbase バルクロードの使い方
 

RDFチェックツール「rdflint」のご紹介

  • 1. takemikamiʼs note ‒ http://takemikami.com/ RDFチェックツール「rdflint」のご紹介 im@sparlのデータセットをコミュニティで運⽤するために Copyright (C) Takeshi Mikami. All rights reserved. 1 三上威(アーリース情報技術株式会社 代表) twitter: @takemikami 2019.4.21アイマスハッカソン2019 in 名古屋 (o・∇・o) 尾張だよ〜
  • 2. takemikamiʼs note ‒ http://takemikami.com/ 副業紹介 • みかみんP (@takemikamas) • フリーランスITエンジニア • データ分析及び機械学習等の応⽤システム開発 • マーケティングデータ分析基盤のシステム開発 • 略歴 • 情報通信ネットワーク・確率論 @ 甲南⼤学理学部応⽤数学科 • EC, CRM等のシステム開発・構築 @ NEC系SIer • 旅⾏系ECサイトのマーケティングデータ分析 @ DeNA • データ分析及び機械学習等の応⽤システム開発 @ アーリース情報技術(株) • 最近扱っている技術領域 • GCP, Hadoop, SparkMLlib, Python, R, TensorFlow/Keras Copyright (C) Takeshi Mikami. All rights reserved. 2 発表者のプロフィールを紹介します P
  • 3. takemikamiʼs note ‒ http://takemikami.com/ 本業紹介 • 担当 • 765AS: 萩原雪歩 • ミリオン: 箱崎星梨花 • デレマス: ⼩⽇向美穂 • IM@Study関連 • 何つながりなのかな?を探る⾃然⾔語処理 〜765PRO LIVE THEATERに通りがかる⼩⽇向美穂〜 @週刊IM@Study 2019年5⽉ • ima@sparqlではじめるR Markdownとgitbookによるレポート⽣成 @2017.9.2 あいますえんじにあ Meetup in 京都 • 担当アイドルに反応してLチカさせる予測モデル開発 @2017.5.17 アイマスエンジニア MeetUp In Tokyo • RDFファイルの⾃動検査ツール https://github.com/imas/rdflint Copyright (C) Takeshi Mikami. All rights reserved. 3 発表者の本業を紹介します
  • 4. takemikamiʼs note ‒ http://takemikami.com/ テーマとアジェンダ • テーマ • RDFチェックツール「rdflint」の使い⽅の紹介と仕組みの概要 • アジェンダ • RDFとトリプル • rdflintで出来ること Copyright (C) Takeshi Mikami. All rights reserved. 4 本資料のテーマ、アジェンダを⽰します
  • 5. takemikamiʼs note ‒ http://takemikami.com/ rdflintとは • 以下のチェックが⾃動化出来る • RDF、Turtle(ttl)ファイルの⽂法チェック • 未定義の主語が、⽬的語として使われていないかのチェック • SPARQLクエリによるカスタムチェック • CIに組み込んでPullRequestによるマスターデータ運⽤に利⽤可能 • Apache Jenaを利⽤して実装されている Copyright (C) Takeshi Mikami. All rights reserved. 5 RDFファイルの⾃動検査ツール リポジトリ → https://github.com/imas/rdflint
  • 6. takemikamiʼs note ‒ http://takemikami.com/ RDFとトリプル Copyright (C) Takeshi Mikami. All rights reserved. 6
  • 7. takemikamiʼs note ‒ http://takemikami.com/ グラフデータベースのデータモデル Copyright (C) Takeshi Mikami. All rights reserved. 7 グラフデータベースとLinked Open Data グラフDBのデータモデルとしてプロパティグラフとトリプルを⽰します プロパティグラフ トリプル 主語(Subject) ⽬的語(Object) 述語(Predicate) 頂点 辺 プロパティ 点、辺、プロパティで構成 点・辺にキー/値ペアのプロパティを持つ →有向グラフ+プロパティ 主語、述語、⽬的語の集まりで構成 →⼀般的な有向グラフ RDFではこちらの データモデルを表現する
  • 8. takemikamiʼs note ‒ http://takemikami.com/ トリプルによるデータの表現 グラフ表現 Copyright (C) Takeshi Mikami. All rights reserved. 8 グラフデータベースとLinked Open Data トリプルによるデータ表現の例を⽰します 宮沢賢治 岩⼿県 花巻市 盛岡市 銀河鉄道の夜 ジョバンニ カムパネルラ 1934年 宮沢賢治 花巻市 盛岡市⽣誕県 ⽣誕市 著作品 名称 岩⼿県 県庁 所在地 所属 所属 名称 名称 名称 銀河鉄道の夜名称 初出年 登場⼈物 登場⼈物 リソースのURI リテラル 凡例: 宮沢賢治と 銀河鉄道の夜に関する データを例として
  • 9. takemikamiʼs note ‒ http://takemikami.com/ トリプルによるデータの表現 関係とリテラル • リソース間の関係を表現 • リソースに関連する値(リテラル)を表現 Copyright (C) Takeshi Mikami. All rights reserved. 9 グラフデータベースとLinked Open Data トリプルによるデータ表現の例を⽰します 宮沢賢治 銀河鉄道の夜 1934年 著作品 銀河鉄道の夜 主語 述語 ⽬的語 初出年 主語 述語 ⽬的語 これらの集合が前スライドで⽰したようなグラフ表現になる リソースのURI リテラル 凡例:
  • 10. takemikamiʼs note ‒ http://takemikami.com/ Resource Description Framework (RDF) • 主語・述語・⽬的語かのセット(=トリプル)を記述できる • 必要に応じて、RDFスキーマで語彙を拡張できる • 語彙には、述語に使⽤されるものや、リソースのクラスを⽰すものがある • SPARQL(SPARQL Protocol and RDF Query Language)などのクエリ⾔ 語で問い合わせが出来る Copyright (C) Takeshi Mikami. All rights reserved. 10 グラフデータベースとLinked Open Data Resource Description Framework(RDF)について説明します ウェブ上のリソースの メタデータを記述するための枠組み
  • 11. takemikamiʼs note ‒ http://takemikami.com/ RDFファイルの例 Copyright (C) Takeshi Mikami. All rights reserved. 11 箱崎星梨花に関するRDFの抜粋と、グラフ表現を⽰します <rdf:Description rdf:about="detail/Hakozaki_Serika"> <imas:nameKana xml:lang="ja">はこざきせりか</imas:nameKana> <schema:name xml:lang="ja">箱崎星梨花</schema:name> <foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">13</foaf:age> <rdf:type rdf:resource="https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol"/> <imas:cv rdf:resource="http://ja.dbpedia.org/resource/⿇倉もも"/> </rdf:Description> detail/Hakozaki_Serika http://ja.dbpedia.org/resource/⿇倉もも はこざきせりか imasrdf/URIs/imas-schema.ttl#Idol 箱崎星梨花 13 imas:nameKana imas:name foaf:age rdf:type imas:cv
  • 12. takemikamiʼs note ‒ http://takemikami.com/ rdflintで出来ること Copyright (C) Takeshi Mikami. All rights reserved. 12
  • 13. takemikamiʼs note ‒ http://takemikami.com/ rdflintで出来ること① 〜RDFファイルとして正しいか〜 Copyright (C) Takeshi Mikami. All rights reserved. 13 rdflintで出来ること: RDFファイルとして正しいかのチェック のイメージを⽰します <rdf:Description rdf:about="detail/Hakozaki_Serika"> <imas:nameKana xml:lang="ja">はこざきせりか</imas:nameKana> <schema:name xml:lang="ja">箱崎星梨花</schema:name> <foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">13</foaf:age> <rdf:type rdf:resource="https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol"/> <imas:cv rdf:resource="http://ja.dbpedia.org/resource/⿇倉もも"/> </rdf:Description> detail/Hakozaki_Serika http://ja.dbpedia.org/resource/⿇倉もも はこざきせりか imasrdf/URIs/imas-schema.ttl#Idol 箱崎星梨花 13 imas:nameKana imas:name foaf:age rdf:type imas:cv RDFファイルとして 正しいかチェック
  • 14. takemikamiʼs note ‒ http://takemikami.com/ rdflintで出来ること② 〜主語の存在チェック〜 Copyright (C) Takeshi Mikami. All rights reserved. 14 rdflintで出来ること: 主語の存在チェック のイメージを⽰します <rdf:Description rdf:about="detail/Hakozaki_Serika"> <imas:nameKana xml:lang="ja">はこざきせりか</imas:nameKana> <schema:name xml:lang="ja">箱崎星梨花</schema:name> <foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">13</foaf:age> <rdf:type rdf:resource="https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol"/> <imas:cv rdf:resource="http://ja.dbpedia.org/resource/⿇倉もも"/> </rdf:Description> detail/Hakozaki_Serika http://ja.dbpedia.org/resource/⿇倉もも はこざきせりか imasrdf/URIs/imas-schema.ttl#Idol 箱崎星梨花 13 imas:nameKana imas:name foaf:age rdf:type imas:cv im@sparqlのデータセットで 管理されている主語の 存在チェック im@sparqlのデータセットで 管理されている主語の 存在チェック im@sparqlのデータセットで 管理されている主語の 存在チェック im@sparqlのデータセットで 管理されている主語の 存在チェック
  • 15. takemikamiʼs note ‒ http://takemikami.com/ rdflintで出来ること③ 〜SPARQLクエリによるチェック〜 Copyright (C) Takeshi Mikami. All rights reserved. 15 rdflintで出来ること: SPARQLクエリによるカスタムチェック のイメージを⽰します PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?s ?o WHERE { ?s rdf:type ?o . FILTER NOT EXISTS { ?s rdf:type <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol> } } チェック⽤SPARQLクエリ rdf:typeが「imasrdf/URIs/imas-schema.ttl#Idol」以外 の主語・述語を返却するクエリ 対象ファイル: RDFs/765AS.rdf 765ASのメンバを定義するファイル やりたいこと: 765ASのアイドル定義⽤ファイルに アイドル以外が定義されていないかチェックしたい
  • 16. takemikamiʼs note ‒ http://takemikami.com/ rdflintで出来ること③ 〜SPARQLクエリによるチェック〜 Copyright (C) Takeshi Mikami. All rights reserved. 16 rdflintで出来ること: SPARQLクエリによるカスタムチェック のイメージを⽰します while(rs.hasNext()) { log.warn("アイドル以外の定義があります " + rs.next()) } クエリ結果を警告として出⼒するスクリプト(groovy) RDFs/765AS.rdf warn アイドル定義⽤ファイル: アイドル以外の定義があります ( ?o = <https://schema.org/MusicRecording> ) ( ?s = <https://sparql.crssnky.xyz/imasrdf/RDFs/detail/%E9%AD%94%E6%B3%95%E3%82%92%E3%81%8B%E3% 81%91%E3%81%A6%21%20%28M%40STER%20VERSION%29_01> ) チェック結果の表⽰ ※意図的に誤ったデータを追加して確認した結果です。
  • 17. takemikamiʼs note ‒ http://takemikami.com/ 検査の実⾏イメージ Copyright (C) Takeshi Mikami. All rights reserved. 17 検査の実⾏イメージを⽰します $ wget https://jitpack.io/com/github/imas/rdflint/0.0.4/rdflint-0.0.4-all.jar rdflintのダウンロード $ java -jar rdflint-0.0.4-all.jar -config .circleci/rdflint-config.yml RDFs/Event.rdf warn Undefined URI: https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Hakozaki_serika (Triple: https://sparql.crssnky.xyz/imasrdf/RDFs/detail/765Caravan_2 - http://schema.org/actor - https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Hakozaki_serika) rdflint検査の実⾏ 対象ファイル エラー理由 ※Hakozaki_serika → Hakozaki_Serika (⼤⽂字・⼩⽂字の誤り)
  • 18. takemikamiʼs note ‒ http://takemikami.com/ SPARQLクエリによるチェックの設定イメージ Copyright (C) Takeshi Mikami. All rights reserved. 18 SPARQLクエリによるチェックの設定イメージを⽰します baseUri: https://sparql.crssnky.xyz/imasrdf/ rules: - name: アイドル定義⽤ファイル target: "RDFs/765AS.rdf" query: | PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?s ?o WHERE { ?s rdf:type ?o . FILTER NOT EXISTS { ?s rdf:type <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol> } } valid: | while(rs.hasNext()) { log.warn("アイドル以外の定義があります " + rs.next()) } 設定ファイル: .circleci/rdflint-config.yml
  • 19. takemikamiʼs note ‒ http://takemikami.com/ インタラクティブモード • コマンドラインでローカルにあるRDFファイルにSPARQL実⾏が出来る Copyright (C) Takeshi Mikami. All rights reserved. 19 インタラクティブモードを紹介します $ wget https://jitpack.io/com/github/imas/rdflint/0.0.4/rdflint-0.0.4-all.jar rdflintのダウンロード $ java -jar rdflint-0.0.4-all.jar -i -config .circleci/rdflint-config.yml sparql > rdflintインタラクティブモードの開始
  • 20. takemikamiʼs note ‒ http://takemikami.com/ インタラクティブモードの実⾏イメージ Copyright (C) Takeshi Mikami. All rights reserved. 20 インタラクティブモードの実⾏イメージを⽰す $ java -jar rdflint-0.0.4-all.jar -i -config .circleci/rdflint-config.yml sparql > PREFIX schema: <http://schema.org/> > PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> > PREFIX imas: <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#> > SELECT ?星梨花の主語 > WHERE { > ?星梨花の主語 rdf:type imas:Idol; > schema:name ?アイドル名. > filter(contains(?アイドル名,"箱崎星梨花")) > } > -------------------------------------------------------------------- | 星梨花の主語 | ==================================================================== | <https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Hakozaki_Serika> | -------------------------------------------------------------------- rdflintインタラクティブモードでのクエリ実⾏