RuleTransformation

From Knowitall
Revision as of 21:00, 21 August 2013 by Niranjan (talk | contribs) (Examples)

Jump to: navigation, search

Overview

Inference rules are represented in human-readable format. This page describes the transformation of these rules into Tuffy's MLN syntax.


We first define a general purpose tuple predicate (T) that can represent n-ary and nested tuples.

T(arg1:String, rel:String, arg2:String, arg3:String, narg1:String, nrel:String, narg2:String)

Rules that specify when two arguments match (e.g., under synonymy, stemming, and/or dropping of modifiers) need to be enumerated out for each argument position.

Types of transformations

Equality under stemming will be covered by the following rules:

T(a1, rel, a2, a3, na1, arel, na2), stem(a1, x) => T(x, rel, a2, a3, na1, nrel, na2)
T(a1, rel, a2, a3, na1, arel, na2), stem(rel, x) => T(a1, x, a2, a3, na1, nrel, na2)
T(a1, rel, a2, a3, na1, arel, na2), stem(a2, x) => T(a1, rel, x, a3, na1, nrel, na2)
...
...

Equality under head word transformations will be covered by the following rules:

T(a1, rel, a2, a3, na1, arel, na2) [headword(a1) == x || headword(x) == a1] => T(x, rel, a2, a3, na1, nrel, na2)
...
...


Allowing the argument with "something" to match any value. 

T(a1, rel, "something", a3, na1, nrel, na2) => T(a1, rel, x, na1, nrel, na2)
...

Examples

Question to demonstrate

“Growth causes leaves of a plant to become large”.

(growth, cause,  (leaves of a plant, become large))	[nested, with intransitive arg2] 
(growth, cause,  (leaves of a plant, become, large))	[nested, with binary rel for arg2]
Evidence from definition

“The noun growth is the process of something becoming bigger”

(growth, is process of, (something, become bigger)
(growth, is process of, (something, become, bigger))
Rules needed
Id Rule Description Tuffy Format
1. Rel: X => Rel: is process of T(a1, x, a2, a3, na1, nrel, na2, na3) => T(a1, "is process of", a2, a3, na1, nrel, na2, na3) Generalize any action to “is process of”
1a. Rel: cause => Rel: is process of [more particular version of rule 2] T(a1, "cause", a2, ...) => T(a1, "is process of", ...)


1. Rel: X => Rel: is process of [generalize any action to “is process of”]

1a. Rel: cause => Rel: is process of [more particular version of rule 2]

2. Rel: is process of => Rel: X [abductive rule, inverse of rule 1]

2a. Rel: is process of => Rel: cause [abductive rule, inverse of rule 1a]

3. Arg: X => Arg: something [generalize any arg value to “something”]

4. Arg: something => Arg: X [abductive rule, inverse of rule 3]

5. Rel: become bigger => Rel: become big [lexical substitution from verb stemmer]

6. Rel: become big => Rel: become large [lexical substitution from WN synonym]


Notes on rules:

We can derive abductive inverses automatically with a meta-rule. Lexical substitution rules are generated on the fly as needed.

Derivation
Evidence: 
	(growth, is process of, (something, become bigger)) 
Rel: become bigger   =>  Rel: become big
	(growth, is process of, (something, become big))
Rel: become big  =>  Rel: become large
	(growth, is process of, (something, become large))
Arg: something  =>  Arg: X
	(growth, is process of, (leaves of a plant, become large))
Rel: is process of  =>  Rel: X
	(growth, cause,  (leaves of a plant, become large))   QED