class_docstr: This annotator base class hosts a lightweight server that accepts
  annotation requests from CoreNLP.
  Each annotator simply defines 3 functions: requires, provides and annotate.
  
  This class takes care of defining appropriate endpoints to interface
  with CoreNLP.
docstr: @ann: is a protobuf annotation object.
  Actually populate @ann with tokens.
docstr_tok: ["@","ann",":","is","a","protobuf","annotation","object",".","Actually","populate","@","ann","with","tokens","."]
code: def annotate(self, ann):
      """
      @ann: is a protobuf annotation object.
      Actually populate @ann with tokens.
      """
      raise NotImplementedError()
  
file_path: stanza/stanza/server/annotator.py
imports: import io
  from multiprocessing import Process
  from http.server import BaseHTTPRequestHandler, HTTPServer
  from http import client
  from stanza.protobuf import Document, parseFromDelimitedString, writeToDelimitedString
label_desc: Use image node_id 4 for calling the Annotator obj's underlying member method code with example usage: obj.annotate(ann) without return types