1. A method implemented in one or more data processing systems, comprising: receiving an input expression including a set of options joined using logical operators; converting the input expression into an order string; receiving at least one rule that defines relationships between variants of different option families; receiving a configuration expression, the configuration expression specifying values for some but not all variants of the option families; producing a conjunctive normal form (CNF) order expression corresponding to the order string, at least one rule, and configuration expression; and performing a partial solve of the order expression, the partial solve producing a result set that describes all possible configurations that correspond to the configuration expression.