Did you know ... Search Documentation:
Pack prolog_graphviz -- prolog/dot.pl
PublicShow source
 dot_arc(+Out:stream, +FromTerm:term, +ToTerm:term) is det
 dot_arc(+Out:stream, +FromTerm:term, +ToTerm:term, +Options:dict) is det
Emits an arc (directed edge) from one Prolog term to another in the DOT language.

Since Prolog terms cannot be used as DOT IDs, dot_arc/[3,4] and automatically creates compatible DOT IDs under the hood. The same Prolog term is always denoted by the same DOT ID.

See also
- Most of the time, the use of Prolog terms instead of DOT IDs is preferable. However, there are legitimate use cases where the programmer would like to generate and use the DOT IDs herself. For these purposes, dot_arc_id/[3,4] can be used -- in combination with dot_id/2 -- instead.
 dot_arc_id(+Out:stream, +FromId:atom, +ToId:atom) is det
 dot_arc_id(+Out:stream, +FromId:atom, +ToId:atom, +Options:dict) is det
Emits a directed edge or arc from one DOT ID to another in the DOT language.
See also
- dot_arc/[3,4] allows arcs to be asserted between Prolog terms.
 dot_cluster(+Out:stream, +Term:term, :Goal_1) is det
 dot_cluster(+Out:stream, +Term:term, :Goal_1, +Options:dict) is det
 dot_cluster_arc(+Out:stream, +FromTerm:term, +ToTerm:term) is det
 dot_cluster_arc(+Out:stream, +FromTerm:term, +ToTerm:term, +Options:dict) is det
 dot_cluster_arc_id(+Out:stream, +FromId:atom, +ToId:atom) is det
 dot_cluster_arc_id(+Out:stream, +FromId:atom, +ToId:atom, +Options:dict) is det
 dot_cluster_id(+Out:stream, +Id:atom, :Goal_1) is det
 dot_cluster_id(+Out:stream, +Id:atom, :Goal_1, +Options:dict) is det
 dot_edge(+Out:stream, +FromTerm:term, +ToTerm:term) is det
 dot_edge(+Out:stream, +FromTerm:term, +ToTerm:term, +Options:dict) is det
Emits an edge between two Prolog terms in the DOT language.

Since Prolog terms cannot be immediate used as DOT IDs, dot_edge/[3,4] and dot_node/[2,3] automatically create compatible DOT IDs under the hood. When the same Prolog term is given to these predicates, it is guaranteed that the DOT ID will also be the same.

See also
- Most of the time, the use of Prolog terms instead of DOT ID is preferable. However, there are legitimate use cases where the programmer would like to generate and use the DOT IDs themselves. For these purposes, dot_edge_id/[3,4] can be used -- in combination with dot_id/2 -- instead.
 dot_edge_id(+Out:stream, +FromId:atom, +ToId:atom) is det
 dot_edge_id(+Out:stream, +FromId:atom, +ToId:atom, +Options:dict) is det
Emits an edge between two DOT IDs in the DOT language.
See also
- dot_edge/[3,4] allows edges to be asserted between Prolog terms.
 dot_graph(+Out:stream, :Goal_1) is det
 dot_graph(+Out:stream, :Goal_1, +Options:dict) is det
Arguments:
Options- The following options are supported:
directed(+boolean)
Whether the graph is directed (true) or undirected (false, default).
name(+string)
The name of the graph. Default is "noname".
overlap(+boolean)
Whether or not nodes are allowed to overlap. Default is false.
strict(+boolean)
Value `true' indicates that the graph is strict, i.e., has no self-arcs and has not multi-edges. Default is `false'.

This can only be used in combination with option `directed(true)', and throws an exception otherwise.

 dot_html_replace(+Unescaped:string, -Escaped:string) is det
Replaces the following characters that are not allowed to occur in DOT HTML labels with HTML elements: left and right angle bracket, ampersand.
 dot_id(-Id:atom) is det
 dot_id(+Term:term, -Id:atom) is det
Create a DOT ID that can be used to represent a Prolog term in the DOT language. When the same Prolog term is supplied, the DOT ID is also the same.
 dot_node(+Out:stream, +Term:term) is det
 dot_node(+Out:stream, +Term:term, +Options:dict) is det
Arguments:
Out- is a handle to an output stream.
is- a Prolog term.
Options- is a list of compound terms, each of which denotes a GraphViz attribute. The following attributes are supported:
  • label(+or([string,list(string)])) Allows either a single string or a list of strings to be used as a node label. The strings are allowed to contain Unicode characters and a limited set of HTML tags for markup purposes (see README.org). Regular DOT labels do not allow such flexibility, so strings supplied through this option are exported as DOT HTML labels.
  • Other options are written as regular DOT attributes (KEY="VALUE"). See README.org for an overview of supported GraphViz attributes.
See also
- Most of the time, the use of Prolog terms instead of DOT ID is preferable. However, there are legitimate use cases where the programmer would like to generate and use the DOT IDs themselves. For these purposes, dot_node_id/[2,3] can be used -- in combination with dot_id/2 -- instead.
 dot_node_id(+Out:stream, +Id:atom) is det
 dot_node_id(+Out:stream, +Id:atom, +Options:dict) is det
See also
- dot_node/[2,3] allows nodes to be asserted for Prolog terms.

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

 dot_arc(Arg1, Arg2, Arg3, Arg4)
 dot_arc_id(Arg1, Arg2, Arg3, Arg4)
 dot_cluster(Arg1, Arg2, Arg3, Arg4)
 dot_cluster_arc(Arg1, Arg2, Arg3, Arg4)
 dot_cluster_arc_id(Arg1, Arg2, Arg3, Arg4)
 dot_cluster_id(Arg1, Arg2, Arg3, Arg4)
 dot_edge(Arg1, Arg2, Arg3, Arg4)
 dot_edge_id(Arg1, Arg2, Arg3, Arg4)
 dot_graph(Arg1, Arg2, Arg3)
 dot_node(Arg1, Arg2, Arg3)
 dot_node_id(Arg1, Arg2, Arg3)