Szerkesztő:Bináris/Bottal végzett helyesírási javítások


Isten nem ver bottal
De én igen.

Szerkesztő:Bináris/Bottal végzett helyesírási javítások alatt a szerkesztő:Bináris (helyesebben: user:Bináris) által a Wikipédia jobbítása érdekében, a Pywikibot keretrendszerbe tartozó replace.py modullal végzett helyesírási (avagy nyelvtani) javításokat értjük. Ezek 2008 áprilisa óta folynak több-kevesebb rendszerességgel, folyamatosan fejlődő eszközkészlettel. A javítások ugyanolyan aktív szerkesztői munkát igényelnek, mint bármilyen más szerkesztés; a bot csak segédeszköz.

A helyesírási javításokról szóló tudnivalók rövid összefoglalása megtalálható a Szerkesztő:BinBot/munka/helyes lapon. E szócikk célja, hogy egy kicsit részletesebb betekintést nyújtson a munka hátterébe és kulisszatitkaiba. Csak itt, csak most, csak neked. Azért kezdtem írni, hogy eloszlassam a botos javítások körüli félreértéseket, és hogy ne kelljen ugyanazokat a dolgokat folyton elmondanom. Menet közben aztán a cikk elkészültéig kijavított pár százezer hiba tapasztalatainak összegzésévé kerekedett. Remélem, mindenki talál benne hasznos olvasnivalót. A cikk végén megengedtem magamnak egy kis magánvéleményt is.

Hogyan érdemes olvasni ezt a cikket? szerkesztés

Ez az oldal elég hosszú, de a fejezetei alig épülnek egymásra, nyugodtan el lehet olvasni bármelyiket külön is, és érthető lesz.

Ha nem érdekelnek a botmunka technikai részletei, csak az, hogy mit csinálok és miért, akkor ajánlom az első néhány fejezetet. Komolyabb szellemi erőfeszítés nélkül olvasható bárki számára a Motiváció és a Jó, de mi ez az egész? szakasz, valamint a végén a Szubjektív összegzés, ahol a Wikipédia nyelvi állapotával kapcsolatos – közérdekűnek gondolt – tapasztalataimat írtam le.

Szintén az érdeklődő laikus közönségnek szól A javítások köre és a Kézi javítás, automatikus javítás szakasz, de ezek már kicsit több elmélyedést (dupla adag popcornt) kívánnak. Olyan közérdekű kérdésekről van szó benne, amelyek a bottal végzett munkát mindenki számára ellenőrizhetővé és átláthatóvá teszik.

A szerkesztési összefoglalók és az álbotmunka és A korrektúrasablon használata szakaszok célja, hogy amikor ezzel kapcsolatos kérdést kapok, ne kelljen újból leírni ugyanazokat a dolgokat minden alkalommal. Bővebben kifejtve, de közérthető formában írtam le bennük, hogy mikor, miért teszek botos javítás közben {{korrektúrázandó}}(?) sablont némelyik szócikkre, illetve hogy miért csinálok néha látszólag furcsa dolgokat, amiknek nincs annyi közük a szerkesztési összefoglalóhoz.

Szintén mindenkinek szántam a Munkanaplók, A kijavított hibák száma és a Hibaszázalék szakaszokat. Ezek az elvégzett munkáról adnak számot, és átláthatóvá teszik mindenki számára a botos tevékenységemet.

A Hatékonyság szakasz már szakmaibb. Azért írtam, hogy amikor érkezik egy kérés a botgazdák üzenőfalára, akkor jobban meg tudjam indokolni, miért tartom érdemesnek kibővített vagy leszűkített formában foglalkozni vele, vagy esetleg miért nem tartom érdemesnek a botos megoldást. Sokat tanultam az írása közben. A szakasz eleje azonban mindenki számára érthető.

A többi fejezet inkább azoknak szól, akik mélyebben érdeklődnek a botmunka iránt, maguk is botgazdák vagy azok szeretnének lenni, és a helyesírási, nyelvtani, tipográfiai javításokkal, más szövegcserékkel akarnak foglalkozni. Nekik a teljes oldal végigolvasását ajánlom.

Néhány szakasz elején dióhéjas sablonok segítik az áttekintést, ezekben szokás szerint a rövid összefoglalást találod.

Motiváció szerkesztés

Ordnung muss sein, avagy rend a lelke mindennek. Ez itt, kérem, nem egy chatszoba, ahol összevissza lehet firkálni, ez itt egy enciklopédia, amely szót az elődöknek kijáró tisztelettel illik kiejteni, és a tudás szentsége iránti áhítattal dolgozni a mű fejlesztésén. A padlóra köpni, randalírozni, trollkodni, valamint gyenge helyesírású cikkeket írni nem való dolog. Sajnos e tekintetben nincs alsó határ, hiszen ezt az enciklopédiát bárki szerkesztheti, és vannak, akik ebből a tényből az önkritika elemeit mellőzve vonják le a következtetést, hogy akkor nekik is mindenképpen szerkeszteniük kell, noha egy épkézláb mondatot sem tudnak összebarkácsolni. Vannak azonban olyan hibák, amelyeket még a művelt emberek közül is sokan elkövetnek (természetesen az egybeírás/különírás útvesztőivel és a vesszőhibákkal kezdve a sort).

A nyelv egy társadalmi megegyezésen alapuló, nyilvános kódolású jelrendszer. Szerepét, a kommunikációt, a társadalom tagjai közötti ismeretátadást csak így tudja megvalósítani. Hogy térben és időben távoli emberekkel is kommunikálhassunk, a beszélt nyelvet egy újabb kódolásnak vetjük alá, az írásnak. Ez már csak részben megegyezéses, részben pedig deklaratív jelrendszer. Dekódolása nem mindig lenne egyszerű, ha csak a hangoknak megfelelő betűk konkatenációjából állna. A királynőt megölni nem kell... Hogy a szöveg minél könnyebben, kevesebb munkával dekódolható legyen s minél egyértelműbb, kifejlesztették hozzá a helyesírást. (Ez a magyar hagyomány szerint nagymértékben deklaratív, pontosságra és egyértelműségre törekvő rendszer, szemben például az angol spellinggel. Ezért áll közel a rendszerező elmék lelkivilágához.  ) A szerepe annak a redundanciának a biztosítása, amely az élőbeszédet kísérő metakommunikációs elemeket lehetőség szerint helyettesítve segíti a szöveg értelmezését. Mi történik mármost, ha a zoxigént helyesírást elkezdjük kivenni a kommunikációs csatornából?

  • Legrosszabb esetben egyes szövegek teljesen érhetetlenné válnak, csak találgatni lehet, mit is akart a szövegeszkábáló művész tudatni velünk.
  • Más szövegek kétértelműek lesznek, és csak hosszas munkával, egyéb ismeretek megszerzésével, vagy akár egyáltalán nem tudunk dönteni a lehetséges jelentések között. Ami persze nem probléma, ha éppen ez volt a cél, de az ilyen írást nem enciklopédiának hívják. (Néhány példa a számírási hibák kapcsán.)
  • Megértjük ugyan a szöveget, de csak nehezebben, többszöri olvasásra, vagy az olvasás tempóját csökkentve. Persze, végső soron akár még ezt is megértjük. Csak sok munkával.
  • A szöveg értelme egyszerűen megváltozik, és nem azt fogja tükrözni, amit a szerző mondani akart.
  • Rendetlenség lesz, és ezzel szabadjára engedjük az őskáoszt. Ne feledjük, a magára hagyott rendszerben a dolgok egyre rosszabbul mennek.
  • Igénytelennek látszik a szerző vagy a Wikipédia, netán az írás megbízhatatlanságát az olvasók a tartalomra is kivetítik.
  • Frusztráltak lesznek azok, akik tudják, hogy kéne írni, és igényesek is rá. Vagy a rendetlenség zavarja őket, vagy attól félnek, hogy tényleg a Wikipédiát nézik igénytelennek, és ezzel az ő munkájuk is leértékelődik.
  • Lesznek olvasók, akik a rossz változatot tanulják meg, vagy megerősítve érzik magukat a hibás írásgyakorlatukban, vagy csak elveszítenek egy lehetőséget, hogy elgondolkodjanak a helyes változaton, és utánanézzenek. A helyesíráson való gondolkodás pedig a logikát és a rendszerben gondolkodást erősíti.
  • A fent említett legrosszabb esetnél eggyel rosszabb esetben eljön a világvége. Vagy esetleg eljön a világvége, és ugyanakkor még a Wikipédia is leáll. (Már most is alig töltődik be a szerkesztőablak!)

Na jó, szakadjunk el egy pillanatra ettől a kellemetlen esettől, és tekintsük a legrosszabb esetnél rosszabb esetek helyett csak szimplán a legrosszabbat meg a rosszakat. Ezekből jól látszik a lényeg: aki nem fordít gondot a helyesírásra, mert csak gyorsan le akar írni valamit, az magának talán munkát spórol meg ezzel, de másoknak meg felesleges munkát okoz; s ha ezt annyiban hagyjuk, a tudás helyett a tudatlanságot fogjuk terjeszteni.

A Wikipédia egyik fő „vagyontárgya” az embereknek a megbízhatóságunkba vetett hite. Ezt is feladjuk, ha nem törődünk a helyesírással. Sőt, egyes jelek arra utalnak,[forrás?] hogy sokan már észrevették az itt folyó helyesírási műhelymunkát, és éppen helyesírási szempontból kezdik etalonnak tekinteni a Wikipédiát és átvenni az itt használt megoldásokat. Ez óriási felelősséget ró ránk. Akkor is, ha piros. Sőt, ez esetben kifejezett előny, hogy piros.

Végül pedig: helyesírást javítani nagy tételben, hatékonyan, félig automatizált megoldásokkal óriási kihívás, nagy szellemi élvezet, kitűnő rejtvény és észpróba. Hogy tudunk túljárni az entrópialovagok eszén, elcsípni a legrafináltabb hibákat, és egységnyi idő alatt minél több szemetet eltakarítani – míg megvilágosul gyönyörű képességünk, a rend.

Jó, de mi ez az egész? szerkesztés

A legtöbben nem tudják, hogy lehet bottal (azaz számítógépes programmal) helyesírást javítani. A dolog lényege, hogy megpróbáljuk formalizálni a hibás és a helyes alakokat. Ez távolról sem mindig lehetséges – ha nem sikerül, akkor az a hiba nem javítható bottal. A legegyszerűbb esetben konkrét szavakat cserélünk. Azt mondhatjuk a gépnek, hogy keresse meg a „lessz” szó előfordulásait (hibás alak), és cserélje ki „lesz”-re. Eggyel bonyolultabb eset, ha a számmal egybeírt mértékegységeket keressük. Azt mondjuk, hogy keressen olyan mintákat a gép, ahol számjegy után a „km” betűk állnak, és tegyen közéjük szóközt. Az ilyen egyszerű példáktól egészen ravasz és bonyolult mintákig lehet eljutni – olyan az egész, mint egy szabályjáték. Általában úgy kezdődik, hogy valaki jelez egy típushibát, és elgondolkodunk rajta, hogy lehetne ezt felismerni. Persze mindig fennáll a lehetősége, hogy hamis találatot kapunk, ahol nem szabad javítani – a feladat akkor jó, ha a hamis találatok aránya alacsony. Lejjebb több részletről is olvashatsz, például a Reguláris kifejezések szakaszban.

A javítások köre szerkesztés

Névtér szerint szerkesztés

A helyesírási javítások (ne keverjük össze más botmunkával, aminek más köre is lehet) jelenleg jó közelítéssel az olvasók által látható részekre, azaz a következő névterekre terjednek ki:

  • szócikkek
  • portálok
  • képek leírólapjai
  • sablonok megjelenő szövege és dokumentációja

Esetenként a munkához kapcsolódva sor kerülhet sablonparaméterek módosítására is, ha ezek helytelenül írott alakokat eredményeznek a szócikkekben, ami megzavarja a botot, de ez mindig kézzel történik.

Indokolt lehetne még a Wikipédia-névtérben található útmutatók, segítségoldalak bejárása is, de ezeket nem lehet egyszerűen elkülöníteni más lapoktól, viszont a névtér nagyobb részében kifejezetten káros lenne a javítás. Ilyen javításra ezért nagyon ritkán kerül sor.

Nem javítom bottal a szerkesztői lapokat (ez magánterületnek számít, akinek rossz a helyesírása, az a saját felelőssége), a vitalapokat, archívumokat, és általában olyan oldalakat, ahol aláírt szerkesztői hozzászólások fordulhatnak elő.

Kimarad a javításból a kategórianévtér is; habár ide is eljuthatnak az olvasók, ezek a lapok jellemzően kevés vagy semennyi megjelenő szöveget nem tartalmaznak, viszont rengetegen vannak, így a névtér bevonása indokolatlanul lelassítaná a keresést, és csökkentené a hatékonyságot.

Hibatípus szerint szerkesztés

A botos javítás előkészítése időigényes: sok kísérletezésbe, gondolkodásba, utánajárásba kerül, amíg egy javítócsomag elkészül. Soká tart a javításra jelölt szócikkek kigyűjtése is. Ezért csak olyan hibát érdemes így javítani, amiből sok van. Ha csak néhány cikkben fordul elő, sokkal egyszerűbb kézzel javítani. Alapvetően a típushibákat javítom bottal.

Az se mindegy, hogy mennyire egyszerű elkülöníteni a valódi hibákat a hamis találatoktól. Előnyt élveznek azok a hibák, amelyeket könnyű kimutatni, és jó eséllyel tényleg hibát fogunk találni, nem pedig helyesen írt alakot. A cikk végére érve pontosabb képet alkothatsz, mit jelent ez.

Éppen ezért a javítandó hibákat általában magam keresem meg a tapasztalataim alapján. Gyakran kerülnek a listámra olyan hibák, amelyekre a botgazdák üzenőfalán hívják fel a figyelmemet – ha itt kér valaki egy javítást, először megnézem, hány előfordulása van, aztán elgondolkodom rajta (Pólya György szellemében), hogy lehet-e a feladatot általánosítani. Mások által összeállított hibalistákat viszont nem követek, nem lenne hatékony.

A javítás közben általában az adott hibatípusra koncentrálok. Más hibákat, ha elém kerülnek és nagyon zavaróak, vagy akadályozzák a javítást, gyakran kijavítok, de nem mindig; erről bővebben A szerkesztési összefoglalók és az álbotmunka szakaszban esik szó. Mellékhatásként gyakran válik viszont szükségessé sablonok, sablonparaméterek és kategóriák nevének javítása és az ehhez tartozó rendcsinálás.

