Visualization of CiaoPP traces using daVinci

This module is used to display the analysis graph computed during the fixpoint. It uses the daVinci product, with which it communicates by the standard input and ouput (process library is used for system call with process_call/3).

Local graph representation

The graph is incrementally mantained in the database with node/8 and edge/2. A node can correspond to a goal (goal-node) or a clause (clause-goal), and edges are always (except with variants) between different classes of nodes.

node(Id,Key,Atom,ASub,A,A1,Type,Node)

  • Id-Key uniquely identifies a node:
    • for a goal-node which corresponds to a fixpoint node, Id is the fixpoint id Key is the functor/arity (as an atom)
    • for a clause-node, Id is the fixpoint id of the closest goal-node ancestor Key is the clause id
    • for a goal-node which is not yet a fixpoint node, Id is as in a clause-node Key is the program point id of the goal atom
  • Node=..[NKey,NId] and NKey-NId uniquely identifies a node:
    • for a goal-node they are as last case above
    • for a clause-node they are as above
  • Atom is:
    • for a goal-node, the goal atom
    • for a clause-node, the clause head
  • ASub is:
    • for a goal-node, the projected call substitution
    • for a clause-node, the entry substitution, which may contain the (existential) variables of the body
  • A is (Ins,Outs) where:
    • Ins is an open ended list of ASub's
    • Outs is an open ended list of projected success substitutions (goal-node) or exit substitutions (clause-node)
  • A1 is (Ins1,Outs1) where:
    • Ins1 is the end of Ins
    • Outs1 is the end of Outs
  • Type is:
    • for a (normal) goal-node, sg
    • for a clause-node, cl
    • for a variant goal-node, va
A variant occurs when a clause body is traversed for a second time and in a particular goal atom a new goal-node has to be created which is different from the one already associated to that body atom. The former substitutes the latter, which becomes a variant of the former. An incoming edge to the variant exists from the new goal-node.


Usage and interface

Documentation on exports

PREDICATEstart_view/0
No further documentation available for this predicate.

PREDICATEend_view/0
No further documentation available for this predicate.

No further documentation available for this predicate.

No further documentation available for this predicate.

Documentation on imports

This module has the following direct dependencies: