From: <lor...@us...> - 2009-11-23 20:57:23
|
Revision: 1915 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1915&view=rev Author: lorenz_b Date: 2009-11-23 20:57:15 +0000 (Mon, 23 Nov 2009) Log Message: ----------- Fixed some bugs. Fixed wrong informations shown in class choose wizard step. Updated Pellet reasoner libs to final version 2.0. Modified Paths: -------------- trunk/lib/pellet/pellet-core.jar trunk/lib/pellet/pellet-datatypes.jar trunk/lib/pellet/pellet-el.jar trunk/lib/pellet/pellet-explanation.jar trunk/lib/pellet/pellet-modularity.jar trunk/lib/pellet/pellet-owlapi.jar trunk/lib/pellet/pellet-rules.jar trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairManager.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/CachedExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/LaconicExplanationGenerator.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/RemainingAxiomsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java Modified: trunk/lib/pellet/pellet-core.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-datatypes.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-el.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-explanation.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-modularity.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-owlapi.jar =================================================================== (Binary files differ) Modified: trunk/lib/pellet/pellet-rules.jar =================================================================== (Binary files differ) Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java 2009-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -294,6 +294,10 @@ return gen.getSourceAxioms(ax); } + public Set<OWLAxiom> getLaconicSourceAxioms(OWLAxiom ax){ + return gen.getLaconicSourceAxioms(ax); + } + public Set<OWLAxiom> getRemainingAxioms(OWLAxiom source, OWLAxiom part){ return gen.getRemainingAxioms(source, part); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java 2009-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/LearningManager.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -26,7 +26,7 @@ private int currentDescriptionIndex = 0; - public static LearningManager getInstance(){ + public static synchronized LearningManager getInstance(){ if(instance == null){ instance = new LearningManager(); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/RepairManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/RepairManager.java 2009-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/RepairManager.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -1,11 +1,15 @@ package org.dllearner.tools.ore; import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import java.util.Stack; import org.mindswap.pellet.owlapi.Reasoner; import org.semanticweb.owl.model.AddAxiom; +import org.semanticweb.owl.model.OWLAxiom; import org.semanticweb.owl.model.OWLOntologyChange; import org.semanticweb.owl.model.OWLOntologyChangeException; import org.semanticweb.owl.model.OWLOntologyManager; @@ -20,10 +24,15 @@ private OWLOntologyManager manager; private Reasoner reasoner; - private List<OWLOntologyChange> repairPlan; + private Set<OWLOntologyChange> repairPlan; private Stack<List<OWLOntologyChange>> undoStack; private Stack<List<OWLOntologyChange>> redoStack; + + private Set<OWLAxiom> selectedAxioms; + + private Set<OWLAxiom> scheduled2Remove; + private Set<OWLAxiom> scheduled2Add; private RepairManager(OREManager oreMan){ this.reasoner = oreMan.getReasoner().getReasoner(); @@ -34,8 +43,13 @@ undoStack = new Stack<List<OWLOntologyChange>>(); redoStack = new Stack<List<OWLOntologyChange>>(); - repairPlan = new ArrayList<OWLOntologyChange>(); + repairPlan = new LinkedHashSet<OWLOntologyChange>(); + selectedAxioms = new HashSet<OWLAxiom>(); + + scheduled2Remove = new HashSet<OWLAxiom>(); + scheduled2Add = new HashSet<OWLAxiom>(); + oreMan.addListener(this); } @@ -61,26 +75,69 @@ public void addToRepairPlan(OWLOntologyChange change){ repairPlan.add(change); + if(change instanceof RemoveAxiom){ + scheduled2Remove.add(change.getAxiom()); + } else { + scheduled2Add.add(change.getAxiom()); + } fireRepairPlanChanged(); } public void addToRepairPlan(List<OWLOntologyChange> changes){ - repairPlan.addAll(changes); + for(OWLOntologyChange change : changes){ + if(change instanceof RemoveAxiom){ + if(scheduled2Add.contains(change.getAxiom())){ + scheduled2Add.remove(change.getAxiom()); + repairPlan.remove(new AddAxiom(change.getOntology(), change.getAxiom())); + } else { + scheduled2Remove.add(change.getAxiom()); + repairPlan.add(change); + } + + } else { + scheduled2Add.add(change.getAxiom()); + repairPlan.add(change); + } + + } +// repairPlan.addAll(changes); fireRepairPlanChanged(); } public void removeFromRepairPlan(OWLOntologyChange change){ repairPlan.remove(change); + if(change instanceof RemoveAxiom){ + scheduled2Remove.remove(change.getAxiom()); + } else { + scheduled2Add.remove(change.getAxiom()); + } fireRepairPlanChanged(); } public void removeFromRepairPlan(List<OWLOntologyChange> changes){ - repairPlan.removeAll(changes); + for(OWLOntologyChange change : changes){ + if(change instanceof RemoveAxiom){ + scheduled2Remove.add(change.getAxiom()); + } else { + scheduled2Add.add(change.getAxiom()); + } + repairPlan.remove(change); + } +// repairPlan.removeAll(changes); fireRepairPlanChanged(); } + + public boolean isScheduled2Remove(OWLAxiom ax){ + return scheduled2Remove.contains(ax); + } + + public boolean isScheduled2Add(OWLAxiom ax){ + return scheduled2Add.contains(ax); + } + public List<OWLOntologyChange> getRepairPlan(){ - return repairPlan; + return new ArrayList<OWLOntologyChange>(repairPlan); } public boolean isUndoable(){ @@ -90,7 +147,7 @@ public void executeRepairPlan(){ try { - manager.applyChanges(repairPlan); + manager.applyChanges(new ArrayList<OWLOntologyChange>(repairPlan)); } catch (OWLOntologyChangeException e) { System.out.println("Error in Repairmanager: Couldn't apply ontology changes"); e.printStackTrace(); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/explanation/CachedExplanationGenerator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/explanation/CachedExplanationGenerator.java 2009-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/explanation/CachedExplanationGenerator.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -299,6 +299,10 @@ return laconicExpGen.getSourceAxioms(ax); } + public Set<OWLAxiom> getLaconicSourceAxioms(OWLAxiom ax){ + return laconicExpGen.getLaconicSourceAxioms(ax); + } + public Set<OWLAxiom> getRemainingAxioms(OWLAxiom source, OWLAxiom part){ return laconicExpGen.getRemainingAxioms(source, part); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/LaconicExplanationGenerator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/LaconicExplanationGenerator.java 2009-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/explanation/laconic/LaconicExplanationGenerator.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -333,9 +333,20 @@ return sourceAxioms; } + public Set<OWLAxiom> getLaconicSourceAxioms(OWLAxiom axiom){ + Map<OWLAxiom, Set<OWLAxiom>> axioms2SourceMap = oPlus.getAxiomsMap(); + Set<OWLAxiom> sourceAxioms = new HashSet<OWLAxiom>(); + sourceAxioms.addAll(axioms2SourceMap.get(axiom)); + + return sourceAxioms; + } + public Set<OWLAxiom> getRemainingAxioms(OWLAxiom source, OWLAxiom part){ Set<OWLAxiom> parts = computeOPlus(Collections.singleton(source)); - + for(OWLAxiom p : parts){ + System.out.println("Part: " + p); + System.out.println(oPlus.getAxiomsMap().get(p)); + } for(OWLAxiom ax : oPlus.getAxiomsMap().get(part)){ parts.remove(ax); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java 2009-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -81,7 +81,7 @@ OWLAxiom ax = getOWLAxiomAtRow(rowIndex); if(impMan.isSelected(ax)){ impMan.removeSelection(ax); - if(expMan.isLaconicMode() && !ont.containsAxiom(ax)){ + if(!ont.containsAxiom(ax)){ List<OWLOntologyChange> changes = new ArrayList<OWLOntologyChange>(); for(OWLAxiom source : expMan.getSourceAxioms(ax)){ impMan.removeSelection(source); @@ -96,7 +96,7 @@ } } else { // impMan.addSelection(ax); - if(expMan.isLaconicMode() && !ont.containsAxiom(ax)){ + if(!ont.containsAxiom(ax)){ // List<OWLOntologyChange> changes = new ArrayList<OWLOntologyChange>(); // for(OWLAxiom source : expMan.getSourceAxioms(ax)){ // impMan.addSelection(source); @@ -111,6 +111,12 @@ if(ret == RemainingAxiomsDialog.OK_RETURN_CODE){ impMan.addSelection(ax); List<OWLOntologyChange> changes = dialog.getChanges(); + for(OWLAxiom source : expMan.getLaconicSourceAxioms(ax)){ + if(repMan.isScheduled2Add(source)){ + changes.add(new RemoveAxiom(ont, source)); + } + + } repMan.addToRepairPlan(changes); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/RemainingAxiomsTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/RemainingAxiomsTable.java 2009-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/RemainingAxiomsTable.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -3,7 +3,7 @@ import java.awt.Color; import java.util.List; -import org.dllearner.tools.ore.ui.rendering.ManchesterSyntaxTableCellRenderer; +import org.dllearner.tools.ore.ui.rendering.TextAreaRenderer; import org.jdesktop.swingx.JXTable; import org.semanticweb.owl.model.OWLAxiom; @@ -18,8 +18,7 @@ setBackground(Color.WHITE); setModel(new RemainingAxiomsTableModel(remainingAxioms)); - setRowHeight(getRowHeight() + 5); - getColumn(0).setCellRenderer(new ManchesterSyntaxTableCellRenderer()); + getColumn(0).setCellRenderer(new TextAreaRenderer()); getColumn(1).setMaxWidth(30); } 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-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -63,9 +63,12 @@ /** * Information string for class choose panel. */ - public static final String INFORMATION = "Above all atomic classes which have at least one individual are listed. " - + "Select one of them for which you want to learn equivalent class expressions," + - " then press <Next>"; + public static final String AUTO_LEARN_INFORMATION = "Adjust the parameters for automatic learning mode, " + +"then press <Next>"; + + public static final String MANUAL_LEARN_INFORMATION = "Above all atomic classes which have at least one individual are listed. " + + "Select one of them for which you want to learn equivalent class or superclass expressions," + + " then press <Next>"; private ClassChoosePanel classChoosePanel; private Map<Integer, Set<NamedClass>> instanceCountToClasses; @@ -104,7 +107,12 @@ @Override public void aboutToDisplayPanel() { - getWizard().getInformationField().setText(INFORMATION); + if(isAutoLearningMode()){ + getWizard().getInformationField().setText(AUTO_LEARN_INFORMATION); + } else { + getWizard().getInformationField().setText(MANUAL_LEARN_INFORMATION); + } + setNextButtonAccordingToConceptSelected(); } @@ -210,9 +218,11 @@ public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("auto")){ classChoosePanel.setAutoLearningPanel(true); + getWizard().getInformationField().setText(AUTO_LEARN_INFORMATION); LearningManager.getInstance().setLearningMode(LearningManager.AUTO_LEARN_MODE); } else { classChoosePanel.setAutoLearningPanel(false); + getWizard().getInformationField().setText(MANUAL_LEARN_INFORMATION); LearningManager.getInstance().setLearningMode(LearningManager.MANUAL_LEARN_MODE); retrieveClasses(); } 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-11-23 14:35:21 UTC (rev 1914) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java 2009-11-23 20:57:15 UTC (rev 1915) @@ -56,7 +56,10 @@ private JPanel buttonExplanationsPanel; + private final String EXPLANATION_TYPE_TEXT = ""; + private final String EXPLANATION_COUNT_TEXT = ""; + private ButtonGroup explanationType; private JRadioButton regularButton; @@ -185,8 +188,8 @@ explanationTypePanel.add(preciseButton, c); HelpablePanel explanationTypeHelpPanel = new HelpablePanel(explanationTypePanel); explanationTypeHelpPanel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED)); + explanationTypeHelpPanel.setHelpText(EXPLANATION_TYPE_TEXT); - JPanel explanationCountPanel = new JPanel(new GridBagLayout()); maxExplanationsSelector = new JSpinner(); @@ -212,6 +215,7 @@ HelpablePanel explanationCountHelpPanel = new HelpablePanel(explanationCountPanel); explanationCountHelpPanel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED)); + explanationCountHelpPanel.setHelpText(EXPLANATION_COUNT_TEXT); strikeOutBox = new JCheckBox("Strike out irrelevant parts"); strikeOutBox.setActionCommand("strike"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |