On 28/10/14 19:55, Claude Warren wrote:
I think I am doing this correctly but I want to make sure before I open a
bug.
public static void main( final String[] args ) throws Exception
{
String qry = "SELECT (sum(?x) as ?y) WHERE { [] <
http://example.com/int> ?x }";
Model m = ModelFactory.createDefaultModel();
Property d = m.createProperty( "http://example.com/double");
Property i = m.createProperty( "http://example.com/int");
m.add( m.createResource("http://example.com/A"), d, "-1.3" );
m.add( m.createResource("http://example.com/A"), i, "-3" );
m.add( m.createResource("http://example.com/B"), d, "1.5" );
m.add( m.createResource("http://example.com/B"), i, "5" );
m.add( m.createResource("http://example.com/C"), d, "1.7" );
m.add( m.createResource("http://example.com/C"), i, "7" );
Query q = QueryFactory.create(qry);
QueryExecution qexec = QueryExecutionFactory.create(q,m);
final List<QuerySolution> retval = WrappedIterator.create(
qexec.execSelect()).toList();
System.out.println(retval);
}
I would expect the above to return (?x = 9) [ -3+5+7 ]
However with versions 2.12.1, 2.11.0, 2.10.0 and 2.7.4 it returns an empty
result.
Similar errors occur with the abs, round, ceil, and floor functions both
with the integer values (<http://example.com/int>) and the double values (<
http://example.com/double>).
You have created string literals. "1"+"2" is an error in SPARQL.
Try:
add(Resource s, Property p, String lex, RDFDatatype datatype) ;
Andy
Claude