/** * Constructor * * @param name name of bot * @param path root path of Program AB * @param action Program AB action */ public Bot(String name, String path, String action) { int cnt = 0; int elementCnt = 0; this.name = name; setAllPaths(path, name); this.brain = new Graphmaster(this); this.learnfGraph = new Graphmaster(this, "learnf"); this.learnGraph = new Graphmaster(this, "learn"); // this.unfinishedGraph = new Graphmaster(this); // this.categories = new ArrayList<Category>(); preProcessor = new PreProcessor(this); addProperties(); cnt = addAIMLSets(); if (MagicBooleans.trace_mode) System.out.println("Loaded " + cnt + " set elements."); cnt = addAIMLMaps(); if (MagicBooleans.trace_mode) System.out.println("Loaded " + cnt + " map elements"); this.pronounSet = getPronouns(); AIMLSet number = new AIMLSet(MagicStrings.natural_number_set_name, this); setMap.put(MagicStrings.natural_number_set_name, number); AIMLMap successor = new AIMLMap(MagicStrings.map_successor, this); mapMap.put(MagicStrings.map_successor, successor); AIMLMap predecessor = new AIMLMap(MagicStrings.map_predecessor, this); mapMap.put(MagicStrings.map_predecessor, predecessor); AIMLMap singular = new AIMLMap(MagicStrings.map_singular, this); mapMap.put(MagicStrings.map_singular, singular); AIMLMap plural = new AIMLMap(MagicStrings.map_plural, this); mapMap.put(MagicStrings.map_plural, plural); // System.out.println("setMap = "+setMap); Date aimlDate = new Date(new File(aiml_path).lastModified()); Date aimlIFDate = new Date(new File(aimlif_path).lastModified()); if (MagicBooleans.trace_mode) System.out.println("AIML modified " + aimlDate + " AIMLIF modified " + aimlIFDate); // readUnfinishedIFCategories(); MagicStrings.pannous_api_key = Utilities.getPannousAPIKey(this); MagicStrings.pannous_login = Utilities.getPannousLogin(this); if (action.equals("aiml2csv")) addCategoriesFromAIML(); else if (action.equals("csv2aiml")) addCategoriesFromAIMLIF(); else if (action.equals("chat-app")) { if (MagicBooleans.trace_mode) System.out.println("Loading only AIMLIF files"); cnt = addCategoriesFromAIMLIF(); } else if (aimlDate.after(aimlIFDate)) { if (MagicBooleans.trace_mode) System.out.println("AIML modified after AIMLIF"); cnt = addCategoriesFromAIML(); writeAIMLIFFiles(); } else { addCategoriesFromAIMLIF(); if (brain.getCategories().size() == 0) { System.out.println("No AIMLIF Files found. Looking for AIML"); cnt = addCategoriesFromAIML(); } } Category b = new Category( 0, "PROGRAM VERSION", "*", "*", MagicStrings.program_name_version, "update.aiml"); brain.addCategory(b); brain.nodeStats(); learnfGraph.nodeStats(); }