public void populationInfer() {
		// TODO Auto-generated method stub
	  debugPrint.print("Starting Population Inference Engine step", 5);
		/*Setup data strucutre to pass to Yifang's code*/
	  HashMap<String, HashMap<String, HashSet<String>>> data = new HashMap<String, HashMap<String, HashSet<String>>>();
	  //<User ID <Attribute Name, <Values>>
	  HashMap<String, HashSet<String>> valueSet = new HashMap<String, HashSet<String>>();
	  for(Attribute attr: coreAttributes.values()){
		  if(!valueSet.containsKey(attr.getName())) {
			  valueSet.put(attr.getName(), new HashSet<String>());
		  }
		  valueSet.get(attr.getName()).add(attr.getVal());
	  }
	  data.put("" + gtId, valueSet);
	
	WebFootPrint2 popInferenceEngine = new WebFootPrint2(dbWrapper.populationDbConn);
	ArrayList<WebUser> popResults = popInferenceEngine.getInferences(data);
	
	ArrayList<Attribute> populationInferenceAttributes = new ArrayList<Attribute>();
	
	for(int i = 0; i < popResults.size(); i++) {
		WebUser user = popResults.get(i);
		System.out.println("USER: " + user.getProfile().getUserId());
		Inference inference = user.getInference();
		for(int j = 0; j < inference.size(); j++) {
			String attribute = inference.getAttribute(j);
			ArrayList array = inference.getAttributeValue(attribute);
			for(int k = 0; k < array.size(); k++) {
				Predict predict = (Predict)array.get(k);
				String algorithm;
				String confidence;
				switch(predict.getAlgorithm()) {
				case(Constants.ASSOCIATION_RULE_MINING):
					algorithm = "APRIORI";
					confidence = "apriori_confidence";
					break;
				case(Constants.NAIVE_BAYES):
					algorithm = "NAIVE_BAYES";
					confidence = "naive_bayes_majority_confidence";
					break;
				case(Constants.LDA):
				default:
					algorithm = "LDA";		
					confidence = "lda_majority_vote_confidence";
					break;
				}
				System.out.println("ATTRIBUTE: " + attribute + "\tALGRORITHM: " + algorithm + "\tANSWER: " + predict.getAnswer() + "\tCONFIDENCE: " + (Double)predict.getUserData().getUserDatum(confidence));
			    double attrConf = (Double)predict.getUserData().getUserDatum(confidence);
				if(attrConf >= ExperimentConstants.populationThreshold) {
			    	populationInferenceAttributes.add(new Attribute(attribute, predict.getAnswer(), attrConf, "PopulationEngine-" + algorithm));
			    	debugPrint.print("Attribute added from population inference engine", 5);
			    }
			}
		}
	}
	debugPrint.print("Ending Population Inference Engine Step", 5);
	updateCore(populationInferenceAttributes);
	
	}