1. A method comprising: creating, based at least in part on a data object type definition, an instance of the data object that is associated with one or more traits; creating a hierarchical container that includes data comprising an instance of a hierarchical relationship that is defined at least in part by a hierarchical data trait definition, wherein the hierarchical data trait definition specifies the schema for the data comprising the instance of the hierarchical relationship included in the hierarchical container, and wherein the hierarchical relationship comprises one or more nodes; and storing the data comprising the instance of the hierarchical relationship as a trait associated with the instance of the data object, including by embedding the hierarchical container in the instance of the data object, wherein the embedded hierarchical container is stored with a reference to the hierarchical data trait definition.