Create a new wordform (text token) and add it to the text layer
        @type text: string
        @param text: The text of the token
        @type sent:  int
        @param pos: The sentence of this token
        @type offset: int
        @param morphofeat: The offset of this token
        @type id: string
        @param id: the id of the token, if not given an id wXXX will be created
        @type length: int
        @param length: the length (#characters) of the token,
                       if not given len(text) will be used

def create_wf(self, text, sent, offset, id=None, length=None):
        """
        Create a new wordform (text token) and add it to the text layer
        @type text: string
        @param text: The text of the token
        @type sent:  int
        @param pos: The sentence of this token
        @type offset: int
        @param morphofeat: The offset of this token
        @type id: string
        @param id: the id of the token, if not given an id wXXX will be created
        @type length: int
        @param length: the length (#characters) of the token,
                       if not given len(text) will be used
        """
        if id is None:
            n = 1 if self.text_layer is None else len(self.text_layer.idx) + 1
            id = "w{n}".format(**locals())
        if length is None:
            length = len(text)
        new_token = Cwf(type=self.type)
        new_token.set_id(id)
        new_token.set_length(str(length))
        new_token.set_offset(str(offset))
        new_token.set_sent(str(sent))
        new_token.set_text(text)
        self.add_wf(new_token)
        return new_token