nltk.sem.Model

class nltk.sem.Model[source]

Bases: object

A first order model is a domain D of discourse and a valuation V.

A domain D is a set, and a valuation V is a map that associates expressions with values in the model. The domain of V should be a subset of D.

Construct a new Model.

Parameters
  • domain (set) – A set of entities representing the domain of discourse of the model.

  • valuation (Valuation) – the valuation of the model.

  • prop – If this is set, then we are building a propositional model and don’t require the domain of V to be subset of D.

__init__(domain, valuation)[source]
evaluate(expr, g, trace=None)[source]

Read input expressions, and provide a handler for satisfy that blocks further propagation of the Undefined error. :param expr: An Expression of logic. :type g: Assignment :param g: an assignment to individual variables. :rtype: bool or ‘Undefined’

satisfy(parsed, g, trace=None)[source]

Recursive interpretation function for a formula of first-order logic.

Raises an Undefined error when parsed is an atomic string but is not a symbol or an individual variable.

Returns

Returns a truth value or Undefined if parsed is complex, and calls the interpretation function i if parsed is atomic.

Parameters
  • parsed – An expression of logic.

  • g (Assignment) – an assignment to individual variables.

i(parsed, g, trace=False)[source]

An interpretation function.

Assuming that parsed is atomic:

  • if parsed is a non-logical constant, calls the valuation V

  • else if parsed is an individual variable, calls assignment g

  • else returns Undefined.

Parameters
  • parsed – an Expression of logic.

  • g (Assignment) – an assignment to individual variables.

Returns

a semantic value

satisfiers(parsed, varex, g, trace=None, nesting=0)[source]

Generate the entities from the model’s domain that satisfy an open formula.

Parameters
Returns

a set of the entities that satisfy parsed.