本スライドについて 本スライドは、述語抽出法のエッセンスを手早く紹介するために作成した もので、口頭による説明が付くことを前提にしています。 そのため、用語や記号の詳細は記述されておりません。詳細な説明が必 要な方は、書籍(ebook)を参照してください。 しかし、スライドをざっと眺めただけでも、述語抽出法がいかなるものか は、わかっていただけるでしょう。 煎じ詰めれば、述語抽出法のエッセンスは: 1. 世界のすべてのモノゴトは、高階の述語によって、忠実に記述できる 2. 高階の述語は、機械的な変形によって、関係スキーマをはじめとする様 々な定義言語表現に変換できる ということに尽きます。その理論的な根拠と、実際への適用方法については 書籍(ebook)に詳述されております。 1 © IT Consulting Co.,Ltd All Rights Reserved 述語抽出法 データモデリングのコペルニクス的転回 From Ontology to Kotology (有)アイティーコンサルティング 米谷 共比古 教わる SJT 学生 選択する 科目 担当する 教官 S SJ J TJ T http://predex.jp/ または http://述語抽出法.jp/ 2 1 述語抽出法:データモデリング方法論の革命 「世界は,モノゴトの総体である」 データモデルは,現実世界のモノゴトを記述する モノゴトは,言語によって記述される したがって,言語からデータモデルを作成する(=言語をデー タモデルに変換する)方法が最も望ましい ヴィトゲンシュタイン「論理哲学考」 「データの重複を排除しよう」という関係理論は,余りに志が低い 述語抽出法は,高階の述語によって,現実世界を忠実に記 述する 言語表現より厳密=曖昧さがない 3 © IT Consulting Co.,Ltd All Rights Reserved 情報システムとは 現実世界の模擬装置 情報システム= ①現実世界(モノゴト)の像 + ②現実世界(モノゴト)の変化を像に反映させる仕組み + ③現実世界(モノゴト)の像を見せる仕組み 情報システム 現実世界の モノゴト ① ② ③ データベース 状態変数 UMLが記述するの は,現実世界では なく,情報システム アプリケーション プログラム メソッド データベース的見地 オブジェクト指向的見地 © IT Consulting Co.,Ltd All Rights Reserved 4 2 YAOO : Yet Another Object Orientation 現実世界 ⇔ 状態機械 ⇔ 情報システム 𝐼(𝑡) 処理 (遷移関数) 𝑆(𝑡 − 1) 𝑂(𝑡) クラス名 属性 𝑆(𝑡) メソッド 状態 𝑂 𝑡 = 𝑓 𝐼(𝑡), 𝑆(𝑡 − 1) , 𝑆 𝑡 = 𝑔 𝐼(𝑡), 𝑆(𝑡 − 1) 今回の出力と状態は,今回の入力と前回の状態で決まる 状態機械 State Machine 事象/契機 Event/Trigger 状態 State 遷移関数 Transition Function 現実世界 伝票 帳簿 取引 情報システム トランザクションデータ データベース プログラム OOP メッセージ 属性 メソッド 5 © IT Consulting Co.,Ltd All Rights Reserved われわれは現実世界をどう記述するか 世界は,モノゴトの総体である(TLP 1) 我々は,モノゴトの像を作る(TLP 2.1) モノゴトの像が思考である(TLP 3) 思考は,命題の形をとって,知覚可能な形で表される(TLP 3.1) 米谷はパン を買う モノゴト (現実世界) 思考 (像) 命題 (言語) TLP:Tractatus Logico-Philosophicus(論理哲学考) © IT Consulting Co.,Ltd All Rights Reserved 6 3 現実世界はデータベースにどう写像されるか 現実 世界 言語 写像 命題 “米谷はパンを買う” 注)事象生起結果としての状態は本来 「完了形」で記述されるが,簡潔のため 「現在形」で記述する. DB 個例(インスタンス) 買う(米谷,パン) 概念 顧客,商品 述語 買う(顧客,商品) 枠組(スキーマ) 買う(顧客,商品) © IT Consulting Co.,Ltd All Rights Reserved 7 複雑なモノゴトと高階の述語 複雑なモノゴトを述語で表現する方法=データモデリングの方法 複雑なモノゴトは,高階の述語(Higher-Order Predicate)で表現 高階の述語:述語を変項とする述語(入れ子になった述語) P(Q(x,y),R(y,z)) 複雑なモノゴトの例 商品を,それ(商品)を注文した顧客に,それ(商品)を在庫 する倉庫から,出荷する 高階の述語の例 出荷する(注文する(顧客,商品),在庫する(商品,倉庫)) © IT Consulting Co.,Ltd All Rights Reserved 8 4 高階の多項述語-素朴な導入(1) 商品を顧客に倉庫から出荷する.ただし, その商品は,顧客が注文したものである その商品は,倉庫に在庫してあるものである. 全ての制約条件を含む単一の文にまとめると,従属節を含む 複文となる: 商品を,それ(商品)を注文した顧客に,それ(商品)を 在庫する倉庫から,出荷する. © IT Consulting Co.,Ltd All Rights Reserved 9 高階の多項述語-素朴な導入(2) ビジネスプロセス記述を述語形に変換する 商品を顧客に倉庫から出荷する⇒ 出荷する(顧客,商品,倉庫) その商品は,顧客が注文したものである⇒ 顧客が商品を注文する.⇒注文する(顧客,商品) その商品は,倉庫に在庫してあるものである. ⇒ 商品を倉庫に在庫する. ⇒在庫する(商品,倉庫) では,制約条件を全部含む文にまとめた次の文は,どのよう な述語形に変換されるだろうか? 商品を,それ(商品)を注文した顧客に,それ(商品)を 在庫する倉庫から,出荷する. © IT Consulting Co.,Ltd All Rights Reserved 10 5 素朴な導入(3)-ビジネスプロセスの制約条件 「商品を,それ(商品)を注文した顧客に,それ(商品)を在庫する倉庫から,出荷 する」というビジネスプロセスは,以下の制約条件を全て満足しなければならない 1. 2. 3. 4. 5. 出荷する の顧客と商品 ⊆注文する の顧客と商品 出荷する の商品と倉庫⊆在庫する の商品と倉庫 注文する の顧客 ⊆自社が取引している顧客 在庫する の倉庫 ⊆自社が保有している倉庫 注文する商品=在庫する商品⊆自社が取扱っている商品 出荷する (顧客,商品,倉庫) 注文する 在庫する (顧客,商品)(商品,倉庫) 顧客 商品 自社の 倉庫 © IT Consulting Co.,Ltd All Rights Reserved 11 高階の多項述語-素朴な導入(4) 顧客に,商品を,倉庫から,出荷する. 出荷する(顧客,商品,倉庫) 出荷する 顧客が商品を注文する. (顧客,商品,倉庫) 注文する(顧客,商品) 商品を倉庫に在庫する. 注文する 在庫する 在庫する(商品,倉庫) (顧客,商品) (商品,倉庫) 出荷する(顧客,商品,倉庫)の (顧客,商品)を 注文する(顧客,商品) に置換 (商品,倉庫)を 在庫する(商品,倉庫) に置換 出荷する(注文する(顧客,商品),在庫する(商品,倉庫)) © IT Consulting Co.,Ltd All Rights Reserved 12 6 高階の多項述語-素朴な導入(5) 出荷する(注文する(顧客,商品),在庫する(商品,倉庫)) 入れ子記法:述語を変項 として含む高階の述語 分離記法:1階の述語 同士の結合演算 出荷する (顧客,商品,倉庫) 注文する (顧客,商品) 在庫する (商品,倉庫) 出荷する (顧客,商品,倉庫) ⊆注文する(顧客,商品)*在庫する(商品,倉庫) 分離記法の左辺は,成分を表現し,右辺は,成立(制約条件)を 表現している © IT Consulting Co.,Ltd All Rights Reserved 13 高階の多項述語は成分と成立(なりたち)を示す R(C(x), G(y)) ⊆C(x)*G(y) 顧客が商品を注文する 注文する(顧客(x), 商品(y)) ⇔ 注文する(顧客(x), 商品(y)) ⊆顧客(x)*商品(y) 入れ子記法 分離記法 T(R(C(x), G(y)), S(G(y), W(z))) ⇔ T(C(x), G(y), W(z)) ⊆ R(C(x), G(y))*S(G(y), W(z)) 商品を,それを注文した顧客に,それを在庫する倉庫から,出荷する 出荷する(注文する(顧客(x), 商品(y) ), 在庫する(商品(y), 倉庫(z) )) ⇔ 出荷する(顧客(x), 商品(y), 倉庫(z)) ⊆注文する(顧客(x), 商品(y))*在庫する(商品(y), 倉庫(z)) 分離記法の左辺は1階の述語なので、1階の述語論理に基づくSQLで処理 できる⇒データ定義は高階の述語で行うが、データ操作には高階の述語論 理を必要としない © IT Consulting Co.,Ltd All Rights Reserved 14 7 高階の述語から高階の実体関連図へ 「商品を,それを注文した顧客に,それを在庫する倉庫から, 出荷する」 顧客が商品を注文する 商品を倉庫に在庫する 顧客に商品を倉庫から出荷する 出荷する(注文する(顧客,商品),在庫する(商品,倉庫)) 出荷する(顧客,商品,倉庫) ⊆注文する(顧客,商品)*在庫する(商品,倉庫) 注文する(顧客,商品) ⊆顧客*商品 在庫する(商品,倉庫) ⊆商品*倉庫 © IT Consulting Co.,Ltd All Rights Reserved 15 高階の述語から高階の実体関連図へ 出荷する(顧客,商品,倉庫) ⊆注文する(顧客,商品)*在庫する(商品,倉庫) 注文する(顧客,商品) ⊆顧客*商品 在庫する(商品,倉庫) ⊆商品*倉庫 分離記法をカスケード接続する(図には左辺のみ記す) 出荷する CGW 2階の述語 注文する CG 1階 0階 顧客 C 在庫する GW 商品 G © IT Consulting Co.,Ltd All Rights Reserved 倉庫 W 16 8 高階の述語と参照整合性制約 1. 2. 3. 4. 5. “出荷する”というビジネスプロセスは,以下の制約条件をすべて満足し なければならない-高階の述語は、この制約を表現できる 出荷する の顧客と商品 ⊆注文する の顧客と商品 出荷する の倉庫と商品 ⊆在庫する の倉庫と商品 出荷する商品=顧客が注文した商品=倉庫に在庫する商品⊆取扱っている商品 注文する の顧客 ⊆取引契約がある顧客 在庫する の倉庫 ⊆保有している倉庫 上記の制約はすべてRDBMSのDDLで,参照整合性制約を使って実装できる 述語抽出法の方が,関係理論よりもRDBMSと相性がよい(奇跡! ) 出荷する CGW 注文する CG 顧客 C 在庫する GW 商品 G 倉庫 W 17 © IT Consulting Co.,Ltd All Rights Reserved 実体集合も関連集合も表となる 「商品を,それを注文した顧客に,それを在庫する倉庫から,出荷する」 佐藤 PC 横浜 鈴木 PC 品川 鈴木 TV 品川 出荷する CGW 注文する CG 在庫する GW 顧客 C 佐藤 PC 商品 G PC 品川 倉庫 W 佐藤 鈴木 PC PC PC 横浜 品川 鈴木 鈴木 TV TV TV 品川 横浜 CD CD 横浜 © IT Consulting Co.,Ltd All Rights Reserved 18 9 It’s Smart i.e., Simple, Powerful and Beautiful 高階の述語と2つの演算(*と+)で,世界のすべてを記述する 高階の述語 : 述語を変項にとる述語 オブジェクト指向のクラス階層。 オブジェクト指向は述語抽出法 のごく一部を占めるに過ぎない 高階の単項述語: 三毛猫(猫(y)) 「三毛猫は猫である」 三毛猫(y) ⊆ 猫(y) 高階の多項述語: 謝罪する(飼う(住民(x),猫(y)),噛む(猫(y),住民(z))) 「住民xは,自分が飼っている猫yが噛んだ住民zに謝罪した」 *(結合) : 複数の述語を変項とする高階の述語を新しく生成 単文: 飼う(住民(x),猫(y)) ⇔ 飼う(x,y) ⊆ 住民(x)*猫(y) 複文: 謝罪する(飼う(住民(x),猫(y)),噛む(猫(y),住民(z))) ⇔ 謝罪する(x,y,z) ⊆ 飼う(住民(x),猫(y))*噛む(猫(y),住民(z)) +(併合) : 複数の同一の述語を束ねる-分配律 重文: 飼う(住民(x),猫(y))+飼う(住民(x),犬(z)) = 飼う(住民(x),(猫(y)+犬(z))) 19 © IT Consulting Co.,Ltd All Rights Reserved 現実世界は,コト(述語)のネットワークである 英語を選択した佐藤という学生は、英語担当の鈴木教授が月曜日の 第2時限に行う授業を履修する 履修する SCTP 授業する CTP 学生 S 選択する SC 科目 C 担当する CT 教官 T 月曜日の第2時限に行われる 鈴木教授の英語の授業 稼働する TP 時限 P 選択する:学生は,同一科目は1つしか選択できない 稼働する:同一教官が同一時限に複数の授業を行うことはない(暗黙の制約) 授業する:同一教官が同一科目を複数の時限に授業するし,複数の異なる教官が同一科目を同一時限に授業 する 履修する:学生は,自分が選択した科目の授業を履修するにあたっては,その科目を担当する幾人かの教官の うちの1人が,いくつかの時限で行っている授業のうちの1つしか履修できない © IT Consulting Co.,Ltd All Rights Reserved 20 10 実体関連図は構文木である 加える 実体:終端記号 関連:非終端記号 a+b + a a b b aにbを加える a+b 加える a + (b + c) + 加える a + a c b a + (b + c) a 加える + + 関係理論は, 小学生の算 数にも劣る b c 掛ける × (a +b )×(c + d) b bにcを加えたものに,aを加える c a d (a +b )*(c + d) 加える b c b aにbを加えたものに,cにdを加えた ものを掛ける 21 © IT Consulting Co.,Ltd All Rights Reserved 高階の単項述語-属性とサブクラス 白い(犬(x)) 柴犬 白い 単項述語-属性を表す 単項述語“白い” は,述語“犬”の属性 “犬”の中で “白い” ものの集合 ポチ シロ シロ ブチ タマ 白い 単項述語-サブクラスを表す 柴犬(犬(x)) 柴犬 単項述語“柴犬” は,述語“犬”のサブクラス “犬”の中で “柴犬”と分類されるものの集合 属性とサブクラスの相違 同階に揃えて判定 属性:白い(犬(x)) ; 白い(x) ⊈犬(x) サブクラス:柴犬(犬(x)) ; 柴犬(x)⊆犬(x) © IT Consulting Co.,Ltd All Rights Reserved 猫 犬 猫 犬 タマ ポチ ミケ シロ ブチ 22 11 集合族とハイパー述語∈ 集合族:集合の集合 色={白い,黒い,赤い,青い,…} 犬={コリー,チワワ,…} ハイパー述語∈ 数学では: P(x) ⇔ x∈P, 白い(x) ⇔ x∈白い 元と集合との間の関係 述語抽出法では: 白い(犬(ポチ)) ⇔ 犬(ポチ) ∈色(白い) ⇔ ∈(犬, 色) 赤い ∈ 犬 犬 色 ポチ 赤 シロ 白 ブチ 斑 個例(ポチ)を元とする集合(犬)と集合(白い)を元とする集合族(色)とのあいだの2 項述語 色 単項述語:白い(犬(x)) - 白い犬の集合 集合族:集合 (述語)の集合 白い ハイパー述語∈は,いわゆる 主キーと非キー属性の組を与える © IT Consulting Co.,Ltd All Rights Reserved 23 ハイパー述語∈と属性の併合(1) 「ポチは白くて大きい犬である」 併合+と分配律 白い(犬(ポチ)) +大きい(犬(ポチ)) 白い(犬(ポチ)) ⇔ 犬(ポチ) ∈色(白い) ⇔ ∈(犬, 色) 大きい(犬(ポチ)) ⇔ 犬(ポチ) ∈サイズ(大きい) ⇔ ∈(犬, サイズ) ∈(犬, 色)+ ∈(犬, サイズ)= ∈(犬, (色+サイズ)) ハイパー述語の普遍性を回避 ∈(犬, (色+サイズ)) ⇒ 犬(犬ID, (色+サイズ)) © IT Consulting Co.,Ltd All Rights Reserved 24 12 ハイパー述語∈と属性の併合(2) ∈(犬, (色+サイズ)) ⇒ 犬(犬ID, (色+サイズ)) 白い 色 赤い 大 中 サイズ ∈ ∈ + 犬 ∈(犬,色) 犬 色 ポチ 赤 シロ ブチ ∈(犬,サイズ) 犬 サイズ 犬(犬ID,(色+サイズ)) 犬ID 色 サイズ ポチ 赤 大 白 シロ 白 斑 ブチ 斑 ポチ 大 中 シロ 中 小 ブチ 小 25 © IT Consulting Co.,Ltd All Rights Reserved 集合族とハイパー述語⊆ ハイパー述語⊆ 数学では: Q ⊆ P 述語抽出法では: 柴犬(犬(ポチ)) ⇔ 分類(柴犬) ⊆分類(犬) 集合間の包含関係 同一集合族内の集合間の推移的2項関連 スーパークラス/サブクラスの関係を与える 犬 分類 柴犬 ⊆ Sub Super 柴犬 犬 コリー 犬 シャム猫 猫 © IT Consulting Co.,Ltd All Rights Reserved 26 13 本当は,実体集合も関連集合も述語 「商品を,それを注文した顧客に,それを在庫する倉庫から,出荷する」 出荷する CGW 2階 注文する CG 1階 0階 -1階 在庫する GW 顧客 C 佐藤 コト 商品 G 鈴木 PC TV 倉庫 W CD 品川 横浜 モノ Universe of Discourse -- UoD(論議領域) © IT Consulting Co.,Ltd All Rights Reserved 27 述語そのものの生成 高階の述語の構文で,述語そのものの成立をも記述できる 述語本体(頭部)を[ ]で囲む 「ペットのポチは,身長が50cmだ」, 「ポチは,身長が50cmのペットだ」 [身長] 50cm(ペット(ポチ)) C(B(A( x)))⇔(A⊇B⊇C)∧(A∋x∧B∋x∧C∋x) ⇔ A⊇B⊇C∋x [[A]B]C (x)⇔[[[A]∋B]∋C]∋x⇔A∋B∋C∋x ∋ ∋ ∋ [身長] 50cm(ペット(ポチ)) ⊆ © IT Consulting Co.,Ltd All Rights Reserved 28 14 述語抽出法による意味論 「イナダとは,体長40cm位のブリである」, 「ブリの中で体長40cm位のものをイナダという」 辞書における 意味の与え方 高階の述語で表記すれば: [体長]40cm位(ブリ(x)) =イナダ(x) 意味とは,別名 [体長]40cm位(ブリ) = イナダ の解釈である 左辺が表すモノ: 集合ブリの中の,体長が40cm位であるものの集合 集合ブリの,「体長が40cm位である」と特徴付けられる部分集合 [体長]40cm位(ブリ) ⊆ブリ なので, イナダ⊆ブリ すなわち,イナダが ブリに従属するのは自明 サブクラスの正体 サブクラスとは,スーパークラスを何らかの特徴によって制限(特化)した ものである. 29 © IT Consulting Co.,Ltd All Rights Reserved 再び,成分と成立 従来理論では,3つの実体間の関係として同等に扱われる関係: 発注する(工場,部品,業者) 成分しか見ない 部品(部品番号,色,重量) 述語抽出法では,成立が異なる別種の関係 発注する(工場,部品,業者) ⊆使用する(工場,部品)*製造する(業者,部品) 部品(部品番号,色,重量) ⊆ [∈(部品番号,(色+重量))] = [∈(部品番号,色)+∈(部品番号,重量)] 工場 F ∈ PC 製造する PS 部品 P 重文 部品 P 発注する FPS 使用する FP 複文 業者 S 色 C © IT Consulting Co.,Ltd All Rights Reserved PCW ∈ PW 重量 W 30 15 ER図(従来理論)と高階の実体関連図の相違 IDEF1X A3.19 部門 部門No ER図 管理する 高階の実体関連図 遂行する DPTE 雇う プロジェクト プロジェクトNo 部門No(FK) 従業員 割当てる DPE 構成する DPT 従業員No 部門No(FK) 管理する DP 構成する 雇う DE 割り当てられる タスク タスク T プロジェクトNo(FK) タスクNo 注釈ではなく、 仕様そのもの 遂行される 従業員No(FK) 割り当て プロジェクトNo(FK) タスクNo(FK) 注)従業員は,自分を雇っ ている部門が管理するプロ ジェクトを構成するタスクに だけ割り当てられる 部門 D プロジェクト P 従業員 E 従業員は,自分を雇っている部門が管理するプロ ジェクトを構成するタスクにだけ割り当てられる 注釈が 必要 DB定義の制約だけでは,従業員 を他部門のプロジェクトのタスク に割り当てることができてしまう 31 © IT Consulting Co.,Ltd All Rights Reserved 高階の述語のまとめ 単項 多項 述語で示される性質を持つモノ(実体) の集合 述語で示されるコト(関連)の集合 モノゴトを表す P(x) 0階 例:人間(x),赤い(y) Q (P(x)) 1階 R(P(x), Q(y)) 0階の述語が表す集合の属性や分類 例:白い(猫(x)),三毛猫(猫(x)) R (Q(P(x))) 例:夫婦(人間(x), 人間(y)), 注文する(顧客(x),商品(y)) T(R(P(x), Q(y)), S(Q(y), V(z))) 高階 サブクラス(高階)-クラス(低階)の階層 例: 関係 出荷する(注文する(顧客(x),商品(y)), 例:三毛猫(猫(哺乳類(x))) 在庫する(商品(y),倉庫(z))) © IT Consulting Co.,Ltd All Rights Reserved 32 16 奇跡と逆説 奇跡 述語抽出法の概念モデルは,RDBMSの機能範囲で実装 できる 新規の仕掛け-全く新規のDBMS,あるいは,既存のRDBMSへ の追加機能-は不要 逆説 RDBMSは,関係理論ではなく,述語抽出法のために存在 する 関係理論は,RDBMSの機能の一部しか使わない,あるいは,使 い方を誤っている 33 © IT Consulting Co.,Ltd All Rights Reserved [CLOUDと述語抽出法]併合と列指向(KVS) 犬(x)∈色(y) +犬(x) ∈サイズ(z) ⇒ 犬(x)∈(色(y) +サイズ(z)) Table Row Key 犬∈色 Key Value 犬 色 犬∈サイズ 犬 サイズ 犬∈(色+サイズ) 犬 色 サイズ ポチ 赤 ポチ ポチ 赤 大 シロ 白 シロ 白 中 ブチ 斑 ブチ 斑 小 Column + 大 シロ 中 ブチ 小 = Column Tuple 述語抽出法は,生来,列指向である © IT Consulting Co.,Ltd All Rights Reserved 34 17
© Copyright 2024 ExpyDoc