KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Event_traits.h
Go to the documentation of this file.
1 #ifndef EVENT_TRAITS_H_
2 #define EVENT_TRAITS_H_
3 
4 #define USE_SEMANTICS
5 
14 #include <semantics/Event_view.h>
15 #include <semantics/Cell_traits.h>
17 #include <boost/array.hpp>
18 #include <boost/bimap.hpp>
19 #include <string>
20 
21 namespace
22 {
23  const double SYN_MIN_PROB = 0.0000000000000000001;
24  const double SEM_MIN_PROB = 1.0/7;
25  const int DIVERSITY_SMOOTHER = 5;
26 }
27 
28 
29 namespace semantics
30 {
31 
32  namespace Key_slots
33  {
34  typedef boost::bimap<int, std::string> Map;
35  }
36 
37 class Root_event;
38 class Unary_event;
39 class Dependency_event;
41 class Mod_semantic_event;
42 class S1_event;
43 class S2_event;
44 class U_event;
45 class D1_event;
46 class D2_event;
47 class PCC1_event;
48 class PCC2_event;
49 class Hsem_event;
50 class Msem_event;
51 
52 template<class T> struct View_traits;
53 
54 template<>
55 struct View_traits<S1_event>
56 {
57  enum
58  {
59  out_size = 2,
60 #ifndef USE_SEMANTICS
61  size = 3,
62  context_levels = 1
63 #else
64  size = 5,
65  context_levels = 2
66 #endif
67  };
69  typedef boost::array<std::string, size> Var_list;
70  static const Step_sizes step_sizes;
71  static const Var_list variable_names;
73  static const double& prior_prob(const size_t&, const size_t&)
74  {
75  static double pp = SYN_MIN_PROB;
76  return pp;
77  }
78  static const double& diversity_weight()
79  {
80  static double dw = DIVERSITY_SMOOTHER; return dw;
81  }
82 };
83 
84 
85 template<>
86 struct View_traits<S2_event>
87 {
88  enum
89  {
90  out_size = 1,
91 #ifndef USE_SEMANTICS
92  size = 4,
93  context_levels = 2
94 #else
95  size = 6,
96  context_levels = 3
97 #endif
98  };
100  typedef boost::array<std::string, size> Var_list;
101  static const Step_sizes step_sizes;
102  static const Var_list variable_names;
104  static const double& prior_prob(const size_t&, const size_t&)
105  {
106  static double pp = SYN_MIN_PROB;
107  return pp;
108  }
109  static const double& diversity_weight()
110  {
111  static double dw = DIVERSITY_SMOOTHER;
112  return dw;
113  }
114 };
115 
116 template<>
117 struct View_traits<U_event>
118 {
119  enum
120  {
121  out_size = 1,
122 #ifndef USE_SEMANTICS
123  size = 4,
124  context_levels = 3
125 #else
126  size = 8,
127  context_levels = 4
128 #endif
129  };
131  typedef boost::array<std::string, size> Var_list;
132  static const Step_sizes step_sizes;
133  static const Var_list variable_names;
135  static const double& prior_prob(const size_t&, const size_t&)
136  {
137  static double pp = SYN_MIN_PROB;
138  return pp;
139  }
140  static const double& diversity_weight()
141  {
142  static double dw = DIVERSITY_SMOOTHER;
143  return dw;
144  }
145 };
146 
147 template<>
148 struct View_traits<D1_event>
149 {
150  enum
151  {
152  out_size = 4,
153 #ifndef USE_SEMANTICS
154  size = 9,
155  context_levels = 3
156 #else
157  size = 15,
158  context_levels = 4
159 #endif
160  };
162  typedef boost::array<std::string, size> Var_list;
163  static const Step_sizes step_sizes;
164  static const Var_list variable_names;
166  static const double& prior_prob(const size_t&, const size_t&)
167  {
168  static double pp = SYN_MIN_PROB;
169  return pp;
170  }
171  static const double& diversity_weight()
172  {
173  static double dw = DIVERSITY_SMOOTHER;
174  return dw;
175  }
176 };
177 
178 
179 template<>
180 struct View_traits<D2_event>
181 {
182  enum
183  {
184  out_size = 1,
185 #ifndef USE_SEMANTICS
186  size = 10,
187  context_levels = 3
188 #else
189  size = 16,
190  context_levels = 4
191 #endif
192  };
194  typedef boost::array<std::string, size> Var_list;
195  static const Step_sizes step_sizes;
196  static const Var_list variable_names;
198  static const double& prior_prob(const size_t&, const size_t&)
199  {
200  static double pp = SYN_MIN_PROB;
201  return pp;
202  }
203  static const double& diversity_weight()
204  {
205  static double dw = DIVERSITY_SMOOTHER;
206  return dw;
207  }
208 };
209 
210 template<>
211 struct View_traits<PCC1_event>
212 {
213  enum
214  {
215  out_size = 1,
216  size = 9,
217  context_levels = 3
218  };
220  typedef boost::array<std::string, size> Var_list;
221  static const Step_sizes step_sizes;
222  static const Var_list variable_names;
224  static const double& prior_prob(const size_t&, const size_t&)
225  {
226  static double pp = SYN_MIN_PROB;
227  return pp;
228  }
229  static const double& diversity_weight()
230  {
231  static double dw = DIVERSITY_SMOOTHER;
232  return dw;
233  }
234 };
235 
236 template<>
237 struct View_traits<PCC2_event>
238 {
239  enum
240  {
241  out_size = 1,
242  size = 10,
243  context_levels = 3
244  };
246  typedef boost::array<std::string, size> Var_list;
247  static const Step_sizes step_sizes;
248  static const Var_list variable_names;
250  static const double& prior_prob(const size_t&, const size_t&)
251  {
252  static double pp = SYN_MIN_PROB;
253  return pp;
254  }
255  static const double& diversity_weight()
256  {
257  static double dw = DIVERSITY_SMOOTHER;
258  return dw;
259  }
260 };
261 
262 template<>
263 struct View_traits<Hsem_event>
264 {
265  enum
266  {
267  out_size = 1,
268  size = 7,
269  context_levels = 3
270  };
272  typedef boost::array<std::string, size> Var_list;
273  static const Step_sizes step_sizes;
274  static const Var_list variable_names;
276  static const double& prior_prob(const size_t& val, const size_t& type)
277  {
278  const double& pp = step_code_priors()[type][val];
279  return pp;
280  }
281  static const double& diversity_weight()
282  {
283  static double dw = DIVERSITY_SMOOTHER;
284  return dw;
285  }
286 };
287 
288 template<>
289 struct View_traits<Msem_event>
290 {
291  enum
292  {
293  out_size = 1,
294  size = 11,
295  context_levels = 4
296  };
298  typedef boost::array<std::string, size> Var_list;
299  static const Step_sizes step_sizes;
300  static const Var_list variable_names;
302  static const double& prior_prob(const size_t& val, const size_t& type)
303  {
304  const double& pp = step_code_priors()[type][val];
305  return pp;
306  }
307  static const double& diversity_weight()
308  {
309  static double dw = DIVERSITY_SMOOTHER;
310  return dw;
311  }
312 };
313 
323 
333 
334 
335 // Reroute contingency tables for D2 events at the last smoothing level
336 // to be shared with S2 events at their last smoothing level
337 
338 template<>
339 struct Cell_traits<semantics::D2_view, 2>
340 {
342 };
343 
345 
346 }; // namespace semantics
347 
348 #endif /* _EVENT_TRAITS_H_ */
static const double & prior_prob(const size_t &val, const size_t &type)
Definition: Event_traits.h:302
static const double & diversity_weight()
Definition: Event_traits.h:281
static const Var_list variable_names
Definition: Event_traits.h:71
static const double & diversity_weight()
Definition: Event_traits.h:109
static const Var_list variable_names
Definition: Event_traits.h:300
View_traits< U_event > U_traits
Definition: Event_traits.h:316
static const Step_sizes step_sizes
Definition: Event_traits.h:101
Event_view< PCC1_event > PCC1_view
Definition: Event_traits.h:329
static const double & prior_prob(const size_t &val, const size_t &type)
Definition: Event_traits.h:276
boost::array< std::string, size > Var_list
Definition: Event_traits.h:272
Definition: Dependency_event.h:26
static const double & diversity_weight()
Definition: Event_traits.h:78
static const Var_list variable_names
Definition: Event_traits.h:274
static const Key_slots::Map variable_map
Definition: Event_traits.h:197
Definition: Cell_traits.h:28
static const double & prior_prob(const size_t &, const size_t &)
Definition: Event_traits.h:166
View_traits< Hsem_event > Hsem_traits
Definition: Event_traits.h:321
static const Step_sizes step_sizes
Definition: Event_traits.h:195
boost::array< std::string, size > Var_list
Definition: Event_traits.h:131
const std::vector< Step_code::Weights > & step_code_priors()
Definition: Semantic_traits.cpp:176
View_traits< PCC2_event > PCC2_traits
Definition: Event_traits.h:320
Definition: Event_traits.h:289
Event_view< S1_event > S1_view
Definition: Event_traits.h:324
Event_view< S2_event > S2_view
Definition: Event_traits.h:325
Definition: Event_traits.h:52
static const Key_slots::Map variable_map
Definition: Event_traits.h:72
Definition: Event_traits.h:86
static const Step_sizes step_sizes
Definition: Event_traits.h:247
static const double & prior_prob(const size_t &, const size_t &)
Definition: Event_traits.h:198
Event_view< Msem_event > Msem_view
Definition: Event_traits.h:332
static const Step_sizes step_sizes
Definition: Event_traits.h:221
static const Step_sizes step_sizes
Definition: Event_traits.h:163
static const Key_slots::Map variable_map
Definition: Event_traits.h:103
boost::array< std::string, size > Var_list
Definition: Event_traits.h:194
Definition: Event_traits.h:117
static const Step_sizes step_sizes
Definition: Event_traits.h:273
static const Var_list variable_names
Definition: Event_traits.h:133
static const Key_slots::Map variable_map
Definition: Event_traits.h:223
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:193
View_traits< S2_event > S2_traits
Definition: Event_traits.h:315
static const double & prior_prob(const size_t &, const size_t &)
Definition: Event_traits.h:104
static const double & diversity_weight()
Definition: Event_traits.h:229
View_traits< D2_event > D2_traits
Definition: Event_traits.h:318
static const Step_sizes step_sizes
Definition: Event_traits.h:299
boost::array< std::string, size > Var_list
Definition: Event_traits.h:246
static const Var_list variable_names
Definition: Event_traits.h:248
static const double & diversity_weight()
Definition: Event_traits.h:140
Definition: Unary_event.h:21
Event_view< PCC2_event > PCC2_view
Definition: Event_traits.h:330
Definition: Event_traits.h:55
boost::array< std::string, size > Var_list
Definition: Event_traits.h:162
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:219
View_traits< D1_event > D1_traits
Definition: Event_traits.h:317
View_traits< PCC1_event > PCC1_traits
Definition: Event_traits.h:319
concrete class for contingency table cell
Definition: Cell_traits.h:24
void resample_all_event_alphas()
Definition: Event_traits.cpp:127
static const Var_list variable_names
Definition: Event_traits.h:102
static const Var_list variable_names
Definition: Event_traits.h:164
static const Key_slots::Map variable_map
Definition: Event_traits.h:249
boost::array< std::string, size > Var_list
Definition: Event_traits.h:69
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:68
static const double & prior_prob(const size_t &, const size_t &)
Definition: Event_traits.h:73
Definition: Event_traits.h:180
std::vector< size_t > Step_sizes
Definition: Cell_base_classes.h:28
Template class to represent different "views" of syntactic events.
Definition: Event_view.h:32
Definition: Head_semantic_event.h:18
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:245
View_traits< S1_event > S1_traits
Definition: Event_traits.h:314
boost::array< std::string, size > Var_list
Definition: Event_traits.h:298
static const Var_list variable_names
Definition: Event_traits.h:222
static const double & diversity_weight()
Definition: Event_traits.h:203
Event_view< U_event > U_view
Definition: Event_traits.h:326
static const Key_slots::Map variable_map
Definition: Event_traits.h:134
static const Step_sizes step_sizes
Definition: Event_traits.h:70
Event_view< Hsem_event > Hsem_view
Definition: Event_traits.h:331
static const Key_slots::Map variable_map
Definition: Event_traits.h:301
Definition: Event_traits.h:263
static const double & prior_prob(const size_t &, const size_t &)
Definition: Event_traits.h:250
static const Step_sizes step_sizes
Definition: Event_traits.h:132
boost::array< std::string, size > Var_list
Definition: Event_traits.h:100
Definition: Event_traits.h:211
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:161
static const double & diversity_weight()
Definition: Event_traits.h:307
static const double & prior_prob(const size_t &, const size_t &)
Definition: Event_traits.h:135
Definition: Root_event.h:24
static const double & diversity_weight()
Definition: Event_traits.h:255
Definition: Event_traits.h:148
View_traits< Msem_event > Msem_traits
Definition: Event_traits.h:322
Event_view< D1_event > D1_view
Definition: Event_traits.h:327
Definition: Mod_semantic_event.h:18
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:99
Marginal_cell< semantics::S2_view, 1 > Margin_type
Definition: Event_traits.h:341
static const double & prior_prob(const size_t &, const size_t &)
Definition: Event_traits.h:224
boost::bimap< int, std::string > Map
Definition: Event_traits.h:34
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:271
static const Key_slots::Map variable_map
Definition: Event_traits.h:275
static const Var_list variable_names
Definition: Event_traits.h:196
static const Key_slots::Map variable_map
Definition: Event_traits.h:165
boost::array< std::string, size > Var_list
Definition: Event_traits.h:220
static const double & diversity_weight()
Definition: Event_traits.h:171
Event_view< D2_event > D2_view
Definition: Event_traits.h:328
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:297
Cell::Step_sizes Step_sizes
Definition: Event_traits.h:130
Definition: Event_traits.h:237