Add question asking operator.
This commit is contained in:
parent
675a494723
commit
3cc1f9bcde
@ -4,7 +4,7 @@ from modifiable_property import ModifiableProperty
|
||||
def resolve(knowledge_base, elements, value):
|
||||
if isinstance(value, int):
|
||||
return elements[value]
|
||||
elif isinstance(value, tuple):
|
||||
elif isinstance(value, tuple) or isinstance(value, list):
|
||||
return integrate_information(knowledge_base, {
|
||||
"elements": elements,
|
||||
"parsed": value,
|
||||
@ -89,10 +89,19 @@ def has_capacity(knowledge_base, elements, subj, capacity):
|
||||
)
|
||||
|
||||
|
||||
def question(knowledge_base, elements, subj):
|
||||
subj = resolve(knowledge_base, elements, subj)
|
||||
|
||||
if isinstance(subj, ModifiableProperty):
|
||||
return subj.getter()
|
||||
return subj
|
||||
|
||||
|
||||
knowledge_ingestion = {
|
||||
"exists-property-with-value": exists_property_with_value,
|
||||
"pertenence-to-group": pertenence_to_group,
|
||||
"has-capacity": has_capacity,
|
||||
"question": question,
|
||||
}
|
||||
|
||||
|
||||
|
@ -74,6 +74,17 @@ base_knowledge = {
|
||||
}
|
||||
|
||||
|
||||
def test_assumption(expectedResponse, knowledge, query):
|
||||
print("Query: {}".format(query['text']))
|
||||
print("Expected: {}".format(expectedResponse))
|
||||
|
||||
import knowledge_evaluation
|
||||
result = knowledge_evaluation.integrate_information(
|
||||
knowledge.knowledge,
|
||||
query)
|
||||
print("\x1b[0;3{}mResult: {}\x1b[0m".format("1" if result != expectedResponse else "2", result))
|
||||
|
||||
|
||||
def main():
|
||||
knowledge = KnowledgeBase(
|
||||
knowledge=base_knowledge,
|
||||
@ -93,7 +104,12 @@ def main():
|
||||
print()
|
||||
print('-----')
|
||||
print(json.dumps(sorted(knowledge.knowledge.keys()), indent=4))
|
||||
print('-----')
|
||||
queryTrue = { "text": "is io a moon?", "parsed": ("question", ("pertenence-to-group", "io", "moon")) }
|
||||
queryFalse = { "text": "is io a planet?", "parsed": ("question", ("pertenence-to-group", "io", "planet")) }
|
||||
|
||||
test_assumption(True, knowledge, queryTrue)
|
||||
test_assumption(False, knowledge, queryFalse)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user