Hi,

I would like to ask about this:

http://semantic-mediawiki.org/wiki/Help:Max_format

I am afraid to say that this idea seems to be fundamentally broken. The 
above page seriously suggests to find the largest population number in 
the wiki by querying for a list of *all cities with and without 
population* and invoke PHP code that scans through this list to find the 
maximum (this is what format=max does, AFAIK). The query to do this is:

{{#ask: [[Category:City]]
| ?Population
| format=max
}}

This is an extremely slow method of producing wrong results (the results 
will be wrong as soon as there are enough pages in the wiki so that the 
one with the maximum value is after the default query limit when 
ordering results alphabetically).

What one would do instead is to ask for the one result that has the 
largest value right away, like this:

{{#ask: [[Category:City]]
| ?Population
| sort=population
| order=DESC
| limit=1
| format=max
}}

The max format in this case is obsolete, since one could also just do

{{#ask: [[Category:City]]
| ?Population=
| mainlabel=-
| sort=population
| order=DESC
| limit=1
}}

This has the big advantage that one can also use further output 
formatting on the resulting number, e.g., to get it in a plain format 
without any beautification.


I just noted these problems since there seem to be cases where PHP runs 
out of time/memory due to users following the above query anti-pattern 
[1]. My conclusion would be: let's drop max/min as soon as possible and 
change the documentation to give the efficient query pattern I gave above.

Markus

[1] https://bugzilla.wikimedia.org/show_bug.cgi?id=42347

------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Semediawiki-devel mailing list
Semediawiki-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/semediawiki-devel

Reply via email to