Add perform-verb-over-object and (failing) test.

This commit is contained in:
kenkeiras 2017-05-24 23:54:56 +02:00
parent e0a5f02c34
commit aa7bee4c8b
2 changed files with 34 additions and 6 deletions

View File

@ -208,6 +208,26 @@ def property_has_value(knowledge_base, elements, subj, prop, value):
element=value element=value
) )
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)
if subj not in knowledge_base:
knowledge_base[subj] = {'groups': set()}
if 'performs-over' not in knowledge_base[subj]:
knowledge_base[subj]['performs-over'] = {}
if verb not in knowledge_base[subj]['performs-over']:
knowledge_base[subj]['performs-over'][verb] = set()
return modifiable_element_for_existance_in_set(
container=knowledge_base[subj]['performs-over'],
set_name=verb,
element=obj
)
knowledge_ingestion = { knowledge_ingestion = {
"exists-property-with-value": exists_property_with_value, "exists-property-with-value": exists_property_with_value,
@ -216,6 +236,7 @@ knowledge_ingestion = {
"question": question, "question": question,
"implies": implies, "implies": implies,
"property-has-value": property_has_value, "property-has-value": property_has_value,
"perform-verb-over-object": perform_verb_over_object,
} }

View File

@ -85,12 +85,13 @@ examples = [
lambda knowledge: _assert('man' in knowledge.knowledge['socrates']['groups']) lambda knowledge: _assert('man' in knowledge.knowledge['socrates']['groups'])
),], ),],
}), }),
# { ('full_example',{
# "text": "Computers use electricity?", "text": "Computers use electricity?",
# "affirmation": "Computers use electricity?", "affirmation": "Computers use electricity",
# "parsed": (), "parsed": ("question",
# "answer": None, ('perform-verb-over-object', 'computers', 'use', 'electricity')),
# }, "answer": True,
}),
# { # {
# "text": "The dominant language in france is french?", # "text": "The dominant language in france is french?",
# "affirmation": "The dominant language in france is french?", # "affirmation": "The dominant language in france is french?",
@ -664,6 +665,12 @@ base_knowledge = {
'fly': { 'fly': {
"groups": {'verb'}, "groups": {'verb'},
}, },
'use': {
"groups": {'verb'},
},
'electricity': {
"groups": {},
},
} }
def main(): def main():