The following is adapted from the OpenGIS® Filter Encoding Implementation Specification:
A comparison operator is used to form expressions that evaluate the mathematical comparison between two arguments. If the arguments satisfy the comparison then the expression {@linkplain org.opengis.filter.Filter#evaluate evaluates} to {@code true}. Otherwise the expression evaluates to {@code false}.
In addition to the standard set ({@code =},{@code <},{@code >},{@code >=},{@code <=},{@code <>}) of comparison operators, this package defines the elements {@link org.opengis.filter.PropertyIsLike}, {@link org.opengis.filter.PropertyIsBetween} and {@link org.opengis.filter.PropertyIsNull}.
A logical operator can be used to combine one or more conditional expressions. The logical operator {@link org.opengis.filter.And} evaluates to {@code true} if all the combined expressions evaluate to {@code true}. The operator {@link org.opengis.filter.Or} operator evaluates to {@code true} is any of the combined expressions evaluate to {@code true}. The {@link org.opengis.filter.Not} operator reverses the logical value of an expression. The elements {@code And}, {@code Or} and {@code Not} can be used to combine scalar, spatial and other logical expressions to form more complex compound expressions.
Identity can be checked using {@link org.opengis.filter.Id}, selected objects will are matched against a set of {@link org.opengis.filter.identiy.Identifier}.