From: <lor...@us...> - 2008-06-04 17:02:47
|
Revision: 939 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=939&view=rev Author: lorenz_b Date: 2008-06-04 10:02:14 -0700 (Wed, 04 Jun 2008) Log Message: ----------- added noisePercentage TextField in LearningPanel added deleteInstance added removeClassAssertion added moveInstance Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java trunk/src/dl-learner/org/dllearner/tools/ore/OntologyModifierOWLAPI.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/WizardController.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/NegExampleRepairDialog.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/tools/ore/MoveDialog.java Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java 2008-06-04 17:02:14 UTC (rev 939) @@ -104,35 +104,7 @@ return loadingLabel; } -// class BlinkLabel extends JLabel implements Runnable{ -// private boolean blinking = false; -// -// public void start(){ -// blinking = true; -// new Thread(this).start(); -// } -// public void stop(){ -// blinking = false; -// setForeground(Color.black); -// -// } -// public void run(){ -// while(blinking){ -// setText("Loading Concept"); -// -// //setForeground(Color.red); -// try { -// Thread.sleep(300); -// } catch (InterruptedException e) { -// return; -// } -// setText(""); -// -// } -// if(!blinking) -// setText("Done! Select Concept and press 'Next'"); -// } -// } + Modified: trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java 2008-06-04 17:02:14 UTC (rev 939) @@ -102,7 +102,7 @@ for (NamedClass cl : ind){ publish(cl); nextPanel.panel3.getModel().addElement(cl); - System.out.println(cl.toString()); + } return ind; } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java 2008-06-04 17:02:14 UTC (rev 939) @@ -3,6 +3,8 @@ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; import java.awt.geom.Ellipse2D; import java.awt.geom.RoundRectangle2D; @@ -12,7 +14,7 @@ import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JSlider; +import javax.swing.JTextField; import javax.swing.event.ListSelectionListener; import org.jdesktop.swingx.JXBusyLabel; @@ -34,6 +36,8 @@ private JButton startButton; private JButton stopButton; + private JTextField noiseField; + @SuppressWarnings("unchecked") public LearningPanel() { @@ -81,17 +85,29 @@ resultList = new JList(model); // resultList.setCellRenderer(new ColumnListCellRenderer()); - scroll.setPreferredSize(new Dimension(400, 400)); + scroll.setPreferredSize(new Dimension(900, 400)); scroll.setViewportView(resultList); - JSlider noise = new JSlider(JSlider.HORIZONTAL, 0, 100, 0); - noise.setMajorTickSpacing(50); - noise.setMinorTickSpacing(25); - noise.setPaintTicks(true); - noise.setPaintLabels(true); + noiseField = new JTextField("noise"); + noiseField.setText("0.0"); + + noiseField.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + char c = e.getKeyChar(); + if (!((Character.isDigit(c) || + (c == KeyEvent.VK_BACK_SPACE) || + (c == KeyEvent.VK_DELETE)))) { + getToolkit().beep(); + e.consume(); + } + + } + }); + contentPanel1.add(scroll); - contentPanel1.add(noise); + contentPanel1.add(noiseField); @@ -135,6 +151,9 @@ resultList.addListSelectionListener(l); } + public double getNoise(){ + return Double.parseDouble(noiseField.getText()); + } } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java 2008-06-04 17:02:14 UTC (rev 939) @@ -54,26 +54,35 @@ class ResultSwingWorker extends SwingWorker<List<Description>, List<Description>> { LearningAlgorithm la; + @Override public List<Description> doInBackground() { panel4.getResultList().setCellRenderer(new ColumnListCellRenderer(getWizardModel().getOre())); panel4.getLoadingLabel().setBusy(true); panel4.getStatusLabel().setText("Learning"); - la = getWizardModel().getOre().start(); + + getWizardModel().getOre().setNoise(panel4.getNoise()); + + la = getWizardModel().getOre().start(); + + + + timer = new Timer(); timer.schedule(new TimerTask() { @SuppressWarnings("unchecked") @Override public void run() { + publish(getWizardModel().getOre().getLearningResults(10)); + } }, 0, 1000); - List<Description> result = getWizardModel().getOre() - .getLearningResults(5); + List<Description> result = getWizardModel().getOre().getLearningResults(10); return result; } @@ -103,8 +112,6 @@ protected void process(List<List<Description>> resultLists) { panel4.getModel().clear(); for (List<Description> list : resultLists) { - for( Description d : list) - System.out.println(d); updateList(list); } } @@ -115,8 +122,6 @@ public void run() { panel4.getModel().clear(); for (Description d : result) { - System.err.println(d+"=="+getWizardModel().getOre().getCorrectness(d)); - panel4.getModel().addElement(d); } @@ -176,6 +181,7 @@ getWizardModel().getOre().getLa().stop(); panel4.getStartButton().setEnabled(true); panel4.getStatusLabel().setText("Algorithm aborted"); + panel4.getLoadingLabel().setBusy(false); } @@ -186,7 +192,7 @@ setNextButtonAccordingToConceptSelected(); if (!e.getValueIsAdjusting()) getWizardModel().getOre().setConceptToAdd((Description)(panel4.getResultList().getSelectedValue())); - System.out.println(panel4.getResultList().getSelectedValue()); + } Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/MoveDialog.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/MoveDialog.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/MoveDialog.java 2008-06-04 17:02:14 UTC (rev 939) @@ -1,106 +0,0 @@ -package org.dllearner.tools.ore; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Set; - -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.DefaultListModel; -import javax.swing.JButton; -import javax.swing.JDialog; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; - -import org.dllearner.core.owl.NamedClass; - -public class MoveDialog extends JDialog{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - Box buttonBox; - JButton okButton; - JButton cancelButton; - JPanel buttonPanel; - JPanel listPanel; - JScrollPane scroll; - JList conceptList; - Set<NamedClass> allConcepts; - NamedClass selectedValue;; - - - public MoveDialog(Set<NamedClass> allConcepts, JDialog dialog){ - super(dialog, "Auswahl", true); - this.allConcepts = allConcepts; - - } - - public void init(){ - setSize(500, 500); - buttonBox = new Box(BoxLayout.X_AXIS); - - okButton = new JButton("Ok"); - okButton.addActionListener(new ActionListener(){ - - public void actionPerformed(ActionEvent e) { - if(e.getActionCommand().equals("Ok")){ - - selectedValue = (NamedClass)conceptList.getSelectedValue(); - - dispose(); - } - - } - }); - cancelButton = new JButton("Cancel"); - cancelButton.addActionListener(new ActionListener(){ - - public void actionPerformed(ActionEvent e) { - if(e.getActionCommand().equals("Cancel")){ - - - dispose(); - } - - } - }); - - buttonBox.add(okButton); - buttonBox.add(Box.createHorizontalStrut(30)); - buttonBox.add(cancelButton); - - buttonPanel = new JPanel(); - buttonPanel.setLayout(new BorderLayout()); - buttonPanel.add(buttonBox, java.awt.BorderLayout.EAST); - - listPanel = new JPanel(); - DefaultListModel model = new DefaultListModel(); - for (NamedClass cl : allConcepts) { - model.addElement(cl); - - } - - scroll = new JScrollPane(); - conceptList = new JList(model); - scroll.setPreferredSize(new Dimension(400, 400)); - scroll.setViewportView(conceptList); - listPanel.add(scroll); - - getContentPane().add(buttonPanel, java.awt.BorderLayout.SOUTH); - getContentPane().add(listPanel, java.awt.BorderLayout.CENTER); - - setVisible(true); - - } - - public NamedClass getSelectedValue(){ - return selectedValue; - } - -} Copied: trunk/src/dl-learner/org/dllearner/tools/ore/NegExampleRepairDialog.java (from rev 928, trunk/src/dl-learner/org/dllearner/tools/ore/MoveDialog.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/NegExampleRepairDialog.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/NegExampleRepairDialog.java 2008-06-04 17:02:14 UTC (rev 939) @@ -0,0 +1,223 @@ +package org.dllearner.tools.ore; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.GridLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Set; + +import javax.swing.BorderFactory; +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.JTextArea; +import javax.swing.UIManager; +import javax.swing.border.EmptyBorder; +import javax.swing.border.TitledBorder; + +import org.dllearner.core.owl.Individual; +import org.dllearner.core.owl.NamedClass; +import org.dllearner.reasoning.OWLAPIReasoner; + +public class NegExampleRepairDialog extends JDialog implements ActionListener{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + + private JPanel statsPanel; + private JPanel actionsPanel; + private JPanel ok_cancelPanel; + + private JButton okButton; + private JButton cancelButton; + + + private JTextArea classesField; + private JScrollPane scrollPane; + + private ORE ore; + private Individual ind; + private OWLAPIReasoner reasoner; + + public NegExampleRepairDialog(Individual ind, JDialog dialog, ORE ore){ + super(dialog, "Auswahl", true); + this.ind = ind; + this.ore = ore; + this.reasoner = ore.reasoner; + init(); + } + + public void init(){ + setSize(700, 700); + setLayout(new GridLayout(3, 0)); + + statsPanel = new JPanel(); + statsPanel.setBorder(new TitledBorder("stats")); + + getContentPane().add(statsPanel); + + GridBagLayout gbl = new GridBagLayout(); + statsPanel.setLayout(gbl); + + + GridBagConstraints gbc = new GridBagConstraints(); + JLabel descLb = new JLabel("Description:"); + JLabel indLb = new JLabel("Individual:"); + JLabel classLb = new JLabel("Classes:"); + + + JLabel descLb1 = new JLabel(ore.conceptToAdd.toString()); + JLabel indLb1 = new JLabel(ind.getName()); + Set<NamedClass> t = reasoner.getConcepts(ind); + classesField = new JTextArea(); + String classes = new String(); + for(NamedClass nc : t) + classes += nc.getName() +"\n"; + classesField.setText(classes); + + scrollPane = new JScrollPane(); + scrollPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); + scrollPane.setViewportBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); + scrollPane.setPreferredSize(new Dimension(150,100)); + classesField.setBackground(UIManager.getDefaults().getColor("control")); + classesField.setColumns(20); + classesField.setEditable(false); + classesField.setLineWrap(true); + classesField.setRows(5); + classesField.setWrapStyleWord(true); + scrollPane.setViewportView(classesField); + + gbc.gridx = 0; // first column + gbc.gridy = 0; // first row + gbc.gridwidth = 1; // occupies only one column + gbc.gridheight = 1; // occupies only one row + gbc.weightx = 20; // relative horizontal size - first column + gbc.weighty = 10; // relative vertical size - first row + gbc.fill = GridBagConstraints.NONE; // stay as small as possible + // suite for labels + gbc.anchor = GridBagConstraints.CENTER; // center aligning + //inform the layout about the control to be added and its constraints: + gbl.setConstraints(descLb, gbc); + statsPanel.add(descLb); //add the JLabel to the JPanel object + + gbc.gridx = 0; // first column + gbc.gridy = 1; // second row + gbc.gridwidth = 1; // occupies only one column + gbc.gridheight = 1; // occupies only one row + gbc.weightx = 0; // !!! horizontal size for the column is defined already! + gbc.weighty = 10; // relative vertical size - second row + gbc.fill = GridBagConstraints.NONE; // stay as small as possible, suites for labels + gbc.anchor = GridBagConstraints.CENTER; // center aligning + //inform the layout about the control to be added and its constraints: + gbl.setConstraints(indLb, gbc); + statsPanel.add(indLb); + + gbc.gridx = 0; // first column + gbc.gridy = 2; // third row + gbc.gridwidth = 1; // occupies only one column + gbc.gridheight = 1; // occupies only one row + gbc.weightx = 0; // !!! horizontal size for the column is defined already! + gbc.weighty = 10; // relative vertical size - second row + gbc.fill = GridBagConstraints.NONE; // stay as small as possible, suites for labels + gbc.anchor = GridBagConstraints.CENTER; // center aligning + //inform the layout about the control to be added and its constraints: + gbl.setConstraints(classLb, gbc); + statsPanel.add(classLb); + + gbc.gridx = 1; // second column + gbc.gridy = 0; // first row + gbc.gridwidth = 1; // occupies only one column + gbc.gridheight = 1; // occupies only one row + gbc.weightx = 100; // horizontal size - second column + gbc.weighty = 0; // !!! vertical size for the row is defined already! + gbc.fill = GridBagConstraints.HORIZONTAL; // fill horizontally entire cell + gbc.anchor = GridBagConstraints.CENTER; // center aligning + + gbl.setConstraints(descLb1, gbc); + statsPanel.add(descLb1); + + gbc.gridx = 1; // second column + gbc.gridy = 1; // second row + gbc.gridwidth = 1; // occupies only one column + gbc.gridheight = 1; // occupies only one row + gbc.weightx = 0; // horizontal size for the column is defined already! + gbc.weighty = 0; // vertical size for the row is defined already! + gbc.fill = GridBagConstraints.HORIZONTAL; // fill horizontally entire cell + gbc.anchor = GridBagConstraints.CENTER; // center aligning + + gbl.setConstraints(indLb1, gbc); + statsPanel.add(indLb1); + + gbc.gridx = 2; // third column + gbc.gridy = 2; // third row + gbc.gridwidth = 1; // occupies only one column + gbc.gridheight = 1; // occupies only one row + gbc.weightx = 0; // horizontal size for the column is defined already! + gbc.weighty = 0; // vertical size for the row is defined already! + gbc.fill = GridBagConstraints.HORIZONTAL; // fill horizontally entire cell + gbc.anchor = GridBagConstraints.WEST; // west aligning + + gbl.setConstraints(scrollPane, gbc); + statsPanel.add(scrollPane); + + actionsPanel = new JPanel(); + actionsPanel.setBorder(new TitledBorder("actions")); + JButton delete = new JButton("delete instance"); + delete.addActionListener(this); + actionsPanel.add(delete); + JButton save = new JButton("save"); + save.addActionListener(this); + actionsPanel.add(save); + getContentPane().add(actionsPanel, java.awt.BorderLayout.EAST); + + JSeparator separator = new JSeparator(); + Box buttonBox = new Box(BoxLayout.X_AXIS); + ok_cancelPanel = new JPanel(); + ok_cancelPanel.setLayout(new BorderLayout()); + ok_cancelPanel.add(separator, BorderLayout.NORTH); + okButton = new JButton("Ok"); + cancelButton = new JButton("Cancel"); + + buttonBox.setBorder(new EmptyBorder(new Insets(5, 10, 5, 10))); + buttonBox.add(okButton); + buttonBox.add(Box.createHorizontalStrut(10)); + buttonBox.add(cancelButton); + ok_cancelPanel.add(buttonBox, BorderLayout.EAST); + + getContentPane().add(ok_cancelPanel); + + + setModal(true); + setVisible(true); + + } + + @Override + public void actionPerformed(ActionEvent e) { + System.out.println(e.getActionCommand()); + if(e.getActionCommand().equals("delete instance")){ + ore.modi.deleteIndividual(ind); + + } + if(e.getActionCommand().equals("save")){ + ore.modi.saveOntology(); + } + + + } + + + +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-06-04 17:02:14 UTC (rev 939) @@ -2,6 +2,7 @@ import java.io.File; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -17,11 +18,16 @@ import org.dllearner.core.ReasoningService; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.Individual; +import org.dllearner.core.owl.Intersection; import org.dllearner.core.owl.NamedClass; +import org.dllearner.core.owl.Union; import org.dllearner.kb.OWLFile; import org.dllearner.learningproblems.PosNegDefinitionLP; +import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.reasoning.OWLAPIReasoner; + + public class ORE { private LearningAlgorithm la; @@ -29,6 +35,7 @@ private KnowledgeSource ks; private PosNegDefinitionLP lp; private ComponentManager cm; + OWLAPIReasoner reasoner; SortedSet<Individual> posExamples; SortedSet<Individual> negExamples; @@ -36,12 +43,13 @@ Description conceptToAdd; OntologyModifierOWLAPI modi; Set<NamedClass> allAtomicConcepts; + private double noise; public ORE() { cm = ComponentManager.getInstance(); - + } // step 1: detect knowledge sources @@ -98,6 +106,11 @@ lp.init(); } + public void setNoise(double noise){ + + this.noise = noise; + } + public void setLearningAlgorithm(){ try { la = cm.learningAlgorithm(ExampleBasedROLComponent.class, lp, rs); @@ -110,6 +123,7 @@ Set<String> t = new TreeSet<String>(); t.add(concept.getName()); cm.applyConfigEntry(la, "ignoredConcepts", t ); + cm.applyConfigEntry(la, "noisePercentage", noise); try { la.init(); } catch (ComponentInitException e) { @@ -125,11 +139,13 @@ public LearningAlgorithm start(){ + this.setPosNegExamples(); this.setLearningProblem(); this.setLearningAlgorithm(); + la.start(); - + return la; } @@ -138,6 +154,10 @@ return la.getBestSolution(); } + public List<Description> getSolutions(){ + return la.getGoodSolutions(); + } + public List<Description> getLearningResults(int anzahl){ return la.getBestSolutions(anzahl); } @@ -165,10 +185,20 @@ } public HashSet<Individual> getNegFailureExamples(){ + FastInstanceChecker instanceReasoner = cm.reasoner(FastInstanceChecker.class, ks); + try { + instanceReasoner.init(); + } catch (ComponentInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + ReasoningService instanceRs = cm.reasoningService(instanceReasoner); + HashSet<Individual> negFailureExamples = new HashSet<Individual>() ; for(Individual ind : negExamples){ - if(rs.instanceCheck(conceptToAdd, ind)) + if(instanceRs.instanceCheck(conceptToAdd, ind)) negFailureExamples.add(ind); } @@ -176,13 +206,56 @@ return negFailureExamples; } - public SortedSet<Individual> getPosFailureExamples(){ + public List<HashSet<Individual>> getFailureExamples(){ + List<HashSet<Individual>> list = new ArrayList<HashSet<Individual>>(); - SortedSet<Individual> posFailureExamples = null ; + FastInstanceChecker instanceReasoner = cm.reasoner(FastInstanceChecker.class, ks); + try { + instanceReasoner.init(); + } catch (ComponentInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + ReasoningService instanceRs = cm.reasoningService(instanceReasoner); + HashSet<Individual> posFailureExamples = new HashSet<Individual>() ; for(Individual ind : posExamples){ - if(!rs.instanceCheck(conceptToAdd, ind)) + if(!instanceRs.instanceCheck(conceptToAdd, ind)) posFailureExamples.add(ind); + } + + HashSet<Individual> negFailureExamples = new HashSet<Individual>() ; + for(Individual ind : negExamples){ + if(instanceRs.instanceCheck(conceptToAdd, ind)) + negFailureExamples.add(ind); + } + + list.add(posFailureExamples); + list.add(negFailureExamples); + + + + return list; + + } + public HashSet<Individual> getPosFailureExamples(){ + FastInstanceChecker instanceReasoner = cm.reasoner(FastInstanceChecker.class, ks); + try { + instanceReasoner.init(); + } catch (ComponentInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + ReasoningService instanceRs = cm.reasoningService(instanceReasoner); + + HashSet<Individual> posFailureExamples = new HashSet<Individual>() ; + + + for(Individual ind : posExamples){ + if(!instanceRs.instanceCheck(conceptToAdd, ind)) + posFailureExamples.add(ind); } @@ -218,26 +291,51 @@ this.allAtomicConcepts = allAtomicConcepts; } + public void getAllChildren(Description desc){ + + if(desc.getNumberOfNodes() >= 2) + for(Description d: desc.getChildren()) + getAllChildren(d); + System.out.println(desc); + } + + public Set<Description> getCriticalDescriptions(Individual ind, Description desc){ + + Set<Description> criticals = new HashSet<Description>(); + List<Description> children = desc.getChildren(); + + if(desc instanceof Intersection){ + criticals.addAll(children); + } + if(desc instanceof Union){ + for(Description d: children) + if(reasoner.instanceCheck(d, ind)) + criticals.add(d); + } + + + return criticals; + } + public static void main(String[] args){ -// ORE test = new ORE(); -// -// File owlFile = new File("src/dl-learner/org/dllearner/tools/ore/father.owl"); -// -// test.setKnowledgeSource(owlFile); -// -// test.detectReasoner(); -// ReasoningService rs = test.getReasoningService(); -// System.err.println("Concepts :" + rs.getAtomicConcepts()); -// -// -// test.setConcept(new NamedClass("http://example.com/father#father")); -// test.setPosNegExamples(); -// System.out.println(test.posExamples); -// System.out.println(test.negExamples); -// test.setLearningProblem(); -// test.setLearningAlgorithm(); -// test.start(); + ORE test = new ORE(); + + File owlFile = new File("src/dl-learner/org/dllearner/tools/ore/father.owl"); + + test.setKnowledgeSource(owlFile); + + test.detectReasoner(); + ReasoningService rs = test.getReasoningService(); + System.err.println("Concepts :" + rs.getAtomicConcepts()); + + + test.setConcept(new NamedClass("http://example.com/father#father")); + test.setPosNegExamples(); + System.out.println(test.posExamples); + System.out.println(test.negExamples); + test.start(); + test.la.start();//Bug? } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/OntologyModifierOWLAPI.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/OntologyModifierOWLAPI.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/OntologyModifierOWLAPI.java 2008-06-04 17:02:14 UTC (rev 939) @@ -14,6 +14,7 @@ import org.semanticweb.owl.io.RDFXMLOntologyFormat; import org.semanticweb.owl.model.AddAxiom; import org.semanticweb.owl.model.OWLAxiom; +import org.semanticweb.owl.model.OWLClassAssertionAxiom; import org.semanticweb.owl.model.OWLDataFactory; import org.semanticweb.owl.model.OWLDescription; import org.semanticweb.owl.model.OWLIndividual; @@ -21,6 +22,7 @@ import org.semanticweb.owl.model.OWLOntologyChangeException; import org.semanticweb.owl.model.OWLOntologyManager; import org.semanticweb.owl.model.OWLOntologyStorageException; +import org.semanticweb.owl.model.RemoveAxiom; import org.semanticweb.owl.model.UnknownOWLOntologyException; import org.semanticweb.owl.util.OWLEntityRemover; @@ -50,7 +52,7 @@ OWLAxiom axiomOWLAPI = factory.getOWLEquivalentClassesAxiom(ds); - + AddAxiom axiom = new AddAxiom(ontology, axiomOWLAPI); try { manager.applyChange(axiom); @@ -103,12 +105,11 @@ } - public void moveIndividual(Individual ind, Description oldConcept, Description newConcept){ + public void removeClassAssertion(Individual ind, Description desc){ - OWLIndividual individualOWLAPI = null; + OWLDescription owlDesc = OWLAPIDescriptionConvertVisitor.getOWLDescription(desc); - try { individualOWLAPI = factory.getOWLIndividual( new URI(ind.getName())); } catch (URISyntaxException e) { @@ -116,18 +117,40 @@ e.printStackTrace(); } - //Loeschen - OWLEntityRemover remover = new OWLEntityRemover(manager, Collections.singleton(ontology)); - individualOWLAPI.accept(remover); + OWLClassAssertionAxiom owlCl = factory.getOWLClassAssertionAxiom(individualOWLAPI, owlDesc); + + + RemoveAxiom rm = new RemoveAxiom(ontology, owlCl); + + + try { - manager.applyChanges(remover.getChanges()); + manager.applyChange(rm); } catch (OWLOntologyChangeException e) { // TODO Auto-generated catch block e.printStackTrace(); } - remover.reset(); + } + + public void moveIndividual(Individual ind, Description oldConcept, Description newConcept){ + + + OWLIndividual individualOWLAPI = null; + + + try { + individualOWLAPI = factory.getOWLIndividual( new URI(ind.getName())); + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + //Loeschen + removeClassAssertion(ind, oldConcept); + + //Hinzufuegen OWLDescription newConceptOWLAPI = OWLAPIDescriptionConvertVisitor.getOWLDescription(newConcept); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanel.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanel.java 2008-06-04 17:02:14 UTC (rev 939) @@ -131,12 +131,13 @@ return negFailureList; } - public void addSelectionListener(ListSelectionListener l){ + public void addSelectionListeners(ListSelectionListener l){ posFailureList.addListSelectionListener(l); negFailureList.addListSelectionListener(l); } - public void addMouseListener(MouseListener m){ + + public void addMouseListeners(MouseListener m){ posFailureList.addMouseListener(m); negFailureList.addMouseListener(m); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanelDescriptor.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanelDescriptor.java 2008-06-04 17:02:14 UTC (rev 939) @@ -25,8 +25,8 @@ panel4 = new RepairPanel(); panel4.addSaveButtonListener(this); - panel4.addSelectionListener(this); - panel4.addMouseListener(this); + panel4.addSelectionListeners(this); + panel4.addMouseListeners(this); setPanelDescriptorIdentifier(IDENTIFIER); setPanelComponent(panel4); @@ -67,7 +67,7 @@ public void mouseClicked(MouseEvent e) { if(e.getClickCount() == 2 && e.getSource() == panel4.getNegFailureList() ){ - System.out.println(panel4.getNegFailureList().getSelectedValue()); + new NegExampleRepairDialog((Individual)panel4.getNegFailureList().getSelectedValue(), getWizard().getDialog(), getWizardModel().getOre() ); } } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/WizardController.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/WizardController.java 2008-06-04 12:07:48 UTC (rev 938) +++ trunk/src/dl-learner/org/dllearner/tools/ore/WizardController.java 2008-06-04 17:02:14 UTC (rev 939) @@ -3,8 +3,8 @@ import java.awt.event.ActionListener; import java.util.HashSet; +import java.util.List; import java.util.Set; -import java.util.SortedSet; import java.util.concurrent.ExecutionException; import javax.swing.DefaultListModel; @@ -75,8 +75,15 @@ if( nextPanelDescriptor.equals("REPAIR_PANEL")){ ((RepairPanelDescriptor)wizard.getModel().getPanelHashMap().get(nextPanelDescriptor)).panel4.getNegFailureModel().clear(); - wizard.getModel().getOre().getModi().addAxiomToOWL(wizard.getModel().getOre().getConceptToAdd(), wizard.getModel().getOre().getConcept()); + ((RepairPanelDescriptor)wizard.getModel().getPanelHashMap().get(nextPanelDescriptor)).panel4.getPosFailureModel().clear(); +// wizard.getModel().getOre().getModi().addAxiomToOWL(wizard.getModel().getOre().getConceptToAdd(), wizard.getModel().getOre().getConcept()); new FailInstancesRetriever(nextPanelDescriptor).execute(); + +// for(Description desc : wizard.getModel().getOre().getConceptToAdd().getChildren()) +// System.out.println(desc); + + + } if (nextPanelDescriptor instanceof WizardPanelDescriptor.FinishIdentifier) { @@ -93,7 +100,8 @@ } - + + private void backButtonPressed() { WizardModel model = wizard.getModel(); @@ -219,7 +227,7 @@ dm.addElement(cl); //nextPanel.panel3.getModel().addElement(cl); - System.out.println(cl.getName()); + } wizard.getModel().getOre().setAllAtomicConcepts(ind); nextPanel.panel3.getList().setModel(dm); @@ -231,7 +239,7 @@ } } - class FailInstancesRetriever extends SwingWorker<HashSet<Individual>, Individual> { + class FailInstancesRetriever extends SwingWorker<List<HashSet<Individual>>, HashSet<Individual>> { Object nextPanelID; public FailInstancesRetriever(Object nextPanelDescriptor) { @@ -240,7 +248,7 @@ } @Override - public HashSet<Individual> doInBackground() { + public List<HashSet<Individual>> doInBackground() { ((RepairPanelDescriptor) wizard.getModel().getPanelHashMap().get( nextPanelID)).panel4.getStatusLabel().setText( @@ -250,17 +258,17 @@ - HashSet<Individual> ind = wizard.getModel().getOre() - .getNegFailureExamples(); + List<HashSet<Individual>> indList = wizard.getModel().getOre() + .getFailureExamples(); - return ind; + return indList; } @Override public void done() { - HashSet<Individual> ind = null; + List<HashSet<Individual>> indList = null; try { - ind = get(); + indList = get(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -270,12 +278,17 @@ } RepairPanelDescriptor nextPanel = (RepairPanelDescriptor) wizard .getModel().getPanelHashMap().get(nextPanelID); - DefaultListModel dm = nextPanel.panel4.getNegFailureModel(); - - for (Individual cl : ind) { - dm.addElement(cl); - System.out.println(cl.getName()); + DefaultListModel posDm = nextPanel.panel4.getPosFailureModel(); + DefaultListModel negDm = nextPanel.panel4.getNegFailureModel(); + + for (Individual posInd : indList.get(0)) { + posDm.addElement(posInd); + System.out.println(posInd.getName()); } + for (Individual negInd : indList.get(1)) { + negDm.addElement(negInd); + System.out.println(negInd.getName()); + } nextPanel.panel4.getStatusLabel().setText( "Instances loaded"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |