여러 도시의 위치를 나타내는 트리플이 있습니다. 나는Allegrograph 지형 공간 프롤로그 쿼리
(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 쿼리에서 현재 사실이 아니기 때문에 그렇습니까?) 이것은 현재 나에게 미스테리이기 때문에 이것을 수행하기위한 좋은 예제를 발견하지 못했습니다.
저는 파이썬 API 인 BTW를 사용하고 있습니다. Python API tutorial에서 그들은 getStatements
메서드를 사용하여 일부 반경의 원 안에 트리플을 검색합니다. AllegroCL이 아닌 Prolog 쿼리와 Python API에서 이런 종류의 작업을 수행 할 수 있기를 원합니다. 웹 앱을 제작하고 싶지만 AllegroCL에서 어떻게 할 지 모르겠지만 파이썬에서 어떻게 알아.
geo-distance는 내장 함수가 아니지만 AllegroCL에서는 다음과 같이 정의 할 수 있습니다.'(<- (geo-distance? point1? point2? dist) (lisp? dist (LAT1 lon1 lon2 LAT2) \t \t (setf의 (값 lon1 LAT1) (upi-> 경도 위도? POINT1)) \t \t (setf의 (값 lon2 LAT2) (upi-> 경도 위도? POINT2)) \t \t (haversine-miles lon1 lat1 lon2 lat2))))) 그러나이 정의는 (lisp) 이스케이프를 허용하지 않기 때문에 Python API의 addRules를 사용하면 작동하지 않습니다. –