code: def _parse_metadata(cls, line, meta, parse_remarks=True):
          
          key, value = line.split(':', 1)
          key, value = key.strip(), value.strip()
          if parse_remarks and "remark" in key:                        # Checking that the ':' is not
              if 0<value.find(': ')<20:                                # not too far avoid parsing a sentence
                  try:                                                 # containing a ':' as a key: value
                      cls._parse_metadata(value, meta, parse_remarks)  # obo statement nested in a remark
                  except ValueError:                                   # (20 is arbitrary, it may require
                      pass                                             # tweaking)
          else:
              meta[key].append(value)
              try:
                  syn_type_def = []
                  for m in meta['synonymtypedef']:
                      if not isinstance(m, SynonymType):
                          x = SynonymType.from_obo(m)
                          syn_type_def.append(x)
                      else:
                          syn_type_def.append(m)
              except KeyError:
                  pass
              else:
                  meta['synonymtypedef'] = syn_type_def
docs: Parse a metadata line.
  
          The metadata is organized as a ``key: value`` statement which
          is split into the proper key and the proper value.
  
          Arguments:
              line (str): the line containing the metadata
              parse_remarks(bool, optional): set to `False` to avoid
                  parsing the remarks.
  
          Note:
              If the line follows the following schema:
              ``remark: key: value``, the function will attempt to extract
              the proper key/value instead of leaving everything inside
              the remark key.
  
              This may cause issues when the line is identified as such
              even though the remark is simply a sentence containing a
              colon,  such as ``remark: 090506 "Attribute"`` in Term
              deleted and new entries: Scan Type [...]"
              (found in imagingMS.obo). To prevent the splitting from
              happening, the text on the left of the colon must be less
              that *20 chars long*.