1. A method of selecting a package model, comprising: storing a data structure of a plurality of package models and one or more attribute relationships, wherein each package model has a plurality of package model attributes comprising at least a size and a style, wherein each attribute relationship includes an indication that one or more supplemental attributes are required if a constraint is satisfied; receiving a user input that is descriptive of a desired package capability; analyzing, using a semantic reasoner, the user input to determine one or more desired attributes; accessing the data structure to automatically determine whether a desired attribute satisfies a constraint for an attribute relationship; and presenting the one or more supplemental attributes required by the attribute relationship.