From: Markus <ma...@ai...> - 2007-11-23 08:49:40
|
Hi Thomas, thanks for the work (and good to hear the SpieleWiki runs on the new versio= n)!=20 We agree and also would prefer the full negation patch. Our current roadmap= =20 is to finish 1.0 first, which mainly hinges upon the inclusion (or=20 reimplementation) of the {{#ask}}-patch and some further fixes (service=20 links, Type:Boolean).=20 After that, we will go for new releases and new features. I would expect th= at=20 your patch remains compatible for that time -- major changes of querying as= =20 in 0.7->1.0 are not scheduled so soon. What might be revisited, however, is= =20 the concrete syntax used for expressing negations. If I can manage to revie= w=20 your patch before 1.0, then I will certainly add it right away -- the fact= =20 that you successfully worked through our Storage API already impresses me=20 quite a lot :-) And, given that you are one of the few people who ever=20 actually read that code: we are also happy about any suggestions towards=20 improving the storage performance. Btw another possibility to work-around your problem for now could be to fil= ter=20 for the respective property values *on printout*. This is inefficient but O= K=20 as long as the result set is not too large. To do this, one would use a=20 templated printout (format=3D"template" template=3D"...") and include an {{= #if }}=20 into the template that checks the conditions to decide whether or not to=20 create any output. Note that one can also use format=3D"template" for print= ing=20 tables by setting intro=3D"{|" and using a template that defines table-rows= in=20 wiki pipe syntax. It is also possible to use a template call for intro, so = as=20 to get styling parameters set. Of course it's as ugly as any advanced=20 formatting in MediaWiki ... Regards Markus On Dienstag, 20. November 2007, Thomas Bleher wrote: > * Thomas Bleher <bl...@ci...> [2007-11-15 20:36]: > > * Thomas Bleher <bl...@ci...> [2007-11-14 08:48]: > > > 1) Implement negations in queries - then I could ask "(NOT > > > maxTeilnehmer <=3D 9) AND (NOT minTeilnehmer >=3D 11)". I used this > > > solution with SMW 0.7 (patch below), but looking at the 1.0RC2 code, > > > I'm not quite sure how to implement it cleanly. > > > > I looked at the code again and tried to implement negation support. The > > patch below adds a <n> </n> pair which negates the query in between. It > > also adds a SMWNegation class (derived from SMWDescription), which > > encapsulates the negation. > > OK, I took another stab at this, and in my limited tests the code works > correctly now :) > > The code is online at http://pwiki.j-crew.de/wiki/Test, feel free to > play around with it (it's just a test-wiki). > > Technical details: > To work around the problems with INNER JOINs and negations, all INNER > JOINs of the form "SELECT a INNER JOIN b ON a.c=3Db.d" are replaced by > "SELECT a,b WHERE a.c=3Db.d". This may not be the most elegant solution, > but the only workable I found. > > To make this work, addJoin now has an additional $where parameter. > > Beware: I still don't understand all the internals of query processing, > so no guarantees for this code. I would really appreciate it if someone > more knowledgeable than me would look over the code. > > Regards, > Thomas =2D-=20 Markus Kr=F6tzsch Institut AIFB, Univers=E4t Karlsruhe (TH), 76128 Karlsruhe phone +49 (0)721 608 7362 fax +49 (0)721 608 5998 ma...@ai... www http://korrekt.org |