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