Hi,
I have a query that first filters literals of given length:
FILTER (STRLEN(?literal) = 8)
And then it extracts a substring via SUBSTR():
SUBSTR(?literal, 8, 1)
However, Virtuoso throws Virtuoso 22011 Error SR026: SPARQL substr: Bad
string subrange: from=8, len=1.
How is that possible?
I'
I've had similar problems lately working with strings.
SPARQL snippets unctions that worked on other products and produced this
kind of errors in Virtuoso.
Try using:
STRDT(?literal, xsd:string)
as input to the substr() function,
and it should work.
On Tue, Nov 1, 2016 at 3:22 PM, Jindřich Mynarz
Unfortunately, using STRDT(?literal, xsd:string) doesn't make difference
and the error is still thrown. ?literal is already a string.
- Jindřich
--
Jindřich Mynarz
http://mynarz.net/#jindrich
On Tue, Nov 1, 2016 at 2:49 PM, Nikolaos Beredimas
wrote:
> I've had similar problems lately working
Hello Jindřich,
how do you apply both FILTERs? Obviously the filter on the length needs
to be evaluated first, and I'm wondering how this would be evaluated if
somebody uses FILTER(cond1 && cond2) as && should be commutative.
Does it work if you use a sub-SELECT to filter by length first?
Ki
Hi Lorenz,
On Tue, Nov 1, 2016 at 4:18 PM, Lorenz B. <
buehm...@informatik.uni-leipzig.de> wrote:
>
> how do you apply both FILTERs?
>
I use FILTER (STRLEN(?literal) = 8) followed by BIND (SUBSTR(?literal, 8,
1) AS ?eighth).
> Obviously the filter on the length needs to be evaluated first, and I
Hi Jindřich,
Can you please provide a test case (data & query) to demonstrate the issue ?
Best Regards
Hugh Williams
Professional Services
OpenLink Software, Inc. // http://www.openlinksw.com/
Weblog -- http://www.openlinksw.com/blogs/
LinkedIn -- http://www.linkedin.com/comp