fork download
  1. # Import libraries
  2. import aima.utils
  3. import aima.logic
  4. # The main entry point for this module
  5. def main():
  6. # Create an array to hold clauses
  7. clauses = []
  8. # Add first-order logic clauses (rules and fact)
  9. clauses.append(aima.utils.expr("(American(x) & Weapon(y) & Sells(x, y, z) & Hostile(z)) ==> Criminal(x)"))
  10. clauses.append(aima.utils.expr("Enemy(Nono, America)"))
  11. clauses.append(aima.utils.expr("Owns(Nono, M1)"))
  12. clauses.append(aima.utils.expr("Missile(M1)"))
  13. clauses.append(aima.utils.expr("(Missile(x) & Owns(Nono, x)) ==> Sells(West, x, Nono)"))
  14. clauses.append(aima.utils.expr("American(West)"))
  15. clauses.append(aima.utils.expr("Missile(x) ==> Weapon(x)"))
  16. # Create a first-order logic knowledge base (KB) with clauses
  17. KB = aima.logic.FolKB(clauses)
  18. # Add rules and facts with tell
  19. KB.tell(aima.utils.expr('Enemy(Coco, America)'))
  20. KB.tell(aima.utils.expr('Enemy(Jojo, America)'))
  21. KB.tell(aima.utils.expr("Enemy(x, America) ==> Hostile(x)"))
  22. # Get information from the knowledge base with ask
  23. hostile = KB.ask(aima.utils.expr('Hostile(x)'))
  24. criminal = KB.ask(aima.utils.expr('Criminal(x)'))
  25. # Print answers
  26. print('Hostile?')
  27. print(hostile)
  28. print('\nCriminal?')
  29. print(criminal)
  30. print()
  31. # Tell python to run main method
  32. if __name__ == "__main__": main()
Success #stdin #stdout #stderr 0.27s 40428KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: unexpected symbol in "import aima.utils"
Execution halted