[pmwiki-users] "Wikis at school": Measuring authors' activity/amount of contribution?
Tobias Thelen
tt at tobiasthelen.de
Tue Jan 22 17:20:54 CST 2008
Hi @all!
For a large "Wikis in school" project we have now set up a PmWiki farm.
Teachers in up to 150 schools in the region of Osnabrück, Germany will
be trained and (hopefully :-) motivated to use wikis with their students
for a wide range of settings. Our test users are very happy with the
software, but one of the first questions which keeps coming up quite
regularly is: "How can I see (in some kind of overview) who did what and
how much?"
As a first approximation to that problem I implemented a simple way to
count contributions by directly grepping through the page store (in case
you're interested - see below [2]. It needs a UNIX environment). But
mere numbers don't tell much about a user's activity.
One approach is: Our teachers would like to see how much a student
contributed to the current state (they are always logged on and all
contributions are labelled with author names). In another wiki software
I implemented myself some years ago, we have a way to display the
current page with highlighted paragraphs - each contributing author is
assigned a unique colour. The page thus produces a multi-colored picture
and gives a quick impression, who contributed how much to that page. Has
anyone created a similar view for PmWiki?
Another approach: Calculate the size of all contributions (in
bytes/characters) and determine how much of that content was contributed
by each author. Of course this is nearly impossible: How to deal with
deletions? How to deal with the limitations of paragraph diffs (instead
of precise character diffs)? And, finally: Counting characters doesn't
tell you anything about quality, of course.
But nevertheless: Anyone ever thought about these questions? Any
half-finished work that we could use? (Btw.: in [1] we developped some
ideas how to classify 'wiki actions' manually - sorry, German only)
Anyone interested in the topic of "measuring authors' activity" should
feel free to answer (on-list or off-list). We could create a wiki page
for collecting ideas, then :-)
Thanks for reading and brainstorming,
Tobias
[1] Tobias Thelen, Clemens Gruber: *Textproduktions- und
Kommunikationsprozesse in WikiWikiWebs.* In: Huneke, Hans-Werner (Ed.):
Geschriebene Sprache: Strukturen, Erwerb, Modellbildung. Mattes Verlag
Heidelberg. S. 183-202. Download:
http://tobiasthelen.de/uploads/Wissenschaft/thelen_gruber_2005_textproduktions_und_kommunikationsprozesse_in_wikiwikiwebs.pdf
[2] Counting user contributions (include in config.php and say
(:usercontrib_stats:) on a properly authorized page :-/ ):
------------------------------------------------------------------------------------------------------------------
usercontrib_stats.php
------------------------------------------------------------------------------------------------------------------
<?
Markup('usercontrib_stats','directives',"/\(:usercontrib_stats:\)/e",'PRR(show_stats())');
function show_stats() {
$changes=get_stats();
$authors=sort_by_authors($changes);
$out=array();
$out[]="!Contributions";
$out[]="||'''Author'''||'''# changes'''||";
foreach ($authors as $author=>$contris) {
$out[]="||".$author."||".count($contris)."||";
}
return implode("\n",$out);
}
function get_stats() {
$cmd='cd wiki.d; grep "^author:" *';
$handle=popen($cmd,"r");
$liste=array();
while (!feof($handle)) {
$line=fgets($handle,4096);
$parts=explode('=',$line);
$subparts=explode(":",$parts[0]);
$liste[]=array('author'=>$parts[1], 'page'=>$subparts[0],
'time'=>$subparts[2]);
}
fclose($handle);
return $liste;
}
function sort_by_authors($liste) {
$authors=array();
foreach ($liste as $l) {
if (trim($l['author'])) {
$authors[trim($l['author'])][]=array('page'=>$l['page'],
'time'=>$l['time']);
}
}
return $authors;
}
More information about the pmwiki-users
mailing list