A Backtracking-Based Algorithm for Computing Hypertree-Decompositions