From: <lor...@us...> - 2010-07-17 15:26:48
|
Revision: 2205 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2205&view=rev Author: lorenz_b Date: 2010-07-17 15:26:41 +0000 (Sat, 17 Jul 2010) Log Message: ----------- Continued SPARQL debug component. Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java trunk/src/dl-learner/org/dllearner/tools/ore/sparql/IncrementalInconsistencyFinder.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/DebugFromSparqlDialog.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/KnowledgeSourcePanelDescriptor.java Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java 2010-07-17 06:24:49 UTC (rev 2204) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ExplanationManager.java 2010-07-17 15:26:41 UTC (rev 2205) @@ -65,8 +65,8 @@ private ExplanationManager(OREManager oreMan) { OREManager.getInstance().addListener(this); this.reasoner = oreMan.getReasoner().getReasoner(); - this.manager = reasoner.getManager(); this.ontology = oreMan.getReasoner().getOWLAPIOntologies(); + this.manager = ontology.getOWLOntologyManager(); dataFactory = manager.getOWLDataFactory(); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2010-07-17 06:24:49 UTC (rev 2204) +++ trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2010-07-17 15:26:41 UTC (rev 2205) @@ -27,6 +27,7 @@ import org.dllearner.core.owl.ObjectProperty; import org.dllearner.core.owl.ObjectPropertyExpression; import org.dllearner.core.owl.Union; +import org.dllearner.kb.OWLAPIOntology; import org.dllearner.kb.OWLFile; import org.dllearner.kb.sparql.SparqlKnowledgeSource; import org.dllearner.learningproblems.EvaluatedDescriptionClass; @@ -117,9 +118,17 @@ public void setCurrentKnowledgeSource(SparqlKnowledgeSource ks){ this.ks = ks; - } + public void setCurrentKnowledgeSource(OWLOntology ontology){ + ks = new OWLAPIOntology(ontology); + try { + ks.init(); + } catch (ComponentInitException e) { + e.printStackTrace(); + } + } + public KnowledgeSource getKnowledgeSource(){ return ks; } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/sparql/IncrementalInconsistencyFinder.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/sparql/IncrementalInconsistencyFinder.java 2010-07-17 06:24:49 UTC (rev 2204) +++ trunk/src/dl-learner/org/dllearner/tools/ore/sparql/IncrementalInconsistencyFinder.java 2010-07-17 15:26:41 UTC (rev 2205) @@ -107,10 +107,8 @@ private Monitor reasonerMonitor = JamonMonitorLogger.getTimeMonitor(ExtractionAlgorithm.class, "Reasoning monitor"); public IncrementalInconsistencyFinder() throws OWLOntologyCreationException, IOException{ - manager = OWLManager.createOWLOntologyManager(); - ontology = manager.createOntology(); - factory = manager.getOWLDataFactory(); + SimpleLayout layout = new SimpleLayout(); ConsoleAppender consoleAppender = new ConsoleAppender(layout); // DailyRollingFileAppender fileAppender = new DailyRollingFileAppender(layout, "log/incremental.log", "'.'yyyy-MM-dd_HH"); @@ -136,8 +134,16 @@ mon.setMessage("Searching..."); + manager = OWLManager.createOWLOntologyManager(); + try { + ontology = manager.createOntology(IRI.create(defaultGraphURI + "/" + "fragment")); + } catch (OWLOntologyCreationException e1) { + e1.printStackTrace(); + } + factory = manager.getOWLDataFactory(); reasoner = PelletReasonerFactory.getInstance().createNonBufferingReasoner(ontology); - + expGen = new PelletExplanation((PelletReasoner)reasoner); + consistent = true; overallMonitor.reset(); @@ -148,8 +154,10 @@ int disjointWithCount = getAxiomCountForPredicate(OWL.disjointWith); int equivalentClassCount = getAxiomCountForPredicate(OWL.equivalentClass); int subClassOfCount = getAxiomCountForPredicate(RDFS.subClassOf); + int domainCount = getAxiomCountForPredicate(RDFS.domain); int rangeCount = getAxiomCountForPredicate(RDFS.range); + int subPropertyOfCount = getAxiomCountForPredicate(RDFS.subPropertyOf); int equivalentPropertyCount = getAxiomCountForPredicate(OWL.equivalentProperty); int inverseOfCount = getAxiomCountForPredicate(OWL.inverseOf); @@ -157,7 +165,13 @@ int inverseFunctionalCount = getAxiomCountForObject(OWL.InverseFunctionalProperty); int transitiveCount = getAxiomCountForObject(OWL.TransitiveProperty); + int classAssertionCount = getAxiomCountForPredicate(RDF.type); + mon.setSize(disjointWithCount + equivalentClassCount + subClassOfCount + domainCount + rangeCount + + subPropertyOfCount + equivalentPropertyCount + inverseOfCount + functionalCount + + inverseFunctionalCount + transitiveCount); + + Set<OWLClass> visitedClasses = new HashSet<OWLClass>(); Set<OWLNamedIndividual> visitedIndividuals = new HashSet<OWLNamedIndividual>(); Set<OWLObject> visitedLinkedDataResources = new HashSet<OWLObject>(); @@ -177,6 +191,7 @@ disjointAxioms.addAll(retrieveClassExpressionsAxioms(OWL.disjointWith, AXIOM_COUNT, OFFSET * i)); manager.addAxioms(ontology, disjointAxioms); } + mon.setProgress(disjointAxioms.size()); if(ontology.getAxiomCount(AxiomType.EQUIVALENT_CLASSES) < equivalentClassCount){ manager.addAxioms(ontology, retrieveClassExpressionsAxioms(OWL.equivalentClass, AXIOM_COUNT, OFFSET * i)); } @@ -286,12 +301,12 @@ classAssertionAxioms.addAll(retrieveClassAssertionAxiomsForClass(cls, 50)); visitedClasses.add(cls); } - if(!isConsistent()){ - break; - } + } manager.addAxioms(ontology, classAssertionAxioms); - + if(!isConsistent()){ + break; + } //for each individual in the ClassAssertion axioms found above, we retrieve further informations for(OWLClassAssertionAxiom ax : classAssertionAxioms){ if(visitedIndividuals.contains(ax.getIndividual().asOWLNamedIndividual())){ @@ -299,7 +314,6 @@ } manager.addAxioms(ontology, retrieveAxiomsForIndividual(ax.getIndividual().asOWLNamedIndividual(), 1000)); visitedIndividuals.add(ax.getIndividual().asOWLNamedIndividual()); - reasonerMonitor.start(); if(!isConsistent()){ break; } @@ -362,7 +376,6 @@ // for(ATermAppl a : ((PelletReasoner)reasoner).getKB().getExplanationSet()){ // System.err.println(a); // } - System.out.println(expGen.getInconsistencyExplanation()); // for(Set<OWLAxiom> exp : expGen.getInconsistencyExplanations()){ // for(OWLAxiom ax : exp){ // System.out.println(ax); @@ -381,27 +394,26 @@ // } // // } - try { - ManchesterSyntaxExplanationRenderer renderer = new ManchesterSyntaxExplanationRenderer(); - PrintWriter out = new PrintWriter( System.out ); - renderer.startRendering( out ); - renderer.render(expGen.getInconsistencyExplanations()); - renderer.endRendering(); - } catch (UnsupportedOperationException e) { - e.printStackTrace(); - } catch (OWLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } +// try { +// ManchesterSyntaxExplanationRenderer renderer = new ManchesterSyntaxExplanationRenderer(); +// PrintWriter out = new PrintWriter( System.out ); +// renderer.startRendering( out ); +// renderer.render(expGen.getInconsistencyExplanations()); +// renderer.endRendering(); +// } catch (UnsupportedOperationException e) { +// e.printStackTrace(); +// } catch (OWLException e) { +// e.printStackTrace(); +// } catch (IOException e) { +// e.printStackTrace(); +// } } private boolean isConsistent(){ reasonerMonitor.start(); if(!consistent || !reasoner.isConsistent()){ - System.out.println("EXPLANATION: " + expGen.getInconsistencyExplanation()); - mon.inconsistencyFound(expGen.getInconsistencyExplanation()); +// mon.inconsistencyFound(expGen.getInconsistencyExplanation()); consistent = false; } reasonerMonitor.stop(); @@ -412,6 +424,10 @@ return ontology; } + public Set<OWLAxiom> getExplanation(){ + return expGen.getInconsistencyExplanation(); + } + /** * THis method checks incrementally for unsatisfiable classes in the knowledgebase. * @param endpointURI Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/DebugFromSparqlDialog.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/DebugFromSparqlDialog.java 2010-07-17 06:24:49 UTC (rev 2204) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/DebugFromSparqlDialog.java 2010-07-17 15:26:41 UTC (rev 2205) @@ -33,6 +33,7 @@ import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JProgressBar; import javax.swing.JTextField; import javax.swing.JToggleButton; import javax.swing.ProgressMonitor; @@ -46,12 +47,12 @@ import javax.swing.text.Document; import javax.swing.text.JTextComponent; -import org.dllearner.kb.sparql.SparqlKnowledgeSource; import org.dllearner.tools.ore.OREApplication; import org.dllearner.tools.ore.sparql.IncrementalInconsistencyFinder; import org.dllearner.tools.ore.sparql.SPARQLProgressMonitor; import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator; import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import com.clarkparsia.owlapi.explanation.PelletExplanation; @@ -79,8 +80,12 @@ private JLabel messageLabel; private String progressMessage; + private int progress; private boolean canceled; + private JProgressBar progressBar; + private IncrementalInconsistencyFinder inc; + private SparqlExtractOptionsPanel optionsPanel; private JToggleButton optionsButton; private ImageIcon toggledIcon = new ImageIcon(OREApplication.class.getResource("toggled.gif")); @@ -97,7 +102,6 @@ "</tr> " + "</table></html>"; - private SparqlKnowledgeSource ks; private OntologyExtractingTask extractTask; private ProgressMonitor mon; private Timer t; @@ -183,6 +187,9 @@ messageLabel = new JLabel(""); panel.add(messageLabel, c); + progressBar = new JProgressBar(); + panel.add(progressBar, c); + JLabel padding = new JLabel(); c.weighty = 1.0; panel.add(padding, c); @@ -193,6 +200,7 @@ private void addPredefinedEndpoints(){ endpointToDefaultGraph = new HashMap<URI, List<String>>(); endpointToDefaultGraph.put(URI.create("http://dbpedia-live.openlinksw.com/sparql/"), Collections.singletonList("http://dbpedia.org")); + endpointToDefaultGraph.put(URI.create("http://localhost:8890/sparql"), Collections.singletonList("http://opencyc2.org")); for(URI url : endpointToDefaultGraph.keySet()){ comboBox.addItem(url.toString()); } @@ -259,15 +267,15 @@ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setLocation(screenSize.width / 2 - getWidth() / 2, screenSize.height / 2 - getHeight() / 2); - setVisible(true); +// setVisible(true); } }); - + setVisible(true); return returnCode; } - private void extract() { + private void searchInconsistency() { messageLabel.setText("Checking SPARQL endpoint availability"); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); mon = new ProgressMonitor(this, "Extracting fragment", "", 0, 100); @@ -366,15 +374,14 @@ } - public SparqlKnowledgeSource getKnowledgeSource(){ - return ks; + public OWLOntology getOWLOntology(){ + return inc.getOntology(); } - class OntologyExtractingTask extends SwingWorker<Void, Void>{ + private class OntologyExtractingTask extends SwingWorker<Void, Void>{ private SPARQLProgressMonitor mon; private JDialog dialog; - private IncrementalInconsistencyFinder inc; public OntologyExtractingTask(JDialog dialog, SPARQLProgressMonitor mon) { this.mon = mon; @@ -411,7 +418,7 @@ public void done() { System.out.println(inc.getOntology()); dialog.setCursor(null); - if(!isCancelled() && ks != null){ + if(!isCancelled()){ okButton.setEnabled(true); } else if(isCancelled()){ System.out.println("Canceled"); @@ -425,7 +432,7 @@ public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("Search")){ canceled = false; - extract(); + searchInconsistency(); } else if(e.getActionCommand().equals("Ok")){ returnCode = OK_RETURN_CODE; closeDialog(); @@ -506,18 +513,23 @@ messageLabel.setText(progressMessage); } }); - } @Override - public void setProgress(long progress) { - // TODO Auto-generated method stub + public void setProgress(long progressLenght) { + this.progress = (int)progressLenght; + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + progressBar.setValue(progress); + } + }); } @Override public void setSize(long size) { - // TODO Auto-generated method stub + progressBar.setMaximum((int)size); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/KnowledgeSourcePanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/KnowledgeSourcePanelDescriptor.java 2010-07-17 06:24:49 UTC (rev 2204) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/KnowledgeSourcePanelDescriptor.java 2010-07-17 15:26:41 UTC (rev 2205) @@ -167,6 +167,7 @@ ExtractFromSparqlDialog dialog = new ExtractFromSparqlDialog(getWizard().getDialog()); int ret = dialog.showDialog(); if(ret == ExtractFromSparqlDialog.OK_RETURN_CODE){ + currentURI = null; OREManager.getInstance().setCurrentKnowledgeSource(dialog.getKnowledgeSource()); new OntologyLoadingTask().execute(); } @@ -176,8 +177,11 @@ private void handleDebugFromSparqlEndpoint(){ DebugFromSparqlDialog dialog = new DebugFromSparqlDialog(getWizard().getDialog()); int ret = dialog.showDialog(); - - + if(ret == DebugFromSparqlDialog.OK_RETURN_CODE){ + currentURI = null; + OREManager.getInstance().setCurrentKnowledgeSource(dialog.getOWLOntology()); + new OntologyLoadingTask().execute(); + } } private void handleOpenFromRecent(URI uri){ @@ -267,7 +271,9 @@ if(!isCancelled()){ TaskManager.getInstance().setTaskFinished(); getWizard().setNextFinishButtonEnabled(true); - updateRecentList(); + if(currentURI != null){ + updateRecentList(); + } updateMetrics(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |