One can define a partial ordering from any DAG by letting the set of objects be the vertices of the DAG, and defining "x" ≤ "y" to be true, for any two vertices "x" and "y", whenever there exists a directed path from "x" to "y"; that is, whenever "y" is reachable from "x". With these definitions, a topological ordering of the DAG is the same thing as a linear extension of this partial order. Conversely, any partial ordering may be defined as the reachability relation in a DAG. One way of doing this is to define a DAG that has a vertex for every object in the partially ordered set, and an edge "xy" for every pair of objects for which "x" ≤ "y". An alternative way of doing this is to use the transitive reduction of the partial ordering; in general, this produces DAGs with fewer edges, but the reachability relation in these DAGs is still the same partial order. By using these constructions, one can use topological ordering algorithms to find linear extensions of partial orders.