LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
SyntacticRelationsLogger.cpp
Go to the documentation of this file.
1// Copyright 2002-2013 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
7// #include "common/linguisticData/linguisticData.h"
8// #include "common/misc/traceUtils.h"
15
16#include <iostream>
17#include <fstream>
18
19using namespace std;
21using namespace Lima::Common::MediaticData;
23
24namespace Lima
25{
26namespace LinguisticProcessing
27{
28namespace SyntacticAnalysis
29{
30
32
37
40
43 Manager* manager)
44
45{
46 AbstractTextualAnalysisDumper::init(unitConfiguration,manager);
47
48 m_language=manager->getInitializationParameters().media;
49
50 //Parameters settings example
51 /*try
52 {
53 string boolValue=unitConfiguration.getParamsValueAtKey("displayChains");
54 if (boolValue=="yes" || boolValue=="true" || boolValue=="1") {
55 m_displayChains=true;
56 }
57 else {
58 m_displayChains=false;
59 }
60 }
61 catch (NoSuchParam& ) {
62 // optional param, keep default value
63 } */
64}
65
66
67// Each token of the specified path is
68// searched into the specified dictionary.
70 AnalysisContent& analysis) const
71{
74 auto metadata = std::dynamic_pointer_cast<LinguisticMetaData>(analysis.getData("LinguisticMetaData"));
75 if (metadata == 0) {
77 LERROR << "no LinguisticMetaData ! abort";
78 return MISSING_DATA;
79 }
80
81 auto dstream = initialize(analysis);
82 std::ostream& outputStream=dstream->out();
83 /*std::ofstream ofs;
84 if (!openLogFile(ofs,metadata->getMetaData("FileName"))) {
85 SALOGINIT;
86 LERROR << "SyntacticRelationsLogger::Cannot open log file";
87 return CANNOT_OPEN_FILE_ERROR;
88 }*/
89
90// auto tokenList=std::dynamic_pointer_cast<AnalysisGraph>(analysis.getData("AnalysisGraph"));
91 //ofs << endl << "Printing syntactic analysis result :" << endl;
92 auto syntacticData = std::dynamic_pointer_cast<const SyntacticData>(analysis.getData("SyntacticData"));
93 LDEBUG << "call of displayRelationsXMLFormat";
94 SyntacticAnalysisTools::displayRelationsXMLFormat(*syntacticData,m_language,outputStream);
95
96 TimeUtils::logElapsedTime("SyntacticRelationsLogger");
97 return SUCCESS_ID;
98}
99
100} // Data
101} // LinguisticProcessing
102} // Lima
#define LDEBUG
Definition LimaCommon.h:157
#define LERROR
Definition LimaCommon.h:161
#define SALOGINIT
Defines a Factory to create Object of type Base.
Dependency graph text form displaying tools.
#define SYNTACTICRELATIONSLOGGER_CLASSID
Holds all data that pass through the ProcessUnits Analysis data are shared pointers,...
std::shared_ptr< AnalysisData > getData(const QString &id)
return AnalysisData by id
Manage initialization of InitializableObjects using configuration module and parameters.
const InitializationParameters & getInitializationParameters() const
get Initialization Parameters
std::shared_ptr< DumperStream > initialize(AnalysisContent &analysis) const
virtual void init(Common::XMLConfigurationFiles::GroupConfigurationStructure &unitConfiguration, Manager *manager) override
initialize with parameters from configuration file.
static void displayRelationsXMLFormat(const SyntacticData &data, const MediaId language, std::ostream &out)
void init(Common::XMLConfigurationFiles::GroupConfigurationStructure &unitConfiguration, Manager *manager) override
initialize with parameters from configuration file.
LimaStatusCode process(AnalysisContent &analysis) const override
Process on data in analysisContent.
static void logElapsedTime(const std::string &mess, const std::string &taskCategory=std::string(""))
log the number of microseconds since last UpdateCurrentTime
static void updateCurrentTime(const std::string &taskCategory=std::string(""))
store current time for new elapsed time computation
SimpleFactory< MediaProcessUnit, SyntacticRelationsLogger > syntacticRelationsLoggerLoggerFactory(SYNTACTICRELATIONSLOGGER_CLASSID)
NAUTITIA.
LimaStatusCode
Definition LimaCommon.h:236
@ SUCCESS_ID
Definition LimaCommon.h:237
@ MISSING_DATA
Definition LimaCommon.h:243
STL namespace.