Did you know ... Search Documentation:
Predicate dot_arc/4
 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.