protected void processRuleBlock(String block, Engine engine) throws Exception {
        BufferedReader reader = new BufferedReader(new StringReader(block));
        String line;
        RuleBlock ruleBlock = new RuleBlock();
        engine.addRuleBlock(ruleBlock);
        while ((line = reader.readLine()) != null) {
            Op.Pair<String, String> keyValue = parseKeyValue(line, ':');
            if ("RuleBlock".equals(keyValue.first)) {
                ruleBlock.setName(keyValue.second);
            } else if ("enabled".equals(keyValue.first)) {
                ruleBlock.setEnabled(parseBoolean(keyValue.second));
            } else if ("conjunction".equals(keyValue.first)) {
                ruleBlock.setConjunction(parseTNorm(keyValue.second));
            } else if ("disjunction".equals(keyValue.first)) {
                ruleBlock.setDisjunction(parseSNorm(keyValue.second));
            } else if ("activation".equals(keyValue.first)) {
                ruleBlock.setActivation(parseTNorm(keyValue.second));
            } else if ("rule".equals(keyValue.first)) {
                ruleBlock.addRule(Rule.parse(keyValue.second, engine));
            } else {
                throw new RuntimeException("[import error] "
                        + "key <" + keyValue.first + "> " + "not recognized in pair <"
                        + Op.join(":", keyValue.first, keyValue.second) + ">");
            }
        }
        reader.close();
    }