A computer-implemented method for managing lineage information, the method including: receiving lineage information representing one or more lineage relationships among two or more data processing programs and two or more logical datasets (206; 208; 210; 212; 806; 808; 810; 1006; 1008; 1010; 1106; 1108; 1110; 1111), wherein the logical datasets resolve to corresponding physical datasets (814; 816; 818; 1114; 1116; 1218) at run time of the data processing programs, wherein each data processing program of the two or more data processing programs is an instance of a generic data processing program defined as a dataflow graph (117; 217) that includes vertices representing data processing components or datasets connected by directed links representing flows of data between the vertices instantiated according to a set of one or more parameter values; receiving one or more runtime artifacts, each runtime artifact including information related to a previous execution of a data processing program of the two or more data processing programs; analyzing the one or more runtime artifacts including logs (429; 432) of previous executions of the two or more data processing programs and the lineage information; and determining one or more candidate modifications to the lineage information based on results of the analyzing step, wherein analyzing the runtime artifacts and the lineage information includes analyzing the logs to determine physical datasets read from or written to by the two or more data processing programs, wherein analyzing the runtime artifacts and the lineage information further includes identifying two distinct logical datasets of the two or more logical datasets that are represented in the lineage information and are associated with the same physical dataset, and wherein the one or more candidate modifications include eliminating duplicate logical datasets or mitigating their effects on the lineage information by marking duplicate logical datasets in a data lineage report; and wherein the method further comprises: applying a candidate modification of the one or more candidate modifications to the lineage information; and generating a data lineage report (1017; 1317) including the lineage information. receiving lineage information representing one or more lineage relationships among two or more data processing programs and two or more logical datasets (206; 208; 210; 212; 806; 808; 810; 1006; 1008; 1010; 1106; 1108; 1110; 1111), wherein the logical datasets resolve to corresponding physical datasets (814; 816; 818; 1114; 1116; 1218) at run time of the data processing programs, wherein each data processing program of the two or more data processing programs is an instance of a generic data processing program defined as a dataflow graph (117; 217) that includes vertices representing data processing components or datasets connected by directed links representing flows of data between the vertices instantiated according to a set of one or more parameter values; receiving one or more runtime artifacts, each runtime artifact including information related to a previous execution of a data processing program of the two or more data processing programs; analyzing the one or more runtime artifacts including logs (429; 432) of previous executions of the two or more data processing programs and the lineage information; and determining one or more candidate modifications to the lineage information based on results of the analyzing step, wherein analyzing the runtime artifacts and the lineage information includes analyzing the logs to determine physical datasets read from or written to by the two or more data processing programs, wherein analyzing the runtime artifacts and the lineage information further includes identifying two distinct logical datasets of the two or more logical datasets that are represented in the lineage information and are associated with the same physical dataset, and wherein the one or more candidate modifications include eliminating duplicate logical datasets or mitigating their effects on the lineage information by marking duplicate logical datasets in a data lineage report; and wherein the method further comprises: applying a candidate modification of the one or more candidate modifications to the lineage information; and generating a data lineage report (1017; 1317) including the lineage information. applying a candidate modification of the one or more candidate modifications to the lineage information; and generating a data lineage report (1017; 1317) including the lineage information.