Hi Nicola,
Are you able to provide a test case for recreation ie minimum sample data to
recreate the problem ?
Best Regards
Hugh Williams
Professional Services
OpenLink Software, Inc. // http://www.openlinksw.com/
Weblog -- http://www.openlinksw.com/blogs/
LinkedIn -- http://www.linkedin.com/company/openlink-software/
Twitter -- http://twitter.com/OpenLink
Google+ -- http://plus.google.com/100570109519069333827/
Facebook -- http://www.facebook.com/OpenLinkSoftware
Universal Data Access, Integration, and Management Technology Providers
On 26 Nov 2013, at 09:35, ghirardi nicola <n.ghira...@cineca.it> wrote:
> According to the SPARQL reference, multiple FROM clauses should mean a
> query over the merge of all specified datasets.
> http://www.w3.org/TR/sparql11-query/#unnamedGraph
>
> I used multiple graph in a query and a combination of filter and minus
> operators in "where" clause in this way:
>
> SELECT ?s
> FROM <graph1>
> FROM <graph2>
> WHERE
> {
> ?s rdf:type <type1>
> MINUS { ?s <p1> ?p1 .
> }
> ?s <p2> ?p2 FILTER ( ?p2='p2_1' || ?p2='p2_2' )
> }
>
> The result is 0 (it should not).
> It does not happen removing the first graph or removing the "or" in the
> filter (or the minus clause).
> Thanks for the help
>
> Nicola Ghirardi
> CINECA
> Italy
>
> PS.
> I'm using Virtuoso version 07.00.3203 on Linux (x86_64-pc-linux-gnu), Single
> Server Edition
>
> This the query "explain":
>
> {
>
> Precode:
> 0: __rdflit := Call __rdflit (rdflit1067587)
> 5: __rdflit := Call __rdflit (rdflit1067586)
> 10: BReturn 0
> RDF_QUAD_POGS 4.2e+02 rows(s_13_8_t2.O, s_13_8_t2.S, s_13_8_t2.G)
> P = #ssd , O = $32 "in_iter"
> END Node
> After test:
> 0: one_of_these := Call one_of_these (s_13_8_t2.G,
> #database/repositories/rlink/config ,
> #database/repositories/rlink/researchUgovData )
> 5: if ( 0 < one_of_these) then 9 else 31 unkn 31
> 9: if ({
> RDF_QUAD 0.41 rows(s_12_4_t0.G)
> inlined P = #hasVersion , S = k_s_13_8_t2.S
> END Node
> After test:
> 0: one_of_these := Call one_of_these (s_12_4_t0.G,
> #database/repositories/rlink/config ,
> #database/repositories/rlink/researchUgovData )
> 5: if ( 0 < one_of_these) then 9 else 10 unkn 10
> 9: BReturn 1
> 10: BReturn 0
> Subquery Select( <none> )
> }
> ) then 31 else 13 unkn 31
> 13: isiri_id := Call isiri_id (s_13_8_t2.O)
> 18: temp := artm 1 - isiri_id
> 22: temp := artm 1 - isiri_id
> 26: if ( 0 = temp) then 31 else 30 unkn 31
> 30: BReturn 1
> 31: BReturn 0
> in iterates in_iter over ( #database/repositories/rlink/config ,
> #database/repositories/rlink/researchUgovData )
> RDF_QUAD 0.18 rows(s_13_8_t1.S)
> inlined P = #type , S = k_s_13_8_t2.S , O = #ResearchContent , G = k_in_iter
>
> After code:
> 0: istanza := Call __id2in (s_13_8_t1.S)
> 5: BReturn 0
> Select (istanza)
> }
> ------------------------------------------------------------------------------
> Shape the Mobile Experience: Free Subscription
> Software experts and developers: Be at the forefront of tech innovation.
> Intel(R) Software Adrenaline delivers strategic insight and game-changing
> conversations that shape the rapidly evolving mobile landscape. Sign up now.
> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk_______________________________________________
> Virtuoso-users mailing list
> Virtuoso-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing
conversations that shape the rapidly evolving mobile landscape. Sign up now.
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users