private void execAllFastCore(final Query q, final ResultBinding binding, final Collection<ATermAppl> distVars, final Collection<ATermAppl> undistVars) { if (distVars.isEmpty()) exec(binding); else { final ATermAppl var = distVars.iterator().next(); distVars.remove(var); final Map<ATermAppl, Boolean> instances = fastPrune(q, var); for (final Entry<ATermAppl, Boolean> entry : instances.entrySet()) { final ATermAppl b = entry.getKey(); final ResultBinding newBinding = binding.duplicate(); newBinding.setValue(var, b); final Query q2 = q.apply(newBinding); if (entry.getValue() || QueryEngine.execBooleanABoxQuery(q2)) execAllFastCore(q2, newBinding, distVars, undistVars); } distVars.add(var); } }
private void execAllFastCore(final Query q, final ResultBinding binding, final Collection<ATermAppl> distVars, final Collection<ATermAppl> undistVars) { if (distVars.isEmpty()) exec(binding); else { final ATermAppl var = distVars.iterator().next(); distVars.remove(var); final Map<ATermAppl, Boolean> instances = fastPrune(q, var); for (final Entry<ATermAppl, Boolean> entry : instances.entrySet()) { final ATermAppl b = entry.getKey(); final ResultBinding newBinding = binding.duplicate(); newBinding.setValue(var, b); final Query q2 = q.apply(newBinding); if (entry.getValue() || QueryEngine.execBooleanABoxQuery(q2)) execAllFastCore(q2, newBinding, distVars, undistVars); } distVars.add(var); } }
private void execAllFastCore(final Query q, final ResultBinding binding, final Collection<ATermAppl> distVars, final Collection<ATermAppl> undistVars) { if (distVars.isEmpty()) exec(binding); else { final ATermAppl var = distVars.iterator().next(); distVars.remove(var); final Map<ATermAppl, Boolean> instances = fastPrune(q, var); for (final Entry<ATermAppl, Boolean> entry : instances.entrySet()) { final ATermAppl b = entry.getKey(); final ResultBinding newBinding = binding.duplicate(); newBinding.setValue(var, b); final Query q2 = q.apply(newBinding); if (entry.getValue() || QueryEngine.execBooleanABoxQuery(q2)) execAllFastCore(q2, newBinding, distVars, undistVars); } distVars.add(var); } }