Előfordul, hogy határesetben is javítok. A Naprendszer nagybetűsítésekor több olyan eset is volt, ahol akár meg is lehetett volna hagyni a kisbetűs változatot, mondván, hogy a köznévi és a tulajdonnévi alak egybeesik. De ha ezeket is javítom, akkor legközelebb már nem találja meg őket a bot, és nem kell újból időt tölteni a döntéssel. Az nem fordulhat elő, hogy jót rosszra vagy kevésbé jóra javítsak – ha ilyen történik, az hiba.

Címek, nevek és idézetek javítása szerkesztés

Ingoványos talajra lép a wikipédista, midőn művek címét, intézmények nevét vagy éppen idézőjelbe tett szövegeket javítana. Itt töltött éveim alatt aktívan részt vállalván a helyesírási megbeszélésekből azt a tanulságot szűrtem le, hogy nincs olyan egyszerű szabály, amelyet világítótoronyként követhetnénk bármilyen ködben vagy zivatarban. Kérlek, kedves olvasóm, mielőtt továbbhaladnál, ízlelgesd Mártonfi Attila szavait és alattuk Adam78 kiegészítéseit itt: Wikipédia:Véleménykérés/A tanu#Fejlemény: Mártonfi Attila, az OH. egyik szerzőjének válasza. Ezek mutatják a mérlegelési lehetőségeket és az irányt, amit ezeknek a hozzáértő embereknek a véleményét támpontul véve magam is követni igyekszem. Az egyik elv, hogy magának a helyesírásnak a változásait érvényesíthetjük (ahogy a klasszikus példa szerint Jókai szövegeit sem idézzük cz-vel) – a helyesírási szabályzat 12. kiadásából fakadó változásokat az egyébként helyesen írt szövegekben érvényesíteni tehát más elbírálás alá eshet, mint eleve hibásan írt szövegeket javítani. A másik, hogy keresnünk kell a szövegalkotó szándékát, tetten érni a szándékosságot és az esetlegességet.

Ebből a szempontból nincs sok jelentősége, hogy bottal vagy kézzel javítok, csak annyi, hogy minden meghagyott hibára úgy tekintek, mint ami a későbbiekben is akadályozza a botos javítást, és – ha nem nyilvánvalóan régies környezetben vagy nyelvészeti magyarázatban fordul elő – hozzájárul a hibás alak rögzüléséhez az olvasókban. Igyekszem technikai eszközökkel kizárni az idézeteket,[* 1] mert a hatékonyság szempontja azt diktálja, hogy inkább maradjon javítatlanul néhány idézőjelbe tett, de javítható hiba, mint hogy a többivel hosszasan bajlódjam, és végül egyenként tegyem kivétellistára. Így egyre ritkábban is merül fel a javítás kérdése.

A döntés sok esetben hosszas kereséssel, utánanézéssel jár. Nagyjából ezt a gondolatmenetet követem:

  1. Idézetről van szó?
  2. Tényleg azt írta be a cikk szerzője vagy közreműködője, amit látott? Ha egy idézőjelben helyesírási hibás szöveg áll, egyáltalán nem bízom benne, hogy az az idézet eredeti alakja – meglepően gyakran másolnak trehányul olyan wikipédisták, akik nem törődnek a helyesírással, és nem is tartják tiszteletben az eredeti szöveget. Ha lehet, megkeresem az eredetit. A legkönnyebb dolgom a könyvek címével van, mert egyszerű kereséssel sokszor azonnal világossá válik, hogy a borítón még helyesen volt írva, tehát minden teketória nélkül javítható.
  3. Megbízható módon hagyományozódott a szöveg?
    • Ennek a Wass Albert-idézetnek a forrásáról semmit nem tudunk. A cikkben megadott forrás már nem érhető el, és azt sem tudjuk, hogy oda valóban karakterhelyesen került-e fel. Két dolgot tudunk: hogy közvetlenül a megtalált hiba mellett egy másik hiba is (tehát már nem hibátlan a másolás), és hogy Wass Albert Szeleczky Zitának írt leveléből való. Hogy a levelet hogyan írta (kézzel vagy géppel), mennyire jól olvasható, hol van most, hogy került a levélből a honlapra és onnan a cikkbe a szöveg, arról semmit nem tudunk. Ilyen esetben az idézet pontosságát és megbízhatóságát nem csökkenti a helyesírási hiba javítása, és a szerző mondanivalójának is megfelel. Lényeges körülmény az is, hogy nem irodalmi értékű szövegről van szó.
  4. A cím valóban cím?
    • Kisebb műalkotásoknál előfordul, hogy a művész nem is ad nekik egyedi címet, és ezt egy szerkesztő, egy kiállításrendező vagy valaki más pótolja – ilyenkor a cím lehet köznévi jellegű, azaz valamilyen tipikus cím. Lehet, hogy a művész nem is tekinti önálló műalkotásnak, csak utólag kerül sorolják be a gyűjteménybe. Vélhetően ilyen ez az ex libris is. Ami perdöntő volt, hogy a képre kattintva látszik rajta a művész által ráírt eredeti, helyesen írt ex libris szöveg, tehát nehezen hihető, hogy adott volna neki egy ettől eltérő írásmódú egyedi címet.
  5. A cím, név vagy idézet külföldi? Ha igen, ki fordította? Arany János és Szabó Lőrinc fordításait meghagyom eredeti alakjukban, de ha nem műfordításról van szó, akkor többnyire kijavítom. Ha egy amerikai énekes mondott valamit, amit egy wikipédista vagy egy magyar bulvárlap újságírója fordított le, akkor a fordítás helyesírása nem része az idézetnek. Ha egy brit hivatal vagy sportszövetség nevét szavanként fordítják le, három szóba írva azt, amit angolul háromba kell írni, de magyarul kettőbe, akkor semmi ok a hibás fordításhoz való ragaszkodásra. Az eredeti intézménynév nem sérül attól, ha a magyar nyelvtan és helyesírás szabályait követjük a fordításnál. Néhány példa:
  6. Az idézett szöveg eredetileg írott vagy hangzó volt? Megint: ha egy riportalany mond valamit, amit az újságíró a diktafonjáról lejegyez, akkor a helyesírás nem része az eredeti szövegnek. Néhány példa:
  7. Ha ezeken a szűrőkön átjutott a hibás szöveg, azaz írott, nem másolási hibás magyar szövegről van szó, akkor mennyire régi? Mennyire megbízható módon hagyományozódott, hány átíráson keresztül? Milyen körülmények között rögzítették? Van-e jelentősége az eredeti írásmódnak, vagy éppen a változtatás fejezi ki jobban az eredeti szándékot? (Lásd ez utóbbiról a fent ajánlott olvasnivalókat.) Ha kifejezetten régies szövegről van szó (legalább 80-100 éves távolságot értek ezen), amelyik egységesen a kor írásmódját tükrözi, akkor nem javítok benne egy-egy hibát külön, mert az megbontaná a szövegegységet, és a régi idézetekkel szemben amúgy sem elvárás, hogy a mai helyesírást kövessék. Az ilyeneket igyekszem eleve kizárni a következő szakaszban leírt technikai kivételekkel.
    • Az idézet forrása nincs megadva, azaz már a cikkszerző sem bánt vele idézetként; nem tudjuk, így írták-e le, mikor és milyen körülmények között, de a régies kötőjelnek nincs jelentősége a szövegben, a hiányának viszont igen, amikor több száz vagy ezer másik szócikket akarok bottal javítani. Mellesleg ez egy kiemelt szócikk.
    • Latinból fordított idézet; a kérdés a fordítás dátuma volt. Ránézésre modernnek tűnik a magyar szöveg, csak a dícsér volt hosszú í-vel. Egy másik lábjegyzetből és a szerző Gyöngyösi Gergely szócikkéből kiderült, hogy a fordítás egy 1998-as kötetből való, sőt az egyik fordítónak szócikke is van nálunk, amely szerint 2008-ban elhunyt kortársunk – a hiba tehát javítható, nincs régiségértéke.
  8. Ha ennél újabb a szöveg, akkor a forrás hibája tipográfiai jellegű vagy szándékos írásmódot tükröz? Épp a fenti link mutatja, hogy ezen akár késhegyre menően is lehet vitatkozni, de szerencsére nem minden javítás vált ki ilyen indulatokat. Önmagában az, hogy egy szöveg egy cég honlapján vagy, mint a következő példában szerepel, egy színlapon áll, nem bizonyítja, hogy annak a cégnek vagy színháznak a jól átgondolt, helyesírási szempontból megvitatott, szakértelmen alapuló hivatalos álláspontjáról és tudatos írásmódról van szó. Aki dolgozott már valamilyen cégnél, tudhatja, hogy keletkeznek a szövegek... A dolgozó, aki éppen azt a szót leírta, így írta, és kész. Ha évtizedekkel ezelőtti szövegről van szó, az írógépes korszakból, az is lehet, hogy egyszerűen nem volt olyan betű az írógépen, vagy nem törődtek vele, ahogy Mártonfi Attila is írja. Ez nem ok rá, hogy szent áhítattal boruljunk le minden hiba előtt, és örök időkre márványba véssük. (Más persze a helyzet, ha egy komoly kiadó könyvéből van a szöveg, az vélhetően átesett lektoráláson, de már az újságoknál nagyobb úr a lapzárta, mint a pontosság.)
    Régi könyvek és cikkek címében nem vezettem át az észszerű új alakját a 12. kiadás nyomán, mert ez akkor nem volt hiba, és így jelent meg – a fentiek szellemében is jobban megfontolva a változtatást a címek esetén, mint az idézeteknél, és kerülve az előre látható vitákat.
  9. Név, cím esetén mennyire fontos a hivatalos jelleg?
    • Például az MSZP egyik platformja az „Ésszerűség és felelősség platform” nevet viseli. Az interneten utánanézve valószínűnek tűnt, hogy még mindig létezik ez a szervezet, bár túl sok aktivitás nem látszik körülötte. A helyesírási szabályzat 12. kiadása szerinti változást a platform nevében is érvényesíteni kellene (hiszen nincs értéke az elavult írásmódnak), de erre az Akadémia 2016 szeptemberéig adott időt mindenkinek. Ebben az esetben szerencsésebbnek tűnik megvárni, amíg ők maguk lépnek, ezért végül nem javítottam a két érintett szócikkben. (Annak ellenére, hogy többféle alakban találkozni vele, pl. hol benne van az országos szó, hol nincs, hol minden kezdőbetű nagy, hol nem, tehát nem tűnik teljesen hivatalos és rögzített írásmódúnak.)
    • Ezzel szemben a Középkori és Koraújkori Magyar Történeti Tanszék (Szeged), amelynek a nevét korábban kivétellistára tettem, most ismételt ellenőrzéskor már Középkori és Kora Újkori Magyar Történeti Tanszék a saját honlapja szerint – azaz a következő javításnál ki lehet venni a kivételek közül, a hivatalos név is követi a szabályokat.
    • Ahogy lejjebb olvasható, állandó kivétellistán vannak az Évek a jogalkotásban kategória cikkei, amelyek jogszabálycímeket tartalmaznak – ezeket sem régi, sem modern címek esetén nem javítom, mert így hivatalosak. A jogászok nyelve külön világ, ahol a nyelvtannak és a helyesírásnak is mesés szabályai vannak.
  10. Van-e egyáltalán jelentősége az idézőjelnek? Hozzátesz-e a szöveg értékéhez az idézet? Lehet, hogy egyszerűen le kéne venni, netán átírni a szöveget függő beszédbe vagy meghagyni közönséges tényállításként, amelynek az idézet csak a forrása? (Lásd rögtön az első példát, már mutatom is.)

Néhány példa a lenti Hibaszázalék szakaszból:

  • Egy kolléga két javításomat kifogásolta: az egyikben egy idézőjelek közé helyezett, de idézetértékkel nem bíró mondatban cseréltem az u-t ú-ra (ez olyasmi, mint a cz helyett c), a másikban egy színdarab címét javítottam a színlapon megjelenő változathoz képest, amelyet a fentiek alapján esetlegesnek tartok. Sikerült meggyőznöm.
  • Egy másik határeset volt a Kormányzói Dícsérő Elismerés rövid i-re való javítása volt. Bár a korabeli (1939-es) forrásban hosszú ível szerepelt, ezt is olyasminek tekintem, mint a cz → c átmenetet („természetesen a helyesírás változásait, a’, cz stb., figyelmen kívül hagyva” – írta Mártonfi Attila). Az elavult helyesírás itt nem tesz hozzá semmit a szöveg értékéhez, nincs értelme meghagyni. Hogy tiszta legyen a dolog, mert botmunkáról volt szó, feltettem a kérdést a kocsmafalon is, de nem váltott ki érdeklődést. Most is azt gondolom, ilyen esetben helyes a javítás.
  1. Most már állandóan ki van zárva a szabályos magyar idézőjelek tartalma, az idézet, rquote, hivatkozás, fordítás, refhely, citlib, citper, citation és az összes citenyavalya sablon. A lista folyamatosan fejlődik.

Állandó és alkalmi kivételek szerkesztés

A bot számára a reguláris kifejezések segítségével (lásd lejjebb) kivételeket definiálhatunk. Ha a kivétellistára felvett szövegkörnyezetben vagy szócikkben találja meg a hibát, nem foglalkozik vele (illetve az ilyen szócikket be sem olvassa). Ilyen kivételeket hatékonysági okból használok: vagy túl sok nem javítandó hiba van bennük, vagy túl könnyen okoznak javítási konfliktust (azaz vagy minden futtatásnál el kéne bírálni, hogy maradnak, és ezzel az időm menne el, vagy meg kéne nyitni kézi szerkesztésre), és egyszerűen nem éri meg bottal javítani őket, mert többe kerül a leves, mint a hús.

A kivételek lehetséges fajtái:

  • a cikk címe szerint;
  • a cikk tartalmaz bizonyos megadott szöveget (bárhol, nemcsak a hiba közelében);
  • a hibát tartalmazó szövegrészlet szerint;
  • valamilyen tag (HTML- vagy wikikódcímkepár) belsejében;
  • méret szerint (ez saját fejlesztés, nincs a keretrendszerben);
  • kakukktojás: pozitívan is elő lehet írni, hogy a cím tartalmazzon valamilyen szöveget (ez nem kivétel, de hasonlóan működik).

