It is possible to run a query by query id.
The query
?- _query_(q1)@m2.
executes the query q1 of module m2.
If you provide query options, they overwrite the original query options, i.e. it is possible to query
@{options[profile]} ?- _query_(q1)@m2.
Moreover this option subsitutes parts of queries. You can write
_query_(q1) and ?X is a.
Expressions like
?- _query_(q2)@m2 , ?X < 5.
are also possible.