code: public Predicate selectPredicate(Schema sch) {
  		Predicate result = new Predicate();
  		for (Term t : terms)
  			if (t.isApplicableTo(sch))
  				result.terms.add(t);
  		if (result.terms.size() == 0)
  			return null;
  		else
  			return result;
  	}
docs: Returns the sub-predicate that applies to the specified schema.
  
  @param sch
  the schema
  @return the sub-predicate applying to the schema