int calculateStatisticsOrAnotate(ChainsContainer &generatedChains, NarratorGraph *generatedPor, QString *text, QString fileName) { HadithChainGraph *dummyChainGraph = new HadithChainGraph(); OutputDataList outputList; HadithDagGraph *generatedGraph = new HadithDagGraph(generatedPor); for (int i = 0; i < generatedChains.size(); i++) { Chain *chain = generatedChains[i]; int start = chain->getStart(); int end = chain->getEnd(); OutputData sel(dummyChainGraph->duplicate(), text, start, end); Chain c_narrators(text); for (int j = 0; j < chain->m_chain.size(); j++) { ChainPrim *c = chain->m_chain[j]; if (c->isNarrator()) { Narrator *narr = dynamic_cast<Narrator *>(c); start = narr->getStart(); end = narr->getEnd(); Name name(text, start, end); sel.addName(name); c_narrators.m_chain.append(narr); } } HadithChainGraph *localGraph = new HadithChainGraph( c_narrators); //we should not call deleteGraph() else we corrupt 'chain' delete sel.getGraph(); sel.setGraph(localGraph); outputList.append(sel); } HadithInterAnnotatorAgreement h(text, fileName, generatedGraph, outputList, true); if (h.calculateStatisticsOrAnotate() == 0) { h.displayStatistics(); } return 0; #undef NULL_CORRECT #undef NULL_DETECTED }