SomeClass.get_by(ns_predicate = ....)

johns_and_joes = FoafPerson.get_by(foaf_name = ["John", "Joe"])

You can even use SuRF queries as arguments since they are iterable:

persons_that_know_any_john_or_joe = \ FoafPerson.get_by(foaf_knows = johns_and_joes)

In this case, SuRF will first evaluate the inner query, and then use its values to form a bunch of UNION clauses in outer query. So beware, you can easily get a long and inefficient query. SURF could of course be made super-clever to combine both queries into a more sophisticated one.