From cbeefcf76ba798d3cdf00c9c33284f5ef6197e35 Mon Sep 17 00:00:00 2001 From: kenkeiras Date: Wed, 24 May 2017 22:05:46 +0200 Subject: [PATCH] Identify group "concepts" on-flight. --- naive-nlu/tree_nlu/knowledge_evaluation.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/naive-nlu/tree_nlu/knowledge_evaluation.py b/naive-nlu/tree_nlu/knowledge_evaluation.py index 4a49faa..5cc4f65 100644 --- a/naive-nlu/tree_nlu/knowledge_evaluation.py +++ b/naive-nlu/tree_nlu/knowledge_evaluation.py @@ -113,6 +113,21 @@ def modifiable_element_for_existance_in_set(container, set_name, element): setter=setter, ) +def modifiable_element_for_existance_in_group(container, element, backlink, set_name='groups'): + def getter(): + nonlocal container, element, backlink, set_name + return (set_name in container) and (element in container[set_name]) + + def setter(): + nonlocal container, set_name, element + backlink['groups'].add(set_name) + return container[set_name].add(element) + + return ModifiableProperty( + getter=getter, + setter=setter, + ) + def pertenence_to_group(knowledge_base, elements, subj, group): subj = resolve(knowledge_base, elements, subj) group = resolve(knowledge_base, elements, group)