/** Returns true if Solution can be valid. */
 public boolean isValidSolution() {
   for (EntityTriple e : solution) {
     if (!e.isValidTriple()) {
       return false;
     }
   }
   for (int i = 0; i < solution.size(); i += 1) {
     for (int j = (i + 1); j < solution.size(); j += 1) {
       if (solution.get(i).hasSameEntities(solution.get(j))) {
         return false;
       }
     }
   }
   return true;
 }