第11回 SWAP約定のFIBOへのマッピングをやってみました!

 

第9回でFIBOの簡易版に関する日本語訳を掲示しましたがやはりわかりにくいのでサマリーしました。

Agreement, Autonomous Agent, Servicce, Commitment等が中心となっていますのでそれらの関係を一つの図にまとめました。

1.FIBO全体サマリー

f:id:William0105:20200601150814p:plain

以上のそれぞれの部品をArrowという作画ツールを使って主な関係をまとめました。FIBOの全体概要がよくわかります。

f:id:William0105:20200601153100p:plain

結局、契約を中心にして、契約者(Autonomous Agent)と契約によって形成されるCommitmentとで構成されているということがわかります。契約の内容はContractual Elementとして詳細が記述され、記述された内容に基づいてコミットメントが定義されることになります。

 

特定の金融商品に的を絞ってさらに分析を進めました。デリバティブ取引の金利SWAPです。

分析方法は

(1)ProtegeのツールOntoGrafを利用してEntityをたどる

f:id:William0105:20200712121532p:plain

 

(2)ProtegeのEntityから金利スワップの全体像を把握

たどった結果を全体像が分かるようにExcel上に再現しました。

f:id:William0105:20200712121622p:plain

(3)Arrowを使って簡易モデルを作成

Excelの結果をArrowを使ってFIBOの簡易モデルを作成

f:id:William0105:20200712121940p:plain

(4)実際のSWAP約定を上記(3)で作った簡易モデルにマッピング

   Quantlibというオープンソースを利用してSWAP約定を入力するとExcel上で固定サイドと変動サイドのCashflowを生成してくれる。 それからNeo4j上で上記(2)のマッピングを基にCSVデータをNeo4JのFIBOへimport

f:id:William0105:20200712122246p:plain


(5)FIBOにMapping

Neo4Jのontology関数を利用すると簡単にマッピングができます。

以下です。

with [{ neoSchemaElem : "Swap", publicSchemaElem: "swap" },
{ neoSchemaElem : "swap_id",publicSchemaElem:"UniqueSwapIdentifier"},
{ neoSchemaElem : "paying_agent",publicSchemaElem:"SwapPayingParty"},
{ neoSchemaElem : "receiving_agent",publicSchemaElem:"SwapReceivingParty"},
{ neoSchemaElem : "notional_amount",publicSchemaElem:"MonetaryAmount"},
{ neoSchemaElem : "fx_business_center",publicSchemaElem:"BusinessCenter"},
{ neoSchemaElem : "fx_notional_amount",publicSchemaElem:"MonetaryAmount"},
{ neoSchemaElem : "fl_reference_ccy",publicSchemaElem:"CurrencyIdentifier"},
{ neoSchemaElem : "fl_tenor",publicSchemaElem: "CalendarPeriod"},
{ neoSchemaElem : "fl_business_center",publicSchemaElem:"BusinessCenter"},
{ neoSchemaElem : "fl_notional_amount",publicSchemaElem:"MonetaryAmount"},
{ neoSchemaElem : "fl_index_benchmark",publicSchemaElem:"InterestRateBenchmark"}
] as mappings,
"https://spec.edmcouncil.org/fibo/ontology/" AS schx
CALL n10s.nsprefixes.add("schx",schx) YIELD namespace
UNWIND mappings as m
CALL n10s.mapping.add(schx + m.publicSchemaElem,m.neoSchemaElem) YIELD schemaElement
RETURN count(schemaElement) AS mappingsDefined

 以下がマッピング結果。

f:id:William0105:20200713045335p:plain

f:id:William0105:20200713045409p:plain

  RDFへのマッピング手順は以下のURLを参照しました。

neo4j.com

 

以上



 

第10回 FIBOからナレッジグラフへ

 

EDMCから新しい方向性が出されて、今後はOPENFIBOと言ってFIBOをKnowledgeGraphテクノロジーを取り入れて拡張してゆくそうです。

