From: <ku...@us...> - 2010-02-18 21:07:18
|
Revision: 2068 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2068&view=rev Author: kurzum Date: 2010-02-18 21:07:08 +0000 (Thu, 18 Feb 2010) Log Message: ----------- new transitive option for virtuoso Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-18 18:13:57 UTC (rev 2067) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-18 21:07:08 UTC (rev 2068) @@ -30,8 +30,6 @@ import org.apache.log4j.Logger; import org.dllearner.algorithms.gp.ADC; import org.dllearner.core.ComponentManager; -import org.dllearner.core.owl.Constant; -import org.dllearner.core.owl.Datatype; import org.dllearner.core.owl.DatatypeExactCardinalityRestriction; import org.dllearner.core.owl.DatatypeMaxCardinalityRestriction; import org.dllearner.core.owl.DatatypeMinCardinalityRestriction; @@ -54,7 +52,6 @@ import org.dllearner.core.owl.ObjectValueRestriction; import org.dllearner.core.owl.StringValueRestriction; import org.dllearner.core.owl.Thing; -import org.dllearner.core.owl.TypedConstant; import org.dllearner.core.owl.Union; import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; @@ -75,6 +72,11 @@ private int limit = 5; private boolean labels = false; private boolean distinct = false; + private SortedSet<String> transitiveProperties =null; + public void setTransitiveProperties(SortedSet<String> transitiveProperties) { + this.transitiveProperties = transitiveProperties; + } + private Map<String,String> classToSubclassesVirtuoso = null; private Stack<String> stack = new Stack<String>(); @@ -318,7 +320,11 @@ */ public void visit(ObjectSomeRestriction description) { logger.trace("ObjectSomeRestriction"); - query += "\n?" + stack.peek() + " <" + description.getRole() + "> ?object" + currentObject + ". "; + String option = ""; + if(transitiveProperties!= null && transitiveProperties.contains(description.getRole().toString()) ){ + option =" OPTION (TRANSITIVE , t_in(?" + stack.peek()+"), t_out(?object" + currentObject + "), T_MIN(0), T_MAX(6), T_DIRECTION 1 , T_NO_CYCLES) "; + } + query += "\n?" + stack.peek() + " <" + description.getRole() + "> ?object" + currentObject + option + ". "; stack.push("object" + currentObject); currentObject++; description.getChild(0).accept(this); Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-18 18:13:57 UTC (rev 2067) +++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-18 21:07:08 UTC (rev 2068) @@ -34,9 +34,9 @@ import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor; import org.dllearner.learningproblems.PosNegLPStandard; +import org.dllearner.parser.ParseException; import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.refinementoperators.RhoDRDown; -import org.dllearner.utilities.Files; import org.dllearner.utilities.Helper; import org.dllearner.utilities.JamonMonitorLogger; import org.dllearner.utilities.examples.ExampleDataCollector; @@ -46,10 +46,6 @@ import org.dllearner.utilities.experiments.Examples; import org.dllearner.utilities.experiments.Table; -import com.hp.hpl.jena.query.QuerySolution; -import com.hp.hpl.jena.query.ResultSetRewindable; -import com.hp.hpl.jena.rdf.model.Literal; -import com.hp.hpl.jena.rdf.model.Resource; import com.jamonapi.MonKeyImp; import com.jamonapi.Monitor; @@ -96,7 +92,7 @@ static List<MonKeyImp> mks = new ArrayList<MonKeyImp>(Arrays.asList(new MonKeyImp[] { logPrecision, logRecall, logFMeasure, logAccuracy, logLearningTime, logIterationTime, nrOfRetrievedInstances})); - static int iterations = 5; + static int iterations = 4; static int folds = 10; static int printSentences = 3; @@ -121,12 +117,9 @@ } - - folds = 2; - iterations = 1; long n = System.currentTimeMillis(); passiveNoZU(); -// passiveWithZu(); + passiveWithZu(); String a="\n"; for(String s: concepts){ @@ -334,6 +327,7 @@ /* RETRIEVING */ Monitor queryTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "queryTime") .start(); + retrieved = getSentences(ed, config.resultLimit); config.add(nrOfRetrievedInstances, i, retrieved.size()); logger.debug("retrieved: "+retrieved.size()); @@ -573,8 +567,23 @@ sparqlQueryGood = " \n define input:inference \"" + rulegraph + "\" \n" + "" + sparqlQueryGood; logger.debug(sparqlQueryGood); - - result.addAll(sparqlTasks.queryAsSet(sparqlQueryGood, "subject")); + try{ + result.addAll(sparqlTasks.queryAsSet(sparqlQueryGood, "subject")); + }catch (Exception e) { + e.printStackTrace(); + logger.warn("Virtuoso error trying this:"); + SortedSet<String> s = new TreeSet<String> (Arrays.asList(new String[]{"http://nlp2rdf.org/ontology/nextToken", "http://nlp2rdf.org/ontology/previousToken"})); + visit.setTransitiveProperties(s); + try { + sparqlQueryGood = " \n define input:inference \"" + rulegraph + "\" \n" + "" + visit.getSparqlQuery(ed.getDescription().toKBSyntaxString()); + logger.warn(sparqlQueryGood); + result.addAll(sparqlTasks.queryAsSet(sparqlQueryGood, "subject")); + + } catch (ParseException e1) { + e1.printStackTrace(); + } + } + m.stop(); logger.debug("query avg: " + ((double) m.getAvg() / (double) 1000) + " seconds (last: " + ((double) m.getLastValue() / (double) 1000) + ")"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |