# File in_memory_dictionary_handler.rb, line 239
  def self.construct_dictionary_entry(splited_line , name  ,line_count , lemma_id)
             entry  = splited_line[0] 
             vocalization = splited_line[1]
             morphology = splited_line[2]
             gloss_pos = splited_line[3]
             gloss , pos = "" 
             # two ways to get the POS info
             # (1) explicitly, by extracting it from the gloss field:
            
             matcher = @@regex.match(gloss_pos) 
              if matcher
                 pos = matcher[1] #extract POS from glossPOS
                         gloss = gloss_pos #we clean up the gloss later (see below)
                # (2) by deduction: use the morphology (and sometimes the voc and gloss) to deduce the appropriate POS                 
             else
                 gloss= gloss_pos
                 # we need the gloss to guess proper name
                 
                  if morphology.match(@@morphology_regexs[0])
                    pos  = ""
                  elsif morphology.match(@@morphology_regexs[1])
                    pos = "#{vocalization} #{@@vocalization_array[0]}"
                          elsif (morphology.match(@@morphology_regexs[2]))
                            pos = "#{vocalization} #{ @@vocalization_array[1]}"
                      elsif (morphology.match(@@morphology_regexs[3])) 
                            pos = "#{vocalization} #{ @@vocalization_array[2]}"
                          elsif (morphology.match(@@morphology_regexs[4] )) 
                            pos = "#{vocalization} #{@@vocalization_array[3]}"
                            elsif (morphology.match(@@morphology_regexs[5])) 
                            # educated guess (99% correct)  
                                  if (gloss.match(@@morphology_regexs[6])) 
                                      pos = "#{vocalization} #{@@vocalization_array[4]}"                    
                                                             #(was NOUN_ADJ: some of these are really ADJ's and need to be tagged manually)
                                  elsif (vocalization.match(@@morphology_regexs[7]))
                                     pos = "#{vocalization} #{@@vocalization_array[5]}"
                              else 
                                     pos = "#{vocalization} #{@@vocalization_array[6]}"
                    end                  
                  else   raise "No POS can be deduced in #{ name}  (line  #{line_count}"
                end
            end   
            # clean up the gloss: remove POS info and extra space, and convert upper-ASCII  to lower (it doesn't convert well to UTF-8)
             gloss =gloss.sub(/<pos>.+?<\/pos>/,"")
             gloss = gloss.strip 
             translotor = Translator.new
             gloss = translotor.translate(gloss)
             DictionaryEntry.new(entry, lemma_id, vocalization, morphology, gloss, pos)
    end