詳細は2020/3/31に実施されたEDMCouncilのWebinerを参照ください。

https://www.youtube.com/watch?v=DmGE8ScJ--8

 

FIBO自体が概念的にはわかるのですが実際に応用技術として日本ではまだどの金融機関も取り入れておらず実務としてはハードルが高いと思います。

1.実用化が難しい理由:

 ①オントロジーが日本ではほとんど浸透していない

  医療分野では一部利用されていますが金融機関では利用実績がない。

  FSAなどの当局が報告様式に応用するなどの動きがないとどの金融機関も取り組みにくい。

 ②RDBMからデータをインポートするのが複雑

 ③EDMなどの協議会が勉強会をやっているものの知識の普及が遅れている

ただ、今回のKnowledgeGraphへの方向付けは大変興味深いものがあります。

2.KnowledgeGraphとは?

一言で

 GraphDB=Ontology + データ(インスタンス+リレーション)

から

 KnowledgeGraph=GraphDB + AI(自然言語認識など)による知識の獲得

です。

これを実現することでサイロ化されたRDBをGraphDbでインテグレートすることが可能です。

また、金融機内のすべての取引や取引先情報を統合化されたナレッジグラフに格納することによって今までリンクされることのなかった情報がいろいろな切り口で検索することが可能となります。

  

 イメージとしては以下です。(例はNeo4J)

f:id:William0105:20200617141316p:plain

     

             f:id:William0105:20200617141701p:plainすべての取引がリンクされるイメージです。

f:id:William0105:20200617141548p:plain

             f:id:William0105:20200617141701p:plain

f:id:William0105:20200618084950p:plain





3.想定される利用方法:

 ①回転売買などの会計不正の事前検知

  ・取引先のサプライチェーン見える化されるのでキャッシュフローとリンクすることで回転売買を把握可能

 ②リスク管理では 

  ・LiborがX%上昇した際にデフォルトが生じる可能性のある金利スワップ取引

  ・取引先のサプライチェーン見える化されるので、特定取引先の破綻による連鎖倒産リスク等が予知可能

 ③地域特性に基づいた収益予測

  ・集中豪雨等による被災地の売上変動のマクロ予測による収益予測

 

4.既に実用化段階に入っている例

例:

①EY Customer360°

f:id:William0105:20200617154733p:plain

顧客分析としてナレッジグラフを活用する。

データタイプの違いを吸収し、あらゆるデータソースから顧客データを取り込んで、顧客を全方位から理解するためのCustomer 360ソリューションを「銀行の頭脳」にすることが、デジタルトランスフォーメーションの要となる。

https://neo4j.com/blog/transforming-the-enterprise-ai-scale-neo4j/

②THOMSON REUTERS KNOWLEDGE GRAPH FEED CONTENT

f:id:William0105:20200617142844p:plain

Thomson Reutersの金融コンテンツセットのリンクされたデータフィードで、あらかじめ特定された一連の関係を持ち、データセット内およびデータセット間の以前に検出されなかった接続を発見するのに役立つ。

f:id:William0105:20200617142932p:plain

https://www.thomsonreuters.com/en/press-releases/2017/october/thomson-reuters-launches-first-of-its-kind-knowledge-graph-feed.html
 ③企業業績に影響を与えるリスク要因の分析->サプライチェーンの把握

f:id:William0105:20200617143532p:plain

④NttdataのiTreasure

ナレッジグラフとは言ってませんがサービスの内容からそうであると推察されます。

 

f:id:William0105:20200617145132p:plain

https://www.nttdata.com/jp/ja/lineup/itreasure/

5.FIBOのKnowledgeGraph

以下資料から抜粋しました。

https://slideplayer.com/slide/13343093/

今後の方向性について説明したものです。

説明者:David Newman

SVP, Head of Knowledge Graph Solutions, Innovation R&D Group, Wells Fargo Bank,

Chair, FIBO Program, EDM Council

①データインフラとしての機能

f:id:William0105:20200617150943p:plain

②AIの有効利用のための役割

f:id:William0105:20200617150911p:plain

③ナレッジのブリッジ

f:id:William0105:20200617151057p:plain

NLPを応用した事業アドバイス

f:id:William0105:20200617151444p:plain

今後のFIBOの進展に期待したいと思います。



 

 

第9回 FIBOの簡易モデル Financial Industry Business Data Model(FIB-DM)

FIBOの調査を継続していますが、やはりFIBOはあまりにも巨大で複雑すぎるため実務に適用するのにはかなり煩雑であると考えていました。同じ考えをもって中小の金融機関でも容易に導入できるように簡易モデルを作った人がいました。それがFinancial Industry Business Data Model(FIB-DM)です。

FIB-DMを紹介するPPTがありましたので日本語訳を実施して掲載します。

FIBOの内容理解のお役にたてればと思います。

 

原文は以下です。

https://fib-dm.com/semantics-for-finance-users/

<日本語訳>

<目次>

 

①ビジネスユーザのための意味体系

f:id:William0105:20200526110658p:plain

 

 

ファイナンスユーザーと共にモデルを理解し、範囲を定め、デザインする

f:id:William0105:20200526110721p:plain

③基本的な考え方は、すべてのお客様のためのものです

f:id:William0105:20200526110730p:plain

④教育の中のこの教訓

f:id:William0105:20200526110741p:plain

 

⑤企業情報アーキテクチャ

f:id:William0105:20200526110750p:plain

⑥コンセプトマップの用語は統一されている

f:id:William0105:20200618090827p:plain

⑦概念と語彙は、地図とデータモデルとの間の直接的な対応関係を確立する。f:id:William0105:20200526110818p:plain
⑧15つのニーモニック・アイコンと略称

f:id:William0105:20200526110827p:plain

 

⑨それぞれのコンセプトはビジネスの詳細な分類

f:id:William0105:20200526110843p:plain

⑩商業とCMの関係は、合意された200以上の名前から生まれています。f:id:William0105:20200526110900p:plain
⑪指定概念に係る関係f:id:William0105:20200526110916p:plain
⑫Conformされたコンセプトマップの完成f:id:William0105:20200526110926p:plain
⑬データモデルとコンセプトマップ

f:id:William0105:20200526110940p:plain

 

⑭究極のスーパータイプが基本コンセプト

f:id:William0105:20200526110959p:plain

 

⑮サブタイプのヒエラルキーは、FIBS分類です。

f:id:William0105:20200526111014p:plain

⑯データモデルの関連付けと関連性のあるエンティティの概念図

f:id:William0105:20200526111032p:plain

 

⑰広範なモデルへのアプローチ

f:id:William0105:20200526111051p:plain

⑱OntologyとData Modelの階層は同じf:id:William0105:20200526111132p:plain

 

⑲概念と語彙は、直接、ontologyグラフに対応します。f:id:William0105:20200526111144p:plain
⑲参考資料のコンセプト名(略称)

f:id:William0105:20200526111159p:plain

⑳独立代理人(Autonomous Agent)(AA)

f:id:William0105:20200526111211p:plain

㉑Thing in Role(TIR)

f:id:William0105:20200526111227p:plain

㉒Reference(参考)

f:id:William0105:20200526111236p:plain

 

㉓アレンジメント(Arrangement) (ARR)

f:id:William0105:20200526111251p:plain

㉔所在地(Location ) (LOC)

f:id:William0105:20200526111306p:plain

 

㉕ドキュメント(DOC)

f:id:William0105:20200526111319p:plain

㉖サービス

f:id:William0105:20200526111335p:plain

㉗Product(PRD)

f:id:William0105:20200526111351p:plain

 

 ㉘契約(Agreement)(AGR)

f:id:William0105:20200526111405p:plain

㉙コミットメントCommitment(COM)

f:id:William0105:20200526111420p:plain

㉚契約構成要素(Contractual Element)(CE)

f:id:William0105:20200618091945p:plain

 

f:id:William0105:20200526111444p:plain

㉜Account(AC)

f:id:William0105:20200526111458p:plain

㉝時間(TI)

f:id:William0105:20200526111508p:plain

㉞発生事実Occurrence(OCC)

f:id:William0105:20200526111521p:plain

㉟企業情報アーキテクチャ

f:id:William0105:20200526111531p:plain

 

 

㊱参考資料及び関連資料

f:id:William0105:20200526111548p:plain

以上

















 

 

第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/


 

第7回 FIBO(ISIN) 日本導入時の修正点は? 試しに一部日本語にしてみた。

 1.サマリー

FIBO(ISIN)の内容について掘り下げて調べています。

日本に導入する場合に何を修正しないといけないかをピックアップできたらよいかと思います。

 

日本語で修正を加える場合の手順

当初TopBraidComposerで試みましたが日本語の選択方法がわからず、結局Protegeで修正をしました。

 

 ①Labelを日本語で追加する必要がある @jpで追加する

 TopBraidComposerは言語の選択方法が不明

 ProtegeはAnnotationの追加時に言語の選択ができるので簡単に日本語で追加が可能

2.TopBraid Composerによる日本語Annotationの修正

TopBraid ComposerでFIBO(Securities)をLoadしてISINの部分をクリックすると中央にISINの説明が表示されます。

1)オントロジ表示

f:id:William0105:20190528103202p:plain

 

2)SKOSのDefinition表示

SKOSのDefinitionでは以下の通りです。

f:id:William0105:20190528094852p:plain

 

FIBO Glossary(Excel)のExplanatoryNoteの内容と当然一致します。

international securities identification number Individual   a security identifier that is defined as specified in ISO 6166, Securities and related financial instruments -- International securities identification numbering system (ISIN) A international securities identification number is a security identifier.  Furthermore, any international securities identification number only has part that is a National Securities Identifying Number. 

<ISO6166の内容> SKOSのDefinitionをクリックすると以下ISO6166のURLが表示されます。

f:id:William0105:20190528094654p:plain

 

3) FIBOのViewerによる表示

TopBraid ComposerのFree版ではグラフ表示ができないのでVOWLのホームページに

FIBO(Securities)をLoadすると以下が表示されます。

http://vowl.visualdataweb.org/webvowl.html

当然ですが右下の説明が Glossaryと同一です。

f:id:William0105:20190528101438p:plain


4)日本語変換
<一部日本語化してみた>

f:id:William0105:20190529095618p:plain

f:id:William0105:20190529095720p:plain

5) 日本語で修正を加える場合の手順

 ①Labelを日本語で追加する必要がある @jpで追加する

 TopBraidComposerは言語の選択方法が不明

 

2.Protegeによる日本語Annotationの追加

 ProtegeはAnnotationの追加時に言語の選択ができるので簡単に日本語で追加が可能

f:id:William0105:20190529142639p:plain

f:id:William0105:20190529142908p:plain

以上

 

第6回 オントロジ自動生成について (Gate Ontology Annotation, Population, Learning)(その1)

オントロジの自動作成にかかわる手法でGate(University of Sheffield製作)というツールを利用して一部オントロジ自動生成を試みた資料がある。

Gateの概要 https://gate.ac.uk/wiki/

以下Gateセミナー資料

https://gate.ac.uk/sale/talks/gate-course-aug10/track-3/module-9-ontologies/module-9-ontologies.pdf

これを参考に一部ツールの動作を試みた(Annotationまで、Populationについては次回以降説明します)ので以下に掲載する。

以下はそもそもUniversity of Sheffield のセミナー資料として掲載されたものを基に記述しています。

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

1.概要

オントロジ自動生成のためには以下3つの概念の理解が必要。

当然1)->3)の順番で難しくなる。詳細は後述します。

 

1)セマンティックアノテーション

  - 文章にオントロジのタグをつける事。

  - オントロジーの概念に関連するインスタンスのすべての記述から本文中でオントロジのインスタンスを抽出(アノテート)する

  ー修正されるのは文書です

2)オントロジーポピュレーション

   - 文章を解析してオントロジにインスタンスマッピングする事。

  - オントロジーが与えられた場合、テキストから自動的に派生したインスタンスをオントロジに取り込む

  ー修正されるのはオントロジーです。

3)オントロジーラーニング

  - テキストからオントロジーを自動的に生成する事

  概念を自然言語理解やMachine Learning等で導き出そうとするので技術的には現時点ではかなり難しい。

 

 2.画面イメージ

以下Gateセミナー資料より抜粋

1)セマンティックアノテーション

 文章をクリックするとオントロジがタグ付けされている

f:id:William0105:20190705162640p:plain

2)オントロジポピュレーション

オントロジにインスタンスを割り当てる。

f:id:William0105:20190705164101p:plain

 

f:id:William0105:20190419152034p:plain

3)オントロジラーニング

 

f:id:William0105:20190705163614p:plain

f:id:William0105:20190705163836p:plain

https://slideplayer.com/slide/11348548/

3.詳細

1)オントロジアノテーションについて

  (詳細はGateマニュアル https://gate.ac.uk/sale/tao/splitch14.html

    14.6 オントロジアノテーターツールを参照)

以下手順の概要

①GateにオントロジエディタのプラグインOntology_OWLIM2 をロード

まず、オントロジエディタのプラグインOntology_OWLIM2 をつかってオントロジ編集を可能とする必要がある。

  (詳細は14.3 オントロジープラグイン ]と14.5 Gate オントロジエディタ)

CREOLE Plugins Managerという機能をつかってプラグインを管理しているのでこれを起動してプラグインをロードする。

OWLIMがロードされてオントロジエディターが起動された画面

f:id:William0105:20190707082555p:plain

プラグイン 'Onto Root Gazetteer'をロードする

Gazetteer_Ontology_Basedプラグイン に含まれ、オントロジーから名詞辞書を自動作成

f:id:William0105:20190707083104p:plain

f:id:William0105:20190707083536p:plain

プラグインの準備ができたらGateに実際にオントロジをロードする

 

④オントロジを充てる対象のデータをロードする

  

<参考>

https://www.youtube.com/watch?v=K41mwAoB-fs&t=220s

f:id:William0105:20190421123128p:plain

https://gate.ac.uk/releases/gate-7.0-build4195-ALL/doc/tao/#x1-35100014

 

https://slideplayer.com/slide/9225222/ 

 2)オントロジーポピュレーション

 

次回以降に説明します。

 

4.参考資料

①"Ontology-Based Information Extraction"デモ画面

https://gate.ac.uk/demos/obie/obie.html

 

②講習のPPT

https://gate.ac.uk/sale/talks/gate-course-aug10/track-3/module-9-ontologies/module-9-ontologies.pdf

 

 ③OntolRoot Gazetter

オントロジに関するプラグインで特定のテキストに対してオントロジーアノテーションが可能となる。

f:id:William0105:20190417144313p:plain

f:id:William0105:20190419153715p:plain

オントロジーのテキストマッチングクラス、インスタンス、データプロパティ値、およびラベルで言及を検索します。
•マッチングは、形態学的または書体上の異形(例:大文字/小文字、キャメルケース)間で行うことができます。
•キャメルケースの名前を変換します。
 ピフェン、アンダースコア
形態素解析はテキストとオントロジーの両方で実行され、その後マッチングはルートレベルで2つの間で行われます。
•テキストには、ルート文字列と元の文字列を含む機能が付いています
•FlexibleGazetteerPRと共に使用できる地名PRを作成します。

f:id:William0105:20190419154146p:plain

 

 以上