New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Wikipedia:Hauptautoren - Wikipedia

Wikipedia:Hauptautoren

aus Wikipedia, der freien Enzyklopädie

Bild:Qsicon Achtung.png Wichtiger Hinweis: Es gibt in der Wikipedia die Auffassung, dass es beim Kopieren von Textabschnitten ausreichend sei, die "Hauptautoren" anzugeben. Das ist umstritten. Nach einer Interpretation der GFDL spielen Hauptautoren nur für die "Titelseite" eines Dokumentes eine Rolle, und die gibt es in der Wikipedia nicht. Details siehe hier.
Für die korrekte Vorgehensweise beim Verschieben oder Zusammenführen von Artikeln siehe Hilfe:Artikel verschieben.

Um den Anteil der Autoren eines Artikel an dessen aktueller Version zu bestimmen, muss man zunächst den Artikel exportieren, wobei man das Häkchen bei der Option "Nur die aktuelle Version der Seite exportieren" entfernen muss. (Der Export kompletter Versionsgeschichten ist allerdings z.Z. (27.6.2006) auf maximal 100 Edits beschränkt.)

Dann lässt man folgendes Perl-Script auf die XML-Datei los. Ausgegeben wird ein Wikiquelltext mit je nach Autor unterschiedlich farbig markiertem Text und im Anschluss die Anzahl der Wörter, die die Autoren beigetragen haben, und der Anteil an der Gesamtzahl der Wörter. Bilder, Tabellen und Weblinks werden z.Z. nicht mit berücksichtigt. Den Wikiquelltext kann man auf einer beliebigen Seite zur Vorschau bringen (aber nicht abspeichern!). Setzt man die Variable $mkImg auf 1, wird auch ein Bild der Versionsgeschichte erzeugt (horizontale Koordinate proportional zur Versionsnummer). Das Bild sollte man sich lokal ansehen und nicht hochladen.

Beispielseiten: Wikipedia:Hauptautoren/Lorentz-Transformation und Wikipedia:Hauptautoren/Stern (mit Bild der Versionsgeschichte)

Das Script wird trotz Verwendung von pre- und nowiki-Tags hier nicht richtig angezeigt, also bitte aus dem Quelltext dieser Seite kopieren.

#!/usr/bin/perl

$lws  = 5;                      # length of word sequence
$lang = "de";                 # en, de
$mkImg = 0;                     # 1: make history image

use utf8; use open ":utf8"; binmode STDOUT, ":utf8";

if ($lang eq "en") {
    $category = "Category";
    $image = "Image";
    $words = "words";
    $fraction = "fraction";
    $user = "user";
} elsif ($lang eq "de") {
    $category = "Kategorie";
    $image = "Bild";
    $words = "Wörter";
    $fraction = "Anteil";
    $user = "Benutzer";
} else {
    die;
}

while (<>) { $xml .= $_; }

