3

いくつかの都市の場所を表すトリプルがあります。次のようなPrologクエリを起動できるようにしたい

(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.

Prologクエリで(ここgeo-distanceで使用しているため、組み込みであると想定しましたが、これは真実ではありませんか?)のような地理空間推論メソッドの使用方法を理解したいと思います。これは現在、私にとって謎であるためです。これを行うための良い例は見つかりませんでした。

私はPython API、BTWを使用しています.Python APIチュートリアルでは、メソッドを使用して、getStatements半径の円内でトリプルを取得しています。このようなことを Prolog クエリで、そして AllegroCL からではなく Python API から実行できるようにしたいと考えています。Web アプリを構築したいのですが、AllegroCL でそれを行う方法がわかりません。 Pythonでの方法を知っていますか。

4

1 に答える 1

1

Python API から地理空間 Prolog クエリを作成することはできません。これを行うには、Allegro Common Lisp IDE を使用する必要があります。

編集: そうではありません!

AllegroGraph 4.6 では、これが可能です! 問題は、私が AllegroGraph 3.3 を使用していたことです。

AllegroGraph 4.6 を使用して Python API から機能する Prolog ルールを次に示します。

(<-- (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 のサポートに感謝します!

于 2012-05-24T19:50:57.960 に答える