You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Nagore Salaberria <na...@gmail.com> on 2014/02/17 17:24:41 UTC

SPARQL FILTER VARIABLE

Hello,

The SPARQL query works fine if I apply without the input variables, but if
you apply the filter variables gives me this error:



*Exception in thread "main" com.hp.hpl.jena.query.QueryParseException:
Encountered " "a" "a "" at line 1, column 289.*
*Was expecting one of:*
*    <IRIref> ...*
*    <PNAME_NS> ...*
*    <PNAME_LN> ...*
*    <VAR1> ...*
*    <VAR2> ...*
*    "exists" ...*
*    "not" ...*
*    "count" ...*
*    "min" ...*
*    "max" ...*
*    "sum" ...*
*    "avg" ...*
*    "sample" ...*
*    "group_concat" ...*
*    "bound" ...*
*    "coalesce" ...*
*    "if" ...*
*    "bnode" ...*
*    "iri" ...*
*    "uri" ...*
*    "str" ...*
*    "strlang" ...*
*    "strdt" ...*
*    "datatype" ...*
*    "lang" ...*
*    "langmatches" ...*
*    "isURI" ...*
*    "isIRI" ...*
*    "isBlank" ...*
*    "isLiteral" ...*
*    "isNumeric" ...*
*    "regex" ...*
*    "sameTerm" ...*
*    "RAND" ...*
*    "ABS" ...*
*    "CEIL" ...*
*    "FLOOR" ...*
*    "ROUND" ...*
*    "CONCAT" ...*
*    "SUBSTR" ...*
*    "STRLEN" ...*
*    "REPLACE" ...*
*    "UCASE" ...*
*    "LCASE" ...*
*    "ENCODE_FOR_URI" ...*
*    "CONTAINS" ...*
*    "STRSTARTS" ...*
*    "STRENDS" ...*
*    "STRBEFORE" ...*
*    "STRAFTER" ...*
*    "YEAR" ...*
*    "MONTH" ...*
*    "DAY" ...*
*    "HOURS" ...*
*    "MINUTES" ...*
*    "SECONDS" ...*
*    "TIMEZONE" ...*
*    "TZ" ...*
*    "NOW" ...*
*    "UUID" ...*
*    "STRUUID" ...*
*    "MD5" ...*
*    "SHA1" ...*
*    "SHA256" ...*
*    "SHA384" ...*
*    "SHA512" ...*
*    "true" ...*
*    "false" ...*
*    <INTEGER> ...*
*    <DECIMAL> ...*
*    <DOUBLE> ...*
*    <INTEGER_POSITIVE> ...*
*    <DECIMAL_POSITIVE> ...*
*    <DOUBLE_POSITIVE> ...*
*    <INTEGER_NEGATIVE> ...*
*    <DECIMAL_NEGATIVE> ...*
*    <DOUBLE_NEGATIVE> ...*
*    <STRING_LITERAL1> ...*
*    <STRING_LITERAL2> ...*
*    <STRING_LITERAL_LONG1> ...*
*    <STRING_LITERAL_LONG2> ...*
*    "(" ...*
*    "!" ...*
*    "+" ...*
*    "-" ...*

* at
com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:102)*
* at
com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:53)*
* at com.hp.hpl.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:37)*
* at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:139)*
* at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:79)*
* at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:52)*
* at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40)*
* at tutorial.elipticas.sparqlTest2(elipticas.java:46)*
* at tutorial.elipticas.main(elipticas.java:20)*


this is my code:

*package tutorial;*

*import java.io.UnsupportedEncodingException;*

*import com.hp.hpl.jena.query.QueryExecution;*
*import com.hp.hpl.jena.query.QueryExecutionFactory;*
*import com.hp.hpl.jena.query.QueryFactory;*
*import com.hp.hpl.jena.query.QuerySolution;*
*import com.hp.hpl.jena.query.ResultSet;*
*import com.hp.hpl.jena.rdf.model.Literal;*
*import com.hp.hpl.jena.rdf.model.Model;*
*import com.hp.hpl.jena.util.FileManager;*

*public class elipticas {*

* public static void main(String args[])*
* {*
* try {*
* sparqlTest2(300,800);*
* } catch (UnsupportedEncodingException e) {*
* // TODO Auto-generated catch block*
* e.printStackTrace();*
* }*
* }*

*public static void sparqlTest2(int a, int b) throws
UnsupportedEncodingException *
* {*
*
FileManager.get().addLocatorClassLoader(elipticas.class.getClassLoader());*
*        Model model = FileManager.get().loadModel("RDF/elipticas.rdf");*
* String querys = *
* " PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>> " +*
* " PREFIX gr: <http://purl.org/goodrelations/v1#
<http://purl.org/goodrelations/v1#>> " +*
* " PREFIX xsd: <http://www.w3.org/2001/XMLSchema#
<http://www.w3.org/2001/XMLSchema#>> " +*
* " SELECT * WHERE {" +*
* " ?x a gr:Offering . " +*
* " ?x gr:name ?d . " +*
* " ?x gr:hasPriceSpecification ?ps ." +*
* " ?ps gr:hasCurrencyValue ?p . "  +*
* " FILTER(?p >= a && ?p <= b ) . " +*
* "}";*
* com.hp.hpl.jena.query.Query query = QueryFactory.create(querys);*
*    QueryExecution qexec = QueryExecutionFactory.create(query, model);*
*    try {*
*        ResultSet results = qexec.execSelect();*
*        while ( results.hasNext() ) {*
*            QuerySolution soln = results.nextSolution();*
*            Literal name = soln.getLiteral("d");*
*            System.out.println(name);*

*        }*
*    } finally {*
*        qexec.close();*
*    }*
*}*
*} *


Thank you,
Nagore.

-- 
Nagore Salaberria<na...@gmail.com>

Re: SPARQL FILTER VARIABLE

Posted by Nagore Salaberria <na...@gmail.com>.
thank you,
Nagore


2014-02-17 17:43 GMT+01:00 Chris Dollin <ch...@epimorphics.com>:

> On Monday, February 17, 2014 05:24:41 PM Nagore Salaberria wrote:
> > Hello,
> >
> > The SPARQL query works fine if I apply without the input variables, but
> if
> > you apply the filter variables gives me this error:
>
> (1) Variables are prefixed with ?, so I think you want
>
> > FILTER(?p >= ?a && ?p <= ?b )
>
> (2) Put newlines in your queries so that you can print them out
>     and match up the line numbers reported by the parser with
>     the text of the line. It was a bit tedious working out where
>     "column 289" was.
>
> > *Exception in thread "main" com.hp.hpl.jena.query.QueryParseException:
> > Encountered " "a" "a "" at line 1, column 289.*
> > *Was expecting one of:*
> > *    <IRIref> ...*
> > *    <PNAME_NS> ...*
> > *    <PNAME_LN> ...*
> > *    <VAR1> ...*
> > *    <VAR2> ...*
> > *    "exists" ...*
> > *    "not" ...*
> > *    "count" ...*
> > *    "min" ...*
> > *    "max" ...*
> > *    "sum" ...*
> > *    "avg" ...*
> > *    "sample" ...*
> > *    "group_concat" ...*
> > *    "bound" ...*
> > *    "coalesce" ...*
> > *    "if" ...*
> > *    "bnode" ...*
> > *    "iri" ...*
> > *    "uri" ...*
> > *    "str" ...*
> > *    "strlang" ...*
> > *    "strdt" ...*
> > *    "datatype" ...*
> > *    "lang" ...*
> > *    "langmatches" ...*
> > *    "isURI" ...*
> > *    "isIRI" ...*
> > *    "isBlank" ...*
> > *    "isLiteral" ...*
> > *    "isNumeric" ...*
> > *    "regex" ...*
> > *    "sameTerm" ...*
> > *    "RAND" ...*
> > *    "ABS" ...*
> > *    "CEIL" ...*
> > *    "FLOOR" ...*
> > *    "ROUND" ...*
> > *    "CONCAT" ...*
> > *    "SUBSTR" ...*
> > *    "STRLEN" ...*
> > *    "REPLACE" ...*
> > *    "UCASE" ...*
> > *    "LCASE" ...*
> > *    "ENCODE_FOR_URI" ...*
> > *    "CONTAINS" ...*
> > *    "STRSTARTS" ...*
> > *    "STRENDS" ...*
> > *    "STRBEFORE" ...*
> > *    "STRAFTER" ...*
> > *    "YEAR" ...*
> > *    "MONTH" ...*
> > *    "DAY" ...*
> > *    "HOURS" ...*
> > *    "MINUTES" ...*
> > *    "SECONDS" ...*
> > *    "TIMEZONE" ...*
> > *    "TZ" ...*
> > *    "NOW" ...*
> > *    "UUID" ...*
> > *    "STRUUID" ...*
> > *    "MD5" ...*
> > *    "SHA1" ...*
> > *    "SHA256" ...*
> > *    "SHA384" ...*
> > *    "SHA512" ...*
> > *    "true" ...*
> > *    "false" ...*
> > *    <INTEGER> ...*
> > *    <DECIMAL> ...*
> > *    <DOUBLE> ...*
> > *    <INTEGER_POSITIVE> ...*
> > *    <DECIMAL_POSITIVE> ...*
> > *    <DOUBLE_POSITIVE> ...*
> > *    <INTEGER_NEGATIVE> ...*
> > *    <DECIMAL_NEGATIVE> ...*
> > *    <DOUBLE_NEGATIVE> ...*
> > *    <STRING_LITERAL1> ...*
> > *    <STRING_LITERAL2> ...*
> > *    <STRING_LITERAL_LONG1> ...*
> > *    <STRING_LITERAL_LONG2> ...*
> > *    "(" ...*
> > *    "!" ...*
> > *    "+" ...*
> > *    "-" ...*
> >
> > * at
> >
> com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:102)*
> > * at
> >
> com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:53)*
> > * at
> com.hp.hpl.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:37)*
> > * at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:139)*
> > * at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:79)*
> > * at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:52)*
> > * at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40)*
> > * at tutorial.elipticas.sparqlTest2(elipticas.java:46)*
> > * at tutorial.elipticas.main(elipticas.java:20)*
> >
> >
> > this is my code:
> >
> > *package tutorial;*
> >
> > *import java.io.UnsupportedEncodingException;*
> >
> > *import com.hp.hpl.jena.query.QueryExecution;*
> > *import com.hp.hpl.jena.query.QueryExecutionFactory;*
> > *import com.hp.hpl.jena.query.QueryFactory;*
> > *import com.hp.hpl.jena.query.QuerySolution;*
> > *import com.hp.hpl.jena.query.ResultSet;*
> > *import com.hp.hpl.jena.rdf.model.Literal;*
> > *import com.hp.hpl.jena.rdf.model.Model;*
> > *import com.hp.hpl.jena.util.FileManager;*
> >
> > *public class elipticas {*
> >
> > * public static void main(String args[])*
> > * {*
> > * try {*
> > * sparqlTest2(300,800);*
> > * } catch (UnsupportedEncodingException e) {*
> > * // TODO Auto-generated catch block*
> > * e.printStackTrace();*
> > * }*
> > * }*
> >
> > *public static void sparqlTest2(int a, int b) throws
> > UnsupportedEncodingException *
> > * {*
> > *
> >
> FileManager.get().addLocatorClassLoader(elipticas.class.getClassLoader());*
> > *        Model model = FileManager.get().loadModel("RDF/elipticas.rdf");*
> > * String querys = *
> > * " PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#
> > <http://www.w3.org/1999/02/22-rdf-syntax-ns#>> " +*
> > * " PREFIX gr: <http://purl.org/goodrelations/v1#
> > <http://purl.org/goodrelations/v1#>> " +*
> > * " PREFIX xsd: <http://www.w3.org/2001/XMLSchema#
> > <http://www.w3.org/2001/XMLSchema#>> " +*
> > * " SELECT * WHERE {" +*
> > * " ?x a gr:Offering . " +*
> > * " ?x gr:name ?d . " +*
> > * " ?x gr:hasPriceSpecification ?ps ." +*
> > * " ?ps gr:hasCurrencyValue ?p . "  +*
> > * " FILTER(?p >= a && ?p <= b ) . " +*
> > * "}";*
> > * com.hp.hpl.jena.query.Query query = QueryFactory.create(querys);*
> > *    QueryExecution qexec = QueryExecutionFactory.create(query, model);*
> > *    try {*
> > *        ResultSet results = qexec.execSelect();*
> > *        while ( results.hasNext() ) {*
> > *            QuerySolution soln = results.nextSolution();*
> > *            Literal name = soln.getLiteral("d");*
> > *            System.out.println(name);*
> >
> > *        }*
> > *    } finally {*
> > *        qexec.close();*
> > *    }*
> > *}*
> > *} *
> >
> >
> > Thank you,
> > Nagore.
> >
> >
>
> --
> "- no longer a stranger to the truth."             - The Reasoning,
> /Awakening/
>
> Epimorphics Ltd, http://www.epimorphics.com
> Registered address: Court Lodge, 105 High Street, Portishead, Bristol BS20
> 6PT
> Epimorphics Ltd. is a limited company registered in England (number
> 7016688)
>
>


-- 
Nagore Salaberria<na...@gmail.com>

Re: SPARQL FILTER VARIABLE

Posted by Chris Dollin <ch...@epimorphics.com>.
On Monday, February 17, 2014 05:24:41 PM Nagore Salaberria wrote:
> Hello,
> 
> The SPARQL query works fine if I apply without the input variables, but if
> you apply the filter variables gives me this error:

(1) Variables are prefixed with ?, so I think you want 

> FILTER(?p >= ?a && ?p <= ?b ) 

(2) Put newlines in your queries so that you can print them out
    and match up the line numbers reported by the parser with
    the text of the line. It was a bit tedious working out where
    "column 289" was.

> *Exception in thread "main" com.hp.hpl.jena.query.QueryParseException:
> Encountered " "a" "a "" at line 1, column 289.*
> *Was expecting one of:*
> *    <IRIref> ...*
> *    <PNAME_NS> ...*
> *    <PNAME_LN> ...*
> *    <VAR1> ...*
> *    <VAR2> ...*
> *    "exists" ...*
> *    "not" ...*
> *    "count" ...*
> *    "min" ...*
> *    "max" ...*
> *    "sum" ...*
> *    "avg" ...*
> *    "sample" ...*
> *    "group_concat" ...*
> *    "bound" ...*
> *    "coalesce" ...*
> *    "if" ...*
> *    "bnode" ...*
> *    "iri" ...*
> *    "uri" ...*
> *    "str" ...*
> *    "strlang" ...*
> *    "strdt" ...*
> *    "datatype" ...*
> *    "lang" ...*
> *    "langmatches" ...*
> *    "isURI" ...*
> *    "isIRI" ...*
> *    "isBlank" ...*
> *    "isLiteral" ...*
> *    "isNumeric" ...*
> *    "regex" ...*
> *    "sameTerm" ...*
> *    "RAND" ...*
> *    "ABS" ...*
> *    "CEIL" ...*
> *    "FLOOR" ...*
> *    "ROUND" ...*
> *    "CONCAT" ...*
> *    "SUBSTR" ...*
> *    "STRLEN" ...*
> *    "REPLACE" ...*
> *    "UCASE" ...*
> *    "LCASE" ...*
> *    "ENCODE_FOR_URI" ...*
> *    "CONTAINS" ...*
> *    "STRSTARTS" ...*
> *    "STRENDS" ...*
> *    "STRBEFORE" ...*
> *    "STRAFTER" ...*
> *    "YEAR" ...*
> *    "MONTH" ...*
> *    "DAY" ...*
> *    "HOURS" ...*
> *    "MINUTES" ...*
> *    "SECONDS" ...*
> *    "TIMEZONE" ...*
> *    "TZ" ...*
> *    "NOW" ...*
> *    "UUID" ...*
> *    "STRUUID" ...*
> *    "MD5" ...*
> *    "SHA1" ...*
> *    "SHA256" ...*
> *    "SHA384" ...*
> *    "SHA512" ...*
> *    "true" ...*
> *    "false" ...*
> *    <INTEGER> ...*
> *    <DECIMAL> ...*
> *    <DOUBLE> ...*
> *    <INTEGER_POSITIVE> ...*
> *    <DECIMAL_POSITIVE> ...*
> *    <DOUBLE_POSITIVE> ...*
> *    <INTEGER_NEGATIVE> ...*
> *    <DECIMAL_NEGATIVE> ...*
> *    <DOUBLE_NEGATIVE> ...*
> *    <STRING_LITERAL1> ...*
> *    <STRING_LITERAL2> ...*
> *    <STRING_LITERAL_LONG1> ...*
> *    <STRING_LITERAL_LONG2> ...*
> *    "(" ...*
> *    "!" ...*
> *    "+" ...*
> *    "-" ...*
> 
> * at
> com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:102)*
> * at
> com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:53)*
> * at com.hp.hpl.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:37)*
> * at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:139)*
> * at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:79)*
> * at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:52)*
> * at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40)*
> * at tutorial.elipticas.sparqlTest2(elipticas.java:46)*
> * at tutorial.elipticas.main(elipticas.java:20)*
> 
> 
> this is my code:
> 
> *package tutorial;*
> 
> *import java.io.UnsupportedEncodingException;*
> 
> *import com.hp.hpl.jena.query.QueryExecution;*
> *import com.hp.hpl.jena.query.QueryExecutionFactory;*
> *import com.hp.hpl.jena.query.QueryFactory;*
> *import com.hp.hpl.jena.query.QuerySolution;*
> *import com.hp.hpl.jena.query.ResultSet;*
> *import com.hp.hpl.jena.rdf.model.Literal;*
> *import com.hp.hpl.jena.rdf.model.Model;*
> *import com.hp.hpl.jena.util.FileManager;*
> 
> *public class elipticas {*
> 
> * public static void main(String args[])*
> * {*
> * try {*
> * sparqlTest2(300,800);*
> * } catch (UnsupportedEncodingException e) {*
> * // TODO Auto-generated catch block*
> * e.printStackTrace();*
> * }*
> * }*
> 
> *public static void sparqlTest2(int a, int b) throws
> UnsupportedEncodingException *
> * {*
> *
> FileManager.get().addLocatorClassLoader(elipticas.class.getClassLoader());*
> *        Model model = FileManager.get().loadModel("RDF/elipticas.rdf");*
> * String querys = *
> * " PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#
> <http://www.w3.org/1999/02/22-rdf-syntax-ns#>> " +*
> * " PREFIX gr: <http://purl.org/goodrelations/v1#
> <http://purl.org/goodrelations/v1#>> " +*
> * " PREFIX xsd: <http://www.w3.org/2001/XMLSchema#
> <http://www.w3.org/2001/XMLSchema#>> " +*
> * " SELECT * WHERE {" +*
> * " ?x a gr:Offering . " +*
> * " ?x gr:name ?d . " +*
> * " ?x gr:hasPriceSpecification ?ps ." +*
> * " ?ps gr:hasCurrencyValue ?p . "  +*
> * " FILTER(?p >= a && ?p <= b ) . " +*
> * "}";*
> * com.hp.hpl.jena.query.Query query = QueryFactory.create(querys);*
> *    QueryExecution qexec = QueryExecutionFactory.create(query, model);*
> *    try {*
> *        ResultSet results = qexec.execSelect();*
> *        while ( results.hasNext() ) {*
> *            QuerySolution soln = results.nextSolution();*
> *            Literal name = soln.getLiteral("d");*
> *            System.out.println(name);*
> 
> *        }*
> *    } finally {*
> *        qexec.close();*
> *    }*
> *}*
> *} *
> 
> 
> Thank you,
> Nagore.
> 
> 

-- 
"- no longer a stranger to the truth."             - The Reasoning, /Awakening/

Epimorphics Ltd, http://www.epimorphics.com
Registered address: Court Lodge, 105 High Street, Portishead, Bristol BS20 6PT
Epimorphics Ltd. is a limited company registered in England (number 7016688)


Re: SPARQL FILTER VARIABLE

Posted by Nagore Salaberria <na...@gmail.com>.
I've solved the problem thanks has this forum (
http://answers.semanticweb.com/questions/26356/declaring-variable-outside-sparql-filter-query
)

this is the correct sintax:


* " PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>> " +*
* " PREFIX gr: <http://purl.org/goodrelations/v1#
<http://purl.org/goodrelations/v1#>> " +*
* " PREFIX xsd: <http://www.w3.org/2001/XMLSchema#
<http://www.w3.org/2001/XMLSchema#>> " +*
* " SELECT * WHERE {" +*
* " ?x a gr:Offering . " +*
* " ?x gr:name ?d . " +*
* " ?x gr:hasPriceSpecification ?ps ." +*
* " ?ps gr:hasCurrencyValue ?p . "  +*
* " FILTER(?p >= "+a+" && ?p <= "+b+" ) . " +*
* "}";*


Nagore.


2014-02-17 17:29 GMT+01:00 Andy Seaborne <an...@apache.org>:

> On 17/02/14 16:24, Nagore Salaberria wrote:
>
>> FILTER(?p >= a && ?p <= b ) .
>>
>
> Illegal syntax.
>
>         Andy
>
> PS put some newlines in your query string and parer error message wil be
> more helpful to you.
>



-- 
Nagore Salaberria<na...@gmail.com>

Re: SPARQL FILTER VARIABLE

Posted by Andy Seaborne <an...@apache.org>.
On 17/02/14 16:24, Nagore Salaberria wrote:
> FILTER(?p >= a && ?p <= b ) .

Illegal syntax.

	Andy

PS put some newlines in your query string and parer error message wil be 
more helpful to you.