for ($id=0; $xml =~ /<revision>(.*?)<\/revision>/sg; $id++) {
    $version = $1;
    $version =~ /<contributor>.*?(?:<ip>|<username>)(.*?)(?:<\/ip>|<\/username>).*?<\/contributor>/s;
    $author[$id] = $1;
    $version =~ /<text[^>]*>(.*?)<\/text>/s;
    $text = $1;

    # convert <, >, & and remove (inter-)wikilinks
    $text =~ s/</</sg; $text =~ s/>/>/sg; $text =~ s/&/&/sg;
    $text =~ s/\[\[(.{2,3}|minnan|simple):(.+?)\]\]//sg;
    $text =~ s/\[\[(?!(?:$category|$image):)([^\]\|]*?\|)?([^\|]+?)\]\]/$2/sg;
    $text =~ s/\n{3,}/\n\n/sg;
    $text0 = $text;

    # remove elements not to be colored
    while($text =~ s/\{\{((?!\{\{).)*?\}\}//sg) {}
    while($text =~ s/\{\|((?!\{\|).)*?\|\}//sg) {}
    $text =~ s/\[\[($category|$image):.*?\]\]//isg;
    $text =~ s/\*? ?\[(http|ftp|mailto).*?\]//isg;
    $text =~ s/\*? ?(http|ftp|mailto):\S*//isg;
    $text =~ s/<math>.*?<\/math>//sg;
    $text =~ s/<.{1,10}?>//sg;
    $text =~ s/&(\w+|#(\d+|x[0-9A-Fa-f]+));//sg;

    @words = ();
    while ($text =~ /[\p{IsAlpha}]+/sg) {
        push @words, $&;
    }
    $nWords[$id] = @words;
    $nWordsMax = @words>$nWordsMax?@words:$nWordsMax;
    for ($i=0; $i<@words; $i++) {
        $id[$i] = $id;
    }
    for ($i=0; $i<@words-$lws+1; $i++) {
        $seq = join(" ", @words[$i..$i+$lws-1]);
        if (defined $id{$seq}) {
            for ($j=$i; $j<$i+$lws; $j++) {
                if ($id[$j]>$id{$seq}[$j-$i]) {
                    $id[$j] = $id{$seq}[$j-$i];
                }
            }
        }
    }
    for ($i=0; $i<@words-$lws+1; $i++) {
        $seq = join(" ", @words[$i..$i+$lws-1]);
        if (!defined $id{$seq}) {
            for ($j=$i; $j<$i+$lws; $j++) {
                $id{$seq}[$j-$i] = $id[$j];
            }
        }
    }
    $idHist[$id] = [@id] if $mkImg;
}
$id--;

for ($i=0; $i<@words; $i++) {
    $words{$author[$id[$i]]}++;
}
@authors = sort {$words{$b} <=> $words{$a}} keys %words;
for ($i=0; $i<@authors; $i++) {
    if ($i>5) {
        $color{$authors[$i]} = "#000000";
        $colorImg{$authors[$i]} = "\x00\x00\x00" if $mkImg;
    } else {
        $color{$authors[$i]} = ("#bf0000", "#00bf00", "#0000bf", "#007f7f",
                                "#7f007f", "#7f7f00")[$i];
        $colorImg{$authors[$i]} = ("\xbf\x00\x00", "\x00\xbf\x00", "\x00\x00\xbf", "\x00\x7f\x7f",
                                   "\x7f\x00\x7f", "\x7f\x7f\x00")[$i] if $mkImg;
    }
}

# compute history image
if ($mkImg) {
    open IMG, "| pamscale -width 400 -height 400 | pnmtopng > hist.png";
    binmode IMG;
    print IMG "P6 $id $nWordsMax 255\n";
    for ($y=0; $y<$nWordsMax; $y++) {
        for ($x=0; $x<$id; $x++) {
            if ($y<$nWords[$x]) {
                if (!defined $colorImg{$author[$idHist[$x][$y]]}) {
                    print IMG "\x00\x00\x00";
                } else {
                    print IMG $colorImg{$author[$idHist[$x][$y]]};
                }
            } else {
                print IMG "\xff\xff\xff";
            }
        }
    }
    close IMG;
}

# mask elements not to be colored
sub subst {
    my $s = "___".$sNr++."___";
    $substBlock{$s} = $_[0];
    $s;
}
while($text0 =~ s/\{\{((?!\{\{).)*?\}\}/subst($&)/esg) {}
while($text0 =~ s/\{\|((?!\{\|).)*?\|\}/subst($&)/esg) {}
$text0 =~ s/\[\[($category|$image):.*?\]\]/subst($&)/iesg;
$text0 =~ s/\*? ?\[(http|ftp|mailto).*?\]/subst($&)/iesg;
$text0 =~ s/\*? ?(http|ftp|mailto):\S*/subst($&)/iesg;
$text0 =~ s/<math>.*?<\/math>/subst($&)/esg;
$text0 =~ s/<.{1,10}?>/subst($&)/esg;
$text0 =~ s/&(\w+|#(\d+|x[0-9A-Fa-f]+));/subst($&)/esg;

# color the text
for ($i=0; $i<@words; $i++) {
    $text0 =~ s/^(.*?)$words[$i]//sg;
    $gap = $1;
    if ($i==0) {
        $coloredText = "$gap<font color=\"$color{$author[$id[$i]]}\">$words[$i]"
    } else {
        if ($gap =~ /^\s+$/ && $author[$id[$i]] eq $author[$id[$i-1]]) {
            $coloredText .= "$gap$words[$i]"
        } else {
            $coloredText .= "</font>$gap<font color=\"$color{$author[$id[$i]]}\">$words[$i]"
        }
    }
}
$coloredText .= "</font>$text0";

# fetch back masked elements
while ($coloredText =~ s/___\d+___/$substBlock{$&}/sg) {}

print "$coloredText\n----\n----\n\n";
if($mkImg) {
     print "{| cellspacing=\"10\"\n";
     print "|- valign=\"top\"\n";
     print "|\n";
}
print "{| cellspacing=\"0\" border=\"1\"\n";
print "! $words || $fraction || $user\n";
print "|-\n";
foreach $author (@authors) {
    printf "| %5i || %4.1f\% || <font color=\"$color{$author}\">%s</font>\n",
    $words{$author}, 100*$words{$author}/@words, $author;
    print "|-\n";
}
print "|}\n";
if ($mkImg) {
    print "| [[$image:hist.png]]\n";
    print "|-\n";
    print "|}\n" if ($showImg);
}

[Bearbeiten] Funktionsweise

Grob gesagt: Der Text wird in überlappende 5-Wort-Sequenzen aufgeteilt, und dann wird bestimmt, in welcher Version die jeweilige Sequenz das erste mal auftrat und dem entsprechenden Autor zugeordnet.

Genauer (und für Nicht-Programmierer evtl. unverständlich): Die Sequenzen werden in Hashes gespeichert. Dem Schlüssel (fünf durch Leerzeichen getrennte Wörter) wird ein Array von 5 Versionsnummern als Wert zugeordnet. Die höchste dieser Versionsnummern zeigt an, in welcher Version die Sequenz das erste mal auftrat. Wenn die anderen Nummern kleiner sind, bedeutet das, dass das jeweilige Wort auch Bestandteil einer anderen Sequenz ist (oder einmal war), die schon zu einem früheren Zeitpunkt auftrat.

Der Algorithmus ist am einfachsten anhand eines Beispiels erklärt. Angenommen Benutzer A legt einen Artikel an und Benutzer B verändert ihn in einer zweiten Bearbeitung:

0. Version (Benutzer A): Wikipedia ist eine freie Enzyklopädie.
1. Version (Benutzer B): Die Wikipedia ist eine freie Enzyklopädie.

0. Version bearbeiten

@woerter = ("Wikipedia", "ist", "eine", "freie", "Enzyklopädie")
Array @id mit der aktuellen Versionsnummer füllen: @id = (0, 0, 0, 0, 0)
Es ist noch keine Sequenz definiert, also bleibt @id so.
Da @woerter aus fünf Wörtern besteht, gibt es genau eine Sequenz: $id{"Wikipedia ist eine freie Enzyklopädie"} = [0, 0, 0, 0 ,0]

1. Version bearbeiten

@woerter = ("Die", "Wikipedia", "ist", "eine", "freie", "Enzyklopädie")
Array @id mit der aktuellen Versionsnummer füllen: @id = (1, 1, 1, 1, 1, 1)
Eine Sequenz ist bereits definiert und wird an Position 1 bis 5 erkannt; @id wird geändert: @id = (1, 0, 0, 0, 0, 0)
Zur alten Sequenz $id{"Wikipedia ist eine freie Enzyklopädie"} = [0, 0, 0, 0 ,0] kommt eine neue hinzu: $id{"Die Wikipedia ist eine freie"} = [1, 0, 0, 0 ,0]

Zum Schluss wird @id ausgewertet: einmal 1: Benutzer B hat ein Wort beigetragen; 5 mal 0: Benutzer A hat 5 Wörter beigetragen.

Der Hash %id kann von Version zu Version nur wachsen. Deshalb könnte man ihn bei Integration eines solchen Algorithmus' in die MediaWiki-Software nach jeder Bearbeitung eines Artikels aktualisieren und zwischenspeichern, so dass man nicht bei jeder Auswertung die komplette Versionsgeschichte analysieren müsste.

[Bearbeiten] Bedeutung der Hauptautoren in der GFDL

Die GFDL verlangt bei der Weitergabe eines modifizierten, unter der GFDL veröffentlichten Textes, dass auf der Titelseite fünf Hauptautoren der Vorversion angegeben werden (oder weniger, falls die Vorversion weniger Autoren hatte). Gleiches gilt für die Verbindung mehrerer unter der GFDL stehender Texte. Um die Hauptautoren leichter bestimmen zu können, mag das auf dieser Seite vorgestellte Programm nützlich sein. Die GFDL schreibt nicht vor, wie sie zu ermitteln sind. Es ist allerdings ratsam, sich nicht alleine auf eine automatisch generierte Autorenliste zu verlassen.

Mit der Angabe der Hauptautoren der Vorversion(en) sind die Bedingungen der GFDL allerdings noch nicht erfüllt. Insbesondere müssen die kompletten Versionsgeschichten übernommen bzw. bei mehr als einer Vorversion vereinigt/verbunden werden. (In der GFDL steht: combine.)

[Bearbeiten] Siehe auch

  • Hilfe:Artikel_verschieben#Artikel_zusammenführen
  • Blame maps - eine neue Implementation einer vergleichbaren Funktion: Demo, mailhinweis
  • m:User:Jah/histfilter Versionsgeschichten filtern. Damit kann man u.a. nach Versionen suchen, in denen eine vorgegebene Textstelle eingefügt/verändert/gelöscht wurde. Basiert ebenfalls auf der Trennung des Textes in überlappende Wortsequenzen.
  • Benutzer:Jah/Rhic Fast dasselbe, aber letztlich nicht so umständlich: Statt im Wiki-Quelltext Farbmarkierungen zu setzen, wird der Artikeltext selbst durch Javascript eingefärbt. Das erfordert allerdings auch einen Server, von dem aus Javascript die Versionsinformationen herunterladen kann.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu