public static bool IEExecute(ref vMRClsDef.IEvMRInput oIEvMRInput, ref vMRClsDef.IEvMROutput oIEvMROutput) { if (ObtainDataModel(ref oIEvMRInput)) { if (DataMapper.MapDataToFact(ref oIEvMRInput)) { if (vMRFunDef.vMRDataValueFromUItoIE(oIEvMRInput, ref oIEvMROutput)) { //获取推理解释结果成功 //结果转换为UI可用形式 StructedIEResult.AddIEStructedInfo(oIEvMROutput); DataMapper.MapIEOutputToUI(oIEvMRInput, oIEvMROutput); return(true); } else { //获取推理解释结果失败 return(false); } } else { //获取Fact失败 return(false); } } else { //获取DataModel失败 return(false); } }
public static void AddIEStructedInfo(vMRClsDef.IEvMROutput oIEvMROutput) { foreach (vMRClsDef.OutputInfo oOutputInfo in oIEvMROutput.lstOutputInfo) { StructedConclude oStructedIEInfo = new StructedConclude(); oStructedIEInfo.oEventModel.strEventENName = oOutputInfo.oTriggeringEvent.oEvent.strEventName; oStructedIEInfo.oEventModel.strEventCNName = oOutputInfo.oTriggeringEvent.oEvent.strEventCNName; oStructedIEInfo.lstConclude.AddRange(oOutputInfo.oInference.lstStructedInferMessage); lstStructedConclude.Add(oStructedIEInfo); } }
public static void MapIEOutputToUI(vMRClsDef.IEvMRInput oIEvMRInput, vMRClsDef.IEvMROutput oIEvMROutput) { //TODO IE输出结果映射,供界面显示 foreach (vMRClsDef.OutputInfo oOutputInfo in oIEvMROutput.lstOutputInfo) { int i; for (i = 0; i < oIEvMRInput.lstInputDataModel.Count; i++) { if (oOutputInfo.oTriggeringEvent.oEvent.strEventCNName == oIEvMRInput.lstInputDataModel[i].oTriggeringEvent.oEvent.strEventCNName) { break; } } FormatResult(oIEvMRInput.lstInputDataModel[i], oOutputInfo); } }
public static void ClearIEInAndOut() { oDiagnoseIEvMRInput = new vMRClsDef.IEvMRInput(); oDiagnoseIEvMROutput = new vMRClsDef.IEvMROutput(); oTherpayIEvMRInput = new vMRClsDef.IEvMRInput(); oTherpayIEvMROutput = new vMRClsDef.IEvMROutput(); oSelfMonitorIEvMRInput = new vMRClsDef.IEvMRInput(); oSelfMonitorIEvMROutput = new vMRClsDef.IEvMROutput(); oMSEvaluationIEvMRInput = new vMRClsDef.IEvMRInput(); oMSEvaluationIEvMROutput = new vMRClsDef.IEvMROutput(); oRiskEvaluationIEvMRInput = new vMRClsDef.IEvMRInput(); oRiskEvaluationIEvMROutput = new vMRClsDef.IEvMROutput(); oDietaryIEvMRInput = new vMRClsDef.IEvMRInput(); oDietaryIEvMROutput = new vMRClsDef.IEvMROutput(); oPhysicalActivityIEvMRInput = new vMRClsDef.IEvMRInput(); oPhysicalActivityIEvMROutput = new vMRClsDef.IEvMROutput(); }
/// <summary> /// UI端决策代理引擎服务具体实现,推理引擎端调用 /// </summary> /// <param name="oIEvMROutput"></param> /// <returns></returns> public static bool OutputFromIEtoUI(ref vMRClsDef.IEvMROutput oIEvMROutput) { return(true); }
/// <summary> /// 推理引擎端决策代理服务具体实现,UI端调用 /// </summary> /// <param name="oIEvMRInputDataValue"></param> /// <param name="oIEvMROutput"></param> /// <returns></returns> public static bool vMRDataValueFromUItoIE(vMRClsDef.IEvMRInput oIEvMRInputDataValue, ref vMRClsDef.IEvMROutput oIEvMROutput) { oIEvMROutput.oRoles = oIEvMRInputDataValue.oRoles; foreach (vMRClsDef.InputDataModel oInputDataModel in oIEvMRInputDataValue.lstInputDataModel) { List <vMRClsDef.DataModel> lstDataModelForIE = new List <vMRClsDef.DataModel>(); vMRClsDef.OutputInfo oIEOutputInfo = new vMRClsDef.OutputInfo(); FactConstruct.FormFactInDataModel(oInputDataModel, ref lstDataModelForIE); oIEOutputInfo.oTriggeringEvent = oInputDataModel.oTriggeringEvent; InferenceService.BeginInference(oIEvMROutput.oRoles, lstDataModelForIE, ref oIEOutputInfo); ExplanationService.BeginExplanation(); oIEvMROutput.lstOutputInfo.Add(oIEOutputInfo); } return(true); }