From: <ku...@us...> - 2010-03-15 09:01:52
|
Revision: 2120 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2120&view=rev Author: kurzum Date: 2010-03-15 09:01:40 +0000 (Mon, 15 Mar 2010) Log Message: ----------- added limit and offset and count to sparql description converter Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java 2010-03-14 10:50:12 UTC (rev 2119) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java 2010-03-15 09:01:40 UTC (rev 2120) @@ -28,6 +28,7 @@ import org.dllearner.utilities.datastructures.StringTuple; import org.dllearner.utilities.owl.OWLVocabulary; +import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.query.ResultSetFactory; import com.hp.hpl.jena.query.ResultSetFormatter; @@ -489,6 +490,31 @@ } /** + * variable mus be ?count + * @param sparqlQueryString + * @return -1 on failure count on success + */ + public int queryAsCount(String sparqlQueryString) { + SparqlQuery sq = new SparqlQuery(sparqlQueryString, sparqlEndpoint); + ResultSetRewindable rsw = null; + if(cache == null) { + rsw = sq.send(); + } else { + // get JSON from cache and convert to result set + String json = cache.executeSparqlQuery(sq); + rsw = SparqlQuery.convertJSONtoResultSet(json); + } + int ret = -1; + while(rsw.hasNext()){ + QuerySolution qs = rsw.nextSolution(); + ret = qs.getLiteral("count").getInt(); + + } + return ret; + + } + + /** * low level, executes query returns JSON. * * @param sparqlQueryString Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-03-14 10:50:12 UTC (rev 2119) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-03-15 09:01:40 UTC (rev 2120) @@ -73,8 +73,11 @@ private static Logger logger = Logger.getLogger(ComponentManager.class); private int limit = 5; + private int offset = -1; private boolean labels = false; private boolean distinct = false; + private boolean count = false; + private SortedSet<String> transitiveProperties =null; private Map<String,Set<String>> subclassMap = null; @@ -103,7 +106,12 @@ public String getSparqlQuery( Description description) { description.accept(this); expandSubclasses(); - String ret = "SELECT "+distinct()+"?subject "+((labels)?"?label":"")+" { "+labels()+ query + " \n } " + limit(); + String ret = ""; + if(count){ + ret = "SELECT count(distinct(?subject)) as ?count { "+ query + " \n } " ; + }else{ + ret = "SELECT "+distinct()+"?subject "+((labels)?"?label":"")+" { "+labels()+ query + " \n } " + limit(); + } reset(); return ret; } @@ -154,7 +162,13 @@ } private String limit() { - return (limit > 0) ? " LIMIT " + limit + " " : ""; + if (limit > 0 && offset > 0){ + return " LIMIT " + limit + " OFFSET "+offset+" "; + }else if(limit > 0 ){ + return " LIMIT " + limit + " "; + }else { + return ""; + } } private String labels() { return (labels)?"\n?subject rdfs:label ?label . ":""; @@ -187,6 +201,14 @@ public void setSubclassMap(Map<String, Set<String>> subclassMap) { this.subclassMap = subclassMap; } + + public void setCount(boolean count) { + this.count = count; + } + + public void setOffset(int offset) { + this.offset = offset; + } public static String getSparqlQuery(String descriptionKBSyntax, int limit, boolean labels, boolean distinct) throws ParseException { Description d = KBParser.parseConcept(descriptionKBSyntax); Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java 2010-03-14 10:50:12 UTC (rev 2119) +++ trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java 2010-03-15 09:01:40 UTC (rev 2120) @@ -58,6 +58,17 @@ this.addNegTest(negTest); } + public static Examples getInstance(Collection<String> pos, Collection<String> neg){ + Examples ex = new Examples(); + for (String p : pos) { + ex.addPosTrain(p); + } + for (String n : neg) { + ex.addNegTrain(n); + } + return ex; + } + /** * calculates precision based on the test set * @param retrieved This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |