Integrate elements.
* Move interface to KnowledgeBase object. * Connect process and evaluate calls.
This commit is contained in:
parent
edc3cb97ab
commit
e42ef8f415
6 changed files with 150 additions and 84 deletions
|
@ -1,23 +1,47 @@
|
|||
from knowledge_base import KnowledgeBase
|
||||
def resolve(elements, value):
|
||||
if isinstance(value, int):
|
||||
return elements[value]
|
||||
return value
|
||||
|
||||
|
||||
def property_for_value(knowledge_base: KnowledgeBase, value):
|
||||
def property_for_value(knowledge_base, value):
|
||||
print(value)
|
||||
print(knowledge_base[value])
|
||||
return knowledge_base[value]['as_property']
|
||||
|
||||
|
||||
def exists_property_with_value(knowledge_base: KnowledgeBase, subj, value):
|
||||
def exists_property_with_value(knowledge_base, elements, subj, value):
|
||||
subj = resolve(elements, subj)
|
||||
value = resolve(elements, value)
|
||||
|
||||
if subj not in knowledge_base:
|
||||
knowledge_base[subj] = {}
|
||||
|
||||
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 pertenence_to_group(knowledge_base, elements, subj, group):
|
||||
subj = resolve(elements, subj)
|
||||
group = resolve(elements, group)
|
||||
|
||||
if subj not in knowledge_base:
|
||||
knowledge_base[subj] = {}
|
||||
|
||||
if "groups" not in knowledge_base[subj]:
|
||||
knowledge_base[subj]["groups"] = set()
|
||||
knowledge_base[subj]["groups"].add(group)
|
||||
|
||||
|
||||
def has_capacity(knowledge_base: KnowledgeBase, subj, capacity):
|
||||
def has_capacity(knowledge_base, elements, subj, capacity):
|
||||
subj = resolve(elements, subj)
|
||||
capacity = resolve(elements, capacity)
|
||||
|
||||
if subj not in knowledge_base:
|
||||
knowledge_base[subj] = {}
|
||||
|
||||
if "capacities" not in knowledge_base[subj]:
|
||||
knowledge_base[subj]["capacities"] = []
|
||||
knowledge_base[subj]["capacities"].append(capacity)
|
||||
knowledge_base[subj]["capacities"] = set()
|
||||
knowledge_base[subj]["capacities"].add(capacity)
|
||||
|
||||
|
||||
knowledge_ingestion = {
|
||||
|
@ -27,7 +51,9 @@ knowledge_ingestion = {
|
|||
}
|
||||
|
||||
|
||||
def integrate_information(knowledge_base: KnowledgeBase, example):
|
||||
def integrate_information(knowledge_base, example):
|
||||
method = example['parsed'][0]
|
||||
args = example['parsed'][1:]
|
||||
knowledge_ingestion[method](knowledge_base, *args)
|
||||
elements = example.get('elements', None)
|
||||
|
||||
knowledge_ingestion[method](knowledge_base, elements, *args)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue