Ivan Mikhailov wrote: > Hello Axel, > >> aehm... you won. :-) >> It starts to look to me like that nesting in FILTERs doesn't really have >> any advantages. Anybody arguments in favor of the FILTERed version? > > I'd prefer to not rewrite at all a BI query like > > select ?book ?p1 ?dp1 ?end1 where > { ?offer1 :itm ?book ; > :price ?p1 . > OPTIONAL { > ?offer1 :discountPrice ?dp1 ; > :endDate ?end1 . > filter ((?dp1/?p1 < 0.3) || > ASK { > ?offer2 :itm ?book ; > :price ?p2 . > OPTIONAL { > ?offer2 :discountPrice ?dp2 ; > :endDate ?end2 . > filter (?end2 >= ?end1) } > filter (?dp1/?p1 < ?dp2/?p2) } } ) } } Let me try to phrase this query into "English" Give me books and their list prices and optionally their disount prices and the date the discount ends if either - the discount price is less than a third of the list price, or - there is a second offer for that book with a discount that ends later, but with a worse ratio of price to discount price? ... aehm, I assume there is a not missing in front of the ASK? (assuming because otherwise, it is not about Negation anyways, which we started) So, do you mean: Give me books and their list prices and optionally their disount prices and the date the discount ends if either - the discount price is less than a third of the list price, or - there is no offer which ends later with a better price to discount price ratio ? Was that what you mean? Anyway, thanks for the use case, if clarified, it would make sense to add that to the negation use cases on the wiki, probably. Axel > because the semantics of FILTER in OPTIONAL is "interesting enough": > it's hard to move the expression to some other place without affecting > cardinality of the result set. Of course it is possible to replace left > outer join with UNION but it easily doubles the length of the query for > each OPTIONAL, mere 5 OPTIONALs would explode the query 32 times. > > Best Regards, > > Ivan Mikhailov > OpenLink Software > http://virtuoso.openlinksw.com > > > -- Dr. Axel Polleres Digital Enterprise Research Institute, National University of Ireland, Galway email: axel.polleres@deri.org url: http://www.polleres.net/Received on Tuesday, 26 May 2009 20:18:37 UTC
This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:00:54 UTC