public String generateTheory(PMML pmml) { StringBuilder sb = new StringBuilder(); PMML4Unit unit = new PMML4UnitImpl(pmml); KieBase visitor; try { visitor = checkBuildingResources(pmml); } catch (IOException e) { this.results.add(new PMMLError(e.getMessage())); return null; } KieSession visitorSession = visitor.newKieSession(); helper.reset(); visitorSession.setGlobal("registry", registry); visitorSession.setGlobal("fld2var", new HashMap()); visitorSession.setGlobal("utils", helper); visitorSession.setGlobal("unitPackageName", helper.getPack()); visitorSession.setGlobal("ruleUnitClassName", getRuleUnitClass(unit)); visitorSession.setGlobal("theory", sb); visitorSession.insert(pmml); visitorSession.fireAllRules(); String modelEvaluatingRules = sb.toString(); visitorSession.dispose(); return modelEvaluatingRules; }
helper.setPack(rootModel.getModelPackageName()); KieBaseModel kbm = module.newKieBaseModel(rootModel.getModelId()); kbm.addPackage(helper.getPack()) .setDefault(true) .setEventProcessingMode(EventProcessingOption.CLOUD); PMMLResource resource = new PMMLResource(helper.getPack()); StringBuilder bldr = new StringBuilder(this.compile(pmml, classLoader)); String extBeanMiningRules = unit.getModelExternalMiningBeansRules(rootModel.getModelId());
protected PMMLResource buildResourceFromSegment(PMML pmml_origin, MiningSegment segment, ClassLoader classLoader, KieModuleModel module) { PMML pmml = new PMML(); DataDictionary dd = pmml_origin.getDataDictionary(); pmml.setDataDictionary(dd); pmml.setHeader(pmml_origin.getHeader()); pmml.getAssociationModelsAndBaselineModelsAndClusteringModels().add(segment.getModel().getRawModel()); addMissingFieldDefinition(pmml, segment.getOwner(), segment); helper.setPack(segment.getModel().getModelPackageName());//PMML4Helper.pmmlDefaultPackageName()+".mining.segment_"+segment.getSegmentId()); StringBuilder rules = new StringBuilder(this.compile(pmml, classLoader)); String extBeanMiningRules = segment.getModel().getExternalBeansMiningRules(); if (extBeanMiningRules != null) { rules.append(extBeanMiningRules); } KieBaseModel kbModel = module.newKieBaseModel(segment.getOwner().getOwner().getModelId() + "_" + segment.getOwner().getSegmentationId() + "_SEGMENT_" + segment.getSegmentId()); kbModel.addPackage(helper.getPack()) .setDefault(false) .setEventProcessingMode(EventProcessingOption.CLOUD); KieSessionModel ksm = kbModel.newKieSessionModel("SEGMENT_" + segment.getSegmentId()); ksm.setDefault(true); PMMLResource resource = new PMMLResource(helper.getPack()); resource.setKieBaseModel(kbModel); resource.addRules(segment.getModel().getModelId(), rules.toString()); return resource; }