from knowledge_base import KnowledgeBase def property_for_value(knowledge_base: KnowledgeBase, value): return knowledge_base[value]['as_property'] def exists_property_with_value(knowledge_base: KnowledgeBase, subj, value): knowledge_base[subj][property_for_value(knowledge_base, value)] = value def pertenence_to_group(knowledge_base: KnowledgeBase, subj, group): knowledge_base[subj]["group"] = group def has_capacity(knowledge_base: KnowledgeBase, subj, capacity): if "capacities" not in knowledge_base[subj]: knowledge_base[subj]["capacities"] = [] knowledge_base[subj]["capacities"].append(capacity) knowledge_ingestion = { "exists-property-with-value": exists_property_with_value, "pertenence-to-group": pertenence_to_group, "has-capacity": has_capacity, } def integrate_information(knowledge_base: KnowledgeBase, example): method = example['parsed'][0] args = example['parsed'][1:] knowledge_ingestion[method](knowledge_base, *args)