Upload
hilda-hubbard
View
221
Download
0
Embed Size (px)
Citation preview
Guiding Inference with Conceptual Graphs
Bruce Porter
Univ Texas at Austin
Peter Clark
Boeing Research
Context: Multifunctional KBs
• Goal: KB can answer a wide variety of questions
• Need representation language which
– is natural for the K engineer (CGs)
– supports inference (CGs?)
• Botany KB:
– 20k concepts (“graphs”), 100k facts
– CG-like language = KM
Vocabularies for Inference• Beta rules: the “assembly code” of
inference• Minimal joins: a “derived rule”
P:p1
schema for P(x) isP:*x r Q
r QP:p1=
+
(a `scenario’)
(a schema)
(an elaborated scenario)
Minimal join = a sequence of beta rulesP:p1
schema for P(x) isP:*x r Q r QP:p1+ =
P:p1 P:*x r(P:*x,Q)
P:p1 P:*x r(P:*x,Q)P:p1
P:p1 r(P:p1,Q)P:p1
P:p1 r(P:p1,Q)
P:p1 r(P:p1,Q)
r QP:p1=
(insertion)
(coreferent join)
(deiteration)
(double negation)
QED
Proof:
The CG Inference Task• Given:
– an initial scenario CG– a query (= unknown node in the scenario)
• Find:– a sequence of joins which instantiate that node
(answer the query)
objperson:joe necktieagnt buy:b01
buy:b01
inst
?
Scenario:
Query:
Goal: find ?
(“what is the instrument of the buy?” Ans: $10)
Inference using Joins
objperson:joe necktiebuy:b01agnt
inst
?
Query: inst(b1,X)?Query: “What is the instrument of the buy?” (Ans: $10)
objperson physobjbuy:*xagnt
inst
money:@?
valueposs
schema for buy(x) is
inst
money:@?
valueposs
necktie:*x
value
schema for necktie(x) is
$10
worn-by
person
money:$10
worn-by
person
Ans: $10!
An alternative sequence of joins
objperson:joe necktiebuy:b01agnt
inst
?
Query: inst(b1,X)?
objperson physobjbuy:*xagnt
inst
money:@?
valueposs
schema for buy(x) is
inst
money:@?
valueposs
person:*x
part
head
part
body
schema for person(x) is
part
head
part
body
schema for head(x) is
head has hair
shaperound
has hair
shaperound
money:*x carry-in wallet
schema for money(x) is
carry-in wallet
Solution: Access Paths• A chain of predicates (path in a CG)• Encodes how to compute a node from others
– 1. follow the path– 2. if stuck, do a join at the current node
• Introduces controlled incompleteness
The Inference Problem
• Many joins possible• Complete reasoning is intractible!
Schema with Access Paths
objperson physobjbuy:*xagnt
inst
*x.obj.value
poss
*x.inst
schema for buy(x) is
Standard CG Schemaobjperson physobjbuy:*xagnt
inst
money:@?
valueposs
schema for buy(x) is
value
?
Query: inst(b1,X)?
objperson:joe necktiebuy:b1agnt
Query: “What is the instrument of the buy?” (Ans: $10)
Example of paths guiding inference
?
inst
schema for buy(x) is
objperson physobjbuy:*bagnt
inst
*b.obj.value
poss
*b.inst
inst
b1.obj.value
inst
b1.obj.value
value
?
Query: inst(b1,X)?
objperson:joe necktiebuy:b1agnt
Query: “What is the instrument of the buy?” (Ans: $10)
Example of paths guiding inference
inst
b1.obj.value
value
?
necktie:*x
value
$10
person
worn-byschema for necktie(x) is
value
$10
Ans: $10!
Inference with Access Paths
• Algorithm:
– follow the path
– if stuck, do a join at current node
• Provides a focal point in the graph
• Defines when and where to expand
• Focuses/restricts inference
Adding Type Definitions
• Type definitions allow classification
• => class of objects in scenario may need updating
• Requires a classification step after each join
adhesive:a1 joins wood
type nail(x) is adhesive:*x joins wood
nail:a1 joins wood
(scenario)
(type defn)
(elaborated scenario)
+
=
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?
assemble:*xobjphysobj inst
*x.adhesive.tool
adhesive
adhesivejoins*x.obj.matr
schema for assemble(x) is
inst
a1.adhesive.tool
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?inst
a1.adhesive.tool
?
adhesive
? tool
assemble:*xobjphysobj inst
*x.adhesive.tool
adhesive
adhesivejoins*x.obj.matr
schema for assemble(x) is
adhesive
adhesive
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?inst
a1.adhesive.tool
?
adhesive
? tool
adhesive
adhesivenail
hammer
metal
made-of
toolnail:*xjoinswood
schema for nail(x) is
hammertool
Ans: hammer!
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?inst
a1.adhesive.tool
?
adhesive
? tool
adhesive
adhesive
adhesive:*xjoinswood
type nail(x) is
Subquery: joins(adh1,wood)?
joins?
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?inst
a1.adhesive.tool
?
adhesive
? tool
adhesive
adhesive
Subquery: joins(adh1,wood)?
joins?
assemble:*xobjphysobj inst
*x.adhesive.tool
adhesive
adhesivejoins*x.obj.matr
schema for assemble(x) is
joinsa1.obj.matr
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?inst
a1.adhesive.tool
?
adhesive
? tool
adhesive
adhesive
Subquery: joins(adh1,wood)?
joins? joinsa1.obj.matr
matr
?
table:*x
matr
wood
schema for table(x) is
legs
4
purpose support
matr
wood
matr
wood
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?inst
a1.adhesive.tool
?
adhesive
? tool
adhesive
adhesive
Subquery: joins(adh1,wood)!
joins? joinsa1.obj.matr
adhesive:*xjoinswood
type nail(x) is
nail
matr
wood
assemble:a1objtable
Query: inst(a1,X)?Query: “What instrument assembles a table?” (Answer: “a hammer”)
inst
?inst
a1.adhesive.tool
?
adhesive
? tool
adhesive
adhesivejoins? joinsa1.obj.matrnail
Discussion
• Paths
– specify preferred sequence of subgoals
– say which joins to perform
• Restricts and focuses inference
• Trade-off completeness for tractability
• Key issue: Can engineer encode suitable paths?
• Extension of CGs
Summary
• Inference with CGs: beta rules and joins
• Search problem: which sequence of joins to use?
• Soln: access paths
– focus inference
– show where and when to do a join
• Basis for the Botany KB (Univ Texas Austin) + some of Boeing’s new KR work