Return the variables used in the node that *must* be bound prior to
evaluating the node. For instance, when evaluation a SPARQL 1.1
service and the endpoint is specified through a variable, then this
variable must be bound in order to identify the endpoint to which the
query is to be sent.
By *must* be bound we mean that, if it is possible to bring the variables
in a join group in order such that they are bound when executing the
construct (e.g., think of a FILTER), then we *must* consider that.
However, when the IVariableBindingRequirements#getRequiredBound()
interface cannot be satisified, the query may still be valid and return
results (for the SPARQL 1.1 service example mentioned above, it may not,
for the FILTER it may).
The set of these variables must be disjoint from
the set of variables that must be bound prior to evaluation
Get variables that are not required to be bound, but desired in the
sense that we want them to be bound when evaluating the construct.
In general, the more variables are bound, the better, but this might
differ for certain constructs. Should only report variables that are
*not* reported through method
the set of variables that are desires to be bound, but not