Rudimentary demonstration of the Reformulation Algorithm. Enter a conjunctive query and press reformulate to see the reformulation. Click on links at the bottom of the page for some example of reformulations. Note: only a portion of the algorithm is implemented here. The full algorithm will be available soon.


Rule:



Result:



Examples to try:
query(X,Y,Z) :- p(X,A) & q(X,A) & r(Y,Z)
query(X) :- p(X) & q(X,Y)
query(X,Y) :- p(X) & q(X) & r(Y) & s(Y)
query(X,Z) :- p(X,Y) & q(X,Y) & r(Z)
query(X,Z) :- p(X,Y) & q(X) & r(Y) & s(X,Z) & t(Z)
query(X,Y,Z) :- p(X,A) & q(B,Y) & r(A,B,C) & s(C,X,Y) & t(D,X,Z) & w(E,Z)