From: <ku...@us...> - 2010-02-01 15:20:26
|
Revision: 1986 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1986&view=rev Author: kurzum Date: 2010-02-01 15:20:19 +0000 (Mon, 01 Feb 2010) Log Message: ----------- - option dissolveBlanknodes works now - couldn't fix blanknode issue, some weird result set is returned, caught the error and logged a warning Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/scripts/NewSample.java trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -11,6 +11,7 @@ import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSetRewindable; +import com.hp.hpl.jena.rdf.model.RDFNode; public class BlankNodeCollector { @@ -41,6 +42,11 @@ } + /** + * @param rsw + * @param depth + * @return true if there are more blanknodes + */ public static boolean testResultSet(ResultSetRewindable rsw, int depth){ List<String> vars = new ArrayList<String>(); vars.add("o0"); @@ -63,9 +69,25 @@ rsw.reset(); return true; } + + //true to stop expansion private static boolean testOneQuerySolution(List<String> vars, QuerySolution q){ + +// System.out.println(q); +// System.out.println(vars); +// for (String v : vars) { +// RDFNode n = q.get(v); +// if(n==null){ +// System.out.println("returning true"); +// return true; +// } +// +// } + for (String v : vars) { - if(!q.get(v).isAnon()){ + RDFNode n = q.get(v); + if(!n.isAnon()){ +// System.out.println(n); return true; } } Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -30,6 +30,7 @@ import org.dllearner.kb.sparql.SparqlQueryMaker; import org.dllearner.utilities.JamonMonitorLogger; import org.dllearner.utilities.datastructures.RDFNodeTuple; +import org.dllearner.utilities.owl.OWLVocabulary; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSetRewindable; @@ -108,6 +109,9 @@ // main function for resolving blanknodes @Override protected void disambiguateBlankNodes(String uri, SortedSet<RDFNodeTuple> resultSet){ + if(!isDissolveBlankNodes()){ + return; + } Monitor bnodeMonitor = JamonMonitorLogger.getTimeMonitor(SparqlTupleAquisitor.class, "blanknode time").start(); try{ for (RDFNodeTuple tuple : resultSet) { @@ -133,19 +137,26 @@ // extends a sparql query as long as there are undissolved blanknodes private void dissolveBlankNodes(int currentId, String uri, RDFNodeTuple tuple){ - int currentDepth = 1; - int lastDepth = 1; - ResultSetRewindable rsw=null; - do{ - String q = BlankNodeCollector.makeQuery(uri, tuple.a.toString(), currentDepth); - //System.out.println(q); - - rsw = sparqlTasks.queryAsResultSet(q); - lastDepth = currentDepth; - }while (!BlankNodeCollector.testResultSet(rsw, currentDepth++)); - - assignIds( currentId, rsw, lastDepth); - + try{ + int currentDepth = 1; + int lastDepth = 1; + ResultSetRewindable rsw=null; + do{ + String p = tuple.a.toString(); + if(p.equals(OWLVocabulary.RDFS_COMMENT) || p.equals(OWLVocabulary.RDFS_LABEL) ){ + return ; + } + String q = BlankNodeCollector.makeQuery(uri, p, currentDepth); +// System.out.println(q); + rsw = sparqlTasks.queryAsResultSet(q); + rsw.reset(); + lastDepth = currentDepth; + }while (!BlankNodeCollector.testResultSet(rsw, currentDepth++)); + + assignIds( currentId, rsw, lastDepth); + }catch (Exception e) { + logger.info("An error occurred while dissolving blanknodes"); + } } //takes the resultset and assigns internal ids Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -45,7 +45,7 @@ protected int mode = 0; protected boolean uriDebugCheck = true; - protected boolean dissolveBlankNodes = true; + protected boolean dissolveBlankNodes = false; public final SortedSet<RDFNodeTuple> getTupelForResource(String uri){ checkURIforValidity(uri); Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -47,13 +47,15 @@ private boolean closeAfterRecursion = true; private boolean getPropertyInformation = false; + + private boolean dissolveBlankNodes = false; private int breakSuperClassesAfter = 200; public Configuration(TupleAquisitor tupelAquisitor, Manipulator manipulator, int recursiondepth, boolean getAllSuperClasses, boolean closeAfterRecursion, - boolean getPropertyInformation, int breakSuperClassesAfter) { + boolean getPropertyInformation, int breakSuperClassesAfter, boolean dissolveBlankNodes) { this.tupelAquisitor = tupelAquisitor; this.manipulator = manipulator; @@ -62,6 +64,7 @@ this.closeAfterRecursion = closeAfterRecursion; this.getPropertyInformation = getPropertyInformation; this.breakSuperClassesAfter = breakSuperClassesAfter; + this.dissolveBlankNodes = dissolveBlankNodes; this.owlAPIOntologyCollector = new OWLAPIOntologyCollector(); @@ -70,10 +73,10 @@ public Configuration(TupleAquisitor tupelAquisitor, Manipulator manipulator, int recursiondepth, boolean getAllSuperClasses, boolean closeAfterRecursion, - boolean getPropertyInformation, int breakSuperClassesAfter, + boolean getPropertyInformation, int breakSuperClassesAfter, boolean dissolveBlankNodes, OWLAPIOntologyCollector owlAPIOntologyCollector) { this(tupelAquisitor, manipulator, recursiondepth, getAllSuperClasses, - closeAfterRecursion, getAllSuperClasses, breakSuperClassesAfter); + closeAfterRecursion, getAllSuperClasses, breakSuperClassesAfter,dissolveBlankNodes); this.owlAPIOntologyCollector = owlAPIOntologyCollector; } @@ -113,4 +116,8 @@ return owlAPIOntologyCollector; } + public boolean isDissolveBlankNodes() { + return dissolveBlankNodes; + } + } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -70,6 +70,7 @@ * */ public Node expandNode(String uri, TupleAquisitor tupleAquisitor) { + tupleAquisitor.setDissolveBlankNodes(configuration.isDissolveBlankNodes()); SimpleClock sc = new SimpleClock(); if(tupleAquisitor instanceof SparqlTupleAquisitorImproved){ @@ -146,7 +147,9 @@ } Monitor m = JamonMonitorLogger.getTimeMonitor(ExtractionAlgorithm.class, "TimeBlankNode").start(); - expandBlankNodes(getBlankNodes(collectNodes),tupleAquisitor); + if( configuration.isDissolveBlankNodes()){ + expandBlankNodes(getBlankNodes(collectNodes),tupleAquisitor); + } m.stop(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -61,7 +61,6 @@ import org.dllearner.utilities.JamonMonitorLogger; import org.dllearner.utilities.datastructures.StringTuple; import org.dllearner.utilities.statistics.SimpleClock; -import org.mindswap.pellet.utils.progress.SilentProgressMonitor; import org.semanticweb.owl.model.OWLOntology; import com.jamonapi.Monitor; @@ -81,10 +80,7 @@ private static final boolean debug = false; //private static final boolean threaded = debug && true ; - - // tupleaquisitor - //private static final boolean debugUseImprovedTupleAquisitor = debug && false; // switches // sysex private static final boolean debugExitAfterExtraction = debug && false; // switches @@ -259,7 +255,8 @@ .getGetAllSuperClasses(), configurator .getCloseAfterRecursion(), configurator .getGetPropertyInformation(), configurator - .getBreakSuperClassRetrievalAfter()); + .getBreakSuperClassRetrievalAfter(), + configurator.getDissolveBlankNodes()); // give everything to the manager m.useConfiguration(configuration); Modified: trunk/src/dl-learner/org/dllearner/scripts/NewSample.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/NewSample.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/scripts/NewSample.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -149,7 +149,7 @@ // all components need to be initialised before they can be used ks.init(); - f.init(); + f.init(); lp.init(); la.init(); Modified: trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -78,6 +78,7 @@ boolean getAllSuperClasses = true; boolean closeAfterRecursion = true; boolean getPropertyInformation = false; + boolean dissolveBlankNodes = false; int breakSuperClassesAfter = 1000; String ontologyURI = "http://www.fragment.org/fragment"; @@ -93,6 +94,7 @@ closeAfterRecursion, getPropertyInformation, breakSuperClassesAfter, + dissolveBlankNodes, collector ); Modified: trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java 2010-01-25 21:21:08 UTC (rev 1985) +++ trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java 2010-02-01 15:20:19 UTC (rev 1986) @@ -27,8 +27,11 @@ import org.dllearner.kb.sparql.SPARQLTasks; import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.utilities.datastructures.SetManipulation; +import com.hp.hpl.jena.query.ResultSetRewindable; + /** * Test class for SPARQL mode. * @@ -61,6 +64,7 @@ .knowledgeSource(SparqlKnowledgeSource.class); ks.getConfigurator().setUrl(endPoint.getURL()); ks.getConfigurator().setInstances(posExamples); + ks.getConfigurator().setDissolveBlankNodes(false); ks.init(); // ReasonerComponent reasoner = cm.reasoner(FastInstanceChecker.class, // ks); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |