A Semantic Web Primer輪読 5章(担当:沼)

Download Report

Transcript A Semantic Web Primer輪読 5章(担当:沼)

2005/08/11
セマンティックウェブとメタデータ勉強会#3
5.
Logic and Inference
Rules
沼 晃介
総合研究大学院大学
国立情報学研究所
Outline
•
•
•
•
•
Introduction
単調ルール(Monotonic Rules)
非単調ルール(Nonmonotonic Rules)
XMLによる単調ルールのマークアップ
XMLによる非単調ルールのマークアップ
5.1
Introduction
Logic
• 明確な表現
• 形式的な意味論(semantics)
• 論理的帰結(logical consequence)の正確な概念がある:
他の宣言の集合から宣言を導出可能かを決定する
• 統語的(syntactic)に宣言(statement)を導出する証明シス
テム(proof system)が存在する
• 統語的な導出と一致する意味的な論理的帰結を導出で
きる証明システムが存在する
• 述語論理(predicate logic)は、健全で完全な証明システ
ムが存在する点で他にない
• 証明システムが存在すれば、論理的帰結を導く証明を
トレースできる
Rule System
• 効率的な証明システムのある述語論理のサブ
セット
• Horn logicやdefinite logic programsとも
• 形式:
A1 ,..., An  B A, Bは原子式(atomic formula)
• 演鐸ルール(deductive rule)とリアクティブルール
(reactive rule)の2つの読みが可能
• この章では演鐸ルールを扱う
記述論理vs述語論理
• 記述論理(description logic)と述語論理は相互独
立な関係(orthogonal)
• 例)同じ街で勉強し暮らしている人は、「地元学
生」
– OWLではわからない
– ルールでは容易
studies  X , Y , lives  X , Z , loc Y , U , loc  Z , U  
homeStuden t  X

単調ルールと非単調ルール
• 例) 誕生日に特別割引をする
– R1: もし誕生日なら特別割引をする
– R2: もし誕生日でなければ特別割引はしない
• でも誕生日がわからなかったら?
– R1: もし誕生日なら特別割引をする
– R2´: もし誕生日がわからなければ特別割引はしない
• 2つの問題
– 述語論理の表現を超える
– あとで誕生日が判明したら?
• 単調なルール、非単調なルール
5.2-5.4
Monotonic Rules
単調ルール
5.2 単調ルールの例
• 基本述語
X ,Y 
father  X , Y 
male  X 
female Y 
mother
• ルールを使い、述語を定義して、多くの関係を推論できる
 X , Y   parent  X , Y 
father  X , Y   parent  X , Y 
male  X , parent  P , X , parent  P , Y , notSame  X , Y  
brother  X , P , parent  P , Y   uncle  X , Y 
mother  X , P , parent  P , Y   grandmothe r  X , Y 
parent  X , Y   ancestor  X , Y 
ancestor  X , P , parent  P , Y   ancestor  X , Y 
mother
brother
X ,Y 
5.3 単調ルールの構文(syntax)
loyalCusto mer  X , age  X

premises
body
• 変数(variables)
60  discount
head
値の保持場所: X
• 定数(constants)
固定された値: 60
• 述語(predicates)
オブジェクトの関連付け: loyalCustomer, >
• 関数記号(function symbols)
特定の引数に関する値: age
X 
5.3.1-5.3.3
Rules, Facts, Logic Programs
• 述語論理解釈
ルール
解釈
r : B1 ,..., B n  A
pl  r  :  X 1 ...  X k  B1  ...  B n   A 
 X 1 ...  X k  A   B1  ...   B n 
• 事実(Facts)
原子式
loyalCustomer(a345678)
• 論理プログラム(Logic Programs)
事実とルールの有限集合
5.3.4 Goals
• プログラムに対するクエリ
G : B1 ,..., B n 
• 背理法を用いて結論を得る
– Gは以下と同値
 X 1 ...  X k  B1  ...   B n 
 X 1 ...  X k  B1  ...  B n 
–
–
–
–
p(a) が事実、 p(X)→ がゴールとする
ゴールは ¬∃X p(X) と読める
事実とゴールは矛盾
∃X p(X) が導かれた
5.4 単調ルールの意味論(semantics)
• 5.4.1 述語論理意味論
– ルール、事実、クエリを述語論理的に解釈
– 述語論理の解釈とは;
• 論理言語(記号)の要素には任意の意味を持たせられる
• 述語論理モデルAには特定の意味を与える
• 論理結合子¬、∨、∧、→、∀、∃は、直感的意味:否定、和、
積、含意、すべての、存在する、に対応
• A|=Ψ :論理式ΨがモデルAにおいて真かどうか
• 論理式の集合Mが真であるモデルAにおいて、論理式Ψが
真のとき、ΨはMから帰結される(Ψ follows from M)という
5.4.1 述語論理意味論(cont’d)
• 具体例
– プログラムP p  a 
pX   qX

