PROLOG解析遍历,可视化?

时间:2013-08-25 09:52:57

标签: prolog visualization

是否有可能通过合理的努力可视化PROLOG如何将结果发现给查询? 通过它找到的路径可以帮助理解,例如一些重复的条目(例如,在族树查询中找到两次亲戚)。

2 个答案:

答案 0 :(得分:0)

AFAICR,拥有增强的纯Prolog解释器的标准方法是增加标准的纯Prolog解释器:

solve( T ):-
  ( T = (A,B) ->  solve(A) , solve(B) 
  ; T = (A;B) -> (solve(A) ; solve(B))
  ; A ).

我们可以在每一步使用copy_term/2,并将复制的条款收集到差异列表中。

solve( T, [Q|R], Z ):- copy_term(T,Q), 
  ( T = (A,B) ->  solve(A,R,S) , solve(B,S,Z)
  ; T = (A;B) -> (solve(A,R,Z) ; solve(B,R,Z)) ;
  ; A, copy_term(A,Q), R=Z).

被称为solve( AQuery, PathTaken, [])

未经测试。

答案 1 :(得分:0)

我只能找到prolog-graph来执行相似任务,但还没有尝试过。作者声称​​"为给定的Prolog查询生成解析树的图像"。