001    /**
002     * Test9.java
003     * jCOLIBRI2 framework. 
004     * @author Juan A. Recio-García.
005     * GAIA - Group for Artificial Intelligence Applications
006     * http://gaia.fdi.ucm.es
007     * 03/05/2007
008     */
009    package jcolibri.test.test9;
010    
011    
012    import jcolibri.casebase.LinealCaseBase;
013    import jcolibri.cbrcore.Attribute;
014    import jcolibri.cbrcore.CBRCaseBase;
015    import jcolibri.cbrcore.Connector;
016    import jcolibri.connector.PlainTextConnector;
017    import jcolibri.method.retrieve.NNretrieval.NNConfig;
018    import jcolibri.method.retrieve.NNretrieval.similarity.global.Average;
019    import jcolibri.method.retrieve.NNretrieval.similarity.local.Interval;
020    
021    /**
022     * This example shows how to visualizate a case base using the InfoVisual library develped by Josep Lluis Arcos (IIIA-CSIC).
023     * The class of each case is defined by the id attribute of the solution.
024     * @author Juan A. Recio-Garcia
025     *
026     */
027    public class Test9 {
028    
029            /**
030             * @param args
031             */
032            public static void main(String[] args) {
033                    
034                    try {
035                            jcolibri.util.ProgressController.clear();
036                            jcolibri.util.ProgressController.register(new jcolibri.test.main.SwingProgressBar(), jcolibri.extensions.visualization.CasesVisualization.class);
037                        
038                            //Configure connector and case base
039                            Connector _connector = new PlainTextConnector();
040                            _connector.initFromXMLfile(jcolibri.util.FileIO.findFile("jcolibri/test/test9/plaintextconfig.xml"));
041                            CBRCaseBase _caseBase  = new LinealCaseBase();
042                            
043                            // Load cases
044                            _caseBase.init(_connector);
045                            
046                            // Configure NN
047                            
048                            NNConfig simConfig = new NNConfig();
049                            simConfig.setDescriptionSimFunction(new Average());
050                            simConfig.addMapping(new Attribute("sepalLength",IrisDescription.class), new Interval(3.6));
051                            simConfig.addMapping(new Attribute("sepalWidth", IrisDescription.class), new Interval(2.4));
052                            simConfig.addMapping(new Attribute("petalLength",IrisDescription.class), new Interval(5.9));
053                            simConfig.addMapping(new Attribute("petalWidth", IrisDescription.class), new Interval(2.4));
054                            
055                            // Visualize the case base
056                            jcolibri.extensions.visualization.CasesVisualization.visualize(_caseBase.getCases(), simConfig);
057                            
058                    } catch (Exception e) {
059                            org.apache.commons.logging.LogFactory.getLog(Test9.class).error(e);
060                    }
061    
062    
063            }
064    
065    }