Mindegyik típusnál megadhatunk konkrét szövegkonstansokat, illetve a tagek kivételével reguláris kifejezéseket is.

Állandó kivételek szinte minden helyesírási javításnál:

  • a külső linkek, interwikik, <source> vagy <syntaxhighlight> címkével publikált programkódok, matematikai képletek, HTML-megjegyzések (<!-- --> címkék között);
  • képek, kategóriák és jegyzetek nevében, a DEFAULTSORT kulcsszó után, néhány idézetet vagy más hivatkozást jelölő sablon paraméterei között (ilyen pl. a cite sabloncsalád);
  • a szabályos magyar idézőjelpár közötti szöveg (de az egymásba ágyazott egyforma idézőjelek blokkolhatják a kivételt);
  • a youtube/tvitter/instagram sabloncsalád és a hallgat sablon azonosítói;
  • a {{szinnyei}}, {{vályi}}(?), {{fényes}}(?) sablont vagy a „Vályi András” / „Fényes Elek” stringet tartalmazó lapok, mert ezek (főleg településcikkek) jellemzően régies helyesírású idézeteket tartalmaznak, és inkább nem javítok bennük semmilyen hibát, mint hogy újra meg újra beleütközzem ezekbe az idézetekbe;
  • a {{sicc}}(?) sablont tartalmazó cikkek (ez a sablon pontosan azt jelenti, hogy BinBot kerülje el a lapot, ezért csináltam);
  • a {{pallas}}(?) sablonnal ellátott cikkek, mert ezeknek nem 1-2 helyesírási hibáját kell külön javítani, hanem inkább az egész szöveget újraírni értelmes mai magyar nyelven és mai tudásunk szerinti tartalommal (vannak, akik azt hiszik, hogy a lejárt szerzői jog egyben azt is jelenti, hogy nekik ezeket az avítt, mai nyelvünktől és helyesírásunktól távol álló, nehezen érthető rövidítéseket tartalmazó és tartalmilag is gyakran teljesen elavult szövegeket kötelességük javítás nélkül átmásolni a Wikipédiába, és ezen nem tudok bottal segíteni);
  • az Évek a jogalkotásban kategória szócikkei, pl. 1867 a jogalkotásban, mert ezek vagy régies helyesírású törvényczímeket tartalmaznak, vagy olyan modern helyesírási förmedvényeket, amitől csak a jogászok nem kaparják le kínjukban a falat, viszont abban a formában hivatalosak, és ezért nem szabad javítani őket;
  • a 300 ezer karakternél hosszabb cikkek (jogos önvédelemből, miután egyszer 45 percig, egyszer fél óráig vacakolt a bot egyetlen javítással ilyen cikkeken).

A technikai részletek iránt érdeklődők itt találják meg az állandó kivételeimet reguláris kifejezésként (nem feltétlenül a legfrissebb és éppen használt változat van ott).

Adott hibatípushoz tartozó kivételek:
Ezek már sokkal konkrétabbak az előzőeknél. Két fő fajtájuk van:

  • Olyan szövegkörnyezetek, ahol a hibakeresés jellemzően hamis találatot ad. Néhány példa:
    • A rövid és hosszú ó betűket javító csomagban kivétel Pósta Sándor és Pósta Béla neve (akkor is, ha á van a végén, mert az ragozott alak lehet) – minden más esetben felajánlja a bot, hogy a pósta szót postára javítja.
    • Az Argentína nevét hosszú í-re javító csomagban rengeteg angol és spanyol kifejezés, szervezetnév, néhány latin állatfajnév és a Don't cry for me, Argentina különböző írásmódú alakjai
    • A számok toldalékolását javító csomagban a Se7en és a Th1rt3en film-/lemezcímek, amelyekre igen sok említés van, valamint a pontosan hat darab (kis- vagy nagybetűs) hexadecimális számjegyből álló sorozatok, amelyek RGB-színkódot jelölnek, és ha a „36ba” karakterekre végződnek, akkor oda bizony nem szabad kötőjelet tenni.
    • A szavak egybe- és különírását javító csomagban azok az esetek, ahol az alakú mégsem külön szó, hanem összetett szó utótagja: egyalakú, kétalakú, többalakú, kisalakú, nagyalakú, hangalakú, jelalakú, igealakú, félgömbalakú harmatgomba, Szívalakú-tó stb., valamint Gyalakút erdélyi történelmi község. (Vigyázat, a félgömb alakú általában két szó, a harmatgombánál a kettős biológiai nevezéktan miatt van egybeírva!)
  • Azok a szócikkek, amelyeket már átnéztem, és úgy találtam, hogy hamis hibajelzést adott a bot, és ezen nem tudok a keresőkifejezés javításával segíteni – egyszerűen a címük alapján kivétellistára teszem ezeket a cikkeket, hogy ennél a hibatípusnál legközelebb elő se kerüljenek. Ez persze azzal jár, hogy ha utóbb mégis ilyen típusú hiba kerül a cikk szövegébe, akkor sem fogja megtalálni a bot – erre mondják pestiesen, hogy sag schon! Amúgy is konfliktushoz vezetnének. Az egyik legdurvább példa a résztvevő → részt vevő javítás; itt több száz átnézett szócikk van a kivétellistán, amelyben a résztvevő főnévként fordul elő, és egybeírandó. Még ennél is hosszabbra sikerült a baloldal → bal oldal javítás kivétellistája: majdnem 600 cím van rajta. Az első javítás ilyen találati aránynál keserves munka, de a későbbiek során a kivétellista sokkal hatékonyabbá teszi majd. Az utóbbi javításnál címtípus szerinti kivételeket is alkalmaztam. (Lásd még A kivételszótár frissítése szakaszt.)

Munka közben jönnek az ötletek, hogy milyen funkció hiányzik az alkalmazott szoftverből, amit meg lehetne valósítani. Így került bele a Pywikibot kódjába az állandó kivételszótár beillesztését lehetővé tevő és a kivételek röptében történő mentését megvalósító fejlesztésem is. Ezekkel sokkal könnyebb az élet.

Kézi javítás, automatikus javítás szerkesztés

 

A bot kétféle üzemmódban képes működni:

  • Automatikus mód – sok előkészítést igényel, és nagy bizonyosságot benne, hogy nem hibázhatunk. Az előkészületek megtétele és a tesztfutások után a bot magától megy tovább, amíg a szerkesztő valami máson dolgozik, vagy éppen alszik. Ilyen módra példa ez az eset, amikor a bot órákon keresztül futva majdnem 600 képet törölt, de ugyanígy működnek az ütemezett botok is, pl. az archiválóbot, a szubcsonkbot vagy a tartalomjegyzékbot. Ugyancsak biztonságosan létrehozhatunk tömegesen efféle átirányításokat.
  • Kézi mód – ez is előkészítést igényel, azonban felügyelt módban fut. A képen látható, mi történik a kézi üzemmódú helyesírási javítás közben: a bot kikeresi a következő javítandó cikket, megmutatja a régi szöveget és a javasolt változtatást, és megkérdezi, mit tegyen. Választhatjuk azt, hogy végezze el a cserét vagy azt, hogy ne (ha hibás találatot kaptunk). Bonyolultabb esetben megnyithatjuk a szócikket egy külön szerkesztőablakban vagy pedig a böngészőnkben kézi javításra. Az a betű megnyomásával automata módba válthatunk, onnantól mindent ész nélkül cserél a bot.

Kézi szerkesztésnél tehát a szerkesztő egész idő alatt a gép előtt ül, és folyamatosan dolgozik. Ez a munka elég nagy tempót tehet lehetővé, de nagy koncentrációt és pontosságot igényel, és elég szemfárasztó, ezért nehéz sokáig csinálni. A képen látható esetekben cikkenként egy változtatás történt, de előfordul, hogy egy cikkben akár nagyon sok javítást is végzünk, ilyenkor persze a döntés is nehezebb.

Nagyon ritka eset, hogy a szövegcserélő modult biztonságosan futtathassuk automatikus módban, és soha nem tehetjük ezt meg helyesírási javításnál. A bottal végzett helyesírási javítás alaptétele, hogy kézi üzemmódot kell alkalmaznunk. Bármilyen tökéletes ugyanis a reguláris kifejezésünk (lásd lent), soha nem tudhatjuk, mikor futunk bele egy idézetbe (netán idegen nyelvűbe, ahol mást jelent ugyanaz a szó), régies helyesírású szövegbe vagy egy olyan nyelvészeti szócikkbe, ahol szándékosan van rosszul írva a magyarázat kedvéért. Az is lehet, hogy a hibásnak tartott betűsorozat olyan összefüggésben fordul elő, amire mégsem gondoltunk előre. Egy ilyenre példa ez az eset, amikor véletlenül el is végeztem a hibás javítást, és kézzel kellett visszaállítani – automatikus módban a bot jót javított volna rosszra. Hasonló dolog történt itt is: a botot lehetetlen előre felkészíteni arra, hogy a „194-os” szövegrészletben nem a toldalék hibás, hanem az évszám egyik jegye maradt ki, azaz 194-es helyett 1946-os a jó megoldás. (Itt is lendületből javítottam bele, de időben észleltem a hibát, és tudtam korrigálni.) Itt pedig eggyel több volt, ezt kézzel javítottam. Arra talán gondolhattam volna, hogy valaki egy dollárösszeget ír angolosan, a magyar szokásoktól idegen alakban, és annak a kiejtett alakját ragozza, de akkor is mindig maradhat valami szokatlan eset, amit nem tudunk előre kitalálni – ezért tartom felelősségteljes dolognak mindig kézi üzemmódban javítani a nyelvtani és helyesírási hibákat. (Az utolsó példában szó szerint kézi javítás történt, a bot saját beépített editorában megnyitva a cikket.) A botgazdák üzenőfalára érkezett kérés alapján csaknem negyedfélszáz cikkben kellett különírt alapító tag alakra javítani a hibásan egybeírt alapítótagokat; volt azonban olyan eset is, ahol a mozgószabály miatt az egybeírás a helyes, csak kötőjellel kell a tulajdonnévi előtaghoz kapcsolni.

A helyesírási hiba gyakran fordul elő sablonparaméterben is. Ezt nem mindig lehet megbízhatóan kizárni technikai eszközökkel, és az óvatlan automatikus javítás tönkretenné a sablonokat. A legcélszerűbb ilyenkor egyszerre javítani a sablonparaméter nevét és az összes felhasználását a szócikkekben, így nem történik hiba, és a jövőben nem fogunk újból ebbe a problémába botlani. Ritkábban az is előfordul, hogy a táblázatcellák formázása esne áldozatul az automatikus cserének. Ezek miatt is a kézi javítás a helyénvaló.

Szintén igen ritkán alkalmazható a félautomatikus üzemmód, ha a javítandó szöveget nagyon pontosan és egyértelműen meghatároztuk, és nem várható kivétel. Ebben az esetben például több tucatnyi teljesen egyforma szakaszcímet javított a bot. Ilyenkor automatikusra állítom, de a monitor előtt ülök, és szemmel követem az összes javítást, amit csinál, beavatkozásra készen. Ilyen javításokra – szoros kivételként – elsősorban akkor nyílik mód, ha ugyanazt a hibás szöveget nagy mennyiségben helyezték el különböző cikkekben vágólappal, és így azonos módon is javítandó, és nem fordulhat elő hamis találatként. (Ez elsősorban sportcikkekre és más ismétlődő eseménysorozatok cikkeire jellemző.) Jól jöhet olyankor is, ha nem képlettel, hanem konkrét felsorolással adtunk meg néhány hibás alakot. Nem várható például, hogy az egybeírt „menetrendszerinti” (helyesen: menetrend szerinti) szókapcsolatot szándékosan írja hibásan valaki, de előfordulhat mégis, például nyelvészeti, helyesírási témájú szócikkben vagy régi művek címében.

Példa: mindig tapad a százalékjel az előtte álló számhoz, akkor futtathatom automatikusan a javítást?
  • Ebben a példában a félautomatikus módban futó javítás hibáját sikerült elcsípni a monitoron és visszaállítani. Ez még 2009-ben volt – ma már valószínű, hogy a tapasztalatok alapján jobban meggondolnám még a félautomatikus működést is. A % speciális jelentéssel bír a kötegelt állományokban: a behelyettesítendő paramétereket jelöli.
  • A programozásban a % műveleti jel is lehet: számos nyelvben a maradékos osztás maradékát képezzük vele. Ilyenkor jelentősége van a szóköznek; több programnyelv stilisztikai útmutatója előírja az olvashatóság megkönnyítésére.
  • A kottaírást lehetővé tevő Score kiterjesztésben a % a megjegyzések kezdete, és könnyen kerülhet a tényleges kódsor végén álló számjegy után.

Szóval mindig érhetik meglepetések az embert.

A szerkesztési összefoglalók és az álbotmunka szerkesztés

 
A magyarázatot lásd a szövegben

A replace.py hátránya, hogy nem lehet menet közben (még függvénnyel sem) módosítgatni a szerkesztési összefoglalót. Előfordul, hogy az editorban megnyitva a cikket több módosítást is elvégzek, ha már úgyis arra járok, sőt az is, hogy a hiba javítása helyett teljesen átfogalmazom vagy eltávolítom a hibás részt. Ilyenkor gyakorlatilag már egy kézi szerkesztés történik, az összefoglaló azonban ezt nem fogja tükrözni: továbbra is a bot neve és az eredeti javítócsomagra utaló megjegyzés látszik a laptörténetben. Ez van. Segíteni ezen csak úgy lehetne, ha minden ilyen esetben nekiállnék a böngészőben megnyitni a cikket, és ott javítani, ami sokkal több idő lenne. Inkább javítok ki néhány más cikket ugyanannyi idő alatt. (A már említett dolláros példában sem az összefoglalónak megfelelően javítottam.)

Az ilyen esetek számát igyekszem alacsonyan tartani, és ha triviális javítgatásokon túl más átalakítást is végzek, akkor azért inkább megnyitom a böngészőben a cikket, és elvégzem a szerkesztést saját néven. Persze előfordul, hogy a képernyőn megjelenő szűk kivágásban csak egy javítandó hibát látok, aztán az editorban megnyitva hibák serege tűnik elő, és nem bírom visszafogni magam, ha már ott vagyok. Akár magyarra is fordítom a szöveget.

