Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
オントロジーエディタ
protégéを使う
山本泰智 (@yayamamo)
ライフサイエンス統合データベースセンター

Rev. Ver. 20131017.0
今日のお題

Linked Dataを文字通り「繋ぐ」ために必要な仕組みを紹介
ウェブ上のデータを繋ぐ

は共通語彙

それをここではオントロジーと呼び、オントロジーを作る
方法を紹介

第7回LinkedData勉強会 10/8 @ インフォ...
非常口

扉の属性として、「非常口」という文字か、「人の走り出
る絵」のどちらがより広く再利用され、共有され易いか
第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
ウェブ上のデータ
様々な人々、組織が自由に作るデータ
PMIDOWN STATDA DCOMLR IS VI DP TI PG LID AB -

AD
FAU
AU
FAU
AU
FAU
AU
FAU
AU
LA
PT
PT
DEP

-

...
共通語彙: オントロジー

データが表すものを分かり易く表現し
データの再利用性を高め
より効率の良い知識共有環境の実現へ

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
クラスや属性は大事

属性、プロパティ、単位、クラス、型などなど
例えば、数値
42
これは何を表すか?
http:/
/en.wikipedia.org/wiki/File:Answer_to_Life.png

第7回LinkedData勉...
データの表現
山本泰智は42さい男性です。 (日本語、自然言語)

氏名

年齢

性別

山本泰智

42

男

                  (表形式)
ex:yayamamo foaf:age "42"^^rdfs:Literal...
機械での処理もし易く

形式が同じでも表現する語彙がバラバラでは繋がりにくい
年齢? 歳? years old? age? y/o?
表現する語彙集=オントロジーを用意して皆で使うと嬉しい
ウェブ上(=分散環境)でデータを交換するのに適したモデ...
protégé
オープンソースのオントロジーエディタ
スタンフォード大学で開発
データの属性に関する事項を編集するためのソフトウェア
デスクトップアプリとウェブアプリの2本だて
ウェブアプリは協調作業向け

第7回LinkedData勉強会 1...
http:/
/protege.stanford.edu/
現時点での最新は
Version 4.3.0 (Build 304)
第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
今日の例題
表ex
番号 名前 体重 (Kg) 身長 (m)

肥満度判定結果
BMI

クラス

YY

62

1.65

22.77

標準

002 A K

58

1.8

17.9

低体重

003 G P

90

1.7

...
の体重は

xsd:decimal

の身長は

xsd:decimal

BMI =

メタボ傾向生物

体重 (kg)
身長 (m)2

の肥満度は
肥満度判定結果

のBMIは

xsd:decimal

の体重クラスは
人
犬

ind...
基本
モノやコトのクラスを表す概念は owl:Class 型
クラスの間の関係を示す概念は owl:ObjectProperty 型
モノやコトの属性を示す概念は owl:DatatypeProperty 型
ある個体 (individual)...
1

オントロジーの名
前(URI)をつける
例: http:/
/example.com/BMI/

2

「Annotations」を選択
し、+をクリック

初期画面

第7回LinkedData勉強会 10/8 @ インフォコム

山本...
オントロジーの概要を書く
(ライセンス情報も)

日本語で書く場合、言語選択に日本語
を示す「ja」が無いので、直接書き込む

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
「Classes」を選択

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
owl:Class 型の概念を定義

1

2

「Thing」を選択
してアクティブに

 を選択してクラ
スを定義
Name:に例えば「人」と入力すると下のURI:に自動的
に「http:/
/example.com/BMI/人」と表示され...
2
1
クラスについて
記述する

4

3

「label」を選択し、「Value」
に分かり易い名前を書く
それを記述する言
語の情報も併せて

第7回LinkedData勉強会 10/8 @ インフォコム

5

山本泰智
クラスについて
記述する

「comment」の「Value」に
はそのクラスについて説明を
それを記述する言
語の情報も併せて

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
クラスについて
記述する

1

3
2

5

4

「人」クラスに属する個体は、その属性「の体
重は」について、丁度1つの10進数の値を持つ

6
第7回LinkedData勉強会 10/8 @ インフォコム

7

山本泰智
クラスについて
記述する

クラスに特定の個体(individual)のみ
属することを規定する場合、各個体
をカンマ区切りで列挙して{}で囲む
第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
クラス名を変更する方法

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
owl:ObjectProperty 型の概念を定義

「Object Properties」
1
を選択

2
クラスと同様に名
前や説明を書く

3
プロパティの特徴
を選択
Functional: 対象となる個体が決まれば一
意に決まるプ...
owl:DatatypeProperty 型の概念を定義

「Data Properties」
を選択

「Object Properties」
と同様に

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
bmi:人 rdf:type owl:Class ;

構築オントロジーの一部

