[det]connect_ugraph(+UGraphIn,
-Start, -UGraphOut)Can be used to order a not-connected graph as follows:
top_sort_unconnected(Graph, Vertices) :-
( top_sort(Graph, Vertices)
-> true
; connect_ugraph(Graph, Start, Connected),
top_sort(Connected, Ordered0),
Ordered0 = [Start|Vertices]
).