SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
RDF/OWLの概要とOSS実装、及び活用イメージについて ~非構造データの構造化ゴールとしてのLinkedData~ 
礒部 正幸 / アドファイブ株式会社 
2014/9/28 ゆるふわ非構造 #1
0111010001010101011101… 
(1) LinkedOpenData 勃興の確かな兆し 
(2) スマホファーストとネイティブアプリ化 
(3) 次なるITの開拓地 「Internet Of Things」 
今後セマンティックWeb技術が不可欠となる3つの根拠 
2014/8/30現在 
2007/9 
20011/9 
Cloud 
Servers 
not HTML but JSON 
not Browser but Apps 
アプリが扱うJSON 
のデータ形式の数 
>> DBのテーブル数 
?? 
「データ自体が 
社会インフラ」 
になるという 
パラダイムシフト 
0111010001010101011101 … 
0111010001010101011101 … 
raw data 
infinite online sensor devices 
DB 
? 
enables various 
IoT applications 
to make sense 
生データと 
アプリケーションを 
つなぐ柔軟な 
中間データ形式 
の必要性 
IoT Apps
「非構造データ」 
「構造化データ」 
「LinkedData」 
非構造と構造の間をカバーするLinkedData 
利点 
・データ生成コストが低い 
・1次情報としての完全性 
欠点 
・データ量が多い 
・アプリケーションで 
直接使えない 
利点 
・アプリケーションで直接使える 
・必要なデータのみ保持する 
欠点 
・想定用途でしか使えない 
・アプリケーション間での 
相互利用は通常困難 
・データ作成にコストが掛かる 
利点 
・想定してない用途をカバーできる 
・アプリケーション間で相互利用可能 
・生データより量が少ない 
欠点 
・データ作成にコストが掛かる 
・作り方によってアプリケーション 
のカバー範囲が変わる 
(柔軟性があるという長所でもある) 
LinkedDataを支える実装技術 = セマンティックWeb(RDF,OWL,etc.) 
0111010001010101011101… 
0111010001010101011101 … 
0111010001010101011101 … 
raw data 
Image, 
Audio/Movie, 
Text, (HTML).. 
media data
LinkedData と LinkedOpenData 
非構造データ 
構造化データ 
LinkedData 
LinkedData 
LinkedOpenData 
社外にも公開 
非公開 
① アプリケーションを横断してデータを利用可能にする形式としてLinkedDataを採用 
エクセル表 
RDB 
NoSQL 
Wordドキュメント 
PDF 
生ログ 
POSデータ 
Webページ, REST-API(JSON/XML) 
② 経営戦略上のメリット・デメリットを勘案した上で、一部をLinkedOpenDataとして公開 
「LinkedCloseData」としてデータを蓄積しておくことで 
後々の社内外における様々な利活用が見込める 
LinkedCloseData 
アプリケーションとデータの間が疎結合になることで大きなメリットがある
RDFとは何か(1) 
・リソースを記述するフォーマット(Resource Description Format) 
RSS = RDF Site Script : RSSはRDFで記述したWebサイトのメタデータ 
・有向グラフのノードとエッジに型と名前が付いたようなもの 
例) ドラえもんワールド 
機能 
空中 飛行 
ひみつ道具 
ドラえもん 
ロボット 
どこでもドア 
タケコプター 
のび太 
ジャイアン 
しずかちゃん 
スネ夫 
男 
女 
性別 
性別 
性別 
性別 
友達 
友達・同級生 
友達・同級生 
友達・同級生 
小学生 
is-a 
is-a 
is-a 
is-a 
搭載 
瞬間 
移動 
搭載 
搭載
RDFとは何か(2) 
・ノード – エッジ – ノード という3つ組のことをRDFトリプル(Triple)と呼ぶ 
例) 
のび太 
小学生 
is-a 
= 「のび太は小学生である」 
(人間の言葉でいうところの「文」に相当する) 
・グラフ全体(=RDF文書)は、RDFトリプルの集合(=文の集合)として表現できる 
機 能 
空 中 飛 行 
ひみつ 道具 
ドラえも ん 
ロボット 
どこでも ドア 
タケコプ ター 
のび太 
ジャイア ン 
しずか ちゃん 
スネ 夫 
男 
女 
性別 
性別 
性別 
性別 
友達 
友達・同級生 
友達・同級生 
友達・同級生 
小学 生 
is-a 
is-a 
is-a 
is-a 
搭載 
瞬 間 
移 動 
搭載 
搭載 
例) 
のび太 
小学生 
is-a 
のび太 
ドラえもん 
友達 
… 
・RDFは文と文書に相当する。 
- トリプルだけで記述するため、人間の言葉のような複雑な文法が無い。 
さて、ノード名「のび太」「ドラえもん」「ひみつ道具」や、エッジ名「友達」「性別」等 の「用語」をどう定義するか? → 次のスライド 
文の集合 
文書
RDFとは何か(3) 
・ノード名、エッジ名はURIとして記述する 
例) 
のび太 
小学生 
is-a 
実際のRDFの例) 
<rdf:RDF 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:doraemon=“http://dora-world.com/#” /> 
<rdf:Description rdf:about=“http://dora-world.com/#のび太"> 
<doraemon:isa> 
<rdf:Description rdf:about="http://dora-world.com/#小学生"> 
</doraemon:isa> 
</rdf:Description> 
</rdf:RDF> 
・上の例では、「のび太」や「小学生」は http://dora-world.com/# という名前空間で 
ローカルに一意な用語として定義している。 
・したがって、同じ用語は名前空間の数だけ存在しうる。(A社の佐藤さんとB社の佐藤さん、みたいに) 
→ よく使う用語の意味はなるべくグローバルに定義して共通に使いたい! 
(次スライドへ) 
参考) IRIについて 
URIが日本語を含む場合、URIエンコーディングが必要となる。 
(URI文字列自体はAscii文字列である必要があるため) 
そのためXMLで日本語を使った場合、URIがXMLの文字コードに依存してしまい 
仕様外の利用になってしまう。 
→ そこで、RDFでは実際にはURIではなく、 
IRI (= URIを国際化対応文字をエンコーディング可能にしたもの) 
という形式でノード名、エッジ名を記述することになっている。
定義済みの用語とメタ情報階層 
・FOAF : ソーシャルグラフを記述するための用語 
・DublinCore : 文書のメタ情報を記述するための用語 
・RDFS: クラス継承関係、プロパティなどの構造を記述するための用語 
・OWL: 用語の意味構造をRDFSよりも柔軟に定義するための用語 
このように、RDFでデータを記述することにより、実体とメタ情報、メタ情報の 
メタ情報、といったメタ情報の階層を自由に行き来する情報表現を行うことが 
可能になる。 
上の例ではFOAFやDCは「意味を定義済みの用語」に相当するが、RDFSやOWLは 
「用語(すなわちボキャブラリ)の意味構造を定義可能にする」目的で定義されている。 
RDFS, OWL 
個々の 
実体データ 
を記述する 
RDF文書 
(個体) 
用語の意味を 
記述する 
RDF文書 
(ボキャブラリ) 
ボキャブラリ 
個体・ファクト 
それぞれ 
URI名前空間が 
定義されている
RDFS : RDFスキーマ 
・いわゆる「オブジェクト指向言語」のクラスとプロパティのような構造を 
記述するための用語 
(RDFスキーマの使用例) 
のび太 
小学生 
rdf:type 
ドラえもん 
ロボット 
rdf:type 
友達 
rdf:Property 
友達 
rdf:type 
rdfs:Class 
友愛対象 
人間 
rdfs:subClassOf 
rdfs:subClassOf 
rdf:type 
rdfs:domains, rdfs:range 
(エッジの始点と終点に取りうるクラスを制約できる) 
ボキャブラリ 
個体 / ファクト 
RDFS内で定義済 
このようにボキャブラリと個体・ファクトは一つのRDF文書で一緒に記述することも可能だが 
ボキャブラリを独立したRDF文書として予め定義して使いまわすことにより、意味が定義済の 
用語を使って対象データを簡潔に表現できるようになる 
ボキャブラリのおかげで個体・ファクトの記述は簡潔 
ちなみにRDFSは多重継承が可能 
rdfs:subClassOf
RDFスキーマにおける推論 
・RDFSで記述したボキャブラリ及び個体・ファクトのデータには、 
RDFS向けに作られている「推論エンジン(ReasonerとかInference Engineとか呼ばれる)」 
を使って、知識を推論できる 
推論 = 「記述していないRDFトリプルを自動的に追加する」タスク 
例えば前スライドのRDF文書には、「のび太は人間である」を意味する以下のRDFトリプルが 
記述されていないが、のび太は小学生のインスタンスで、小学生は人間のサブクラスである 
ことから推論可能。 
オブジェクト指向をサポートするプログラミング言語では当たり前にできることなので、 
一見あまり便利な気がしない。しかしこの推論機能があるおかげで、ボキャブラリ ・ 
個体・ファクト共に「必要最小限のこと」だけを簡潔に記述できるようになる。 
(実際に知識記述をしてみると、このメリットは思いのほか大きい。) 
のび太 
人間 
rdf:type 
参考) forward chaining と backward chaining について 
上記のように、推論タスクは明示的に記述されていないRDFトリプルをシステムが追加するタスクに相当する。 
その際、追加のタイミングについて2つの考え方がある。 
一つ目は、「のび太は人間か?」と聞かれる前に予めそのRDFトリプルをRDF文書内に追加しておく方法で、 
forward chainingと呼ばれる。 
二つめは、その逆で、「のび太は人間か?」と聞かれたときに推論エンジンで該当部分の推論を行う方法で、 
backward chainingと呼ばれる。 
前者は実行効率は良いがメモリ・ストレージの効率が悪く、後者はその逆となる。
OWL : Webオントロジー言語 
・RDFSのクラスとプロパティの機能に加えて、さらに以下を可能にしたもの 
- クラスの集合演算(and or not) 
- 2つのクラスが一致する、全く共通部分なし、などの記述 
- enum型のように個体を集めて一つのクラスとすること 
- プロパティの値制約(RDFSはクラス制約までしかできない) 
- 個体・ファクトどうしが別実体であることの記述 
例) 
ロボット 
猫 
猫型 
ロボット 
ロボット owl:and 猫 
rdfs:subClassOf 
rdfs:subClassOf 
owl:equivalentClass 
多重継承との違いに注意。 
「猫であってロボットでないもの」は 
「猫型ロボット」に属さない。 
ドラえもん 
ドラミちゃん 
RDFSと同様に、OWLも予めボキャブラリを定義しそれを再利用することで、 
複雑なドメイン知識を簡潔に記述できるようになる。 
また、推論エンジンもOWLの記述力に合わせて「あるクラスのインスタンスが 
存在しうるか?(充足可能性判定)」や「このインスタンスはこのクラスに所属 
するか?」といった推論(=RDFトリプルの存在判定タスク)が可能。
RDF / OWL関連の補足 
・RDFはXMLでシリアライズされるが、互換性のあるシリアライズ形式がいくつかある 
- Turtle, N-Triples, JSON-LD, N3 / Notation3 
- とくにOWL文書の場合も、常にRDF記述できるのでRDFシリアライザを利用可能だが 
OWL専用のシリアライズフォーマットも 関数構文、マンチェスター構文 などいくつかある 
→ 発表者は人間が読み書きしやすい Turtle が一番好きで使っている。 
・リテラル(文字列や数値といったオブジェクトじゃないプリミティブな値)は 
XMLSchemaDefinition(xsd)という名前空間で定義された用語を用いて記述する 
・OWL 1と2の違い 
OWLはバージョン1と2がある。2は1の上位互換で、以下の機能が追加される。 
- プロパティ連鎖 (母の兄弟は叔父、とか) 
- プロパティの条件付きカーディナリティ宣言 
(タイヤの数はバイクは2でクルマは4、とか) 
- 反射的プロパティや素のプロパティ 
(相手が婚約者ならば相手からみても婚約者、とか、 
母であることと父であることは両立しない、とか) 
・OWLはバージョンごとに目的別サブセットが存在 (主に記述力と実行効率のバランス目的) 
- OWL1 Lite, DL, Full 
DL=厳密な記述、Full=クラスを個体にできたりと少しゆるい、Lite=DLの簡易版 
- OWL2 EL, QL, RL 
EL: 大規模オントロジー向け、QL: SQL/RDB連携向け、RL: ルールエンジン連携向け
SPARQL : RDFクエリ言語 
・RDF文書(=RDFトリプルの集合)から、RDFトリプル(の集合)を検索したり 
挿入/書き換えしたりするためのクエリ言語 
・SPARQLでRDFトリプルの挿入クエリとして使う場合の推論エンジンとの違いは、 
論理的な整合性など関係なく単純な条件一致でRDFトリプルを生成すること。 
・公開されているRDFデータベースにSPARQLインタフェースが付いたものは 
SPARQLエンドポイントと呼ばれ、 http://ja.dbpedia.org/sparql などが代表的。 
【SPARQLクエリの例】 :アフリカ諸国の首都のリストを返す 
独自に定義したボキャブラリ(クラスやプロパティ)を使って検索できるため、 
SQLでいうところのJOINの連鎖を何段も重ねるような処理を簡潔に記述できる 
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を参照
SWRL : セマンティックWebルール言語 
・SPARQLで実行出来るのはサブクエリでネストは出来るが基本は単発のクエリ式。 
・しかし、サブルーチン的にクエリを組み合わせたい。 
例)風が吹けば桶屋が儲かる 
例) 「同級生」プロパティは同値関係で、所属する学年度が同じ、と定義 
RDFS/OWL一般の推論エンジンではサポートできないドメイン固有の推論規則を記述 
することでボキャブラリの意味定義を深め、さらにRDF文書を簡潔に記述可能に。 
詳細はWikipediaを参照 
# 反射律。OWLのボキャブラリでも記述可能 
True → (?a 同級生 ?a) 
# 対称律。OWLでも記述可能 
(?a 同級生 ?b) → (?b 同級生 ?a) 
# 推移律。OWLでも記述可能 
(?a 同級生 ?b) (?b 同級生 ?c) → (?a 同級生 ?c) 
# ドメイン固有のルールのためOWL一般の推論だけでは実現不可能 
(?x 同級生 ?a) (?a is-a ?b) (?b subClassOf 学年度) → (?x is-a ?b) 
(PrologやDatalogのクエリのようなイメージ)
OSS紹介(1): Apache Jena 
・HP研究所からのOSSスピンアウト 
・Javaで実装されている 
・Maven Central Repositoryに登録済 
・RDFデータベースをサポート 
- TDBという独自の永続化方式 
- RDBバックエンド方式もサポート 
・OWL 1 をサポート 
・OWL 2 の推論はサポートしない 
(RDFストアとして読み書きは可能) 
・RDFS 推論エンジンを搭載 
・一般ルールエンジンを搭載 
・ Fuseki : REST-APIインタフェースを搭載 
・ SPARQL をサポート 
- ARQというグラフDB的な機能強化版 
https://jena.apache.org/ 
【発表者の所感】 
・企業での使用実績もあり、安定動作するようだ 
・ドキュメントがきちんと整備されていて、ハマりにくい。最初に試すにはおススメ。 
・RDFトリプルストア(RDFデータベース)としての性能も結構よさそう 
(ただし、後述のVirtuossoのほうがより採用されている)
OSS紹介(2): Virtuosso 
・OpenLinkSoftware社の製品 
・サポート付きは有償、サポートなしは無 償のデュアルライセンス 
・Dbpedia(後述)などSPARQLエンドポイン トでの採用数は恐らくトップ 
・RDFトリプルDBとしての性能、スケーラビ リティもネット上を見る限り評判が良い 
・OWLサポートは限定的 
・推論エンジンも簡単なところしか実装 
されてない 
http://virtuoso.openlinksw.com/ 
【発表者の所感】 
・なんといってもDbpediaでの採用実績が大きい。SPARQLエンドポイント立てるときは 
なにも考えずにこれ、で問題ない。 
・RDFS/OWLでの推論エンジンには期待できない。別途forward-chainingで 
RDFトリプルを用意しておき安定動作するRDFトリプルストア+SPARQLエンド 
ポイントとして使うのがよさそう。
OSS紹介(3):protege 
・スタンフォード大学の研究プロジェクト 
・OWLのGUIエディタとして定番 
・Javaで実装されている 
・OWLサポートはOWL1,2仕様に対する 
リファレンス実装であるOWLAPIライブラリ (後述)を利用している 
・推論エンジンやGUIウィジェットなどが 
プラガブルに追加できるようになっている 
- 推論エンジン: FaCT++, Helmit, Pellet 
- その他、数々のプラグイン 
・Web版も提供され、複数人での 
コラボレーション開発が可能 
http://protege.stanford.edu/ 
【発表者の所感】 
・GUIが便利で対応している推論エンジンも多く、人手でオントロジーを作成する 
際には不可欠。 
・リリース環境向けのサーバ機能は提供されていないので、作成したオントロジーを 
自分の製品に組み込む際は、OWLAPIライブラリまたはそのProtégéラッパーを使って 
自身で永続化等を行う必要がある。OWLAPIはファイル読み書きはサポートするが、 
トリプルストアに格納したい場合は別途JenaやVirtuossoと組み合わせるのがよさそう。
OSS紹介(4):OWLAPI 
・OWL1,2の仕様に対するリファレンス実装 
・RDF/OWLの様々なシリアライズ形式に対 応(ファイル読み書き) 
・推論エンジン向けインタフェース 
- FaCT++, HermiT, Pellet , Racer が対応 
・LGPL 
・Javaで実装されている 
・Maven Central Repositoryに登録済 
・OWLの仕様の実装を追及したライブラリ 
なので機能が豊富 
http://owlapi.sourceforge.net/ 
【発表者の所感】 
・自分のサービス内部でOWL2を使った処理を行いたい場合に使う感じ。 
RDFトリプルストアなどは提供されないが、色々なRDF/OWLファイル形式の 
読み書きに対応しているのでプロトタイプ開発時にはこれ単体でも十分。 
・JavaDoc読めばわかるけどドキュメントはApacheJena程は整備されてない。
OSS紹介(5):Sesami 
・セマンティックWeb技術全部入り 
・RDFトリプルストアからOWLサポートまで 
・これ一つで全ユースケースをカバーする ことを指向 
・Virtuosso等、他のシステムとの相互運用 
も結構サポートしている 
・Javaで実装されている 
・Mavenリポジトリに登録されている 
http://www.openrdf.org/ 
【発表者の所感】 
・サンプルコードを書いて試してみたが、完結したシステムとして使える万能選手 
という感じ。 
・ライブラリとして見たときに、OWLAPIと比べてオーバースペック感があり、発表者 
はまだsesamiはあまり使おうと思わない。 
・独自の機能追加をしたりせずRDFやOWLの仕様の通りにSPARQLや推論エンジン 
を使う場合は便利かもしれない。
OSS紹介(6):GoogleRefine / OpenRefine 
・RDF/OWL仕様を実装したものではなく、 
データの加工に特化したツール 
・元はGoogleのプロダクトだったが、 
OpenRefineという名前に変えてOSSとして 
スピンアウトした。 
・欠損データの処理や名寄せ、形式の 
統一などのクレンジングを効率的に行える 
・RDFエクステンションが提供されていて 
CSVファイルからRDFに半自動で大量に一 括変換が可能 
【発表者の所感】 
・このソフトは本日のこの勉強会のテーマ「非構造データの前処理」にもっとも 
適うOSSの紹介かと思います。RDF/OWLに限らず様々なデータのクレンジング 
を効率的に半自動でやるツールとして便利です。 
・LinkedData/セマンティックWebの観点では定義済のボキャブラリを使って 
RDFを大量に生成する場合のツールとして不可欠。 
https://code.google.com/p/google-refine/
OSS紹介(7):SUMO 上位オントロジー 
・システムではなく公開されているオントロ ジー(ボキャブラリの部分)の紹介です。 
・Wordnetというシソーラス(類義語ツリー) 
をベースにしたオントロジー。 
・元データはOWLではないがOWLバージョ ンがダウンロードできる。ただしデカい。 
・こうしたグローバルに使えるボキャブラリ を定義したオントロジーを上位オントロジー 
(UpperOntology)と呼ぶ。 
【発表者の所感】 
・上位オントロジーの中で最も有名と思われる 
・Wordnetの出来が良いためSUMOの出来もかなり良い 
・ただし元データがOWLじゃないので微妙に使いづらい(ファイル1つなので 
メモリに読み込めない) 
http://www.ontologyportal.org/
OSS紹介(8):YAGO 上位オントロジー 
・これもOSSの上位オントロジーです。 
・マックスプランク研究所という物理学ゆる ふわ勢たちが開発したもの。 
・クイズ番組Jeopardyで世界チャンピョン 
になったあのIBM Watsonで使われている 
オントロジーがこれ。 
・RDF/OWLで記述されているので LinkedData向き 
・WordNetからDbpedia、ほか、あらゆる情 報ソースから概念を取り込んで高いカバ レッジを持たせつつ知識の精度も落とさな いという高品質オントロジー。 
【発表者の所感】 
・本気で上位オントロジー使うなら事実上これしかない。 
・Q&Aシステムとして商用ローンチされたIBMのWatsonには搭載されているので、 
そういう方面の活用は性能が担保されているし、非構造データを構造化する際の 
関連付け先としてこれを使うというのも良さそう。 
・ただしデータ量がデカい。また英語なので日本語との対応付けなど追加の 
データが必要。 
YAGO: Yet Another Great Ontology
OSS紹介(9):gist7.0 上位オントロジー 
・ミニマリストのための上位オントロジー 
・SemanticArts社によるCreativeCommons 
ライセンスのプロダクト 
・軽いのでProtégéにさくっと読み込める 
・ボキャブラリを作るためのボキャブラリ 
でしかなく、具体的なデータについては 
なにも言及がない。 
・ドキュメントは動画が結構アップされてい る。 
【発表者の所感】 
・使っている概念がシンプルで、出来るだけMECEに近くなるように概念構成が 
組み立てられているので把握しやすく、使いやすい。 
・軽量で直観的な上位オントロジー。全部の概念を把握するのも簡単。 
(実際、発表者はgist7.0をprotégéで全部読みました) 
・知識のカバレッジよりもドメイン特化でセマンティックに動作する 
エンタープライズナレッジDBをスクラッチから作るような場合に向きそう。 
・あとはオントロジーを自分で独自に作ってみたいときにこれは出発点 
とするのは良いかもしれない。 
http://semanticarts.com/gist/
ソフトウェアアーキテクチャとの関係 
※ 発表者の個人的な見解です。 
・設定ファイル駆動からDSL駆動、そしてRDF/OWL駆動へ 
システム 
設定ファイル 
① 設定ファイル駆動。主に設定 変数を注入することでシステムの 振る舞いをカスタマイズ。 
システム 
DSL 
② DSL(ドメイン特化言語)駆動。 
システム内部の部品を組み合わ せるドメインロジックを注入。 
システム 
RDF/OWL 
③ RDF/OWL駆動。システム内部 
の機能をRDF/OWLで記述された ナレッジを見て動くように作ってお き、ナレッジ追加とともにシステム 
を賢くしていくことが可能に。 
DB 
DB 
DB 
機能 
機能 
部品 
部品 
部品 
ロジック 
パラメータ 
機能 
機能 
機能 
ナレッジ 
例) Webクローラ (口頭で説明)
機械学習・データマイニングとの関係 
※ 発表者の個人的な見解です。 
・「①処理対象のデータに関する知識」と、「②適用可能なアルゴリズム 
に関する知識」 をRDF/OWLで記述する。(他にも、「可視化手法の知識」など) 
0111010001010101011101… 
0111010001010101011101 … 
0111010001010101011101 … 
raw data 
Image, 
Audio/Movie, 
Text, (HTML).. 
media data 
①処理対象の非構造データ 
②アルゴリズムに関する知識 
非線形 
回帰 
教師あり 
分類 
rdfs:subClassOf 
rdfs:subClassOf 
ボキャブラリ 
rdfs:subClassOf 
アルゴリズムの性質を表すボキャブラリ 
RDF/OWL 
文書 
RDF/OWL 
文書 
教師なし 
システム 
参照 
参照 
参照 
適用可能な分析手法をシステムが自動的に判断し、加工、分析、レポーティング 
までをある程度まで人手を介すことなく実行できる可能性がある。 
記述 
記述
まとめ 
・セマンティックWeb技術が今後なぜ重要になるか理由を述べた。 
・RDF/OWL関連仕様についての概要説明とOSS実装の紹介をした。 
・RDF/OWLが既存のソフトウェアアーキテクチャやデータマイニング 
タスクとどう関わるのか、私見を述べた。 
一人で会社をやっています。ソフトウェアコンサルティング、受託 
開発、アルゴリズム開発、フィージビリティ検討等のご相談は 
isobe@adfive.net までお気軽にどうぞ。システム開発はスマホ 
アプリ、Web、データ分析、インフラまで幅広く対応可能です。 
ぜひRDF/OWLを活用して、非構造データを 
Available かつ Useful に蓄積して行きませんか? 
最後に宣伝を少し…

