code: protected void processFromBIOSimplifiedSentenceArgumentAnnotation(JCas aJCas)
              throws AnalysisEngineProcessException
      {
          Collection<BIOSimplifiedSentenceArgumentAnnotation> sentenceArgumentAnnotations = JCasUtil
                  .select(aJCas, BIOSimplifiedSentenceArgumentAnnotation.class);
          Collection<Sentence> sentences = JCasUtil.select(aJCas, Sentence.class);
  
          // BIOSimplifiedSentenceArgumentAnnotation must match with sentences
          if (sentences.size() != sentenceArgumentAnnotations.size()) {
              throw new AnalysisEngineProcessException(new IllegalArgumentException(sentences.size()
                      + " BIOSimplifiedSentenceArgumentAnnotation annotations expected, but "
                      + sentenceArgumentAnnotations.size() + " found"));
          }
  
          // iterate over sentence-level annotations
          for (BIOSimplifiedSentenceArgumentAnnotation sentenceArgumentAnnotation : sentenceArgumentAnnotations) {
              List<Token> tokens = JCasUtil.selectCovered(aJCas, Token.class,
                      sentenceArgumentAnnotation);
  
              // get the tag
              String sentenceTag = sentenceArgumentAnnotation.getTag();
              String sentenceTagWithoutSuffix = sentenceArgumentAnnotation.getTag().split("-")[0];
  
              boolean firstTokenIsBegin = sentenceTag.endsWith(B_SUFFIX);
  
              // iterate over tokens and create appropriate BIOSimplifiedTokenArgumentAnnotation
              for (int i = 0; i < tokens.size(); i++) {
                  Token token = tokens.get(i);
  
                  BIOSimplifiedTokenArgumentAnnotation label = new BIOSimplifiedTokenArgumentAnnotation(
                          aJCas);
                  label.setBegin(token.getBegin());
                  label.setEnd(token.getEnd());
                  label.addToIndexes();
  
                  // the output label
                  if (O_TAG.equals(sentenceTag)) {
                      label.setTag(O_TAG);
                  }
                  else if (BIO.equals(this.codingGranularity) && (i == 0) && firstTokenIsBegin) {
                      label.setTag(sentenceTagWithoutSuffix + B_SUFFIX);
                  }
                  else {
                      label.setTag(sentenceTagWithoutSuffix + I_SUFFIX);
                  }
              }
          }
  
      }
docs: Annotations are re-created from existing {@code BIOSimplifiedSentenceArgumentAnnotation}
  
  @param aJCas jcas
  @throws AnalysisEngineProcessException