【发布时间】:2022-01-08 11:20:36
【问题描述】:
基于此post 尝试按照提示设置一些 swiplserver
from pyswip import Prolog, Functor, Query
from swiplserver import PrologMQI, PrologThread
prolog = Prolog()
prolog.consult("Prolog/logic.pl")
with PrologMQI() as mqi:
with mqi.create_thread() as prolog_thread:
result = prolog_thread.query("member(X, [color(blue), color(red)])")
print(result)
我现在的问题,我不知道如何加载“logic.pl”:
:-op(800, fx, ¬).
:-op(801, xfy, ∧).
:-op(802, xfy, ∨).
:-op(803, xfy, →).
:-op(804, xfy, ↔).
:-op(800, xfy, #).
m_Proposition_Binary_x_y(X ∨ Y, X, Y).
m_Proposition_Binary_x_y(X ∧ Y, X, Y).
m_Proposition_Binary_x_y(X → Y, X, Y).
m_Proposition_Binary_x_y(X ↔ Y, X, Y).
m_Proposition(X) :-
m_Proposition_Atom(X).
m_Proposition(Binary) :-
m_Proposition_Binary_x_y(Binary, X, Y),
m_Proposition(X),
m_Proposition(Y).
m_Proposition(¬ X) :-
m_Proposition(X).
m_Proposition_Atom(p).
m_Proposition_Atom(q).
进入该服务器设置,所以我可以使用以下语句:
intersection([A,(A→B)], [p, (p→q)], Aim).
有没有办法使用类似于 pyswip 中的咨询命令的“logic.pl”?
【问题讨论】:
标签: python file prolog load swi-prolog