Python LMF library
 All Classes Namespaces Files Functions Variables
statement.py
Go to the documentation of this file.
1 #! /usr/bin/env python
2 
3 """! @package core
4 """
5 
6 from utils.attr import check_attr_type, check_attr_range
7 from common.range import noteType_range
8 
9 class Statement():
10  """! "Statement is a class representating a narrative description that refines or complements Definition." (LMF)
11  """
12  def __init__(self):
13  """! @brief Constructor.
14  Statement instances are owned by Definition.
15  @return A Statement instance.
16  """
17  self.noteType = None
18  self.note = None
19  self.language = None
21  self.usageNote = None
22  self.restriction = None
23  self.derivation = None
24  self.borrowedWord = None
25  self.writtenForm = None
26  self.sense = None
27  self.etymology = None
28  self.etymologyComment = None
29  self.etymologyGloss = None
30  self.etymologySource = None
31  self.termSourceLanguage = None
32  self.targetLexicalEntry = None
33  self.scientificName = None
34  ## TextRepresentation instances are owned by Statement
35  # There is zero to many TextRepresentation instances per Statement
37 
38  def __del__(self):
39  """! @brief Destructor.
40  Release TextRepresentation instances.
41  """
42  for text_representation in self.text_representation:
43  del text_representation
44  del self.text_representation[:]
45 
46  def set_note(self, note, type=None, language=None):
47  """! @brief Set note.
48  @param note Note to set.
49  @param type Type of the note.
50  @param language Language used for the note.
51  @return Statement instance.
52  """
53  self.note = note
54  if type is not None:
55  self.set_noteType(type)
56  if language is not None:
57  self.set_language(language)
58  return self
59 
60  def get_note(self, type=None, language=None):
61  """! @brief Get note.
62  @param type If this argument is given, get note only if its type corresponds.
63  @param language If this argument is given, get note only if written in this language.
64  @return The filtered Statement attribute 'note'.
65  """
66  if type is None:
67  if language is None or self.get_language() == language:
68  return self.note
69  elif self.get_noteType() == type:
70  if language is None or self.get_language() == language:
71  return self.note
72 
73  def set_language(self, language):
74  """! @brief Set language used for the note.
75  @param language Language used for the note.
76  @return Statement instance.
77  """
78  error_msg = "Language value '%s' is not allowed" % language
79  check_attr_type(language, [str, unicode], error_msg)
80  self.language = language
81  return self
82 
83  def get_language(self):
84  """! @brief Get language used for the note.
85  @return Statement attribute 'language'.
86  """
87  return self.language
88 
89  def set_noteType(self, note_type):
90  """! @brief Set type of the note.
91  @param note_type Type of the note.
92  @return Statement instance.
93  """
94  error_msg = "Note type value '%s' is not allowed" % note_type
95  check_attr_type(note_type, [str, unicode], error_msg)
96  check_attr_range(note_type, noteType_range, error_msg)
97  self.noteType = note_type
98  return self
99 
100  def get_noteType(self):
101  """! @brief Get type of the note.
102  @return Statement attribute 'noteType'.
103  """
104  return self.noteType
105 
106  def set_usageNote(self, usage_note, language=None):
107  """! @brief Set usage note.
108  @param usage_note Usage note to set.
109  @param language Language used for the usage note.
110  @return Statement instance.
111  """
112  self.usageNote = usage_note
113  if language is not None:
114  self.set_language(language)
115  return self
116 
117  def get_usageNote(self, language=None):
118  """! @brief Get usage note.
119  @param language If this argument is given, get usage note only if written in this language.
120  @return The filtered Statement attribute 'usageNote'.
121  """
122  if language is None:
123  return self.usageNote
124  if self.get_language() == language:
125  return self.usageNote
126 
127  def set_encyclopedicInformation(self, encyclopedic_information, language=None):
128  """! @brief Set encyclopedic information.
129  @param encyclopedic_information Encyclopedic information to set.
130  @param language Language used for the encyclopedic information.
131  @return Statement instance.
132  """
133  self.encyclopedicInformation = encyclopedic_information
134  if language is not None:
135  self.set_language(language)
136  return self
137 
138  def get_encyclopedicInformation(self, language=None):
139  """! @brief Get encyclopedic information.
140  @param language If this argument is given, get encyclopedic information only if written in this language.
141  @return The filtered Statement attribute 'encyclopedicInformation'.
142  """
143  if language is None:
144  return self.encyclopedicInformation
145  if self.get_language() == language:
146  return self.encyclopedicInformation
147 
148  def set_restriction(self, restriction, language=None):
149  """! @brief Set restriction.
150  @param restriction Restriction to set.
151  @param language Language used for the restriction.
152  @return Statement instance.
153  """
154  self.restriction = restriction
155  if language is not None:
156  self.set_language(language)
157  return self
158 
159  def get_restriction(self, language=None):
160  """! @brief Get restriction.
161  @param language If this argument is given, get restriction only if written in this language.
162  @return The filtered Statement attribute 'restriction'.
163  """
164  if language is None:
165  return self.restriction
166  if self.get_language() == language:
167  return self.restriction
168 
169  def set_borrowedWord(self, borrowed_word):
170  """Set source language (in English), e.g. "Chinese".
171  @param borrowed_word The source language to set.
172  @return Statement instance.
173  """
174  error_msg = "Borrowed word value '%s' is not allowed" % borrowed_word
175  check_attr_type(borrowed_word, [str, unicode], error_msg)
176  self.borrowedWord = borrowed_word
177  return self
178 
179  def get_borrowedWord(self):
180  """Get source language (in English).
181  @return Statement attribute 'borrowedWord'.
182  """
183  return self.borrowedWord
184 
185  def set_writtenForm(self, written_form):
186  """Set loan word.
187  @param written_form The loan word to set.
188  @return Statement instance.
189  """
190  error_msg = "Written form value '%s' is not allowed" % written_form
191  check_attr_type(written_form, [str, unicode], error_msg)
192  self.writtenForm = written_form
193  return self
194 
195  def get_writtenForm(self):
196  """Get loan word.
197  @return Statement attribute 'writtenForm'.
198  """
199  return self.writtenForm
200 
201  def set_etymology(self, etymology):
202  """Set etymology.
203  @param etymolgy The etymology to set.
204  @return Statement instance.
205  """
206  error_msg = "Etymology value '%s' is not allowed" % etymology
207  check_attr_type(etymology, [str, unicode], error_msg)
208  self.etymology = etymology
209  return self
210 
211  def get_etymology(self):
212  """Get etymology.
213  @return Statement attribute 'etymology'.
214  """
215  return self.etymology
216 
217  def set_etymologyComment(self, etymology_comment, term_source_language=None):
218  """Set etymology comment (in English).
219  @param etymolgy_comment The etymology comment to set.
220  @param term_source_language The language used for the comment.
221  @return Statement instance.
222  """
223  error_msg = "Etymology comment value '%s' is not allowed" % etymology_comment
224  check_attr_type(etymology_comment, [str, unicode], error_msg)
225  self.etymologyComment = etymology_comment
226  if term_source_language is not None:
227  self.set_termSourceLanguage(term_source_language)
228  return self
229 
230  def get_etymologyComment(self, term_source_language=None):
231  """Get etymology comment (in English).
232  @param term_source_language The language of the etymology comment to retrieve.
233  @return Statement attribute 'etymologyComment'.
234  """
235  if term_source_language is None or self.get_termSourceLanguage() == term_source_language:
236  return self.etymologyComment
237 
238  def set_termSourceLanguage(self, term_source_language):
239  """Set language used for the etymology comment.
240  @param term_source_language The etymology comment language to set.
241  @return Statement instance.
242  """
243  error_msg = "Term source language value '%s' is not allowed" % term_source_language
244  check_attr_type(term_source_language, [str, unicode], error_msg)
245  self.termSourceLanguage = term_source_language
246  return self
247 
249  """Get language used for the etymology comment.
250  @return Statement attribute 'termSourceLanguage'.
251  """
252  return self.termSourceLanguage
253 
254  def set_etymologyGloss(self, etymology_gloss):
255  """Set etymology gloss.
256  @param etymolgy_gloss The etymology gloss to set.
257  @return Statement instance.
258  """
259  error_msg = "Etymology gloss value '%s' is not allowed" % etymology_gloss
260  check_attr_type(etymology_gloss, [str, unicode], error_msg)
261  self.etymologyGloss = etymology_gloss
262  return self
263 
265  """Get etymology gloss.
266  @return Statement attribute 'etymologyGloss'.
267  """
268  return self.etymologyGloss
269 
270  def set_etymologySource(self, etymology_source):
271  """Set etymology source.
272  @param etymolgy_source The etymology source to set.
273  @return Statement instance.
274  """
275  error_msg = "Etymology source value '%s' is not allowed" % etymology_source
276  check_attr_type(etymology_source, [str, unicode], error_msg)
277  self.etymologySource = etymology_source
278  return self
279 
281  """Get etymology source.
282  @return Statement attribute 'etymologySource'.
283  """
284  return self.etymologySource
285 
286  def set_scientificName(self, scientific_name):
287  """Set scientific name.
288  @param scientific_name The scientific name to set.
289  @return Statement instance.
290  """
291  error_msg = "Scientific name value '%s' is not allowed" % scientific_name
292  check_attr_type(scientific_name, [str, unicode], error_msg)
293  self.scientificName = scientific_name
294  return self
295 
297  """Get scientific name.
298  @return Statement attribute 'scientificName'.
299  """
300  return self.scientificName
def check_attr_type
Check that attribute value is of specified type.
Definition: attr.py:9
def check_attr_range
Check that attribute value is in specified range.
Definition: attr.py:23
def get_language
Get language used for the note.
Definition: statement.py:83
def get_encyclopedicInformation
Get encyclopedic information.
Definition: statement.py:138
def get_noteType
Get type of the note.
Definition: statement.py:100
"Statement is a class representating a narrative description that refines or complements Definition...
Definition: statement.py:9
def set_noteType
Set type of the note.
Definition: statement.py:89
def set_language
Set language used for the note.
Definition: statement.py:73
text_representation
TextRepresentation instances are owned by Statement There is zero to many TextRepresentation instance...
Definition: statement.py:36
def set_encyclopedicInformation
Set encyclopedic information.
Definition: statement.py:127