From: <ton...@us...> - 2008-02-21 21:13:38
|
Revision: 621 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=621&view=rev Author: tonytacker Date: 2008-02-21 13:13:33 -0800 (Thu, 21 Feb 2008) Log Message: ----------- using startCLI to load a config file Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/gui/ConfigLoad.java trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java trunk/src/dl-learner/org/dllearner/gui/StartGUI.java Modified: trunk/src/dl-learner/org/dllearner/gui/ConfigLoad.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/ConfigLoad.java 2008-02-21 16:25:48 UTC (rev 620) +++ trunk/src/dl-learner/org/dllearner/gui/ConfigLoad.java 2008-02-21 21:13:33 UTC (rev 621) @@ -21,22 +21,41 @@ */ import java.io.File; // import java.net.URL; -// import java.util.List; +import java.net.URL; // import java.util.HashSet; +import java.util.Map; // import java.util.Set; +import java.util.SortedSet; // import java.util.List; // import java.util.Map; +import org.dllearner.algorithms.BruteForceLearner; +import org.dllearner.algorithms.RandomGuesser; +import org.dllearner.algorithms.gp.GP; +import org.dllearner.algorithms.refexamples.ExampleBasedROLComponent; +import org.dllearner.algorithms.refinement.ROLearner; import org.dllearner.core.ComponentInitException; import org.dllearner.core.KnowledgeSource; // import -// org.dllearner.core.LearningProblem; +import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.LearningProblem; +import org.dllearner.core.LearningProblemUnsupportedException; +import org.dllearner.core.ReasonerComponent; // org.dllearner.core.LearningProblem; // import org.dllearner.core.ReasoningService; // import org.dllearner.core.LearningAlgorithm; // import org.dllearner.core.ReasonerComponent; -import org.dllearner.core.config.ConfigEntry; -import org.dllearner.core.config.InvalidConfigOptionValueException; -import org.dllearner.core.config.StringConfigOption; +// import org.dllearner.core.config.ConfigEntry; +// import org.dllearner.core.config.InvalidConfigOptionValueException; +// import org.dllearner.core.config.StringConfigOption; +import org.dllearner.learningproblems.PosNegDefinitionLP; +import org.dllearner.learningproblems.PosNegInclusionLP; +import org.dllearner.learningproblems.PosOnlyDefinitionLP; import org.dllearner.parser.ConfParser; -import org.dllearner.kb.KBFile; -import org.dllearner.kb.OWLFile; -import org.dllearner.kb.sparql.SparqlKnowledgeSource; -import org.dllearner.core.Component; +import org.dllearner.reasoning.DIGReasoner; +import org.dllearner.reasoning.FastRetrievalReasoner; +import org.dllearner.reasoning.OWLAPIReasoner; // import +// org.dllearner.kb.KBFile; +// import org.dllearner.kb.OWLFile; +// import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.core.Component; // import +// org.dllearner.cli.ConfFileOption; +import org.dllearner.cli.ConfFileOption; +import org.dllearner.cli.Start; /** * Open a config file. @@ -49,8 +68,10 @@ private Config config; private StartGUI startGUI; - private Class<? extends KnowledgeSource> componentOption; + // private Start cli; + // private Class<? extends KnowledgeSource> componentOption; + /** * set config and startGUI * @@ -79,63 +100,146 @@ public void startParser() { if (this.file.exists()) { ConfParser parser = ConfParser.parseFile(file); + // create a mapping between components and prefixes in the conf file + Map<Class<? extends Component>, String> componentPrefixMapping = Start + .createComponentPrefixMapping(); + // KNOWLEDGE SOURCE - // filename - String value = parser.getFunctionCalls().get("import").get(0).get(0); - // only first of imported files - if (value.endsWith(".kb")) { - componentOption = KBFile.class; - } else if (value.endsWith(".owl")) { - componentOption = OWLFile.class; - } else if (parser.getFunctionCalls().get("import").get(0).size() > 1) { - if (parser.getFunctionCalls().get("import").get(0).get(1) - .equalsIgnoreCase("sparql")) { - System.out.println("IT IS SPARQL"); - componentOption = SparqlKnowledgeSource.class; + Map<URL, Class<? extends KnowledgeSource>> importedFiles = Start.getImportedFiles( + parser, file.getParentFile().getPath()); + for (Map.Entry<URL, Class<? extends KnowledgeSource>> entry : importedFiles.entrySet()) { + config.setKnowledgeSource(config.getComponentManager().knowledgeSource( + entry.getValue())); + config.getComponentManager().applyConfigEntry(config.getKnowledgeSource(), "url", + entry.getKey().toString()); + // sources.add(ks); + // TODO more then 1 KnowledgeSource + config.setKnowledgeSource(config.getKnowledgeSource()); + Start.configureComponent(config.getComponentManager(), config.getKnowledgeSource(), + componentPrefixMapping, parser); + // init + if (config.getKnowledgeSource() != null && config.isSetURL()) { + try { + config.getKnowledgeSource().init(); + config.setInitKnowledgeSource(true); + System.out.println("init KnowledgeSource"); + } catch (ComponentInitException e) { + e.printStackTrace(); + } } } - // check if class was set and set knwoledgeSource - if (componentOption != null) - config.setKnowledgeSource(config.getComponentManager().knowledgeSource( - componentOption)); - // set url - value = makeURL(value); - Component component = config.getKnowledgeSource(); - StringConfigOption specialOption = (StringConfigOption) config.getComponentManager() - .getConfigOption(componentOption, "url"); - try { - ConfigEntry<String> specialEntry = new ConfigEntry<String>(specialOption, value); - config.getComponentManager().applyConfigEntry(component, specialEntry); - System.out.println("set String: " + "url" + " = " + value); - } catch (InvalidConfigOptionValueException s) { - s.printStackTrace(); + + // REASONER + ConfFileOption reasonerOption = parser.getConfOptionsByName("reasoner"); + Class<? extends ReasonerComponent> reasonerClass = null; + // default value + if (reasonerOption == null || reasonerOption.getStringValue().equals("dig")) + reasonerClass = DIGReasoner.class; + else if (reasonerOption.getStringValue().equals("owlAPI")) + reasonerClass = OWLAPIReasoner.class; + else if (reasonerOption.getStringValue().equals("fastRetrieval")) + reasonerClass = FastRetrievalReasoner.class; + else { + Start.handleError("Unknown value " + reasonerOption.getStringValue() + + " for option \"reasoner\"."); } - // widgets - - - // startGUI.updateTabColors(); - // init - if (config.getKnowledgeSource() != null && config.isSetURL()) { + config.setReasoner(config.getComponentManager().reasoner(reasonerClass, + config.getKnowledgeSource())); + Start.configureComponent(config.getComponentManager(), config.getReasoner(), + componentPrefixMapping, parser); + if (config.getKnowledgeSource() != null && config.getReasoner() != null) { try { - config.getKnowledgeSource().init(); - config.setInitKnowledgeSource(true); - System.out.println("init KnowledgeSource"); + config.getReasoner().init(); + System.out.println("init Reasoner"); + // set ReasoningService + config.setReasoningService(config.getComponentManager().reasoningService( + config.getReasoner())); + System.out.println("init ReasoningService"); + config.setInitReasoner(true); + startGUI.updateTabColors(); } catch (ComponentInitException e) { e.printStackTrace(); } } - // update + // LEARNING PROBLEM + ConfFileOption problemOption = parser.getConfOptionsByName("problem"); + Class<? extends LearningProblem> lpClass = null; + if (problemOption == null || problemOption.getStringValue().equals("posNegDefinition")) + lpClass = PosNegDefinitionLP.class; + else if (problemOption.getStringValue().equals("posNegInclusion")) + lpClass = PosNegInclusionLP.class; + else if (problemOption.getStringValue().equals("posOnlyDefinition")) + lpClass = PosOnlyDefinitionLP.class; + else + Start.handleError("Unknown value " + problemOption.getValue() + + " for option \"problem\"."); + config.setLearningProblem(config.getComponentManager().learningProblem(lpClass, + config.getReasoningService())); + SortedSet<String> posExamples = parser.getPositiveExamples(); + SortedSet<String> negExamples = parser.getNegativeExamples(); + config.getComponentManager().applyConfigEntry(config.getLearningProblem(), + "positiveExamples", posExamples); + if (lpClass != PosOnlyDefinitionLP.class) + config.getComponentManager().applyConfigEntry(config.getLearningProblem(), + "negativeExamples", negExamples); + Start.configureComponent(config.getComponentManager(), config.getLearningProblem(), + componentPrefixMapping, parser); + if (config.getReasoner() != null && config.getLearningProblem() != null) { + try { + config.getLearningProblem().init(); + config.setInitLearningProblem(true); + System.out.println("init LearningProblem"); + startGUI.updateTabColors(); + } catch (ComponentInitException e) { + e.printStackTrace(); + } + } + + // LEARNING ALGORITHM + ConfFileOption algorithmOption = parser.getConfOptionsByName("algorithm"); + Class<? extends LearningAlgorithm> laClass = null; + if (algorithmOption == null || algorithmOption.getStringValue().equals("refinement")) + laClass = ROLearner.class; + else if(algorithmOption.getStringValue().equals("refexamples")) + laClass = ExampleBasedROLComponent.class; + else if(algorithmOption.getStringValue().equals("gp")) + laClass = GP.class; + else if(algorithmOption.getStringValue().equals("bruteForce")) + laClass = BruteForceLearner.class; + else if(algorithmOption.getStringValue().equals("randomGuesser")) + laClass = RandomGuesser.class; + else + Start.handleError("Unknown value in " + algorithmOption); + + if (config.getLearningProblem() != null && config.getReasoningService() != null) { + try { + config.setLearningAlgorithm(config.getComponentManager().learningAlgorithm( + laClass, config.getLearningProblem(), + config.getReasoningService())); + } catch (LearningProblemUnsupportedException e) { + e.printStackTrace(); + } + } + Start.configureComponent(config.getComponentManager(), config.getLearningAlgorithm(), componentPrefixMapping, parser); + if (config.getLearningProblem() != null) { + try { + config.getLearningAlgorithm().init(); + config.setInitLearningAlgorithm(true); + System.out.println("init LearningAlgorithm"); + } catch (ComponentInitException e) { + e.printStackTrace(); + } + } + + // update graphic startGUI.updateTabColors(); - System.out.println("reasoner: " + parser.getConfOptionsByName("reasoner")); - System.out.println("confoptions: " + parser.getConfOptions()); - System.out.println("posExamples: " + parser.getPositiveExamples()); - System.out.println("confoptionbyname: " + parser.getConfOptionsByName()); + //System.out.println("reasoner: " + parser.getConfOptionsByName("reasoner")); + //System.out.println("confoptions: " + parser.getConfOptions()); + //System.out.println("posExamples: " + parser.getPositiveExamples()); + //System.out.println("confoptionbyname: " + parser.getConfOptionsByName()); - // do it - // only url from first entry, ignore others - // parser.getFunctionCalls().get("import").get(0); } } Modified: trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java 2008-02-21 16:25:48 UTC (rev 620) +++ trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java 2008-02-21 21:13:33 UTC (rev 621) @@ -43,7 +43,7 @@ private Config config; private StartGUI startGUI; - private List<Class<? extends LearningAlgorithm>> learners; + private List<Class<? extends LearningAlgorithm>> learner; private JPanel choosePanel = new JPanel(); private OptionPanel optionPanel; private JPanel initPanel = new JPanel(); @@ -57,7 +57,7 @@ this.config = config; this.startGUI = startGUI; - learners = config.getComponentManager().getLearningAlgorithms(); + learner = config.getComponentManager().getLearningAlgorithms(); initButton = new JButton("Init LearingAlgorithm"); initButton.addActionListener(this); @@ -67,8 +67,8 @@ autoInitButton.addActionListener(this); // add into comboBox - for (int i = 0; i < learners.size(); i++) { - cb.addItem(config.getComponentManager().getComponentName(learners.get(i))); + for (int i = 0; i < learner.size(); i++) { + cb.addItem(config.getComponentManager().getComponentName(learner.get(i))); } choosePanel.add(cb); @@ -76,7 +76,7 @@ cb.addActionListener(this); optionPanel = new OptionPanel(config, config.getLearningAlgorithm(), config - .getOldLearningAlgorithm(), learners.get(choosenClassIndex)); + .getOldLearningAlgorithm(), learner.get(choosenClassIndex)); add(choosePanel, BorderLayout.PAGE_START); add(optionPanel, BorderLayout.CENTER); @@ -108,7 +108,7 @@ if (config.getLearningProblem() != null && config.getReasoningService() != null) { try { config.setLearningAlgorithm(config.getComponentManager().learningAlgorithm( - learners.get(choosenClassIndex), config.getLearningProblem(), + learner.get(choosenClassIndex), config.getLearningProblem(), config.getReasoningService())); updateOptionPanel(); } catch (LearningProblemUnsupportedException e) { @@ -126,7 +126,6 @@ try { config.getLearningAlgorithm().init(); } catch (ComponentInitException e) { - // TODO Auto-generated catch block e.printStackTrace(); } config.setInitLearningAlgorithm(true); @@ -136,12 +135,34 @@ } /** + * updateAll + */ + public void updateAll() { + updateComboBox(); + updateOptionPanel(); + updateInitButtonColor(); + } + + /** + * set ComboBox to selected class + */ + public void updateComboBox() { + if (config.getLearningAlgorithm() != null) + for (int i = 0; i < learner.size(); i++) + if (config.getLearningAlgorithm().getClass().equals( + config.getComponentManager().getLearningAlgorithms().get(i))) { + cb.setSelectedIndex(i); + } + this.choosenClassIndex = cb.getSelectedIndex(); + } + + /** * update OptionPanel with new selection */ public void updateOptionPanel() { // update OptionPanel - optionPanel.update(config.getLearningAlgorithm(), config.getOldLearningAlgorithm(), - learners.get(choosenClassIndex)); + optionPanel.update(config.getLearningAlgorithm(), config.getOldLearningAlgorithm(), learner + .get(choosenClassIndex)); } /** Modified: trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java 2008-02-21 16:25:48 UTC (rev 620) +++ trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java 2008-02-21 21:13:33 UTC (rev 621) @@ -42,7 +42,7 @@ private Config config; private StartGUI startGUI; - private List<Class<? extends LearningProblem>> problems; + private List<Class<? extends LearningProblem>> problem; private String[] lpBoxItems = {}; private JComboBox cb = new JComboBox(lpBoxItems); private JPanel choosePanel = new JPanel(); @@ -56,7 +56,7 @@ this.config = config; this.startGUI = startGUI; - problems = config.getComponentManager().getLearningProblems(); + problem = config.getComponentManager().getLearningProblems(); initButton = new JButton("Init LearningProblem"); initButton.addActionListener(this); @@ -69,15 +69,15 @@ cb.addActionListener(this); // add into comboBox - for (int i = 0; i < problems.size(); i++) { - cb.addItem(config.getComponentManager().getComponentName(problems.get(i))); + for (int i = 0; i < problem.size(); i++) { + cb.addItem(config.getComponentManager().getComponentName(problem.get(i))); } // read choosen LearningProblem choosenClassIndex = cb.getSelectedIndex(); optionPanel = new OptionPanel(config, config.getLearningProblem(), config - .getOldLearningProblem(), problems.get(choosenClassIndex)); + .getOldLearningProblem(), problem.get(choosenClassIndex)); add(choosePanel, BorderLayout.PAGE_START); add(optionPanel, BorderLayout.CENTER); @@ -109,7 +109,7 @@ private void setLearningProblem() { if (config.isInitReasoner()) { config.setLearningProblem(config.getComponentManager().learningProblem( - problems.get(choosenClassIndex), config.getReasoningService())); + problem.get(choosenClassIndex), config.getReasoningService())); startGUI.updateTabColors(); updateOptionPanel(); } @@ -133,11 +133,33 @@ } /** + * updateAll + */ + public void updateAll() { + updateComboBox(); + updateOptionPanel(); + updateInitButtonColor(); + } + + /** + * set ComboBox to selected class + */ + public void updateComboBox() { + if (config.getLearningProblem() != null) + for (int i = 0; i < problem.size(); i++) + if (config.getLearningProblem().getClass().equals( + config.getComponentManager().getLearningProblems().get(i))) { + cb.setSelectedIndex(i); + } + this.choosenClassIndex = cb.getSelectedIndex(); + } + + /** * update OptionPanel with new selection */ private void updateOptionPanel() { // update OptionPanel - optionPanel.update(config.getLearningProblem(), config.getOldLearningProblem(), problems + optionPanel.update(config.getLearningProblem(), config.getOldLearningProblem(), problem .get(choosenClassIndex)); } Modified: trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-02-21 16:25:48 UTC (rev 620) +++ trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-02-21 21:13:33 UTC (rev 621) @@ -43,7 +43,7 @@ private Config config; private StartGUI startGUI; - private List<Class<? extends ReasonerComponent>> reasoners; + private List<Class<? extends ReasonerComponent>> reasoner; private JPanel choosePanel = new JPanel(); private JPanel initPanel = new JPanel(); private OptionPanel optionPanel; @@ -57,7 +57,7 @@ this.config = config; this.startGUI = startGUI; - reasoners = config.getComponentManager().getReasonerComponents(); + reasoner = config.getComponentManager().getReasonerComponents(); initButton = new JButton("Init Reasoner"); initButton.addActionListener(this); @@ -69,12 +69,12 @@ choosePanel.add(cb); // add into comboBox - for (int i = 0; i < reasoners.size(); i++) { - cb.addItem(config.getComponentManager().getComponentName(reasoners.get(i))); + for (int i = 0; i < reasoner.size(); i++) { + cb.addItem(config.getComponentManager().getComponentName(reasoner.get(i))); } optionPanel = new OptionPanel(config, config.getReasoner(), config.getOldReasonerSet(), - reasoners.get(choosenClassIndex)); + reasoner.get(choosenClassIndex)); choosePanel.add(setButton); cb.addActionListener(this); @@ -112,7 +112,7 @@ public void setReasoner() { if (config.isInitKnowledgeSource()) { config.setReasoner(config.getComponentManager().reasoner( - reasoners.get(choosenClassIndex), config.getKnowledgeSource())); + reasoner.get(choosenClassIndex), config.getKnowledgeSource())); updateOptionPanel(); startGUI.updateTabColors(); config.setInitReasoner(false); @@ -143,10 +143,32 @@ } /** + * updateAll + */ + public void updateAll() { + updateComboBox(); + updateOptionPanel(); + updateInitButtonColor(); + } + + /** + * set ComboBox to selected class + */ + public void updateComboBox() { + if (config.getReasoner() != null) + for (int i = 0; i < reasoner.size(); i++) + if (config.getKnowledgeSource().getClass().equals( + config.getComponentManager().getKnowledgeSources().get(i))) { + cb.setSelectedIndex(i); + } + this.choosenClassIndex = cb.getSelectedIndex(); + } + + /** * update OptionPanel with new selection */ public void updateOptionPanel() { - optionPanel.update(config.getReasoner(), config.getOldReasonerSet(), reasoners + optionPanel.update(config.getReasoner(), config.getOldReasonerSet(), reasoner .get(choosenClassIndex)); } Modified: trunk/src/dl-learner/org/dllearner/gui/StartGUI.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/StartGUI.java 2008-02-21 16:25:48 UTC (rev 620) +++ trunk/src/dl-learner/org/dllearner/gui/StartGUI.java 2008-02-21 21:13:33 UTC (rev 621) @@ -169,9 +169,9 @@ tabPane.setForegroundAt(4, Color.RED); } tab0.updateAll(); - tab1.updateInitButtonColor(); - tab2.updateInitButtonColor(); - tab3.updateInitButtonColor(); + tab1.updateAll(); + tab2.updateAll(); + tab3.updateAll(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |