述語抽出法 - 有限会社アイティーコンサルティング

本スライドについて



本スライドは、述語抽出法のエッセンスを手早く紹介するために作成した
もので、口頭による説明が付くことを前提にしています。
そのため、用語や記号の詳細は記述されておりません。詳細な説明が必
要な方は、書籍(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