如何使用python flask读/写pyswip?

时间:2017-12-20 09:12:26

标签: python python-2.7 prolog swi-prolog swi-prolog-for-sharing

我试图使用pyswip来创建一个Q& A(交互式用户)python swi-prolog程序,但我找不到使用python flask读/写pyswip的好方法。该应用程序最初是一个Web应用程序,我正在使用flask来运行python代码。

我有一个函数向用户提出如下定义的问题:

def question(Question):
  print 'Does it have the following attributes: ', Question,'?'
  Response = raw_input()
  if Response == 'yes' or Response == 'y':
    return True
  else:
    return False

问题函数定义为具有arity 1的外部函数,因此在prolog中我有:

registerForeign(question,name='ask', arity=1)
prolog.assertz("verify(S) :- (yes(S) -> true ;(no(S) -> fail ;(ask(S) -> assert(yes(S)); assert(no(S)), fail)))")

注意ask(S) assertz中我对问题函数的调用,现在我需要将问题函数的arity更改为2:

registerForeign(question,name='ask', arity=2) 
question(Question, userInput) 

其中userInput是应该读取用户输入的python raw_input解析器,如果你查看问题函数,你会注意到它曾经在函数本身内完成。

有关如何相应更改序言部分的任何想法?

0 个答案:

没有答案