docs: def load_fs_mrf_to_syntax_mrf_translation_rules( rulesFile ):
      ''' Loads rules that can be used to convert from Filosoft's mrf format to 
          syntactic analyzer's format. Returns a dict containing rules.
  
          Expects that each line in the input file contains a single rule, and that 
          different parts of the rule separated by @ symbols, e.g.
          
              1@_S_ ?@Substantiiv apellatiiv@_S_ com @Noun common@Nc@NCSX@kesk-
              32@_H_ ?@Substantiiv prooprium@_S_ prop @Noun proper@Np@NPCSX@Kesk-
              313@_A_@Adjektiiv positiiv@_A_ pos@Adjective positive@A-p@ASX@salkus
          
          Only 2nd element and 4th element are extracted from each line; 2nd element
          will be the key of the dict entry, and 4th element will be added to the 
          value of the dict entry (the value is a list of strings);
  
          A list is used for storing values because one Filosoft's analysis could
          be mapped to multiple syntactic analyzer's analyses;
          
          Lines that have ¤ in the beginning of the line will be skipped;
        
      '''
      rules = {}
      in_f = codecs.open(rulesFile, mode='r', encoding='utf-8')
      for line in in_f:
          line = line.rstrip()
          if line.startswith('¤'):
             continue
          parts = line.split('@')
          if len(parts) < 4:
             raise Exception(' Unexpected format of the line: ', line)
          if parts[1] not in rules:
             rules[parts[1]] = []
          rules[parts[1]].append( parts[3] )
      in_f.close()
      return rules