A computer-implemented method, including: receiving a specification of multiple contexts that are related according to a hierarchy; determining relationships among three or more metadata objects, wherein the metadata objects represent data elements (202A, 202B) or transformations (204A, 204B) of data, wherein for the data elements (202A, 202B), the multiple contexts include data sets (208B, 214D), applications (202C, 204C, 206C, 208C, 210B, 210C) and systems, wherein for the transformations (204A, 204B) of data, the multiple contexts include executables (214B, 216D), applications (202C, 204C, 206C, 208C, 210B, 210C) and systems, wherein the applications (202C, 204C, 206C, 208C, 210B, 210C) contain the executables (214B, 216D) and the datasets (208B, 214D) that they operate on, and the systems are functional groupings of data and the applications (202C, 204C, 206C, 208C, 210B, 210C) that process the data, and wherein the relationships among the metadata objects represent dependencies and associations appropriate to applications (202C, 204C, 206C, 208C, 210B, 210C) for which the metadata objects are used; grouping at least some of the metadata objects into one or more respective groups, each of at least some of the groups being based on a selected one of the contexts and being represented by a node (300, 400) in a data lineage diagram (200A, 200B, 200C, 200D, 200E), wherein the data elements (202A, 202B) are grouped in contexts including data sets (208B, 214D), applications (202C, 204C, 206C, 208C, 210B, 210C), or systems, and wherein the transformations (204A, 204B) of data are grouped in contexts including executables (214B, 216D), applications (202C, 204C, 206C, 208C, 210B, 210C), or systems; determining relationships among the nodes (300, 400) based on the relationships among the metadata objects in the groups represented by the nodes (300, 400); and generating a visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E) in a user interface, the visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E) including the nodes (300, 400) and the relationships among the nodes (300, 400) and the visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E) indicating, for a given metadata object, metadata objects that the given metadata object depends on and metadata objects that the given metadata object affects; receiving, through the user interface, user input to edit at least some of the metadata objects; and displaying, in the visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E), information indicating which of the metadata objects are affected by the editing. receiving a specification of multiple contexts that are related according to a hierarchy; determining relationships among three or more metadata objects, wherein the metadata objects represent data elements (202A, 202B) or transformations (204A, 204B) of data, wherein for the data elements (202A, 202B), the multiple contexts include data sets (208B, 214D), applications (202C, 204C, 206C, 208C, 210B, 210C) and systems, wherein for the transformations (204A, 204B) of data, the multiple contexts include executables (214B, 216D), applications (202C, 204C, 206C, 208C, 210B, 210C) and systems, wherein the applications (202C, 204C, 206C, 208C, 210B, 210C) contain the executables (214B, 216D) and the datasets (208B, 214D) that they operate on, and the systems are functional groupings of data and the applications (202C, 204C, 206C, 208C, 210B, 210C) that process the data, and wherein the relationships among the metadata objects represent dependencies and associations appropriate to applications (202C, 204C, 206C, 208C, 210B, 210C) for which the metadata objects are used; grouping at least some of the metadata objects into one or more respective groups, each of at least some of the groups being based on a selected one of the contexts and being represented by a node (300, 400) in a data lineage diagram (200A, 200B, 200C, 200D, 200E), wherein the data elements (202A, 202B) are grouped in contexts including data sets (208B, 214D), applications (202C, 204C, 206C, 208C, 210B, 210C), or systems, and wherein the transformations (204A, 204B) of data are grouped in contexts including executables (214B, 216D), applications (202C, 204C, 206C, 208C, 210B, 210C), or systems; determining relationships among the nodes (300, 400) based on the relationships among the metadata objects in the groups represented by the nodes (300, 400); and generating a visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E) in a user interface, the visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E) including the nodes (300, 400) and the relationships among the nodes (300, 400) and the visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E) indicating, for a given metadata object, metadata objects that the given metadata object depends on and metadata objects that the given metadata object affects; receiving, through the user interface, user input to edit at least some of the metadata objects; and displaying, in the visual representation of the data lineage diagram (200A, 200B, 200C, 200D, 200E), information indicating which of the metadata objects are affected by the editing.