@Override
public ResultSet execSelect() {
if(tis != null) {
throw new RuntimeException("Query execution already running");
}
tis = RDFDataMgr.open(fileNameOrUrl);
Lang lang = RDFDataMgr.determineLang(fileNameOrUrl, null, null);
String base = tis.getBaseURI();
Iterator<Triple> itTriple = RDFDataMgr.createIteratorTriples(tis, lang, base);
Function<Triple, Binding> fn = Functions.compose(
F_QuadToBinding.fn,
F_TripleToQuad.fn);
Iterator<Binding> itBinding = Iterators.transform(itTriple, fn);
QueryIter queryIter = new QueryIterPlainWrapper(itBinding);
List<String> varNames = Arrays.asList("g", "s", "p", "o");
ResultSet rs = ResultSetFactory.create(queryIter, varNames);
return rs;
};