第8回 オントロジの開発手法

オントロジの開発手法について記述された文献が少ないのですが、以下のマニュアルが秀逸です。

出典

https://protege.stanford.edu/publications/ontology_development/ontology101.pdf

以上は原文ですが HTMLからCromeなら直接翻訳できます。

http://www.ksl.stanford.edu/people/dlm/papers/ontology101/ontology101-noy-mcguinness.html

また、以下、日本語に翻訳してくれた方がいます。

  https://88171.net/ontology-development-101

 

文献はボリュームが多いので以下本来のマニュアル作者がPPTに要約したものを当方で翻訳しました。

原文:https://slideplayer.com/slide/9114500/

 

 

2 フランスのワインとワインの産地

カリフォルニアのワインとワインの産地

今日、シーフードに添えるべきワインはどれですか?

ワインと食べ物の共有されたONTOLOGY 

3 概要【目次】

 

4 オントロジーとは

オントロジーとは、ドメインの明示的な記述です。

 ・概念

 ・プロパティと属性のプロパティ

 ・プロパティと属性に対する制約

  ・Individuals (多くの場合、常にではない)

オントロジーは、以下を定義します 

  ・共通の語彙

  ・共有の理解

5 オントロジーの例

 ・ウェブ上の分類

   Yahoo! カテゴリ

 ・オンラインショッピングのカタログ

   Amazon.com製品カタログ

 ・ドメイン固有の標準用語

   統一医療言語システム(UMLS)

   UNSPSC-製品およびサービスの用語 

6 「オントロジー工学」とは?

 ・オントロジー工学:ドメイン内の用語とそれらの関係の定義

   ドメイン内の概念の定義(クラス)

   階層内の概念の配置(サブクラス-スーパークラス階層)

   クラスが持つことができる属性とプロパティ(スロット)の定義と値の制約の定義

   Individuals の定義とスロット値の入力 

(スロットはクラスやインスタンスのプロパティを定義するもの)

7 概要【目次】

8 オントロジーを開発する理由

 ①人やエージェントプログラムの間で,

  情報の構造の基本的な理解を共有した い

 ②そのドメインにおける知識の再利用を可能にしたい

 ③そのドメインにおける前提・仮定を明示したい

 ④そのドメインの知識と実践的な知識を分離したい

 ⑤そのドメインの知識を検証したい

 

9 その他の理由

  • ドメインの仮定を明示的に
    • ドメインの仮定を変更しやすくする(遺伝知識ベースを考慮)
    • レガシーデータを理解および更新しやすくする
  • ドメイン知識を運用知識から分離するには
    • ドメインと運用知識を別々に再利用する(制約に基づく構成など) )

10 オントロジーはしばしばオントロジーの始まりにすぎない

f:id:William0105:20190825115031p:plain



11 概要【目次】

12 ワインとワイナリー 

f:id:William0105:20190825115113p:plain

クラスには黒を、インスタンスには赤を使用しています。

 

13 オントロジー-開発プロセス

f:id:William0105:20190825115129p:plain

このチュートリアルでは、スコープを決定し、列挙項を定義し、クラスを定義し、プロパティを定義し、制約を定義します。インスタンスを作成します

実際-反復プロセス:

f:id:William0105:20190825115142p:plain

 

14 オントロジー工学とオブジェクト指向モデリング

オントロジーは、

  • 世界の構造を反映することが多く、
  • 概念の構造に関するものであることが多く、
  • 実際の物理的表現は問題ではありません

ObjectOrientedなクラス構造は、

  • データの構造を反映し、
  • コードは通常、動作(メソッド)について説明します
  • データの物理表現(long int、charなど)

15 Preliminaries-Tools

このチュートリアルのすべてのスクリーンショットはProtégé-2000のものです。

その他ツール:

  • OntolinguaおよびChimaera
  • OntoEdit
  • OilEd 

16 ドメインとスコープの決定

f:id:William0105:20190825115209p:plain

ドメインとスコープの決定には以下の質問が有効です。

これらの質問に対する回答は、ライフサイクル中に変更される場合があります

17 コンピテンシーの質問

オントロジ開発にあたってはコンピテンシーの質問を検討する事から始めます。

「ワインを選ぶ際に考慮すべきワインの特性は何ですか?」ということから考えると

  • ボルドーは赤または白ワインですか?
  • カベルネ・ソーヴィニヨンはシーフードとよく合いますか?
  • 肉のグリルに最適なワインは何ですか?
  • ワインのどの特性が料理の適切さに影響しますか?
  • 特定のワインのフレーバーやボディはヴィンテージの年によって変わりますか?
  • ナパ・ジンファンデルは何年物がよいか?

これらの質問から判断すると,オントロジーにはワインの様々な特徴,ワ インの種類,ビンテージイヤー ( 良い年 / 悪い年 ) ,合うワインを選ぶ上で 問題となる料理の分類,料理とワインのお薦めの組み合わせを含める必要があることがわかります。

 

18 再利用の検討

f:id:William0105:20190825115221p:plain

既に開発されている他のオントロジーの再利用の検討をおすすめします。

その理由とは 

  • 労力の節約
  • 他のオントロジーを使用するツールとの対話
  • アプリケーションでの使用を通じて既に内容が検証済みであるオントロジーが利用できる

 

19 再利用可能なもの

オントロジーライブラリで再利用可能なものは、主に以下がある。

Upperオントロジー

20 再利用可能なもの (II)

一般的なオントロジー

ドメイン固有のオントロジー

21 重要な用語を列挙する

f:id:William0105:20190825115236p:plain

  • どの用語(term)について議論したい
  • これらの用語の特性は何か?
  • 用語をもってして何を言いたいか?

22 用語(term)列挙-ワインオントロジーの例

 ワイン、ブドウ、ワイナリー、場所、

 ワインの色、ワインのボディ、ワインの風味、砂糖の含有量

 白ワイン、赤ワイン、ボルドーワイン

 フード、シーフード、魚、肉、野菜、チーズ 

23 クラスとクラス階層の定義

f:id:William0105:20190825115258p:plain

クラスは、ドメイン内の概念です

  • ワインのクラス
  • ワイナリーのクラス
  • 赤ワインのクラス

クラスは、類似のプロパティを持つ要素のコレクションです

クラスのインスタンス例:

  • 昼食のために使うカリフォルニアワインのグラス

24 クラスの継承

  • クラスは通常、分類Taxonomy階層(サブクラス-スーパークラス階層)を構成します。
  • クラス階層は通常IS-A階層です。

   サブクラスのインスタンススーパークラスインスタンスです。

  • クラスを要素のセットと考える場合、サブクラスはサブセットです

25 クラスの継承-例

  • リンゴは果物のサブクラス

   すべてのリンゴは果物で赤

  • ワインはワインのサブクラス

   すべての赤ワインはワインです

  すべてのキャンティワインは赤ワインです 

26 階層のレベル

f:id:William0105:20190825115316p:plain

27 開発モード

開発手法としては以下の三種類があります

  ①トップダウン-最初に最も一般的な概念を定義し、次にそれらを特化-

  ②ボトムアップ-最も具体的な概念を定義し、より一般的なクラスの整理する

  ③両者の組み合わせ

  -より顕著な概念を最初に定義し、次にそれらを一般化および特化する。

  最も一般的な分類で分けることでワインを考えようとしているのであれば,トップダウンのアプローチが使いやすい

f:id:William0105:20190926135639p:plain



f:id:William0105:20190926135541p:plain

f:id:William0105:20190926135815p:plain

28 ドキュメント

クラス(およびスロット)は、通常、ドキュメントで記述します

  • 自然言語でクラスを記述します
  • クラス定義に関連するドメインの前提をリストします
  • 同義語をリストします

クラスとスロットのドキュメント化は、コンピューターコードのドキュメント化と同じくらい重要です! 

29 クラスのプロパティの定義-スロット

f:id:William0105:20190825115341p:plain

各ワインには色、糖度、生産者などがあります。再利用を検討します。など

30 プロパティ(スロット)

  • プロパティの種類
    • 「固有の」プロパティ:ワインのフレーバーと色
    • 「固有の」プロパティ:ワインの名前と価格
    • パーツ:料理の材料
    • 他のオブジェクトとの関係:ワインの生産者(ワイナリー)
      • シンプルなプロパティ(属性):プリミティブ値(文字列、数字)を含む
      • 複雑なプロパティ:他のオブジェクト(ワイナリーインスタンスなど)を含む(または指す)

31 クラスワイン用のスロット(Protégé-2000内) 

f:id:William0105:20190825115354p:plain

32 スロットとクラスの継承

  • サブクラスはスーパークラスからすべてのスロットを継承します
    • ワインに名前とフレーバーがある場合、赤ワインにも名前とフレーバーがあります
  • クラスに複数のスーパークラスがある場合、それらはすべてからスロットを継承します
    • デザートワインと赤ワイン。前者から「糖度:高」、後者から「色:赤」を継承します

33 プロパティの制約

f:id:William0105:20190825115408p:plain

  • プロパティの制約(ファセット)は、スロットに設定できる値のセットを記述または制限します
    • ワインの名前は文字列です
    • ワイン生産者はワイナリーのインスタンスです
    • ワイナリーは特定の場所(ロケーション)にあります

34 ワインクラスのスロットのファセット 

f:id:William0105:20190825115421p:plain

35 共通のファセット

  • スロットのカーディナリティー – スロットが持つ値
  • スロット値のタイプ – スロットが持つ値のタイプ
  • 最小値と最大値 – 数値スロットの値の範囲
  • デフォルト値 – 明示的に指定されない限りスロットが持つ値

36 共通ファセット:スロットカーディナリティ

  • カーディナリティ
    • カーディナリティNは、スロットにN値が必要であることを意味します
  • 最小カーディナリティ
    • 最小カーディナリティ1は、スロットに値が必要であることを意味します(必須)
    • 最小カーディナリティ0は、スロットに値がオプショナルであることを意味します(
  • 最大カーディナリティー
  • 最小カーディナリティ1 はスロットは1つの値を持つことができます(単一値スロット)
  • 1より大きい最大カーディナリティーは、スロットが複数の値を持つことができることを意味します(複数値スロット)

37 一般的なファセット:値タイプ

  • 文字列:文字列(「シャトーラフィット」)
  • 数値:整数またはフロート(15、5)
  • ブール値:true / falseフラグ
  • 列挙型:許可される値のリスト(高、中、 low)
  • 複合型:別のクラスのインスタンス

Wineクラスは、Wineryクラスで「生成する」スロットの値の型です 

38 スロットのドメインと範囲(Range)

  • スロットのドメイン–スロットを持つクラス
    • (より正確には):スロットを持つことができるクラス(またはクラス)インスタンス
  • スロットの範囲(Range)
    -スロットへのクラス(またはクラス)値が属する

39 ファセットとクラスの継承

  • サブクラスはスーパークラスからすべてのスロットを継承します
  • サブクラスはファセットをオーバーライドして許容値のリストを「狭める」ことができます
    • カーディナリティ範囲を小さくします
    • 範囲内のクラスをサブクラスに置き換えますf:id:William0105:20190825115504p:plain

40 インスタンスの作成

f:id:William0105:20190825115527p:plain

41 インスタンスの作成:例

f:id:William0105:20190825115540p:plain

 

42 概要【目次】

43 より深く

f:id:William0105:20190825115609p:plain

44 クラスとクラス階層の定義

  • 覚えておくべきこと:

   正しいクラス階層は1つだけではありませんが

   いくつかのガイドラインがあります。

  • 質問するべきことは

  「サブクラスの各インスタンススーパークラスインスタンスですか?」 

45 多重継承

f:id:William0105:20190825115624p:plain

  • クラスは複数のスーパークラスを持つことができます
  • サブクラスはすべての親からスロットとファセットの制限を継承します
  • システムが異なれば競合の解決方法も異なります

46 分離(Disjoint)クラス

  • 共通のインスタンスを持たないクラスは分離(Disjoint)されます
  • 分離(Disjoint)クラスは共通のサブクラスを持つことができません

赤ワイン、白ワイン、ロゼワインは分離される

デザートワインと赤ワインは分離されません 

f:id:William0105:20190825115640p:plain

47 クラスサイクルの回避

f:id:William0105:20190825114135p:plain

  • 多重継承の危険性:クラス階層のサイクル
  • クラスA、B、およびCには同等のインスタンスセットがあります
  • 多くの定義により、A、B、およびCは同等です

48 クラス階層の兄弟(Sibling)クラス

  • 階層のすべての兄弟は、一般性が同じレベルである必要があります
  • 本のセクションおよびサブセクションと比較
  • f:id:William0105:20190825115702p:plain

49 完璧な家族サイズ

f:id:William0105:20190825115715p:plain

  • クラスにchildが1人しかいない場合、モデリングの問題が発生する可能性があります。
  • もし私たちが持っているレッドブルゴーニュがコートドールだけなら、なぜ下位階層を導入するのでしょうか。
  • 箇条書きリストの箇条書きと比較する

50 完全な家族規模(II)

f:id:William0105:20190825114112p:plain

  • クラスに12人以上の子供がいる場合、追加のサブカテゴリが必要になる場合があります
  • しかし、自然な分類が存在しない場合は、長いリスト(Long list)がより自然になる可能性があります

51 単一および複数のクラス名

  • 「ワイン」は一種の「ワイン」ではありません
  • ワインはクラスのインスタンスです
  • クラス名は、すべて単数形または複数形です
  • f:id:William0105:20190825115806p:plain

52 クラスとその名前

  • クラスは名前ではなくドメインの概念を表します
  • クラス名は変更できますが、同じ概念を引き続き参照します
  • 同じ概念の同義語名は異なるクラスではありません
    • 多くのシステムでは、クラスの一部として同義語をリストできます

53 完成したワインの階層 

f:id:William0105:20190825115824p:plain

54 スロットに戻る:ドメインと範囲

・スロットのドメインまたは範囲を定義するとき、最も一般的なクラスを見つけます。

・フレーバースロットを検討します

  ドメイン:赤ワイン、白ワイン、ロゼワイン

  ドメイン:ワイン

・ワイナリーの農産物スロットを検討します:

  範囲:赤ワイン、白ワイン、ロゼワイン

  範囲:ワイン 

55 スロットに戻る:ドメインと範囲

f:id:William0105:20190825120349p:plain

  • スロットのドメインまたは範囲を定義する場合、最も一般的なクラスを見つけます。
  • フレーバースロットを検討します

  ドメイン:赤ワイン、白ワイン、ロゼワイン

  ドメイン:ワイン

  • ワイナリーの農産物スロットを検討します

  範囲:赤ワイン、白ワイン、ロゼワイン

  範囲:ワインスロットクラス許容値DOMAINRANGE 

56 ドメインと範囲の定義

f:id:William0105:20190825120428p:plain

57 インバーススロット

MakerとProducerはインバーススロットです 

f:id:William0105:20190825120508p:plain

58 インバーススロット(II)

  • インバーススロットには冗長情報が含まれていますが、
    • いずれかの方向の情報の取得を許可します
    • 追加検証を有効にします
    • 両方向の情報の表示を許可します
  • 実際の実装はシステムによって異なります
    • 両方の値が保持されますか?
    • 逆数値はいつ入力されますか?
    • リンクを逆スロットに変更するとどうなりますか?

59 デフォルト値

  • デフォルト値-インスタンスの作成時にスロットが取得する値
  • デフォルト値は変更可能
  • デフォルト値はスロットの一般的な値ですが、必須値ではありません。
  • たとえば、ワインのボディーのデフォルト値は“Full” 

60 範囲の制限

  • オントロジーには、ドメインに関するすべての可能な情報を含めるべきではありません。
  • アプリケーションが必要とする以上に特化または一般化する必要はありません。
  • クラスのすべての可能なプロパティを含める必要はありません。
    • 最も顕著なプロパティのみ
    • アプリケーションが必要とするプロパティのみ

61 範囲の制限(II)

  • ワイン、食物、およびそれらの組み合わせのオントロジーには、
    • ボトルサイズは含まれません
    • ラベルの色
    • 私の好きな食物およびワイン
  • 生物学実験のオントロジーには以下が含まれます
  • 生物
  • 実験者
  • 実験者クラスは実験生物のサブクラスですか?

62  概要【目次】

 

63 オントロジーとSW言語

64 SW言語

言語は以下で異なります

  • 構文
  • 用語
    • クラスコンセプト
    • インスタンスオブジェクト
    • スロットプロパティ
  • 表現力
    • 一部の言語で表現できるもの、その他では表現できない
  • 意味論
    • 同じ文が異なる場合に異なることを意味する場合があります

65 RDFおよびRDFスキーマクラスRDFスキーマ仕様1.0

http://www.w3.org/TR/2000/CR-rdf-schema-20000327/) 

f:id:William0105:20190825120540p:plain

66 RDF(S)の用語とセマンティクス

  • クラスとクラス階層
  • すべてのクラスはrdfs:Classのインスタンスです
  • クラス階層はrdfs:subClassOfによって定義されます
  • クラスのインスタンス
  • rdf:typeによって定義されます
  • プロパティ
  • プロパティは1つの場所にあるプロパティ名です
  • 別のプロパティ名と同じです(同じネームスペースを想定)
  • プロパティも階層を形成します(rdfs:subPropertyOf)

67 RDF(S)のプロパティ制約

  • カーディナリティ制約
    • 明示的なカーディナリティ制約なし
    • プロパティは複数の値を持つことができます
  • プロパティの範囲
    • プロパティは1つの範囲しか持てません
  • プロパティのドメイン
    • プロパティは複数のドメインを持つことができます1つのクラス)
  • デフォルト値なし

68 DAML + OIL:クラスとクラス階層

  • クラス

各クラスは、daml:Classのインスタンスです

  • クラス階層

rdfs:subClassOfによって定義されます

  • クラスの編成を指定する他の方法

分離(daml:disjointWith)

等価(daml:sameClassAs)

  • クラス階層はクラスのプロパティから計算される

69 DAML + OILでクラスを定義するその他の方法

  • クラスの連合クラス
    • Personはクラスの連合です男性と女性
  • プロパティの制限クラス
  • Red Thingは色のあるものの集合です:クラスの赤
  • 交差クラス
    • Red WineはWineとRed Thingの交差点
  • クラスの補完
    • 肉食動物は草食動物ではないすべての動物です
  • 要素の列挙
    • Wine Colorクラスには、赤、白、ロゼのインスタンスが含まれます。

70 DAML + OILのプロパティ制約

  • カーディナリティ
    • 最小、最大、正確なカーディナリティ
  • プロパティの範囲
    • プロパティの範囲には複数のクラスを含めることができます。
    • プロパティの値は各クラスのインスタンスである必要があります。
  • プロパティのドメイン–範囲と同じ
  • デフォルト値なし

71 概要【目次】

 

72の オントロジー工学の研究課題

  • コンテンツ世代
  • 分析と評価
  • メンテナンス
  • オントロジー言語
  • ツールの開発

