Andy,

You are right about the error report, my mistake, sorry: the query was not 
recognized as a select and ended up in update branch that actually reported the 
error. Unfortunately, I do not catch log messages in the select part of the 
code. I have no problem using "=" instead of "IN", I just thought it might be a 
good practice to report it here.  

Thanks for your help,
Milorad





>________________________________
> From: Andy Seaborne <[email protected]>
>To: [email protected] 
>Sent: Friday, August 31, 2012 11:02 AM
>Subject: Re: FILTER with IN clause in subqueries
> 
>Works in the current system. Try it at
>
>http://www.sparql.org/query-validator.html
>
>Looking at:
>
>com.hp.hpl.jena.query.QueryParseException: Encountered " "select" 
>"SELECT "" at line 8, column 1.
>Was expecting one of:
>     "prefix" ...
>     "insert" ...
>     "delete" ...
>     <INSERT_DATA> ...
>     <DELETE_DATA> ...
>     <DELETE_WHERE> ...
>     "modify" ...
>     "load" ...
>     "clear" ...
>     "create" ...
>     "add" ...
>     "move" ...
>     "copy" ...
>     "drop" ...
>     "with" ...
>
>Line 8 is about where the first SELECT is.
>
>Those are errors from the update parser, not query.
>
>Line 8 of the first query is:
>
>SELECT ?res ?value1 ?value4
>
>and a long way from the IN.  Parsing is one-pass, top-to-bottom.  An 
>error at line 8 will be due to something around line 8.
>
>> arq-2.8.7.jar
>> jena-2.6.4.jar
>> tdb.0.8.9.jar
>
>While those are several versions ago, I don't recall any bug that would 
>lead to what you are seeing.  The error message is from a different 
>parser (update, not query).
>
>    Andy
>
>On 31/08/12 09:34, Milorad Tosic wrote:
>> Andy,
>>
>> Sorry for the lack of details in the initial posting. Here are more details:
>>
>> This is a query that works fine:
>>
>> PREFIX os: 
>> <http://www.tagleen.com/ontologies/2012/1/MetaServiceArchitecture.owl#>
>> PREFIX ActionItem: <http://www.tagleen.com/ontologies/2012/7/ActionItem.owl#>
>> PREFIX dct: <http://purl.org/dc/terms/>
>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>
>> SELECT ?res ?value1 ?value4
>>
>> WHERE {
>>      BIND (dct:title as ?prop1) .
>>      BIND (ActionItem:hasPriority as ?prop4) .
>>
>> {
>>      SELECT DISTINCT ?res  {
>>      ?res a ActionItem:ActionItem .
>>
>>      OPTIONAL {
>>          ?res ?prop1 ?1 .
>>      } .
>>      OPTIONAL {
>>          ?res ?prop4 ?v4 .
>>      } .
>>
>>      FILTER ( ?v4 = os:HighPriority  ) .
>>     }
>> ORDER BY ?v1
>> OFFSET 0
>> LIMIT 1
>> }
>>      OPTIONAL {
>>          ?res ?prop1 ?value1 .
>>      } .
>>      OPTIONAL {
>>          ?res ?prop4 ?value4 .
>>      } .
>> #    FILTER ( ?value4 IN (os:HighPriority) ) .
>> }
>>
>>
>> However, if the "=" in FILTER in sub-query is replaced with "IN", as in the 
>> following query:
>>
>> SELECT ?res ?value1 ?value4
>>
>> WHERE {
>>      BIND (dct:title as ?prop1) .
>>      BIND (ActionItem:hasPriority as ?prop4) .
>>
>> {
>>      SELECT DISTINCT ?res  {
>>      ?res a ActionItem:ActionItem .
>>
>>      OPTIONAL {
>>          ?res ?prop1 ?1 .
>>      } .
>>      OPTIONAL {
>>          ?res ?prop4 ?v4 .
>>      } .
>>
>>      FILTER ( ?value4 IN (os:HighPriority) ) .
>>     }
>> ORDER BY ?v1
>> OFFSET 0
>> LIMIT 1
>> }
>>      OPTIONAL {
>>          ?res ?prop1 ?value1 .
>>      } .
>>      OPTIONAL {
>>          ?res ?prop4 ?value4 .
>>      } .
>> #    FILTER ( ?value4 IN (os:HighPriority) ) .
>> }
>>
>>
>> then, I get the following error:
>>
>> com.hp.hpl.jena.query.QueryParseException: c "" at line 8, column 1.
>> Was expecting one of:
>>      "prefix" ...
>>      "insert" ...
>>      "delete" ...
>>      <INSERT_DATA> ...
>>      <DELETE_DATA> ...
>>      <DELETE_WHERE> ...
>>      "modify" ...
>>      "load" ...
>>      "clear" ...
>>      "create" ...
>>      "add" ...
>>      "move" ...
>>      "copy" ...
>>      "drop" ...
>>      "with" ...
>>
>> Note that if the same FILTER is defined within the main query (commented 
>> line in previous queries), then it works in both cases.
>>
>> My configuration is like follows:
>>
>> arq-2.8.7.jar
>> jena-2.6.4.jar
>> tdb.0.8.9.jar
>>
>> Thanks,
>> Milorad
>>
>>
>>
>>> ________________________________
>>> From: Andy Seaborne <[email protected]>
>>> To: [email protected]
>>> Sent: Thursday, August 30, 2012 7:42 PM
>>> Subject: Re: FILTER with IN clause in subqueries
>>>
>>> On 30/08/12 15:37, Milorad Tosic wrote:
>>>> Hi,
>>>>
>>>> If clause IN is found in filter in a subquery the main query fails.
>>>> However, if IN is replaced with = as well as if filter with IN clause
>>>> is found in main query then the main query executes successfully.
>>>> Looks like a bug?
>>>
>>> Looks like an incomplete report!
>>>
>>> Can you provide a complete, minimal example?
>>>
>>> And the version number of the software?
>>>
>>>      Andy
>>>
>>>>
>>>> Milorad
>>>>
>>>
>>>
>>>
>>>
>
>
>
>

Reply via email to