public static void annotate(String text) throws IOException {
		String[] lines = text.split("\n");
		if (lines.length > 10000) {
			int folds = lines.length / 10000;
			logger.info("splitting into " + folds + " folds\n");
			for (int i = 0; i < folds; i++) {
				logger.info("processing the " + i + "-th fold\n");
				StringBuilder sb = new StringBuilder();
				for (int j = 0; j < 10000; j++) {
					sb.append(lines[i * 10000 + j] + "\n");
				}
				annotateImpl(sb.toString());
			}
			// finish the rest
			StringBuilder sb = new StringBuilder();
			for (int j = folds * 10000; j < lines.length; j++) {
				sb.append(lines[j] + "\n");
			}
			annotateImpl(sb.toString());
		} else {
			annotateImpl(text);
		}
	}