docstr: Input: List of examples
  Output: Reference + Reference-free scores for metrics
  
  Child classes should override this if the way it uses refs/hypos/context are different. (Like in CTCScore)
code: def score_data(
      self, exs: List[Example], want_ref_types=List[UseRef]
  ) -> Dict[UseRef, Dict[str, List[float]]]:
      """
      Input: List of examples
      Output: Reference + Reference-free scores for metrics
  
      Child classes should override this if the way it uses refs/hypos/context are different. (Like in CTCScore)
      """
      assert len(exs) > 0
      result = {}
      if UseRef.NO in want_ref_types:
          result[UseRef.NO] = self.get_scores(ScoreMe(exs, UseRef.NO))
      if UseRef.YES in want_ref_types and exs[0].ref is not None:
          result[UseRef.YES] = self.get_scores(ScoreMe(exs, UseRef.YES))
      return result
  
imports: from typing import Dict, List
  from projects.roscoe.baselines.constants import BARTSCORE_CNN_F, BARTSCORE_CNN_PARA_F, BARTSCORE_F, BARTSCORE_FINETUNED_F, BERTSCORE_F, BLEURT, CTC_CONSISTENCY_SUMMARY, CTC_RELEVANCE_SUMMARY, PRISM_AVG, ROUGE_L, ROUGE_2, ROUGE_1, Example, ScoreMe, UseRef
  import re
  from importlib.machinery import SourceFileLoader
label_desc: Use image node_id 2 for calling the BaselineScorer obj's underlying member method code with example usage: obj.score_data(exs, want_ref_types) and returns: result