我正在尝试运行用lisp实现的prolog规则。在lisp代码中,我遇到了以下问题:
(setq p1 (资源"http://www.myweb.com/myns/Person1"))
(setq p2 (资源"http://www.myweb.com/myns/Person2"))
将字符串转换为资源后,输出如下所示:
!ns:Person1
!ns:Person2
问题是,当查询在步骤2中使用select-distinct运行时。它不接受资源作为参数和抱怨UPI转换。我也尝试过用(value->upi)
函数来转换成UPI,但是没有成功。
有人能帮帮我吗?我可以在p1和p2值中传递什么样的格式来查找关系。你的帮助将不胜感激。我的规则职能定义如下:;两个人居住在同一城市的规则
(<--(MyrulesFunction ?p1 !ns:SameCityWith ?p2)
(q ?p1 !ns:hasCity ?city)
(q ?p2 !ns:hasCity ?city)
)
发布于 2020-07-03 16:43:33
这应该可以做到:
(select-distinct ?relation (MyRulesFunction (?? p1) ?relation (?? p2)))
“??”这里文档中描述了语法标记。我知道我的答案可能已经晚了5年,但希望有人能从中受益。
https://stackoverflow.com/questions/29012010
复制相似问题