Egy jellegzetes példa: a vegyes helyesírási javítások közben tűnt fel a Nova szócikkben a kép felső részén a „megszűntetik” szó, amely a helyesírási hibán kívül hibásan volt jelen időben; az alatta levő sorban pedig egy másik irritáló hiba látszik. A bot saját editorjában megnyitva a szócikket több más javítást is elvégeztem, ahol feltűnt valami hiba, de teljes körű javításra sok hiba esetén ez a módszer nem alkalmas. Ennyi javítás után furcsának hat ez az összefoglaló. A kép alsó része mutatja a replace.py képernyőjét az editorból való visszatérés után. Ebben az esetben pedig az amúgy is szükséges linkjavítás oldotta meg, hogy legközelebb ne jelezze a bot hibásan írt júliusként Caesar nevét.

Az is előfordul, hogy gépelési hiba vagy hiányzó ékezet miatt jön fel a szócikk javításra (ezeket a rövid/hosszú ú betűket javító fix dobta ki), vagy éppen másik szó van ott, mint kéne. A hibát az editorban javítva ilyenkor sem felel meg az összefoglaló a tényleges tevékenységnek. Ebben az esetben az összefoglaló szerint a a „baloldali”-t kellett volna „bal oldali”-ra cserélni, de az anatómiában soha nem beszélnek bal oldali pitvarról – jobbnak látszott a hiba helyett a szót javítani, ahogy itt is elég volt a „bal oldalsó” a „bal oldali oldalsó” helyett. A széles körű repertoár is ugyanez a tészta: egy repertoár egyszerűen széles.

Néha véletlenül becsúszik egy teljesen más hiba, amely pont ugyanúgy néz ki, és pont ugyanúgy kell javítani, csak az összefoglaló nem stimmel. Ez még nem ok rá, hogy kihagyjam. :-) Ennél a javításnál hibásan különírt ex- előtagú szóösszetételeket kerestem, és hibásan kötőjelezett toldalékba szaladtam bele.

Több mint 1100 cikket gyűjtöttem ki a számok utáni hibás hangrendű -as/-es/-os/-ös toldalékok javításához, és eközben észrevettem a képernyőn, hogy néhány „25-osztályú” (vagy oszlopú) típusú hiba is becsúszott; ha ezeket nem javítom a helyes különírt alakra, akkor a program „25-ösztályú”-ra akarná javítani (mivel hibásan írt „25-ös”-t vélelmez). Ezért betoldottam egy sort a javítócsomag elejére, ami ezt a néhány hibát is röptében kijavítja. A feladat később kibővült más toldalékokkal, és ekkor került be előjavításként az 5-atomos → 5 atomos csere, hogy a fő feladatban ne okozzon hamis találatokat és javítási konfliktusokat. Hasonlóképpen a tévesen egybeírt valami alakú szókapcsolatokat javító csomag is először a hibás alakúl igéket javítja alakulra, hogy tisztábban lássa a tényleges feladatát. A tevékenységet ilyenkor sem fedi pontosan az összefoglaló, viszont óriási időpocsékolás lett volna külön javítócsomagot készíteni és futtatni ezekhez a hibákhoz, amiknek a száma elenyészik a fő javítanivalóhoz képest.

A kispórolt vessző miatt hamis találat keletkezett, pedig a bot fel volt rá készítve, hogy ha a vessző a helyén van, ne keressen javítanivalót.

Ez már határeset: a bot hamis találatot adott, a Sum41-nak toldalékolása helyes volt, hiszen angolul kell olvasni a számot a végén. Akár tovább is léphettem volna, de akkor a következő javításnál újból előjön ugyanez a cikk. Feltűnt az eredeti angol mondat szórendjét szolgaian követő fogalmazás, amelyet alkalmam nyílt magyarosabbra cserélni. Így a cikk is jobb lett, és a következő javításkor sem kerül elő a felesleges toldalék.

És olykor még az is megesik, hogy az összefoglalóban felsorolt hibák mindegyike felbukkan egy cikkben, és a bot pont azt csinálja, amit mond.  

Álbotmunka egyértelműsítéskor szerkesztés

Itt célszerű említeni, hogy az egyértelműsítés közben a helyesírási javításokhoz hasonló okból fordulhat elő az összefoglalónak nem teljesen megfelelő kézi szerkesztés. Néhány példa az Albrecht Dürerre mutató linkek egyértelműsítéséből:

A korrektúrasablon használata szerkesztés

 
 
 
 
 

Egy saját fejlesztés révén a javítás elfogadásakor korrektúrasablont is tudok tenni a szócikkre, ha még nincs rajta. Olykor ezen fennakad valaki, mert azt hiszi, hogy minden cikkre ráteszem (könnyen látható, hogy nem), vagy mert nem vesz észre olyan hibákat, amelyeket én igen.

A képeken olyan esetek láthatók, amikor a javítandó hiba szövegkörnyezetében számtalan más hiba is volt. Ezeket nem tudom röptében kijavítani (hiszen a botos munka célja és értelme, hogy egy adott hibatípusból minél többet kijavítsunk elfogadható idő alatt). Sokszor nem is akarom, például mert fölöslegesnek tartom a cikket (ettől még nem törlendő a szabályok szerint, de nem gondolom, hogy hasznos lenne – ez a magánvéleményem). Az utolsó képen nem karikáztam be a hibákat – legyen ez az olvasó dolga. Akinek sikerül az összeset bekarikáznia, az vehet egy új monitort.

Nincs olyan statisztika (habár az ötlet épp most fogalmazódott meg bennem), hogy hány százalékban teszek korrektúrasablont a cikkekre botos javítás közben, de az biztos, hogy nagyon függ a hiba típusától. Aki a és a még kezdetű kifejezésekről mind tudja, hogy egybeírandó összetett szavak vagy különírandó szókapcsolatok, az vagy intravénásan reggelizett OH-t, vagy agyműtéttel építették be neki. Ettől még lehet jó a helyesírása. Aki viszont a rövid és hosszú ó betűket vagy még inkább a mássalhangzókat keveri össze, indokolatlan nagybetűket használ a mondat közepén, toldalékolási hibákat vét, az igekötőt a segédigével írja egybe (ennek a hibának a javítása közben készültek az itt látható képek), nem hagy szóközt a mondatzáró írásjelek után, attól számos más szörnyűség is kitelik. Az ilyen cikkekben gyakran van sok egyéb hiba is. Aki a kellett, mellett szavakat képes egy t-vel leírni, annak a szövegében pedig bármi előfordulhat. Ilyen hiba mellett még 1-2 elég, hogy rátegyem a sablont a cikkre.

A képek is mutatják, hogy nagyon változó, mekkora darabot látok a képernyőn a cikkből javítás közben. Többnyire a rendelkezésre álló részlet alapján kell döntenem, így előfordulhat, hogy olyan cikkre kerül a sablon, ahol egy utólagos betoldás van tele hibákkal, de a cikk nagy része helyesen van írva. Ilyenkor ezt a részletet kell javítani.

2016 szeptemberétől a munkanaplóban a bot feltünteti az újonnan kihelyezett korrektúrasablonok számát is, így nyomon követhető, melyik javítástípusnál milyen arányban volt rá szükség. (Ebben a számban nincsenek benne azok a cikkek, amelyekre már korábban rákerült a sablon, tehát egy kicsit szebb képet mutat a Wikipédiáról, mint a valóság.)

Vannak esetek, amikor nincs mit magyarázni – ha egy cikkben 38 darab hogy előtt kell pótolni a vesszőt, akkor szó nélkül ráteszem a korrektúrasablont.

Jó, de erre a cikkre miért tettél sablont? szerkesztés

2018 márciusától (kollégák kívánságára) egy újabb fejlesztés lehetővé teszi, hogy megjegyzést is tegyek a sablon mellé, mint itt – ez volt az első alkalmazás. Ezzel az eszközzel ritkán tudok élni, amikor a hibák egyféle jelleget mutatnak, és egy mondatban össze tudom foglalni őket (példa). Ha azt kéred, hogy egy konkrét cikkben mutassak rá az összes hibára, amiért a sablon rákerült, mondjuk karikázzam be őket egyesével úgy, ahogy ezeken a képeken tettem, arra sajnos nem fogok tudni vállalkozni.

Reguláris kifejezések szerkesztés

Hát ez egy csuda mókás dolog! Az ilyesmire mondják, hogy the greatest thing since sliced bread. A reguláris kifejezések nyelve nem más, mint egy viszonylag egyszerű, kevés szabályt tartalmazó formális nyelv. A „kicsi a bors, de erős” szép példája. Segítségével mindenféle mintákat próbálhatunk keresni a szövegekben, és ezeket más, a megtalált mintától függő szöveggel helyettesíteni.

Példák
  • Keress sor eleji kettőspont után fordított idézőjelek közötti szöveget, és cseréld le rendes idézőjelre!
  • Keress olyan szöveget, ahol a százalékjel után egy vagy több kötőjel van valamilyen toldalék előtt, de balról vagy jobbról vagy mindkét irányból egy vagy több szóközzel határolva, vagy éppen hiányzik a kötőjel a toldalék előtt, netán rosszul van ragozva (%-kal helyett %-al), és javítsd ki úgy, hogy még az előtte levő számjegyhez is szóköz nélkül tapadjon! (Ez bonyolultan hangzik, de roppant gyakori hibatípus, és mindenféle rossz megoldás előfordul, akár egy mondatban keveredve is!)
  • Keress rosszul ragozott tizedes törteket, mondjuk olyat, ahol a 7,5-del (hét egész öt tizeddel) helyett 7,5-tel (hét egész öttel, brr!), vagy – horribile dictu – 7,5-el áll, vagy ezek bármelyike kötőjel nélkül vagy szóközzel a kötőjel valamelyik oldalán (igen, ezt mind képesek elkövetni emberek, nagyon gyakran!) és javítsd ki, figyelembe véve a tizedesjegy helyiértékét és a helyiérték hangrendjét is!
  • Keresd meg az újonnan szó összes lehetséges hibás alakját, és javítsd ki! (Láttam már három hibával leírva!)
  • Keresd és javítsd meg a hibásan ó-val írt auto előtagú szóösszetételeket (autómata, autóimmun, autógén stb.), de ne találd meg az autómosót, az autóútat és az autómotort, mert ott marad az ó!
  • Kerüld el bármelyik fentebb említett hibát, ha belső vagy külső linkben, kép nevében, sablonparaméterként vagy interwikiben fordul elő, vagy olyan cikkben, amelyiken {{Szinnyei}} sablon van kis vagy nagy kezdőbetűvel, paraméterrel vagy anélkül!
  • Ugord át az összes szócikket, aminek a címe négy számjeggyel kezdődik, és utána „ a jogalkotásban” szöveggel folytatódik!

Ha túl komplexre sikerül a regex, akkor nagyon lelassul a programunk futása, és könnyebben kapunk javítási konfliktusokat; ha pedig túl egyszerűre, akkor sok hiba észrevétlen marad.

Íme, egy egyszerű konkrét példa, hogy ne legyen olyan misztikus az egész. Ha a program a javítókészletben az alábbi sort találja:

(ur'(h|H)ída(t|k)', ur'\1ida\2'),

akkor megkeresi a hídak, Hídak, hídat, Hídat szavakat, és rövidre javítja az i-t. Az első tag első zárójelében választhat a h és a H, a másodikban a t és a k közül (azaz mindegyikre találatot jelez); a \1 és \2 részletek a kifejezés második tagjában azt jelentik, hogy az első, illetve a második zárójelben talált szöveget kell oda változatlanul visszamásolni. Mivel nem jeleztük, hogy ez legyen a szó vége, a kifejezés megtalálja a hídakkal, hídaknak, hídakon, hídakadály szavakat is; ezek közül az utolsó helyesen van írva, ezért nem szabad javítanunk. Viszont nem találja meg a hídalapot. Arra is vigyáznunk kell, hogy a hibás alak sem javítandó versben vagy régies idézetben.

Javítócsomagok szerkesztés

A javítócsomag vagy fix egy előre definiált, mentett javítási feladat, amelyet a fixes.py vagy a user-fixes.py állományban tárolhatunk. Minden fixnek van neve, és ezenkívül tartalmazza

  • a keresendő hibákat (általában reguláris kifejezéssel)
  • minden hibához a megfelelő javítást
  • a szerkesztési összefoglalót, ami az adott javításnál megjelenik (ez sajnos konstans, vagyis nem függhet a konkrét találattól)
  • a javítócsomaghoz tartozó kivételeket
  • az én esetemben még a munkanaplóban megjelenő szöveget is (saját fejlesztés)

Természetesen nemcsak helyesírási javításhoz, hanem bármilyen más szövegcseréhez is készíthetünk fixeket.

A fontosabb javítócsomagjaim nyilvánosan elérhetők a Szerkesztő:BinBot/munka/helyes lapon.

Hatékonyság szerkesztés

A botos javítás célja az azonos típusú hibák minél nagyobb arányban való felderítése és javítása. Ezért alapvetően különbözik a kézi javítástól. Ilyenkor nem egy-egy cikk teljes javítása a feladat, hanem az adott hibatípusé.

Egy példa: A bot a hip-hop és a hip hop előfordulásait hiphopra javítja. Néhány további utótagot, amellyel szóösszetételt alkot, sikerült elkapni – így a hip-hop csapatból hiphopcsapat és a hip-hop-együttesből hiphopegyüttes lesz. Ha közben olyan szörnyűséget találok, mint a „hip-hop-ig”, akkor általában belenyúlok kézzel, de ha a hiphop producer vagy a hiphop szcéna két szó marad, azért nem dőlök a kardomba, mert túl sok ilyen hiba van, és ezeket sem mind összegyűjteni és beleírni a javítócsomagba, sem kézzel egyenként javítani nem hatékony – itt most nem ez a hibatípus van terítéken. (Nem is beszélve arról, hogy ezeknek a bevonása további fals találatokat eredményezne, amelyeket ugyanúgy kézzel kellene javítani.) De azzal sem fáradozom, hogy az összes MTV Video Music Award-cikkben kijavítsam a hiphop videót hiphopvideóra – ugyanilyen hiba van a többi műfaj díjazottjainál, külön menetben kellene ezt a problémakört is rendbe szedni.
Egy másik példa: a helyesírási szabályzat 12. kiadása a korábban kötőjeles örökkön-örökké szókapcsolatot külön rendeli írni. Elvileg kis és nagy kezdőbetűvel is előfordulhat a lejárt szavatosságú kötőjeles alak, azonban nagy Ö-vel szinte biztosan egy filmcímet fog megtalálni a javítócsomag. Inkább keresem csak kisbetűvel, és ha mégis van javítandó nagybetűs előfordulás, hát az így járt. Majd megtalálja valaki bot nélkül.

Látszólag részleges javítás is történhet:

Egy nem dátumok toldalékolására szakosított fix előjavításokat végez, hogy a fő feladat megoldását hatékonyabbá tegye, kevesebb konfliktussal. A helyes alak március 11-étől lenne, de csak a toldalék hangrendjét tudja javítani. Máshol két azonos helyzetű dátum közül az egyiknek a toldalékát javítja. Mindkét esetben egy másik javítócsomag dolga lesz a teljes megoldás, de mivel az írásmód közelebb került a helyes alakhoz, és jobb lett, mint volt, érdemes elvégezni a javítást.

Hatékonyság alatt hat követelményt értek:
 
Egy vicces hamis találat: annyira általánosan fogalmaztam meg a számok lehetséges hibás toldalékait, hogy a kalóriát is nagybőgőnek nézte a bot
  1. Találjunk meg minél több hibát az adott típusból, a lehető legjobban tágítva a típust! (Vagyis a hasonló jellegű hibákkal is bővítsük ki a feladatot.)
  2. A javítócsomag minél kevesebb hamis találatot adjon.
  3. A javítócsomag minél kevesebb javítási konfliktust okozzon.
  4. A megtalált hibákat minél nagyobb arányban (lehetőleg mindig) helyesen javítsa.
    Ez utóbbi kettő azt is jelenti, hogy minél ritkábban kelljen kézzel beavatkozni.
  5. Mindezt csinálja gyorsan.
  6. Az előkészítés, a felderítés, a javítócsomag kidolgozása és tesztelése a várható eredménnyel arányos időt igényeljen. (Bonyolultabb esetben ez lehet több óra is, ha megéri.)

A hetedik szempont már nem a botozás technikájához tartozik, hanem szerkesztői attitűd: olyan munkát érdemes végezni, amitől a Wikipédia jobb lesz. Tehát egy különben színvonalas, fontos témát feldolgozó cikknél nagyobb eséllyel számon rá az időt az utánajárásra vagy bonyolódom bele a kézi javításokba, mint egy olyannál, amelyik amúgy is tele van sablonokkal (vagyis a javítás után is rossz marad), vagy szerintem marginális témáról szól.

Általában botos javításra alkalmasnak tűnik a hiba, ha
  • elég sok előfordulása van (azt szoktuk mondani, hogy legalább 10), vagy átlagos felhasználónak nehéz a keresővel mindet megtalálni,
  • pusztán szintaktikai elemzéssel kimutatható,
  • egyértelmű, hogy melyik alak hibás, és mire kell javítani.

Nagy hibát követünk el, ha
leragadunk egy részfeladatnál (mondjuk mert azt jelezte valaki a botgazdák üzenőfalán), és nem végezzük el az általánosítást – ezzel lényegében szőnyeg alá söpörjük a probléma nagyobb részét. Az elsőként észlelt hiba gyakran a jéghegy csúcsa, de nekünk nem a csúcsát kell levágnunk.
Nem szerencsés botozni, ha
  • csak néhány előfordulás van (aki jelzi a hibát, az ki is tudja azt az ötöt javítani a kereső segítségével),
  • szemantikai elemzést igényel, azaz szövegkörnyezettől függ, hogy helyes vagy hibás egy alak, és praktikusan csak emberi beavatkozással dönthető el (nekem határeset a baloldalibal oldali),
  • a hibás alakhoz nem lehet egyértelműen hozzárendelni a helyes alakot (de itt látható két példa arra, hogy kétféle választást is meg lehet oldani, csak több munkával – ez olykor elkerülhetetlen, ha javítani akarunk).

Néhány bonyolultabb eset leírása itt olvasható – ezek már olyan eszközöket igényelnek, amelyeknek a fejlesztése és a futása is lassabb a szokásosnál, és ok nélkül nem állok neki.

A 80–20 szabály szerkesztés

A 80–20 szabályt (más néven a Pareto-elvet) az élet számos területén szokták konkrét mérések nélkül, hasra ütéses tapasztalati törvényként idézni, mert jól hangzik. Én is ezt teszem, miért ne? A cikkek 20%-ával fogjuk az időnk 80%-át eltölteni. Ez igaz a reguláris kifejezések megalkotására, a felderítésre és a tesztelésre épp úgy, mint a tényleges javításra. Nem követ el hibát a botgazda, ha ezt a 20%-ot igyekszik csökkenteni, azaz olyan javítócsomagot állít össze, amely nem találja meg az összes hibát, de cserébe kevesebb hamis találatot ad, vagy nem találja meg az összes hibát, de ötödannyi idő alatt elkészül, mint a majdnem minden hibát megtaláló változat. Akkor sem, ha egy-egy különösen problémás, sok utánajárást vagy kézi szerkesztést igénylő cikket egyszerűen átugrik, és a felszabaduló időt egy másik hibatípus javítására fordítja. Ha ily módon adott idő alatt 80 helyett 100 javítást sikerül csinálni, akkor hatékonyak voltunk, és a Wikipédia jobb lett.

Hatékonysági hibák szerkesztés

A hatékonysági hibák a javítócsomag összeállításában vagy a feladat megválasztásában rejlenek, és a botos munkát lassítják vagy a javítás eredményességét csökkentik. Mivel több órás, ritkábban 1-2 napos kigyűjtési folyamat után néhány tucattól néhány ezerig terjedhet a módosítandó oldalak száma (extrém esetben a 10 000-et is meghaladhatja), és maga a javítás lehet kivételes esetben néhány perc is, de a nagyobb feladatoknál napokig vagy akár hetekig tartó, sokszori nekifutásos, unalmas munka, ezek a hibák mindenképp javítást igényelnek.

Megnevezés Leírás Megoldás
Rejtett hibák A javítócsomag csak a hibák egy részét tárja fel, más része felett átsiklik. Ennek két oka lehet:  
   • Gyenge reguláris kifejezés
A hiba további előfordulási lehetőségeit ismerjük, de a reguláris kifejezésünk nem találja el őket. A reguláris kifejezések javítása
   • Felderítési hiba
Nem számoltunk az összes előfordulási lehetőséggel. További kutatómunka, előzetes keresés bővített mintával, segítségkérés más szerkesztőktől (példa)
Hibás javítás A bot a keresett hibát találta meg, de rosszul akarja javítani. Lassítja a munkát, csökkenti a kijavítható hibák számát, és majdnem biztosan konfliktusokhoz vezet. Ez is a felderítési hibák közé tartozik, nem gondoltuk végig az összes lehetséges esetet. Végezzünk további kutatómunkát, finomítsuk a reguláris kifejezéseket, és próbálkozzunk újra, amíg jó nem lesz.
Hamis pozitív találatok Túl sok álhibát dob fel a bot, amit nem kell javítani. Lassítja a munkát, és majdnem biztosan konfliktusokhoz vezet. A reguláris kifejezések javítása, a kivételek fejlesztése, szükség esetén a javítócsomag szétbontása több részre, hogy az egyikhez külön kivételeket lehessen definiálni. A védekezés első vonala az állandó kivételszótár.

A hamis találatok gyakran sablonparaméterekben fordulnak elő, ilyenkor megoldás lehet a sablon manuális javítása és a paraméterek cseréje is. Általában nincs rá ok, hogy egy sablonparaméter neve helyesírási hibát tartalmazzon.

Néha egyszerűen nincs mit tenni; ha a résztvevő és a részt vevő vagy a baloldali és a bal oldali között gépi eszközökkel próbálunk különbséget tenni, csak a felszínt vakargathatjuk. A legtöbb, amit tehetünk, hogy egyszer végighaladva a szócikkeken pepecselős munkával felvesszük a kivételek közé a hamis találatokat, és bízunk benne, hogy legközelebb már könnyebb dolgunk lesz (bár valószínűleg a jövőben is ugyanolyan arányban kerülnek az új hibák és az új hamis találatok a cikkekbe, mint eddig). Az is lehet, hogy egyszerűen le kell mondanunk a botos javításról, vagy le kell szűkítenünk a cikkeknek egy olyan körére, ahol nagyobb eséllyel kapunk valódi találatokat.

Túl sok javítási konfliktus Egy szócikken vagy más lapon belül a bot valódi hibát és hamis találatot is felajánl javításra. Ilyenkor a javítást csak kézzel lehet elvégezni, a lapot a böngészőben megnyitva. Ugyanaz, mint az előzőnél; esetleg a gyűjtés után a javítócsomag egyes sorainak külön futtatása. Bővebben lásd a Javítási konfliktusok szakaszban.
Rossz javítócsomag Nem azt találja meg, amit kellene. A reguláris kifejezések fejlesztése, tanulás, tanulás, tanulás
Lassú javítócsomag Túl sokat kell várni két találat között. A reguláris kifejezések javítása vagy több kifejezésre bontása, a javítócsomag szétbontása több részre, esetleg a feladat szűkítése. Ha minden erőfeszítésünk dacára lassú marad, ritkábban futtatjuk.

Tipikusan lassúak a visszaolvasást tartalmazó, illetve helyettesítő karakterekkel kezdődő kifejezések; más szóval az a gyors, ahol a keresett kifejezés elején konkrét karakterek vagy néhány konkrét karakterből való választások állnak. Erről további részletek találhatóak a cikk végén linkelt prezentációban. Szélsőséges példa a tőismétléses mellérendelő szerkezetek keresése.

Lassú futás Túl sokat kell várni két mentés között, szokatlanul megnő a server lag. B napja van a szervernek. Ha nem javul a helyzet, tegyük félre a feladatot, és térjünk rá vissza, ha a szerver megemberelte magát.
Ismétlődő hamis találatok Ugyanazok a hamis találatok jönnek elő, mint a legutóbbi javításnál, és mindig újra el kell bírálni őket. A kivételszótár fejlesztése
Túl kevés találat A bot csak néhány előfordulást talált, ami gyorsan javítható, de a keresésre sok gépidő elment. A feladat mégsem botmunkára való, vagy ritkábban kéne futtatni, vagy összevonni más javítócsomaggal. A Wikipédia szempontjából leghatékonyabb megoldás, ha találunk más hasonló hibákat, amikkel bővíteni lehet a feladatot, hogy megérje dolgozni vele, és több legyet ütünk egy csapásra. Ha az első futtatáskor fordul elő, akkor felderítési hibával állunk szemben. Ismételt futtatáskor az is lehet, hogy sikerült megoldanunk egy problémát, és már nem terjed a hiba – ilyenkor örülünk.
Túl erős kivétel Átestünk a ló túloldalára, a kivételekkel túl sok találatot elnyomtunk. Könnyebb javítani, mint felfedezni. Ebben az esetben a belső hivatkozások túl tág értelmezésével sikerült kizárni az összes képaláírást. Az egyik átugrott cikk címe keltett gyanút, hogy mégsem politikai jellegű a tartalom. A kivétel szűkítése után csaknem 900 cikken kellett újból végigszaladni, így került sorra ez a cikk kétszer ugyanazzal az összefoglalóval.
Elavult kivételszótár A kigyűjtött cikkek egy részét átnevezték, törölték, vagy pedig a javítócsomag időközbeni fejlődése miatt már nem kéne kizárni őket. Erre nem nagyon van gyógymód, de szerencsére nem is túl veszélyes hiba. A cím szerinti kivételeket egy kis barkácsolással (mivel más formátumra van szükség) be lehet illeszteni egy allapra, és látni, hogy melyik lett piros vagy zöld. Az utolsó problémán szintén barkácsolással lehetne segíteni, a régi kivétellistát alapul véve új kigyűjtés futtatásával, majd a két halmaz különbségének eltávolításával, de ez általában nem éri meg.
Rossz helyen felvett kivétel Túl sok cím szerinti kivétel van ugyanazzal a hibával, vagy cím szerinti kivétel helyett szöveg szerinti, amelynek csak 1-2 előfordulása van; bonyolultabb esetben a függvény helyett a kivételszótárban vagy fordítva szerepel a kivétel. Nincs általános megoldás, kereséssel lehet megtippelni, hogy melyik lesz a hatékonyabb (lehetne mérni is, hogy tudományosak legyünk, de az összes ráfordított időt tekintve ez lenne a legpazarlóbb módszer  ).
Hiányzó programfunkciók A botgazda látja, hogyan lehetne tovább javítani a hatékonyságon, de a bot nem alkalmas rá. A bot fejlesztése
Átláthatatlan fixes.py Némelyik javítócsomag cserelistája vagy kivétellistája túl hosszúra nő. A nagyobb csomagok kiszervezése. A legjobb példa erre az -ít végű igéket és származékaikat javító csomag, amelyiknek a keresési mintája egyszerűen egy több mint 1200 sorból álló szótári felsorolás. (Ez egyben hiányzó programfunkció is, hogy nem lehet alkalmilag importálni javítócsomagot.)

Ezek a szempontok természetesen ellentmondhatnak egymásnak, például a több találattal több hamis találat és konfliktus vagy lassabb futás is járhat. Ilyenkor mérlegelni kell, melyik ujjunkat harapjuk meg. A mérlegelés eredménye lehet az is, hogy a feladatot kivesszük a botmunkák közül. A kivételszótárba felvett cikkek akkor se jönnek elő többé, ha valódi hibák is vannak bennük, bár ez talán nem is akkora baj, mert úgyis konfliktust okoznának. (A cím szerinti kivételek az 1867 a jogalkotásban típustól eltekintve csak egy adott konkrét hibára vonatkoznak, más javításokat természetesen nem zárnak ki.)

Javítási konfliktusok szerkesztés

A hatékonyságot csökkentő problémák közül a legnehezebb ellenfél a javítási konfliktus. Ez akkor lép fel, amikor egy cikkben a bot helyes és hibás javítást ajánl fel egyszerre – ha elfogadom, a jót is rosszra javítja, ha nem, akkor javítatlan marad a hiba. Rosszabb esetben sok hibát javítana a bot, de egy rossz csere ezt megakadályozza. Minél több találatot akarok elkapni egy javítócsomaggal, annál több konfliktus lesz – a hatékonyságot az egyensúly megtalálása szolgálja.

Néhány példa
 
 
 
Ebben a példában a bot a számok toldalékainak hangrendjét javítja, de a 6 után másik toldalékot talált, mint amire számítottam. A javítócsomag fejlesztésével ez a probléma nem oldható meg, mert ahhoz szemantikai elemzést kéne végezni, és különben is ritka eset. Legjobb kézzel javítani a másik hibát, aztán kivétellistára tenni a cikket. A „hip hop” egyszer magyar, egyszer angol szövegben fordul elő, és csak a magyart kell javítani. A képernyőn sok más probléma is látszik: kötőjeles toldalék, csikorgóan magyartalan fogalmazás, helyesírási hibák. A legjobb megnyitni a böngészőben, és kézzel elvégezni a javításokat. A bot évszámpárokat javít: kötőjel helyett nagykötőjelet tesz közéjük, és eltávolítja az évszám utáni felesleges pontot. Ez esetben azonban oldalszámokat talált el, ahol maradnia kell a pontnak. Csökkentené a konfliktus esélyét, ha csak a négyjegyű évszámokat keresnék, de ezzel sok hiba javításáról is lemondanék.
 
 
 
A klasszikus alaphelyzet: a baloldali/bal oldali elkülönítése közben majdnem pont ugyanaz a szó fordul elő éppen abban a két helyzetben, amit szét akarnánk választani... Nincs más hátra, mint kézzel javítani. (Hogy szabad-e egyáltalán, arról a Címek, nevek és idézetek javítása szakaszban esett szó.) Az előzőhöz hasonló: az úgy hogy mindenképpen hibás. Miközben azon fáradozunk, hogy az úgyhogy ('tehát, ezért') jelentést az úgy, hogy ('azon a módon, hogy') jelentéstől elkülönítsük, egy cikkben fordul elő mind a kettő. Ilyenkor kézzel kell javítani.  

A konfliktus feloldásának lehetőségei:

  • Megnyitjuk a cikket a böngészőben, és kézzel javítjuk. Ilyenkor más javításokat is el lehet végezni. (Példa: a résztvevő főnév és a részt vevő szókapcsolat is szerepel a cikkben. Ennél a javításnál gyakran kell ilyesmire számítani.)
  • Elfogadjuk a bot javításait, majd kézzel megnyitva visszajavítjuk azt, amit hibásan cserélt. Ez akkor hasznos, ha sok jó javítás mellett egy rosszat végez a bot.
  • Behunyjuk a szemünket, és hagyjuk a fenébe az egészet a hatékonyság jegyében. Úgyse tudjuk az összes hibát kijavítani a Wikipédiában. Lehet, hogy adott esetben többet ér gyorsan végigmenni hatszáz típushibán, és kijavítani őket, mint a három konfliktust okozóval vacakolni. A perzsaszőnyegben is mindig hagynak hibát, mert csak Allah tökéletes. :-)
  • Kivétellistára tesszük a hibát okozó kifejezést. Ez persze lassítani fogja a bot futását. Akkor érdemes élni ezzel az eszközzel, ha a kifejezés felbukkanása több más cikkben is várható. Jellemzően ilyenek a forrásként használt könyvek címei és a személynevek.
  • Sokszor a hibát egy sablonparaméter neve okozza, amit persze nem lehet csak úgy kijavítani, mert akkor a paraméter értéke nem jelenik meg a sablonban. Mivel a sablonokat éppen azért használjuk, hogy sokk cikkbe illesszük be, a hiba tömeges felbukkanása várható. Felvehetjük kivétellistára, de gyakran hatékonyabb magában a sablonban kijavítani, és gyorsan végigszaladni a bottal az érintett szócikkeken. Így a probléma okát lehet kezelni a tünete helyett.
  • Ritkábban előforduló eset, hogy sablonok, kategóriák, képek átnevezése jelenti a megoldást (a kategóriáknál természetesen a tartalom átmozgatásával együtt). Itt látható egy példa, amikor a sablon és a paraméter átnevezésére is sor került.
  • Olykor egy másik hiba okozza a konfliktust. A szerkesztési összefoglalók és az álbotmunka szakasz utolsó bekezdésében ilyenre láthattunk példát. A megoldás a javítócsomag kiegészítése volt egy célzott cserével, amely egy füst alatt az ütközést okozó hibát is javította.

A munka menete szerkesztés

A javítócsomag alapvetően szoftvertermék, ezért az életciklusa is ahhoz hasonló, de a követelményrendszere menet közben alakul ki.

A feladatot vagy magamnak találom ki, vagy valaki kéri a javítást. Az első lépés a felmérés, hogy mennyire elterjedt a hiba. Ehhez lehet, hogy általánosítani kell, és akár rögtön egy egyszerű reguláris kifejezéssel kezdeni.

 
Az esetek átgondolása és a tesztelés során ilyen különleges esetekre is gondolni kell: ha a jobb oldalit és a bal oldalit különírjuk, akkor a kötőjelet is el kell távolítani.

Ezután megpróbálom végiggondolni, milyen hasonló esetek lehetségesek még. Tekintettel kell lenni a toldalékolt és linkelt alakokra (beleértve, ahol a link a | elválasztókaraktert tartalmazza). Ezekhez elkészül az első fix, amivel próbakeresést végzek. A keresés történhet ugyanúgy, mint a javítás, csak mindig a nemet nyomom meg közben. Eközben előbukkanhatnak újabb alakok, amikre nem gondoltam, vagy kiderülhet, hogy a javítás nem mindig lesz megfelelő, tehát javítani kell a kifejezésen.

Míg az éles kigyűjtés általában a dump segítségével, de a Wikipédiából történik (ez a cikkek szövegét tömörítve tartalmazó letölthető állomány), a próbák során gyakorta inkább egy kategóriát vagy egy adott sablont tartalmazó lapokat nézek végig. Azokat a javításokat is tesztelni kell, amikre nem bírok példát találni (lehet, hogy éppen nincs is). Ezért hoztam létre a Szerkesztő:BinBot/semmi tesztoldalt – az egyetlent, ahol nemcsak elviselem a hibákat, de hajlandó vagyok szándékosan elkövetni is őket. Ezen lehet szimulálni a hibákat.

A javítócsomag elkészülte után kezdődik az első éles munkamenet. Pasztilla módszerét továbbfejlesztve (aki a kezdeti botozásaimhoz tanácsokat adott) két lépésben végzem a munkát: külön a keresést és a javítást. A dump segítségével egy szöveges állományba gyűjtöm a potenciálisan érintett cikkek címét. Eközben is látható a tervezett javítás a monitoron, és észrevehetek további fejlesztési lehetőségeket, de elfut magától is, nem kell előtte ülni. Ezután a javítás már sokkal gyorsabban történhet, mert a bot tudja, hogy mely lapokon kell végigmennie. Munka közben folyamatosan fejlődik a javítókifejezés és a kivételszótár is. Olykor, ha jelentősebb bővítés történik, ismételt keresést végzek, hogy még több cikket találjak meg. Az is előfordul, hogy egy-egy szócikknél meg kell állni, és kézzel javítani, vagy éppen utánajárni valaminek (a Címek, nevek és idézetek javítása szakaszban vannak ilyen példák).

Általában tudom, hogy mit keresek, de ritkán az is előfordul, hogy még a keresendő kifejezések megtalálása is kutatómunkát igényel. Máskor menet közben sikerül újabb hibás eseteket bevonni. Néhány olyan példa, amely a feladat fejlődését mutatja a kezdeti szűkebb célkitűzéstől egy általánosabb javítási lehetőség felé:

A Meggyőzéspszichológia szócikk laptörténetében 2013. december 13-ánál két órán belül két azonos szerkesztési összefoglaló látható. Ez arra utal, hogy munka közben felfedeztem a javítócsomag hiányosságát, és a frissített javítócsomaggal a program még egy előfordulást javított, amit elsőre nem talált meg.

A legnagyobb munkát általában az első futtatás jelenti, amikor a Wikipédia hajnala óta felgyűlt hibákat kell javítani. Az ismételt futtatásra általában leghamarabb fél év múlva kerül sor, ha éppen lendületben vagyok, és sok időt tudok rászánni, de van, hogy csak néhány évente. Az -ít végű igék javítása biztosan az utóbbi kategóriába tartozik, mert borzasztóan lassú (csak az igék felsorolásával és kövér kivételszótárral oldható meg). A fixek folyamatosan fejlődnek, és a Hatékonysági hibák szakaszban írtaknak megfelelően előfordul, hogy összevonom vagy több részre bontom őket.

Trükkök a hatékonyság javítására szerkesztés

Ebből a szakaszból ötleteket lehet meríteni hasonló egyszerűsítésekhez. A következőben a nyelvű szó körüli javítások (pl. magyar nyelvű, idegen nyelvű két szóba, egynyelvű, kétnyelvű egy szóba) példáján mutatok be három lépést, amelyek a tényleges munkát (azaz a fenti javítási munkamenetet) felgyorsítják. A javítócsomag tulajdonsága, hogy elég lassú, ezért nem mindegy, hogy hány cím kerül feleslegesen a gyűjtésbe.

Fájlból fájlba másolás
Miközben már fut a keresés, a képernyőn megjelenő találatokból észreveszem, hogy sok tipikus kivétel van, pl. egy sablonparaméter neve, amit most nem akarok javítani, vagy egy régies műcím, amit sok cikkben megemlítenek, egy személynév stb. Akár olyan eset is, amire eddig nem is gondoltam. Ezekkel le lehet szűkíteni a kigyűjtött állományt, hogy ne az én időmből menjen majd, amíg ezeket a cikkeket a bot megcsócsálja és kiköpi. Elölről viszont nem akarom kezdeni, hanem a már kész állományt átnevezem, és automatikusan futtatom rajta a programot, például így:
replace.py -file:nyelvű2.txt -save:nyelvű.txt -fix:nyelvű -always
Ezt a módszert két finomítás után kétszer alkalmazva 970-ről 373-ra redukáltam a címek számát, ami mindenképpen jelentős fejlődés. (Az itt látható szintaxis a Pywikibot régebbi (compat avagy trunk) verziójában működik, a core verzióba sajnos még nem került bele.)
Gyakori előfordulás kiemelése
A gyűjtés közben feltűnt, hogy a találatoknak nagyságrendileg a felét az idegennyelvű szókapcsolat teszi ki. Ezt külön beleírva a javítócsomagba és kikommentezve az összes többit, reguláris kifejezések nélkül lefuttattam a javítást. A bot is gyorsabb reguláris kifejezések nélkül, én is gyorsabb vagyok, mert monoton ismétlődik ugyanaz a javítás. Ezután a fenti technikát harmadszor is alkalmazva már csak 175 cím maradt, azaz drasztikusan lecsökkent a munkamennyiség.
Gépelési hibák kiszúrása
Szintén a gyűjtés során figyeltem fel több olyan cikkre, ahol gépelési hiba miatt lett hamis találat, vagy pedig nem elég a reguláris kifejezéssel elért javítás (pl. a francia- és németnyelvű szókapcsolatban a kötőjelet is el kell tüntetni). Ilyenkor kézzel kell szerkeszteni a cikket. Azonban ha a konkrét előfordulást erre az alkalomra ideiglenesen beleírom a javítócsomagba, akkor megúszható a kézi szerkesztés.

A kivételszótár frissítése szerkesztés

Javítás közben megjelölhetjük azokat a cikkeket, amelyeket többé nem akarunk látni az adott hibatípus kapcsán.

Ennél érdekesebb feladat a kivétellista takarítása. Az évek során felgyűlhettek olyan cím szerinti kivételek, amelyeket a képlettel megadott kivételek fejlődése (egyben a saját szellemi fejlődésünk) folytán már nem kellene a listán tartani. Miért baj az, ha egy cikk kétszeresen van kizárva a javításból?

  • Mert lassul a program működése, és ezzel a saját időnket pazaroljuk,
  • mert nehezen átlátható javítócsomagunk lesz,
  • mert akkor sem kerül elénk a cikk, ha másik hiba van benne, mint amiért kizártuk,
  • mert akkor is a listán marad a cikk, ha már nincs is ok rá

stb.

Általában igaz, hogy szerencsésebb kivételtípusokat megadni, mint konkrét címeket felsorolni a kivételek között. A többször emlegetett baloldal → bal oldal javítás kapcsán nagyon sok cikket kellett kizárni, amelyekben a baloldal(i) vagy a jobboldal(i) szó politikai összefüggésben szerepelt. A típusos kivételek bővítése után az alábbi módszerrel sikerült 737-ről 586-ra csökkenteni a tételesen kizárt cikkek számát. A trükk lényege, hogy a címeket egyik állományból a másikba gyűjtjük, tényleges wikiszerkesztés nélkül.

Esettanulmányok szerkesztés

Esettanulmány 1. – titkosügynökök (könnyű feladat) szerkesztés

Feltűnt, hogy a KGB-ügynök több helyen hibásan, két szóba van írva. Sejteni lehetett, hogy más szolgálatok ügynökeinél is fennáll a hiba, ezért keresést végeztem, mindenféle szolgálatok nevét beírva, és teszteltem, hogy van-e találat. Eközben derült ki, hogy néhány esetben az ügynök valamiért nagy Ü-vel is van írva (nehéz ilyenkor kitalálni, mire gondolhatott a költő). A keresés alapján a következő javítást állítottam össze:

(ur'(FBI|CIA|KGB|MI ?\d) [üÜ]gynök(?!e)', ur'\1-ügynök'),

Ez az FBI-, CIA, KGB-, MI5-, MI6- stb. ügynököket is a helyes alakra javítja. Ha az MI 5 szóközt tartalmaz vagy az ügynök Ü-vel van, akkor is. De nincsenek benne más szolgálatok, amelyekhez nem találtam előfordulást. Így a javítócsomag gyorsan futtatható.

Megjegyzés: a szakasz címében a titkosügynököt megfontolt szándékkal az OH. írásmódjától eltérően egybeírtam. A titkosrendőr, titkosszolga ugyanis egybe van írva, a titkosügynök pedig ezekkel minden szempontból rokon. Még a jelentésmódosulás is fennáll, hiszen az ügynök szót önállóan is használjuk, és itt nem egy titkos porszívóügynökről beszélünk, aki betörőnek álcázza magát, hogy könnyebben beengedjék (az lenne titkos ügynök), hanem titkosszolgálati ügynökről.

Esettanulmány 2. – a szerint névutó különírása (könnyű feladat is, meg nehéz is) szerkesztés

A szerint névutó különírandó a kapcsolódó névszótól: AkH.12 108.

Probléma
A keresés elég sok hibásan egybeírt szószerint alakot mutat. Rákerestem még pár hasonlóra, ami eszembe jutott (számszerint, névszerint), abból is volt elég.
Elemzés, megoldási vázlat
Az ötlet az, hogy keresem a valamivel egybeírt, azaz nem szóhatáron álló szerinteket. Ennek a javítóképlete: (ur'\Bszerint', ur' szerint'),. Biztosan ki kell zárni néhány esetet: miszerint, eszerint, aszerint, rendszerint. Ezek viszont éppen szóhatáron kell kezdődjenek. Pl. az amiszerint már megint hibás, tehát ha a miszerintet szó belsejében találjuk, az nem kivétel.
A szó végén lehet egy -i képző; azt nem kell figyelnünk, mert a szerinti éppen úgy különírandó. Más végződésre, toldalékra nem kell számítanunk, ez egyszerűsíti a dolgunkat. (Később bejön a képbe az őszerinte szó, ez a kivételek közé kerül majd, mert elég ritka eset.)
Első kísérlet
Elkészül a fentieknek megfelelő javítócsomag, a keresés elkezd futni, én pedig figyelem a képernyőt. Két dolog tűnik fel:
  • A keresés elég lassan fut – beleesik a fenti hatékonysági hibák táblázatának a lassú javítócsomag esetébe, mert nem konkrét karakterrel kezdődik.
  • Gyakorlatilag néhány hibás szó adja a találatok túlnyomó részét. Különösen szemet szúr az előre nem várt menetrendszerint(i) dominanciája. Jól mutatja, hogy a rendszerint kivételnek miért kell szóhatáron kezdődnie.
Firkapapírra jegyzetelem a felbukkanó gyakori eseteket, valamint azokat is, amelyekből 1-2 előfordulást látok (beleértve a gépelési hibákat is, pl. tendszerint). A leggyakrabban előforduló hiba egy konkrét témakörhöz, a közlekedési cikkekhez köthető, így érdemes a műhely vitalapjára írni, hogy figyeljenek rá, de egyelőre nem keresek egy személyt, akihez a hiba kötődne.
Természetesen jegyzetelem a látott kivételeket is, pl. kényszerintézkedés, gyógyszerintézet stb. Ezeket beleírom a javítócsomagba, és a tényleges futtatásnál már nem kell velük törődni. Addig jó ez a módszer, amíg néhány ilyen van – most jó.
Ötlet a hatékonyabbá tételre
Kivételesen maradjanak csak a konkrét esetek, hiszen látszólag ezek adják a hibák túlnyomó részét, és így nagyon sokat lehetne gyorsítani a futáson. Érdemes a ritkábban, de azért többször is előforduló eseteket is megtartani. Ezeket tételesen bele is írom a javítócsomagba (az általános képlet elé). Viszont ha már lefut ez a keresés, akkor első alkalommal javítsuk a többit is, ami a lassan másfél évtized során felgyűlt; nem fog gyorsan újratermelődni.
Mérés – ez a nehéz, de átugorható rész
A következő rész programozási tudást igényel, de átugorható. A munkamenet enélkül is követhető. Kíváncsi lettem, hogy konkrétan hányszor fordulnak elő az egyes hibák. Korábban szerencsére már elvégeztem az ehhez szükséges fejlesztés nagyobb részét, hogy naplózni tudjam, hány csere történt a javítás során. (Pl. a bot 89 szócikket javított, de összesen 115 előfordulást cserélt eközben, mert néhány oldalon sok hiba volt.) Erre a munkára alapozva megoldottam, hogy a bot a hibás és helyes alakok párjait el tudja menteni egy állományba. A nehézség az, hogy hibás alakként csak azt a formulát ismeri fel, amit megadtam neki, vagyis mindenképp fel kell sorolni az előző pontban írtak szerint az engem érdeklő eseteket. (Másképpen mondva ha a fenti általános képletet használom, hogy egy szó közben kezdődő szerintet keressen, akkor a mentésben is csak a szerint lesz benne a szó eleje nélkül, ami nem hasznos.) Íme, az eredmény:
menetrendszerint menetrend szerint y 124
szószerint szó szerint y 85
vérszerint vér szerint y 47
névszerint név szerint y 42
számszerint szám szerint y 19
melyszerint mely szerint y 3
időszerint idő szerint y 2
amelyszerint amely szerint y 1
tendszerint rendszerint y 1
szerint  szerint y 25
szerint  szerint n 9
Ebben a táblázatban a y a javítás elfogadását, a n az elutasítását jelenti. Vagyis 25 olyan hibát javítottam, amely nem esett a felsorolt esetek egyikébe sem, és 9 hamis találat maradt. Ezek a számok tartalmazzák az -i képzős eseteket is. További 12 esetben rosszul másolt belső hivatkozások okozták a problémát; ezeket kézzel javítottam (példa). Egyszer majd egy másik bot fog szétcsapni közöttük, nem érdemes itt foglalkozni velük.
Vagyis számszerűen is bebizonyosodott a sejtés, hogy a felsorolt esetek adják a találatok túlnyomó részét, és általában elég ezeket keresni. (Még néhányat hozzátettem végül a listához, ahol 2-3 előfordulás volt.) Az is világos lett, hogy ha a közlekedési cikkeket író néhány ember már nem követi el ezt a hibát, akkor az ebbe a típusba tartozó hibák száma drasztikusan csökkenni fog.
A kísérlet eredménye
Egyszer érdemes volt végigcsinálni és javítani a néhány ritka esetet is, de a továbbiakban csak a konkrétan felsorolt alakokkal fog futni a javítás, vagyis a nagyon gyakori és a néhányszor előforduló hibákkal. Pár olyan alak, ami talán évekig nem bukkan fel megint, még nem rontja észrevehetően a sebességet. Az elsőként leírt általános képlet viszont megjegyzésbe kerül, halott kód lesz – talán évek múlva egyszer majd újra lefuttatom azt is.
Járulékos haszon: ha csak a konkrét szavakat keresem az általános alak helyett, akkor kivételekre sincs szükség. Tehát megjegyzésbe kerülhet az összes kivétel is (nem törlöm, mert ezek az általános képlet tartozékai), és ettől még gyorsabb lesz a futás. Megmaradnak azonban a BaseExceptionben felsorolt állandó kivételek. A jövőben ez egy gyakran és örömmel futtatható, fürge javítás lesz.
Tanulság
Az eddigiekből látszik, hogy ezúttal egyáltalán nem érdemes általánosítani a többi névutóra, vagyis olyan fixet írni, amely egy sor névutó különírását javítja, noha a probléma valószínűleg elég nagy. Egy ilyen javítástól még a gép szájában is megaludna a tej. A hatékonyság szempontja itt azt diktálja, hogy egyenként álljunk neki azoknak, ahol sok javítanivaló várható.
A végső kód
A becsukható dobozban látható a kísérlet nyomán kialakított fix, a ritkán használt elemek megjegyzésbe helyezésével.
A kész javítócsomag
    u'szerint': {
        'regex': True,
        'msg': {
               'hu':u'A szerint névutó különírása (kézi ellenőrzéssel), ld. https://helyesiras.mta.hu/helyesiras/default/akh12#108',
        },
        'replacements': [
            # Ezek a nagyon gyakoriak:
            (ur'(m|M)enetrendszerint', ur'\1enetrend szerint'),
            (ur'(n|N)évszerint', ur'\1év szerint'),
            (ur'(s|S)zószerint', ur'\1zó szerint'),
            (ur'(s|S)zámszerint', ur'\1zám szerint'),
            (ur'(v|V)érszerint', ur'\1ér szerint'),
            # Ezek a ritkák, de van belőlük pár darab, még érdemes keresni:
            (ur'(i|I)dőszerint', ur'\1dő szerint'),
            (ur'(t|T)engelyszerint', ur'\1engely szerint'),
            (ur'(k|K)önyvszerint', ur'\1önyv szerint'),
            (ur'(s|S)úlyszerint', ur'\1úly szerint'),
            (ur'(am|Am|m|M)elyszerint', ur'\1ely szerint'),
            # Ezekből 1-2-3 darab volt, elsőre javítottam az általános képlettel, ha már lefutott:
            # 1-1: rangszerinti, amiszerint, könyvszerinti (3, de egy cikkben), tengelyszerinti (2), célszerinti, betűszerinti, régiókszerint, szövegszerinti, címszerinti, [[súlyszerinti analízis]] (2), Magyarorosz évszerinti feljegyzések, ejtésszerinti, Fajtaszerint, leírásaszerint, ezekszerint, hagyományszerinti, adatokszerint, tervei szerint, korszerinti
            # Néhány alkalmi gépelési hiba: tendszerint (rendszerint), tengszerint (tengerszint)

            # Ez az általános képlet, amit nem érdemes futtatni, mert nagyon lassú lesz.
            # A teszt alapján bőven elég a fenti gyakori és ritka esetekkel foglalkozni.
            # (ur'\Bszerint', ur' szerint'),
        ],
        'exceptions': { #Inside-tags: a fixes elején
            'inside-tags': [
            ],
            'text-contains': [
            ],
            'inside': [
                # Ezek a kivételek az általános képlethez tartoznak. Ha a felsorolást futtatjuk az általános képlet kikommentezésével, akkor ezek is feleslegesek.
                # A miszerint kötőszóként egy szó, lehet külön esete is, pl. „nem tudom, mi szerint állapították meg”.
                # Ezzel nem foglalkoztam, mert több lenne a fals pozitív.
                # ur'(?i)\b(mi|a|e|rend)szerint',
                # ur'(?i)ugyaneszerint',
                # ur'(?i)kényszerintéz',
                # ur'(?i)gyógyszerint', # intézet, interakció
                # ur'(?i)lőszerintézet',
                # ur'(?i)\bőszerinte',
                # ur'(?i)\bjószerint',
                # ur'acetilszerint', # vegyület tárgyesetben
                # ur'mianszerint', # vegyület tárgyesetben
            ],
            'title': [
                # ur'^Kocsisovszky Jusztin$', # Régi cím
            ],
            'include': BaseExceptions,
        }
    },

Esettanulmány 3. (középnehéz feladat) szerkesztés

 

(Folyt. köv.)

Munkanaplók szerkesztés

Ezt az ötletet a Szerkesztő:DhanakBot/Napló oldalról lestem, ahol a bot által automatikusan generált munkanapló található. Két naplót használok:

  • Szerkesztő:BinBot/munka: többnyire automatikusan generált munkanapló a dátumokkal, a kézi és automatikus változtatások számával és az elvégzett feladattal. Saját fejlesztést igényel a gyakran használt modulokban (szövegcserélő és egyértelműsítő bot); a javítócsomagok tartalmazzák a saját leírásukat, ami a táblázatba kerül. Alkalmi munkák esetén kézzel kell kitölteni. Elvileg minden botmunka visszakereshető benne.
  • Szerkesztő:BinBot/munka/Rendszeres munkák táblázata: ezt kézzel vezetem, hogy jobban átlássam, melyik javítást mikor végeztem el utoljára, és melyiket lenne már érdemes ismét elővenni.

A kijavított hibák száma szerkesztés

 

A javítást végző program sokáig nem volt alkalmas (a hivatalos verzió most sem alkalmas) annak megállapítására, hogy hány cserét végzett, így csak azt lehet a naplók alapján megmondani, hány szerkesztés történt. A kijavított hibák számára ebből csak tapasztalati úton következtethetünk (javítás közben ugyanis még látszik az összes csere); helyesírási javításoknál ez mindenképpen többszöröse a megváltoztatott lapok számának. Gyakran csak egy hiba van egy oldalon, de az is lehet, hogy 3-4. Olykor pedig egy ismétlődő hibatípusból nagyon sok is lehet. Ebben a módosításban 35 javítást számláltam meg. Itt pedig ugyanaz az egy szó szerepel hétszer ugyanazzal a hibával. Akinek van kedve, a difflinkek alapján számolhat átlagot.  

Valószínűleg az élmezőnyben van ez a javítás. Számolja meg az eltéréseket, akinek két anyja van, de mivel a bot a százalékjelek elől távolított el fölösleges szóközöket, és 89 byte-tal csökkent a lap mérete, talán nem nagy merészség feltételezni, hogy kb. 89 javítás történhetett. (Összesen 96 százalékjel volt benne.) Ezekben az esetekben pedig a javítás előtt és után végzett méréssel sikerült megszámlálni, hogy rendre 462, 432, 385, illetve 270 javítás történt.[* 1] Ezek voltak 2017 szeptembere előtt a legnagyobb ismert számok, de a korábbi javítások során előfordulhattak nagyobbak is. Ez a 90 már nem is sok...

A képen egy olyan eset látható, amikor az évszámok hibás hangrendű toldalékaiból (amúgy nem kellene nyelvtanprofesszornak lenni, hogy egyből jól írjuk őket...) olyan sok van egy cikkben, hogy a javítások még ilyen lekicsinyített betűmérettel sem férnek ki mind egy képernyőre.

Frissítés: 2017. szeptember 4-étől egy saját fejlesztés használatával már egészen jó becslést lehet adni a tényleges javítások számára. Ez nem tartalmazza a grafikus szerkesztőben végzett, nem szorosan a fő feladathoz tartozó javításokat, illetve hibás értéket adhat, ha nem sikerül menteni a lapot, mégis egészen jó közelítésnek tekinthető, és általában pontos is. Így a jövőben statisztikákat lehet készíteni, hogy melyik hibatípusnál átlagosan hányszorosa a javítások száma a módosított lapokénak, és kellően sok adat alapján talán visszamenőleg is lehet majd becsléseket tenni. Ezzel az eszközzel sikerült 2018. szeptember 4-én 474 cserét mérni egy szerkesztésben. A jelenlegi harmadik helyezett pedig: 438 csere – 1752 szögletes zárójel eltávolítása.

  1. Mivel itt egyféle minta alapján történt a keresés és javítás, előzőleg ugyanezzel a mintával lehetett megszámlálni az előfordulásokat. A javítás után ez a szám nullára csökkent.

Ismétlődő hibák szerkesztés

Botos javítás közben bukkan az ember olyan elrejtett kincsekre, amelyekre máskor nem – például a vágólappal másolt és ennélfogva azonos hibát hordozó cikkekre. A dump ugyanis létrehozási sorrendben tárolja a lapokat, így a futószalagon létrehozott cikkek egymás után jelennek meg a képernyőn. Persze általában nem férnek ki, csak részelteket tudok képként mutatni.

 
 


