code: private void updateMeaning(DoubleVector meaning,
                                 Queue<String> prevWords,
                                 Queue<String> nextWords) {
          // Generate the semantics of the context using summation of index
          // vectors.
          if (semanticType == SemanticType.COMPOSITE ||
              semanticType == SemanticType.CONTEXT) {
              DoubleVector context = new DenseVector(indexVectorSize);
  
              // Sum the words prior to the focus word, skipping filtered tokens.
              for (String term: prevWords) {
                  if (term.equals(IteratorFactory.EMPTY_TOKEN))
                      continue;
                  VectorMath.add(context, vectorMap.get(term));
              }
  
              // Sum the words after the focus word, skipping filtered tokens.
              for (String term: nextWords) {
                  if (term.equals(IteratorFactory.EMPTY_TOKEN))
                      continue;
                  VectorMath.add(context, vectorMap.get(term));
              }
  
              // Normalize the context vector and add it to the meaning.
              normalize(context);
              VectorMath.add(meaning, context);
          }
  
          // Generate the semantics of the ordering using circular convolution of
          // n-grams.
          if (semanticType == SemanticType.COMPOSITE ||
              semanticType == SemanticType.ORDERING) {
              DoubleVector order = groupConvolution(prevWords, nextWords);
  
              // Normalize the order vector and add it to the meaning.
              normalize(order);
              VectorMath.add(meaning, order);
          }
      }
docs: Adds a holograph encoding the co-occurance information, and the
  ordering information of the given context.  {@code termVector} will be
  added to the result {@code DoubleVector}, and then the convolution of any
  prior convoluted n-grams will be convoluted with the given {@code
  termVector} and added to the result.  When {@code focusVector} changes to
  be a different term, new n-gram convolutions are generated which use a
  placeholder in place of {@code focusVector}.