  A graph whose edges only appear at certain points in time is called a
temporal graph (among other names). These graphs are temporally connected if
all ordered pairs of vertices are connected by a path that traverses edges in
chronological order (a temporal path). Reachability in temporal graphs departs
significantly from standard reachability; in particular, it is not transitive,
with structural and algorithmic consequences. For instance, temporally
connected graphs do not always admit spanning trees, i.e., subsets of edges
that form a tree and preserve temporal connectivity among the nodes.
  In this paper, we revisit fundamental questions about the loss of
universality of spanning trees. To start, we show that deciding if a spanning
tree exists in a given temporal graph is NP-complete. What could be appropriate
replacement for the concept? Beyond having minimum size, spanning trees enjoy
the feature of enabling reachability along the same underlying paths in both
directions, a pretty uncommon feature in temporal graphs. We explore
relaxations in this direction and show that testing the existence of
bidirectional spanning structures (bi-spanners) is tractable in general. On the
down side, finding \emph{minimum} such structures is NP-hard even in simple
temporal graphs. Still, the fact that bidirectionality can be tested
efficiently may find applications, e.g. for routing and security, and the
corresponding primitive that we introduce in the algorithm may be of
independent interest.