Contenu connexe

Tendances

Tendances (20)

LOD連続講義 第5回「LODの作り方・使い方」
LOD連続講義 第5回「LODの作り方・使い方」LOD連続講義 第5回「LODの作り方・使い方」
LOD連続講義 第5回「LODの作り方・使い方」
 
DBpedia Japaneseとは?
DBpedia Japaneseとは?DBpedia Japaneseとは?
DBpedia Japaneseとは?
 
セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5
 
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジー
 
Linked Open Data (LOD)の基礎講座
Linked Open Data (LOD)の基礎講座Linked Open Data (LOD)の基礎講座
Linked Open Data (LOD)の基礎講座
 
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
 
SPARQL入門
SPARQL入門SPARQL入門
SPARQL入門
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?
 
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
 
【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例
【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例
【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例
 
Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術
 
SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!
 
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
 
オープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズオープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズ
 
セマンティックWebとオントロジー:現状と将来展望
セマンティックWebとオントロジー:現状と将来展望 セマンティックWebとオントロジー:現状と将来展望
セマンティックWebとオントロジー:現状と将来展望
 

En vedette

コンセプトアイデア 1
コンセプトアイデア 1コンセプトアイデア 1
コンセプトアイデア 1
Jun Saeki
 
7th_LinkedData(20131008)
7th_LinkedData(20131008)7th_LinkedData(20131008)
7th_LinkedData(20131008)
真 岡本
 
オープンソースを用いたドローンの自律制御ソフトウェア技術
オープンソースを用いたドローンの自律制御ソフトウェア技術オープンソースを用いたドローンの自律制御ソフトウェア技術
オープンソースを用いたドローンの自律制御ソフトウェア技術
Masayuki Isobe
 

En vedette (20)

セマンティック・ウェブのためのRdf owl入門1&2章
セマンティック・ウェブのためのRdf owl入門1&2章セマンティック・ウェブのためのRdf owl入門1&2章
セマンティック・ウェブのためのRdf owl入門1&2章
 
LODを始めるにあたって「最初に試すとよい」ツールの紹介
LODを始めるにあたって「最初に試すとよい」ツールの紹介LODを始めるにあたって「最初に試すとよい」ツールの紹介
LODを始めるにあたって「最初に試すとよい」ツールの紹介
 
OWLで何が書けるか
OWLで何が書けるかOWLで何が書けるか
OWLで何が書けるか
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-
 
OWLで何が言えるか
OWLで何が言えるかOWLで何が言えるか
OWLで何が言えるか
 
Exploiting Linked Data via Filemaker
Exploiting Linked Data via FilemakerExploiting Linked Data via Filemaker
Exploiting Linked Data via Filemaker
 
コンセプトアイデア 1
コンセプトアイデア 1コンセプトアイデア 1
コンセプトアイデア 1
 
