LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
NormalizeDateTime.h
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
6
/************************************************************************
7
*
8
* @file NormalizeDateTime.h
9
* @author Besancon Romaric (romaric.besancon@cea.fr)
10
* @date Tue Jun 13 2006
11
* copyright Copyright (C) 2006-2012 by CEA LIST
12
* Project s2lp
13
*
14
* @brief actions for the normalization of dates and times
15
*
16
***********************************************************************/
17
18
#ifndef NORMALIZEDATETIME_H
19
#define NORMALIZEDATETIME_H
20
21
#include "
SpecificEntitiesExport.h
"
22
#include "
NormalizeDateTimeResources.h
"
23
#include "
linguisticProcessing/core/Automaton/constraintFunction.h
"
24
25
namespace
Lima
{
26
namespace
LinguisticProcessing {
27
namespace
SpecificEntities {
28
29
//**********************************************************************
30
// ids of actions defined in this file
31
32
#define NormalizeDateId "NormalizeDate"
33
#define NormalizeRelativeDateId "NormalizeRelativeDate"
34
#define NormalizeLocalTimeId "NormalizeLocalTime"
35
#define NormalizeUTCTimeId "NormalizeUTCTime"
36
37
// a class to store reference objects for relative normalization
38
class
LIMA_SPECIFICENTITIES_DATETIME_EXPORT
ReferenceData
{
39
public
:
40
ReferenceData
();
41
~ReferenceData
();
42
43
void
parseComplement(
const
LimaString
& complement);
44
void
parseReference(
const
LimaString
& str);
45
bool
getReferenceDate(
const
AnalysisContent
& analysis,
46
QDate& date)
const
;
47
bool
getReferenceTime(
const
AnalysisContent
& analysis,
48
QTime& time)
const
;
49
bool
getReferenceLocation(
const
AnalysisContent
& analysis,
50
std::string& location)
const
;
51
52
const
std::string&
getDateRefName
()
const
{
return
m_dateRefName; }
53
const
std::string&
getTimeRefName
()
const
{
return
m_timeRefName; }
54
const
std::string&
getLocRefName
()
const
{
return
m_locRefName; }
55
56
void
setDateRefName
(
const
std::string& name) { m_dateRefName=name; }
57
void
setTimeRefName
(
const
std::string& name) { m_timeRefName=name; }
58
void
setLocRefName
(
const
std::string& name) { m_locRefName=name; }
59
60
private
:
61
std::string m_dateRefName;
62
std::string m_timeRefName;
63
std::string m_locRefName;
64
};
65
66
class
LIMA_SPECIFICENTITIES_DATETIME_EXPORT
NormalizeDate
:
public
Automaton::ConstraintFunction
67
{
68
public
:
69
NormalizeDate
(MediaId language,
70
const
LimaString
& complement=
LimaString
());
71
~NormalizeDate
() {}
72
73
bool
operator()(
Automaton::RecognizerMatch
& m,
74
AnalysisContent
& analysis)
const override
;
75
76
bool
actionNeedsRecognizedExpression
()
override
{
return
true
; }
77
78
protected
:
79
MediaId
m_language
;
80
std::shared_ptr<NormalizeDateTimeResources>
m_resources
;
81
ReferenceData
m_referenceData
;
82
const
std::set<LinguisticCode>*
m_microsForMonth
;
83
const
std::set<LinguisticCode>*
m_microsForDays
;
84
const
Common::PropertyCode::PropertyAccessor
*
m_microAccessor
;
85
bool
m_isInterval
;
86
87
void
updateCurrentDate(
AnalysisContent
& analysis,
88
const
QDate& currentDate)
const
;
89
unsigned
short
getDayFromString(
const
LimaString
& numdayString)
const
;
90
unsigned
short
getDay(
Automaton::RecognizerMatch
& m,
const
std::string& featureName)
const
;
91
unsigned
short
getWeekDay(
Automaton::RecognizerMatch
& m,
const
std::string& featureName)
const
;
92
unsigned
short
getMonth(
Automaton::RecognizerMatch
& m,
const
std::string& featureName,
const
std::string& alt=
""
)
const
;
93
unsigned
short
getYear(
Automaton::RecognizerMatch
& m,
const
std::string& featureName)
const
;
94
unsigned
short
getDefaultYear
(
AnalysisContent
& analysis)
const
;
95
QString getDateSpan(
unsigned
short
year,
unsigned
short
month,
unsigned
short
day)
const
;
96
97
};
98
99
class
LIMA_SPECIFICENTITIES_DATETIME_EXPORT
NormalizeRelativeDate
:
public
NormalizeDate
100
{
101
public
:
102
NormalizeRelativeDate
(MediaId language,
103
const
LimaString
& complement=
LimaString
());
104
~NormalizeRelativeDate
() {}
105
106
bool
operator()(
Automaton::RecognizerMatch
& m,
107
AnalysisContent
& analysis)
const override
;
108
109
bool
actionNeedsRecognizedExpression
()
override
{
return
true
; }
110
private
:
111
bool
m_getNext;
112
int
m_diff;
113
};
114
115
// abstract constraint that contains common functions for
116
// time normalization
117
class
LIMA_SPECIFICENTITIES_DATETIME_EXPORT
NormalizeTime
:
public
Automaton::ConstraintFunction
118
{
119
public
:
120
NormalizeTime
(MediaId language,
121
const
LimaString
& complement=
LimaString
());
122
virtual
~NormalizeTime
() {}
123
124
virtual
bool
operator()
(
Automaton::RecognizerMatch
& m,
125
AnalysisContent
& analysis)
const override
=0;
126
virtual
bool
actionNeedsRecognizedExpression
()
override
{
return
true
; }
127
128
const
ReferenceData
&
getReferenceData
()
const
{
return
m_referenceData; }
129
bool
hasResources
()
const
{
return
(m_resources!=0); }
130
const
std::shared_ptr<NormalizeDateTimeResources>
getResources
()
const
{
return
m_resources; }
131
132
protected
:
133
//private member functions
134
QTime
135
getUTCTime(
const
QDate& d,
136
const
QTime& duration
/*,
137
const std::string& location,
138
const boost::local_time::tz_database& tz_db*/
)
const
;
139
QTime getTimeDuration(
const
Automaton::RecognizerMatch
& m)
const
;
140
141
private
:
142
MediaId m_language;
143
std::shared_ptr<NormalizeDateTimeResources> m_resources;
144
ReferenceData
m_referenceData;
145
};
146
147
class
LIMA_SPECIFICENTITIES_DATETIME_EXPORT
NormalizeLocalTime
:
public
NormalizeTime
148
{
149
public
:
150
NormalizeLocalTime
(MediaId language,
151
const
LimaString
& complement=
LimaString
());
152
~NormalizeLocalTime
() {}
153
154
bool
operator()(
Automaton::RecognizerMatch
& m,
155
AnalysisContent
& analysis)
const override
;
156
private
:
157
};
158
159
class
LIMA_SPECIFICENTITIES_DATETIME_EXPORT
NormalizeUTCTime
:
public
NormalizeTime
160
{
161
public
:
162
NormalizeUTCTime
(MediaId language,
163
const
LimaString
& complement=
LimaString
());
164
~NormalizeUTCTime
() {}
165
166
bool
operator()(
Automaton::RecognizerMatch
& m,
167
AnalysisContent
& analysis)
const override
;
168
private
:
169
};
170
171
}
// end namespace
172
}
// end namespace
173
}
// end namespace
174
175
#endif
NormalizeDateTimeResources.h
SpecificEntitiesExport.h
LIMA_SPECIFICENTITIES_DATETIME_EXPORT
#define LIMA_SPECIFICENTITIES_DATETIME_EXPORT
Definition
SpecificEntitiesExport.h:48
Lima::AnalysisContent
Holds all data that pass through the ProcessUnits Analysis data are shared pointers,...
Definition
AnalysisContent.h:37
Lima::Common::PropertyCode::PropertyAccessor
Provide function to read write and check a property.
Definition
PropertyAccessor.h:31
Lima::LinguisticProcessing::Automaton::ConstraintFunction
Definition
constraintFunction.h:37
Lima::LinguisticProcessing::Automaton::RecognizerMatch
Definition
recognizerMatch.h:56
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate
Definition
NormalizeDateTime.h:67
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::m_language
MediaId m_language
Definition
NormalizeDateTime.h:79
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::m_referenceData
ReferenceData m_referenceData
Definition
NormalizeDateTime.h:81
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::m_microsForMonth
const std::set< LinguisticCode > * m_microsForMonth
Definition
NormalizeDateTime.h:82
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::m_resources
std::shared_ptr< NormalizeDateTimeResources > m_resources
Definition
NormalizeDateTime.h:80
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::m_microsForDays
const std::set< LinguisticCode > * m_microsForDays
Definition
NormalizeDateTime.h:83
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::m_isInterval
bool m_isInterval
Definition
NormalizeDateTime.h:85
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::~NormalizeDate
~NormalizeDate()
Definition
NormalizeDateTime.h:71
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::actionNeedsRecognizedExpression
bool actionNeedsRecognizedExpression() override
Definition
NormalizeDateTime.h:76
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::m_microAccessor
const Common::PropertyCode::PropertyAccessor * m_microAccessor
Definition
NormalizeDateTime.h:84
Lima::LinguisticProcessing::SpecificEntities::NormalizeDate::getDefaultYear
unsigned short getDefaultYear(AnalysisContent &analysis) const
Lima::LinguisticProcessing::SpecificEntities::NormalizeLocalTime
Definition
NormalizeDateTime.h:148
Lima::LinguisticProcessing::SpecificEntities::NormalizeLocalTime::~NormalizeLocalTime
~NormalizeLocalTime()
Definition
NormalizeDateTime.h:152
Lima::LinguisticProcessing::SpecificEntities::NormalizeRelativeDate
Definition
NormalizeDateTime.h:100
Lima::LinguisticProcessing::SpecificEntities::NormalizeRelativeDate::~NormalizeRelativeDate
~NormalizeRelativeDate()
Definition
NormalizeDateTime.h:104
Lima::LinguisticProcessing::SpecificEntities::NormalizeRelativeDate::actionNeedsRecognizedExpression
bool actionNeedsRecognizedExpression() override
Definition
NormalizeDateTime.h:109
Lima::LinguisticProcessing::SpecificEntities::NormalizeTime
Definition
NormalizeDateTime.h:118
Lima::LinguisticProcessing::SpecificEntities::NormalizeTime::~NormalizeTime
virtual ~NormalizeTime()
Definition
NormalizeDateTime.h:122
Lima::LinguisticProcessing::SpecificEntities::NormalizeTime::getReferenceData
const ReferenceData & getReferenceData() const
Definition
NormalizeDateTime.h:128
Lima::LinguisticProcessing::SpecificEntities::NormalizeTime::getResources
const std::shared_ptr< NormalizeDateTimeResources > getResources() const
Definition
NormalizeDateTime.h:130
Lima::LinguisticProcessing::SpecificEntities::NormalizeTime::actionNeedsRecognizedExpression
virtual bool actionNeedsRecognizedExpression() override
Definition
NormalizeDateTime.h:126
Lima::LinguisticProcessing::SpecificEntities::NormalizeTime::hasResources
bool hasResources() const
Definition
NormalizeDateTime.h:129
Lima::LinguisticProcessing::SpecificEntities::NormalizeTime::operator()
virtual bool operator()(Automaton::RecognizerMatch &m, AnalysisContent &analysis) const override=0
zero-ary constraint function : applies the function without a vertex indication (used for actions,...
Lima::LinguisticProcessing::SpecificEntities::NormalizeUTCTime
Definition
NormalizeDateTime.h:160
Lima::LinguisticProcessing::SpecificEntities::NormalizeUTCTime::~NormalizeUTCTime
~NormalizeUTCTime()
Definition
NormalizeDateTime.h:164
Lima::LinguisticProcessing::SpecificEntities::ReferenceData
Definition
NormalizeDateTime.h:38
Lima::LinguisticProcessing::SpecificEntities::ReferenceData::setDateRefName
void setDateRefName(const std::string &name)
Definition
NormalizeDateTime.h:56
Lima::LinguisticProcessing::SpecificEntities::ReferenceData::getTimeRefName
const std::string & getTimeRefName() const
Definition
NormalizeDateTime.h:53
Lima::LinguisticProcessing::SpecificEntities::ReferenceData::getDateRefName
const std::string & getDateRefName() const
Definition
NormalizeDateTime.h:52
Lima::LinguisticProcessing::SpecificEntities::ReferenceData::setLocRefName
void setLocRefName(const std::string &name)
Definition
NormalizeDateTime.h:58
Lima::LinguisticProcessing::SpecificEntities::ReferenceData::getLocRefName
const std::string & getLocRefName() const
Definition
NormalizeDateTime.h:54
Lima::LinguisticProcessing::SpecificEntities::ReferenceData::setTimeRefName
void setTimeRefName(const std::string &name)
Definition
NormalizeDateTime.h:57
constraintFunction.h
Lima
NAUTITIA.
Definition
AmosePluginsManager.h:15
Lima::LimaString
QString LimaString
Definition
LimaString.h:33
lima_linguisticprocessing
src
linguisticProcessing
core
SpecificEntities
NormalizeDateTime.h
Generated by
1.9.8