From: <lor...@us...> - 2013-06-12 07:34:34
|
Revision: 3989 http://sourceforge.net/p/dl-learner/code/3989 Author: lorenz_b Date: 2013-06-12 07:34:30 +0000 (Wed, 12 Jun 2013) Log Message: ----------- Added class for query execution. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java Added Paths: ----------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/QueryExecutionFactoryHttp.java Modified: trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java 2013-06-11 13:07:42 UTC (rev 3988) +++ trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java 2013-06-12 07:34:30 UTC (rev 3989) @@ -71,6 +71,8 @@ } public SortedSet<Description> getSubClasses(Description concept) { + String s= concept.toString(); + SortedSet<Description> result = subsumptionHierarchyDown.get(concept); if(result == null) { logger.error("Query for sub class of " + concept + " in subsumption hierarchy, but the class is not contained in the (downward) hierarchy, e.g. because the class does not exist or is ignored. Returning empty result instead."); Added: trunk/components-core/src/main/java/org/dllearner/kb/sparql/QueryExecutionFactoryHttp.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/QueryExecutionFactoryHttp.java (rev 0) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/QueryExecutionFactoryHttp.java 2013-06-12 07:34:30 UTC (rev 3989) @@ -0,0 +1,60 @@ +package org.dllearner.kb.sparql; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import org.aksw.jena_sparql_api.core.QueryExecutionFactoryBackString; + +import com.google.common.base.Joiner; +import com.hp.hpl.jena.query.QueryExecution; + +/** + * @author Claus Stadler + * <p/> + * Date: 7/23/11 + * Time: 9:47 PM + */ +public class QueryExecutionFactoryHttp + extends QueryExecutionFactoryBackString +{ + private String service; + + private List<String> defaultGraphs = new ArrayList<String>(); + + public QueryExecutionFactoryHttp(String service) { + this(service, Collections.<String>emptySet()); + } + + public QueryExecutionFactoryHttp(String service, String defaultGraphName) { + this(service, Collections.singleton(defaultGraphName)); + } + + public QueryExecutionFactoryHttp(String service, Collection<String> defaultGraphs) { + this.service = service; + this.defaultGraphs = new ArrayList<String>(defaultGraphs); + Collections.sort(this.defaultGraphs); + } + + @Override + public String getId() { + return service; + } + + @Override + public String getState() { + return Joiner.on("|").join(defaultGraphs); + } + + @Override + public QueryExecution createQueryExecution(String queryString) { + QueryEngineHTTP result = new QueryEngineHTTP(service, queryString); + result.setDefaultGraphURIs(defaultGraphs); + + //QueryExecution result = QueryExecutionWrapper.wrap(engine); + + return result; + } +} + Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java 2013-06-11 13:07:42 UTC (rev 3988) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java 2013-06-12 07:34:30 UTC (rev 3989) @@ -310,6 +310,9 @@ // System.out.println("FIC: " + description + " " + individual); if (description instanceof NamedClass) { + if(((NamedClass) description).getURI().equals(Thing.instance.getURI())){ + return true; + } else if(!atomicConcepts.contains(description)) { throw new ReasoningMethodUnsupportedException("Class " + description + " is not contained in knowledge base."); } Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-06-11 13:07:42 UTC (rev 3988) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-06-12 07:34:30 UTC (rev 3989) @@ -104,6 +104,8 @@ private Map<DatatypeProperty, Integer> dataPropertyPopularityMap; private boolean prepared = false; + + private ConceptComparator conceptComparator = new ConceptComparator(); public SPARQLReasoner(SparqlEndpointKS ks) { @@ -602,7 +604,6 @@ if(limit != 0) { query += " LIMIT " + limit; } - System.out.println("query: "+query); ResultSet rs = executeSelectQuery(query); QuerySolution qs; while(rs.hasNext()){ @@ -1149,16 +1150,22 @@ if(description instanceof Nothing){ description = new NamedClass("http://www.w3.org/2002/07/owl#Nothing"); } - SortedSet<Description> superClasses = new TreeSet<Description>(); + SortedSet<Description> superClasses = new TreeSet<Description>(conceptComparator); String query = String.format("SELECT ?sup {<%s> <%s> ?sup. FILTER(isIRI(?sup))}", ((NamedClass)description).getURI().toString(), RDFS.subClassOf.getURI() ); ResultSet rs = executeSelectQuery(query); QuerySolution qs; + String uri = null; while(rs.hasNext()){ qs = rs.next(); - superClasses.add(new NamedClass(qs.getResource("sup").getURI())); + uri = qs.getResource("sup").getURI(); + if(uri.equals(Thing.instance.getURI().toString())){ + superClasses.add(Thing.instance); + } else { + superClasses.add(new NamedClass(uri)); + } } superClasses.remove(description); return superClasses; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |