Szerkesztő:Gyimbot/Összegképlet robot/1. változat

Az összegképlet robot (röviden kémia bot) összegyűjti és kereshetővé teszi a magyar Wikipédia vegyület szócikkeiben szereplő összegképleteket. Egyúttal „dicsőségtáblát” készít a szócikkek létrehozóiról, és néhány statisztikai adatot is gyűjt a szócikkek létrejöttéről. Az eredmények külső wikire kerülnek, és naponta, hajnalban frissülnek:[1]

A külső szerver legfőbb indoka, hogy a Wikipédia szoftvere nem teszi lehetővé beviteli form készítését. A bot korábbi változata ezt a korlátot listákkal próbálta elkerülni, ezek használata azonban kényelmetlen volt.

A változás a dicsőséglista tartalmát is érinti. A bot azokat a vegyületlapokat találja meg, amelyek

  1. a fő (szócikk) névtérben vannak
  2. valamelyik vegyületsablont használják (lásd alább).

A régi és új lista között akkor van eltérés, ha a fenti két feltétel valamelyike nem áll fenn a szócikk létrehozásakor (szerkesztői lapon hozzák létre, vagy utólag kerül rá a vegyületsablon).

A korábbi listában kézzel szűrtem ki az ilyen eseteket, hogy csak a valóban új szócikkek kerüljenek bele (egy idő után a szócikk névtérbe kerülés dátumát vettem keletkezési időnek). Az új, gépi lista a laptörténet legkorábbi dátumát tekinti a lap keletkezési idejének. Ebből az is következik, hogy az éves statisztika visszamenőleg is változhatik, a bot által újonnan megtalált vegyület pedig nem a (keletkezési idő szerint rendezett) vegyületlista elejére kerül.

Forrásprogram szerkesztés

A bot programjai linux shell scriptek, lua és C programok. Az amd64-re fordított kód és a forrás megtalálható a http://www.gyimesilaszlo.hu debian-repositoryban, a kemiabot csomagban. Az alábbi rövid leírásnál több technikai részlet található a man lapokon.

Üzemeltetés szerkesztés

A bot raspberry pi-n fut, raspbian disztribúcióban, a már említett debian repositoryból, forrásból letöltött debian-csomagokkal.

Miután a kémiai szócikk írásának nincsenek pontos szabályai, a bot időnként tévedhet. Legutóbb pl. a tantált hitte vegyületnek, mert a lapon a veszélyszimbólumok miatt vegyületsablon is van. Ilyenkor a kezi.txt módosítása segít (lásd alább).

A hasonló hibákat emailben lehet jelezni. Bejelentkezett szerkesztők a Wikipédia levelezőjével is írhatnak Szerkesztő:Gyimhunak.

Működés szerkesztés

Lépések:

  1. A bot lekérdezi a szócikk névtérből a kémiai sablonokra hivatkozó lapokat. Egyenként letölti őket, és kinyeri belőlük az összegképletet.
  2. Az összegképletek listáját korrigálja a kézzel megadott összegképletekkel, kihagyja belőlük a kézzel megadott szócikkeket.
  3. Generálja a wiki-lapokat.
  4. Lekérdezi a letöltött lapok létrehozási és utolsó módosítási dátumát és az azt végző szerkesztőt.
  5. Statisztikákat készít a vegyületlapokról.
  6. Feltölti a lapokat a Wikipédiára külső szerverre.

A bot működésének fontos alapelve, hogy nem köti meg a szócikkek alakját, vagyis nem korlátozza a szerkesztőket, hanem alkalmazkodik hozzájuk. (Ez minden botra érvényes kellene legyen.)

Az összegképletes lapok összegyűjtése szerkesztés

Kémiai sablonok:

A shell script neve kembot, ami egyúttal le is kérdezi a lapokat (lásd alább). A lapok összegyűjtésére a sablhiv scriptet hívja a wikiscript csomagból a sablonra hivatkozó lapok lekérdezésére.

  • Bemenő fájl: –
  • Eredményfájl: kembot.mol.

A fenti sablonokra hivatkozó laplisták lekérdezése párhuzamosan történik, így a futási idő néhány másodperc. A sávszélességet maximálisan kihasználja, a processzor- és diszkigény minimális, .

Az összegképletek lekérdezése szerkesztés

Ezt is a kembot csinálja. A lapok lekérdezésére a wikiszoveg scriptet hívja a wikiscript csomagból, a lap parszolására és az összegképlet kinyerésére a kemia nevű C-programot.

Az eredmény ilyen alakú:

Aceton-peroxid
Acibenzolár|C=7|N=2|S=2|O=1|H=4

Az első esetben a parszer nem talált összegképletet a lapon, több különbözőt talált, vagy az összegképletet nem tudta értelmezni.[2] Az utóbbi leggyakoribb okai:

  • polimer
  • kristályvíz
  • töltés/ion
  • több képlet, vagy ugyanaz a képlet többféle alakban.

A kémiai sablonok lehetővé teszik több eltérő összegképlet megadását, és ezt a wiki parszere nem veszi észre, mert

  • többféle paraméterben adhatók meg: Formula, Képlet, kémiai_képlet, chemical_formula. Az összegképlet vegyjel-paraméterekkel is megadható.
  • a három chembox típusú sablon alsablonokat hívhat, melyek szintén elfogadják a fenti összegképlet-paramétereket.

Fájlok:

  • Bemenő fájl: kembot.mol.
  • Eredményfájl: kembot.kepl.

100 Mbit-es hálózatban a futási idő kb. negyed óra. A processzor- és diszkhasználat minimális.

Kézi korrekció szerkesztés

Két célja van:

  • a parszer által fel nem ismert összegképlet megadása
  • szócikk elhagyása az összegképletek közül. Pl. a Béta-receptor-blokkolók hívja a Drugbox sablont, ezért a gépi listában benne lesz, viszont az összegképlet értelmetlen egy vegyületcsoportra (melyek ráadásul kémiailag nem is hasonlóak).

A korrigálni kívánt információt egy kézzel szerkesztett fájlban kell megadni (kezi.txt), melynek alakja azonos a gépi eredményfájléval. Az értelmezésben annyi különbség van, hogy a kezi.txt képletet nem tartalmazó szócikkeit törölni kell a gép által megtaláltak közül.

A kézi lista elsőbbséget élvez a géppel előállítottal szemben. Ha egy szócikk mindkét listában benne van, a gépiből töröljük. Ez lehetővé teszi a gépi összegképlet felülbírálását is (bár remélhetőleg erre nem lesz szükség).

A feladat tehát két lista összefésülése, melyet az olista script végez. Paraméterként megadható a gépi összegképletlista arra az esetre, ha az más módon (pl. a bot régebbi, a wikidump-ot használó verziójával) állt elő.

  • Bemenő fájl: kezi.txt, kembot.kepl.
  • Eredményfájl: hufo.kepl.

A futási idő néhány másodperc erős diszkhasználattal. Hálózatot nem, processzort minimálisan használ.

Az összegképlet lapok előállítása szerkesztés

A bot jelenlegi negyedik változata az összegképletek listáját és az összegképlet nélküli lapok listáját generálja (lásd alább), de azokat sem tölti fel sehová. A két lap mindössze a változások kézi ellenőrzését könnyíti meg. A későbbi változatokból teljesen ki fog maradni ez a lépés.

Az összegképletek fent leírt alakú listájából wiki-lapokat állít elő egy külön könyvtárba. A gyakori elemekről külön lap készül, melynek minden vegyülete tartalmazza az elemet.
  • Bemenő fájl: welem.txt, wiki.txt, hufo.ali, hufo.kepl.
  • Eredményfájlok a huwiki alkönyvtárban.
A script neve okepl, mely a wtabl és wossz nevű (majdnem azonos) C-programot hívja. Az erőforrásigény elhanyagolható.

Statisztika szerkesztés

Lekérdezi a szócikkek létrehozási és módosítási idejét. Évenkénti/havonkénti statisztikát csinál.

Az időket és a szerkesztőket a kemcre script kérdezi le, melynek futási ideje kb. megegyezik a szócikkek lekérdezési idejével. Bemenete az olista eredményfájlja: hufo.kepl. Az eredményfájl neve kemcre.ido. A többi statisztikai szkriptnek ez a bemenete. A kemcre.ido átalakítja kimenetét wikilappá is kemcre.wiki néven.

  • kemcrestat: kilistázza a paraméterként megadott időnél később készült összegképlet lapokat, és kiírja havonként külön táblázatban.
  • különböző atomok táblázata
  • kemcreev: az összegképletes szócikkek száma évenként, 2003 óta.
  • kemcreszerk: a legtöbb összegképletes szócikket létrehozó szerkesztők listája, ugyancsak 2003 óta.
  • kemstat: a statisztika weblap összeállítása a fenti táblázatokból

A lapok feltöltése szerkesztés

A wikibot szkripttel, a bot futásának utolsó lépéseként, hajnali 5 óra körül.

A bot előző programváltozatai szerkesztés

Új kémiai szócikkek évenként
Darab Év
1 2003
5 2004
119 2005
115 2006
362 2007
293 2008
139 2009
166 2010
244 2011
149 2012
321 2013
195 2014
105 2015
20 2016
28 2017
60 2018[3]

A bot első változata wikidump-ból töltötte fel a Wikipédia összes lapját a botot futtató gépre. A letöltés kézzel történt munkaállomásra.

A második változat futás közben töltötte le a vegyületlapokat. A bot átköltözött az állandóan bekapcsolt raspberry pi szerverre. A kimenet nem változott, a futtatás függetlenné vált a wikidump időpontjától.

A harmadik változat az összegképlet lapok helyett külső szerverre tölti fel az összegképleteket, ahol az kereshető.

E fejezet további része a második változat utolsó, Wikipédiára feltöltött futási eredményét tartalmazza.

Az összegképletek összegyűjtésekor a bot az alábbi szócikkekbe ír:

A robot által feltöltött lap Hivatkozás a fő névtérből
Összeglista Vegyületek összegképlete
Összegtáblázat Vegyületek összegképlet-táblázata
Berilliumvegyületek Berilliumvegyületek összegképletének listája
Brómvegyületek Brómvegyületek összegképletének listája
Céziumvegyületek Céziumvegyületek összegképletének listája
Fluorvegyületek Fluorvegyületek összegképletének listája
Foszforvegyületek Foszforvegyületek összegképletének listája
Jódvegyületek Jódvegyületek összegképletének listája
Kalciumvegyületek Kalciumvegyületek összegképletének listája
Káliumvegyületek Káliumvegyületek összegképletének listája
Kénvegyületek Kénvegyületek összegképletének listája
Klórvegyületek Klórvegyületek összegképletének listája
Magnéziumvegyületek Magnéziumvegyületek összegképletének listája
Nátriumvegyületek Nátriumvegyületek összegképletének listája
Nitrogénvegyületek Nitrogénvegyületek összegképletének listája
Rubídiumvegyületek Rubídiumvegyületek összegképletének listája
Talliumvegyületek Talliumvegyületek összegképletének listája
Vasvegyületek Vasvegyületek összegképletének listája
nincs összegképlet Vita:Vegyületek összegképlete

A botot Gyimhu üzemelteti. Az utolsó futás ideje 2018. szeptember 26.

Statisztikák szerkesztés

A különböző atomok száma[4][3][5]
Atom Vegyület
0 56
1 8[6]
2 467
3 816
4 698
5 215
6 61
7 1
Összesen: 2322[3]
A legaktívabb szerkesztők[3]
472 Szerkesztő:Gyimhu
336 Szerkesztő:Glikol
258 Szerkesztő:Tsch81
247 Szerkesztő:Szaszicska
195 Szerkesztő:Xxxx00
171 Szerkesztő:Cacattila
105 Szerkesztő:PhHG
42 Szerkesztő:Tetrodotoxin
26 Szerkesztő:Dorgan
23 Szerkesztő:Csd

Jegyzetek szerkesztés

  1. Ha az internetszolgáltató UPC és a Wikipédia szerverei is úgy gondolják. A leggyakoribb hálózati hiba a UPC-nél a névfeloldás, a Wikipédiánál az 503-as http-hiba.
  2. Az aceton-peroxid esetén a dimer és a trimer képlete is meg van adva a szócikkben, ugyanabban a paraméterben, amint ez a hibakimenetben is látható.
  3. a b c d 2018. szeptember 26-ig.
  4. Pl. a Na2CO3 különböző atomjainak száma 3. 0 esetén nincs összegképlet, a 2 neve biner.
  5. A különböző atomok szerinti vegyületek listája lekérdezhető az Összegképlet lapról úgy, hogy a keresőfeltételek közül csak az atomszámot töltjük ki.
  6. Ciklopropatrién, Difoszfor, Dikén, Gyűrűs_ózon, Hexazin, Oktaazakubán, Ózon, Tetranitrogén

További információk szerkesztés

Kapcsolódó lapok szerkesztés