Implement `semantic predicate` feature