日本語Wikipediaオントロジーの構築および検索システムの実装
日本語Wikipediaオントロジーの構築および検索システムの実装日本語Wikipediaオントロジーの構築および検索システムの実装
日本語Wikipediaオントロジーの構築および検索システムの実装
 
LODで広がる オープンデータ活用の可能性
LODで広がるオープンデータ活用の可能性LODで広がるオープンデータ活用の可能性
LODで広がる オープンデータ活用の可能性
 
第5回AIツール入門講座 Linked Open Dataの現状とその活用
第5回AIツール入門講座 Linked Open Dataの現状とその活用第5回AIツール入門講座 Linked Open Dataの現状とその活用
第5回AIツール入門講座 Linked Open Dataの現状とその活用
 
Towards Database Integration Through RDF & Linked Data
Towards Database Integration Through RDF & Linked DataTowards Database Integration Through RDF & Linked Data
Towards Database Integration Through RDF & Linked Data
 
Linked Open Data(LOD)を用いた オープンデータの活用事例と今後の展望
Linked Open Data(LOD)を用いたオープンデータの活用事例と今後の展望Linked Open Data(LOD)を用いたオープンデータの活用事例と今後の展望
Linked Open Data(LOD)を用いた オープンデータの活用事例と今後の展望
 
Swc2013 yamamoto
Swc2013 yamamotoSwc2013 yamamoto
Swc2013 yamamoto
 
第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo
 
LODとメディア ニューヨークタイムズ最新事情
LODとメディア ニューヨークタイムズ最新事情LODとメディア ニューヨークタイムズ最新事情
LODとメディア ニューヨークタイムズ最新事情
 
Linked Data (再)入門
Linked Data (再)入門Linked Data (再)入門
Linked Data (再)入門
 
7th_LinkedData(20131008)
7th_LinkedData(20131008)7th_LinkedData(20131008)
7th_LinkedData(20131008)
 
オープンソースを用いたドローンの自律制御ソフトウェア技術
オープンソースを用いたドローンの自律制御ソフトウェア技術オープンソースを用いたドローンの自律制御ソフトウェア技術
オープンソースを用いたドローンの自律制御ソフトウェア技術
 
Rdf入門handout
Rdf入門handoutRdf入門handout
Rdf入門handout
 
