if (obj.isTriple() && arg instanceof BasicOperator) {
final TriplePattern pattern = unitermToTriplePattern(obj);
final BasicIndexScan index = root.newIndexScan(null,
new ArrayList<TriplePattern>(Arrays.asList(pattern)), null);
final BindableIndexScan bindIndex = new BindableTripleIndexScan(index);
datasetIndex.addBindableIndex(bindIndex);
((BasicOperator) arg).addSucceedingOperator(bindIndex);
return bindIndex;
}
// Pr�dikat
final URILiteral name = (URILiteral) obj.termName.accept(this, null);
final List<Item> items = new ArrayList<Item>();
for (final IExpression expr : obj.termParams)
items.add((Item) expr.accept(this, null));
final PredicatePattern pattern = new PredicatePattern(name,
items.toArray(new Item[] {}));
if (arg instanceof BasicOperator) {
// Regelk�rper, IndexScan erstellen
final BindableIndexScan bindIndex = new BindablePredicateIndexScan(
predicateIndex, pattern);
((BasicOperator) arg).addSucceedingOperator(bindIndex);
return bindIndex;
} else
return pattern;