From: <lor...@us...> - 2011-02-27 08:16:17
|
Revision: 2670 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2670&view=rev Author: lorenz_b Date: 2011-02-27 08:16:11 +0000 (Sun, 27 Feb 2011) Log Message: ----------- Inluded Lucene search into script. Modified Paths: -------------- trunk/autosparql/src/main/java/org/dllearner/autosparql/evaluation/EvaluationWithNLQueriesScript.java trunk/autosparql/src/main/java/org/dllearner/autosparql/server/ExampleFinder.java trunk/autosparql/src/main/java/org/dllearner/autosparql/server/search/LuceneSearch.java trunk/sparql-query-generator/src/main/java/org/dllearner/sparqlquerygenerator/cache/QueryTreeCache.java Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/evaluation/EvaluationWithNLQueriesScript.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/evaluation/EvaluationWithNLQueriesScript.java 2011-02-26 23:08:56 UTC (rev 2669) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/evaluation/EvaluationWithNLQueriesScript.java 2011-02-27 08:16:11 UTC (rev 2670) @@ -61,6 +61,7 @@ import org.dllearner.sparqlquerygenerator.operations.lgg.LGGGeneratorImpl; import org.dllearner.sparqlquerygenerator.util.ExactMatchFilter; import org.dllearner.sparqlquerygenerator.util.QuestionBasedStatementFilter; +import org.dllearner.sparqlquerygenerator.util.QuestionBasedStatementSelector; import org.w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -193,6 +194,14 @@ return resources; } + private List<String> getResourcesByNLQueryWithLucene(String question){ + logger.info("Getting Top " + TOP_K + " resources related to question with Lucene..."); + List<String> resources = luceneSearch.getResources(question); + logger.info("Got " + resources.size() + " resources:"); + logger.info(resources); + return resources; + } + private List<String> getRelevantWords(String question){ return qProcessor.getRelevantWords(question); // Properties props = new Properties(); @@ -274,7 +283,7 @@ Set<String> relatedResources; List<String> relevantWords; int i = 1; - for(String question : question2Answers.keySet()){ + for(String question : question2Answers.keySet()){question = "Give me all films with Tom Cruise!"; logger.info(getNewQuestionString(i++, question)); try { logger.info("Evaluating question \"" + question + "\"..."); @@ -285,6 +294,7 @@ //preprocess question to extract only relevant words and set them as filter for statements relevantWords = getRelevantWords(question); exFinder.setStatementFilter(new QuestionBasedStatementFilter(new HashSet<String>(relevantWords))); +// exFinder.setStatementSelector(new QuestionBasedStatementSelector(new HashSet<String>(relevantWords))); //expand with synonyms if(USE_SYNONYMS){ relevantWords.addAll(getSynonyms(relevantWords)); @@ -296,8 +306,11 @@ } question.trim(); logger.info("Rebuilt question string: " + question); + //get examples - examples = getResourcesByWikipedia(question);//luceneSearch.getResources(question) +// examples = getResourcesByWikipedia(question); + examples = getResourcesByNLQueryWithLucene(question); + //get resources which are relevant for query and add them as filter for objects // relatedResources = getResourcesByNLQuery(question.substring(0, question.length()-1)); // relatedResources.addAll(getSchemaElementsByQuery(question.substring(0, question.length()-1))); Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/server/ExampleFinder.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/server/ExampleFinder.java 2011-02-26 23:08:56 UTC (rev 2669) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/server/ExampleFinder.java 2011-02-27 08:16:11 UTC (rev 2670) @@ -31,6 +31,7 @@ import com.hp.hpl.jena.query.ResultSetRewindable; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Selector; +import com.hp.hpl.jena.rdf.model.Statement; import com.hp.hpl.jena.vocabulary.RDFS; public class ExampleFinder { @@ -455,10 +456,14 @@ queryTreeCache.setObjectFilter(filter); } - public void setStatementFilter(Selector filter){ + public void setStatementFilter(com.hp.hpl.jena.util.iterator.Filter<Statement> filter){ queryTreeCache.setStatementFilter(filter); } + public void setStatementSelector(Selector selector){ + queryTreeCache.setStatementSelector(selector); + } + public String getCurrentQuery(){ return currentQuery; } Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/server/search/LuceneSearch.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/server/search/LuceneSearch.java 2011-02-26 23:08:56 UTC (rev 2669) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/server/search/LuceneSearch.java 2011-02-27 08:16:11 UTC (rev 2670) @@ -2,6 +2,7 @@ import java.io.File; import java.io.IOException; +import java.text.NumberFormat.Field; import java.util.ArrayList; import java.util.List; @@ -15,6 +16,8 @@ import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; +import org.apache.lucene.search.Sort; +import org.apache.lucene.search.SortField; import org.apache.lucene.search.TopScoreDocCollector; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; @@ -36,7 +39,7 @@ Directory dir = FSDirectory.open(new File(indexDirectory));//RAMDirectory(); searcher = new IndexSearcher(dir, true); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30); - queryParser = new QueryParser(Version.LUCENE_30, "abstract", analyzer); + queryParser = new QueryParser(Version.LUCENE_30, "comment", analyzer); collector = TopScoreDocCollector.create(hitsPerPage, true); } catch (CorruptIndexException e) { e.printStackTrace(); @@ -54,6 +57,7 @@ try { Query query = queryParser.parse(queryString); searcher.search(query, collector); +// System.out.println(searcher.search(query, null, 10, new Sort(new SortField("pagerank", SortField.INT)))); ScoreDoc[] hits = collector.topDocs(offset).scoreDocs; for(ScoreDoc doc : hits) { Modified: trunk/sparql-query-generator/src/main/java/org/dllearner/sparqlquerygenerator/cache/QueryTreeCache.java =================================================================== --- trunk/sparql-query-generator/src/main/java/org/dllearner/sparqlquerygenerator/cache/QueryTreeCache.java 2011-02-26 23:08:56 UTC (rev 2669) +++ trunk/sparql-query-generator/src/main/java/org/dllearner/sparqlquerygenerator/cache/QueryTreeCache.java 2011-02-27 08:16:11 UTC (rev 2670) @@ -11,6 +11,7 @@ import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.Selector; +import com.hp.hpl.jena.rdf.model.Statement; public class QueryTreeCache { @@ -46,10 +47,14 @@ factory.setObjectFilter(filter); } - public void setStatementFilter(Selector filter){ - factory.setStatementSelector(filter); + public void setStatementFilter(com.hp.hpl.jena.util.iterator.Filter<Statement> filter){ + factory.setStatementFilter(filter); } + public void setStatementSelector(Selector selector){ + factory.setStatementSelector(selector); + } + public void clear(){ cache.clear(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |