code: def __add_token_to_document(self, token, token_id, connected):
          
          regex_match = ANNOTATED_ANAPHORA_REGEX.search(token)
          if regex_match:  # token is annotated
              unannotated_token = regex_match.group('token')
              unicode_token = ensure_unicode(unannotated_token)
              annotation = regex_match.group('annotation')
              anno_type = ANNOTATION_TYPES[annotation]
              certainty = "1.0" if not regex_match.group('uncertain') else "0.5"
              self.add_node(
                  token_id,
                  layers={self.ns, self.ns+':token', self.ns+':annotated'},
                  attr_dict={
                      self.ns+':annotation': anno_type,
                      self.ns+':certainty': certainty,
                      self.ns+':token': unicode_token,
                      'label': u"{0}_{1}".format(unicode_token, anno_type)})
          else:  # token is not annotated
              self.add_node(
                  token_id,
                  layers={self.ns, self.ns+':token'},
                  attr_dict={self.ns+':token': ensure_unicode(token),
                             'label': ensure_unicode(token)})
  
          if connected:
              self.add_edge(self.root, token_id,
                            layers={self.ns, self.ns+':token'})
docs: adds a token to the document graph as a node with the given ID.
  
          Parameters
          ----------
          token : str
              the token to be added to the document graph
          token_id : int
              the node ID of the token to be added, which must not yet
              exist in the document graph
          connected : bool
              Make the graph connected, i.e. add an edge from root this token.