From: <hee...@us...> - 2008-11-16 14:38:37
|
Revision: 1517 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1517&view=rev Author: heeroyuy Date: 2008-11-16 14:38:32 +0000 (Sun, 16 Nov 2008) Log Message: ----------- -some small changes -some changes in GUI Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java trunk/src/dl-learner/org/dllearner/tools/protege/MoreDetailForSuggestedConceptsPanel.java Modified: trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java 2008-11-15 08:43:53 UTC (rev 1516) +++ trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java 2008-11-16 14:38:32 UTC (rev 1517) @@ -41,6 +41,7 @@ import javax.swing.event.ListSelectionListener; import org.dllearner.core.EvaluatedDescription; +import org.dllearner.core.LearningAlgorithm; import org.dllearner.core.owl.Description; import org.protege.editor.owl.OWLEditorKit; @@ -64,11 +65,12 @@ // this is a boolean that checked if the advanced button was pressed or not. private boolean toggled; // This is the Tread of the DL-Learner - private Thread dlLearner; private EvaluatedDescription evaluatedDescription; // This is the view of the DL-Learner tab. private OWLClassDescriptionEditorWithDLLearnerTab.DLLearnerView view; private Timer timer; + private LearningAlgorithm la; + private SuggestionRetriever retriever; /** * This is the constructor for the action handler. @@ -107,10 +109,15 @@ if (model.getAlreadyLearned()) { model.unsetListModel(); } + model.setKnowledgeSource(); + model.setReasoner(); + model.setPositiveAndNegativeExamples(); + model.setLearningProblem(); + model.setLearningAlgorithm(); view.getRunButton().setEnabled(false); view.renderErrorMessage("Learning started"); view.getPosAndNegSelectPanel().setCheckBoxesEnable(false); - final SuggestionRetriever retriever = new SuggestionRetriever(); + retriever = new SuggestionRetriever(); // // dlLearner.start(); retriever.execute(); @@ -263,7 +270,7 @@ * Destroys the Thread after the Pluigin is closed. */ public void destroyDLLearnerThread() { - dlLearner = null; + //dlLearner = null; } /** @@ -290,40 +297,51 @@ // TODO Auto-generated method stub } - +/** + * Inner Class that retrieves the concepts given by the DL-Learner. + * @author Christian Koetteritzsch + * + */ class SuggestionRetriever extends SwingWorker<List<EvaluatedDescription>, List<EvaluatedDescription>> { - + + private Thread dlLearner; + /** + * Constructor for the SuggestionRetriever. + */ public SuggestionRetriever() { } - + @SuppressWarnings("unchecked") @Override protected List<EvaluatedDescription> doInBackground() throws Exception { // DefaultListModel descriptions = new DefaultListModel(); // List<Description> descriptionList = // model.getLearningAlgorithm().getCurrentlyBestDescriptions(); // Iterator<Description> it = descriptionList.iterator(); + la = model.getLearningAlgorithm(); timer = new Timer(); - timer.schedule(new TimerTask() { - - @SuppressWarnings("unchecked") + timer.schedule(new TimerTask(){ + @Override public void run() { - if (model.getLearningAlgorithm() != null) { - publish(model.getLearningAlgorithm() - .getCurrentlyBestEvaluatedDescriptions(30, 0.0, - true)); + if (la != null) { + + publish(la + .getCurrentlyBestEvaluatedDescriptions(view.getPosAndNegSelectPanel().getOptionPanel() + .getNrOfConcepts(), + view.getPosAndNegSelectPanel().getOptionPanel() + .getMinAccuracy(), true)); } } - }, 1000, 2000); + }, 0, 100); dlLearner = new Thread(new Runnable() { @Override public void run() { - + model.run(); } @@ -336,14 +354,12 @@ // TODO Auto-generated catch block e.printStackTrace(); } - List<EvaluatedDescription> result = model.getLearningAlgorithm() - .getCurrentlyBestEvaluatedDescriptions( + List<EvaluatedDescription> result = la.getCurrentlyBestEvaluatedDescriptions( view.getPosAndNegSelectPanel().getOptionPanel() .getNrOfConcepts(), view.getPosAndNegSelectPanel().getOptionPanel() .getMinAccuracy(), true); - return result; } @@ -367,7 +383,6 @@ @Override protected void process(List<List<EvaluatedDescription>> resultLists) { - // panel4.getModel().clear(); for (List<EvaluatedDescription> list : resultLists) { updateList(list); Modified: trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java 2008-11-15 08:43:53 UTC (rev 1516) +++ trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java 2008-11-16 14:38:32 UTC (rev 1517) @@ -20,7 +20,6 @@ package org.dllearner.tools.protege; -import java.awt.Color; import java.net.URI; import java.util.HashSet; import java.util.Iterator; @@ -243,25 +242,6 @@ } /** - * This method adds the solutions from the DL-Learner to the List Model. - */ - private void addToListModel() { - - evalDescriptions = la.getCurrentlyBestEvaluatedDescriptions(view.getPosAndNegSelectPanel().getOptionPanel().getNrOfConcepts(), view.getPosAndNegSelectPanel().getOptionPanel().getMinAccuracy(), true); - for (int j = 0; j < evalDescriptions.size(); j++) { - if (isConsistent(evalDescriptions.get(j))) { - suggestModel.add(j, new SuggestListItem(Color.GREEN, - evalDescriptions.get(j).getDescription() - .toManchesterSyntaxString(ontologyURI, prefixes))); - } else { - suggestModel.add(j, new SuggestListItem(Color.RED, - evalDescriptions.get(j).getDescription() - .toManchesterSyntaxString(ontologyURI, prefixes))); - } - } - } - - /** * This method checks which positive and negative examples are checked and * puts the checked examples into a tree set. */ @@ -385,11 +365,6 @@ */ public void run() { error = "Learning succesful"; - setKnowledgeSource(); - setReasoner(); - setPositiveAndNegativeExamples(); - setLearningProblem(); - setLearningAlgorithm(); String message = "To view details about why a class description was suggested, please doubleclick on it."; // start the algorithm and print the best concept found la.start(); @@ -766,7 +741,13 @@ public boolean getAlreadyLearned() { return alreadyLearned; } - + + /** + * This Method checks if after inserting of this concept the ontology is still + * consistent. + * @param eDescription EvauatedDescription + * @return isConsistent boolean + */ public boolean isConsistent(EvaluatedDescription eDescription) { boolean isConsistent = false; if (eDescription.getNotCoveredPositives().isEmpty()) { @@ -786,6 +767,10 @@ return editor.getModelManager().getActiveOntology().getURI(); } + /** + * This method sets the suggestion list. + * @param list List(EvaluatedDescription) + */ public void setSuggestList(List<EvaluatedDescription> list) { evalDescriptions = list; } Modified: trunk/src/dl-learner/org/dllearner/tools/protege/MoreDetailForSuggestedConceptsPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/MoreDetailForSuggestedConceptsPanel.java 2008-11-15 08:43:53 UTC (rev 1516) +++ trunk/src/dl-learner/org/dllearner/tools/protege/MoreDetailForSuggestedConceptsPanel.java 2008-11-16 14:38:32 UTC (rev 1517) @@ -19,10 +19,10 @@ */ package org.dllearner.tools.protege; import java.awt.Color; +import java.awt.Dimension; import java.awt.GridLayout; import java.util.Iterator; -import javax.swing.Box; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; @@ -93,8 +93,10 @@ // Scroll pane if scroll bar is necessary to show all covered examples - private JScrollPane detailScroll; - + private JScrollPane posCoveredScroll; + private JScrollPane posNotCoveredScroll; + private JScrollPane negCoveredScroll; + private JScrollPane negNotCoveredScroll; // Evaluated description of the selected concept private JPanel conceptPanel; private JPanel accuracyPanel; @@ -112,6 +114,9 @@ * @param model DLLearnerModel */ public MoreDetailForSuggestedConceptsPanel(DLLearnerModel model) { + super(); + setLayout(null); + setPreferredSize(new Dimension(600, 500)); this.model = model; @@ -130,22 +135,36 @@ * @param desc selected description */ public void renderDetailPanel(EvaluatedDescription desc) { + posCoveredScroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + posCoveredScroll.setBounds(5, 150, 280, 140); + posNotCoveredScroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + posNotCoveredScroll.setBounds(300, 150, 280, 140); + negCoveredScroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + negCoveredScroll.setBounds(5, 325, 280, 140); + negNotCoveredScroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + negNotCoveredScroll.setBounds(300, 325, 280, 140); eval = desc; - JPanel posBox = new JPanel(new GridLayout(0, 2)); - JPanel negBox = new JPanel(new GridLayout(0, 2)); - Box exampleBox = Box.createVerticalBox(); concept = new JTextArea("Class Description:"); concept.setEditable(false); + coveredPositiveExamples = new JLabel("Covered Positive Examples:"); coveredPositiveExamples.setForeground(colorGreen); + coveredPositiveExamples.setBounds(5, 110, 280, 30); notCoveredPositiveExamples = new JLabel("Not Covered Positive Examples"); notCoveredPositiveExamples.setForeground(colorRed); + notCoveredPositiveExamples.setBounds(300, 110, 280, 30); coveredNegativeExamples = new JLabel("Covered Negative Examples:"); coveredNegativeExamples.setForeground(colorRed); + coveredNegativeExamples.setBounds(5, 295, 280, 30); notCoveredNegativeExamples = new JLabel("Not Covered Negative Examples"); notCoveredNegativeExamples.setForeground(colorGreen); + notCoveredNegativeExamples.setBounds(300, 295, 280, 30); + conceptPanel = new JPanel(new GridLayout(0, 1)); + conceptPanel.setBounds(5, 0, 600, 50); accuracyPanel = new JPanel(new GridLayout(0, 1)); + accuracyPanel.setBounds(5, 60, 600, 50); + posCoveredPanel = new JPanel(new GridLayout(0, 1)); posNotCoveredPanel = new JPanel(new GridLayout(0, 1)); negCoveredPanel = new JPanel(new GridLayout(0, 1)); @@ -178,12 +197,11 @@ setInformation(); detailPopup = new JDialog(); - detailPopup.setSize(400, 400); + detailPopup.setSize(600, 500); //window will be disposed if the x button is pressed detailPopup.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); detailPopup.setVisible(true); - detailPopup.setResizable(true); - detailScroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + detailPopup.setResizable(false); //adds all information to the example panel conceptPanel.add(concept); conceptPanel.add(conceptText); @@ -191,16 +209,22 @@ accuracyPanel.add(accuracy); accuracyPanel.add(accuracyText); - exampleBox.add(conceptPanel); - exampleBox.add(accuracyPanel); - posBox.add(posCoveredPanel); - posBox.add(posNotCoveredPanel); - negBox.add(negCoveredPanel); - negBox.add(negNotCoveredPanel); - exampleBox.add(posBox); - exampleBox.add(negBox); - detailScroll.setViewportView(exampleBox); - detailPopup.add(detailScroll); + posCoveredScroll.setViewportView(posCoveredPanel); + posNotCoveredScroll.setViewportView(posNotCoveredPanel); + negCoveredScroll.setViewportView(negCoveredPanel); + negNotCoveredScroll.setViewportView(negNotCoveredPanel); + + add(conceptPanel); + add(accuracyPanel); + add(coveredPositiveExamples); + add(notCoveredPositiveExamples); + add(coveredNegativeExamples); + add(notCoveredNegativeExamples); + add(posCoveredScroll); + add(posNotCoveredScroll); + add(negCoveredScroll); + add(negNotCoveredScroll); + detailPopup.add(this); } /** * This method sets the Informations of the selected description. @@ -211,11 +235,6 @@ conceptText.append(eval.getDescription().toManchesterSyntaxString(model.getURI().toString()+"#", null)); double acc = (eval.getAccuracy())*100; accuracyText.append(String.valueOf(acc)+"%"); - //sets the positive examples that are covered - posCoveredPanel.add(coveredPositiveExamples); - posNotCoveredPanel.add(notCoveredPositiveExamples); - negCoveredPanel.add(coveredNegativeExamples); - negNotCoveredPanel.add(notCoveredNegativeExamples); for(Iterator<Individual> i = eval.getCoveredPositives().iterator(); i.hasNext();) { JLabel posLabel = new JLabel(i.next().toManchesterSyntaxString(model.getURI().toString()+"#", null)); posLabel.setForeground(colorGreen); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |