Magnus Manske wrote:
<data> <query database="wikispecies" result="r1">Some sort of XQuery or SQL query for wikispecies for {{{1}}}</query> Some species data table using <r1>latin_name</r1>, <r1>name_en</r1>, <r1>family</r1> etc. </data>
My approach would be to not use SQL, or anything similar. Use a custom syntax with a greatly restricted feature set. Think in terms of applications. Only allow queries which can be cached and invalidated. Fetching single rows would be a good place to start, that's all I would have implemented if I followed my WikiDB idea.
Cache invalidation or purging is the standard solution here. Make a list of every article which fetches a particular row, and update it on edit. Then when the row changes, invalidate all the articles in the list. Make a list of every article which contains a list of species in the Foobus family. Invalidate all articles in the list every time a species is added or removed from that family.
It's disappointing to give up on some of the dream, but at some stage of the development process, you have to be realistic. My advice would be to set a short term goal (a few months or so), code something useful, admire your work, then go from there.
-- Tim Starling