rdfs:label "人" ;
rdfs:subClassOf bmi:メタボ傾向生物 ;
rdfs:comment "foaf:Personクラスと同等"@j...
オントロジーを使ってデータを表現
表ex
番号

名前

体重 (Kg)

身長 (m)

001

YY

62

1.65

肥満度判定結果
BMI

クラス

22.77

標準

ex:001 rdf:type bmi:人 ;
foaf...
グラフで表示

http:/
/www.kanzaki.com/works/2005/rap/graph-check

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
まとめ

オントロジーも、それに従って記述されたデータも、同じ
RDFとして表現される
スキーマもデータも同じ形式で表現される
SPARQLを使うことで横断的に検索できる
必ずしも予めオントロジーを知らなくても検索できる

第7回LinkedD...
オントロジーは使われてなんぼ
言語がそうであるように

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
参考文献

http:/
/www.learningsparql.com/
http:/
/workingontologist.org/
http:/
/www.kanzaki.com/docs/sw/
第7回LinkedData勉強会 10/...
参考文献
http:/
/www.w3.org/TR/owl-ref/

日本語訳もあります。
第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
よく使われる既存オントロジー
rdf, The RDF Vocabulary (RDF)
http:/
/www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs, The RDF Schema vocabulary ...
既存オントロジー例

書誌情報
DCMI Metadata Terms
http:/
/purl.org/dc/terms/
The Bibliographic Ontology
http:/
/purl.org/ontology/bibo/
...
関係するオントロジーを見つける

ググる
∼ ontology, ∼ vocabulary ( + owl, rdf ...)
Linked Open Dataに関する統計情報を眺める
http:/
/stats.lod2.eu/stats
h...
セマンティックウェブの3原則

AAA (Anyone can say Anything about Any topic)
Open World
Nonunique Naming

第7回LinkedData勉強会 10/8 @ インフォコム
...
クラスとインディビジュアル

なんでもクラスにしてしまうと適切な推論が働かない
:Poet :wrote :Poem .
クラスとクラスの間の関係を記述しても意味が伝わらない
「詩人という集合が詩という集合を書いた。」???

第7回Linke...
詩を書く人は詩人
制限クラスを使う
:Poet rdfs:subClassOf [a owl:Restriction;
owl:onProperty :wrote;
owl:someValuesFrom :Poem] .
逆に、詩人なら詩を書く...
FOAF

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
FOAFクラス間の関係

第7回LinkedData勉強会 10/8 @ インフォコム

山本泰智
Upcoming SlideShare
Loading in …5
×

第7回 Linked Data 勉強会 @yayamamo

22,548 views

Published on

2013年10月8日に開催された標記勉強会で使用したスライドです。オントロジーエディタprotégéの使い方について、簡単な例を用いて説明しています。内容は入門レベルです。

Published in: Technology

