code: protected void processFromBIOTokenArgumentAnnotation(JCas aJCas)
              throws AnalysisEngineProcessException
      {
          for (Sentence sentence : JCasUtil.select(aJCas, Sentence.class)) {
  
              // all argument components present in the sentence
              List<ArgumentComponent> argumentComponents = ArgumentUtils
                      .selectOverlappingComponentsWithoutPathosAndImplicit(sentence, aJCas);
  
              // empty labels = "O"
              if (argumentComponents.isEmpty()) {
                  for (Token token : JCasUtil.selectCovered(aJCas, Token.class, sentence)) {
                      BIOSimplifiedTokenArgumentAnnotation sequenceLabel = new BIOSimplifiedTokenArgumentAnnotation(
                              aJCas);
                      sequenceLabel.setBegin(token.getBegin());
                      sequenceLabel.setEnd(token.getEnd());
                      sequenceLabel.setTag(O_TAG);
                      sequenceLabel.addToIndexes();
                  }
              }
  
              else {
                  // find the maximum spanning argument component
                  ArgumentComponent coveringArgumentComponent = selectMainArgumentComponent(
                          argumentComponents);
  
                  List<Token> tokens = JCasUtil.selectCovered(aJCas, Token.class, sentence);
  
                  for (int i = 0; i < tokens.size(); i++) {
                      Token token = tokens.get(i);
  
                      StringBuilder outputLabel = new StringBuilder(
                              coveringArgumentComponent.getClass().getSimpleName());
  
                      // component annotation starts in the sentence, we add "B" to the first token
                      if ((i == 0) && (coveringArgumentComponent.getBegin() >= sentence.getBegin()) &&
                              BIO.equals(this.codingGranularity)) {
                          outputLabel.append(B_SUFFIX);
                      }
                      else {
                          outputLabel.append(I_SUFFIX);
                      }
  
                      BIOSimplifiedTokenArgumentAnnotation label = new BIOSimplifiedTokenArgumentAnnotation(
                              aJCas);
                      label.setBegin(token.getBegin());
                      label.setEnd(token.getEnd());
                      label.setTag(outputLabel.toString());
                      label.addToIndexes();
                  }
              }
          }
      }
docs: Annotations are created based on {@code BIOTokenArgumentAnnotation}
  
  @param aJCas jcas
  @throws AnalysisEngineProcessException