Work in progress.

* Test
 * More debugging
 * Base concept
This commit is contained in:
kenkeiras 2017-05-28 22:39:04 +02:00
parent aa7bee4c8b
commit 9d49d00688
4 changed files with 62 additions and 10 deletions

View file

@ -1,3 +1,5 @@
import logging
from .modifiable_property import (
ModifiableProperty,
ModifiablePropertyWithAst,
@ -9,6 +11,7 @@ def resolve(knowledge_base, elements, value):
if isinstance(value, int):
return elements[value]
elif isinstance(value, tuple) or isinstance(value, list):
print("V:", value, elements)
return integrate_information(knowledge_base, {
"elements": elements,
"parsed": value,
@ -100,11 +103,17 @@ def exists_property_with_value(knowledge_base, elements, subj, value):
def modifiable_element_for_existance_in_set(container, set_name, element):
print("-----({} {} {})".format(container, set_name, element))
import traceback
# traceback.print_stack()
def getter():
nonlocal container, set_name, element
print(" get({} {} {})".format(container, set_name, element))
return (set_name in container) and (element in container[set_name])
def setter():
print(" add({} {} {})".format(container, set_name, element))
nonlocal container, set_name, element
return container[set_name].add(element)
@ -212,6 +221,7 @@ def perform_verb_over_object(knowledge_base, elements, subj, verb, obj):
subj = resolve(knowledge_base, elements, subj)
verb = resolve(knowledge_base, elements, verb)
obj = resolve(knowledge_base, elements, obj)
logging.debug("({} {} {})".format(verb, subj, obj))
if subj not in knowledge_base:
knowledge_base[subj] = {'groups': set()}
@ -255,6 +265,11 @@ def integrate_information(knowledge_base, example):
args = ast[1:]
elements = example.get('elements', None)
logging.debug("Integrating:")
logging.debug("AST: {}".format(ast))
logging.debug("ARG: {}".format(elements))
logging.debug("------------")
return tagged_with_ast(
ast, elements,
knowledge_ingestion[method](knowledge_base, elements, *args))