From: <lor...@us...> - 2010-03-07 19:12:01
|
Revision: 2095 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2095&view=rev Author: lorenz_b Date: 2010-03-07 19:11:53 +0000 (Sun, 07 Mar 2010) Log Message: ----------- Continued axiom editing component - still problems with the OWLAPI-parser. Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLClassAxiomEditor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterOWLSyntaxObjectRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterSyntaxRenderer.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLAxiomEditor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomChecker.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomEditor.java Modified: trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2010-03-07 10:25:59 UTC (rev 2094) +++ trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -1563,6 +1563,10 @@ return factory; } + public boolean isSatisfiable(OWLDescription d){ + return reasoner.isSatisfiable(d); + } + /** * Returns asserted class definitions of given class * @param nc the class Modified: trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2010-03-07 10:25:59 UTC (rev 2094) +++ trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -1,5 +1,6 @@ package org.dllearner.tools.ore; +import java.awt.Color; import java.io.File; import java.net.MalformedURLException; import java.net.URI; @@ -37,6 +38,7 @@ import org.dllearner.tools.ore.cache.OWLObjectRenderingCache; import org.dllearner.tools.ore.ui.DescriptionLabel; import org.dllearner.tools.ore.ui.editor.OWLEntityFinder; +import org.dllearner.tools.ore.ui.rendering.KeywordColorMap; import org.dllearner.tools.ore.ui.rendering.ManchesterOWLSyntaxOWLObjectRendererImpl; import org.dllearner.tools.ore.ui.rendering.OWLEntityRenderer; import org.dllearner.utilities.owl.OWLAPIConverter; @@ -87,7 +89,7 @@ private OWLObjectRenderer owlObjectRenderer; private OWLEntityRenderer owlEntityRenderer; private OWLEntityFinder owlEntityFinder; - + private Map<String, Color> keywordColorMap; private List<OREManagerListener> listeners; @@ -104,6 +106,7 @@ owlObjectRenderer = new ManchesterOWLSyntaxOWLObjectRendererImpl(); owlObjectRenderer.setShortFormProvider(new SimpleShortFormProvider()); owlEntityRenderer = new OWLEntityRenderer(); + keywordColorMap = new KeywordColorMap(); } public static synchronized OREManager getInstance() { @@ -295,6 +298,10 @@ } return owlEntityFinder; } + + public Map<String, Color> getKeywordColorMap(){ + return keywordColorMap; + } private URL getClass2LearnAsURL(){ URL classURL = null; Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTable.java 2010-03-07 10:25:59 UTC (rev 2094) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTable.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -9,7 +9,6 @@ import java.awt.event.ComponentEvent; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; -import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.List; @@ -37,7 +36,9 @@ import org.dllearner.tools.ore.RepairManagerListener; import org.dllearner.tools.ore.explanation.Explanation; import org.dllearner.tools.ore.ui.editor.InputVerificationStatusChangedListener; +import org.dllearner.tools.ore.ui.editor.OWLAxiomEditor; import org.dllearner.tools.ore.ui.editor.OWLClassAxiomEditor; +import org.dllearner.tools.ore.ui.editor.OWLObjectPropertyAxiomEditor; import org.dllearner.tools.ore.ui.editor.VerifiedInputEditor; import org.dllearner.tools.ore.ui.editor.VerifyingOptionPane; import org.dllearner.tools.ore.ui.rendering.TextAreaRenderer; @@ -49,6 +50,7 @@ import org.semanticweb.owl.model.OWLClass; import org.semanticweb.owl.model.OWLClassAxiom; import org.semanticweb.owl.model.OWLObject; +import org.semanticweb.owl.model.OWLObjectPropertyAxiom; import org.semanticweb.owl.model.OWLOntologyChange; import uk.ac.manchester.cs.owl.dlsyntax.DLSyntaxObjectRenderer; @@ -65,9 +67,9 @@ protected String[] columnToolTips = { null, - "The number of already computed explanations where the axiom occurs.", - "TODO", - "TODO", + "The number of already computed explanations wherein the axiom occurs.", + "The sum of all axioms, in which the entities of the current axiom are contained.", + "", "If checked, the axiom is selected to remove from the ontology.", "Edit the axiom." }; @@ -93,6 +95,7 @@ setRowHeight(20); getColumn(0).setCellRenderer(new TextAreaRenderer()); +// getColumn(0).setCellRenderer(new OWLTableCellRenderer(OREManager.getInstance())); getColumn(1).setMaxWidth(60); getColumn(2).setMaxWidth(60); getColumn(3).setMaxWidth(60); @@ -147,20 +150,6 @@ } }); - addMouseListener(new MouseAdapter() { - - final ExplanationTable table; - { - table = ExplanationTable.this; - } - - public void mouseClicked(MouseEvent e) { - if (e.getClickCount() == 2) { - System.out.println(getValueAt(table - .rowAtPoint(e.getPoint()), 0)); - } - } - }); } @Override @@ -241,6 +230,7 @@ JTable table; JButton editButton; String text; + int row; public ButtonCellEditor() { @@ -257,6 +247,7 @@ Object value, boolean isSelected, int row, int column) { text = (value == null) ? "" : value.toString(); editButton.setText(""); + this.row = row; return editButton; } @@ -268,12 +259,17 @@ @Override public void actionPerformed(ActionEvent e) { fireEditingStopped(); - OWLClassAxiomEditor editor = new OWLClassAxiomEditor(OREManager.getInstance()); - OWLAxiom ax = ((ExplanationTableModel)getModel()).getOWLAxiomAtRow(2); + OWLAxiom ax = ((ExplanationTableModel)getModel()).getOWLAxiomAtRow(row); if(ax instanceof OWLClassAxiom){ + OWLClassAxiomEditor editor = new OWLClassAxiomEditor(OREManager.getInstance()); editor.setEditedObject((OWLClassAxiom) ax); + showEditorDialog(editor, ax); + } else if(ax instanceof OWLObjectPropertyAxiom){ + OWLObjectPropertyAxiomEditor editor = new OWLObjectPropertyAxiomEditor(OREManager.getInstance()); + editor.setEditedObject((OWLObjectPropertyAxiom) ax); + showEditorDialog(editor, ax); } - showEditorDialog(editor, ax); + } } @@ -310,7 +306,7 @@ repMan.removeListener(this); } - private void showEditorDialog(final OWLClassAxiomEditor editor, OWLObject value) { + private void showEditorDialog(final OWLAxiomEditor editor, OWLObject value) { if (editor == null) { return; } @@ -366,7 +362,7 @@ dlg.setVisible(true); } - void handleEditFinished(OWLClassAxiomEditor editor){ + void handleEditFinished(OWLAxiomEditor editor){ System.out.println(editor.getEditedObject()); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java 2010-03-07 10:25:59 UTC (rev 2094) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExplanationTableModel.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -59,7 +59,7 @@ if(strikeOutIrrelevantParts){ return ManchesterSyntaxRenderer.render(ax, impMan.isSelected(ax), depth2Root, laconicExplanation); } else { -// return new ManchesterRenderer(OREManager.getInstance().getReasoner().getOWLOntologyManager()).render(ax, null); +// return OREManager.getInstance().getRendering(ax); return ManchesterSyntaxRenderer.render(ax, impMan.isSelected(ax), depth2Root); } } else if(columnIndex == 1){ Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLAxiomEditor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLAxiomEditor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLAxiomEditor.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -0,0 +1,9 @@ +package org.dllearner.tools.ore.ui.editor; + +import javax.swing.JComponent; + + +public interface OWLAxiomEditor<T> { + JComponent getEditorComponent(); + T getEditedObject(); +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLClassAxiomEditor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLClassAxiomEditor.java 2010-03-07 10:25:59 UTC (rev 2094) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLClassAxiomEditor.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -10,7 +10,7 @@ import org.semanticweb.owl.model.OWLClassAxiom; import org.semanticweb.owl.model.OWLException; -public class OWLClassAxiomEditor implements VerifiedInputEditor{ +public class OWLClassAxiomEditor implements VerifiedInputEditor, OWLAxiomEditor<OWLClassAxiom>{ private ExpressionEditor<OWLClassAxiom> editor; Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomChecker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomChecker.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomChecker.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -0,0 +1,33 @@ +package org.dllearner.tools.ore.ui.editor; + +import org.coode.manchesterowlsyntax.ManchesterOWLSyntaxEditorParser; +import org.dllearner.tools.ore.OREManager; +import org.semanticweb.owl.expression.ParserException; +import org.semanticweb.owl.model.OWLObjectPropertyAxiom; + +public class OWLObjectPropertyAxiomChecker implements OWLExpressionChecker<OWLObjectPropertyAxiom>{ + private OREManager mngr; + + + public OWLObjectPropertyAxiomChecker(OREManager mngr) { + this.mngr = mngr; + } + + + public void check(String text) throws OWLExpressionParserException { + createObject(text); + } + + + public OWLObjectPropertyAxiom createObject(String text) throws OWLExpressionParserException { + ManchesterOWLSyntaxEditorParser parser = new ManchesterOWLSyntaxEditorParser(mngr.getOWLDataFactory(), text); + parser.setOWLEntityChecker(new OREOWLEntityChecker(mngr.getOWLEntityFinder())); + try {System.out.println(parser.parseObjectPropertyAxiom()); + return parser.parseObjectPropertyAxiom(); + } + catch (ParserException e) { + + throw ParserUtil.convertException(e); + } + } +} Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomEditor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomEditor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/editor/OWLObjectPropertyAxiomEditor.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -0,0 +1,104 @@ +package org.dllearner.tools.ore.ui.editor; + +import java.awt.BorderLayout; +import java.awt.Dimension; + +import javax.swing.JComponent; +import javax.swing.JPanel; + +import org.dllearner.tools.ore.OREManager; +import org.semanticweb.owl.model.OWLException; +import org.semanticweb.owl.model.OWLObjectPropertyAxiom; + +public class OWLObjectPropertyAxiomEditor implements VerifiedInputEditor, OWLAxiomEditor<OWLObjectPropertyAxiom>{ + + private ExpressionEditor<OWLObjectPropertyAxiom> editor; + + private JComponent editingComponent; + + private OREManager oreManager; + + + public OWLObjectPropertyAxiomEditor(OREManager oreManager) { + this.oreManager = oreManager; + editor = new ExpressionEditor<OWLObjectPropertyAxiom>(oreManager, new OWLObjectPropertyAxiomChecker(oreManager)); + + editingComponent = new JPanel(new BorderLayout()); + editingComponent.add(editor); + editingComponent.setPreferredSize(new Dimension(400, 200)); + } + + + public boolean setEditedObject(OWLObjectPropertyAxiom axiom) { + if (axiom == null){ + editor.setText(""); + } + else{ + editor.setText(oreManager.getRendering(axiom)); + } + return true; + } + + + public JComponent getInlineEditorComponent() { + // Same as general editor component + return editingComponent; + } + + + public String getEditorTypeName() { + return "Object Property Axiom"; + } + + + public boolean canEdit(Object object) { + return object instanceof OWLObjectPropertyAxiom; + } + + + /** + * Gets a component that will be used to edit the specified + * object. + * @return The component that will be used to edit the object + */ + public JComponent getEditorComponent() { + return editingComponent; + } + + + /** + * Gets the object that has been edited. + * @return The edited object + */ + public OWLObjectPropertyAxiom getEditedObject() { + try { + if (editor.isWellFormed()) { + return editor.createObject(); + } + else { + return null; + } + } + catch (OWLException e) { + return null; + } + } + + + public void dispose() { + } + + public final void clear(){ + setEditedObject(null); + } + + + public void addStatusChangedListener(InputVerificationStatusChangedListener listener) { + editor.addStatusChangedListener(listener); + } + + + public void removeStatusChangedListener(InputVerificationStatusChangedListener listener) { + editor.removeStatusChangedListener(listener); + } +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterOWLSyntaxObjectRenderer.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterOWLSyntaxObjectRenderer.java 2010-03-07 10:25:59 UTC (rev 2094) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterOWLSyntaxObjectRenderer.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -149,7 +149,7 @@ public static final int LINE_LENGTH = 70; - private boolean wrap = true; + private boolean wrap = false; private DescriptionComparator descriptionComparator; Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterSyntaxRenderer.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterSyntaxRenderer.java 2010-03-07 10:25:59 UTC (rev 2094) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/rendering/ManchesterSyntaxRenderer.java 2010-03-07 19:11:53 UTC (rev 2095) @@ -1,5 +1,6 @@ package org.dllearner.tools.ore.ui.rendering; +import java.awt.Color; import java.util.StringTokenizer; import org.dllearner.core.owl.Description; @@ -51,6 +52,7 @@ } public static String render(OWLAxiom value, boolean removed, int depth){ +// String renderedString = OREManager.getInstance().getRendering(value); String renderedString = renderer.render(value, null); StringTokenizer st = new StringTokenizer(renderedString); StringBuffer bf = new StringBuffer(); @@ -88,10 +90,16 @@ } boolean isReserved = false; +// Color c = OREManager.getInstance().getKeywordColorMap().get(token); +// if(c != null){ +// color = c. +// isReserved = true; +// } for(Keyword key : Keyword.values()){ if(token.equals(key.getLabel())){ color = key.getColor(); - isReserved = true;break; + isReserved = true; + break; } } if(isReserved || unsatClass){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |