I have a Semantic MediaWiki installation that has a large number of Canyon pages, where each of those pages describes a different hiking trip.  These pages have a number of properties on them, one of them being Quality (how "good" of a trip it is).  Currently, editors can edit the wikitext to change this property.  I would like make a feature that allows people to vote on what Quality they think a particular Canyon is, and then the overall Quality (based on the votes received) would be displayed on the page.  I can think of a few different ways this might be done, but I was hoping to get some advice from people who are really familiar with Semantic MediaWiki for which method is likely to produce the best results with the least effort.

== Single "Voting data" wiki page ==
I could make an extension that automatically edits a particular wiki page (perhaps "Voting data") in response to a click.  It would read the existing content, add the new vote, recalculate ratings, generate semantic properties with those ratings, and save the new page version.  I'm not sure if this is possible, but it seems like the best solution if it is.  Although, there might be a problem eventually if, say, 300 people each vote on 10 canyons, then my page size is going to be like 60k (which may cause performance issues?)

== Stand-alone widget ==
I could make an extension that injects custom PHP that talks to an entirely separate (non-MediaWiki) database to store and report the voting data.  This same approach would work on any website, even if it wasn't a MediaWiki install.  The down side of this approach is that I have no idea how I would (could?) integrate the voting results into a semantic search.  Can semantic data be stored stably in the SMW database without being defined in any wikitext?

== Per-page voting data ==
I could maybe make an extension that automatically edits the current page and injects an additional vote line so all the quality votes for a given page are stored on that page.  But, this seems like the most difficult option, and there would be a bunch of voting data junk in the wikitext content.

Any suggestions?