22 #ifndef DDC_TERM_EXPANDER_H 23 #define DDC_TERM_EXPANDER_H 25 #include "../CommonLib/utilit.h" 48 CTermExpander(
const string &cls,
const string& label,
const string& param)
50 : m_Class(cls), m_Label(label), m_Param(param)
54 CTermExpander(
const string &label=
string(
"NoLabel"),
const string& param=
string(
""))
55 : m_Class(
"None"), m_Label(label), m_Param(param)
80 virtual void expand(
const string& src, set<string>& dst);
83 virtual void expand(
const set<string>& src, set<string>& dst);
91 TxId(
const string &label=
string(
"Id"),
const string& param=
string(
""))
97 {
return new TxId(m_Label,m_Param); };
99 virtual void expand(
const set<string>& src, set<string>& dst);
113 TxChain(
const string &label=
string(
"Chain"),
const string& param=
string(
""))
124 void append(TxList& txl);
127 inline void append(
TxChain& txc);
133 string chainString(
const string& joinstr=
string(
"|"));
136 virtual void expand(
const set<string>& src, set<string>& dst);
148 TxLang(
const string& cls=
string(
"Lang"),
const string &label=
string(
"Lang"),
const string& param=
string(
"Generic"));
162 virtual void setLanguage(
const string &lang);
170 TxMorph(
const string &label=
string(
"Morph"),
const string& param=
string(
""))
171 :
TxLang(
"Morph",label,param)
179 virtual void expand(
const set<string>& src, set<string>& dst);
187 TxToLower(
const string &label=
string(
"ToLower"),
const string& param=
string(
""))
188 :
TxLang(
"ToLower",label,param)
196 virtual void expand(
const set<string>& src, set<string>& dst);
204 TxToUpper(
const string &label=
string(
"ToUpper"),
const string& param=
string(
""))
205 :
TxLang(
"ToUpper",label,param)
213 virtual void expand(
const set<string>& src, set<string>& dst);
221 TxCase(
const string &label=
string(
"Case"),
const string& param=
string(
""))
222 :
TxLang(
"Case",label,param)
230 virtual void expand(
const set<string>& src, set<string>& dst);
243 TxCurl(
const string &cls=
string(
"Curl"),
const string &label=
string(
"Curl"),
const string& param=
string(
""))
289 TxCab(
const string &label=
string(
"Cab"),
const string& param=
string(
""),
int Debug=0,
int MapMode=0)
290 :
TxCurl(
"Cab",label,param), m_Debug(Debug), m_MapMode(MapMode)
304 virtual void expand(
const set<string>& src, set<string>& dst);
312 TxCabMap(
const string &label=
string(
"CabMap"),
const string& param=
string(
""),
int Debug=0,
int MapMode=1)
313 :
TxCab(label,param,Debug,MapMode)
328 typedef map<string,CTermExpander*>
TxMap;
351 void clear(
bool doDelete=
true);
361 { ensureDefaultExpanders(lang,lang); };
394 void remove(
const string &label);
400 TxChain getChain(
const vector<string> &labels);
403 TxChain getChain(
const string& spec);
virtual CTermExpander * clone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor to create a new expansion object (override this for derived classes) */ ...
Definition: TermExpander.h:209
TxMorph: default backwards-compatible morphological expansion (morphy)
Definition: TermExpander.h:167
TxId: identity expander (null-op): params: none.
Definition: TermExpander.h:89
CTermExpander(const string &cls, const string &label, const string ¶m)
Full constructor (abstract base classes only)
Definition: TermExpander.h:49
CCurl: abstract term expander using libcurl.
Definition: CCurl.h:72
virtual ~CTermExpander(void)
Default destructor.
Definition: TermExpander.h:66
virtual CTermExpander * clone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor to create a new expansion object (override this for derived classes) */ ...
Definition: TermExpander.h:175
virtual ~TxLang(void)
Definition: TermExpander.h:149
TxCase: letter-case (upper<->lower) expander.
Definition: TermExpander.h:218
TxChain(const string &label=string("Chain"), const string ¶m=string(""))
default constructor
Definition: TermExpander.h:113
virtual void compile(void)
set up object based on label and/or parameter string; default implementation does nothing ...
Definition: TermExpander.h:69
virtual ~TxChain(void)
Destructor: sub-expanders are NOT implicitly destroyed!
Definition: TermExpander.h:121
virtual string configString(void) const
String form of this expander. Default is m_Class + " " + m_Label + " " + m_Param. ...
Definition: TermExpander.cpp:42
TxCase(const string &label=string("Case"), const string ¶m=string(""))
param: language name, passed to GetLanguageByString()
Definition: TermExpander.h:221
virtual ~TxMorph(void)
Definition: TermExpander.h:173
TxToLower: convert input to all-lower-case.
Definition: TermExpander.h:184
virtual ~TxCase(void)
Definition: TermExpander.h:224
virtual ~TxCab(void)
Definition: TermExpander.h:292
TxToUpper(const string &label=string("ToUpper"), const string ¶m=string(""))
param: language name, passed to GetLanguageByString()
Definition: TermExpander.h:204
string m_Label
unique name for this expander
Definition: TermExpander.h:39
virtual ~TxToLower(void)
Definition: TermExpander.h:190
CTermExpander(const string &label=string("NoLabel"), const string ¶m=string(""))
Default constructor, to be overridden by subclasses.
Definition: TermExpander.h:54
void parseTermExpanderSpec(const string &spec, string &txclass, string &txlabel, string &txparam)
parse a term expander specification as a space-separated (" \t\n\r") list "LABEL [CLASS=LABEL [PARAM=...
Definition: TermExpander.cpp:565
vector< CTermExpander * > TxList
TxChain: serial chain of (multiple) expanders.
Definition: TermExpander.h:104
virtual CTermExpander * clone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor to create a new expansion object (override this for derived classes) */ ...
Definition: TermExpander.h:62
Abstract API for term-expansion modules (e.g. thesauri, morphologies, equivalence maps...
Definition: TermExpander.h:33
virtual CTermExpander * clone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor to create a new expansion object (override this for derived classes) */ ...
Definition: TermExpander.h:226
string m_Param
string argument(s) for this expander (parameters, for stringification)
Definition: TermExpander.h:42
virtual CTermExpander * clone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor to create a new expansion object (override this for derived classes) */ ...
Definition: TermExpander.h:192
virtual ~TxToUpper(void)
Definition: TermExpander.h:207
TxCab: HTTP-based term expander using DTA::CAB HTTP protocol I/O format is DTA::CAB::Format::ExpandL...
Definition: TermExpander.h:275
virtual CTermExpander * clone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor to create a new expansion object (override this for derived classes) */ ...
Definition: TermExpander.h:96
list< string > m_txlist
list of defined expander names in definition order (for config-string generation) ...
Definition: TermExpander.h:334
virtual bool perform(void)
Wrapper for m_CCurl.perform_cached()
Definition: TermExpander.h:262
TxLang: abstract base class for language-dependent term expanders.
Definition: TermExpander.h:141
int m_MapMode
Definition: TermExpander.h:285
TxToUpper: convert input to all-upper-case.
Definition: TermExpander.h:201
virtual CTermExpander * clone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor to create a new expansion object (override this for derived classes) */ ...
Definition: TermExpander.h:151
map< string, CTermExpander * > TxMap
typedef for label->expander map
Definition: TermExpander.h:328
TxCab(const string &label=string("Cab"), const string ¶m=string(""), int Debug=0, int MapMode=0)
Definition: TermExpander.h:289
virtual ~TxCabMap(void)
Definition: TermExpander.h:317
virtual ~TxCurl(void)
Destructor frees m_Curl if non-NULL.
Definition: TermExpander.h:248
TxCurl: abstract term expander using libcurl.
Definition: TermExpander.h:236
TxMorph(const string &label=string("Morph"), const string ¶m=string(""))
param: language name, passed to GetLanguageByString()
Definition: TermExpander.h:170
TxCurl(const string &cls=string("Curl"), const string &label=string("Curl"), const string ¶m=string(""))
default constructor; no implicit compilation
Definition: TermExpander.h:243
TxList m_Chain
chain of sub-expanders; these must be explicitly freed
Definition: TermExpander.h:109
string m_UrlBase
base URL; newline-separated query argument(s) will be appended for each expansion query ...
Definition: TermExpander.h:278
TxCabMap: HTTP-based term expander using DTA::CAB HTTP protocol in "map-mode".
Definition: TermExpander.h:309
Definition: TermExpander.h:106
bool perform_cached(CCurlCache *cache=&ddcCurlCache)
Definition: CCurl.cpp:137
MorphLanguageEnum
Definition: utilit.h:162
void ensureDefaultExpanders(MorphLanguageEnum lang=morphGeneric)
wrapper for ensureDefaultExpanders(lang,lang)
Definition: TermExpander.h:360
string m_Class
class name for this expander
Definition: TermExpander.h:36
int m_Debug
debug?
Definition: TermExpander.h:281
CTermExpander * newTermExpander(const string &class_="Id", const string &label=string(""), const string ¶m=string(""))
create a new TermExpander from a parsed specification
Definition: TermExpander.cpp:587
virtual void expand(const string &src, set< string > &dst)
Expand a single term term to a set of terms dst.
Definition: TermExpander.cpp:47
virtual ~TxId(void)
Definition: TermExpander.h:94
virtual CTermExpander * mapClone(map< CTermExpander *, CTermExpander *> &xlate) const
clone constructor, handles sub-object cloning according to xlate map */
Definition: TermExpander.cpp:32
CCurl m_CCurl
CCurl object to use for expansion query.
Definition: TermExpander.h:239
TxId(const string &label=string("Id"), const string ¶m=string(""))
Definition: TermExpander.h:91
TxDispatcher: name-based expansion dispatcher.
Definition: TermExpander.h:325
TxMap m_tx
maps expander labels to expanders (label keys are case-sensitive!)
Definition: TermExpander.h:331
TxCabMap(const string &label=string("CabMap"), const string ¶m=string(""), int Debug=0, int MapMode=1)
Definition: TermExpander.h:312
MorphLanguageEnum m_Lang
DDC-language to use for expansion.
Definition: TermExpander.h:144
TxToLower(const string &label=string("ToLower"), const string ¶m=string(""))
param: language name, passed to GetLanguageByString()
Definition: TermExpander.h:187