docs: def add_sentence(self, sentence):
          """
          Parameters
          ----------
          sentence : etree.Element
              etree representation of a sentence
              (syntax tree with coreference annotation)
          """
          sent_root_id = sentence.attrib[add_ns('id')]
          # add edge from document root to sentence root
          self.add_edge(self.root, sent_root_id, edge_type=dg.EdgeTypes.dominance_relation)
          self.sentences.append(sent_root_id)
  
          sentence_token_ids = []
  
          if 'span' in sentence.attrib:
              # the sentence element looks like this:
              # <sentence xml:id="s144" span="s144_1..s144_23">, which means that
              # there might be <word> elements which belong to this sentence but
              # occur after the closing </sentence> element
              span_str = sentence.attrib['span']
              sentence_token_ids.extend(convert_spanstring(span_str))
          else:  # a normal sentence element, i.e. <sentence xml:id="s143">
              for descendant in sentence.iterdescendants('word'):
                  sentence_token_ids.append(self.get_element_id(descendant))
  
          self.node[sent_root_id]['tokens'] = sentence_token_ids