在服务器中托管XSB Prolog

问题描述 投票:4回答:1

我想在服务器上托管XSB Prolog。有人可以告诉我这个程序是什么吗?以下git链接解释了如何在服务器上托管SWIPL,但同样不适用于XSB https://github.com/SWI-Prolog/swish

非常感谢您的帮助。

web-applications server prolog xsb
1个回答
1
投票

如果要在服务器上托管XSB,只需使用子进程生成XSB。

看到XSB Manual

spawn_process(+CmdSpec,-StreamToProc,-StreamFromProc,-ProcStderrStream,ProcId)

生成CmdSpec指定的新进程

XSB子进程的一个用途是创建生成子进程并控制它们的XSB服务器。衍生的子流程可以是另一个XSB流程。以下示例显示了一个XSB流程生成另一个流程,向其发送评估和获取结果的目标:

`| ?-` spawn_process([xsb], To, From,Err,_),
     file_write(To,’assert(p(1)).’),
     file_nl(To),
     file_flush(To,_),
     file_write(To,’p(X), writeln(X).’),
     file_nl(To),
     file_flush(To,_),
     file_read_line_atom(From,XX).

`XX = 126`
`yes`
`| ?-`
"Here the parent **XSB** process sends “
`assert(p(1)).`
” and then “
`p(X), writeln(X).`
” to the spawned XSB subprocess."
"The latter evaluates the goal and prints (via “ `writeln(X)` ”) 
to its standard output..."
© www.soinside.com 2019 - 2024. All rights reserved.