1. A method of selecting a package model, comprising: storing, at a package model database, 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, at a semantic reasoner, a user input that is descriptive of a desired package capability, wherein the desired package capability comprises requirements for the package model; analyzing, by the semantic reasoner, the user input to determine one or more desired attributes; accessing, by the semantic reasoner, the data structure to automatically determine whether a desired attribute satisfies a constraint for an attribute relationship; and presenting, by the semantic reasoner, the one or more supplemental attributes required by the attribute relationship.
1. A method of selecting a package model, comprising: storing, at a package model database, 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, at a semantic reasoner, a user input that is descriptive of a desired package capability, wherein the desired package capability comprises requirements for the package model; analyzing, by the semantic reasoner, the user input to determine one or more desired attributes; accessing, by the semantic reasoner, the data structure to automatically determine whether a desired attribute satisfies a constraint for an attribute relationship; and presenting, by the semantic reasoner, the one or more supplemental attributes required by the attribute relationship. 9. The method of claim 1 wherein accessing the data structure comprises accessing the data structure to automatically determine whether a desired attribute matches a plurality of values for an attribute for the attribute relationship.