}
} else if(node instanceof ASTTripleSet){
FederatedQuery.checkVariables(node, result);
} else if(node instanceof ASTSelectQuery){
// check embedded select queries recursively
final ASTSelectQuery select = (ASTSelectQuery) node;
final Set<Variable> innerQueryVariables = new HashSet<Variable>();
final Set<Variable> innerQueryProjectedVariables = new HashSet<Variable>();
for(final Node innerQueryChild: select.getChildren()){
if(innerQueryChild instanceof ASTVar){
final Variable v = new Variable(((ASTVar) innerQueryChild).getName());
innerQueryProjectedVariables.add(v);
} else if(innerQueryChild instanceof ASTGroupConstraint){
innerQueryVariables.addAll(FederatedQuery.getSurelyBoundVariables(innerQueryChild));
}
}
if(!select.isSelectAll()){
innerQueryVariables.retainAll(innerQueryProjectedVariables);
}
result.addAll(innerQueryVariables);
} else if(node instanceof ASTUnionConstraint){
// Check union...