From: <lor...@us...> - 2009-10-03 11:29:13
|
Revision: 1876 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1876&view=rev Author: lorenz_b Date: 2009-10-03 11:29:04 +0000 (Sat, 03 Oct 2009) Log Message: ----------- continued auto learning mode Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java trunk/src/dl-learner/org/dllearner/tools/ore/ConcurrencyBug.java trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/SyntacticRelevanceBasedExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/HelpablePanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MetricsPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RepairPlanPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/SavePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/UnsatisfiableExplanationPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/InconsistencyExplanationPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java Modified: trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -254,6 +254,8 @@ // be in the search of the learning algorith, which leads to // unpredictable behaviour) Description d = ed.getDescription().clone(); + + //commented out because reasoner is called. leads in swing applications sometimes to exceptions // ConceptTransformation.replaceRange(d, reasoner); ed.setDescription(d); Modified: trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -199,7 +199,7 @@ ontology = manager.loadOntologyFromPhysicalURI(url .toURI()); } - + owlAPIOntologies.add(ontology); // imports includes the ontology itself Set<OWLOntology> imports = manager @@ -1466,7 +1466,7 @@ public OWLOntology getOWLAPIOntologies() { - return reasoner.getLoadedOntologies().iterator().next(); + return owlAPIOntologies.get(0); } /*public void setReasonerType(String type){ Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ConcurrencyBug.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ConcurrencyBug.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ConcurrencyBug.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -2,7 +2,6 @@ import java.io.File; import java.net.MalformedURLException; -import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.util.Timer; @@ -15,15 +14,7 @@ import org.dllearner.kb.OWLFile; import org.dllearner.learningproblems.ClassLearningProblem; import org.dllearner.reasoning.PelletReasoner; -import org.semanticweb.owl.apibinding.OWLManager; -import org.semanticweb.owl.model.OWLClass; -import org.semanticweb.owl.model.OWLDataFactory; -import org.semanticweb.owl.model.OWLObjectAllRestriction; -import org.semanticweb.owl.model.OWLObjectProperty; -import org.semanticweb.owl.model.OWLObjectSomeRestriction; import org.semanticweb.owl.model.OWLOntologyCreationException; -import org.semanticweb.owl.model.OWLOntologyManager; -import org.semanticweb.owl.model.OWLSubClassAxiom; public class ConcurrencyBug { @@ -53,20 +44,8 @@ lp.getConfigurator().setClassToDescribe(classToDescribe); lp.init(); - String NS = "http://ns.softwiki.de/req/"; - OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - OWLDataFactory factory = manager.getOWLDataFactory(); - OWLClass customerRequirement = factory.getOWLClass(URI.create(NS +"CustomerRequirement")); - OWLClass comment = factory.getOWLClass(URI.create(NS + "Comment")); - OWLObjectProperty idDefinedBy = factory.getOWLObjectProperty(URI.create(NS + "isDefinedBy")); - OWLObjectProperty defines = factory.getOWLObjectProperty(URI.create(NS + "defines")); - OWLObjectSomeRestriction some = factory.getOWLObjectSomeRestriction(defines, comment); - OWLObjectAllRestriction all = factory.getOWLObjectAllRestriction(idDefinedBy, some); - OWLSubClassAxiom sub = factory.getOWLSubClassAxiom(customerRequirement, all); -// System.out.println(reasoner.remainsSatisfiableImpl(sub)); - final CELOE la = cm.learningAlgorithm(CELOE.class, lp, reasoner); la.getConfigurator().setMaxExecutionTimeInSeconds(8); la.getConfigurator().setUseNegation(false); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -65,6 +65,13 @@ private int maxNrOfResults; private double threshold; private int minInstanceCount; + + public static final int AUTO_LEARN_MODE = 0; + public static final int MANUAL_LEARN_MODE = 1; + + private int learnMode = 0; + + private List<Description> newDescriptions; private List<OREManagerListener> listeners; @@ -281,6 +288,14 @@ return minInstanceCount; } + public void setLearningMode(int mode){ + learnMode = mode; + } + + public int getLearningMode(){ + return learnMode; + } + public void init(){ this.setLearningProblem(); @@ -313,6 +328,14 @@ public CELOE getLa() { return la; } + + public void setNewDescriptions(List<Description> descriptions){ + newDescriptions = descriptions; + } + + public List<Description> getNewDescriptions(){ + return newDescriptions; + } /** * Retrieves description parts that might cause inconsistency - for negative examples only. Modified: trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/SyntacticRelevanceBasedExplanationGenerator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/SyntacticRelevanceBasedExplanationGenerator.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/explanation/relevance/SyntacticRelevanceBasedExplanationGenerator.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -76,7 +76,7 @@ e.printStackTrace(); } logger.addAppender( fileAppender ); - logger.setLevel(Level.OFF); + logger.setLevel(Level.DEBUG); } @@ -587,26 +587,26 @@ - Timer t1 = new Timer("pellet"); - t1.start(); - PelletExplanation exp1 = new PelletExplanation(manager, Collections.singleton(ontology)); - exp1.getUnsatisfiableExplanations(cl); - t1.stop(); - Timer t3 = new Timer("module-based"); - t3.start(); - OWLOntology module = OntologyUtils.getOntologyFromAxioms(ModularityUtils.extractModule(ontology, cl.getSignature(), ModuleType.TOP_OF_BOT)); - System.out.println(module); - PelletExplanation exp2 = new PelletExplanation(manager, Collections.singleton(module)); - System.out.println(exp2.getUnsatisfiableExplanations(cl).size()); - t3.stop(); +// Timer t1 = new Timer("pellet"); +// t1.start(); +// PelletExplanation exp1 = new PelletExplanation(manager, Collections.singleton(ontology)); +// exp1.getUnsatisfiableExplanations(cl); +// t1.stop(); +// Timer t3 = new Timer("module-based"); +// t3.start(); +// OWLOntology module = OntologyUtils.getOntologyFromAxioms(ModularityUtils.extractModule(ontology, cl.getSignature(), ModuleType.TOP_OF_BOT)); +// System.out.println(module); +// PelletExplanation exp2 = new PelletExplanation(manager, Collections.singleton(module)); +// System.out.println("Module based explanationcount: " + exp2.getUnsatisfiableExplanations(cl)); +// t3.stop(); Timer t2 = new Timer("syntactic relevance"); t2.start(); Reasoner reasoner = new PelletReasonerFactory().createReasoner(manager); - reasoner.loadOntologies(Collections.singleton(ontology)); + reasoner.loadOntologies(Collections.singleton(example)); SyntacticRelevanceBasedExplanationGenerator exp3 = new SyntacticRelevanceBasedExplanationGenerator(reasoner, manager); - System.out.println(exp3.getUnsatisfiableExplanations(cl, Strategie.All_Just_Relevance).size()); + System.out.println(exp3.getUnsatisfiableExplanations(u, Strategie.All_Just_Relevance)); System.out.print("J = {"); // for(Set<OWLAxiom> explanation : expGen.getUnsatisfiableExplanations(cl, Strategie.All_Just_Relevance)){ @@ -619,7 +619,7 @@ // } System.out.print("}"); t2.stop(); - System.out.println(t1.getTotal() +"--" + t3.getTotal() + "--" + t2.getTotal()); +// System.out.println(t1.getTotal() +"--" + t3.getTotal() + "--" + t2.getTotal()); // Set<OWLAxiom> test = new HashSet<OWLAxiom>(); // OWLClass z = factory.getOWLClass(URI.create("z")); Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -1,66 +0,0 @@ -package org.dllearner.tools.ore.ui; - -import java.awt.Color; -import java.util.List; - -import javax.swing.ListSelectionModel; - -import org.dllearner.learningproblems.EvaluatedDescriptionClass; -import org.jdesktop.swingx.JXTable; -import org.jdesktop.swingx.decorator.HighlighterFactory; - -public class EquivalentClassExpressionsTable extends JXTable { - - /** - * - */ - private static final long serialVersionUID = 486680925931781915L; - - private EvaluatedDescriptionClass old = null; - - public EquivalentClassExpressionsTable(){ - setBackground(Color.WHITE); - setHighlighters(HighlighterFactory.createAlternateStriping()); -// setAutoResizeMode(JTable.AUTO_RESIZE_OFF); - setModel(new EquivalentClassExpressionsTableModel()); - setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - getColumn(1).setCellRenderer(new ManchesterSyntaxTableCellRenderer()); - setColumnSizes(); - getColumn(0).setResizable(false); - getColumn(1).setResizable(false); - setGridColor(Color.LIGHT_GRAY); - } - - private void setColumnSizes(){ - getColumn(0).setMaxWidth(100); - getColumn(1).setPreferredWidth(430); - getColumn(2).setMaxWidth(30); - - } - - - - public void clear(){ - ((EquivalentClassExpressionsTableModel)getModel()).clear(); - } - - public void addResults(List<EvaluatedDescriptionClass> resultList){ - - if(getSelectedRow() >= 0){ - old = getSelectedValue(); - } - ((EquivalentClassExpressionsTableModel)getModel()).addResults(resultList); - if(old != null){ - int newRowIndex = ((EquivalentClassExpressionsTableModel)getModel()).getSelectionIndex(old); - if(newRowIndex >= 0){ - getSelectionModel().setSelectionInterval(newRowIndex, newRowIndex); - } - - } - } - - public EvaluatedDescriptionClass getSelectedValue(){ - return ((EquivalentClassExpressionsTableModel)getModel()).getSelectedValue(getSelectedRow()); - } - -} Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -1,114 +0,0 @@ -package org.dllearner.tools.ore.ui; - -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.table.AbstractTableModel; - -import org.dllearner.core.owl.Description; -import org.dllearner.learningproblems.EvaluatedDescriptionClass; - -public class EquivalentClassExpressionsTableModel extends AbstractTableModel { - - /** - * - */ - private static final long serialVersionUID = 8582947007601430481L; - - private List<EvaluatedDescriptionClass> resultList; - private DecimalFormat df; - private List<Boolean> selectionList; - - public EquivalentClassExpressionsTableModel(){ - super(); - resultList = new ArrayList<EvaluatedDescriptionClass>(); - selectionList = new ArrayList<Boolean>(); - df = new DecimalFormat("00%"); - } - - public EquivalentClassExpressionsTableModel(List<EvaluatedDescriptionClass> resultList){ - this.resultList = resultList; - } - - @Override - public int getColumnCount() { - return 3; - } - - @Override - public int getRowCount() { - return resultList.size(); - } - - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - if(columnIndex == 0){ - return df.format(resultList.get(rowIndex).getAccuracy()); - } else if(columnIndex == 1){ - return resultList.get(rowIndex).getDescription(); - } else { - return selectionList.get(rowIndex); - } - } - - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - selectionList.set(rowIndex, (Boolean)value); - - super.fireTableCellUpdated(rowIndex, columnIndex); - - } - - @Override - public Class<? extends Object> getColumnClass(int columnIndex){ - switch(columnIndex){ - case 0: return String.class; - case 1: return Description.class; - case 2: return Boolean.class; - } - return null; - } - - @Override - public String getColumnName(int column){ - switch(column){ - case 0: return "Accuracy"; - case 1: return "Class expression"; - } - return ""; - } - - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - if(columnIndex == 2){ - return true; - } - return false; - } - - public void clear(){ - resultList.clear(); - fireTableDataChanged(); - } - - public void addResults(List<EvaluatedDescriptionClass> resultList){ - this.resultList.clear(); - this.resultList.addAll(resultList); - for(int i = 0; i < resultList.size(); i++){ - selectionList.add(i, Boolean.FALSE); - } - - fireTableRowsUpdated(0, this.resultList.size()); - } - - public EvaluatedDescriptionClass getSelectedValue(int rowIndex){ - return resultList.get(rowIndex); - } - - public int getSelectionIndex(EvaluatedDescriptionClass e){ - return resultList.indexOf(e); - } - -} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/HelpablePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/HelpablePanel.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/HelpablePanel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -1,5 +1,7 @@ package org.dllearner.tools.ore.ui; +import java.awt.Component; import java.awt.Dimension; +import java.awt.Graphics; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; @@ -109,8 +111,24 @@ learnTypePanel.add(equivalentClassButton); learnTypePanel.add(superClassButton); HelpablePanel learnTypeHelpPanel = new HelpablePanel(learnTypePanel); - learnTypeHelpPanel.setBorder(new TitledBorder("Learning type")); - + TitledBorder border = new TitledBorder("LEarning type"){ + + /** + * + */ + private static final long serialVersionUID = 1878007899412644256L; + + @Override + public void paintBorder(Component c, Graphics g, int x, int y, + int width, int height) { + // TODO Auto-generated method stub + super.paintBorder(c, g, x, y, width, height); + } + + }; +// border.setTitleJustification(TitledBorder.ABOVE_BOTTOM); + border.setTitlePosition(TitledBorder.ABOVE_TOP); + learnTypeHelpPanel.setBorder(border); frame.add(learnTypeHelpPanel); @@ -119,4 +137,5 @@ frame.setVisible(true); } + } Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -0,0 +1,78 @@ +package org.dllearner.tools.ore.ui; + +import java.awt.Component; +import java.awt.event.MouseEvent; +import java.util.Set; + +import javax.swing.ImageIcon; +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.TableCellRenderer; + +import org.dllearner.core.owl.NamedClass; +import org.jdesktop.swingx.JXTable; + +public class MarkableTable extends JXTable { + + /** + * + */ + private static final long serialVersionUID = 4193878042914394758L; + private ImageIcon icon = new ImageIcon("src/dl-learner/org/dllearner/tools/ore/untoggled.gif"); + + public MarkableTable(){ + super(new MarkableTableModel()); + getColumn(1).setCellRenderer(new ManchesterSyntaxTableCellRenderer()); + getColumn(0).setMaxWidth(30); + setTableHeader(null); + setBorder(null); + setShowVerticalLines(false); + setShowHorizontalLines(false); + setRowSelectionAllowed(false); + setColumnSelectionAllowed(false); + setCellSelectionEnabled(false); + getColumn(0).setCellRenderer(new TableCellRenderer() { + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, + int row, int column) { + if(value.equals(">")){ + return new JLabel(icon); + } else { + return new JLabel(""); + } + } + }); + } + + @Override + public String getToolTipText(MouseEvent e){ + String tip = null; + java.awt.Point p = e.getPoint(); + int rowIndex = rowAtPoint(p); + if(rowIndex != -1){ + tip = getValueAt(rowIndex, 1).toString(); + + } else { + tip = super.getToolTipText(e); + } + return tip; + } + + public void addClasses(Set<NamedClass> classes){ + ((MarkableTableModel)getModel()).addClasses(classes); + } + + public NamedClass getSelectedValue(){ + return ((MarkableTableModel)getModel()).getSelectedValue(getSelectedRow()); + } + + public void clear(){ + ((MarkableTableModel)getModel()).clear(); + } + + public void setSelectedClass(int rowIndex){ + ((MarkableTableModel)getModel()).setSelectedClass(rowIndex); + } + +} Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -0,0 +1,69 @@ +package org.dllearner.tools.ore.ui; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.swing.table.AbstractTableModel; + +import org.dllearner.core.owl.NamedClass; + +public class MarkableTableModel extends AbstractTableModel { + + /** + * + */ + private static final long serialVersionUID = 5773843275446469889L; + + private List<NamedClass> classes; + private int selectedRowIndex = 0; + + public MarkableTableModel(){ + classes = new ArrayList<NamedClass>(); + } + + @Override + public int getColumnCount() { + return 2; + } + + @Override + public int getRowCount() { + return classes.size(); + } + + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + if(columnIndex == 0){ + if(rowIndex == selectedRowIndex){ + return ">"; + } else { + return ""; + } + } else { + return classes.get(rowIndex); + } + } + + public void clear(){ + classes.clear(); + fireTableDataChanged(); + } + + public void addClasses(Set<NamedClass> classes){ + this.classes.clear(); + this.classes.addAll(classes); + fireTableDataChanged(); + } + + public NamedClass getSelectedValue(int rowIndex){ + return classes.get(rowIndex); + } + + public void setSelectedClass(int rowIndex){ + int oldRowIndex = selectedRowIndex; + selectedRowIndex = rowIndex; + fireTableRowsUpdated(oldRowIndex, selectedRowIndex); + } + +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MetricsPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MetricsPanel.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MetricsPanel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -4,11 +4,7 @@ import java.awt.Color; import java.awt.Font; import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import javax.swing.BorderFactory; import javax.swing.JPanel; @@ -16,9 +12,9 @@ import javax.swing.JTable; import javax.swing.border.TitledBorder; +import org.dllearner.tools.ore.OREManager; import org.protege.editor.core.PropertyUtil; import org.protege.editor.core.ProtegeProperties; -import org.semanticweb.owl.apibinding.OWLManager; import org.semanticweb.owl.metrics.DLExpressivity; import org.semanticweb.owl.metrics.OWLMetric; import org.semanticweb.owl.metrics.OWLMetricManager; @@ -26,121 +22,100 @@ import org.semanticweb.owl.metrics.ReferencedDataPropertyCount; import org.semanticweb.owl.metrics.ReferencedIndividualCount; import org.semanticweb.owl.metrics.ReferencedObjectPropertyCount; -import org.semanticweb.owl.model.OWLAxiom; import org.semanticweb.owl.model.OWLOntology; -import org.semanticweb.owl.model.OWLOntologyChangeException; -import org.semanticweb.owl.model.OWLOntologyCreationException; import org.semanticweb.owl.model.OWLOntologyManager; - /** * Author: Matthew Horridge<br> * The University Of Manchester<br> * Bio-Health Informatics Group<br> - * Date: 29-Oct-2007<br><br> + * Date: 29-Oct-2007<br> + * <br> */ public class MetricsPanel extends JPanel { - /** + /** * */ private static final long serialVersionUID = -5827197898985671614L; - private Map<String, OWLMetricManager> metricManagerMap; + private OWLOntologyManager manager; - private Map<OWLMetricManager, MetricsTableModel> tableModelMap; + private OWLMetricManager metricManager; - - private OWLOntologyManager manager; + public MetricsPanel() { +// this.manager = OWLManager.createOWLOntologyManager(); +// initialiseOWLView(); + } + protected void initialiseOWLView() { + createBasicMetrics(); + createUI(); + } - public MetricsPanel() { - this.manager = OWLManager.createOWLOntologyManager(); - try { - manager.createOntology(Collections.<OWLAxiom>emptySet()); - - } catch (OWLOntologyCreationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (OWLOntologyChangeException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - initialiseOWLView(); - } + private void createUI() { - protected void initialiseOWLView() { - metricManagerMap = new LinkedHashMap<String, OWLMetricManager>(); - tableModelMap = new HashMap<OWLMetricManager, MetricsTableModel>(); - createBasicMetrics(); - createUI(); - updateView(manager.getOntologies().iterator().next()); - for(OWLMetricManager man : metricManagerMap.values()) { - for(OWLMetric<?> m : man.getMetrics()) { - m.setImportsClosureUsed(true); - m.setOntology(manager.getOntologies().iterator().next()); - } - } - } + setLayout(new BorderLayout()); + JPanel panel = new JPanel(); + panel.setLayout(new BorderLayout()); - private void createUI() { - - setLayout(new BorderLayout()); - JPanel panel = new JPanel(); - panel.setLayout(new BorderLayout()); - for (String metricsSet : metricManagerMap.keySet()) { - MetricsTableModel tableModel = new MetricsTableModel(metricManagerMap.get(metricsSet)); - tableModelMap.put(metricManagerMap.get(metricsSet), tableModel); - final JTable table = new JTable(tableModel); - table.setGridColor(Color.LIGHT_GRAY); - table.setRowHeight(table.getRowHeight() + 4); - table.setShowGrid(true); - - table.getColumnModel().getColumn(1).setMaxWidth(150); - table.getColumnModel().setColumnMargin(2); - table.setFont(getFont().deriveFont(Font.BOLD, 12.0f)); - table.setForeground(PropertyUtil.getColor(ProtegeProperties.getInstance().getProperty(ProtegeProperties.PROPERTY_COLOR_KEY), - Color.GRAY)); + MetricsTableModel tableModel = new MetricsTableModel(metricManager); - final JPanel tablePanel = new JPanel(new BorderLayout()); - - tablePanel.add(table); - tablePanel.setFont(getFont().deriveFont(Font.BOLD, 12.0f)); -// tablePanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(2, 2, 14, 2), -// ComponentFactory.createTitledBorder(metricsSet))); - table.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY)); - panel.add(tablePanel); - } - JScrollPane sp = new JScrollPane(panel); - sp.setOpaque(false); - add(sp); - } + final JTable table = new JTable(tableModel); + table.setGridColor(Color.LIGHT_GRAY); + table.setRowHeight(table.getRowHeight() + 4); + table.setShowGrid(true); + table.getColumnModel().getColumn(1).setMaxWidth(150); + table.getColumnModel().setColumnMargin(2); + table.setFont(getFont().deriveFont(Font.BOLD, 12.0f)); + table.setForeground(PropertyUtil.getColor(ProtegeProperties.getInstance().getProperty( + ProtegeProperties.PROPERTY_COLOR_KEY), Color.GRAY)); + final JPanel tablePanel = new JPanel(new BorderLayout()); + tablePanel.add(table); + tablePanel.setFont(getFont().deriveFont(Font.BOLD, 12.0f)); + // tablePanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(2, + // 2, 14, 2), + // ComponentFactory.createTitledBorder(metricsSet))); + table.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY)); + panel.add(tablePanel); - private void createBasicMetrics() { - List<OWLMetric> metrics = new ArrayList<OWLMetric>(); - metrics.add(new ReferencedClassCount(manager)); - metrics.add(new ReferencedObjectPropertyCount(manager)); - metrics.add(new ReferencedDataPropertyCount(manager)); - metrics.add(new ReferencedIndividualCount(manager)); - metrics.add(new DLExpressivity(manager)); - OWLMetricManager metricManager = new OWLMetricManager(metrics); - metricManagerMap.put("Metrics", metricManager); - } + JScrollPane sp = new JScrollPane(panel); + sp.setOpaque(false); + add(sp); + } - public void updateView(OWLOntology activeOntology) { - for (OWLMetricManager man : metricManagerMap.values()) { - man.setOntology(activeOntology); - } - TitledBorder border = new TitledBorder(activeOntology.getURI().toString() + " successfully loaded"); - border.setTitleFont(getFont().deriveFont(Font.BOLD, 12.0f)); - border.setTitleColor(PropertyUtil.getColor(ProtegeProperties.getInstance().getProperty(ProtegeProperties.PROPERTY_COLOR_KEY), - Color.GRAY)); - setBorder(border); - repaint(); - } - + @SuppressWarnings("unchecked") + private void createBasicMetrics() { + List<OWLMetric> metrics = new ArrayList<OWLMetric>(); + metrics.add(new ReferencedClassCount(manager)); + metrics.add(new ReferencedObjectPropertyCount(manager)); + metrics.add(new ReferencedDataPropertyCount(manager)); + metrics.add(new ReferencedIndividualCount(manager)); + metrics.add(new DLExpressivity(manager)); + metricManager = new OWLMetricManager(metrics); + + } + + public void updateView(OWLOntology activeOntology) { + removeAll(); + manager = OREManager.getInstance().getReasoner().getOWLOntologyManager(); + createBasicMetrics(); + metricManager.setOntology(activeOntology); + for (OWLMetric<?> m : metricManager.getMetrics()) { + m.setImportsClosureUsed(true); + } + createUI(); + + TitledBorder border = new TitledBorder(activeOntology.getURI().toString() + " successfully loaded"); + border.setTitleFont(getFont().deriveFont(Font.BOLD, 12.0f)); + border.setTitleColor(PropertyUtil.getColor(ProtegeProperties.getInstance().getProperty( + ProtegeProperties.PROPERTY_COLOR_KEY), Color.GRAY)); + setBorder(border); + repaint(); + } + + } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/RepairPlanPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/RepairPlanPanel.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/RepairPlanPanel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -27,7 +27,7 @@ this.repMan = RepairManager.getInstance(OREManager.getInstance()); setLayout(new BorderLayout()); - add(new JLabel("Axioms"), BorderLayout.NORTH); + add(new JLabel("Repair plan"), BorderLayout.NORTH); JPanel buttonPanel = new JPanel(new FlowLayout(2)); add(buttonPanel, "South"); undoButton = new JButton(new AbstractAction("Undo") { Copied: trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTable.java (from rev 1869, trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTable.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTable.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -0,0 +1,71 @@ +package org.dllearner.tools.ore.ui; + +import java.awt.Color; +import java.util.List; + +import javax.swing.ListSelectionModel; + +import org.dllearner.core.owl.Description; +import org.dllearner.learningproblems.EvaluatedDescriptionClass; +import org.jdesktop.swingx.JXTable; +import org.jdesktop.swingx.decorator.HighlighterFactory; + +public class SelectableClassExpressionsTable extends JXTable { + + /** + * + */ + private static final long serialVersionUID = 486680925931781915L; + + private EvaluatedDescriptionClass old = null; + + public SelectableClassExpressionsTable(){ + setBackground(Color.WHITE); + setHighlighters(HighlighterFactory.createAlternateStriping()); +// setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + setModel(new SelectableClassExpressionsTableModel()); + setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + getColumn(1).setCellRenderer(new ManchesterSyntaxTableCellRenderer()); + setColumnSizes(); + getColumn(0).setResizable(false); + getColumn(1).setResizable(false); + setGridColor(Color.LIGHT_GRAY); + } + + private void setColumnSizes(){ + getColumn(0).setMaxWidth(95); +// getColumn(1).setPreferredWidth(430); + getColumn(2).setMaxWidth(30); + + } + + + + public void clear(){ + ((SelectableClassExpressionsTableModel)getModel()).clear(); + } + + public void addResults(List<EvaluatedDescriptionClass> resultList){ + + if(getSelectedRow() >= 0){ + old = getSelectedValue(); + } + ((SelectableClassExpressionsTableModel)getModel()).addResults(resultList); + if(old != null){ + int newRowIndex = ((SelectableClassExpressionsTableModel)getModel()).getSelectionIndex(old); + if(newRowIndex >= 0){ + getSelectionModel().setSelectionInterval(newRowIndex, newRowIndex); + } + + } + } + + public EvaluatedDescriptionClass getSelectedValue(){ + return ((SelectableClassExpressionsTableModel)getModel()).getSelectedValue(getSelectedRow()); + } + + public List<Description> getSelecetdDescriptions(){ + return ((SelectableClassExpressionsTableModel)getModel()).getSelectedDescriptions(); + } + +} Copied: trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.java (from rev 1869, trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -0,0 +1,125 @@ +package org.dllearner.tools.ore.ui; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.table.AbstractTableModel; + +import org.dllearner.core.owl.Description; +import org.dllearner.learningproblems.EvaluatedDescriptionClass; + +public class SelectableClassExpressionsTableModel extends AbstractTableModel { + + /** + * + */ + private static final long serialVersionUID = 8582947007601430481L; + + private List<EvaluatedDescriptionClass> resultList; + private DecimalFormat df; + private List<Boolean> selectionList; + + public SelectableClassExpressionsTableModel(){ + super(); + resultList = new ArrayList<EvaluatedDescriptionClass>(); + selectionList = new ArrayList<Boolean>(); + df = new DecimalFormat("00%"); + } + + public SelectableClassExpressionsTableModel(List<EvaluatedDescriptionClass> resultList){ + this.resultList = resultList; + } + + @Override + public int getColumnCount() { + return 3; + } + + @Override + public int getRowCount() { + return resultList.size(); + } + + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + if(columnIndex == 0){ + return df.format(resultList.get(rowIndex).getAccuracy()); + } else if(columnIndex == 1){ + return resultList.get(rowIndex).getDescription(); + } else { + return selectionList.get(rowIndex); + } + } + + @Override + public void setValueAt(Object value, int rowIndex, int columnIndex) { + + selectionList.set(rowIndex, (Boolean)value); + + super.fireTableCellUpdated(rowIndex, columnIndex); + + } + + @Override + public Class<? extends Object> getColumnClass(int columnIndex){ + switch(columnIndex){ + case 0: return String.class; + case 1: return Description.class; + case 2: return Boolean.class; + } + return null; + } + + @Override + public String getColumnName(int column){ + switch(column){ + case 0: return "Accuracy"; + case 1: return "Class expression"; + } + return ""; + } + + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) { + if(columnIndex == 2){ + return true; + } + return false; + } + + public void clear(){ + resultList.clear(); + fireTableDataChanged(); + } + + public void addResults(List<EvaluatedDescriptionClass> resultList){ + this.resultList.clear(); + this.resultList.addAll(resultList); + for(int i = 0; i < resultList.size(); i++){ + selectionList.add(i, Boolean.FALSE); + } + + fireTableRowsUpdated(0, this.resultList.size()); + } + + public EvaluatedDescriptionClass getSelectedValue(int rowIndex){ + return resultList.get(rowIndex); + } + + public int getSelectionIndex(EvaluatedDescriptionClass e){ + return resultList.indexOf(e); + } + + public List<Description> getSelectedDescriptions(){ + List<Description> selected = new ArrayList<Description>(); + for(int i = 0; i < selectionList.size(); i++){ + if(selectionList.get(i).equals(Boolean.TRUE)){ + selected.add(resultList.get(i).getDescription()); + } + } + + return selected; + } + +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -162,6 +162,10 @@ classChoose.resetPanel(); } else if(nextPanelDescriptor.equals(AutoLearnPanelDescriptor.IDENTIFIER)){ ((ClassChoosePanelDescriptor)currentPanelDescriptor).setAutoLearningOptions(); + AutoLearnPanelDescriptor learnDescriptor = ((AutoLearnPanelDescriptor) model + .getPanelHashMap().get(nextPanelDescriptor)); + learnDescriptor.resetPanel(); + learnDescriptor.fillClassesTable(); } // else if(currentPanelDescriptor.getPanelDescriptorIdentifier().equals(LearningPanelDescriptor.IDENTIFIER)){ // if(OREManager.getInstance().getNewClassDescription().getAccuracy() == 1.0){ Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -18,6 +18,7 @@ import org.dllearner.core.EvaluatedDescription; import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.owl.Description; import org.dllearner.core.owl.NamedClass; import org.dllearner.learningproblems.EvaluatedDescriptionClass; import org.dllearner.tools.ore.OREManager; @@ -42,6 +43,8 @@ private EquivalentLearningTask equivalentLearningTask; private SuperClassLearningTask superLearningTask; + private SwingWorker<Void, List<? extends EvaluatedDescription>> currentLearningTask; + private int currentClassIndex = 0; @@ -59,7 +62,13 @@ @Override public Object getNextPanelDescriptor() { - return RepairPanelDescriptor.IDENTIFIER; + if(getSelectedDescriptions().isEmpty()){ + return SavePanelDescriptor.IDENTIFIER; + } else { + OREManager.getInstance().setNewDescriptions(getSelectedDescriptions()); + return RepairPanelDescriptor.IDENTIFIER; + } + } @Override @@ -70,10 +79,9 @@ @Override public void aboutToDisplayPanel() { getWizard().getInformationField().setText(INFORMATION); - fillClassesTable(); } - public void fillClassesTable(){ + public void fillClassesTable(){ TaskManager.getInstance().setTaskStarted("Retrieving atomic classes..."); new ClassRetrievingTask().execute(); } @@ -97,11 +105,23 @@ public void learnNextClass(){ autoLearnPanel.resetPanel(); - OREManager.getInstance().setCurrentClass2Learn(new NamedClass("http://ns.softwiki.de/req/CustomerRequirement"));//classes.get(currentClassIndex)); + autoLearnPanel.setSelectedClass(currentClassIndex); + OREManager.getInstance().setCurrentClass2Learn(classes.get(currentClassIndex)); learnEquivalentClassExpressions(); currentClassIndex++; } + public List<Description> getSelectedDescriptions(){ + return autoLearnPanel.getSelectedDescriptions(); + } + + public void resetPanel(){ + currentClassIndex = 0; + autoLearnPanel.resetPanel(); + autoLearnPanel.clearClassesTable(); + + } + @Override public void actionPerformed(ActionEvent e) { learnNextClass(); @@ -148,6 +168,7 @@ // TODO Auto-generated catch block e.printStackTrace(); } + classes.clear(); classes.addAll(result); autoLearnPanel.fillClassesTable(result); OREManager.getInstance().setCurrentClass2Learn(classes.get(0)); @@ -199,19 +220,22 @@ public void done() { timer.cancel(); List<? extends EvaluatedDescription> result = la.getCurrentlyBestEvaluatedDescriptions(maxNrOfResults, threshold, true); - updateList(result); + updateResultTable(result); + if(result.isEmpty()){ + EvaluatedDescriptionClass best = (EvaluatedDescriptionClass)la.getCurrentlyBestEvaluatedDescription(); + } learnSubClassExpressions(); } @Override protected void process(List<List<? extends EvaluatedDescription>> resultLists) { for (List<? extends EvaluatedDescription> list : resultLists) { - updateList(list); + updateResultTable(list); } } @SuppressWarnings("unchecked") - private void updateList(final List<? extends EvaluatedDescription> result) { + private void updateResultTable(final List<? extends EvaluatedDescription> result) { autoLearnPanel.fillEquivalentClassExpressionsTable((List<EvaluatedDescriptionClass>) result); } } @@ -257,7 +281,7 @@ public void done() { timer.cancel(); List<? extends EvaluatedDescription> result = la.getCurrentlyBestEvaluatedDescriptions(maxNrOfResults, threshold, true); - updateList(result); + updateResultTable(result); TaskManager.getInstance().setTaskFinished(); setProgress(0); } @@ -265,12 +289,12 @@ @Override protected void process(List<List<? extends EvaluatedDescription>> resultLists) { for (List<? extends EvaluatedDescription> list : resultLists) { - updateList(list); + updateResultTable(list); } } @SuppressWarnings("unchecked") - private void updateList(final List<? extends EvaluatedDescription> result) { + private void updateResultTable(final List<? extends EvaluatedDescription> result) { autoLearnPanel.fillSuperClassExpressionsTable((List<EvaluatedDescriptionClass>) result); } } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/SavePanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/SavePanelDescriptor.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/SavePanelDescriptor.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -62,11 +62,16 @@ @Override public Object getBackPanelDescriptor() { - if(OREManager.getInstance().getNewClassDescription().getAccuracy() == 1.0){ - return ManualLearnPanelDescriptor.IDENTIFIER; - } else { - return RepairPanelDescriptor.IDENTIFIER; - } + + if(OREManager.getInstance().getLearningMode() == OREManager.MANUAL_LEARN_MODE){ + if(OREManager.getInstance().getNewClassDescription().getAccuracy() == 1.0){ + return ManualLearnPanelDescriptor.IDENTIFIER; + } else { + return RepairPanelDescriptor.IDENTIFIER; + } + } else { + return AutoLearnPanelDescriptor.IDENTIFIER; + } } @Override Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/UnsatisfiableExplanationPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/UnsatisfiableExplanationPanelDescriptor.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/UnsatisfiableExplanationPanelDescriptor.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -227,45 +227,40 @@ } - class RootDerivedTask extends SwingWorker<Void, Void>{ + class RootDerivedTask extends SwingWorker<Void, Void> { - @Override - public Void doInBackground() { - - expMan.getRootUnsatisfiableClasses(); - expMan.getDerivedClasses(); - return null; - } + @Override + public Void doInBackground() { - @Override - public void done() { - TaskManager.getInstance().setTaskFinished(); - if(!isCancelled()){ - fillUnsatClassesTable(); - } - + expMan.getRootUnsatisfiableClasses(); + expMan.getDerivedClasses(); + return null; + } + + @Override + public void done() { + TaskManager.getInstance().setTaskFinished(); + if (!isCancelled()) { + fillUnsatClassesTable(); } - - private void fillUnsatClassesTable(){ - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - List<OWLClass> unsatClasses = new ArrayList<OWLClass>(); - - Set<OWLClass> rootClasses = new TreeSet<OWLClass>(expMan - .getRootUnsatisfiableClasses()); - unsatClasses.addAll(rootClasses); - - Set<OWLClass> derivedClasses = new TreeSet<OWLClass>(expMan - .getDerivedClasses()); - unsatClasses.addAll(derivedClasses); - - panel.fillUnsatClassesTable(unsatClasses); - panel.getUnsatTable().clearSelection(); - } - }); - } - } + } + private void fillUnsatClassesTable() { + + List<OWLClass> unsatClasses = new ArrayList<OWLClass>(); + + Set<OWLClass> rootClasses = new TreeSet<OWLClass>(expMan + .getRootUnsatisfiableClasses()); + unsatClasses.addAll(rootClasses); + + Set<OWLClass> derivedClasses = new TreeSet<OWLClass>(expMan + .getDerivedClasses()); + unsatClasses.addAll(derivedClasses); + + panel.fillUnsatClassesTable(unsatClasses); + panel.getUnsatTable().clearSelection(); + + } + } + } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -4,6 +4,7 @@ import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionListener; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -15,15 +16,16 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; +import javax.swing.border.MatteBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import org.dllearner.core.owl.Description; import org.dllearner.core.owl.NamedClass; import org.dllearner.learningproblems.EvaluatedDescriptionClass; -import org.dllearner.tools.ore.OREManager; -import org.dllearner.tools.ore.ui.ClassesTable; -import org.dllearner.tools.ore.ui.EquivalentClassExpressionsTable; import org.dllearner.tools.ore.ui.GraphicalCoveragePanel; +import org.dllearner.tools.ore.ui.MarkableTable; +import org.dllearner.tools.ore.ui.SelectableClassExpressionsTable; public class AutoLearnPanel extends JPanel { @@ -32,13 +34,13 @@ */ private static final long serialVersionUID = -5204979906041331328L; - private ClassesTable classesTable; - +// private ClassesTable classesTable; + private MarkableTable classesTable; private JPanel superPanel; private JPanel equivalentPanel; - private EquivalentClassExpressionsTable equivalentClassResultsTable; - private EquivalentClassExpressionsTable superClassResultsTable; + private SelectableClassExpressionsTable equivalentClassResultsTable; + private SelectableClassExpressionsTable superClassResultsTable; private GraphicalCoveragePanel equivalentClassCoveragePanel; private GraphicalCoveragePanel superClassCoveragePanel; @@ -48,7 +50,7 @@ private JButton skipButton; - private final static String INCONSISTENY_WARNING = "<html><font color=red>" + + private final static String INCONSISTENCY_WARNING = "<html><font color=red>" + "Warning. Selected class expressions leads to an inconsistent ontology!" + "</font></html>"; public AutoLearnPanel(){ @@ -69,10 +71,10 @@ } private JComponent createClassesPanel(){ - classesTable = new ClassesTable(); + classesTable = new MarkableTable(); classesTable.setBorder(null); - classesTable.setEnabled(false); JScrollPane classesScroll = new JScrollPane(classesTable); + classesScroll.setBorder(new MatteBorder(null)); return classesScroll; } @@ -106,7 +108,7 @@ c.fill = GridBagConstraints.BOTH; c.gridx = 0; c.gridy = 0; - equivalentClassResultsTable = new EquivalentClassExpressionsTable(); + equivalentClassResultsTable = new SelectableClassExpressionsTable(); equivalentClassResultsTable.setName("equivalent"); equivalentPanel.add(new JScrollPane(equivalentClassResultsTable), c); @@ -136,7 +138,7 @@ c.fill = GridBagConstraints.BOTH; c.gridx = 0; c.gridy = 0; - superClassResultsTable = new EquivalentClassExpressionsTable(); + superClassResultsTable = new SelectableClassExpressionsTable(); superClassResultsTable.setName("super"); superPanel.add(new JScrollPane(superClassResultsTable), c); @@ -177,8 +179,21 @@ superClassResultsTable.clear(); equivalentClassCoveragePanel.clear(); superClassCoveragePanel.clear(); + validate(); + repaint(); } + public void clearClassesTable(){ + classesTable.clear(); + } + + public List<Description> getSelectedDescriptions(){ + List<Description> selected = new ArrayList<Description>(); + selected.addAll(equivalentClassResultsTable.getSelecetdDescriptions()); + selected.addAll(superClassResultsTable.getSelecetdDescriptions()); + return selected; + } + private void addTableSelectionListeners(){ equivalentClassResultsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { @Override @@ -187,10 +202,10 @@ if (!e.getValueIsAdjusting() && equivalentClassResultsTable.getSelectedRow() >= 0){ EvaluatedDescriptionClass selectedClassExpression = equivalentClassResultsTable.getSelectedValue(); - OREManager.getInstance().setNewClassDescription(selectedClassExpression); + equivalentClassCoveragePanel.setNewClassDescription(selectedClassExpression); if(!selectedClassExpression.isConsistent()){ - equivalentInconsistencyLabel.setText(INCONSISTENY_WARNING); + equivalentInconsistencyLabel.setText(INCONSISTENCY_WARNING); } else { equivalentInconsistencyLabel.setText(" "); } @@ -207,10 +222,10 @@ if (!e.getValueIsAdjusting() && superClassResultsTable.getSelectedRow() >= 0){ EvaluatedDescriptionClass selectedClassExpression = superClassResultsTable.getSelectedValue(); - OREManager.getInstance().setNewClassDescription(selectedClassExpression); + superClassCoveragePanel.setNewClassDescription(selectedClassExpression); if(!selectedClassExpression.isConsistent()){ - superInconsistencyLabel.setText(INCONSISTENY_WARNING); + superInconsistencyLabel.setText(INCONSISTENCY_WARNING); } else { superInconsistencyLabel.setText(" "); } @@ -227,6 +242,10 @@ superClassCoveragePanel.setNewClassDescription(desc); } + public void setSelectedClass(int rowIndex){ + classesTable.setSelectedClass(rowIndex); + } + public static void main(String[] args){ JFrame frame = new JFrame(); @@ -236,5 +255,6 @@ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } + } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/InconsistencyExplanationPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/InconsistencyExplanationPanel.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/InconsistencyExplanationPanel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -7,14 +7,11 @@ import java.awt.GridLayout; import java.awt.Insets; import java.awt.event.ActionListener; -import java.util.HashSet; -import java.util.Set; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.ButtonGroup; import javax.swing.JComponent; -import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; @@ -29,7 +26,6 @@ import org.dllearner.tools.ore.ui.ExplanationTablePanel; import org.dllearner.tools.ore.ui.HelpablePanel; import org.dllearner.tools.ore.ui.RepairPlanPanel; -import org.dllearner.tools.ore.ui.UnsatisfiableClassesTable; import org.semanticweb.owl.apibinding.OWLManager; public class InconsistencyExplanationPanel extends JPanel{ @@ -52,11 +48,6 @@ private JRadioButton computeMaxExplanationsRadioButton; private JSpinner maxExplanationsSelector; - - private Set<ExplanationTablePanel> explanationPanels; - private Set<ExplanationTable> explanationTables; - - public InconsistencyExplanationPanel() { createUI(); @@ -80,9 +71,6 @@ private JComponent createExplanationPanel(){ explanationsPanel = new Box(1); - - explanationPanels = new HashSet<ExplanationTablePanel>(); - explanationTables = new HashSet<ExplanationTable>(); JPanel pan = new JPanel(new BorderLayout()); pan.add(explanationsPanel, BorderLayout.NORTH); @@ -161,7 +149,6 @@ private JComponent createRepairPanel(){ JPanel repairPanel = new JPanel(new BorderLayout()); - repairPanel.add(new JLabel("Repair plan"), BorderLayout.NORTH); repairPanel.add(new RepairPlanPanel(), BorderLayout.CENTER); return repairPanel; } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java 2009-10-02 16:29:11 UTC (rev 1875) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java 2009-10-03 11:29:04 UTC (rev 1876) @@ -216,7 +216,6 @@ private JComponent createImpactRepairPanel(){ JPanel impactRepairPanel = new JPanel(); impactRepairPanel.setLayout(new BorderLayout()); - impactRepairPanel.add(new JLabel("Repair plan"), BorderLayout.NORTH); JSplitPane impRepSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); impRepSplit.setOneTouchExpandable(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |