def dri(self, run_b_score=None, run_a_score=None, run_b_path=None, run_a_path=None, print_feedback=False):
    '\n        Determines the Delta Relative Improvement (DeltaRI) according to the following paper:\n        Timo Breuer, Nicola Ferro, Norbert Fuhr, Maria Maistro, Tetsuya Sakai, Philipp Schaer, Ian Soboroff.\n        How to Measure the Reproducibility of System-oriented IR Experiments.\n        Proceedings of SIGIR, pages 349-358, 2020.\n\n        The DeltaRI value is determined by the difference between the relative improvements\n        of the original and reproduced/replicated experiments.\n\n        @param run_b_score: Scores of the baseline run,\n                            if not provided the scores of the RpdEvaluator object will be used instead.\n        @param run_a_score: Scores of the advanced run,\n                            if not provided the scores of the RpdEvaluator object will be used instead.\n        @param print_feedback: Boolean value indicating if feedback on progress should be printed.\n        @return: Dictionary containing the DRI values for the specified run combination.\n        '
    if print_feedback:
        print('Determining Delta Relative Improvement (DRI)')
    if (self.run_b_orig_score and self.run_a_orig_score and run_b_path and run_a_path):
        with open(run_b_path, 'r') as b_run, open(run_a_path, 'r') as a_run:
            run_b_rep = pytrec_eval.parse_run(b_run)
            run_b_rep = {t: run_b_rep[t] for t in sorted(run_b_rep)}
            run_b_rep_score = (self.rel_eval_rpl.evaluate(run_b_rep) if hasattr(self, 'rel_eval_rpl') else self.rel_eval.evaluate(run_b_rep))
            run_a_rep = pytrec_eval.parse_run(a_run)
            run_a_rep = {t: run_a_rep[t] for t in sorted(run_a_rep)}
            run_a_rep_score = (self.rel_eval_rpl.evaluate(run_a_rep) if hasattr(self, 'rel_eval_rpl') else self.rel_eval.evaluate(run_a_rep))
        return deltaRI(orig_score_b=self.run_b_orig_score, orig_score_a=self.run_a_orig_score, rep_score_b=run_b_rep_score, rep_score_a=run_a_rep_score, pbar=print_feedback)
    if (self.run_b_orig_score and self.run_a_orig_score and run_b_score and run_a_score):
        return deltaRI(orig_score_b=self.run_b_orig_score, orig_score_a=self.run_a_orig_score, rep_score_b=run_b_score, rep_score_a=run_a_score, pbar=print_feedback)
    if (self.run_b_orig_score and self.run_a_orig_score and self.run_b_rep_score and self.run_a_rep_score):
        return deltaRI(orig_score_b=self.run_b_orig_score, orig_score_a=self.run_a_orig_score, rep_score_b=self.run_b_rep_score, rep_score_a=self.run_a_rep_score, pbar=print_feedback)
    else:
        print(ERR_MSG)
Determines the Delta Relative Improvement (DeltaRI) according to the following paper:
Timo Breuer, Nicola Ferro, Norbert Fuhr, Maria Maistro, Tetsuya Sakai, Philipp Schaer, Ian Soboroff.
How to Measure the Reproducibility of System-oriented IR Experiments.
Proceedings of SIGIR, pages 349-358, 2020.

The DeltaRI value is determined by the difference between the relative improvements
of the original and reproduced/replicated experiments.

@param run_b_score: Scores of the baseline run,
                    if not provided the scores of the RpdEvaluator object will be used instead.
@param run_a_score: Scores of the advanced run,
                    if not provided the scores of the RpdEvaluator object will be used instead.
@param print_feedback: Boolean value indicating if feedback on progress should be printed.
@return: Dictionary containing the DRI values for the specified run combination.
def dri(self, run_b_score=None, run_a_score=None, run_b_path=None, run_a_path=None, print_feedback=False):
    '\n        Determines the Delta Relative Improvement (DeltaRI) according to the following paper:\n        Timo Breuer, Nicola Ferro, Norbert Fuhr, Maria Maistro, Tetsuya Sakai, Philipp Schaer, Ian Soboroff.\n        How to Measure the Reproducibility of System-oriented IR Experiments.\n        Proceedings of SIGIR, pages 349-358, 2020.\n\n        The DeltaRI value is determined by the difference between the relative improvements\n        of the original and reproduced/replicated experiments.\n\n        @param run_b_score: Scores of the baseline run,\n                            if not provided the scores of the RpdEvaluator object will be used instead.\n        @param run_a_score: Scores of the advanced run,\n                            if not provided the scores of the RpdEvaluator object will be used instead.\n        @param print_feedback: Boolean value indicating if feedback on progress should be printed.\n        @return: Dictionary containing the DRI values for the specified run combination.\n        '
    if print_feedback:
        print('Determining Delta Relative Improvement (DRI)')
    if (self.run_b_orig_score and self.run_a_orig_score and run_b_path and run_a_path):
        with open(run_b_path, 'r') as b_run, open(run_a_path, 'r') as a_run:
            run_b_rep = pytrec_eval.parse_run(b_run)
            run_b_rep = {t: run_b_rep[t] for t in sorted(run_b_rep)}
            run_b_rep_score = (self.rel_eval_rpl.evaluate(run_b_rep) if hasattr(self, 'rel_eval_rpl') else self.rel_eval.evaluate(run_b_rep))
            run_a_rep = pytrec_eval.parse_run(a_run)
            run_a_rep = {t: run_a_rep[t] for t in sorted(run_a_rep)}
            run_a_rep_score = (self.rel_eval_rpl.evaluate(run_a_rep) if hasattr(self, 'rel_eval_rpl') else self.rel_eval.evaluate(run_a_rep))
        return deltaRI(orig_score_b=self.run_b_orig_score, orig_score_a=self.run_a_orig_score, rep_score_b=run_b_rep_score, rep_score_a=run_a_rep_score, pbar=print_feedback)
    if (self.run_b_orig_score and self.run_a_orig_score and run_b_score and run_a_score):
        return deltaRI(orig_score_b=self.run_b_orig_score, orig_score_a=self.run_a_orig_score, rep_score_b=run_b_score, rep_score_a=run_a_score, pbar=print_feedback)
    if (self.run_b_orig_score and self.run_a_orig_score and self.run_b_rep_score and self.run_a_rep_score):
        return deltaRI(orig_score_b=self.run_b_orig_score, orig_score_a=self.run_a_orig_score, rep_score_b=self.run_b_rep_score, rep_score_a=self.run_a_rep_score, pbar=print_feedback)
    else:
        print(ERR_MSG)