/** * Initializes the internal structure that holds data dictionary information. * This initializer should be called prior to any other initializers, since * many other structures may have a dependency on the data dictionary. */ private void initDataDictionaryMap() { DataDictionary dd = rawPmml.getDataDictionary(); if (dd != null) { dataDictionaryMap = new HashMap<>(); for (DataField dataField : dd.getDataFields()) { PMMLDataField df = new PMMLDataField(dataField); dataDictionaryMap.put(df.getName(), df); } } else { throw new IllegalStateException("BRMS-PMML requires a data dictionary section in the definition file"); } }
public static String getDataType(PMML pmmlDocument, String fieldName) { DataDictionary dataDictionary = pmmlDocument.getDataDictionary(); for (DataField dataField : dataDictionary.getDataFields()){ if (dataField.getName().equalsIgnoreCase(fieldName)) { DATATYPE datatype = dataField.getDataType(); if (datatype == DATATYPE.DOUBLE) { return XLSKeywords.DATATYPE_NUMBER; } else if (datatype == DATATYPE.STRING) { return XLSKeywords.DATATYPE_TEXT; } else if (datatype == DATATYPE.BOOLEAN) { return XLSKeywords.DATATYPE_BOOLEAN; } } } return null; }
public DataDictionary getDataDictionary() { if (this.getParentModel() == null) { return this.getOwner().getRawPMML().getDataDictionary(); } return this.getParentModel().getDataDictionary(); }
pmml.getDataDictionary().getDataFields().add(e); BigInteger bi = pmml.getDataDictionary().getNumberOfFields(); pmml.getDataDictionary().setNumberOfFields(bi.add(BigInteger.ONE)); fieldAdded = true;
assertEquals( inputfieldNames.length + outputfieldNames.length, net2.getDataDictionary().getDataFields().size() ); assertEquals( net.getDataDictionary().getDataFields().size(), net2.getDataDictionary().getDataFields().size() );
assertEquals( inputfieldNames.length + outputfieldNames.length, net2.getDataDictionary().getDataFields().size() ); assertEquals( net.getDataDictionary().getDataFields().size(), net2.getDataDictionary().getDataFields().size() );
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; }