prologxsbprolog-tabling

XSB Prolog partial order tabling


I'm trying an example from XSB Version 3.3.5 manual (from "Partial Order Answer Subsumption"):

:- table sp(_,_,po(</2)).
sp(X,Y,1):- edge(X,Y).
sp(X,Z,N):- sp(X,Y,N1),edge(Y,Z),N is N1 + 1.

And I'm getting

++Error[XSB/Runtime/P]: [Syntax] :- table sp ( _ , _ , po ( >/  <--- HERE? ************ 
++                                                    2 ) ) 

Any ideas what's wrong?

Also, there is no error with

:- table sp(_,_,lattice(min/3)).

Solution

  • I would try this (since it's a syntax error)

    :- table sp(_,_,po('<'/2)).
    sp(X,Y,1):- edge(X,Y).
    sp(X,Z,N):- sp(X,Y,N1),edge(Y,Z),N is N1 + 1.