public ArrayList GetCases(Case c) { ArrayList cases = null; if (_env == null) { throw new ContextException("environment variable is not set"); } ICBRContext ctx = CBRContextManager.GetCBRContext(_env); if (ctx == null) { throw new ContextException("not set the context"); } int type = ctx.GetCaseBaseInputType(); if (type == CaseBaseInputType.TYPE_DB || type == CaseBaseInputType.TYPE_FILE ) { ICaseBaseInput input = (ICaseBaseInput)ctx.GetCaseBaseInput(); if (input == null) { throw new ContextException("not set the database input"); } cases = input.GetCases(c); } else { throw new ContextException("not support case base type"); } return(cases); }
public void testGetCBRContext() { CBRContextManager.Load("engine1", path); ICBRContext ctx = CBRContextManager.GetCBRContext("engine1"); //path); System.Console.WriteLine(ctx.GetCaseBase().ToString()); System.Console.WriteLine(ctx.GetCaseBase().GetEnv()); System.Console.WriteLine(ctx.GetCaseBaseInput().ToString()); System.Console.WriteLine(ctx.GetCaseBaseInputType().ToString()); System.Console.WriteLine(ctx.GetCaseRestoreMethod().ToString()); System.Console.WriteLine(ctx.GetCaseRestoreMethod().GetEnv()); System.Console.WriteLine(ctx.GetCaseRetrievalMethod().ToString()); System.Console.WriteLine(ctx.GetCaseRetrievalMethod().GetEnv()); System.Console.WriteLine(ctx.GetCaseReuseMethod().ToString()); System.Console.WriteLine(ctx.GetCaseReuseMethod().GetEnv()); System.Console.WriteLine(ctx.GetCaseReuseStrategy().ToString()); System.Console.WriteLine(ctx.GetCaseReuseStrategy().GetEnv()); System.Console.WriteLine(ctx.GetSimilarity().ToString()); System.Console.WriteLine(ctx.GetSimilarity().GetEnv()); System.Console.WriteLine(ctx.GetSimilarityThrehold().ToString()); }
public bool Startup() { if (_env == null || CBRContextManager.GetCBRContext(_name) == null) { System.Console.WriteLine("environment is not set or context is null"); return(false); } _ctx = CBRContextManager.GetCBRContext(_name); if (_problem == null) { System.Console.WriteLine("problem is not set"); return(false); } _ctx.SetCurrentCase(_problem); #region only for test if (Version.DEBUG) { System.Console.WriteLine("=====context detail====="); System.Console.WriteLine("Reasoning Engine startup successfully!"); System.Console.WriteLine("problem case is:"); for (int i = 0; i < _problem.GetFeatures().Count; i++) { Feature f = (Feature)_problem.GetFeatures()[i]; System.Console.WriteLine("\t" + f.GetFeatureName() + ":" + f.GetFeatureValue()); } System.Console.WriteLine("context is:"); System.Console.WriteLine("case base\t" + _ctx.GetCaseBase().ToString()); System.Console.WriteLine("case base input\t" + _ctx.GetCaseBaseInput().ToString()); System.Console.WriteLine("case base input type\t" + _ctx.GetCaseBaseInputType().ToString()); System.Console.WriteLine("case base url\t" + _ctx.GetCaseBaseURL().ToString()); System.Console.WriteLine("case restore method\t" + _ctx.GetCaseRestoreMethod().ToString()); System.Console.WriteLine("case retrieval method\t" + _ctx.GetCaseRetrievalMethod().ToString()); System.Console.WriteLine("case reuse method\t" + _ctx.GetCaseReuseMethod().ToString()); System.Console.WriteLine("case reuse strategy\t" + _ctx.GetCaseReuseStrategy().ToString()); System.Console.WriteLine("case revise method\t" + _ctx.GetCaseReviseMethod().ToString()); System.Console.WriteLine("current case\t" + _ctx.GetCurrentCase().ToString()); System.Console.WriteLine("similarity\t" + _ctx.GetSimilarity().ToString()); System.Console.WriteLine("similarity threhold\t" + _ctx.GetSimilarityThrehold().ToString()); System.Console.WriteLine("=====end of context detail====="); } #endregion return(true); }
/// <summary> /// find case from case base /// return null if not suitable case /// otherwise retrurn case list /// note that only *.ocbr and db type are supported /// </summary> /// <param name="c"></param> /// <returns></returns> public ArrayList GetCases(Case c) { if (_env == null) { System.Console.WriteLine("environment is not set"); return(null); } ICBRContext ctx = CBRContextManager.GetCBRContext(_env); if (ctx == null) { throw new ContextException("context is null"); } int type = ctx.GetCaseBaseInputType(); string url = ctx.GetCaseBaseURL(); if (type == CaseBaseInputType.TYPE_FILE) { IOCBRFile file = OCBRFileFactory.newInstance(url); return(file.GetCases()); } else if (type == CaseBaseInputType.TYPE_DB) { IDb db = DbFactory.newInstance(url); db.SetEnv(_env); //set the conditions rules return(db.GetCases()); } else { System.Console.WriteLine("input case base type unsupported"); } return(null); }