逆マッシュアップの提唱
逆マッシュアップの提唱逆マッシュアップの提唱
逆マッシュアップの提唱
 

Similaire à RDF/OWLの概要及びOSS実装、及び活用イメージについて

セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
mettoboshi
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Fuyuko Matsumura
 

Similaire à RDF/OWLの概要及びOSS実装、及び活用イメージについて (20)

セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDB
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
 
1st LODandOntology studysession aboutRDF
1st LODandOntology studysession aboutRDF1st LODandOntology studysession aboutRDF
1st LODandOntology studysession aboutRDF
 
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
 
つながるデータShare
つながるデータShareつながるデータShare
つながるデータShare
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
 
5分でわかるRDFとLOD
5分でわかるRDFとLOD5分でわかるRDFとLOD
5分でわかるRDFとLOD
 
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
 
RDF をプロパティグラフに 変換するマッピング言語 G2GML
RDF をプロパティグラフに 変換するマッピング言語 G2GMLRDF をプロパティグラフに 変換するマッピング言語 G2GML
RDF をプロパティグラフに 変換するマッピング言語 G2GML
 
LinkData.orgを使ったRDF教育とデータ公開化運動の推進
LinkData.orgを使ったRDF教育とデータ公開化運動の推進LinkData.orgを使ったRDF教育とデータ公開化運動の推進
LinkData.orgを使ったRDF教育とデータ公開化運動の推進
 
オープンデータと Linked Open Data(LOD)
オープンデータとLinked Open Data(LOD)オープンデータとLinked Open Data(LOD)
オープンデータと Linked Open Data(LOD)
 
オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待
 
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
 
プログラムなしで公開できるLODアプリケーション
プログラムなしで公開できるLODアプリケーションプログラムなしで公開できるLODアプリケーション
プログラムなしで公開できるLODアプリケーション
 
書誌データのLOD化: データソン的デモンストレーション
書誌データのLOD化: データソン的デモンストレーション書誌データのLOD化: データソン的デモンストレーション
書誌データのLOD化: データソン的デモンストレーション
 
Linked Data in Japan/Semantic Conference In Japan 2010
Linked Data in Japan/Semantic Conference In Japan 2010Linked Data in Japan/Semantic Conference In Japan 2010
Linked Data in Japan/Semantic Conference In Japan 2010
 
Linked Data API Navi(LODチャレンジ2022)
Linked Data API Navi(LODチャレンジ2022)Linked Data API Navi(LODチャレンジ2022)
Linked Data API Navi(LODチャレンジ2022)
 
SPARQLアプリケーション開発
SPARQLアプリケーション開発SPARQLアプリケーション開発
SPARQLアプリケーション開発
 
異分野融合型の科学データ公開サイトLink data.org
異分野融合型の科学データ公開サイトLink data.org異分野融合型の科学データ公開サイトLink data.org
異分野融合型の科学データ公開サイトLink data.org
 

Plus de Masayuki Isobe

第二回機械学習アルゴリズム実装会 - LDA
第二回機械学習アルゴリズム実装会 - LDA第二回機械学習アルゴリズム実装会 - LDA
第二回機械学習アルゴリズム実装会 - LDA
Masayuki Isobe
 

Plus de Masayuki Isobe (20)

関数型プログラミングとモナド
関数型プログラミングとモナド関数型プログラミングとモナド
関数型プログラミングとモナド
 
ジャパンドローンセミナー
ジャパンドローンセミナージャパンドローンセミナー
ジャパンドローンセミナー
 
AIBOX DroneBrain 製品パンフレット
AIBOX DroneBrain 製品パンフレットAIBOX DroneBrain 製品パンフレット
AIBOX DroneBrain 製品パンフレット
 
ファイブソリューションズデベロッパーネットワーク
ファイブソリューションズデベロッパーネットワークファイブソリューションズデベロッパーネットワーク
ファイブソリューションズデベロッパーネットワーク
 
ドローン向けソフトウェア事業
ドローン向けソフトウェア事業ドローン向けソフトウェア事業
ドローン向けソフトウェア事業
 
第三回機械学習アルゴリズム実装会イントロダクション
第三回機械学習アルゴリズム実装会イントロダクション第三回機械学習アルゴリズム実装会イントロダクション
第三回機械学習アルゴリズム実装会イントロダクション
 
CasperJSを使って任意のWebサイトを電子書籍化する方法
CasperJSを使って任意のWebサイトを電子書籍化する方法CasperJSを使って任意のWebサイトを電子書籍化する方法
CasperJSを使って任意のWebサイトを電子書籍化する方法
 
ScrapyとPhantomJSを用いたスクレイピングDSL
ScrapyとPhantomJSを用いたスクレイピングDSLScrapyとPhantomJSを用いたスクレイピングDSL
ScrapyとPhantomJSを用いたスクレイピングDSL
 
第二回機械学習アルゴリズム実装会 - LDA
第二回機械学習アルゴリズム実装会 - LDA第二回機械学習アルゴリズム実装会 - LDA
第二回機械学習アルゴリズム実装会 - LDA
 
ブランディング指標の数値化について
ブランディング指標の数値化についてブランディング指標の数値化について
ブランディング指標の数値化について
 
TEDxTitech 2013 speech material
TEDxTitech 2013 speech materialTEDxTitech 2013 speech material
TEDxTitech 2013 speech material
 
Rec sys2013 reading_isobe
Rec sys2013 reading_isobeRec sys2013 reading_isobe
Rec sys2013 reading_isobe
 
広告ナビゲータ・広告シミュレータ
広告ナビゲータ・広告シミュレータ広告ナビゲータ・広告シミュレータ
広告ナビゲータ・広告シミュレータ
 
rzmq
rzmqrzmq
rzmq
 
Uuyアドテクセミナー
UuyアドテクセミナーUuyアドテクセミナー
Uuyアドテクセミナー
 
第12回モヤLT発表資料
第12回モヤLT発表資料第12回モヤLT発表資料
第12回モヤLT発表資料
 
Tokyo.R 26 LT isobe
Tokyo.R 26 LT isobeTokyo.R 26 LT isobe
Tokyo.R 26 LT isobe
 
Tokyo r 25_lt_isobe
Tokyo r 25_lt_isobeTokyo r 25_lt_isobe
Tokyo r 25_lt_isobe
 
Tokyo.R #22 LT
Tokyo.R #22 LTTokyo.R #22 LT
Tokyo.R #22 LT
 
Tokyo.R #19 発表資料 「Rで色々やってみました」
Tokyo.R #19 発表資料 「Rで色々やってみました」Tokyo.R #19 発表資料 「Rで色々やってみました」
Tokyo.R #19 発表資料 「Rで色々やってみました」
 

Dernier

