Evaluating logical queries