-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathiengine.py
More file actions
33 lines (28 loc) · 823 Bytes
/
iengine.py
File metadata and controls
33 lines (28 loc) · 823 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
from knowledge_base import KnowledgeBase
def main():
if len(sys.argv) != 3:
print("Usage: python iengine.py <filename> <method>")
sys.exit(1)
filename = sys.argv[1]
method = sys.argv[2]
kb = KnowledgeBase(filename)
if method == "FC":
result, inferred_symbols = kb.forward_chaining()
if result:
print(f"YES: {', '.join(inferred_symbols)}")
else:
print("NO")
elif method == "BC":
result, used_facts = kb.backward_chaining()
if result:
print(f"YES: {', '.join(used_facts)}")
else:
print("NO")
elif method == "TT":
result = kb.truth_table()
print(result)
else:
print("Unknown method. Use FC, BC, or TT.")
if __name__ == "__main__":
main()