我正在使用 AllegroGraph 4。我有一个三元组商店,并且只有在它们不存在时才尝试添加新的三元组。
这是我的 Prolog 查询:
(select (?news) (alfas ?news) (a-- ?news !tst:has-annotation !tst:Test)))
alfas 检查条件(工作正常)并a--
定义如下:
(<-- (a-- ?s ?p ?o)
;; Fails unless all parts ground.
(lisp (not (triple-exists-p ?s ?p ?o)))
(lisp (add-triple ?s ?p ?o)))
我也试过这样定义它:
(<-- (a-- ?s ?p ?o)
;; Fails unless all parts ground.
(lisp (not (get-triple :s ?s :p ?p :o ?o)))
(lisp (add-triple ?s ?p ?o)))
但是无论如何都会添加三元组,无论它是否已经存在。为什么?