Hello,
 
I found a problem when rewriting a query by AlgebraGenerator, the generated 
query becomes syntax incorrect query. Can you please advise if this is a 
defect? Thanks.
 
The version of JENA I tested is 2.7.1
 
 
The code I rewrite the query is:
     Query query = QueryFactory.create(queryString);
    AlgebraGenerator ag =
            newAlgebraGenerator();    Op op = ag.compile(query);
    Query query2 = OpAsQuery.asQuery(op);

The original query is:

    PREFIX dcterms: <http://purl.org/dc/terms/> 
PREFIX dbpedia: <http://dbpedia.org/resource/> 
SELECT ?num_of_holidays ?celebrate_Chinese_New_Year  WHERE { 
{SELECT ?country_cat (COUNT(?holiday) as ?num_of_holidays) 
WHERE {?country_cat <http://www.w3.org/2004/02/skos/core#broader> 
<http://dbpedia.org/resource/Category:Public_holidays_by_country>. 
?holiday dcterms:subject ?country_cat 
}GROUP by ?country_cat 
} 
{ 
SELECT ?country_cat (COUNT(?holiday) as ?celebrate_Chinese_New_Year) 
WHERE { 
?country_cat <http://www.w3.org/2004/02/skos/core#broader> 
<http://dbpedia.org/resource/Category:Public_holidays_by_country>. 
?holiday dcterms:subject ?country_cat 
FILTER(?holiday="http://dbpedia.org/resource/Lunar_New_Year's_Day") 
}GROUP by ?country_cat 
} 
}


The generated query is:
SELECT  ?country_cat ?celebrate_Chinese_New_Year
WHERE
{ { ?country_cat <http://www.w3.org/2004/02/skos/core#broader> 
<http://dbpedia.org/resource/Category:Public_holidays_by_country> .
?holiday <http://purl.org/dc/terms/subject> ?country_cat
BIND(count(?holiday) AS ?num_of_holidays)
}
{ ?country_cat <http://www.w3.org/2004/02/skos/core#broader> 
<http://dbpedia.org/resource/Category:Public_holidays_by_country> .
?holiday <http://purl.org/dc/terms/subject> ?country_cat
FILTER ( ?holiday = "http://dbpedia.org/resource/Lunar_New_Year's_Day" )
BIND(count(?holiday) AS ?celebrate_Chinese_New_Year)
}
}
GROUP BY ?country_cat


The generated query has a syntax error: "Line 5, column 12: Aggregate 
expression not legal at this point".
 
Attached is a hava program to demonstrate the problem,  
     
 

________________________________

Reply via email to