Dernier (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

RDF/OWLの概要及びOSS実装、及び活用イメージについて

  • 2. 0111010001010101011101… (1) LinkedOpenData 勃興の確かな兆し (2) スマホファーストとネイティブアプリ化 (3) 次なるITの開拓地 「Internet Of Things」 今後セマンティックWeb技術が不可欠となる3つの根拠 2014/8/30現在 2007/9 20011/9 Cloud Servers not HTML but JSON not Browser but Apps アプリが扱うJSON のデータ形式の数 >> DBのテーブル数 ?? 「データ自体が 社会インフラ」 になるという パラダイムシフト 0111010001010101011101 … 0111010001010101011101 … raw data infinite online sensor devices DB ? enables various IoT applications to make sense 生データと アプリケーションを つなぐ柔軟な 中間データ形式 の必要性 IoT Apps
  • 3. 「非構造データ」 「構造化データ」 「LinkedData」 非構造と構造の間をカバーするLinkedData 利点 ・データ生成コストが低い ・1次情報としての完全性 欠点 ・データ量が多い ・アプリケーションで 直接使えない 利点 ・アプリケーションで直接使える ・必要なデータのみ保持する 欠点 ・想定用途でしか使えない ・アプリケーション間での 相互利用は通常困難 ・データ作成にコストが掛かる 利点 ・想定してない用途をカバーできる ・アプリケーション間で相互利用可能 ・生データより量が少ない 欠点 ・データ作成にコストが掛かる ・作り方によってアプリケーション のカバー範囲が変わる (柔軟性があるという長所でもある) LinkedDataを支える実装技術 = セマンティックWeb(RDF,OWL,etc.) 0111010001010101011101… 0111010001010101011101 … 0111010001010101011101 … raw data Image, Audio/Movie, Text, (HTML).. media data
  • 4. LinkedData と LinkedOpenData 非構造データ 構造化データ LinkedData LinkedData LinkedOpenData 社外にも公開 非公開 ① アプリケーションを横断してデータを利用可能にする形式としてLinkedDataを採用 エクセル表 RDB NoSQL Wordドキュメント PDF 生ログ POSデータ Webページ, REST-API(JSON/XML) ② 経営戦略上のメリット・デメリットを勘案した上で、一部をLinkedOpenDataとして公開 「LinkedCloseData」としてデータを蓄積しておくことで 後々の社内外における様々な利活用が見込める LinkedCloseData アプリケーションとデータの間が疎結合になることで大きなメリットがある
  • 5. RDFとは何か(1) ・リソースを記述するフォーマット(Resource Description Format) RSS = RDF Site Script : RSSはRDFで記述したWebサイトのメタデータ ・有向グラフのノードとエッジに型と名前が付いたようなもの 例) ドラえもんワールド 機能 空中 飛行 ひみつ道具 ドラえもん ロボット どこでもドア タケコプター のび太 ジャイアン しずかちゃん スネ夫 男 女 性別 性別 性別 性別 友達 友達・同級生 友達・同級生 友達・同級生 小学生 is-a is-a is-a is-a 搭載 瞬間 移動 搭載 搭載
  • 6. RDFとは何か(2) ・ノード – エッジ – ノード という3つ組のことをRDFトリプル(Triple)と呼ぶ 例) のび太 小学生 is-a = 「のび太は小学生である」 (人間の言葉でいうところの「文」に相当する) ・グラフ全体(=RDF文書)は、RDFトリプルの集合(=文の集合)として表現できる 機 能 空 中 飛 行 ひみつ 道具 ドラえも ん ロボット どこでも ドア タケコプ ター のび太 ジャイア ン しずか ちゃん スネ 夫 男 女 性別 性別 性別 性別 友達 友達・同級生 友達・同級生 友達・同級生 小学 生 is-a is-a is-a is-a 搭載 瞬 間 移 動 搭載 搭載 例) のび太 小学生 is-a のび太 ドラえもん 友達 … ・RDFは文と文書に相当する。 - トリプルだけで記述するため、人間の言葉のような複雑な文法が無い。 さて、ノード名「のび太」「ドラえもん」「ひみつ道具」や、エッジ名「友達」「性別」等 の「用語」をどう定義するか? → 次のスライド 文の集合 文書
  • 7. RDFとは何か(3) ・ノード名、エッジ名はURIとして記述する 例) のび太 小学生 is-a 実際のRDFの例) <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:doraemon=“http://dora-world.com/#” /> <rdf:Description rdf:about=“http://dora-world.com/#のび太"> <doraemon:isa> <rdf:Description rdf:about="http://dora-world.com/#小学生"> </doraemon:isa> </rdf:Description> </rdf:RDF> ・上の例では、「のび太」や「小学生」は http://dora-world.com/# という名前空間で ローカルに一意な用語として定義している。 ・したがって、同じ用語は名前空間の数だけ存在しうる。(A社の佐藤さんとB社の佐藤さん、みたいに) → よく使う用語の意味はなるべくグローバルに定義して共通に使いたい! (次スライドへ) 参考) IRIについて URIが日本語を含む場合、URIエンコーディングが必要となる。 (URI文字列自体はAscii文字列である必要があるため) そのためXMLで日本語を使った場合、URIがXMLの文字コードに依存してしまい 仕様外の利用になってしまう。 → そこで、RDFでは実際にはURIではなく、 IRI (= URIを国際化対応文字をエンコーディング可能にしたもの) という形式でノード名、エッジ名を記述することになっている。
  • 8. 定義済みの用語とメタ情報階層 ・FOAF : ソーシャルグラフを記述するための用語 ・DublinCore : 文書のメタ情報を記述するための用語 ・RDFS: クラス継承関係、プロパティなどの構造を記述するための用語 ・OWL: 用語の意味構造をRDFSよりも柔軟に定義するための用語 このように、RDFでデータを記述することにより、実体とメタ情報、メタ情報の メタ情報、といったメタ情報の階層を自由に行き来する情報表現を行うことが 可能になる。 上の例ではFOAFやDCは「意味を定義済みの用語」に相当するが、RDFSやOWLは 「用語(すなわちボキャブラリ)の意味構造を定義可能にする」目的で定義されている。 RDFS, OWL 個々の 実体データ を記述する RDF文書 (個体) 用語の意味を 記述する RDF文書 (ボキャブラリ) ボキャブラリ 個体・ファクト それぞれ URI名前空間が 定義されている
  • 9. RDFS : RDFスキーマ ・いわゆる「オブジェクト指向言語」のクラスとプロパティのような構造を 記述するための用語 (RDFスキーマの使用例) のび太 小学生 rdf:type ドラえもん ロボット rdf:type 友達 rdf:Property 友達 rdf:type rdfs:Class 友愛対象 人間 rdfs:subClassOf rdfs:subClassOf rdf:type rdfs:domains, rdfs:range (エッジの始点と終点に取りうるクラスを制約できる) ボキャブラリ 個体 / ファクト RDFS内で定義済 このようにボキャブラリと個体・ファクトは一つのRDF文書で一緒に記述することも可能だが ボキャブラリを独立したRDF文書として予め定義して使いまわすことにより、意味が定義済の 用語を使って対象データを簡潔に表現できるようになる ボキャブラリのおかげで個体・ファクトの記述は簡潔 ちなみにRDFSは多重継承が可能 rdfs:subClassOf
  • 10. RDFスキーマにおける推論 ・RDFSで記述したボキャブラリ及び個体・ファクトのデータには、 RDFS向けに作られている「推論エンジン(ReasonerとかInference Engineとか呼ばれる)」 を使って、知識を推論できる 推論 = 「記述していないRDFトリプルを自動的に追加する」タスク 例えば前スライドのRDF文書には、「のび太は人間である」を意味する以下のRDFトリプルが 記述されていないが、のび太は小学生のインスタンスで、小学生は人間のサブクラスである ことから推論可能。 オブジェクト指向をサポートするプログラミング言語では当たり前にできることなので、 一見あまり便利な気がしない。しかしこの推論機能があるおかげで、ボキャブラリ ・ 個体・ファクト共に「必要最小限のこと」だけを簡潔に記述できるようになる。 (実際に知識記述をしてみると、このメリットは思いのほか大きい。) のび太 人間 rdf:type 参考) forward chaining と backward chaining について 上記のように、推論タスクは明示的に記述されていないRDFトリプルをシステムが追加するタスクに相当する。 その際、追加のタイミングについて2つの考え方がある。 一つ目は、「のび太は人間か?」と聞かれる前に予めそのRDFトリプルをRDF文書内に追加しておく方法で、 forward chainingと呼ばれる。 二つめは、その逆で、「のび太は人間か?」と聞かれたときに推論エンジンで該当部分の推論を行う方法で、 backward chainingと呼ばれる。 前者は実行効率は良いがメモリ・ストレージの効率が悪く、後者はその逆となる。
  • 11. OWL : Webオントロジー言語 ・RDFSのクラスとプロパティの機能に加えて、さらに以下を可能にしたもの - クラスの集合演算(and or not) - 2つのクラスが一致する、全く共通部分なし、などの記述 - enum型のように個体を集めて一つのクラスとすること - プロパティの値制約(RDFSはクラス制約までしかできない) - 個体・ファクトどうしが別実体であることの記述 例) ロボット 猫 猫型 ロボット ロボット owl:and 猫 rdfs:subClassOf rdfs:subClassOf owl:equivalentClass 多重継承との違いに注意。 「猫であってロボットでないもの」は 「猫型ロボット」に属さない。 ドラえもん ドラミちゃん RDFSと同様に、OWLも予めボキャブラリを定義しそれを再利用することで、 複雑なドメイン知識を簡潔に記述できるようになる。 また、推論エンジンもOWLの記述力に合わせて「あるクラスのインスタンスが 存在しうるか?(充足可能性判定)」や「このインスタンスはこのクラスに所属 するか?」といった推論(=RDFトリプルの存在判定タスク)が可能。
  • 12. RDF / OWL関連の補足 ・RDFはXMLでシリアライズされるが、互換性のあるシリアライズ形式がいくつかある - Turtle, N-Triples, JSON-LD, N3 / Notation3 - とくにOWL文書の場合も、常にRDF記述できるのでRDFシリアライザを利用可能だが OWL専用のシリアライズフォーマットも 関数構文、マンチェスター構文 などいくつかある → 発表者は人間が読み書きしやすい Turtle が一番好きで使っている。 ・リテラル(文字列や数値といったオブジェクトじゃないプリミティブな値)は XMLSchemaDefinition(xsd)という名前空間で定義された用語を用いて記述する ・OWL 1と2の違い OWLはバージョン1と2がある。2は1の上位互換で、以下の機能が追加される。 - プロパティ連鎖 (母の兄弟は叔父、とか) - プロパティの条件付きカーディナリティ宣言 (タイヤの数はバイクは2でクルマは4、とか) - 反射的プロパティや素のプロパティ (相手が婚約者ならば相手からみても婚約者、とか、 母であることと父であることは両立しない、とか) ・OWLはバージョンごとに目的別サブセットが存在 (主に記述力と実行効率のバランス目的) - OWL1 Lite, DL, Full DL=厳密な記述、Full=クラスを個体にできたりと少しゆるい、Lite=DLの簡易版 - OWL2 EL, QL, RL EL: 大規模オントロジー向け、QL: SQL/RDB連携向け、RL: ルールエンジン連携向け
  • 13. SPARQL : RDFクエリ言語 ・RDF文書(=RDFトリプルの集合)から、RDFトリプル(の集合)を検索したり 挿入/書き換えしたりするためのクエリ言語 ・SPARQLでRDFトリプルの挿入クエリとして使う場合の推論エンジンとの違いは、 論理的な整合性など関係なく単純な条件一致でRDFトリプルを生成すること。 ・公開されているRDFデータベースにSPARQLインタフェースが付いたものは SPARQLエンドポイントと呼ばれ、 http://ja.dbpedia.org/sparql などが代表的。 【SPARQLクエリの例】 :アフリカ諸国の首都のリストを返す 独自に定義したボキャブラリ(クラスやプロパティ)を使って検索できるため、 SQLでいうところのJOINの連鎖を何段も重ねるような処理を簡潔に記述できる 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を参照
  • 14. SWRL : セマンティックWebルール言語 ・SPARQLで実行出来るのはサブクエリでネストは出来るが基本は単発のクエリ式。 ・しかし、サブルーチン的にクエリを組み合わせたい。 例)風が吹けば桶屋が儲かる 例) 「同級生」プロパティは同値関係で、所属する学年度が同じ、と定義 RDFS/OWL一般の推論エンジンではサポートできないドメイン固有の推論規則を記述 することでボキャブラリの意味定義を深め、さらにRDF文書を簡潔に記述可能に。 詳細はWikipediaを参照 # 反射律。OWLのボキャブラリでも記述可能 True → (?a 同級生 ?a) # 対称律。OWLでも記述可能 (?a 同級生 ?b) → (?b 同級生 ?a) # 推移律。OWLでも記述可能 (?a 同級生 ?b) (?b 同級生 ?c) → (?a 同級生 ?c) # ドメイン固有のルールのためOWL一般の推論だけでは実現不可能 (?x 同級生 ?a) (?a is-a ?b) (?b subClassOf 学年度) → (?x is-a ?b) (PrologやDatalogのクエリのようなイメージ)
  • 15. OSS紹介(1): Apache Jena ・HP研究所からのOSSスピンアウト ・Javaで実装されている ・Maven Central Repositoryに登録済 ・RDFデータベースをサポート - TDBという独自の永続化方式 - RDBバックエンド方式もサポート ・OWL 1 をサポート ・OWL 2 の推論はサポートしない (RDFストアとして読み書きは可能) ・RDFS 推論エンジンを搭載 ・一般ルールエンジンを搭載 ・ Fuseki : REST-APIインタフェースを搭載 ・ SPARQL をサポート - ARQというグラフDB的な機能強化版 https://jena.apache.org/ 【発表者の所感】 ・企業での使用実績もあり、安定動作するようだ ・ドキュメントがきちんと整備されていて、ハマりにくい。最初に試すにはおススメ。 ・RDFトリプルストア(RDFデータベース)としての性能も結構よさそう (ただし、後述のVirtuossoのほうがより採用されている)
  • 16. OSS紹介(2): Virtuosso ・OpenLinkSoftware社の製品 ・サポート付きは有償、サポートなしは無 償のデュアルライセンス ・Dbpedia(後述)などSPARQLエンドポイン トでの採用数は恐らくトップ ・RDFトリプルDBとしての性能、スケーラビ リティもネット上を見る限り評判が良い ・OWLサポートは限定的 ・推論エンジンも簡単なところしか実装 されてない http://virtuoso.openlinksw.com/ 【発表者の所感】 ・なんといってもDbpediaでの採用実績が大きい。SPARQLエンドポイント立てるときは なにも考えずにこれ、で問題ない。 ・RDFS/OWLでの推論エンジンには期待できない。別途forward-chainingで RDFトリプルを用意しておき安定動作するRDFトリプルストア+SPARQLエンド ポイントとして使うのがよさそう。
  • 17. OSS紹介(3):protege ・スタンフォード大学の研究プロジェクト ・OWLのGUIエディタとして定番 ・Javaで実装されている ・OWLサポートはOWL1,2仕様に対する リファレンス実装であるOWLAPIライブラリ (後述)を利用している ・推論エンジンやGUIウィジェットなどが プラガブルに追加できるようになっている - 推論エンジン: FaCT++, Helmit, Pellet - その他、数々のプラグイン ・Web版も提供され、複数人での コラボレーション開発が可能 http://protege.stanford.edu/ 【発表者の所感】 ・GUIが便利で対応している推論エンジンも多く、人手でオントロジーを作成する 際には不可欠。 ・リリース環境向けのサーバ機能は提供されていないので、作成したオントロジーを 自分の製品に組み込む際は、OWLAPIライブラリまたはそのProtégéラッパーを使って 自身で永続化等を行う必要がある。OWLAPIはファイル読み書きはサポートするが、 トリプルストアに格納したい場合は別途JenaやVirtuossoと組み合わせるのがよさそう。
  • 18. OSS紹介(4):OWLAPI ・OWL1,2の仕様に対するリファレンス実装 ・RDF/OWLの様々なシリアライズ形式に対 応(ファイル読み書き) ・推論エンジン向けインタフェース - FaCT++, HermiT, Pellet , Racer が対応 ・LGPL ・Javaで実装されている ・Maven Central Repositoryに登録済 ・OWLの仕様の実装を追及したライブラリ なので機能が豊富 http://owlapi.sourceforge.net/ 【発表者の所感】 ・自分のサービス内部でOWL2を使った処理を行いたい場合に使う感じ。 RDFトリプルストアなどは提供されないが、色々なRDF/OWLファイル形式の 読み書きに対応しているのでプロトタイプ開発時にはこれ単体でも十分。 ・JavaDoc読めばわかるけどドキュメントはApacheJena程は整備されてない。
  • 19. OSS紹介(5):Sesami ・セマンティックWeb技術全部入り ・RDFトリプルストアからOWLサポートまで ・これ一つで全ユースケースをカバーする ことを指向 ・Virtuosso等、他のシステムとの相互運用 も結構サポートしている ・Javaで実装されている ・Mavenリポジトリに登録されている http://www.openrdf.org/ 【発表者の所感】 ・サンプルコードを書いて試してみたが、完結したシステムとして使える万能選手 という感じ。 ・ライブラリとして見たときに、OWLAPIと比べてオーバースペック感があり、発表者 はまだsesamiはあまり使おうと思わない。 ・独自の機能追加をしたりせずRDFやOWLの仕様の通りにSPARQLや推論エンジン を使う場合は便利かもしれない。
  • 20. OSS紹介(6):GoogleRefine / OpenRefine ・RDF/OWL仕様を実装したものではなく、 データの加工に特化したツール ・元はGoogleのプロダクトだったが、 OpenRefineという名前に変えてOSSとして スピンアウトした。 ・欠損データの処理や名寄せ、形式の 統一などのクレンジングを効率的に行える ・RDFエクステンションが提供されていて CSVファイルからRDFに半自動で大量に一 括変換が可能 【発表者の所感】 ・このソフトは本日のこの勉強会のテーマ「非構造データの前処理」にもっとも 適うOSSの紹介かと思います。RDF/OWLに限らず様々なデータのクレンジング を効率的に半自動でやるツールとして便利です。 ・LinkedData/セマンティックWebの観点では定義済のボキャブラリを使って RDFを大量に生成する場合のツールとして不可欠。 https://code.google.com/p/google-refine/
  • 21. OSS紹介(7):SUMO 上位オントロジー ・システムではなく公開されているオントロ ジー(ボキャブラリの部分)の紹介です。 ・Wordnetというシソーラス(類義語ツリー) をベースにしたオントロジー。 ・元データはOWLではないがOWLバージョ ンがダウンロードできる。ただしデカい。 ・こうしたグローバルに使えるボキャブラリ を定義したオントロジーを上位オントロジー (UpperOntology)と呼ぶ。 【発表者の所感】 ・上位オントロジーの中で最も有名と思われる ・Wordnetの出来が良いためSUMOの出来もかなり良い ・ただし元データがOWLじゃないので微妙に使いづらい(ファイル1つなので メモリに読み込めない) http://www.ontologyportal.org/
  • 22. OSS紹介(8):YAGO 上位オントロジー ・これもOSSの上位オントロジーです。 ・マックスプランク研究所という物理学ゆる ふわ勢たちが開発したもの。 ・クイズ番組Jeopardyで世界チャンピョン になったあのIBM Watsonで使われている オントロジーがこれ。 ・RDF/OWLで記述されているので LinkedData向き ・WordNetからDbpedia、ほか、あらゆる情 報ソースから概念を取り込んで高いカバ レッジを持たせつつ知識の精度も落とさな いという高品質オントロジー。 【発表者の所感】 ・本気で上位オントロジー使うなら事実上これしかない。 ・Q&Aシステムとして商用ローンチされたIBMのWatsonには搭載されているので、 そういう方面の活用は性能が担保されているし、非構造データを構造化する際の 関連付け先としてこれを使うというのも良さそう。 ・ただしデータ量がデカい。また英語なので日本語との対応付けなど追加の データが必要。 YAGO: Yet Another Great Ontology
  • 23. OSS紹介(9):gist7.0 上位オントロジー ・ミニマリストのための上位オントロジー ・SemanticArts社によるCreativeCommons ライセンスのプロダクト ・軽いのでProtégéにさくっと読み込める ・ボキャブラリを作るためのボキャブラリ でしかなく、具体的なデータについては なにも言及がない。 ・ドキュメントは動画が結構アップされてい る。 【発表者の所感】 ・使っている概念がシンプルで、出来るだけMECEに近くなるように概念構成が 組み立てられているので把握しやすく、使いやすい。 ・軽量で直観的な上位オントロジー。全部の概念を把握するのも簡単。 (実際、発表者はgist7.0をprotégéで全部読みました) ・知識のカバレッジよりもドメイン特化でセマンティックに動作する エンタープライズナレッジDBをスクラッチから作るような場合に向きそう。 ・あとはオントロジーを自分で独自に作ってみたいときにこれは出発点 とするのは良いかもしれない。 http://semanticarts.com/gist/
  • 24. ソフトウェアアーキテクチャとの関係 ※ 発表者の個人的な見解です。 ・設定ファイル駆動からDSL駆動、そしてRDF/OWL駆動へ システム 設定ファイル ① 設定ファイル駆動。主に設定 変数を注入することでシステムの 振る舞いをカスタマイズ。 システム DSL ② DSL(ドメイン特化言語)駆動。 システム内部の部品を組み合わ せるドメインロジックを注入。 システム RDF/OWL ③ RDF/OWL駆動。システム内部 の機能をRDF/OWLで記述された ナレッジを見て動くように作ってお き、ナレッジ追加とともにシステム を賢くしていくことが可能に。 DB DB DB 機能 機能 部品 部品 部品 ロジック パラメータ 機能 機能 機能 ナレッジ 例) Webクローラ (口頭で説明)
  • 25. 機械学習・データマイニングとの関係 ※ 発表者の個人的な見解です。 ・「①処理対象のデータに関する知識」と、「②適用可能なアルゴリズム に関する知識」 をRDF/OWLで記述する。(他にも、「可視化手法の知識」など) 0111010001010101011101… 0111010001010101011101 … 0111010001010101011101 … raw data Image, Audio/Movie, Text, (HTML).. media data ①処理対象の非構造データ ②アルゴリズムに関する知識 非線形 回帰 教師あり 分類 rdfs:subClassOf rdfs:subClassOf ボキャブラリ rdfs:subClassOf アルゴリズムの性質を表すボキャブラリ RDF/OWL 文書 RDF/OWL 文書 教師なし システム 参照 参照 参照 適用可能な分析手法をシステムが自動的に判断し、加工、分析、レポーティング までをある程度まで人手を介すことなく実行できる可能性がある。 記述 記述
  • 26. まとめ ・セマンティックWeb技術が今後なぜ重要になるか理由を述べた。 ・RDF/OWL関連仕様についての概要説明とOSS実装の紹介をした。 ・RDF/OWLが既存のソフトウェアアーキテクチャやデータマイニング タスクとどう関わるのか、私見を述べた。 一人で会社をやっています。ソフトウェアコンサルティング、受託 開発、アルゴリズム開発、フィージビリティ検討等のご相談は isobe@adfive.net までお気軽にどうぞ。システム開発はスマホ アプリ、Web、データ分析、インフラまで幅広く対応可能です。 ぜひRDF/OWLを活用して、非構造データを Available かつ Useful に蓄積して行きませんか? 最後に宣伝を少し…