internal KnowledgeReport(ExtractionKnowledge knowledge, LinkBasedExtractor extractor, QuestionCollection questions, bool fruitOnly)
        {
            StoragePath   = knowledge.StoragePath;
            QuestionCount = knowledge.Questions.Count();
            var reports = new List <QuestionReport>();

            foreach (var question in knowledge.Questions)
            {
                if (!question.AnswerHints.Any())
                {
                    continue;
                }

                var answerId = FreebaseDbProvider.GetId(questions.GetAnswerMid(question.Utterance.OriginalSentence));
                var report   = new QuestionReport(question, answerId, extractor);
                if (fruitOnly)
                {
                    if (report.TopDenotationEvidence < 2 || report.CollectedDenotations.Count() - report.TopDenotationEvidence * 2 >= 0)
                    {
                        //not enough evidence
                        continue;
                    }
                }

                reports.Add(report);
            }

            Questions = reports.OrderByDescending(r => r.CollectedDenotations.Count());
        }
 internal AnswerExtractionManager(QuestionCollection questions, ExtractionKnowledge knowledge, LinkBasedExtractor extractor)
 {
     _questions = questions;
     _knowledge = knowledge;
     _extractor = extractor;
 }