首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Allegrograph地理空间Prolog查询

Allegrograph地理空间Prolog查询
EN

Stack Overflow用户
提问于 2012-05-15 02:21:29
回答 1查看 327关注 0票数 3

我有一些代表几个城市位置的三元组。我希望能够发出一个Prolog查询,比如

代码语言:javascript
复制
(select (?x ?y ?dist) 
(q- ?x !exns:geolocation ?locx)
(q- ?y !exns:geolocation ?locy)
(geo-distance ?locx ?locy ?dist))

但是我得到了这个错误:

Server returned 400: attempt to call '#:geo-distance/3' which is an undefined function.

我想了解如何使用像geo-distance这样的地理空间推理方法(我假设它是内置的,因为他们使用here。然而,这不是真的吗?)在Prolog查询中,因为这对我来说是一个谜,而且我还没有找到任何好的例子来做这件事。

我使用的是Python API BTW,在Python API tutorial中,他们使用getStatements方法来检索某个半径范围内的三元组。我希望能够在一个Prolog查询中做这样的事情,从Python API,而不是从AllegroCL --我想构建web应用程序,我不知道如何在AllegroCL中做到这一点,但我知道如何在Python语言中做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-25 03:50:58

不可能从Python API进行地理空间Prolog查询。您必须使用Allegro Common Lisp IDE来完成此操作。

编辑:不是这样的!

使用AllegroGraph 4.6,您可以做到这一点!问题是我使用的是AllegroGraph 3.3,所以我是个笨蛋。

以下是使用AllegroGraph 4.6的Python API中的Prolog规则:

代码语言:javascript
复制
(<-- (geo-distance ?point1 ?point2 ?dist)
      (lisp ?dist (let (lon1 lat1 lon2 lat2)
           (setf (values lon1 lat1) (upi->longitude-latitude ?point1))
           (setf (values lon2 lat2) (upi->longitude-latitude ?point2))
           (haversine-miles lon1 lat1 lon2 lat2))))

特别感谢Franz Allegro support的人们对我的帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10588865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档