nltk.ApplicationExpression

class nltk.ApplicationExpression(function, argument)[source]

This class is used to represent two related types of logical expressions.

The first is a Predicate Expression, such as “P(x,y)”. A predicate expression is comprised of a FunctionVariableExpression or ConstantExpression as the predicate and a list of Expressions as the arguments.

The second is a an application of one expression to another, such as “(x.dog(x))(fido)”.

The reason Predicate Expressions are treated as Application Expressions is that the Variable Expression predicate of the expression may be replaced with another Expression, such as a LambdaExpression, which would mean that the Predicate should be thought of as being applied to the arguments.

The logical expression reader will always curry arguments in a application expression. So, “x y.see(x,y)(john,mary)” will be represented internally as “((x y.(see(x))(y))(john))(mary)”. This simplifies the internals since there will always be exactly one argument in an application.

The str() method will usually print the curried forms of application expressions. The one exception is when the the application expression is really a predicate expression (ie, underlying function is an AbstractVariableExpression). This means that the example from above will be returned as “(x y.see(x,y)(john))(mary)”.

Methods

__init__(function, argument)
param function:Expression, for the function expression
applyto(other)
constants()
see:Expression.constants()
equiv(other[, prover]) Check for logical equivalence.
findtype(variable) :see Expression.findtype()
free() Return a set of all the free (non-bound) variables.
fromstring(s[, type_check, signature])
is_atom() Is this expression an atom (as opposed to a lambda expression applied
make_VariableExpression(variable)
negate() If this is a negated expression, remove the negation.
normalize([newvars]) Rename auto-generated unique variables
predicates()
see:Expression.predicates()
replace(variable, expression[, ...]) Replace every instance of ‘variable’ with ‘expression’
simplify()
substitute_bindings(bindings)
typecheck([signature]) Infer and check types.
uncurry() Uncurry this application expression
unicode_repr()
variables() Return a set of all the variables for binding substitution.
visit(function, combinator)
see:Expression.visit()
visit_structured(function, combinator) Recursively visit subexpressions.

Attributes

args Return uncurried arg-list
pred Return uncurried base-function.
type