73 内容:トップレベルのオントロジー

  • 「トップレベル」とはどういう意味ですか?
    • オブジェクト:有形、無形
    • プロセス、イベント、アクター、役割
    • エージェント、組織
    • スペース、境界、場所
    • 時間
  • IEEE標準上位オントロジーの取り組み

74 コンテンツ:知識獲得

  • 知識獲得はボトルネックです
  • 問題の共有と再利用が問題を軽減します
  • しかし、自動化された知識獲得技術が必要です
    • 言語技術:テキストからのオントロジーの獲得
    • 機械学習:構造化データからオントロジーを生成ドキュメント(XMLドキュメントなど)
    • Web構造の活用:構造化されたWebサイトをクロールしてオントロジーを生成する
    • 知識取得テンプレート:専門家は必要な知識の一部のみを指定します

75 分析

  • 分析:意味の一貫性
    • プロパティ制約の違反
    • クラス階層のサイクル
    • 使用されているが定義されていない用語
    • 空の間隔を生成する間隔制限(最小>最大)
  • 分析:スタイル
    • 1つのサブクラスを持つクラス
    • 定義なしのクラスおよびスロット
    • 制約のないスロット(値タイプ、カーディナリティ)
  • 自動分析ツール
    • Chimaera(Stanford KSL)
    • DAMLバリデーター

76 評価

77 オントロジーメンテナンス

78 オントロジー言語

  • 表現力の「正しい」レベルとは何ですか?
  • 「正しい」セマンティクスとは何ですか?
  • 言語はいつ「多すぎる」と仮定しますか?

79 オントロジー開発ツール

80 ここからさらに向かうべきところ?

チュートリアル

   Natalya F. Noy and Deborah L. McGuinness(2001)

    「オントロジー開発101:最初のオントロジー作成ガイド」http://protege.stanford.edu/publications/ontology_development/o ntology101.html

     Farquhar、A.(1997) )。Ontolinguaチュートリアル

     http://ksl-web.stanford.edu/people/axf/tutorial.pdfこのチュートリアル   MethodologyGómez-Pérez、A.(1998)からいくつかのアイデアを借りました。

知識の共有と再利用。応用エキスパートシステムのハンドブック。Liebowitz、CRC Pressの編集者。

Uschold、M.およびGruninger、M.(1996)。オントロジー:原則、方法、アプリケーション。ナレッジエンジニアリングレビュー11(2) 

82 クラス階層の推移性

is-a関係は推移的です:

BはAのサブクラスです

CはBのサブクラスです

CはAのサブクラスです

f:id:William0105:20190825120708p:plain

直接のスーパークラスはその「最も近い」スーパークラスです

ーーーーーーーーーーーーーーーーーーーーー

他の参考文献 (How to build an ontology)

https://slideplayer.com/slide/14695486/ 

f:id:William0105:20190827102514p:plain

f:id:William0105:20190827102640p:plain

f:id:William0105:20190827102553p:plain

f:id:William0105:20190827102723p:plain

<参考>

 別資料で開発に必要なマッピングツールの評価の資料がありました。

https://slideplayer.com/slide/5962119/