From: <lor...@us...> - 2013-10-03 09:14:39
|
Revision: 4115 http://sourceforge.net/p/dl-learner/code/4115 Author: lorenz_b Date: 2013-10-03 09:14:35 +0000 (Thu, 03 Oct 2013) Log Message: ----------- Added method which returns a set of domains and ranges instead of the intersection. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-10-03 08:53:06 UTC (rev 4114) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-10-03 09:14:35 UTC (rev 4115) @@ -570,7 +570,7 @@ return schema; } - private Model loadIncrementally(String query){System.err.println(query); + private Model loadIncrementally(String query){ QueryExecutionFactory old = qef; qef = new QueryExecutionFactoryPaginated(qef, 10000); QueryExecution qe = qef.createQueryExecution(query); @@ -1200,7 +1200,24 @@ } return null; } + + public SortedSet<NamedClass> getDomains(ObjectProperty objectProperty) { + String query = String.format("SELECT ?domain WHERE {" + + "<%s> <%s> ?domain. FILTER(isIRI(?domain))" + + "}", + objectProperty.getName(), RDFS.domain.getURI()); + ResultSet rs = executeSelectQuery(query); + QuerySolution qs; + SortedSet<NamedClass> domains = new TreeSet<NamedClass>(); + while(rs.hasNext()){ + qs = rs.next(); + domains.add(new NamedClass(qs.getResource("domain").getURI())); + + } + return domains; + } + @Override public Description getDomain(DatatypeProperty datatypeProperty) { String query = String.format("SELECT ?domain WHERE {" + @@ -1237,7 +1254,6 @@ while(rs.hasNext()){ qs = rs.next(); ranges.add(new NamedClass(qs.getResource("range").getURI())); - } if(ranges.size() == 1){ return ranges.get(0); @@ -1246,7 +1262,23 @@ } return null; } + + public SortedSet<NamedClass> getRanges(ObjectProperty objectProperty) { + String query = String.format("SELECT ?range WHERE {" + + "<%s> <%s> ?range. FILTER(isIRI(?range))" + + "}", + objectProperty.getName(), RDFS.range.getURI()); + ResultSet rs = executeSelectQuery(query); + QuerySolution qs; + SortedSet<NamedClass> ranges = new TreeSet<NamedClass>(); + while(rs.hasNext()){ + qs = rs.next(); + ranges.add(new NamedClass(qs.getResource("range").getURI())); + } + return ranges; + } + public boolean isObjectProperty(String propertyURI){ String query = String.format("ASK {<%s> a <%s>}", propertyURI, OWL.ObjectProperty.getURI()); boolean isObjectProperty = executeAskQuery(query); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |