guiding inference with conceptual graphs bruce porter univ texas at austin peter clark boeing...
TRANSCRIPT
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