– クエリ q  X   を考える
• q(a) であれば、pl(P) から帰結される:肯定
• q(b) では、pl(P) から帰結されない:否定
5.4.2 Ground
and Parameterized Witnesses 1
• 次の事実とクエリがあるとき
p a 
pX  
答え Yes は正しいが、不満足
• 定数による証拠(Ground Witness)
{X/a} という置換(substitution)の定数a
5.4.2 Ground
and Parameterized Witnesses 2
• プログラム
add  X , 0 , X
add

X ,Y , Z  
add  X , s Y , s  Z 
※ s は引数に 1 足したものを返す
クエリ
add  X , s 0 , Z  
8
• 定数による証拠をあげると
{X/0,Z/s8(0)}, {X/s(0),Z/s9(0)},…と無限にある
• パラメータ化された証拠(Parameterized Witness)
Z = s8(X)
5.5-5.6
Nonmonotonic Rules
非単調ルール
5.5 非単調ルール
• 非単調ルールでは、ルールは棄却可能
(defeasible)
• 否定の原子式がheadやbodyに出現
• 単調ルールとは別の矢印を使う
• ルール間に優先順位をつける
r1 : p  X   q  X

r2 : r  X    q  X

r1  r2
• 事実p(a), r(a)があると、p(a)が導出される
5.5.2 構文
• 形式
r : L1 , L 2 ,..., L n  L
•
•
•
•
ラベル(label): r
body, 前提(premises): {L1, …, Ln}
head: L
リテラル: L, L1, …, Ln
肯定・否定のリテラル(関数記号を含まない原子式・その否定)
• 論争論理プログラム(defeasible logic program)
事実の集合「F」、ルールの集合「R」、非循環2項関係「>」のトリプル(F, R, >)
5.6 具体例
• アパート探しの仲介
カルロスは少なくとも45平米で2部屋以上のアパートを探してい
る。もし部屋が4階以上にあるのなら、建物にはエレベータがなけ
ればならない。またペットの飼育も可能でなければならない。
カルロスは45平米で中心街にあるのであれば300ドル出しても
いいと考えており、郊外で同じ条件以上であれば、250ドル出して
もいいと考えている。加えて、部屋の広さが条件以上であれば、1
平米毎に5ドル、また庭については1平米につき2ドル出してもよ
いと考えている。
彼は全体として400ドル以上は出せない。もし、複数の候補が
与えられれば、最も安い条件のアパートを購入するであろう。彼
の2番目の優先順位は庭があるということである。最も低い優先
順位はスペースの追加である。
5.6.1 要求の形式化
述語
• size(x,y)
• bedrooms(x,y)
• price(x,y)
• floor(x,y)
• garden(x,y)
• lift(x)
• pets(x)
• central(x)
• acceptable(x)
• offer(x,y)
アパートxの広さはy平米
xの部屋数はy
xの値段はy
xはy階にある
xには広さyの庭がある
xにはエレベータがある
xはペット可
xは中心街にある
アパートxはカルロスの要求にあう
カルロスはxにyドル払える
5.6.1 要求の形式化(cont’d)
X 
r2 : bedrooms  X , Y , Y  2   acceptable  X 
r3 : size  X , Y , Y  45   acceptable  X 
r4 :  pets  X    acceptable  X 
r5 : floor  X , Y , Y  3 ,  lift  X    acceptable  X 
r6 : price  X , Y , Y  400   acceptable  X 
r1 : acceptable
r2  r1 , r3  r1 , r4  r1 , r5  r1 , r6  r1
r7 : size  X , Y , Y  45 , garden
 X , Y , central  X 
 offer  X , 300  2 Z  5 (Y  45 ) 
r8 : size  X , Y , Y  45 , garden  X , Y ,  central  X 
 offer  X , 250  2 Z  5 (Y  45 ) 
r9 : offer  X , Y , price ( X , Z ), Y  Z   acceptable  X 
r9  r1
5.6.2 購入可能なアパートの表現
アパート
寝室
広さ
中心街
階
エレベータ
ペット
庭
価格
a1
a2
a3
a4
a5
a6
a7
1
2
2
2
3
2
3
50
45
65
55
55
60
65
yes
yes
no
no
yes
yes
yes
2
1
3
2
1
4
2
no
no
no
yes
no
no
no
yes
yes
yes
no
yes
no
yes
0
0
0
15
15
0
12
300
335
350
330
350
370
375
5.6.2 購入可能なアパートの表現
(cont’d)
• アパートa1
 a 1 ,1 
size  a 1 , 50 
central  a 1 
floor  a 1 ,1 
 lift  a 1 , 0 
pets  a 1 
garden  a 1 , 0 
price  a 1 , 300 
bedrooms
5.6.2 購入可能なアパートの表現
(cont’d)
• アパートa1は寝室1つなのでNG(ルールr2)
• ペットが飼えないのでa4とa6はNG(ルールr4)
• a2は、カルロスが払える300ドルより高い(ルール
r7とルールr9)
• アパートa3とa5とa7は条件に合う(ルールr1)
5.6.3 アパートの選択
• 追加ルール
r10 : cheapest
r11 : cheapest
r12 : cheapest
 X   rent  X 
 X , largestGar den  X   rent  X 
 X , largestGar den  X , largest  X  
r12  r10 , r12  r11 , r11  r10
• 事実
a 3 
cheapest  a 5 
largest  a 3 
largest  a 7 
cheapest
largestGar den  a 5 
rent  X

5.6.3 アパートの選択(cont’d)
• ルールr11はa5に適用できる
• ルールr10はa3に適用できるので、競合が起こる。
だが、この競合はルールr11がr10より強いという
条件から解消され、a5が残る。
• r11がr12の優先条件に当てはまるアパートはない
ため、これが唯一の競合である。
5.7
Rule Markup in XML
単調ルール
5.7.1 項(term)
• <term>, <function>, <var>, <const>を用いて表現
<term>
<function>f</function>
f  X , a , g b , Y

<term><var>X</var></term>
<term><const>a</const></term>
<term>
<function>g</function>
<term><const>b</const></term>
<term><var>Y</var></term>
</term>
</term>
5.7.2 原子論理式(atomic formula)
• <atom>, <predicate>を追加
<atom>
<predicate>p</predicate>
p  X , a , f b , Y

<term><var>X</var></term>
<term><const>a</const></term>
<term>
<function>f</function>
<term><const>b</const></term>
<term><var>Y</var></term>
</term>
</atom>
5.7.3 事実 (fact)
• 原子論理式を<fact>で囲む
<fact>
<atom>
p a 
<predicate>p</predicate>
<term><const>a</const></term>
</atom>
</fact>
5.7.4 ルール (rule)
• <rule>, <head>, <body>を追加
p  X , a , q Y , b   r  X , Y
<rule>

<predicate>p</predicate>
<head>
<term><var>X</var></term>
<atom>
<term><const>a</const></term>
<predicate>r</predicate>
</atom>
<term><var>X</var></term>
<atom>
<term><var>Y</var></term>
<predicate>q</predicate>
</atom>
<term><var>Y</var></term>
</head>
<body>
<atom>
<term><const>b</const></term>
</atom>
</body>
</rule>
5.7.5 クエリ (query)
• ruleのbody(atomのリスト)で表現され、
<query>で囲む
<query>
<atom>
p  X , a , q Y , b  
<predicate>p</predicate>
<term><var>X</var></term>
<term><const>a</const></term>
</atom>
<atom>
<predicate>q</predicate>
<term><var>Y</var></term>
<term><const>b</const></term>
</atom>
</query>
5.7.6 DTD
<!ELEMENT program ((rule | fact)*)>
<!ELEMENT fact (atom)>
<!ELEMENT rule (head, body)>
<!ELEMENT head (atom)>
<!ELEMENT body (atom*)>
<!ELEMENT atom (predicate, term*)>
<!ELEMENT term (const | var | (function, term*))>
<!ELEMENT predicate (#PCDATA)>
<!ELEMENT function (#PCDATA)>
<!ELEMENT var (#PCDATA)>
<!ELEMENT const (#PCDATA)>
<!ELEMENT query (atom*)>
5.7.7 RuleML
• 標準化中のルール記述手法
• 順番は関係ない
この本のDTD
RuleML
program
rulebase
fact
fact
rule
imp
head
_head
body
_body
atom
atom
atom*
and
predicate
rel
const
ind
var
var
この本のRuleMLは
Version 0.8くらい?
現在は改定が重ね
られ、0.89になって、
だいぶ変わっている
5.8
Rule Markup in XML
非単調ルール
単調ルールとの構文比較
•
•
•
•
関数記号はない
否定の原子式がルールのheadやbodyに現れる
ルールはラベルを持つ
プログラムには、ルールと事実のほかに、優先
順位を含む
• 使用構文
– ラベル:ruleのid属性
– 優先順位:<stronger>
– 否定:<neg>
5.8.2 DTD
<!ELEMENT program ((rule | fact | stronger)*)>
<!ELEMENT fact (atom | neg)>
<!ELEMENT neg (atom)>
<!ELEMENT rule (head, body)>
<!ATTLIST rule
id ID #IMPLIED>
<!ELEMENT head (atom | neg)>
<!ELEMENT body ((atom | neg)*)>
<!ELEMENT atom (predicate, (var | const)*)>
<!ELEMENT stronger EMPTY>
<!ATTLIST stronger
superior IDREF #REQUIRED>
inferior IDREF #REQUIRED>
<!ELEMENT predicate (#PCDATA)>
<!ELEMENT var (#PCDATA)>
<!ELEMENT const (#PCDATA)>
<!ELEMENT query (atom*)>
5.9
Summary
まとめ
• ホーン論理は述語論理のサブセットであり、効率
的な推論が可能。ホーン論理は記述論理(DL)
に対して直行的なサブセットを形成。
• ホーン論理は単調ルールの基礎。
• 非単調論理ルールは、利用可能な情報が完全
でない状況で便利。矛盾する証拠によって上書
きされることがあるルール。
• 優先順位は非単調論理の競合を解消する。
• XMLに似た記述言語によるルール表現はわか
りやすい。
和訳部分はジャストシステム知識活用研究グループ
Gnosis翻訳の『CD-ROMで始めるセマンティックWeb』
(2005年6月)から一部引用した。