Hello Rob I replaced the 2.10.0 library by apache-jena-2.10.1-20130401, however BIND aren't getting into my query still.
Is your fix in this version yet? Thanks -- diogo patrão On Tue, Apr 2, 2013 at 1:16 PM, Rob Vesse <[email protected]> wrote: > The syntax error was correct even in the current stable version > > > The problem was that the code for converting from an algebra back into a > query usually puts top level BIND as project expressions which in most > cases is semantically equivalent to the original query. However when > there is a GROUP BY present it needs to recreate the BIND as an actual > BIND or you get the variable scope error. > > In algebra terms a project expression and a BIND at the top level of the > query pattern are semantically equivalent bar the above proviso about > interaction with GROUP BY > > Rob > > On 4/1/13 7:47 PM, "Diogo FC Patrao" <[email protected]> wrote: > > >Hello Rob > > > >Should now be fixed, build from latest Trunk or wait 24 hrs or so for the > >> snapshot to get build and deployed by the Apache build server > >> > > > >* THANKS a million * ! I'm running a couple of experiments for my PhD > >thesis, and was getting the excuses done, for that bug messed up part of > >my > >data. Now I can get everything right. Thanks, thanks. > > > > > >> What version of ARQ are you using to do the OpAsQuery? I assume > >> 2.10.1-SNAPSHOT since turning this type of query from its algebra back > >> into a query only very recently became possible. Previously the BIND > >> would have been lost completely when converting back from an algebra to > >>a > >> query. > >> > > > >The jar file says "2.10.0", I just downloaded the latest stable version. > > > > > >> Also is there a reason you are using ARQ 2.8.8 in your system? That's > >> very out of date (about 2 years so) now. > >> > > > >well, I'm running this experiment for one year and two months now, and > >just > >copied the binaries and stuff that were working. TLDR: lazy. > > > >anyway, 2.10.0 ARQ yielded the same error. > > > >However, should defining an alias on the query head allow referring to it > >elsewhere? Are alias and BINDs really equivalent? MySQL have this > >behaviour, but not Oracle. > > > >Thanks (again). > > > >dfcp > > > > > > > > > >> Andy - The report states that the query is passed off to a system > >>running > >> 2.8.8, even with this fix did ARQ support BIND syntax that far back? > >>I.e. > >> will this fix just move the error elsewhere? > >> > >> Rob > >> > >> > >> > >> On 4/1/13 12:42 PM, "Andy Seaborne" <[email protected]> wrote: > >> > >> >Hi there, > >> > > >> >Thanks for the report. I've captured this as: > >> > > >> >https://issues.apache.org/jira/browse/JENA-429 > >> > > >> > Andy > >> > > >> >On 31/03/13 21:11, Diogo FC Patrao wrote: > >> >> Hello > >> >> > >> >> I was performing a simple test with OpAsQuery: > >> >> > >> >> Here is the original query: > >> >> > >> >> PREFIX : <http://www.cipe.accamargo.org.br/ontologias/h2tc.owl#> > >> >> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> > >> >> PREFIX mylib: <java:dateadd.lib.pkgfor.arq.> > >> >> > >> >> SELECT ?yearmonth ( count(?document) as ?total ) > >> >> WHERE > >> >> { > >> >> ?document a :Document; > >> >> :documentDateOfCreation ?date ; > >> >> :documentType "exam results" . > >> >> BIND( mylib:DateFormat( xsd:string(?date), "yyyy-MM" ) as > >> >> ?yearmonth ) > >> >> } group by ?yearmonth > >> >> > >> >> Then I ran the code below, that compile the algebra then render the > >> >>query > >> >> again. > >> >> > >> >> Query query = QueryFactory.create( that_query_above, > >> >> Syntax.syntaxSPARQL_11); > >> >> > >> >> Op op = Algebra.compile(query); > >> >> > >> >> System.out.println(OpAsQuery.asQuery(op)); > >> >> > >> >> The result is below: > >> >> > >> >> SELECT (<java:dateadd.lib.pkgfor.arq.DateFormat>(< > >> >> http://www.w3.org/2001/XMLSchema#string>(?date), "yyyy-MM") AS > >> >>?yearmonth) > >> >> (count(?document) AS ?total) > >> >> > >> >> WHERE > >> >> > >> >> { ?document <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> < > >> >> http://www.cipe.accamargo.org.br/ontologias/h2tc.owl#Document> . > >> >> > >> >> ?document < > >> >> > >> >> > >> > >> > http://www.cipe.accamargo.org.br/ontologias/h2tc.owl#documentDateOfCreati > >> >>on> > >> >> ?date . > >> >> > >> >> ?document < > >> >> http://www.cipe.accamargo.org.br/ontologias/h2tc.owl#documentType> > >> "exam > >> >> results" > >> >> > >> >> } > >> >> > >> >> GROUP BY ?yearmonth > >> >> > >> >> However, this is not a valid query; notice that the BIND has gone, it > >> >> somehow turned to a alias on query's head. > >> >> > >> >> ARQ 2.8.8. upon receiving this query, yields the error: > >> >> > >> >> Variable used when already in-scope: ?yearmonth in > >> >> (<java:dateadd.lib.pkgfor.arq.DateFormat>(xsd:string(?date), > >>"yyyy-MM") > >> >>AS > >> >> ?yearmonth) > >> >> > >> >> Is that a bug on ARQ or OpAsQuery? Or anything else? > >> >> > >> >> Thanks! > >> >> > >> >> -- > >> >> diogo patrão > >> >> > >> > > >> > >> > >
