public void Initialize(IEnumerable <Run> runs, IEnumerable <RelevanceEstimate> judged) { // Re-structure known judgments foreach (var j in judged) { string id = RelevanceEstimate.GetId(j.Query, j.Document); this._judged[id] = j; } // Instantiate estimator switch (this._name) { case "uniform": // nothing to initialize this._estimator = new UniformRelevanceEstimator(100); break; case "mout": // read metadata IEnumerable <Metadata> metadata = AbstractCommand.ReadMetadata(this._parameters["meta"]); this._estimator = new MoutRelevanceEstimator(runs, metadata); break; case "mjud": // read metadata metadata = AbstractCommand.ReadMetadata(this._parameters["meta"]); IEnumerable <RelevanceEstimate> judgedEst = this._parameters.ContainsKey("judged") ? AbstractCommand.ReadKnownJudgments(this._parameters["judged"]) : new RelevanceEstimate[] { }; this._estimator = new MjudRelevanceEstimator(runs, metadata, judgedEst); break; } }