Naar inhoud springen

Gebruiker:Michiel1972/Voorbeeld script

Uit Wikipedia, de vrije encyclopedie

Stap 1: Zoek vrije informatie in een database formaat[bewerken | brontekst bewerken]

Zoek vrij beschikbare statistieken. Download en bewerk in (b.v.) Excel. Hier kan je bijvoorbeeld provincies, regio's en Nederlandse wikilinks toevoegen.

Stap 2: Bewerk en vul de informatie aan[bewerken | brontekst bewerken]

Bewerk en vul de informatie aan. bereken nieuwe indicatoren (b.v. dichtheid). Schrijf het aangepaste bestand weg als tekst bestand (bij voorkeur utf om speciale tekens correct te houden) en gebruik deze als input voor het vervolg.

Fragment inputfile:

Naam                                Titel                        Provincie        code         land    Water     Totaal    Man     Man percePersons   Dichthei67+     67+perceUnemployEmigratiImmigratnetto   Dutchies
Halden                              Halden                       Østfold            101          596,72     44,27    640,99  13.675     49,6    27.582      43   4.254    15,4     4,4     957   1.070     113      54
Moss                                Moss                         Østfold            104           57,78      5,34     63,12  13.669     48,7    28.040     444   3.956    14,1     3,8   1.558   1.843     285      28
Sarpsborg                           Sarpsborg                    Østfold            105          370,26     36,78    407,04  24.476     49,2    49.753     122   7.071    14,2     4,3   1.887   2.239     352      19
Fredrikstad                         Fredrikstad                  Østfold            106          281,97      8,34    290,31  34.367     48,8    70.418     243  10.326    14,7     4,4   2.499   2.984     485      28
Hvaler                              Hvaler                       Østfold            111           87,74      0,04     87,78   1.895     50,2     3.773      43     508    13,5     2,7     179     269      90       1


Stap 3: Programmeer een tekstverwerker voor de data[bewerken | brontekst bewerken]

Schrijf zelf een programma om het 'kale' tekstbestand om te zetten in een bestand met artikelen in Wiki-formaat.

Ter illustratie een programmauitdraai die is gebruikt voor het toevoegen van gemeenten in Noorwegen. Input was een database met basisinformatie (omgezet in txt formaat om in te lezen door Delphi). Zie het fragment hierboven.

Output van het runnen is een wiki-bestand klaar om up te loaden met de bot pagefromfile.py. Ook is de output te gebruiken om stukken teksten (zoals sjablonen) snel te kopieren naar bestaande artikelen (handmatig copy/paste maar zonder de tijd te verspelen om de info op te zoeken).

Delphi als tekstverwerker...


//Inlezen
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
    i,j,lines,aantal:integer;
    titel:array[1..500] of string[36];
    naam:array[1..500] of string[29];
    prov:array[1..500] of string[18];
    code:array[1..500] of string[4];
    land:array[1..500] of string[16];
    water:array[1..500] of string[10];
    opp:array[1..500] of string[10];
    man:array[1..500] of string[8];
    manperc:array[1..500] of string[9];
    totaal:array[1..500] of string[10];
    dichtheid:array[1..500] of string[8];
    plus67:array[1..500] of string[8];
    plus67perc:array[1..500] of string[8];
    werkloos:array[1..500] of string[8];
    em:array[1..500] of string[8];
    im:array[1..500] of string[8];
    netto:array[1..500] of string[8];
    dutch:array[1..500] of string[8];

begin
assignfile(f,'Noorwegen.txt');
reset(f);
lines:=1;

readln(f);
readln(f);
repeat
read(f,titel[lines]) ;
read(f,naam[lines]) ;

read(f,prov[lines]) ;
read(f,code[lines]) ;
if  Length( trim(code[lines]))=3 then code[lines]:='0'+trim(code[lines]);

read(f,land[lines]) ;
read(f,water[lines]) ;
read(f,opp[lines]) ;
read(f,man[lines]) ;
read(f,manperc[lines]) ;
read(f,totaal[lines]) ;
read(f,dichtheid[lines]) ;
read(f,plus67[lines]) ;
read(f,plus67perc[lines]) ;
read(f,werkloos[lines]) ;
read(f,em[lines]) ;
read(f,im[lines]) ;
read(f,netto[lines]) ;
readln(f,dutch[lines]) ;
inc(lines);

until eof(f);
closefile(f);
edit1.text:=inttostr(lines);

assignfile(f,'output.txt');
rewrite(f);
for  i:=1 to lines do
  begin
  writeln(f,'SSS');
  writeln(f,'{{infobox kommune|'   );
  writeln(f, '|naam= ' + trim(naam[i]) );
  writeln(f, '|coatofarms= [[image:'+trim(naam[i])+'_komm.png]]' ) ;
  writeln(f, '|map=  '    );
  writeln(f, '|provincie= [[' + trim(prov[i])+']]' );
  writeln(f, '|idnummer= '  + trim(code[i]) );
  writeln(f, '|oppervlaktotaal='+  trim(opp[i]) );
  writeln(f, '|oppervlakland= '+ trim(land[i]) );
  writeln(f, '|oppervlaktewater= '+ trim(water[i]) );
  writeln(f, '|populatiedatum= 2005' )  ;
  writeln(f, '|bevolking=' +trim(totaal[i]) );
  writeln(f, '|dichtheid= '+trim(dichtheid[i]) );
  writeln(f, '|munwebpage= www.'+trim(naam[i])+'.kommune.no' );
  writeln(f,'}} ');

  writeln(f, ''''+''''+'''', trim(titel[i]), ''''+''''+''''+ ' is een [[Noorse gemeenten per provincie|gemeente]] in de Noorse provincie [[' +  trim(prov[i]) +']]. ' ) ;
  write(f, 'De gemeente telde ',trim(totaal[i]),' inwoners in januari 2005, waarvan ',trim(manperc[i]),'% mannelijk. Het aandeel ouderen (67 jaar of ouder) is ',trim(plus67perc[i]),'%. ');
  writeln(f,'In juni 2005 was ',trim(werkloos[i]),'% van de bevolking [[werkloosheid|werkloos]].');
  writeln(f);
  write(f,'Er vertrokken in 2004 ',trim(em[i]),' personen en er vestigden ',trim(im[i]),' personen in ',trim(naam[i]),'. ');

  if trim(dutch[i])='' then dutch[i]:='0';
  aantal:=StrToInt(trim(dutch[i]));
  if aantal>1 then writeln(f,'De gemeenteregistratie telde ',trim(dutch[i]),' personen met (van oorsprong) de Nederlandse nationaliteit.');
  writeln(f);

  writeln(f,'{{'+trim(prov[i])+'}}');
  writeln(f,'<br clear=all>');
  writeln(f,'{{bron|bronvermelding=*[http://statbank.ssb.no/statistikkbanken/?PLanguage=1 Noors bureau voor statistiek]}}');

  writeln(f,'[[Categorie:'+  trim(prov[i])+']]');
  writeln(f,'[[Categorie:Gemeente in Noorwegen]]');

  writeln(f,'[[en:'+  trim(naam[i])+']]');
  writeln(f,'[[nn:'+  trim(naam[i])+']]');
  writeln(f,'[[no:'+  trim(naam[i])+']]');

  write(f,'EEE');
  writeln(f);
  writeln(f);
  end;
closefile(f);
end;
end.

Stap 4: Bewaar de resultaten[bewerken | brontekst bewerken]

Gebruik de output file (bewaar als utf) om met de bot pagefromfile.py naar wikipedia te uploaden. Elk artikel start met SSS en eindigt met EEE. Dit moet je in pagefromfile.py opgeven.

Stap 5: Testen[bewerken | brontekst bewerken]

Test de artikelen uit de output file. Eerst handmatig (copy /paste), daarna met een eerste pagefromfile.py run. Vraag de gemeenschap of er tekstuele wijzigingen nodig zijn (bij voorkeur al eerder in het proces advies vragen).

Stap 6: Importbot[bewerken | brontekst bewerken]

Als je voldoende zeker bent dat de inhoud foutloos is, en voldoende steun van de gemeenschap hebt (bij grote aantallen nieuwe artikelen), dan kan je de importbot gaan draaien. (pagefromfile.py).

Stap 7: Nazorg[bewerken | brontekst bewerken]

Na het testen en het geautomatiseerd toevoegen van de artikelen is het werk nog niet over. Vaak is het nodig om doorverwijspagina's aan te maken omdat er al een artikel met dezelfde titel bestond (en de bot dus geen artikel heeft aangemaakt). En daarom is het nodig om achteraf ontbrekende artikelen met de hand toe te voegen onder een andere artikelnaam. Ook het aanmaken van categorieen en sjablonen moet niet worden vergeten.