Traditional approaches to history reconstruction problems assume a single line of evolution, i.e., a system (a database, a relation or a collection of objects) evolves over time by applying a set of operations on it. Historical queries are of the form: `find the employees working in a company on January 1st, 1990'. There are however, complex applications where the system's state evolves in a way that results in multiple lines of evolution (such as for example a company that splits into a number of subsidiaries, which on turn may split into new subsidiaries and so on). In general, this creates a tree (hierarchy) of evolution lines, where each node in the tree represents the evolution of a subsidiary. Consider the following (vertical) historical query: `find the employees working for a subsidiary C or one of its ancestors, on January 1st, 1990'; it may well be that C did not yet exist at that time, but it was an ancestor A of C that existed; in this case the answer to the query are the employees of A. Another (horizontal) historical query of interest is the following: given a subsidiary B, `find all the employees which were employed on January 1st, 1990, by subsidiaries which were descendants of B'. This paper focuses on the search parts of these historical queries; several reconstruction methods, designed for single evolution lines may then be used.