From: <ku...@us...> - 2008-08-13 17:39:28
|
Revision: 1065 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1065&view=rev Author: kurzum Date: 2008-08-13 17:39:19 +0000 (Wed, 13 Aug 2008) Log Message: ----------- removed some unnecessary classes, complete refactoring of SparqlQueryMaker Modified Paths: -------------- 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/extraction/Manager.java trunk/src/dl-learner/org/dllearner/kb/extraction/TypedSparqlQuery.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/extraction/Scrap.java trunk/src/dl-learner/org/dllearner/kb/extraction/SparqlTupelAquisitor.java trunk/src/dl-learner/org/dllearner/kb/extraction/TupelAquisitor.java trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -19,8 +19,9 @@ */ package org.dllearner.kb.extraction; +import org.dllearner.kb.sparql.SPARQLTasks; import org.dllearner.kb.sparql.SparqlEndpoint; -import org.dllearner.kb.sparql.SparqlQueryType; +import org.dllearner.kb.sparql.SparqlQueryMaker; /** * Stores all configuration settings. this class collects all configuration @@ -30,8 +31,10 @@ */ public class Configuration { + private SPARQLTasks sparqlTasks; + private SparqlEndpoint endpoint; - private SparqlQueryType sparqlQueryType; + private SparqlQueryMaker sparqlQueryMaker; private Manipulators manipulator; // the following needs to be moved to // class extraction algorithm or manipulator @@ -43,11 +46,11 @@ public String cacheDir="cache"; public Configuration(SparqlEndpoint specificSparqlEndpoint, - SparqlQueryType sparqlQueryType, Manipulators manipulator, + SparqlQueryMaker sparqlQueryMaker, Manipulators manipulator, int recursiondepth, boolean getAllSuperClasses, boolean closeAfterRecursion, String cacheDir) { this.endpoint = specificSparqlEndpoint; - this.sparqlQueryType = sparqlQueryType; + this.sparqlQueryMaker = sparqlQueryMaker; this.manipulator = manipulator; this.recursiondepth = recursiondepth; this.getAllSuperClasses = getAllSuperClasses; @@ -56,9 +59,9 @@ } - public Configuration changeQueryType(SparqlQueryType sqt) { + public Configuration changeQueryType(SparqlQueryMaker sqm) { // TODO must clone here - return new Configuration(this.endpoint, sqt, this.manipulator, + return new Configuration(this.endpoint, sqm, this.manipulator, this.recursiondepth, this.getAllSuperClasses, this.closeAfterRecursion, this.cacheDir); @@ -72,8 +75,8 @@ return endpoint; } - public SparqlQueryType getSparqlQueryType() { - return sparqlQueryType; + public SparqlQueryMaker getSparqlQueryMaker() { + return sparqlQueryMaker; } public boolean isGetAllSuperClasses() { @@ -87,13 +90,18 @@ public int getRecursiondepth() { return recursiondepth; } + + public SPARQLTasks getSparqlTasks() { + return sparqlTasks; + } - public void increaseNumberOfuncachedSparqlQueries() { + + /*public void increaseNumberOfuncachedSparqlQueries() { numberOfUncachedSparqlQueries++; } public void increaseNumberOfCachedSparqlQueries() { numberOfCachedSparqlQueries++; - } + }*/ } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -61,7 +61,8 @@ } /** - * most important function expands one example cave: the recursion is not a + * most important function expands one example + * CAVE: the recursion is not a * recursion anymore, it was transformed to an iteration * * @param uri Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -26,7 +26,7 @@ import org.apache.log4j.Logger; import org.dllearner.kb.sparql.SparqlEndpoint; -import org.dllearner.kb.sparql.SparqlQueryType; +import org.dllearner.kb.sparql.SparqlQueryMaker; import org.dllearner.utilities.statistics.Statistics; /** @@ -45,12 +45,12 @@ .getLogger(Manager.class); - public void useConfiguration(SparqlQueryType SparqlQueryType, + public void useConfiguration(SparqlQueryMaker sparqlQueryMaker, SparqlEndpoint SparqlEndpoint, Manipulators manipulator, int recursiondepth, boolean getAllSuperClasses, boolean closeAfterRecursion, String cacheDir) { - this.configuration = new Configuration(SparqlEndpoint, SparqlQueryType, + this.configuration = new Configuration(SparqlEndpoint, sparqlQueryMaker, manipulator, recursiondepth, getAllSuperClasses, closeAfterRecursion, cacheDir); //System.out.println(this.configuration); @@ -111,7 +111,7 @@ } public void addPredicateFilter(String str) { - this.configuration.getSparqlQueryType().addPredicateFilter(str); + this.configuration.getSparqlQueryMaker().addPredicateFilter(str); } Added: trunk/src/dl-learner/org/dllearner/kb/extraction/Scrap.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Scrap.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Scrap.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -0,0 +1,112 @@ +package org.dllearner.kb.extraction; + +/** + * this class collects old source code and will be removed after refactoring + * @author Sebastian Hellmann + * + */ +public class Scrap { + + /* + public String makeRoleQueryUsingFilters(String role) { + + String Filter = internalFilterAssemblyRole(); + String ret = "SELECT * WHERE { " + lineend + " ?subject <" + role + + "> ?object. " + lineend + "FILTER( " + lineend + "(" + Filter + + ").}"; + // System.out.println(ret); + + return ret; + } + */ + + /* + public String makeRoleQueryUsingFilters(String role, boolean domain) { + + String Filter = internalFilterAssemblyRole(); + String ret = ""; + if (domain) { + ret = "SELECT * WHERE { " + lineend + "?subject <" + role + + "> ?object; a []. " + lineend + "FILTER( " + lineend + + "(" + Filter + ").}"; + // "ORDER BY ?subject"; + // System.out.println(ret); + } else { + ret = "SELECT * WHERE { " + lineend + "?object a [] . " + + "?subject <" + role + "> ?object . " + lineend + + "FILTER( " + lineend + "(" + Filter + ").}"; + // "ORDER BY ?object"; + + } + // System.out.println(ret); + + return ret; + }*/ + + + /* + * + private String internalFilterAssemblyRole() { + + String Filter = ""; + if (!this.sparqlQueryType.isLiterals()) + Filter += "!isLiteral(?object))"; + for (String s : sparqlQueryType.getObjectfilterlist()) { + Filter += lineend + filterSubject(s); + } + for (String o : sparqlQueryType.getObjectfilterlist()) { + Filter += lineend + filterObject(o); + } + return Filter; + }*/ + + + /* + * creates a query with the specified filters for all triples with subject + * + * @param subject + * the searched subject + * @param sf + * special object encapsulating all options + * @return sparql query + + /* + * public static String makeQueryFilter(String subject, oldSparqlFilter sf) { + * + * String Filter = ""; if (!sf.useLiterals) Filter += "!isLiteral(?object)"; + * for (String p : sf.getPredFilter()) { Filter += "\n" + + * filterPredicate(p); } for (String o : sf.getObjFilter()) { Filter += "\n" + + * filterObject(o); } + * + * String ret = "SELECT * WHERE { \n" + "<" + subject + "> ?predicate + * ?object.\n"; if (!(Filter.length() == 0)) ret += "FILTER( \n" + "(" + + * Filter + "))."; ret += "}"; // System.out.println(ret); return ret; } + */ + + /* + * moved to SparqlQuery remove here creates a query for subjects with + * the specified label @param label a phrase that is part of the label of a + * subject @param limit this limits the amount of results @return + * + * @Deprecated public static String makeLabelQuery(String label,int limit){ + * // maybe use http://xmlns:com/foaf/0.1/page return + * "SELECT DISTINCT ?subject\n"+ "WHERE { ?subject + * <http://www.w3.org/2000/01/rdf-schema#label> ?object.?object + * bif:contains '\""+label+"\"'@en}\n"+ "LIMIT "+limit; } + * + * + * creates a query for all subjects that are of the type concept @param + * concept the type that subjects are searched for @return + * + * + * moved to SparqlQuery remove here + * @Deprecated public static String makeConceptQuery(String concept){ return + * "SELECT DISTINCT ?subject\n"+ "WHERE { ?subject a + * <"+concept+">}\n"; } moved to SparqlQuery remove here + * @Deprecated public static String makeArticleQuery(String subject){ return + * "SELECT ?predicate,?object\n"+ "WHERE { <"+subject+"> + * ?predicate ?object}\n"; } + */ + + +} Added: trunk/src/dl-learner/org/dllearner/kb/extraction/SparqlTupelAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/SparqlTupelAquisitor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/SparqlTupelAquisitor.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -0,0 +1,124 @@ +/** + * Copyright (C) 2007, Sebastian Hellmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.kb.extraction; + +import java.net.URI; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.dllearner.kb.sparql.Cache; +import org.dllearner.kb.sparql.SparqlQuery; +import org.dllearner.kb.sparql.SparqlQueryMaker; +import org.dllearner.utilities.datastructures.StringTuple; + +import com.hp.hpl.jena.query.ResultSet; +import com.hp.hpl.jena.query.ResultSetFormatter; +import com.hp.hpl.jena.sparql.core.ResultBinding; + +/** + * Can execute different queries. + * + * @author Sebastian Hellmann + * + */ +public class SparqlTupelAquisitor extends TupelAquisitor { + + private static Logger logger = Logger.getLogger(SparqlTupelAquisitor.class); + + + //boolean print_flag = false; + private Configuration configuration; + private SparqlQueryMaker sparqlQueryMaker; + Cache cache; + + // boolean debug_no_cache = false;// true means no cache is used + // private SparqlHTTPRequest SparqlHTTPRequest; + // private SparqlQuery sparqlQuery; + // private CachedSparqlQuery cachedSparqlQuery; + + public SparqlTupelAquisitor(Configuration Configuration) { + this.configuration = Configuration; + /*this.sparqlQueryMaker = new SparqlQueryMaker(Configuration + .getSparqlQueryType()); + */ + this.cache = new Cache(configuration.cacheDir); + // this.sparqlQuery=new SparqlQuery(configuration.getSparqlEndpoint()); + // this.cachedSparqlQuery=new + // CachedSparqlQuery(this.sparqlQuery,this.cache); + } + + // standard query get a tupels (p,o) for subject s + /** + * uses a cache and gets the result tuples for a resource u + * + * @param uri + * the resource + * @param sparqlQueryString + * @param a + * the name of the first bound variable for xml parsing, normally + * predicate + * @param b + * the name of the second bound variable for xml parsing, + * normally object + * @return + */ + @Override + @SuppressWarnings({"unchecked"}) + public SortedSet<StringTuple> getTupelForResource(URI uri) { + SortedSet<StringTuple> s = new TreeSet<StringTuple>(); + + String a = "predicate"; + String b = "object"; + // getQuery + String sparqlQueryString = sparqlQueryMaker + .makeSubjectQueryUsingFilters(uri.toString()); + +// CachedSparqlQuery csq = new CachedSparqlQuery(configuration +// .getSparqlEndpoint(), cache, uri.toString(), sparqlQueryString); + + SparqlQuery query = new SparqlQuery(sparqlQueryString, configuration.getSparqlEndpoint()); +// query.extraDebugInfo=uri.toString(); + String JSON = cache.executeSparqlQuery(query); + + ResultSet rs = SparqlQuery.convertJSONtoResultSet(JSON); + + List<ResultBinding> l = ResultSetFormatter.toList(rs); + + logger.trace(l.toString()); + for (ResultBinding resultBinding : l) { + + s.add(new StringTuple(resultBinding.get(a).toString(), + resultBinding.get(b).toString())); + } + return s; + } + + + + + + + + + + +} Added: trunk/src/dl-learner/org/dllearner/kb/extraction/TupelAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/TupelAquisitor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/TupelAquisitor.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -0,0 +1,41 @@ +/** + * Copyright (C) 2007, Sebastian Hellmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.kb.extraction; + +import java.net.URI; +import java.util.SortedSet; + +import org.dllearner.utilities.datastructures.StringTuple; + +/** + * + * Typed SPARQL query interface. The typing means that they all have the same + * input and the same output: They are fn: resource -> ( a | b ) where a + * normally is a predicate and b an object + * + * @author Sebastian Hellmann + * + */ +public abstract class TupelAquisitor { + + public abstract SortedSet<StringTuple> getTupelForResource(URI u); +} + + Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/TypedSparqlQuery.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/TypedSparqlQuery.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -58,8 +58,7 @@ public TypedSparqlQuery(Configuration Configuration) { this.configuration = Configuration; - this.sparqlQueryMaker = new SparqlQueryMaker(Configuration - .getSparqlQueryType()); + this.sparqlQueryMaker =Configuration.getSparqlQueryMaker(); this.cache = new Cache(configuration.cacheDir); // this.sparqlQuery=new SparqlQuery(configuration.getSparqlEndpoint()); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -29,6 +29,8 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import org.apache.log4j.Logger; import org.dllearner.core.KnowledgeSource; @@ -75,8 +77,8 @@ private String predefinedFilter = null; private String predefinedEndpoint = null; private String predefinedManipulator = "STANDARD"; - private Set<String> predList = new HashSet<String>(); - private Set<String> objList = new HashSet<String>(); + private SortedSet<String> predList = new TreeSet<String>(); + private SortedSet<String> objList = new TreeSet<String>(); // private Set<String> classList; private String format = "N-TRIPLES"; private boolean dumpToFile = true; @@ -216,9 +218,9 @@ } else if (option.equals("recursionDepth")) { recursionDepth = (Integer) entry.getValue(); } else if (option.equals("predList")) { - predList = (Set<String>) entry.getValue(); + predList = (SortedSet<String>) entry.getValue(); } else if (option.equals("objList")) { - objList = (Set<String>) entry.getValue(); + objList = (SortedSet<String>) entry.getValue(); // } else if (option.equals("classList")) { // classList = (Set<String>) entry.getValue(); } else if (option.equals("predefinedEndpoint")) { @@ -299,7 +301,7 @@ */ Manager m = new Manager(); - SparqlQueryType sparqlQueryType = null; + SparqlQueryMaker sparqlQueryMaker = null; // get Options for Manipulator Manipulators manipulator = ManipulatorType.getManipulatorByName(predefinedManipulator, blankNodeIdentifier, breakSuperClassRetrievalAfter, replacePredicate, replaceObject); @@ -317,16 +319,15 @@ // get Options for Filters if (predefinedFilter != null) { - sparqlQueryType = SparqlQueryType - .getFilterByName(predefinedFilter); + sparqlQueryMaker = SparqlQueryMaker.getSparqlQueryMakerByName(predefinedFilter); } else { - sparqlQueryType = new SparqlQueryType("forbid", objList, predList, + sparqlQueryMaker = new SparqlQueryMaker("forbid", objList, predList, useLits); } // give everything to the manager - m.useConfiguration(sparqlQueryType, endpoint, manipulator, + m.useConfiguration(sparqlQueryMaker, endpoint, manipulator, recursionDepth, getAllSuperClasses, closeAfterRecursion, cacheDir); String ont = ""; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -19,7 +19,12 @@ */ package org.dllearner.kb.sparql; +import java.util.ArrayList; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; + /** * Can assemble sparql queries. can make queries for subject, predicate, object * according to the filter settings object SparqlQueryType, which gives the @@ -29,135 +34,376 @@ * */ public class SparqlQueryMaker { - String lineend = "\n"; - boolean print_flag = false; - private SparqlQueryType sparqlQueryType; + + private static final String MODE_ALLOW = "allow"; + private static final String MODE_FORBID = "forbid"; + private static final String lineend = "\n"; + + //allow false is forbid + private boolean allowMode = false; + private boolean assembled = false; + private String filter = ""; + private SortedSet<String> objectFilterList; + private SortedSet<String> predicateFilterList; + private boolean literals = false; + + + public SparqlQueryMaker(SortedSet<String> objectFilterList, SortedSet<String> predicateFilterList, + boolean literals) { + super(); + this.objectFilterList = objectFilterList; + this.predicateFilterList = predicateFilterList; + this.literals = literals; + } + + + public SparqlQueryMaker(boolean allowMode, SortedSet<String> objectFilterList, SortedSet<String> predicateFilterList, + boolean literals) { - public SparqlQueryMaker(SparqlQueryType SparqlQueryType) { - this.sparqlQueryType = SparqlQueryType; + this(objectFilterList,predicateFilterList,literals); + this.allowMode = allowMode; } + + public SparqlQueryMaker(String mode, SortedSet<String> objectFilterList, SortedSet<String> predicateFilterList, + boolean literals) { + this(objectFilterList,predicateFilterList,literals); + if( mode.equalsIgnoreCase(MODE_ALLOW)) { + this.allowMode = true; + } else if(mode.equalsIgnoreCase(MODE_FORBID)) { + this.allowMode = false; + } else { + this.allowMode = false; + } + } + public String makeSubjectQueryUsingFilters(String subject) { - String Filter = internalFilterAssemblySubject(); - String ret=""; - if (Filter.length()>0) ret = "SELECT * WHERE { " + lineend + "<" + subject - + "> ?predicate ?object. " + lineend + "FILTER( " + lineend - + Filter + ").}"; - else ret="SELECT * WHERE { " + lineend + "<" + subject - + "> ?predicate ?object}"; - // System.out.println("Query: "+ret); - // System.out.println(sparqlQueryType.getPredicatefilterlist().length); - return ret; + //String filter = internalFilterAssemblySubject(); + if (!assembled) { + filter = internalFilterAssemblySubject("predicate", "object"); + filter = (filter.length()>0) ? "FILTER( " + lineend + filter + "). " : " "; + assembled = true; + } + + String returnString="SELECT * WHERE { " + lineend + "<" + subject + + "> ?predicate ?object. " + lineend + filter +" } "; + + return returnString; } + + private String internalFilterAssemblySubject(String predicateVariable, String objectVariable) { + predicateVariable = (predicateVariable.startsWith("?")) ? predicateVariable : "?"+predicateVariable ; + objectVariable = (objectVariable.startsWith("?")) ? objectVariable : "?"+objectVariable ; + + List<String> terms = new ArrayList<String>(); + if(!isLiterals()) { terms.add("!isLiteral("+objectVariable+")"); } + String not = (isAllowMode())? "" : "!" ; + for (String pred : getPredicateFilterList()) { + terms.add( not + "regex(str("+predicateVariable+"), '" + pred + "')" ); + } + for (String obj : getObjectFilterList()) { + terms.add( not + "regex(str("+objectVariable+"), '" + obj + "')" ); + } + + return assembleTerms( terms); + + } + + private String assembleTerms(List<String> terms){ + if(terms.isEmpty()) return ""; + else if(terms.size() == 1 ) return brackets(terms.get(0)); + else { + StringBuffer sbuf = new StringBuffer(1400); + String operator = (isAllowMode()) ? "||" : "&&"; + String first = terms.remove(0); + sbuf.append(brackets(first)); + for (String term : terms) { + sbuf.append(lineend+operator); + sbuf.append(brackets(term)); + } + return brackets(sbuf.toString()); + } + + } + + private static String brackets(String s){ + return "("+s+")"; + } + - /** - * - * @param role - * @return - */ - public String makeRoleQueryUsingFilters(String role) { - String Filter = internalFilterAssemblyRole(); - String ret = "SELECT * WHERE { " + lineend + " ?subject <" + role - + "> ?object. " + lineend + "FILTER( " + lineend + "(" + Filter - + ").}"; - // System.out.println(ret); + + public boolean isLiterals() { + return literals; + } - return ret; + public boolean isAllowMode() { + return allowMode; } - public String makeRoleQueryUsingFilters(String role, boolean domain) { + public SortedSet<String> getObjectFilterList() { + return objectFilterList; + } - String Filter = internalFilterAssemblyRole(); - String ret = ""; - if (domain) { - ret = "SELECT * WHERE { " + lineend + "?subject <" + role - + "> ?object; a []. " + lineend + "FILTER( " + lineend - + "(" + Filter + ").}"; - // "ORDER BY ?subject"; - // System.out.println(ret); - } else { - ret = "SELECT * WHERE { " + lineend + "?object a [] . " - + "?subject <" + role + "> ?object . " + lineend - + "FILTER( " + lineend + "(" + Filter + ").}"; - // "ORDER BY ?object"; + public SortedSet<String> getPredicateFilterList() { + return predicateFilterList; + } + public void addPredicateFilter(String newFilter) { + assembled = false; + predicateFilterList.add(newFilter); + } + + + +public static SparqlQueryMaker getSparqlQueryMakerByName(String name) { + + if (name.equalsIgnoreCase("YAGO")) + return getYAGOFilter(); + else if (name.equalsIgnoreCase("SKOS")) + return getSKOSFilter(); + else if (name.equalsIgnoreCase("YAGOSKOS")) + return getYAGOSKOS(); + else if (name.equalsIgnoreCase("YAGOSPECIALHIERARCHY")) + return getYagoSpecialHierarchyFilter(); + else if (name.equalsIgnoreCase("TEST")) + return test(); + else if (name.equalsIgnoreCase("DBPEDIA-NAVIGATOR")) + return getDBpediaNavigatorFilter(); + else return null; + } + + + public static SparqlQueryMaker getYAGOFilter(){ + SortedSet<String> pred = new TreeSet<String>(); + pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + pred.add("http://dbpedia.org/property/relatedInstance"); + pred.add("http://dbpedia.org/property/owner"); + pred.add("http://dbpedia.org/property/standard"); + + SortedSet<String> obj = new TreeSet<String>(); + //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + //obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://dbpedia.org/resource/Category:"); + obj.add("http://dbpedia.org/resource/Template"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + obj.add("http://www.w3.org/2004/02/skos/core"); + + return new SparqlQueryMaker("forbid", obj, pred, false); + } + + public static SparqlQueryMaker getDBpediaNavigatorFilter(){ + SortedSet<String> pred = new TreeSet<String>(); + pred.add("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"); + pred.add("http://www.w3.org/2000/01/rdf-schema#subClassOf"); + pred.add("http://www.w3.org/2003/01/geo/wgs84_pos#lat"); + pred.add("http://www.w3.org/2003/01/geo/wgs84_pos#long"); + //pred.add("http://dbpedia.org/property/wikipage"); + //pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + //pred.add("http://dbpedia.org/property/relatedInstance"); + //pred.add("http://dbpedia.org/property/owner"); + //pred.add("http://dbpedia.org/property/standard"); + return new SparqlQueryMaker("allow", new TreeSet<String>(), pred , true); } - // System.out.println(ret); + + public static SparqlQueryMaker getYagoSpecialHierarchyFilter(){ + SortedSet<String> pred = new TreeSet<String>(); + pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + pred.add("http://dbpedia.org/property/relatedInstance"); + pred.add("http://dbpedia.org/property/monarch"); + - return ret; - } + SortedSet<String> obj = new TreeSet<String>(); + obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://dbpedia.org/resource/Template"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + obj.add("http://www.w3.org/2004/02/skos/core"); - private String internalFilterAssemblySubject() { + return new SparqlQueryMaker("forbid", obj, pred, false); + } + + + public static SparqlQueryMaker getSKOSFilter(){ + SortedSet<String> pred = new TreeSet<String>(); + //pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + pred.add("http://www.w3.org/2004/02/skos/core#narrower"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - String Filter = ""; - if (!this.sparqlQueryType.isLiterals()){ - Filter += "(!isLiteral(?object))"; - if (sparqlQueryType.getPredicatefilterlist().size()>0) - Filter += "&&("; + SortedSet<String> obj = new TreeSet<String>(); + //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + //obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + + + obj.add("http://dbpedia.org/class/yago"); + obj.add("http://dbpedia.org/resource/Template"); + + + return new SparqlQueryMaker("forbid", obj, pred, false); } - else if (sparqlQueryType.getPredicatefilterlist().size()>0) - Filter += "("; - int i=1; - for (String p : sparqlQueryType.getPredicatefilterlist()) { - if (this.sparqlQueryType.getMode()=="forbid") - if (i!=1) - Filter += lineend + filterPredicate(p); - else - Filter += lineend + filterPredicate(p).substring(2); - else if (this.sparqlQueryType.getMode()=="allow") - if (i!=1) - Filter += lineend + allowPredicate(p); - else - Filter += lineend + allowPredicate(p).substring(2); - i++; - } - if (sparqlQueryType.getPredicatefilterlist().size()>0) - Filter += ")"; + public static SparqlQueryMaker getYAGOSKOS(){ + SortedSet<String> pred = new TreeSet<String>(); + //pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); - if ((sparqlQueryType.getPredicatefilterlist().size()>0||!this.sparqlQueryType.isLiterals())&&sparqlQueryType.getObjectfilterlist().size()>0) - Filter += "&&("; - else if (sparqlQueryType.getObjectfilterlist().size()>0) - Filter += "("; - i=1; - for (String o : sparqlQueryType.getObjectfilterlist()) { - if (this.sparqlQueryType.getMode()=="forbid") - if (i!=1) - Filter += lineend + filterObject(o); - else - Filter += lineend + filterObject(o).substring(2); - else if (this.sparqlQueryType.getMode()=="allow") - if (i!=1) - Filter += lineend + allowObject(o); - else - Filter += lineend + allowObject(o).substring(2); - i++; + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + //pred.add("http://www.w3.org/2004/02/skos/core#narrower"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + + SortedSet<String> obj = new TreeSet<String>(); + //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + //obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + + + //obj.add("http://dbpedia.org/class/yago"); + obj.add("http://dbpedia.org/resource/Template"); + + + return new SparqlQueryMaker("forbid", obj, pred, false); + } + + public static SparqlQueryMaker test(){ + SortedSet<String> pred = new TreeSet<String>(); + pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + //pred.add("http://dbpedia.org/property/reference"); + //pred.add("http://dbpedia.org/property/website"); + //pred.add("http://dbpedia.org/property/wikipage"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + pred.add("http://dbpedia.org/property/relatedInstance"); + + SortedSet<String> obj = new TreeSet<String>(); + //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + //obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://dbpedia.org/resource/Category:"); + obj.add("http://dbpedia.org/resource/Template"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + obj.add("http://www.w3.org/2004/02/skos/core"); + return new SparqlQueryMaker("forbid", obj, pred, false); } - if (sparqlQueryType.getObjectfilterlist().size()>0) - Filter += ")"; + + + public static void main(String[] args){ - return Filter; + String uri = "http://dbpedia.org/resource/Angela_Merkel"; + System.out.println(getSparqlQueryMakerByName("YAGO").makeSubjectQueryUsingFilters(uri)); + System.out.println(getSparqlQueryMakerByName("YAGO").makeSubjectQueryUsingFilters(uri).length()); + System.out.println(getDBpediaNavigatorFilter().makeSubjectQueryUsingFilters(uri)); + + } + + /* + private String internalFilterAssemblySubject() { - private String internalFilterAssemblyRole() { - - String Filter = ""; - if (!this.sparqlQueryType.isLiterals()) - Filter += "!isLiteral(?object))"; - for (String s : sparqlQueryType.getObjectfilterlist()) { - Filter += lineend + filterSubject(s); + boolean emptyPredicateFilter = getPredicateFilterList().isEmpty(); + boolean emptyObjectFilter = getObjectFilterList().isEmpty(); + + String filterString = ""; + if (!isLiterals()) { + filterString += "(!isLiteral(?object))"; + if (!getPredicateFilterList().isEmpty()) { + filterString += "&&("; + } + + } else if (!emptyPredicateFilter) { + filterString += "("; } - for (String o : sparqlQueryType.getObjectfilterlist()) { - Filter += lineend + filterObject(o); + boolean firstRun = true; + for (String p : getPredicateFilterList()) { + filterString += lineend; + filterString += (firstRun) ? handlePredicate(p).substring(2) : handlePredicate(p); + firstRun = false; } - return Filter; - } + if (!emptyPredicateFilter) { + filterString += ")"; + } + if ((!emptyPredicateFilter || !isLiterals()) && !emptyObjectFilter) { + filterString += "&&("; + }else if (!emptyObjectFilter) { + filterString += "("; + } + + firstRun = true; + for (String o : getObjectFilterList()) { + filterString += lineend; + filterString += (firstRun) ? handleObject(o).substring(2) : handleObject(o) ; + firstRun = false; + } + if (!emptyObjectFilter){ + filterString += ")"; + } + + return filterString; + }*/ + /* private String filterSubject(String ns) { return "&&( !regex(str(?subject), '" + ns + "') )"; } + + private String handlePredicate (String ns) { + return (isAllowMode()) ? allowPredicate(ns) : filterPredicate(ns) ; + } + + private String handleObject (String ns) { + return (isAllowMode()) ? allowObject(ns) : filterObject(ns) ; + } + private static String filterPredicate(String ns) { return "&&( !regex(str(?predicate), '" + ns + "') )"; } @@ -173,57 +419,6 @@ private static String allowObject(String ns) { return "||( regex(str(?object), '" + ns + "') )"; } +*/ - /*private void p(String str) { - if (print_flag) { - System.out.println(str); - } - }*/ - - /** - * creates a query with the specified filters for all triples with subject - * - * @param subject - * the searched subject - * @param sf - * special object encapsulating all options - * @return sparql query - */ - /* - * public static String makeQueryFilter(String subject, oldSparqlFilter sf) { - * - * String Filter = ""; if (!sf.useLiterals) Filter += "!isLiteral(?object)"; - * for (String p : sf.getPredFilter()) { Filter += "\n" + - * filterPredicate(p); } for (String o : sf.getObjFilter()) { Filter += "\n" + - * filterObject(o); } - * - * String ret = "SELECT * WHERE { \n" + "<" + subject + "> ?predicate - * ?object.\n"; if (!(Filter.length() == 0)) ret += "FILTER( \n" + "(" + - * Filter + "))."; ret += "}"; // System.out.println(ret); return ret; } - */ - - /* - * moved to SparqlQuery TODO remove here creates a query for subjects with - * the specified label @param label a phrase that is part of the label of a - * subject @param limit this limits the amount of results @return - * - * @Deprecated public static String makeLabelQuery(String label,int limit){ - * //TODO maybe use http://xmlns:com/foaf/0.1/page return - * "SELECT DISTINCT ?subject\n"+ "WHERE { ?subject - * <http://www.w3.org/2000/01/rdf-schema#label> ?object.?object - * bif:contains '\""+label+"\"'@en}\n"+ "LIMIT "+limit; } - * - * - * creates a query for all subjects that are of the type concept @param - * concept the type that subjects are searched for @return - * - * - * moved to SparqlQuery TODO remove here - * @Deprecated public static String makeConceptQuery(String concept){ return - * "SELECT DISTINCT ?subject\n"+ "WHERE { ?subject a - * <"+concept+">}\n"; } moved to SparqlQuery TODO remove here - * @Deprecated public static String makeArticleQuery(String subject){ return - * "SELECT ?predicate,?object\n"+ "WHERE { <"+subject+"> - * ?predicate ?object}\n"; } - */ -} + } Deleted: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -1,254 +0,0 @@ -/** - * Copyright (C) 2007, Sebastian Hellmann - * - * This file is part of DL-Learner. - * - * DL-Learner is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DL-Learner is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package org.dllearner.kb.sparql; - -import java.util.HashSet; -import java.util.Set; - -/** - * Is used to set the filter: configuration. - * - * @author Sebastian Hellmann - * - */ -public class SparqlQueryType { - - private String mode = "forbid"; - private Set<String> objectfilterlist; - private Set<String> predicatefilterlist; - private boolean literals = false; - - public SparqlQueryType(String mode, Set<String> obectfilterlist, Set<String> predicatefilterlist, - boolean literals) { - super(); - this.mode = mode; - this.objectfilterlist = obectfilterlist; - this.predicatefilterlist = predicatefilterlist; - this.literals = literals; - } - - public boolean isLiterals() { - return literals; - } - - public String getMode() { - return mode; - } - - public Set<String> getObjectfilterlist() { - return objectfilterlist; - } - - public Set<String> getPredicatefilterlist() { - return predicatefilterlist; - } - - public void addPredicateFilter(String filter) { - predicatefilterlist.add(filter); - //System.out.println("added filter: "+filter); - } - - public static SparqlQueryType getFilterByName(String name) { - - - if (name.equals("YAGO")) - return YagoFilter(); - if (name.equals("SKOS")) - return SKOS(); - if (name.equals("YAGOSKOS")) - return YAGOSKOS(); - if (name.equals("YAGOSPECIALHIERARCHY")) - return YagoSpecialHierarchy(); - if (name.equals("TEST")) - return test(); - if (name.equals("DBPEDIA-NAVIGATOR")) - return DBpediaNavigatorFilter(); - - return null; - } - - - public static SparqlQueryType YagoFilter(){ - Set<String> pred = new HashSet<String>(); - pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - pred.add("http://dbpedia.org/property/relatedInstance"); - pred.add("http://dbpedia.org/property/owner"); - pred.add("http://dbpedia.org/property/standard"); - - Set<String> obj = new HashSet<String>(); - //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - //obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://dbpedia.org/resource/Category:"); - obj.add("http://dbpedia.org/resource/Template"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - obj.add("http://www.w3.org/2004/02/skos/core"); - - return new SparqlQueryType("forbid", obj, pred, false); - } - - public static SparqlQueryType DBpediaNavigatorFilter(){ - Set<String> pred = new HashSet<String>(); - pred.add("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"); - pred.add("http://www.w3.org/2000/01/rdf-schema#subClassOf"); - pred.add("http://www.w3.org/2003/01/geo/wgs84_pos#lat"); - pred.add("http://www.w3.org/2003/01/geo/wgs84_pos#long"); - //pred.add("http://dbpedia.org/property/wikipage"); - //pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - //pred.add("http://dbpedia.org/property/relatedInstance"); - //pred.add("http://dbpedia.org/property/owner"); - //pred.add("http://dbpedia.org/property/standard"); - - Set<String> obj = new HashSet<String>(); - - return new SparqlQueryType("allow", obj, pred, true); - } - - public static SparqlQueryType YagoSpecialHierarchy(){ - Set<String> pred = new HashSet<String>(); - pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - pred.add("http://dbpedia.org/property/relatedInstance"); - pred.add("http://dbpedia.org/property/monarch"); - - - Set<String> obj = new HashSet<String>(); - obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://dbpedia.org/resource/Template"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - obj.add("http://www.w3.org/2004/02/skos/core"); - - return new SparqlQueryType("forbid", obj, pred, false); - } - - - public static SparqlQueryType SKOS(){ - Set<String> pred = new HashSet<String>(); - //pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - pred.add("http://www.w3.org/2004/02/skos/core#narrower"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - - Set<String> obj = new HashSet<String>(); - //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - //obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - - - obj.add("http://dbpedia.org/class/yago"); - obj.add("http://dbpedia.org/resource/Template"); - - - return new SparqlQueryType("forbid", obj, pred, false); - } - public static SparqlQueryType YAGOSKOS(){ - Set<String> pred = new HashSet<String>(); - //pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - //pred.add("http://www.w3.org/2004/02/skos/core#narrower"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - - Set<String> obj = new HashSet<String>(); - //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - //obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - - - //obj.add("http://dbpedia.org/class/yago"); - obj.add("http://dbpedia.org/resource/Template"); - - - return new SparqlQueryType("forbid", obj, pred, false); - } - - public static SparqlQueryType test(){ - Set<String> pred = new HashSet<String>(); - pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - //pred.add("http://dbpedia.org/property/reference"); - //pred.add("http://dbpedia.org/property/website"); - //pred.add("http://dbpedia.org/property/wikipage"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - pred.add("http://dbpedia.org/property/relatedInstance"); - - Set<String> obj = new HashSet<String>(); - //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - //obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://dbpedia.org/resource/Category:"); - obj.add("http://dbpedia.org/resource/Template"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - obj.add("http://www.w3.org/2004/02/skos/core"); - return new SparqlQueryType("forbid", obj, pred, false); - } - - - - -} Modified: trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-08-13 13:12:03 UTC (rev 1064) +++ trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -27,7 +27,7 @@ import org.dllearner.kb.extraction.Manager; import org.dllearner.kb.extraction.Manipulator; import org.dllearner.kb.sparql.SparqlEndpoint; -import org.dllearner.kb.sparql.SparqlQueryType; +import org.dllearner.kb.sparql.SparqlQueryMaker; import org.dllearner.utilities.datastructures.StringTuple; /** @@ -48,8 +48,7 @@ // m.usePredefinedConfiguration(u); URI u2 = new URI("http://dbpedia.org/resource/Angela_Merkel"); - m.useConfiguration( - SparqlQueryType.getFilterByName("DBPEDIA"),SparqlEndpoint.getEndpointByName("YAGO"), + m.useConfiguration(SparqlQueryMaker.getSparqlQueryMakerByName("DBPEDIA"),SparqlEndpoint.getEndpointByName("YAGO"), new Manipulator("",200,new LinkedList<StringTuple>(),new LinkedList<StringTuple>()), 1,true,true,"cache"); //, , Added: trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java 2008-08-13 17:39:19 UTC (rev 1065) @@ -0,0 +1,17 @@ +package org.dllearner.utilities.owl; + +public class OWLVocabulary { + + public static final String RDF_TYPE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"; + + public static final String RDFS_SUBCLASS_OF = "http://www.w3.org/2000/01/rdf-schema#subClassOf"; + + + public static final String OWL_SAME_AS = "http://www.w3.org/2002/07/owl#sameAs"; +// public static final String RDF_TYPE = ""; +// public static final String RDF_TYPE = ""; +// public static final String RDF_TYPE = ""; +// public static final String RDF_TYPE = ""; +// public static final String RDF_TYPE = ""; +// public static final String RDF_TYPE = ""; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |