Ошибка рекурсии при использовании пакета aima

Я пытался создать систему FOL, чтобы доказать, что «в доме, принадлежащем Джилл, есть плесень. Значит, у Джилл проблемы с дыханием». Я получаю максимальную ошибку рекурсии для этого кода.

      # Import libraries
import aima.utils
import aima.logic
# The main entry point for this module
def main():
    # Create an array to hold clauses
    """all houses have a issues structureal damages is dangerous to live 
      A Houses(x) ^ structure_issue(y) ^ owner(z) ===> breathing_problem(x)"""
    # if the 
    clauses = []
    # Add first-order logic clauses (rules and fact)
    clauses.append(aima.utils.expr("(House(x) &  issue(y) & Owns(z,x) & structure_issue(x,y,z) ) ==> breathing_problem(z)"))
    clauses.append(aima.utils.expr("breathing_problem(Jill)"))
    clauses.append(aima.utils.expr("Owns(Jill, H1)"))
    clauses.append(aima.utils.expr("Building(H1)"))
    clauses.append(aima.utils.expr("Building(H1) & Owns(Jill, H1) ==> structure_issue(H1,y,Jill)"))
    clauses.append(aima.utils.expr("issue_1(mould)"))
    clauses.append(aima.utils.expr("issue_1(x) ==>issue(x)"))
    

    # Create a first-order logic knowledge base (KB) with clauses
    KB = aima.logic.FolKB(clauses)
    print(clauses)
    # Add rules and facts with tell
    KB.tell(aima.utils.expr('structure_issue(H1,Floor,Jill)'))
    KB.tell(aima.utils.expr('structure_issue(H1,plumbing, Jill)'))
    KB.tell(aima.utils.expr("structure_issue(H1,x,Jill) ==> breathing_problem(x)"))
    print(KB)
    # Get information from the knowledge base with ask
    breathing_problem = KB.ask(aima.utils.expr('breathing_problem(x)'))
       
    
    
    # Print answers
    print('breathing_problem?')
    print(breathing_problem)
    
# Tell python to run main method
if __name__ == "__main__": main()


0 ответов