Ez 12 szinte teljesen egyforma bekezdést tartalmazó szócikk, ahol azonos javítást végeztem. Ez pedig 23 majdnem egyforma; a 24. kicsit lejjebb van a listában. Ez a 20 egymás utáni azonos javítás az adott feladat 40 javításának a felét tette ki. Itt 14 hadművelet cikkében volt vágólappal másolt bekezdés azonos hibával.

Hibalehetőségek szerkesztés

A hatékonysági hibákról már esett szó fentebb, lássuk a többit.

Programhibák szerkesztés

 

Ha sokak által használt, sok fejlesztővel rendelkező nyílt forráskódú szoftvert használunk, mint pl. a Pywikibot, akkor kicsi a hibák esélye, de kizárni sosem lehet. Ennek a programnak egy hibájáról tudok, ami a javítást érintheti: ahogy a kép mutatja, néha valamiért nem színezi ki a cserélendő és a felajánlott szöveget pirossal és zölddel, és ilyenkor elég nehéz lehet megtalálni (bár azért lehet sejteni, hogy hol keressük). Ebből tényleges javítási hiba csak akkor lehet, ha a) egyszerre több javítanivaló van, b) aminek egy részét nem színezi ki, c) és pont a ki nem színezett javítás téves, d) és egyébként sem szúrom ki. Ennek a négy hibának az együttes előfordulási valószínűsége rendkívül csekély, és nem tudok róla, hogy valaha is történt volna ilyen.

Ennek ellenére, hogy a feszültségszintet csökkentsem, átírtam a Pywikibot keretrendszerét, hogy a programom ki tudja írni, hány cserét végzett ténylegesen. Ily módon ha három javítást vettem észre, és utána a „3 csere” üzenet jelenik meg, akkor tudom, hogy mindet észrevettem, ha pedig „5 csere”, akkor kettőt nem vettem észre, és ennyit kell utólag megkeresnem, hogy ha hiba történt, kijavíthassam. Ezt a fejlesztést később más célra is remekül lehetett használni, nagyon megnövelte a bot erejét.

Cikkhibák szerkesztés

Ez viccesen hangzik, mert persze pont a hibás cikkeket javítjuk. Vannak olyan hibák, amik ezt tovább nehezítik. Az egyik, ha túl hosszú a bekezdés, amiben a hibát megtalálja a bot – ilyenkor elég szemfárasztó lehet megkeresni. (Kicsit ennek is köszönhető, hogy itt tévesen javítottam bele egy idézetbe.) A másik, ha túl sok hiba van benne (esetleg a túl hosszú bekezdésekkel kombinálva), és egyszerűen nem fér ki a teljes diff a képernyőre, még a görgetősáv használatával sem. A legrosszabb esetben, ha jónak tűnnek a megjelenő javítások, el kell végezni a cserét, aztán a böngészőben megnyitva az utolsó változtatást végigellenőrizni, hogy csupa jó javítást csináltunk-e.

Szerencsétlen eset az is, ha az idézet nincs idézőjelben vagy idézetsablonban, hanem az egyik bekezdésben áll a szerző neve, kettősponttal záródó sorban, a következő bekezdésben pedig maga az idézet. Mivel (a képeken jól láthatóan) a javítás közben csak a hiba egy környezete jelenik meg a botgazda számára, nem biztos, hogy észre fogja venni az ilyen szövegről, hogy idézet.

Néha a szerzők összekeverik az enciklopédiacikket a nagymonográfiával, és olyan hosszú cikkeket írnak, amiken a bot 5-10 percig is elcsámcsog, én meg azt hiszem, hogy már rég lefagyott. Ezért átírtam a botot, hogy ellenőrizze a cikkek méretét, és a 300 000 karakter felettiekben egyáltalán ne keressen hibákat. 2018 tavaszán, az újítás bevezetésekor ez 17 szócikket érintett, tehát nem csökkenti érdemben a javítások hatékonyságát.

Személyi hibák szerkesztés

Ezek teljes mértékben elkerülhetőek. Tartsuk észben, hogy bottal könnyű nagy kárt okozni, és lehet, hogy sokkal nehezebb helyrehozni.

  • Engedély nélküli botozás – ha nem az irányelveknek megfelelően lát valaki a feladathoz, le kell állítani.
  • Ha a botgazda nem elég képzett nyelvtanból, helyesírásból vagy a bot működéséből, vagy nem képes átlátni a lehetséges eseteket – ne javítson helyesírást bottal. Keressen más feladatot.
  • Ha a botgazda fáradt, dekoncentrált – térjen vissza a feladathoz később.
  • Indokolatlan automatikus javítás – a helyesírási javítás alapelve a kézi botszerkesztés. Félautomatikus javítást is rendkívül ritkán, jól körülhatárolható mintán, alapos előkészítés után végezhetünk.
  • Konszenzus nélküli botmunka. Mivel a helyesírási hibákat egyértelműen javítani kell, ez ritkán fordul elő ennél a munkánál, de azért van két eset, amikor jobb nem botozni:
    • Ha a helyes alak nem teljesen egyértelmű, és a kocsmafalon sem sikerült megoldásra jutni.
    • Ha több szerkesztő nem helyesírásinak, hanem nyelvhasználatinak tekinti a különbséget, és a kocsmafalon nem sikerül egységesíteni. (Példa olyan esetre, amikor az OH alapján egyértelműnek tűnt a helyes alak, mégis ki kellett venni a feladatok közül.)
  • Nem elég körültekintő munka. Ilyen lehet, ha a botgazdák üzenőfalán feldobott feladatot gyorsan elvégzi valaki, és nem jár utána, hogy csakugyan helyes-e a kérés, ha nem fordít időt a kapcsolódó esetek felderítésére (és emiatt a probléma sokkal kisebbnek tűnik a valóságosnál, és elveszítünk egy lehetőséget egy szélesebb körű javításra). Ha egy szó helyesírását javítani kell, mindig gondoljunk a lehetséges toldalékolt alakjaira és összetételeire. Technikai probléma esetén a BÜ-n, nyelvi probléma esetén a kocsmafalon célszerű megbeszélni.
    • A nem kellő körültekintés speciális esete lehet, ha valaki csak a beépített kereső eredményei alapján lát neki a cserének, mert így sokszor hamis képet kap. Az igazi tesztelés mindig a cseréhez használt kifejezésekkel történjék.

Szerkesztési ütközések szerkesztés

A késleltetett mentés miatt előfordulhat, hogy a botgazda által elvégzett javítás (azaz a mentési sorba való beállítás) és a tényleges mentés között akár tíz perc is eltelik (szerverproblémák esetén még több), és eközben valaki szerkeszti vagy átnevezi a lapot. Leggyakrabban maga a botgazda, aki talált még valami kézi javítanivalót is a cikkben. Ezután a bot természetesen nem tudja a szerkesztést végrehajtani. Célszerű a kézi szerkesztéssel megvárni, amíg a botos javítás megjelenik a cikkben. (Ha másik szerkesztő nyúlt bele, az védhetetlen hiba, de szerencsére kicsi a valószínűsége).

Hibaszázalék szerkesztés

Az itt következő szöveg a bot egy allapjáról van beillesztve. A felsorolt esetek közül néhányat részletesebben kifejtettem fent a Címek, nevek és idézetek javítása szakaszban.

Drágám, néha téved az ember, mit bevallani nem mer...
Kézi botszerkesztések becsült száma: 108 663


BinBot (vita | közrem. | törölt szerk. | log | blokk log | jogok | blokk | statisztika | CentralAuth) és BinBott (vita | közrem. | törölt szerk. | log | blokk log | jogok | blokk | statisztika | CentralAuth) mögött sok tízezer szerkesztés áll már; csak a kézi szerkesztések száma meghaladja a hatvanötezret. Büszke vagyok rá, hogy 2006 decembere óta csak néhány esetben érte jogos kritika a bot tevékenységét, és ezeket is gyorsan sikerült javítani.

Én hibáztam
Egyéb észrevételek a bot tevékenységével kapcsolatban
Folyamatban (tisztázásra vagy archiválásra vár)


A server lag és az aszinkron mentés szerkesztés

 
Aszinkron mentés egy különlegesen gyors javítás után (lásd a szövegben)

A javítás alapképlete a következő: javít – ment – várakozik – javít – ment – várakozik – javít – ment – várakozik... A botok pedig többet várakoznak, mint a szerkesztők (még akkor is, ha kézi munkáról van szó, és a a bot képernyője mögött egy humanoid dolgozik).

Ezen akartak segíteni az aszinkron mentés bevezetésével. Ez az előbbi folyamatot felgyorsítja, ugyanis többszálas programozás révén párhuzamosan tudja menteni a már feldolgozott lapokat, és feldolgozásra adagolni az újakat. Lényegében tehát halasztott mentést jelent. Néha ez is be tud lassulni, de az alapvető működése, hogy gyorsan végig lehet haladni a lapokon, és utána a javított mennyiségtől függően 10-20-50 percen keresztül próbálja feltölteni a gép a módosított lapokat a Wikipédiára. Eközben a botgazda már nem dolgozik, csak az ablakot kell nyitva hagynia. Ilyenkor látszik a bot szerkesztéslistáján, hogy mondjuk 15:43-kor naplózza 129 lap szerkesztését, de még csak 57-et szerkesztett ténylegesen, és a maradék 72-t a következő fél órában. (A napló mentése ugyanis nem aszinkron módon történik.) Ez persze azzal is járhat, hogy ha a későbbiekben bármilyen hiba miatt nem sikerül elmenteni a lapot, akkor a naplóban téves összeg marad, és kézzel kell javítani. A rekord, amelyet feljegyeztem magamnak, 194 sorban álló lap volt a munka befejezése után; a mentés 33 percig tartott. Ilyenkor persze megnő a szerkesztési ütközés veszélye is.

A késleltetés egy részét maga a bot okozza, mert szándékosan várakozik két mentés között (ez elvárás a botokkal szemben, hogy terheljék túl a szervert). Ennek a mértéke 6-10 másodperc körül van, a beállítástól is függően. Ilyen mértékű lassítást akkor vesz észre a botgazda, ha a javítás nagyon gyors és egyszerű. De ha a szerver túlterhelődik, akkor maga is késleltetve reagál – ezt a jelenséget nevezik server lagnek. Ilyenkor a bot is érzékeli a problémát, és egyre ritkább időközönként próbálkozik újból a mentéssel. A dobozban egy szélsőséges példa látható, amikor a munka már gyakorlatilag lehetetlenné válik. A bot hosszú időn keresztül próbálkozik ugyanannak a cikknek a mentésével.


 

A legkellemetlenebb hiba az adatbázis lezárása. Ilyenkor egyáltalán nem lehet menteni, a bot pedig közel exponenciálisan növekvő időközönként próbálkozik újra, ami a sorban álló szerkesztések elveszésével is járhat, illetve jelentősen növeli a szerkesztési ütközés esélyét. Ebben a példában a 16 perces várakozás közben feloldották a zárlatot, és lehetett menteni, de röviddel később ismét visszatért a hiba pár percre. A bot a várakozás miatt nem tudott élni a mentés lehetőségével, és újabb fél órás várakozási ciklusba kezdett.

Szubjektív összegzés szerkesztés

Amit itt leírok, az csak a több százezer hiba javítása során, tíz év alatt kialakult tapasztalatom, nem kívánom se számokkal bizonyítani, se vitatkozni rajta, se senkit megbántani vele. Ez a szakasz a Wikipédia állapotáról szóló véleményem.

A Wikipédia általános nyelvi és helyesírási színvonala gyenge, de nem egyenletesen. A hibák természetesen újratermelődnek, mégis érdemes foglalkozni a javításukkal az első szakaszban leírtak miatt. Leginkább két dolog szomorít el: amikor kiemelt szócikkekben találok hibákat, és amikor nyelvészeti szócikkekben. Mind a kettőre elég sok példa akad.

Alapvető megfigyelésem, hogy van összefüggés a téma és a kidolgozás komolysága között – azt hiszem, ezen senki nem lepődik meg. Helyesírási, nyelvhelyességi, fogalmazási hibák minden témában vannak, de a jellemző súlyosságuk eltérő. Úgy is mondhatnám, hogy a durvább hibák javításakor jobban látszik a különbség.

A legrosszabb állapotban a tévésorozatok epizódjai (sorozatizék) vannak. El sem tudom mondani, hányszor botlottam elképesztő hibákba a Született feleségekről szóló cikkekben. Számomra ez a cikkcsalád az elrettentő példa. Hasonlóan rossz a rajzfilmekről, színészekről, könnyűzenéről és más bulvárközeli témákról szóló cikkek átlagos színvonala. Ezekben gyakran tükröződik a bulvárlapok stílusa. Sok ilyen cikket (tisztelet mindig a kivételnek) leginkább az igénytelen szóval tudnék jellemezni.

Többet érdemelne a sport is. A sporttal kapcsolatos cikkek átlagos színvonala messze alulmúlja a Wikipédia átlagát. A számok toldalékolását javító fix fölé ezt a megjegyzést írtam magamnak: „Ezt érdemes gyakran futtatni a sportcikkek borzalmas állapota miatt.” Sokszor nem is helyesírási a hiba, hanem egyszerűen elfelejtett egyeztetni a szerző. Ha csak végigolvasná, amit leírt, maga is rájönne a képtelenségére. Ezért beszélek itt is igénytelenségről. A helyesírás és a nyelvtan gyengeségén kívül az is problémát okoz, hogy a szerzők nem tudják megkülönböztetni az enciklopédiát a sportújságtól, és gyakran a sportriporterek szóhasználatát, fordulatait viszik bele a cikkeikbe. Egy állatorvosi ló: „Videoton” helyett „Vidi” (bizalmaskodás, bulváros), vezetéknév vagy teljes név helyett keresztnév (bizalmaskodás, bulváros), „átigazolt” vagy „klubot váltott” helyett „továbbállt” (bulváros, dehonesztáló – mintha a játékosnak nem lenne szabad mozgási joga, és csak úgy lelkiismeretlenül ugrálna ide-oda a klubok között). Mindezek mellé ötletszerűen kiszórt vesszők, mondatzáró írásjel után kimaradt szóközök. Ide kattintva megtudhatod, hány szócikkben szerepel a hálóőr szó (a cikk írásának idején 67 találatot kapunk). A helyes eredmény nulla lenne.

Fontosabb kapcsolódó publikációim szerkesztés

Forrás szerkesztés