From: <ku...@us...> - 2008-08-21 11:59:55
|
Revision: 1119 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1119&view=rev Author: kurzum Date: 2008-08-21 11:59:44 +0000 (Thu, 21 Aug 2008) Log Message: ----------- some changes Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.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/aquisitors/LinkedDataTupleAquisitor.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitorImproved.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupelAquisitor.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitor.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitorImproved.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupelAquisitor.java Deleted: trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupelAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupelAquisitor.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupelAquisitor.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -1,64 +0,0 @@ -/** - * Copyright (C) 2007-2008, Jens Lehmann - * - * 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.aquisitors; - -import java.util.SortedSet; - -import org.apache.log4j.Logger; -import org.dllearner.kb.extraction.Configuration; -import org.dllearner.utilities.datastructures.RDFNodeTuple; - -/** - * Can execute different queries. - * - * @author Sebastian Hellmann - * - */ -public class LinkedDataTupelAquisitor extends TupelAquisitor { - - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(LinkedDataTupelAquisitor.class); - @SuppressWarnings("unused") - private Configuration configuration; - - - public LinkedDataTupelAquisitor(Configuration configuration) { - this.configuration = configuration; - } - - // standard query get a tupels (p,o) for subject s - @Override - public SortedSet<RDFNodeTuple> retrieveTupel(String uri){ - throw new RuntimeException("Not Implemented yet"); - } - @Override - public SortedSet<RDFNodeTuple> retrieveClassesForInstances(String uri){ - throw new RuntimeException("Not Implemented yet"); - } - @Override - public SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri){ - throw new RuntimeException("Not Implemented yet"); - } - - - - - -} Copied: trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupleAquisitor.java (from rev 1118, trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupelAquisitor.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupleAquisitor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupleAquisitor.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -0,0 +1,64 @@ +/** + * Copyright (C) 2007-2008, Jens Lehmann + * + * 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.aquisitors; + +import java.util.SortedSet; + +import org.apache.log4j.Logger; +import org.dllearner.kb.extraction.Configuration; +import org.dllearner.utilities.datastructures.RDFNodeTuple; + +/** + * Can execute different queries. + * + * @author Sebastian Hellmann + * + */ +public class LinkedDataTupleAquisitor extends TupleAquisitor { + + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(LinkedDataTupleAquisitor.class); + @SuppressWarnings("unused") + private Configuration configuration; + + + public LinkedDataTupleAquisitor(Configuration configuration) { + this.configuration = configuration; + } + + // standard query get a tupels (p,o) for subject s + @Override + public SortedSet<RDFNodeTuple> retrieveTupel(String uri){ + throw new RuntimeException("Not Implemented yet"); + } + @Override + public SortedSet<RDFNodeTuple> retrieveClassesForInstances(String uri){ + throw new RuntimeException("Not Implemented yet"); + } + @Override + public SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri){ + throw new RuntimeException("Not Implemented yet"); + } + + + + + +} Property changes on: trunk/src/dl-learner/org/dllearner/kb/aquisitors/LinkedDataTupleAquisitor.java ___________________________________________________________________ Added: svn:mergeinfo + Deleted: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitor.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitor.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -1,81 +0,0 @@ -/** - * Copyright (C) 2007-2008, Jens Lehmann - * - * 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.aquisitors; - -import java.util.SortedSet; - -import org.apache.log4j.Logger; -import org.dllearner.kb.sparql.SPARQLTasks; -import org.dllearner.kb.sparql.SparqlQueryMaker; -import org.dllearner.utilities.datastructures.RDFNodeTuple; - -/** - * Can execute different queries. - * - * @author Sebastian Hellmann - * - */ -public class SparqlTupelAquisitor extends TupelAquisitor { - - - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(SparqlTupelAquisitor.class); - protected static final String PREDICATE = "predicate"; - protected static final String OBJECT = "object"; - - protected SparqlQueryMaker sparqlQueryMaker; - protected SPARQLTasks sparqlTasks; - - - - public SparqlTupelAquisitor(SparqlQueryMaker sparqlQueryMaker, SPARQLTasks sparqlTasks) { - - this.sparqlQueryMaker = sparqlQueryMaker; - this.sparqlTasks = sparqlTasks; - } - - @Override - public SortedSet<RDFNodeTuple> retrieveTupel(String uri){ - // getQuery - String sparqlQueryString = sparqlQueryMaker.makeSubjectQueryUsingFilters(uri); - return sparqlTasks.queryAsRDFNodeTuple(sparqlQueryString, PREDICATE, OBJECT); - - } - @Override - public SortedSet<RDFNodeTuple> retrieveClassesForInstances(String uri){ - // getQuery - String sparqlQueryString = sparqlQueryMaker.makeClassQueryUsingFilters(uri); - return sparqlTasks.queryAsRDFNodeTuple(sparqlQueryString, PREDICATE, OBJECT); - - } - @Override - public SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri){ - return retrieveTupel(uri); - } - - - - - - - - - -} Deleted: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitorImproved.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitorImproved.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitorImproved.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -1,149 +0,0 @@ -/** - * Copyright (C) 2007-2008, Jens Lehmann - * - * 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.aquisitors; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.SortedSet; -import java.util.TreeSet; - -import org.apache.log4j.Logger; -import org.dllearner.kb.sparql.SPARQLTasks; -import org.dllearner.kb.sparql.SparqlQueryMaker; -import org.dllearner.utilities.datastructures.RDFNodeTuple; - -import com.hp.hpl.jena.query.ResultSetFormatter; -import com.hp.hpl.jena.rdf.model.RDFNode; -import com.hp.hpl.jena.sparql.core.ResultBinding; -import com.hp.hpl.jena.sparql.resultset.ResultSetRewindable; - -/** - * Can execute different queries. - * - * @author Sebastian Hellmann - * - */ -public class SparqlTupelAquisitorImproved extends SparqlTupelAquisitor { - - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(SparqlTupelAquisitorImproved.class); - private Map<String,SortedSet<RDFNodeTuple>> resources = new HashMap<String, SortedSet<RDFNodeTuple>>(); - int recursionDepth; - - - public SparqlTupelAquisitorImproved(SparqlQueryMaker sparqlQueryMaker, SPARQLTasks sparqlTasks, int recursionDepth) { - super(sparqlQueryMaker, sparqlTasks); - this.recursionDepth = recursionDepth; - - } - - @Override - public SortedSet<RDFNodeTuple> retrieveTupel(String uri){ - - SortedSet<RDFNodeTuple> cachedSet = resources.get(uri); - if(cachedSet!=null) { - return cachedSet; - } - - //SortedSet<RDFNodeTuple> tmp = new TreeSet<RDFNodeTuple>(); - String sparqlQueryString = sparqlQueryMaker.makeSubjectQueryLevel(uri, recursionDepth); - //System.out.println(sparqlQueryString); - ResultSetRewindable rsw=null; - try{ - rsw = sparqlTasks.queryAsResultSet(sparqlQueryString); - }catch (Exception e) { - return super.retrieveTupel(uri); - } - @SuppressWarnings("unchecked") - List<ResultBinding> l = ResultSetFormatter.toList(rsw); - rsw.reset(); - - - - int resultsetcount = 0; - int i = 0; - for (ResultBinding binding : l) { - i = 0; - RDFNode nextOBJ = binding.get(OBJECT+i); - RDFNode nextPRED = binding.get(PREDICATE+i); - RDFNodeTuple tmptuple = new RDFNodeTuple(nextPRED, nextOBJ ); - add(uri,tmptuple); - - boolean cont = !nextOBJ.isLiteral(); - for (i=0; (i < recursionDepth) && cont; i++) { - RDFNode tmpPREDURI = binding.get(PREDICATE+i); - RDFNode tmpOBJURI = binding.get(OBJECT+i); - if(tmpOBJURI==null) { - cont=false; - }else if (tmpOBJURI.isLiteral()) { - tmptuple = new RDFNodeTuple(tmpPREDURI, tmpOBJURI ); - add(nextOBJ.toString(), tmptuple); - //logger.trace(tmptuple); - //logger.trace("For: "+nextOBJ.toString()+ " added :"+resources.get(nextOBJ.toString())); - cont=false; - }else { - tmptuple = new RDFNodeTuple(tmpPREDURI, tmpOBJURI ); - add(nextOBJ.toString(), tmptuple); - //logger.trace(tmptuple); - //logger.trace("For: "+nextOBJ.toString()+ " added :"+resources.get(nextOBJ.toString())); - nextOBJ = tmpOBJURI; - cont = true; - } - }//end for - - resultsetcount++; - } - - //System.out.println("original count "+count); - //logger.warn("SparqlTupelAquisitor retrieved : "+resultsetcount); - if(resultsetcount>999) { - logger.warn("SparqlTupelAquisitor retrieved more than 1000 results, there might some be missing"); - } - return ((cachedSet=resources.get(uri))==null)?new TreeSet<RDFNodeTuple>():cachedSet; - } - - @Override - public SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri){ - int tmp = recursionDepth; - recursionDepth=4; - SortedSet<RDFNodeTuple> tmpSet = retrieveTupel(uri); - recursionDepth = tmp; - return tmpSet; - //getQuery - //String sparqlQueryString = sparqlQueryMaker.makeSubjectQueryUsingFilters(uri); - //return sparqlTasks.queryAsRDFNodeTuple(sparqlQueryString, PREDICATE, OBJECT); - } - - - private void add(String uri, RDFNodeTuple tuple){ - SortedSet<RDFNodeTuple> set = resources.get(uri); - if(set==null){ - set = new TreeSet<RDFNodeTuple>(); - set.add(tuple); - resources.put(uri, set ); - }else { - set.add(tuple); - } - } - - - -} Copied: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java (from rev 1118, trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitor.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -0,0 +1,81 @@ +/** + * Copyright (C) 2007-2008, Jens Lehmann + * + * 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.aquisitors; + +import java.util.SortedSet; + +import org.apache.log4j.Logger; +import org.dllearner.kb.sparql.SPARQLTasks; +import org.dllearner.kb.sparql.SparqlQueryMaker; +import org.dllearner.utilities.datastructures.RDFNodeTuple; + +/** + * Can execute different queries. + * + * @author Sebastian Hellmann + * + */ +public class SparqlTupleAquisitor extends TupleAquisitor { + + + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(SparqlTupleAquisitor.class); + protected static final String PREDICATE = "predicate"; + protected static final String OBJECT = "object"; + + protected SparqlQueryMaker sparqlQueryMaker; + protected SPARQLTasks sparqlTasks; + + + + public SparqlTupleAquisitor(SparqlQueryMaker sparqlQueryMaker, SPARQLTasks sparqlTasks) { + + this.sparqlQueryMaker = sparqlQueryMaker; + this.sparqlTasks = sparqlTasks; + } + + @Override + public SortedSet<RDFNodeTuple> retrieveTupel(String uri){ + // getQuery + String sparqlQueryString = sparqlQueryMaker.makeSubjectQueryUsingFilters(uri); + return sparqlTasks.queryAsRDFNodeTuple(sparqlQueryString, PREDICATE, OBJECT); + + } + @Override + public SortedSet<RDFNodeTuple> retrieveClassesForInstances(String uri){ + // getQuery + String sparqlQueryString = sparqlQueryMaker.makeClassQueryUsingFilters(uri); + return sparqlTasks.queryAsRDFNodeTuple(sparqlQueryString, PREDICATE, OBJECT); + + } + @Override + public SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri){ + return retrieveTupel(uri); + } + + + + + + + + + +} Copied: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitorImproved.java (from rev 1118, trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupelAquisitorImproved.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitorImproved.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitorImproved.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -0,0 +1,156 @@ +/** + * Copyright (C) 2007-2008, Jens Lehmann + * + * 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.aquisitors; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.dllearner.kb.sparql.SPARQLTasks; +import org.dllearner.kb.sparql.SparqlQueryMaker; +import org.dllearner.utilities.datastructures.RDFNodeTuple; + +import com.hp.hpl.jena.query.ResultSetFormatter; +import com.hp.hpl.jena.rdf.model.RDFNode; +import com.hp.hpl.jena.sparql.core.ResultBinding; +import com.hp.hpl.jena.sparql.resultset.ResultSetRewindable; + +/** + * Can execute different queries. + * + * @author Sebastian Hellmann + * + */ +public class SparqlTupleAquisitorImproved extends SparqlTupleAquisitor { + + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(SparqlTupleAquisitorImproved.class); + private Map<String,SortedSet<RDFNodeTuple>> resources = new HashMap<String, SortedSet<RDFNodeTuple>>(); + int recursionDepth; + + + public SparqlTupleAquisitorImproved(SparqlQueryMaker sparqlQueryMaker, SPARQLTasks sparqlTasks, int recursionDepth) { + super(sparqlQueryMaker, sparqlTasks); + this.recursionDepth = recursionDepth; + + } + + @Override + public SortedSet<RDFNodeTuple> retrieveTupel(String uri){ + + SortedSet<RDFNodeTuple> cachedSet = resources.get(uri); + if(cachedSet!=null) { + return cachedSet; + } + + //SortedSet<RDFNodeTuple> tmp = new TreeSet<RDFNodeTuple>(); + String sparqlQueryString = sparqlQueryMaker.makeSubjectQueryLevel(uri, recursionDepth); + //System.out.println(sparqlQueryString); + ResultSetRewindable rsw=null; + try{ + rsw = sparqlTasks.queryAsResultSet(sparqlQueryString); + }catch (Exception e) { + return super.retrieveTupel(uri); + } + @SuppressWarnings("unchecked") + List<ResultBinding> l = ResultSetFormatter.toList(rsw); + rsw.reset(); + + + + int resultsetcount = 0; + int i = 0; + for (ResultBinding binding : l) { + i = 0; + RDFNode nextOBJ = binding.get(OBJECT+i); + RDFNode nextPRED = binding.get(PREDICATE+i); + RDFNodeTuple tmptuple = new RDFNodeTuple(nextPRED, nextOBJ ); + add(uri,tmptuple); + + boolean cont = !nextOBJ.isLiteral(); + for (i=0; (i < recursionDepth) && cont; i++) { + RDFNode tmpPREDURI = binding.get(PREDICATE+i); + RDFNode tmpOBJURI = binding.get(OBJECT+i); + if(tmpOBJURI==null) { + cont=false; + }else if (tmpOBJURI.isLiteral()) { + tmptuple = new RDFNodeTuple(tmpPREDURI, tmpOBJURI ); + add(nextOBJ.toString(), tmptuple); + //logger.trace(tmptuple); + //logger.trace("For: "+nextOBJ.toString()+ " added :"+resources.get(nextOBJ.toString())); + cont=false; + }else { + tmptuple = new RDFNodeTuple(tmpPREDURI, tmpOBJURI ); + add(nextOBJ.toString(), tmptuple); + //logger.trace(tmptuple); + //logger.trace("For: "+nextOBJ.toString()+ " added :"+resources.get(nextOBJ.toString())); + nextOBJ = tmpOBJURI; + cont = true; + } + }//end for + + resultsetcount++; + } + + //System.out.println("original count "+count); + //logger.warn("SparqlTupelAquisitor retrieved : "+resultsetcount); + if(resultsetcount>999) { + logger.warn("SparqlTupelAquisitor retrieved more than 1000 results, there might some be missing"); + } + return ((cachedSet=resources.get(uri))==null)?new TreeSet<RDFNodeTuple>():cachedSet; + } + + @Override + public SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri){ + int tmp = recursionDepth; + recursionDepth=4; + SortedSet<RDFNodeTuple> tmpSet = retrieveTupel(uri); + recursionDepth = tmp; + return tmpSet; + //getQuery + //String sparqlQueryString = sparqlQueryMaker.makeSubjectQueryUsingFilters(uri); + //return sparqlTasks.queryAsRDFNodeTuple(sparqlQueryString, PREDICATE, OBJECT); + } + + + private void add(String uri, RDFNodeTuple tuple){ + SortedSet<RDFNodeTuple> set = resources.get(uri); + if(set==null){ + set = new TreeSet<RDFNodeTuple>(); + set.add(tuple); + resources.put(uri, set ); + }else { + set.add(tuple); + } + } + + @Override + public SortedSet<RDFNodeTuple> retrieveClassesForInstances(String uri){ + // getQuery + return super.retrieveClassesForInstances(uri); + + } + + + +} Property changes on: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitorImproved.java ___________________________________________________________________ Added: svn:mergeinfo + Deleted: trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupelAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupelAquisitor.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupelAquisitor.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -1,95 +0,0 @@ -/** - * Copyright (C) 2007-2008, Jens Lehmann - * - * 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.aquisitors; - -import java.net.URI; -import java.util.SortedSet; -import java.util.TreeSet; - -import org.apache.log4j.Logger; -import org.dllearner.utilities.datastructures.RDFNodeTuple; - -/** - * - * 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 { - - - private static Logger logger = Logger.getLogger(TupelAquisitor.class); - protected final int NORMAL = 0; - protected final int CLASSES_FOR_INSTANCES = 1; - protected final int CLASS_INFORMATION = 2; - - protected int mode = 0; - private boolean uriDebugCheck = true; - - public final SortedSet<RDFNodeTuple> getTupelForResource(String uri){ - checkURIforValidity(uri); - try{ - if (mode == NORMAL) { - return retrieveTupel(uri); - } else if(mode == CLASSES_FOR_INSTANCES){ - return retrieveClassesForInstances(uri); - }else if(mode == CLASS_INFORMATION){ - return retrieveTuplesForClassesOnly(uri); - }else{ - throw new RuntimeException("undefined mode in aquisitor"); - } - }catch(Exception e){ - logger.warn("caught exception in tupleaquisitor, ignoring it"+e.toString()); - return new TreeSet<RDFNodeTuple>(); - - } - } - public abstract SortedSet<RDFNodeTuple> retrieveTupel(String uri); - public abstract SortedSet<RDFNodeTuple> retrieveClassesForInstances(String uri); - public abstract SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri); - - /*private void setMode(int mode) { - this.mode = mode; - }*/ - - public int getMode() { - return mode; - } - - public void setNextTaskToNormal(){mode = NORMAL;} - public void setNextTaskToClassesForInstances(){mode = CLASSES_FOR_INSTANCES;} - public void setNextTaskToClassInformation(){mode = CLASS_INFORMATION;} - - protected boolean checkURIforValidity(String uri){ - if(uriDebugCheck) return true; - try{ - new URI(uri); - }catch (Exception e) { - logger.warn("Exception while validating uri: "+uri); - return false; - } - return true; - } -} - - Copied: trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java (from rev 1118, trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupelAquisitor.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -0,0 +1,95 @@ +/** + * Copyright (C) 2007-2008, Jens Lehmann + * + * 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.aquisitors; + +import java.net.URI; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.dllearner.utilities.datastructures.RDFNodeTuple; + +/** + * + * 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 TupleAquisitor { + + + private static Logger logger = Logger.getLogger(TupleAquisitor.class); + protected final int NORMAL = 0; + protected final int CLASSES_FOR_INSTANCES = 1; + protected final int CLASS_INFORMATION = 2; + + protected int mode = 0; + private boolean uriDebugCheck = true; + + public final SortedSet<RDFNodeTuple> getTupelForResource(String uri){ + checkURIforValidity(uri); + try{ + if (mode == NORMAL) { + return retrieveTupel(uri); + } else if(mode == CLASSES_FOR_INSTANCES){ + return retrieveClassesForInstances(uri); + }else if(mode == CLASS_INFORMATION){ + return retrieveTuplesForClassesOnly(uri); + }else{ + throw new RuntimeException("undefined mode in aquisitor"); + } + }catch(Exception e){ + logger.warn("caught exception in tupleaquisitor, ignoring it"+e.toString()); + return new TreeSet<RDFNodeTuple>(); + + } + } + public abstract SortedSet<RDFNodeTuple> retrieveTupel(String uri); + public abstract SortedSet<RDFNodeTuple> retrieveClassesForInstances(String uri); + public abstract SortedSet<RDFNodeTuple> retrieveTuplesForClassesOnly(String uri); + + /*private void setMode(int mode) { + this.mode = mode; + }*/ + + public int getMode() { + return mode; + } + + public void setNextTaskToNormal(){mode = NORMAL;} + public void setNextTaskToClassesForInstances(){mode = CLASSES_FOR_INSTANCES;} + public void setNextTaskToClassInformation(){mode = CLASS_INFORMATION;} + + protected boolean checkURIforValidity(String uri){ + if(uriDebugCheck) return true; + try{ + new URI(uri); + }catch (Exception e) { + logger.warn("Exception while validating uri: "+uri); + return false; + } + return true; + } +} + + Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -25,7 +25,7 @@ import java.util.TreeSet; import org.apache.log4j.Logger; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.owl.OWLVocabulary; @@ -50,7 +50,7 @@ // expands all directly connected nodes @Override - public List<Node> expand(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public List<Node> expand(TupleAquisitor tupelAquisitor, Manipulator manipulator) { SortedSet<RDFNodeTuple> newTuples = tupelAquisitor.getTupelForResource(this.uri); // see manipulator @@ -96,7 +96,7 @@ // gets the types for properties recursively @Override - public void expandProperties(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -19,7 +19,7 @@ */ package org.dllearner.kb.extraction; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; /** @@ -32,7 +32,7 @@ private Manipulator manipulator; - private TupelAquisitor tupelAquisitor; + private TupleAquisitor tupelAquisitor; // the following needs to be moved to // class extraction algorithm or manipulator @@ -44,7 +44,7 @@ public Configuration( - TupelAquisitor tupelAquisitor, + TupleAquisitor tupelAquisitor, Manipulator manipulator, int recursiondepth, boolean getAllSuperClasses, @@ -87,7 +87,7 @@ } - public TupelAquisitor getTupelAquisitor() { + public TupleAquisitor getTupelAquisitor() { return tupelAquisitor; } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -23,7 +23,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.owl.OWLVocabulary; @@ -51,13 +51,13 @@ // Property Nodes are normally not expanded, // this function is never called @Override - public List<Node> expand(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public List<Node> expand(TupleAquisitor tupelAquisitor, Manipulator manipulator) { return null; } // gets the types for properties recursively @Override - public void expandProperties(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -25,7 +25,7 @@ import java.util.TreeSet; import org.apache.log4j.Logger; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.utilities.statistics.SimpleClock; /** @@ -42,15 +42,15 @@ private static Logger logger = Logger .getLogger(ExtractionAlgorithm.class); - public ExtractionAlgorithm(Configuration Configuration) { - this.configuration = Configuration; + public ExtractionAlgorithm(Configuration configuration) { + this.configuration = configuration; } public Node getFirstNode(String uri) { return new InstanceNode(uri); } - public List<Node> expandAll(String[] uris, TupelAquisitor tupelAquisitor) { + public List<Node> expandAll(String[] uris, TupleAquisitor tupelAquisitor) { List<Node> nodeList = new ArrayList<Node>(); for (String oneURI : uris) { nodeList.add(expandNode(oneURI, tupelAquisitor)); @@ -67,11 +67,11 @@ * @param typedSparqlQuery * @return */ - public Node expandNode(String uri, TupelAquisitor tupelAquisitor) { + public Node expandNode(String uri, TupleAquisitor tupelAquisitor) { SimpleClock sc = new SimpleClock(); - tupelAquisitor.setNextTaskToNormal(); + Node seedNode = getFirstNode(uri); List<Node> newNodes = new ArrayList<Node>(); List<Node> collectNodes = new ArrayList<Node>(); @@ -91,6 +91,7 @@ logger.info("Expanding " + nextNode); // these are the new not expanded nodes // the others are saved in connection with the original node + tupelAquisitor.setNextTaskToNormal(); tmp.addAll(nextNode.expand(tupelAquisitor, configuration.getManipulator())); //System.out.println(tmpVec); @@ -104,58 +105,57 @@ + " Nodes remaining, " + sc.getAndSet("")); } + + if(configuration.isCloseAfterRecursion()){ + List<InstanceNode> l = getInstanceNodes(newNodes); + tupelAquisitor.setNextTaskToClassesForInstances(); + collectNodes.addAll(expandCloseAfterRecursion(l, tupelAquisitor)); + + } // gets All Class Nodes and expands them further if (configuration.isGetAllSuperClasses()) { - expandAllSuperClassesOfANode(collectNodes, tupelAquisitor); + List<ClassNode> allClassNodes = getClassNodes(collectNodes); + tupelAquisitor.setNextTaskToClassInformation(); + expandAllSuperClassesOfANode(allClassNodes, tupelAquisitor); } return seedNode; } - private void expandAllSuperClassesOfANode(List<Node> allNodes, TupelAquisitor tupelAquisitor) { - logger.info("Get all superclasses"); - - - List<Node> classes = new ArrayList<Node>(); - List<Node> instances = new ArrayList<Node>(); - - for (Node one : allNodes) { - if (one instanceof ClassNode) { - classes.add(one); - } - if (one instanceof InstanceNode) { - instances.add(one); - } - - } - - //TODO LinkedData incompatibility - + private List<Node> expandCloseAfterRecursion(List<InstanceNode> instanceNodes, TupleAquisitor tupelAquisitor) { + List<Node> newNodes = new ArrayList<Node>(); tupelAquisitor.setNextTaskToClassesForInstances(); if (configuration.isCloseAfterRecursion()) { - while (!instances.isEmpty()) { + while (!instanceNodes.isEmpty()) { logger.trace("Getting classes for remaining instances: " - + instances.size()); - Node next = instances.remove(0); + + instanceNodes.size()); + Node next = instanceNodes.remove(0); logger.trace("Getting classes for: " + next); - classes.addAll(next.expand(tupelAquisitor, configuration.getManipulator())); - if (classes.size() >= configuration.getBreakSuperClassesAfter()) { + newNodes.addAll(next.expand(tupelAquisitor, configuration.getManipulator())); + if (newNodes.size() >= configuration.getBreakSuperClassesAfter()) { break; }//endif }//endwhile }//endif + return newNodes; + } + + private void expandAllSuperClassesOfANode(List<ClassNode> allClassNodes, TupleAquisitor tupelAquisitor) { + logger.info("Get all superclasses"); - + List<Node> newClasses = new ArrayList<Node>(); + newClasses.addAll(allClassNodes); + //TODO LinkedData incompatibility tupelAquisitor.setNextTaskToClassInformation(); int i = 0; - while (!classes.isEmpty() && false) { - logger.trace("Remaining classes: " + classes.size()); - Node next = classes.remove(0); + while (!newClasses.isEmpty() && false) { + logger.trace("Remaining classes: " + newClasses.size()); + Node next = newClasses.remove(0); if (!alreadyQueriedSuperClasses.contains(next.getURI().toString())) { logger.trace("Getting Superclasses for: " + next); alreadyQueriedSuperClasses.add(next.getURI().toString()); - classes.addAll(next.expand(tupelAquisitor, configuration.getManipulator())); + newClasses.addAll(next.expand(tupelAquisitor, configuration.getManipulator())); if (i > configuration.getBreakSuperClassesAfter()) { break; @@ -169,5 +169,30 @@ } } + + public static List<ClassNode> getClassNodes(List<Node> l ){ + List<ClassNode> retList = new ArrayList<ClassNode>(); + for (Node node : l) { + if (node instanceof ClassNode) { + retList.add( (ClassNode) node); + + } + + } + return retList; + } + + public static List<InstanceNode> getInstanceNodes(List<Node> l ){ + List<InstanceNode> retList = new ArrayList<InstanceNode>(); + for (Node node : l) { + if (node instanceof InstanceNode) { + retList.add( (InstanceNode) node); + + } + + } + return retList; + } + } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -25,7 +25,7 @@ import java.util.TreeSet; import org.apache.log4j.Logger; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.owl.OWLVocabulary; @@ -55,7 +55,7 @@ // expands all directly connected nodes @Override - public List<Node> expand(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public List<Node> expand(TupleAquisitor tupelAquisitor, Manipulator manipulator) { SortedSet<RDFNodeTuple> newTuples = tupelAquisitor.getTupelForResource(uri); // see Manipulator @@ -103,7 +103,7 @@ // gets the types for properties recursively @Override - public void expandProperties(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { for (ObjectPropertyNode one : objectProperties) { one.expandProperties(tupelAquisitor, manipulator); } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -25,7 +25,7 @@ import java.util.TreeSet; import org.apache.log4j.Logger; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; import com.hp.hpl.jena.rdf.model.Literal; @@ -59,7 +59,7 @@ // expands all directly connected nodes @Override - public List<Node> expand(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public List<Node> expand(TupleAquisitor tupelAquisitor, Manipulator manipulator) { return new ArrayList<Node>(); } @@ -67,7 +67,7 @@ // gets the types for properties recursively @Override - public void expandProperties(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { } @Override Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -22,7 +22,7 @@ import java.util.List; import java.util.SortedSet; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; @@ -54,7 +54,7 @@ * @return Vector<Node> all Nodes that are new because of expansion */ public abstract List<Node> expand( - TupelAquisitor TupelAquisitor, Manipulator manipulator); + TupleAquisitor TupelAquisitor, Manipulator manipulator); /** * gets type defs for properties like rdf:type SymmetricProperties @@ -64,7 +64,7 @@ * @return Vector<Node> */ public abstract void expandProperties( - TupelAquisitor TupelAquisitor, Manipulator manipulator); + TupleAquisitor TupelAquisitor, Manipulator manipulator); /** * output Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -23,7 +23,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.owl.OWLVocabulary; @@ -54,13 +54,13 @@ // Property Nodes are normally not expanded, // this function is never called @Override - public List<Node> expand(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public List<Node> expand(TupleAquisitor tupelAquisitor, Manipulator manipulator) { return null; } // gets the types for properties recursively @Override - public void expandProperties(TupelAquisitor tupelAquisitor, Manipulator manipulator) { + public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { b.expandProperties(tupelAquisitor, manipulator); SortedSet<RDFNodeTuple> newTypes = tupelAquisitor.getTupelForResource(uri); for (RDFNodeTuple tuple : newTypes) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -46,8 +46,9 @@ import org.dllearner.core.config.StringSetConfigOption; import org.dllearner.core.config.StringTupleListConfigOption; import org.dllearner.core.owl.KB; -import org.dllearner.kb.aquisitors.SparqlTupelAquisitor; -import org.dllearner.kb.aquisitors.TupelAquisitor; +import org.dllearner.kb.aquisitors.SparqlTupleAquisitor; +import org.dllearner.kb.aquisitors.SparqlTupleAquisitorImproved; +import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.extraction.Configuration; import org.dllearner.kb.extraction.Manager; import org.dllearner.kb.manipulator.Manipulator; @@ -72,6 +73,7 @@ //DEFAULTS static int recursionDepthDefault = 1; + static final boolean debug = false; private boolean useCache=true; // ConfigOptions public URL url; @@ -90,7 +92,7 @@ private boolean useLits = false; private boolean getAllSuperClasses = true; private boolean closeAfterRecursion = true; - private int breakSuperClassRetrievalAfter = 200; + private int breakSuperClassRetrievalAfter = 1000; private String cacheDir = "cache"; // private boolean learnDomain = false; // private boolean learnRange = false; @@ -283,9 +285,12 @@ // get Options for Manipulator Manipulator manipulator = getManipulator(); - //manipulator.addRule(newRule); + + TupleAquisitor tupleAquisitor = getTupleAquisitor(); + + Configuration configuration = new Configuration( - getTupelAquisitor(), + getTupleAquisitor(), manipulator, recursionDepth, getAllSuperClasses, @@ -430,10 +435,13 @@ } - public TupelAquisitor getTupelAquisitor() + public TupleAquisitor getTupleAquisitor() { - return new SparqlTupelAquisitor(getSparqlQueryMaker(), getSPARQLTasks()); - //return new SparqlTupelAquisitorImproved(getSparqlQueryMaker(), getSPARQLTasks(),recursionDepth); + return (debug)? + new SparqlTupleAquisitorImproved(getSparqlQueryMaker(), getSPARQLTasks(),recursionDepth) + : + new SparqlTupleAquisitor(getSparqlQueryMaker(), getSPARQLTasks()); + } /* (non-Javadoc) Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -24,6 +24,8 @@ import java.util.SortedSet; import java.util.TreeSet; +import org.dllearner.utilities.owl.OWLVocabulary; + /** * Can assemble sparql queries. can make queries for subject, predicate, object * according to the filter settings object SparqlQueryType, which gives the @@ -105,12 +107,15 @@ tmpFilter = (tmpFilter.length() > 0) ? "FILTER( " + lineend + tmpFilter + "). " : " "; - String returnString = "SELECT * WHERE {" +lineend + + /*String returnString = "SELECT * WHERE {" +lineend + "<" + subject + "> ?predicate ?object;" + "a ?object . "+lineend+ tmpFilter + "}"; + */ + String returnString = "SELECT * WHERE {" +lineend + + "<" + subject + "> <"+OWLVocabulary.RDF_TYPE+"> ?object. " +lineend+ + tmpFilter + "}"; - return returnString; } Modified: trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-08-21 11:06:07 UTC (rev 1118) +++ trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-08-21 11:59:44 UTC (rev 1119) @@ -26,7 +26,7 @@ import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; -import org.dllearner.kb.aquisitors.SparqlTupelAquisitorImproved; +import org.dllearner.kb.aquisitors.SparqlTupleAquisitorImproved; import org.dllearner.kb.extraction.Configuration; import org.dllearner.kb.extraction.Manager; import org.dllearner.kb.manipulator.Manipulator; @@ -66,7 +66,7 @@ int recursionDepth=2; Manager m = new Manager(); Configuration conf = new Configuration ( - new SparqlTupelAquisitorImproved(SparqlQueryMaker.getAllowYAGOFilter(), + new SparqlTupleAquisitorImproved(SparqlQueryMaker.getAllowYAGOFilter(), SPARQLTasks.getPredefinedSPARQLTasksWithCache("DBPEDIA"),recursionDepth), Manipulator.getDefaultManipulator(), recursionDepth, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |