From: <lor...@us...> - 2009-10-04 11:55:00
|
Revision: 1877 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1877&view=rev Author: lorenz_b Date: 2009-10-04 11:54:44 +0000 (Sun, 04 Oct 2009) Log Message: ----------- continued auto learning mode changed some wizard logic Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.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/ClassChoosePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/RepairPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/SavePanelDescriptor.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/RepairPanel.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java trunk/src/dl-learner/org/dllearner/tools/ore/LearningManagerListener.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTableModel.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java Added: trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -0,0 +1,96 @@ +package org.dllearner.tools.ore; + +import java.util.ArrayList; +import java.util.List; + +import org.dllearner.learningproblems.EvaluatedDescriptionClass; + +public class LearningManager { + + private static LearningManager instance; + + private List<LearningManagerListener> listeners; + + public static final int AUTO_LEARN_MODE = 0; + public static final int MANUAL_LEARN_MODE = 1; + + private int learnMode = 0; + + private List<EvaluatedDescriptionClass> newDescriptions; + + private int currentDescriptionIndex = 0; + + public static LearningManager getInstance(){ + if(instance == null){ + instance = new LearningManager(); + } + return instance; + } + + public LearningManager(){ + listeners = new ArrayList<LearningManagerListener>(); + } + + public void setLearningMode(int learningMode){ + this.learnMode = learningMode; + } + + public int getLearningMode(){ + return learnMode; + } + + public List<EvaluatedDescriptionClass> getNewDescriptions() { + return newDescriptions; + } + + public void setNewDescriptions(List<EvaluatedDescriptionClass> newDescriptions) { + this.newDescriptions = newDescriptions; + currentDescriptionIndex = 0; + fireNewDescriptionsAdded(newDescriptions); + setNextDescription(); + } + + public int getCurrentDescriptionIndex() { + return currentDescriptionIndex; + } + + public void setCurrentDescriptionIndex(int currentDescriptionIndex) { + this.currentDescriptionIndex = currentDescriptionIndex; + } + + public void setNextDescription(){ + OREManager.getInstance().setNewClassDescription(newDescriptions.get(currentDescriptionIndex)); + fireNewDescriptionSelected(currentDescriptionIndex); + currentDescriptionIndex++; + if(currentDescriptionIndex >= newDescriptions.size()){ + fireNoDescriptionsLeft(); + } + } + + public boolean addListener(LearningManagerListener listener) { + return listeners.add(listener); + } + + public boolean removeListener(LearningManagerListener listener) { + return listeners.remove(listener); + } + + public void fireNewDescriptionsAdded(List<EvaluatedDescriptionClass> descriptions){ + for(LearningManagerListener listener : listeners){ + listener.newDescriptionsAdded(descriptions); + } + } + + public void fireNoDescriptionsLeft(){ + for(LearningManagerListener listener : listeners){ + listener.noDescriptionsLeft(); + } + } + + public void fireNewDescriptionSelected(int index){ + for(LearningManagerListener listener : listeners){ + listener.newDescriptionSelected(index); + } + } + +} Added: trunk/src/dl-learner/org/dllearner/tools/ore/LearningManagerListener.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/LearningManagerListener.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/LearningManagerListener.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -0,0 +1,13 @@ +package org.dllearner.tools.ore; + +import java.util.List; + +import org.dllearner.learningproblems.EvaluatedDescriptionClass; + +public interface LearningManagerListener { + + public abstract void newDescriptionSelected(int index); + public abstract void noDescriptionsLeft(); + public abstract void newDescriptionsAdded(List<EvaluatedDescriptionClass> descriptions); + +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -66,12 +66,6 @@ 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; @@ -288,14 +282,6 @@ return minInstanceCount; } - public void setLearningMode(int mode){ - learnMode = mode; - } - - public int getLearningMode(){ - return learnMode; - } - public void init(){ this.setLearningProblem(); @@ -328,14 +314,6 @@ 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. Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTable.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTable.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -0,0 +1,64 @@ +package org.dllearner.tools.ore.ui; + +import java.awt.Component; +import java.awt.event.MouseEvent; + +import javax.swing.ImageIcon; +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.TableCellRenderer; + +import org.dllearner.learningproblems.EvaluatedDescriptionClass; +import org.jdesktop.swingx.JXTable; + +public class MarkableClassExpressionsTable extends JXTable{ + /** + * + */ + private static final long serialVersionUID = 4193878042914394758L; + private ImageIcon icon = new ImageIcon("src/dl-learner/org/dllearner/tools/ore/untoggled.gif"); + + public MarkableClassExpressionsTable(){ + super(new MarkableClassExpressionsTableModel()); + 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 clear(){ + ((MarkableClassExpressionsTableModel)getModel()).clear(); + } + +} Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTableModel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassExpressionsTableModel.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -0,0 +1,86 @@ +package org.dllearner.tools.ore.ui; + +import java.util.ArrayList; +import java.util.List; + +import javax.swing.table.AbstractTableModel; + +import org.dllearner.learningproblems.EvaluatedDescriptionClass; +import org.dllearner.tools.ore.LearningManager; +import org.dllearner.tools.ore.LearningManagerListener; + +public class MarkableClassExpressionsTableModel extends AbstractTableModel implements LearningManagerListener{ + /** + * + */ + private static final long serialVersionUID = 5773843275446469889L; + + private List<EvaluatedDescriptionClass> descriptions; + private int selectedRowIndex = 0; + + public MarkableClassExpressionsTableModel(){ + descriptions = new ArrayList<EvaluatedDescriptionClass>(); + LearningManager.getInstance().addListener(this); + } + + @Override + public int getColumnCount() { + return 2; + } + + @Override + public int getRowCount() { + return descriptions.size(); + } + + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + if(columnIndex == 0){ + if(rowIndex == selectedRowIndex){ + return ">"; + } else { + return ""; + } + } else { + return descriptions.get(rowIndex).getDescription(); + } + } + + public void clear(){ + descriptions.clear(); + fireTableDataChanged(); + } + + private void addDescriptions(List<EvaluatedDescriptionClass> descriptions){ + this.descriptions.clear(); + this.descriptions.addAll(descriptions); + fireTableDataChanged(); + } + + public EvaluatedDescriptionClass getSelectedDescription(int rowIndex){ + return descriptions.get(rowIndex); + } + + public void setSelectedDescription(int rowIndex){ + int oldRowIndex = selectedRowIndex; + selectedRowIndex = rowIndex; + fireTableRowsUpdated(oldRowIndex, selectedRowIndex); + } + + @Override + public void newDescriptionSelected(int index) { + setSelectedDescription(index); + + } + + @Override + public void noDescriptionsLeft() { + // TODO Auto-generated method stub + + } + + @Override + public void newDescriptionsAdded(List<EvaluatedDescriptionClass> descriptions) { + addDescriptions(descriptions); + } +} Copied: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTable.java (from rev 1876, trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTable.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTable.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -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 MarkableClassesTable extends JXTable { + + /** + * + */ + private static final long serialVersionUID = 4193878042914394758L; + private ImageIcon icon = new ImageIcon("src/dl-learner/org/dllearner/tools/ore/untoggled.gif"); + + public MarkableClassesTable(){ + super(new MarkableClassesTableModel()); + 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){ + ((MarkableClassesTableModel)getModel()).addClasses(classes); + } + + public NamedClass getSelectedValue(){ + return ((MarkableClassesTableModel)getModel()).getSelectedValue(getSelectedRow()); + } + + public void clear(){ + ((MarkableClassesTableModel)getModel()).clear(); + } + + public void setSelectedClass(int rowIndex){ + ((MarkableClassesTableModel)getModel()).setSelectedClass(rowIndex); + } + +} Copied: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTableModel.java (from rev 1876, trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTableModel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableClassesTableModel.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -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 MarkableClassesTableModel extends AbstractTableModel { + + /** + * + */ + private static final long serialVersionUID = 5773843275446469889L; + + private List<NamedClass> classes; + private int selectedRowIndex = 0; + + public MarkableClassesTableModel(){ + 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); + } + +} Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTable.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -1,78 +0,0 @@ -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); - } - -} Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/MarkableTableModel.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -1,69 +0,0 @@ -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/SelectableClassExpressionsTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTable.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTable.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -5,7 +5,6 @@ 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; @@ -64,7 +63,7 @@ return ((SelectableClassExpressionsTableModel)getModel()).getSelectedValue(getSelectedRow()); } - public List<Description> getSelecetdDescriptions(){ + public List<EvaluatedDescriptionClass> getSelectedDescriptions(){ return ((SelectableClassExpressionsTableModel)getModel()).getSelectedDescriptions(); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/SelectableClassExpressionsTableModel.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -90,11 +90,13 @@ public void clear(){ resultList.clear(); + selectionList.clear(); fireTableDataChanged(); } public void addResults(List<EvaluatedDescriptionClass> resultList){ this.resultList.clear(); + this.selectionList.clear(); this.resultList.addAll(resultList); for(int i = 0; i < resultList.size(); i++){ selectionList.add(i, Boolean.FALSE); @@ -111,11 +113,11 @@ return resultList.indexOf(e); } - public List<Description> getSelectedDescriptions(){ - List<Description> selected = new ArrayList<Description>(); + public List<EvaluatedDescriptionClass> getSelectedDescriptions(){ + List<EvaluatedDescriptionClass> selected = new ArrayList<EvaluatedDescriptionClass>(); for(int i = 0; i < selectionList.size(); i++){ if(selectionList.get(i).equals(Boolean.TRUE)){ - selected.add(resultList.get(i).getDescription()); + selected.add(resultList.get(i)); } } 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-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -22,9 +22,12 @@ import java.awt.event.ActionListener; +import java.util.List; import javax.swing.JOptionPane; +import org.dllearner.learningproblems.EvaluatedDescriptionClass; +import org.dllearner.tools.ore.LearningManager; import org.dllearner.tools.ore.OREManager; import org.dllearner.tools.ore.ui.wizard.descriptors.AutoLearnPanelDescriptor; import org.dllearner.tools.ore.ui.wizard.descriptors.ClassChoosePanelDescriptor; @@ -167,20 +170,26 @@ learnDescriptor.resetPanel(); learnDescriptor.fillClassesTable(); } -// else if(currentPanelDescriptor.getPanelDescriptorIdentifier().equals(LearningPanelDescriptor.IDENTIFIER)){ -// if(OREManager.getInstance().getNewClassDescription().getAccuracy() == 1.0){ -// nextPanelDescriptor = SavePanelDescriptor.IDENTIFIER; -// } else { -// nextPanelDescriptor = RepairPanelDescriptor.IDENTIFIER; -// RepairPanelDescriptor repair = ((RepairPanelDescriptor) model -// .getPanelHashMap().get(nextPanelDescriptor)); -// repair.refreshExampleLists(); -// } + else if(currentPanelDescriptor.getPanelDescriptorIdentifier().equals(AutoLearnPanelDescriptor.IDENTIFIER)){ + AutoLearnPanelDescriptor descriptor = (AutoLearnPanelDescriptor)currentPanelDescriptor; + List<EvaluatedDescriptionClass> descriptions = descriptor.getSelectedDescriptions(); + if(!descriptions.isEmpty()){ + LearningManager.getInstance().setNewDescriptions(descriptions); + } + } + else if(nextPanelDescriptor.equals(RepairPanelDescriptor.IDENTIFIER)){ RepairPanelDescriptor repair = ((RepairPanelDescriptor) model .getPanelHashMap().get(nextPanelDescriptor)); - repair.refreshExampleLists(); + if(LearningManager.getInstance().getLearningMode() == LearningManager.AUTO_LEARN_MODE){ + repair.setManualPanel(false); + repair.fillExamplesLists(); + } else { + repair.setManualPanel(true); + repair.fillExamplesLists(); + } + 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-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -18,9 +18,9 @@ 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.LearningManager; import org.dllearner.tools.ore.OREManager; import org.dllearner.tools.ore.TaskManager; import org.dllearner.tools.ore.ui.wizard.WizardPanelDescriptor; @@ -43,6 +43,9 @@ private EquivalentLearningTask equivalentLearningTask; private SuperClassLearningTask superLearningTask; + private Timer timer; + private LearningAlgorithm la; + private SwingWorker<Void, List<? extends EvaluatedDescription>> currentLearningTask; private int currentClassIndex = 0; @@ -65,7 +68,6 @@ if(getSelectedDescriptions().isEmpty()){ return SavePanelDescriptor.IDENTIFIER; } else { - OREManager.getInstance().setNewDescriptions(getSelectedDescriptions()); return RepairPanelDescriptor.IDENTIFIER; } @@ -90,15 +92,17 @@ TaskManager.getInstance().getStatusBar().setMessage("Learning equivalent class expressions..."); getWizard().getDialog().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); equivalentLearningTask = new EquivalentLearningTask(); + currentLearningTask = equivalentLearningTask; equivalentLearningTask.addPropertyChangeListener(TaskManager.getInstance().getStatusBar()); equivalentLearningTask.execute(); } - public void learnSubClassExpressions(){ + public void learnSuperClassExpressions(){ TaskManager.getInstance().getStatusBar().setMessage("Learning superclass expressions..."); TaskManager.getInstance().getStatusBar().setProgress(0); getWizard().getDialog().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); superLearningTask = new SuperClassLearningTask(); + currentLearningTask = superLearningTask; superLearningTask.addPropertyChangeListener(TaskManager.getInstance().getStatusBar()); superLearningTask.execute(); } @@ -111,7 +115,7 @@ currentClassIndex++; } - public List<Description> getSelectedDescriptions(){ + public List<EvaluatedDescriptionClass> getSelectedDescriptions(){ return autoLearnPanel.getSelectedDescriptions(); } @@ -224,7 +228,9 @@ if(result.isEmpty()){ EvaluatedDescriptionClass best = (EvaluatedDescriptionClass)la.getCurrentlyBestEvaluatedDescription(); } - learnSubClassExpressions(); + + learnSuperClassExpressions(); + } @Override @@ -248,7 +254,7 @@ private final double threshold = OREManager.getInstance().getThreshold(); @Override - public Void doInBackground() { + public Void doInBackground() {System.out.println("Learning super class for " + OREManager.getInstance().getCurrentClass2Learn()); OREManager.getInstance().setLearningType("superClass"); OREManager.getInstance().setLearningProblem(); OREManager.getInstance().setLearningAlgorithm(); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -39,6 +39,7 @@ import javax.swing.event.ListSelectionListener; import org.dllearner.core.owl.NamedClass; +import org.dllearner.tools.ore.LearningManager; import org.dllearner.tools.ore.OREManager; import org.dllearner.tools.ore.OREManagerListener; import org.dllearner.tools.ore.TaskManager; @@ -209,8 +210,10 @@ public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("auto")){ classChoosePanel.setAutoLearningPanel(true); + LearningManager.getInstance().setLearningMode(LearningManager.AUTO_LEARN_MODE); } else { classChoosePanel.setAutoLearningPanel(false); + LearningManager.getInstance().setLearningMode(LearningManager.MANUAL_LEARN_MODE); retrieveClasses(); } setNextButtonAccordingToConceptSelected(); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/RepairPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/RepairPanelDescriptor.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/RepairPanelDescriptor.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -25,6 +25,7 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.HashSet; +import java.util.List; import java.util.Set; import javax.swing.JButton; @@ -32,6 +33,9 @@ import javax.swing.event.ListSelectionListener; import org.dllearner.core.owl.Individual; +import org.dllearner.learningproblems.EvaluatedDescriptionClass; +import org.dllearner.tools.ore.LearningManager; +import org.dllearner.tools.ore.LearningManagerListener; import org.dllearner.tools.ore.OREManager; import org.dllearner.tools.ore.OntologyModifier; import org.dllearner.tools.ore.ui.RepairDialog; @@ -42,11 +46,11 @@ /** - * Wizard panel descriptor where it is possible torepair wrong examples. + * Wizard panel descriptor where it is possible to repair wrong examples. * @author Lorenz Buehmann * */ -public class RepairPanelDescriptor extends WizardPanelDescriptor implements ActionListener, ListSelectionListener, MouseListener{ +public class RepairPanelDescriptor extends WizardPanelDescriptor implements ActionListener, ListSelectionListener, MouseListener, LearningManagerListener{ public static final String IDENTIFIER = "REPAIR_PANEL"; public static final String INFORMATION = "In this panel all positive and negative examples, that cause failures are shown in the list above. " @@ -66,11 +70,12 @@ repairPanel.addSelectionListeners(this); repairPanel.addMouseListeners(this); + LearningManager.getInstance().addListener(this); + setPanelDescriptorIdentifier(IDENTIFIER); setPanelComponent(repairPanel); ontologyChanges = new HashSet<OWLOntologyChange>(); - } @Override @@ -80,7 +85,12 @@ @Override public Object getBackPanelDescriptor() { - return ManualLearnPanelDescriptor.IDENTIFIER; + if(LearningManager.getInstance().getLearningMode() == LearningManager.MANUAL_LEARN_MODE){ + return ManualLearnPanelDescriptor.IDENTIFIER; + } else { + return AutoLearnPanelDescriptor.IDENTIFIER; + } + } @Override @@ -91,63 +101,68 @@ /** * Adds the wrong negative and positive examples to the lists. */ - public void refreshExampleLists(){ - + public void fillExamplesLists(){ repairPanel.getPosFailureTable().addIndividuals(OREManager.getInstance().getPositiveFailureExamples()); repairPanel.getNegFailureTable().addIndividuals(OREManager.getInstance().getNegativeFailureExamples()); - } + } + + public void setManualPanel(boolean value){ + repairPanel.setManualStyle(value); + } - /** * Method to control actions by button pressed. */ public void actionPerformed(ActionEvent event) { - modi = OREManager.getInstance().getModifier(); - String actionType = ((JButton) event.getSource()).getParent().getName(); - if(actionType.equals("negative")){ - Individual ind = repairPanel.getNegFailureTable().getSelectedIndividual(); - if(event.getActionCommand().equals("negRepair")){ - RepairDialog negDialog = new RepairDialog(ind, getWizard().getDialog(), "neg"); - int returncode = negDialog.showDialog(); + if(event.getActionCommand().equals("next")){ + LearningManager.getInstance().setNextDescription(); + } else { + modi = OREManager.getInstance().getModifier(); + String actionType = ((JButton) event.getSource()).getParent().getName(); + if(actionType.equals("negative")){ + Individual ind = repairPanel.getNegFailureTable().getSelectedIndividual(); + if(event.getActionCommand().equals("negRepair")){ + RepairDialog negDialog = new RepairDialog(ind, getWizard().getDialog(), "neg"); + int returncode = negDialog.showDialog(); + if(returncode == 2){ + ontologyChanges.addAll(negDialog.getAllChanges()); + } else if(returncode == 3){ + ontologyChanges.addAll(negDialog.getAllChanges()); + repairPanel.getNegFailureTable().removeIndividual(ind); + } + } else if(event.getActionCommand().equals("negAdd")){ + ontologyChanges.addAll(modi.addClassAssertion(ind, OREManager.getInstance().getCurrentClass2Learn())); + repairPanel.getNegFailureTable().removeIndividual(ind); + + } else if(event.getActionCommand().equals("negDelete")){ + ontologyChanges.addAll(modi.deleteIndividual(ind)); + repairPanel.getNegFailureTable().removeIndividual(ind); + + } + } else if(actionType.equals("positive")){ + Individual ind = repairPanel.getPosFailureTable().getSelectedIndividual(); + if(event.getActionCommand().equals("posRepair")){ + RepairDialog posDialog = new RepairDialog(ind, getWizard().getDialog(), "pos"); + int returncode = posDialog.showDialog(); if(returncode == 2){ - ontologyChanges.addAll(negDialog.getAllChanges()); + ontologyChanges.addAll(posDialog.getAllChanges()); } else if(returncode == 3){ - ontologyChanges.addAll(negDialog.getAllChanges()); - repairPanel.getNegFailureTable().removeIndividual(ind); + ontologyChanges.addAll(posDialog.getAllChanges()); + repairPanel.getPosFailureTable().removeIndividual(ind); } - } else if(event.getActionCommand().equals("negAdd")){ + } else if(event.getActionCommand().equals("posRemove")){ ontologyChanges.addAll(modi.addClassAssertion(ind, OREManager.getInstance().getCurrentClass2Learn())); - repairPanel.getNegFailureTable().removeIndividual(ind); + repairPanel.getPosFailureTable().removeIndividual(ind); - } else if(event.getActionCommand().equals("negDelete")){ + } else if(event.getActionCommand().equals("posDelete")){ ontologyChanges.addAll(modi.deleteIndividual(ind)); - repairPanel.getNegFailureTable().removeIndividual(ind); - - } - } else if(actionType.equals("positive")){ - Individual ind = repairPanel.getPosFailureTable().getSelectedIndividual(); - if(event.getActionCommand().equals("posRepair")){ - RepairDialog posDialog = new RepairDialog(ind, getWizard().getDialog(), "pos"); - int returncode = posDialog.showDialog(); - if(returncode == 2){ - ontologyChanges.addAll(posDialog.getAllChanges()); - } else if(returncode == 3){ - ontologyChanges.addAll(posDialog.getAllChanges()); repairPanel.getPosFailureTable().removeIndividual(ind); + } - } else if(event.getActionCommand().equals("posRemove")){ - ontologyChanges.addAll(modi.addClassAssertion(ind, OREManager.getInstance().getCurrentClass2Learn())); - repairPanel.getPosFailureTable().removeIndividual(ind); - - } else if(event.getActionCommand().equals("posDelete")){ - ontologyChanges.addAll(modi.deleteIndividual(ind)); - repairPanel.getPosFailureTable().removeIndividual(ind); - - } + } } - } /** @@ -214,6 +229,24 @@ // TODO Auto-generated method stub } + + @Override + public void newDescriptionSelected(int index) { + fillExamplesLists(); + repairPanel.repaint(); + } + + @Override + public void noDescriptionsLeft() { + repairPanel.setNextButtonEnabled(false); + + } + + @Override + public void newDescriptionsAdded(List<EvaluatedDescriptionClass> descriptions) { + repairPanel.setNextButtonEnabled(true); + + } } 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-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/SavePanelDescriptor.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -23,6 +23,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import org.dllearner.tools.ore.LearningManager; import org.dllearner.tools.ore.OREManager; import org.dllearner.tools.ore.OntologyModifier; import org.dllearner.tools.ore.ui.wizard.WizardPanelDescriptor; @@ -63,7 +64,7 @@ @Override public Object getBackPanelDescriptor() { - if(OREManager.getInstance().getLearningMode() == OREManager.MANUAL_LEARN_MODE){ + if(LearningManager.getInstance().getLearningMode() == LearningManager.MANUAL_LEARN_MODE){ if(OREManager.getInstance().getNewClassDescription().getAccuracy() == 1.0){ return ManualLearnPanelDescriptor.IDENTIFIER; } else { 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-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -20,11 +20,11 @@ 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.GraphicalCoveragePanel; -import org.dllearner.tools.ore.ui.MarkableTable; +import org.dllearner.tools.ore.ui.MarkableClassesTable; import org.dllearner.tools.ore.ui.SelectableClassExpressionsTable; public class AutoLearnPanel extends JPanel { @@ -35,7 +35,7 @@ private static final long serialVersionUID = -5204979906041331328L; // private ClassesTable classesTable; - private MarkableTable classesTable; + private MarkableClassesTable classesTable; private JPanel superPanel; private JPanel equivalentPanel; @@ -71,7 +71,7 @@ } private JComponent createClassesPanel(){ - classesTable = new MarkableTable(); + classesTable = new MarkableClassesTable(); classesTable.setBorder(null); JScrollPane classesScroll = new JScrollPane(classesTable); classesScroll.setBorder(new MatteBorder(null)); @@ -187,10 +187,10 @@ classesTable.clear(); } - public List<Description> getSelectedDescriptions(){ - List<Description> selected = new ArrayList<Description>(); - selected.addAll(equivalentClassResultsTable.getSelecetdDescriptions()); - selected.addAll(superClassResultsTable.getSelecetdDescriptions()); + public List<EvaluatedDescriptionClass> getSelectedDescriptions(){ + List<EvaluatedDescriptionClass> selected = new ArrayList<EvaluatedDescriptionClass>(); + selected.addAll(equivalentClassResultsTable.getSelectedDescriptions()); + selected.addAll(superClassResultsTable.getSelectedDescriptions()); return selected; } @@ -202,7 +202,7 @@ if (!e.getValueIsAdjusting() && equivalentClassResultsTable.getSelectedRow() >= 0){ EvaluatedDescriptionClass selectedClassExpression = equivalentClassResultsTable.getSelectedValue(); - + OREManager.getInstance().setNewClassDescription(selectedClassExpression); equivalentClassCoveragePanel.setNewClassDescription(selectedClassExpression); if(!selectedClassExpression.isConsistent()){ equivalentInconsistencyLabel.setText(INCONSISTENCY_WARNING); @@ -222,7 +222,7 @@ if (!e.getValueIsAdjusting() && superClassResultsTable.getSelectedRow() >= 0){ EvaluatedDescriptionClass selectedClassExpression = superClassResultsTable.getSelectedValue(); - + OREManager.getInstance().setNewClassDescription(selectedClassExpression); superClassCoveragePanel.setNewClassDescription(selectedClassExpression); if(!selectedClassExpression.isConsistent()){ superInconsistencyLabel.setText(INCONSISTENCY_WARNING); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/RepairPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/RepairPanel.java 2009-10-03 11:29:04 UTC (rev 1876) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/RepairPanel.java 2009-10-04 11:54:44 UTC (rev 1877) @@ -20,6 +20,7 @@ package org.dllearner.tools.ore.ui.wizard.panels; +import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; @@ -27,6 +28,7 @@ import java.awt.event.MouseListener; import javax.swing.JButton; +import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; @@ -34,6 +36,7 @@ import javax.swing.event.ListSelectionListener; import org.dllearner.tools.ore.ui.IndividualsTable; +import org.dllearner.tools.ore.ui.MarkableClassExpressionsTable; /** * JPanel for repairing action. @@ -44,40 +47,82 @@ private static final long serialVersionUID = -7411197973240429632L; - private JPanel posPanel; - private JScrollPane posScrollPane; private IndividualsTable posTable; private JButton posRepairButton; private JButton posDeleteButton; private JButton posRemoveButton; - private JPanel negPanel; - private JScrollPane negScrollPane; private IndividualsTable negTable; private JButton negRepairButton; private JButton negDeleteButton; private JButton negAddButton; - private GridBagConstraints c; + private JButton nextButton; + private MarkableClassExpressionsTable descriptionsTable; public RepairPanel() { - createUI(); + setLayout(new GridBagLayout()); + createAutoUI(); } - private void createUI(){ - setLayout(new GridBagLayout()); - c = new GridBagConstraints(); + private void createAutoUI(){ + GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; + c.gridx = 0; + c.gridy = 0; + c.gridwidth = GridBagConstraints.REMAINDER; + add(createDescriptionsPanel(), c); + + c.gridwidth = 1; + c.gridy = 1; + c.gridx = 0; c.weightx = 0.5; c.weighty = 0.5; - createPosPanel(); + add(createPosPanel(), c); c.gridx = 1; - createNegPanel(); + add(createNegPanel(), c); + + c.gridy = 2; + nextButton = new JButton("Next"); + nextButton.setActionCommand("next"); + add(nextButton, c); } - private void createPosPanel(){ - posPanel = new JPanel(); + private void createManualUI(){ + GridBagConstraints c = new GridBagConstraints(); + c.fill = GridBagConstraints.BOTH; + c.gridx = 0; + c.gridy = 0; + c.gridwidth = GridBagConstraints.REMAINDER; + add(createDescriptionsPanel(), c); + + c.gridwidth = 1; + c.gridy = 1; + c.gridx = 0; + c.weightx = 0.5; + c.weighty = 0.5; + add(createPosPanel(), c); + c.gridx = 1; + add(createNegPanel(), c); + + c.gridy = 2; + nextButton = new JButton("Next"); + nextButton.setActionCommand("next"); +// add(nextButton, c); + } + + private JComponent createDescriptionsPanel(){ + JPanel panel = new JPanel(new BorderLayout()); + descriptionsTable = new MarkableClassExpressionsTable(); + JScrollPane scroll = new JScrollPane(descriptionsTable); + scroll.setBorder(null); + panel.add(scroll); + return panel; + } + + private JComponent createPosPanel(){ + JPanel posPanel = new JPanel(); posPanel.setName("positive"); posPanel.setLayout(new GridBagLayout()); posPanel.setBorder(new TitledBorder("Positive examples")); @@ -100,17 +145,16 @@ posPanel.add(buttonPanel, gbc); posTable = new IndividualsTable(); - posScrollPane = new JScrollPane(posTable); gbc.fill = GridBagConstraints.BOTH; gbc.weightx = 1; gbc.weighty = 1; - posPanel.add(posScrollPane, gbc); + posPanel.add(new JScrollPane(posTable), gbc); - add(posPanel, c); + return posPanel; } - private void createNegPanel(){ - negPanel = new JPanel(); + private JComponent createNegPanel(){ + JPanel negPanel = new JPanel(); negPanel.setName("negative"); negPanel.setLayout(new GridBagLayout()); negPanel.setBorder(new TitledBorder("Negative examples")); @@ -118,11 +162,10 @@ GridBagConstraints gbc = new GridBagConstraints(); negTable = new IndividualsTable(); - negScrollPane = new JScrollPane(negTable); gbc.fill = GridBagConstraints.BOTH; gbc.weightx = 1; gbc.weighty = 1; - negPanel.add(negScrollPane, gbc); + negPanel.add(new JScrollPane(negTable), gbc); JPanel buttonPanel = new JPanel(); buttonPanel.setName("negative"); @@ -142,7 +185,7 @@ gbc.anchor = GridBagConstraints.NORTH; negPanel.add(buttonPanel, gbc); - add(negPanel, c); + return negPanel; } /** @@ -161,6 +204,20 @@ return negTable; } + public void setNextButtonEnabled(boolean enabled){ + nextButton.setEnabled(enabled); + } + + public void setManualStyle(boolean value){ + removeAll(); + if(value){ + createManualUI(); + } else { + createAutoUI(); + } + repaint(); + } + /** * adds the list selection listener for lists. * @param l list selection listener @@ -178,9 +235,12 @@ posRemoveButton.addActionListener(aL); posDeleteButton.addActionListener(aL); posRepairButton.addActionListener(aL); + negAddButton.addActionListener(aL); negDeleteButton.addActionListener(aL); negRepairButton.addActionListener(aL); + + nextButton.addActionListener(aL); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |