1. A method of defining a component including a plurality of digital assets, the method comprising: receiving a component request specifying at least one requested graph link type; receiving a typed dependency graph representing digital assets, wherein the typed dependency graph includes graph nodes corresponding with the digital assets and includes typed graph links connecting the graph nodes, wherein each typed graph link includes one of a plurality of graph link types representing a type of digital asset relationship between at least two of the digital assets; adding at least one of the graph nodes to a graph node processing set; selecting and removing a first graph node from the graph node processing set; comparing, by operation of one or more computer processors, at least a first typed graph link connected with the first graph node with the requested graph link type; determining if a first graph link type included in the first typed graph link is consistent with the requested graph link type; adding a second graph node connected with the first typed graph link to the graph node processing set in response to the determination that the first graph link type included in the first typed graph link is consistent with the requested graph link type; wherein each digital asset is associated with a type mapping that is selected from a group consisting of reference-based mapping, structure-based mapping, and software tool-based mapping; and wherein each graph link type is selected from a group consisting of one-way digital asset dependencies, two-way digital asset dependencies, digital asset version relationships, digital asset aggregation relationships, and tool/digital asset dependencies.