Defined a DSL for queries, and provided the compilers to compile the query specification into either SQL where clause, or Lambda Expressions.