Skip to content

Commit

Permalink
Disable thew improved query relaxation until the frontend supports th…
Browse files Browse the repository at this point in the history
…e new type of suggestions
  • Loading branch information
aelroby committed May 5, 2017
1 parent 6b3fb5e commit 14e1d66
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 13 deletions.
7 changes: 3 additions & 4 deletions src/ayhay/autoComplete/Warehouse.java
Original file line number Diff line number Diff line change
Expand Up @@ -519,16 +519,15 @@ public void writeLengthHistogram(String fileName) {
* @param originalPredicate The predicate to find similar predicates for
* @return An Arraylist of similar predicates
*/
public ArrayList<String> findSimilarStringsPredicates(ArrayList<String> clause){
public ArrayList<String> findSimilarStringsPredicates(String predicate){

String originalPredicate = clause.get(1);
ArrayList<StringScore> matchesScores = new ArrayList<StringScore>();
ArrayList<String> matches = new ArrayList<String>();
String trimmedString;


// Whatever is after the last /
trimmedString = originalPredicate.substring(originalPredicate.lastIndexOf("/")+1, originalPredicate.length()-1).toLowerCase();
trimmedString = predicate.substring(predicate.lastIndexOf("/")+1, predicate.length()-1).toLowerCase();
String currentPredicate;

// Semantic relations
Expand Down Expand Up @@ -564,7 +563,7 @@ public ArrayList<String> findSimilarStringsPredicates(ArrayList<String> clause){
for(int i = minIndex; i < maxIndex; i += indexesPerThread) {
threads.add(new Thread(new PredicateSearchTask(i,
Math.min(i+indexesPerThread, predicatesList.size() - 1),
originalPredicate)));
predicate)));
}

// Start threads
Expand Down
4 changes: 2 additions & 2 deletions src/ayhay/query/AlternativeQueryFinder.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
}

// Query relaxation too
// This does nothing for now
altQueryGenerator.relaxQuery(sparqlQuery);
// Disable this until the frontend supports the new type of alternatives
//altQueryGenerator.relaxQuery(sparqlQuery);

// Literals first
Timer.start();
Expand Down
46 changes: 39 additions & 7 deletions src/ayhay/query/AlternativeQueryGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ public class AlternativeQueryGenerator {

private HashSet<String> expandedNodes;

private HashSet<String> similarPredicates;

private ArrayList<String> queryPredicates;

private int edgeCntr = 0;
Expand Down Expand Up @@ -176,11 +178,19 @@ private void expandNodes (Queue<String> nodes, Graph<String, CustomEdge> g) {
// whatever after the last / without the >
String trimmedPredicate = predicate.substring(
predicate.lastIndexOf("/")+1,
predicate.length()-2).toLowerCase();
predicate.length()-1).toLowerCase();
for(int j = 0; j < queryPredicates.size(); ++ j) {
String trimmedQueryPredicate = queryPredicates.get(j).substring(
queryPredicates.get(j).lastIndexOf("/")+1,
queryPredicates.get(j).length()-2).toLowerCase();
queryPredicates.get(j).length()-1).toLowerCase();
if(trimmedQueryPredicate.compareTo(trimmedPredicate) == 0) {
defaultWeight = 1;
}
}
for(String synsetString : similarPredicates) {
String trimmedQueryPredicate = synsetString.substring(
synsetString.lastIndexOf("/")+1,
synsetString.length()-1).toLowerCase();
if(trimmedQueryPredicate.compareTo(trimmedPredicate) == 0) {
defaultWeight = 1;
}
Expand Down Expand Up @@ -208,11 +218,19 @@ private void expandNodes (Queue<String> nodes, Graph<String, CustomEdge> g) {
// whatever after the last / without the >
String trimmedPredicate = predicate.substring(
predicate.lastIndexOf("/")+1,
predicate.length()-2).toLowerCase();
predicate.length()-1).toLowerCase();
for(int j = 0; j < queryPredicates.size(); ++ j) {
String trimmedQueryPredicate = queryPredicates.get(j).substring(
queryPredicates.get(j).lastIndexOf("/")+1,
queryPredicates.get(j).length()-2).toLowerCase();
queryPredicates.get(j).length()-1).toLowerCase();
if(trimmedQueryPredicate.compareTo(trimmedPredicate) == 0) {
defaultWeight = 1;
}
}
for(String synsetString : similarPredicates) {
String trimmedQueryPredicate = synsetString.substring(
synsetString.lastIndexOf("/")+1,
synsetString.length()-1).toLowerCase();
if(trimmedQueryPredicate.compareTo(trimmedPredicate) == 0) {
defaultWeight = 1;
}
Expand All @@ -238,11 +256,19 @@ private void expandNodes (Queue<String> nodes, Graph<String, CustomEdge> g) {
// whatever after the last / without the >
String trimmedPredicate = predicate.substring(
predicate.lastIndexOf("/")+1,
predicate.length()-2).toLowerCase();
predicate.length()-1).toLowerCase();
for(int j = 0; j < queryPredicates.size(); ++ j) {
String trimmedQueryPredicate = queryPredicates.get(j).substring(
queryPredicates.get(j).lastIndexOf("/")+1,
queryPredicates.get(j).length()-2).toLowerCase();
queryPredicates.get(j).length()-1).toLowerCase();
if(trimmedQueryPredicate.compareTo(trimmedPredicate) == 0) {
defaultWeight = 1;
}
}
for(String synsetString : similarPredicates) {
String trimmedQueryPredicate = synsetString.substring(
synsetString.lastIndexOf("/")+1,
synsetString.length()-1).toLowerCase();
if(trimmedQueryPredicate.compareTo(trimmedPredicate) == 0) {
defaultWeight = 1;
}
Expand Down Expand Up @@ -317,6 +343,8 @@ public ArrayList<AlternativeToken> relaxQuery (SPARQLQuery query) {
// predicates in the query
queryPredicates = new ArrayList<String>();

similarPredicates = new HashSet<String>();

// Groups for seeds
HashMap<String, Set<String>> groups = new HashMap<String, Set<String>>();

Expand All @@ -328,6 +356,10 @@ public ArrayList<AlternativeToken> relaxQuery (SPARQLQuery query) {
// update predicates
queryPredicates.add(query.where.get(i).get(1));

similarPredicates.addAll(
ayhay.autoComplete.AutoComplete.warehouse.findSimilarStringsPredicates(
query.where.get(i).get(1)));

// If this triple contains a literal, that's a seed
if(query.where.get(i).get(2).contains("@en")) {
seeds.add(query.where.get(i).get(2));
Expand Down Expand Up @@ -514,7 +546,7 @@ public ArrayList<AlternativeToken> findSimilarQueries(SPARQLQuery query) {
"Alternatives for predicate <" + clause.get(1) + ">:");
Timer.start();
ArrayList<String> alternatives =
ayhay.autoComplete.AutoComplete.warehouse.findSimilarStringsPredicates(clause);
ayhay.autoComplete.AutoComplete.warehouse.findSimilarStringsPredicates(clause.get(1));
Timer.stop();
timeForPredicates += Timer.getTimeInSeconds();
System.out.println("Found alternatives for predicates in " + Timer.getTimeInSeconds() + " seconds");
Expand Down

0 comments on commit 14e1d66

Please sign in to comment.