{
assert join.getNumberOfArguments() > 0;
Cursor<BindingSet> result;
result = evaluate(join.getArg(0), bindings);
for (int i = 1, n = join.getNumberOfArguments(); i < n; i++) {
result = new JoinCursor(this, result, join.getArg(i));
}
return result;
}