def _test_case(scene, expression, expected, msg=None):
  from pprint import pprint
  print("Objects:")
  pprint(scene['objects'])

  model = Model(scene, ontology)
  expr = Expression.fromstring(expression)
  value = model.evaluate(expr)
  print(expr)
  print("Expected:", expected)
  print("Observed:", value)

  eq_(value, expected, msg)
Beispiel #2
0
                         include_semantics=True)

#######
# Execute on a scene.

scene = {
    "objects": [
        Object("sphere", "big", "rubber"),
        Object("cube", "small", "metal"),
        Object("cylinder", "small", "rubber"),
    ]
}

model = Model(scene, ontology)
print("the ball")
print(model.evaluate(Expression.fromstring(r"unique(\x.has_shape(x,sphere))")))

######
# Parse an utterance and execute.

learner = WordLearner(lex)

# Update with distant supervision.
learner.update_with_distant("the cube".split(), model, scene['objects'][1])

parser = learner.make_parser()
results = parser.parse("the cube".split())
printCCGDerivation(results[0])

root_token, _ = results[0].label()
print(root_token.semantics())