第7回 Linked Data 勉強会 @yayamamo

  1. 1. オントロジーエディタ protégéを使う 山本泰智 (@yayamamo) ライフサイエンス統合データベースセンター Rev. Ver. 20131017.0
  2. 2. 今日のお題 Linked Dataを文字通り「繋ぐ」ために必要な仕組みを紹介 ウェブ上のデータを繋ぐ は共通語彙 それをここではオントロジーと呼び、オントロジーを作る 方法を紹介 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  3. 3. 非常口 扉の属性として、「非常口」という文字か、「人の走り出 る絵」のどちらがより広く再利用され、共有され易いか 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  4. 4. ウェブ上のデータ 様々な人々、組織が自由に作るデータ PMIDOWN STATDA DCOMLR IS VI DP TI PG LID AB - AD FAU AU FAU AU FAU AU FAU AU LA PT PT DEP - 21498548 NLM MEDLINE 20110418 20110902 20130630 1758-0463 (Electronic) 2011 2011 Allie: a database and a search service of abbreviations and long forms. bar013 10.1093/database/bar013 [doi] Many abbreviations are used in the literature especially in the life sciences, and polysemous abbreviations appear frequently, making it difficult to read and understand scientific papers that are outside of a reader's expertise. Thus, we ... constructed and updated weekly. Database URL: The Allie service is available at http://allie.dbcls.jp/. Database Center for Life Science, Bunkyo-ku, Tokyo, Japan. yy@dbcls.rois.ac.jp Yamamoto, Yasunori Yamamoto Y Yamaguchi, Atsuko Yamaguchi A Bono, Hidemasa Bono H Takagi, Toshihisa Takagi T eng Journal Article Research Support, Non-U.S. Gov't 20110415 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  5. 5. 共通語彙: オントロジー データが表すものを分かり易く表現し データの再利用性を高め より効率の良い知識共有環境の実現へ 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  6. 6. クラスや属性は大事 属性、プロパティ、単位、クラス、型などなど 例えば、数値 42 これは何を表すか? http:/ /en.wikipedia.org/wiki/File:Answer_to_Life.png 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  7. 7. データの表現 山本泰智は42さい男性です。 (日本語、自然言語) 氏名 年齢 性別 山本泰智 42 男                   (表形式) ex:yayamamo foaf:age "42"^^rdfs:Literal ; (turtle, RDF) rdf:type foaf:Person ; foaf:gender "male"^^rdfs:Literal ; foaf:name "山本泰智"@ja .                  ※ 実在の人物とは関係ありません 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  8. 8. 機械での処理もし易く 形式が同じでも表現する語彙がバラバラでは繋がりにくい 年齢? 歳? years old? age? y/o? 表現する語彙集=オントロジーを用意して皆で使うと嬉しい ウェブ上(=分散環境)でデータを交換するのに適したモデル としてRDFが作られた 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  9. 9. protégé オープンソースのオントロジーエディタ スタンフォード大学で開発 データの属性に関する事項を編集するためのソフトウェア デスクトップアプリとウェブアプリの2本だて ウェブアプリは協調作業向け 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  10. 10. http:/ /protege.stanford.edu/ 現時点での最新は Version 4.3.0 (Build 304) 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  11. 11. 今日の例題 表ex 番号 名前 体重 (Kg) 身長 (m) 肥満度判定結果 BMI クラス YY 62 1.65 22.77 標準 002 A K 58 1.8 17.9 低体重 003 G P 90 1.7 31.14 肥満 001 BMIの計算について http:/ /www.cdc.gov/healthyweight/assessing/bmi/adult_bmi/index.html 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  12. 12. の体重は xsd:decimal の身長は xsd:decimal BMI = メタボ傾向生物 体重 (kg) 身長 (m)2 の肥満度は 肥満度判定結果 のBMIは xsd:decimal の体重クラスは 人 犬 individual literal 体重クラス owl:Class 猫 owl:ObjectProperty owl:DatatypeProperty rdf:type 低体重 標準以上 rdfs:subClassOf 標準 肥満 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  13. 13. 基本 モノやコトのクラスを表す概念は owl:Class 型 クラスの間の関係を示す概念は owl:ObjectProperty 型 モノやコトの属性を示す概念は owl:DatatypeProperty 型 ある個体 (individual) があるクラスに属するとき、rdf:type で関係を示す ex:yayamamo rdf:type foaf:Person . 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  14. 14. 1 オントロジーの名 前(URI)をつける 例: http:/ /example.com/BMI/ 2 「Annotations」を選択 し、+をクリック 初期画面 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  15. 15. オントロジーの概要を書く (ライセンス情報も) 日本語で書く場合、言語選択に日本語 を示す「ja」が無いので、直接書き込む 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  16. 16. 「Classes」を選択 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  17. 17. owl:Class 型の概念を定義 1 2 「Thing」を選択 してアクティブに  を選択してクラ スを定義 Name:に例えば「人」と入力すると下のURI:に自動的 に「http:/ /example.com/BMI/人」と表示される。 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  18. 18. 2 1 クラスについて 記述する 4 3 「label」を選択し、「Value」 に分かり易い名前を書く それを記述する言 語の情報も併せて 第7回LinkedData勉強会 10/8 @ インフォコム 5 山本泰智
  19. 19. クラスについて 記述する 「comment」の「Value」に はそのクラスについて説明を それを記述する言 語の情報も併せて 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  20. 20. クラスについて 記述する 1 3 2 5 4 「人」クラスに属する個体は、その属性「の体 重は」について、丁度1つの10進数の値を持つ 6 第7回LinkedData勉強会 10/8 @ インフォコム 7 山本泰智
  21. 21. クラスについて 記述する クラスに特定の個体(individual)のみ 属することを規定する場合、各個体 をカンマ区切りで列挙して{}で囲む 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  22. 22. クラス名を変更する方法 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  23. 23. owl:ObjectProperty 型の概念を定義 「Object Properties」 1 を選択 2 クラスと同様に名 前や説明を書く 3 プロパティの特徴 を選択 Functional: 対象となる個体が決まれば一 意に決まるプロパティであるか否か。 肥満度は、その人固有で、二つ以上は無 いので、Functionalなプロパティ。 4 プロパティの対象やそ の値が持つクラスを規定 Domains: 対象となる個体の属するクラス Ranges: プロパティの値が属するクラス 「の肥満度は」プロパティは「メタボ傾向生物」クラス、及びそのサ ブクラスの個体(「人」クラスも含まれる)が持てるプロパティで、そ の値は「肥満度判定結果」クラスに属する個体であることを規定。 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  24. 24. owl:DatatypeProperty 型の概念を定義 「Data Properties」 を選択 「Object Properties」 と同様に 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  25. 25. 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  26. 26. bmi:人 rdf:type owl:Class ; 構築オントロジーの一部 rdfs:label "人" ; rdfs:subClassOf bmi:メタボ傾向生物 ; rdfs:comment "foaf:Personクラスと同等"@ja ; owl:disjointUnionOf ( bmi:犬 bmi:猫) . bmi:の体重クラスは rdf:type owl:FunctionalProperty ,   owl:ObjectProperty ; オントロジーを利用して、 例えば、入力フォームの生 成や内容のチェックも機械 的に行える。 rdfs:label "の体重クラスは"@ja ; rdfs:comment "BMIに基づく体重クラスを示すためのプロパティ。"@ja ; rdfs:range bmi:体重クラス ; rdfs:domain bmi:肥満度判定結果 . bmi:のBMIは rdf:type owl:DatatypeProperty ,   owl:FunctionalProperty ; rdfs:label "のBMIは"@ja ; rdfs:comment "主語に来る生物のBody Mass Index (BMI)を示すためのプロパティ。"@ja ; rdfs:domain bmi:肥満度判定結果 ; rdfs:range xsd:decimal . 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  27. 27. オントロジーを使ってデータを表現 表ex 番号 名前 体重 (Kg) 身長 (m) 001 YY 62 1.65 肥満度判定結果 BMI クラス 22.77 標準 ex:001 rdf:type bmi:人 ; foaf:name "Y Y"^^rdfs:Literal ; bmi:の体重は "62"^^xsd:decimal ; bmi:の身長は "1.65"^^xsd:decimal ; bmi:の肥満度は _:b01 . _:b01 rdf:type bmi:肥満度判定結果 ; _:b01はブランクノー ドという。「肥満度 判定結果」クラスの 個体。 bmi:のBMIは "22.77"^^xsd:decimal ; bmi:の体重クラスは bmi:標準 . 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  28. 28. グラフで表示 http:/ /www.kanzaki.com/works/2005/rap/graph-check 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  29. 29. まとめ オントロジーも、それに従って記述されたデータも、同じ RDFとして表現される スキーマもデータも同じ形式で表現される SPARQLを使うことで横断的に検索できる 必ずしも予めオントロジーを知らなくても検索できる 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  30. 30. オントロジーは使われてなんぼ 言語がそうであるように 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  31. 31. 参考文献 http:/ /www.learningsparql.com/ http:/ /workingontologist.org/ http:/ /www.kanzaki.com/docs/sw/ 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  32. 32. 参考文献 http:/ /www.w3.org/TR/owl-ref/ 日本語訳もあります。 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  33. 33. よく使われる既存オントロジー rdf, The RDF Vocabulary (RDF) http:/ /www.w3.org/1999/02/22-rdf-syntax-ns# rdfs, The RDF Schema vocabulary (RDFS) http:/ /www.w3.org/2000/01/rdf-schema# owl, The OWL 2 Schema vocabulary (OWL 2) http:/ /www.w3.org/2002/07/owl# skos, Simple Knowledge Organization System (SKOS) Vocabulary http:/ /www.w3.org/2004/02/skos/core# foaf, Friend of a Friend (FOAF) vocabulary http:/ /xmlns.com/foaf/0.1/ dc, DCMI Metadata Terms in the /terms/ namespace http:/ /purl.org/dc/terms/ geo, WGS84 Geo Positioning: an RDF vocabulary http:/ /www.w3.org/2003/01/geo/wgs84_pos# 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  34. 34. 既存オントロジー例 書誌情報 DCMI Metadata Terms http:/ /purl.org/dc/terms/ The Bibliographic Ontology http:/ /purl.org/ontology/bibo/ 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  35. 35. 関係するオントロジーを見つける ググる ∼ ontology, ∼ vocabulary ( + owl, rdf ...) Linked Open Dataに関する統計情報を眺める http:/ /stats.lod2.eu/stats http:/ /stats.lod2.eu/vocabularies DBpediaなどの既存Linked Dataをハックする 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  36. 36. セマンティックウェブの3原則 AAA (Anyone can say Anything about Any topic) Open World Nonunique Naming 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  37. 37. クラスとインディビジュアル なんでもクラスにしてしまうと適切な推論が働かない :Poet :wrote :Poem . クラスとクラスの間の関係を記述しても意味が伝わらない 「詩人という集合が詩という集合を書いた。」??? 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  38. 38. 詩を書く人は詩人 制限クラスを使う :Poet rdfs:subClassOf [a owl:Restriction; owl:onProperty :wrote; owl:someValuesFrom :Poem] . 逆に、詩人なら詩を書く、ともいえるので :Poet owl:equivalentClass [a owl:Restriction; owl:onProperty :wrote; owl:someValuesFrom :Poem] . 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  39. 39. FOAF 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智
  40. 40. FOAFクラス間の関係 第7回LinkedData勉強会 10/8 @ インフォコム 山本泰智

×