  Reverse engineering problems for conjunctive queries (CQs), such as query by
example (QBE) or definability, take a set of user examples and convert them
into an explanatory CQ. Despite their importance, the complexity of these
problems is prohibitively high (coNEXPTIME-complete). We isolate their two main
sources of complexity and propose relaxations of them that reduce the
complexity while having meaningful theoretical interpretations. The first
relaxation is based on the idea of using existential pebble games for
approximating homomorphism tests. We show that this characterizes
QBE/definability for CQs up to treewidth $k$, while reducing the complexity to
EXPTIME. As a side result, we obtain that the complexity of the
QBE/definability problems for CQs of treewidth $k$ is EXPTIME-complete for each
$k \geq 1$. The second relaxation is based on the idea of "desynchronizing"
direct products, which characterizes QBE/definability for unions of CQs and
reduces the complexity to coNP. The combination of these two relaxations yields
tractability for QBE and characterizes it in terms of unions of CQs of
treewidth at most $k$. We also study the complexity of these problems for
conjunctive regular path queries over graph databases, showing them to be no
more difficult than for CQs.
