@Test public void Complex() { QID u = new QID("u"), u2 = new QID("u2"); QLIT label = new QLIT("label"); UID User = new UID(TEST.NS, "User"); ID id = new BID(), id2 = new BID(), id3 = new BID(); connection().update(null, Arrays.asList( new STMT(id, RDF.type, User), new STMT(id2, RDF.type, User), new STMT(id3, RDF.type, User), new STMT(id, RDFS.label, new LIT("x")), new STMT(id2, RDFS.label, new LIT("x")), new STMT(id3, RDFS.label, new LIT("y")))); CloseableIterator<Map<String, NODE>> iterator = query().where( Blocks.pattern(u, RDF.type, User), Blocks.pattern(u2, RDF.type, User), Blocks.pattern(u2, RDFS.label, label), Blocks.pattern(u, RDFS.label, label), u.ne(u2) ).select(u, u2); List<Map<String, NODE>> list = IteratorAdapter.asList(iterator); assertEquals(2, list.size()); }