[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