Parameters
        ----------
        sentence : etree.Element
            etree representation of a sentence
            (syntax tree with coreference annotation)

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