Ez az írás bizonyos fokig folytatása annak a korábbi cikknek1, amelyben a gyakorló osztályozó szemszögéből elemeztem a könyvtárosok által röviden régi2, illetve új ETO-nak3 nevezett kiadás sajátosságait, és felvetettem annak lehetőségét, hogy az alapvetően prekoordinált ETO posztkoordinációs vonásait erősítsük. Az előző cikkre érkezett néhány megjegyzésre4 külön webhelyen válaszolok, itt csak utalok rájuk, most pedig megvizsgálom a posztkoordináció esélyeit. Meggyőződésem, hogy az ETO egy külön eljárással a jelenleginél alkalmasabbá tehető a posztkoordinált visszakeresésre, mégpedig az eredeti jelzetek számait alkalmazva. Áttekintem az ezzel kapcsolatos problémák főbb típusait, mindegyikre javaslok egy-egy algoritmust, ezeket konkrét példákkal és BASIC kódrészletekkel illusztrálom, és megmutatom, hogyan lehetne ezt a megközelítést számítógépes programok láncolatával megvalósítani, a jelenlegi online katalógusok átalakítása nélkül, külső segédlet formájában. (A példaprogramok az interneten is kipróbálhatók, illetve onnan letölthetők.)

Lehetséges-e posztkoordináció az ETO-ban?

Az előző cikkemhez fűzött megjegyzésében Prokné Palik Mária felhívta a figyelmemet arra, hogy most is lehetséges az önálló jelentéssel bíró jelzetrészek szerinti keresés. Persze, de kérdés, hogy mit tekintünk szemantikailag önállónak. Álláspontom szerint mindaz önálló elemnek tekinthető, amelyet az osztályozás folyamatában a könyvtáros elemként felhasznál a komplex jelzetek összerakásához (így a „nem önálló” speciális alosztások is). Ungváry Rudolf szerint az ETO prekoordinált használata nem magából a rendszerből fakad, mert mellérendelő módon is lehet használni (pl. azonos dokumentumot több jelzettel is le lehet írni). Annak természetesen sosem volt technikai akadálya, hogy az önálló elemeket visszakereshetővé tegyük. A korlátozottan közös („nem önálló”) alosztásoknál azonban nincs meg ez a szabadság, ezeket szigorú szabály szerint össze kell olvasztani a főtáblázati számmal. Ezenkívül ha két témakör metszetéről van szó, a külön kezelést akadályozza az úgynevezett előnyszabály is: „Amit le lehet írni egyetlen, pl. főtáblázati számmal, azt ne fejezzük ki két vagy több jelzet összekapcsolásával. Amennyiben egy fogalom a táblázat analitikus-szintetikus, facetta elemzéses tulajdonságai miatt különböző jelzettipusokkal is kifejezhető, úgy az alábbi felsorolásban, a sorrendben előbb álló jelzettípus használatát kell előnyben részesíteni.” (új kiadás, 1/1. kötet, 7. oldal). A sorrend: főtáblázati számok, kötőjel nullás alosztások, kötőjel számos alosztások, és utána jönnek az egyéb közös alosztások. Az alosztások mellérendelő módon való használatához tehát meg kell sérteni az ETO deklarált jelzetszervezési szabályait.
Én a tárgyszó jelleg előretörését egy hierarchikus rendszerben hibának tartom, mert ellene megy a mélységi tagolásnak. Ungváry szerint a használóknak nem is kellene a jelzetekkel találkozniuk. De ha nem látható a számszerű jelzetek által kifejezett hierarchia, akkor nincs mélységi tagolás, és áttérhetünk a szigorúan betűrendes keresésre. Én ebben a cikkben azzal foglalkozom, hogy hogyan lehetne az ETO-jelzeteket a maguk számszerűségükben posztkoordinált keresésre alkalmassá tenni.

Az ETO reformja és a posztkoordináció

Az ETO alapvetően egy prekoordinált osztályozási rendszer, de rendelkezik bizonyos posztkoordinációs lehetőségekkel. Ez utóbbiak az általánosan közös (nyelvi, formai, földrajzi, népi, idő szerinti) alosztások külön kezelhetőségéből, továbbá a kettőspontos viszonyítással és a plusz jellel összekapcsolt jelzetek önálló használatából adódnak. A 378(439) felsőoktatás Magyarországon helyett vagy mellett létezhet egy külön 378-as jelzet és egy külön (439)-es jelzet, amit a posztkoordinált keresés során összekapcsolva ugyanahhoz a dokumentumhoz jutunk.
Az igazi nehézség a korlátozottan közös (speciális) alosztásoknál jelentkezik. Ezek olyan jelzetelemek, amelyeknek csak egy bizonyos jelzettartományon belül értelmezhetők. Két feltétele van annak, hogy ezeket is lehessen posztkoordinált módon használni:

  1. Világosak legyenek az illető alosztás alkalmazhatóságának határai (ettől eddig, kivéve a kivételeket).
  2. Az adott elem tartalma nem változhat attól, hogy a meghatározott jelzettartományon belül hol alkalmazom.

Ha ebből a szempontból vizsgáljuk meg az ETO régebbi és újabb verzióját, azt tapasztaljuk, hogy a régi verzió világosabban kijelölte az alkalmazási tartományt, mint az új verzió, és az alosztásokban szereplő elemek tartalma is egységesebb volt. Lényeges eltérés, hogy az új verzióban egyes alosztásoknak a jelzettartomány más részeiben konkrét, csak az adott területen érvényes tartalmuk lett, amelyekről külön meg kellett állapodni.
Az új verzióban az 53.081 tartalma: mértékegységek, az 531.71 hosszúságmérés (mindkét szám szerepel az 1990-es kiadásban is), ebből automatikusan következne, hogy az 531.71.081 a hosszúságmérés mértékegységei. Ez így is van, ámde egy megjegyzés szerint ezt az új jelzetet 1996 júliusában bevezették (I/1.394. old.). Ha a jelentésátvitel automatikus, a jelzetet nem kell bevezetni. Ha be kell vezetni, akkor a jelentésátvitel nem lehet automatikus. Egy hasonló példa: A 364.612(1-22)-787.6:725.835 látszólag egy sok elemű komplex jelzet, valójában azonban egyetlen tartalmat fed: „vidéki térség ellátása közösségi központból, faluházzal” (I.2.546.), és ezt a jelzetet 2000. decemberében vezették be. Egyezményes jelzet: a 355.12(1-52) is: katonai szolgálat a gyarmatokon, amit ugyanakkor hagytak jóvá (I.2.546).
Ha az ehhez hasonló kombinációknak egyedi jelentéseket tulajdonítunk, akkor nyilván nem felelhetnek meg a fent említett 2. követelménynek (a tartalmi azonosságnak). Számomra problematikus például a Ne-Waza dzsudót kifejező kombináció is: 796.853.23.012.564 – ahol a cselgáncs jelzetét a 796.012.564 talajtechnikával párosítják. Ha a felhasználónak tudnia kell a talajtechnikáról, akkor nem kell tudnia a sportág nevét, ha tudja a nevet, nem kell tudnia a talajtechnikai összetevőről. Itt ugyananarról a túlbonyolításról van szó, mint amit már a korábbi cikkben idéztem az akvarelltechnika kapcsán. Egy posztkoordinált keresés során a következő módon kellene összeállítani a keresőkérdést: 7.02 művészeti technikák ÉS -035.67 színezékek ÉS 667.621.2 víz alapú kötőanyagok ÉS 66.066.3 emulzió megszüntetése. Túl sokat várunk el a felhasználótól, és túl keveset adunk érte.
A pont nullás alosztások korlátozottan közösek, azaz egy jelzettartományon belül másutt is alkalmazhatjuk azokat, ugyanazzal a jelentéssel. A 621.0 szaknál azonban felhívják figyelmünket arra, hogy ezen belül „a .0 nem korlátozottan közös alosztás, hanem a főtáblázati szám része, ezért nem kapcsolható más 621… számhoz.” (I.2.70.) A 616-008.3/.5 jelzetnél arra figyelmeztetnek, hogy ezeknek az alosztásoknak a „kifejtése az egyes szerveknél különböző” (I.2.30). Ugyanezt találjuk a 616-002 esetében (általában gyulladás, olykor hurut, fekély, esetleg gyermekágyi láz) és a 616-008.8-nál (testnedvek, fogkő, béltartalom, hüvelyváladék, sőt epe).
Gyakori, hogy ahol a fő definíciót találjuk, ott csak szerény részletezés van, viszont az egyes részterületeken belül ugyanazoknak a jelzetelemeknek a használatával történik a további kibontás. Például 57.02 a biológiai és etológiai folyamatok, működés, kölcsönhatás a környezettel, az 572.02 külső tényezők hatása az emberre és emberfajtákra, de itt további részletezés is van: 572.021 éghajlat, 572.021.1 akklimatizálódás (I.1.492).
A 37-es szakban a 37.08 az utolsó alosztás, de a 378-ban van 378.09 is. A nyelvi alosztások elején nincs  ’03, de a részletezésben: =124’03 vulgáris latin, a =133.1’03 pedig angol-normann. (Ha komolyan vesszük a posztkoordinációt, akkor az alosztásokat egységesen fogalmazzuk meg, és csak az indexbe vesszük fel a szakirodalomban is használatos, konkrétabb megnevezéseket mint szinonímákat.)
Az analógiák időnként el-elcsúsznak. A 37.046.4 a második vizsgaszint fölött, ez a felsőoktatásban így módosul: 378.046.4 az első fokozat utáni tanulmányok, posztgraduális képzés (I.1.344). A 37.058 magán- vagy alapítványi iskolák, a 379.8.058 a szabadidős elfoglaltságok állami vagy önkormányzati támogatása (I.1.339. és 345. old.)
Az 556.042 megfigyelési módszerek, az 556.332.4 kőzetek, sziklaképződmények áteresztőképessége. Ehhez képes túlságosan konkrét az 556.332.4.042 tartalma: próbaszivattyúzások. (I/1.481.)
A 314.96 jelentése: nemek szerinti lakosság-összetétel. Ha hozzátesszük a -055.1 általánosan közös alosztást (férfiak), akkor nem a férfiak lakosságon belüli aránya lesz a jelentése (ahogy várnánk), hanem a „férfiak arányának túlsúlya a lakosságban”. (És ugyanez a nők tekintetében.)
Egyes esetekben az alosztások használata erőltetettnek tűnik. A 355.1.089”701” jelzet jelentése: volt ellenállók, partizánok. A 355.089 partizánok, a 355.1 haderő általában, de a ″701″ nem szerepel az idő szerinti alosztásban. Nyilván a ″711″-ről van szó (bár ilyen tétel nem szerepel a hivatalos hibajegyzékben), annak jelentése ugyanis előidő, elődök, előfutárok. Innen lehetne levezetni a volt partizánokat, de a jelentésátvitel nem nyilvánvaló. A mai partizánoknak ugyanis minden valaha élt partizán az elődje (a 19. századtól kezdve), „volt partizánokon” pedig azokat a személyeket értjük, akik korábban partizánok voltak, de ma nem azok – és egyáltalán nem képezik a haderő részét. Még abszurdabb a 355.1-058.862″364″, a hadiárvák jelzete (I/1.316). A 355.1 (mint láttuk) haderő általában, a -058.862 árvák, a ″364″ a háború ideje. Kérdés, hogy a háború alatt árvaságra jutott személyeknek mi közük van a haderőhöz. Miközben mind a régi, mind az új kiadásban önként adódik a lehetőség a következő két jelzet együttes alkalmazására: -058.65 háborús események áldozatai és -058.862 árvák. Bár az előző kombináció szerepel a példák között, a névmutatóba nem vették be, így a felhasználó vagy a könyvtáros csak nagy szerencsével bukkanhat rá.
Ezek a jelenségek arra utalnak, hogy az ETO visszatérőben van az osztályozási rendszerek fejlődésének egy olyan korábbi szakaszába, amelyre az volt jellemző, hogy az egyes jelzetek önállóak, de vannak közöttük bizonyos hasonlóságok. Másképp fogalmazva: a nem önálló speciális alosztások hasonlósága pusztán kompozíciós elv. Mivel ily módon csökkent, egyes esetekben pedig meg is szűnt ezeknek az alosztásoknak az önazonos jelentése, növekedett a jelzetek egyezményessége. Sok, a gyakorlatban használt jelzetkombináció lényegét tekintve egyedi, és emiatt külön fel kellene venni a betűrendes mutatóba
Mivel az ETO új verziójában meglehetősen sok a fentiekhez hasonló eset, az általam javasolt automatikus jelzetszétválasztás kiterjesztését az új ETO kiadás alapján alkotott jelzetekre nem látom indokoltnak. Mivel az osztályozó könyvtáros a jelzetalkotás során úgyis az elemekből rakja össze a komplex jelzetet, annyi lenne a plusz feladata, hogy ezeket az elemeket önállóan is bevigye. Az új ETO jelzeteknek a posztkoordináció számára való alkalmassá tétele tehát részben a minden lehetséges változatot magában foglaló (és lehetőleg az Interneten is elérhető) index, részben pedig az osztályozó könyvtáros feladata lenne. Nincs késő. Amennyire én tudom, az ETO új változata szerint jelenleg még egyik hazai könyvtárban sem osztályoznak.
A régi ETO szerint elkészült jelzetekkel azonban lehet és kell is kezdeni valamit. Szerencsére azok az alosztások alkalmasabbak a jelzetek elemekre bontására. A régi ETO jelzeteket tehát – megfelelő algoritmusok segítségével – felbonthatjuk, és önálló jelentéssel bíró elemeiket posztkoordináltan kereshetővé tehetjük. Ezáltal nagy mértékben növekedhetne a tájékoztatási értékük.

Kell-e prefixum?

Már az előző cikkemben is felvetettem, hogy az „igazi” (eleve az adott témakörre vonatkozó) jelzeteket el kellene választani azoktól a jelzetelemektől, amelyeket kifejezetten a posztkoordinált keresés céljára alkottunk meg. Egy prefixum alkalmazását javasoltam, amelyet egyelőre egy százalék jel testesít meg, de persze minden más karakter vagy karakterkombináció is szóba jöhet.
Nem is biztos, hogy szükség van ilyen prefixumra. Maga az ETO is ajánl olyan, posztkoordinációra is alkalmas kettőspontos viszonyításokat, amelynek elemei együtt mást jelentenek, mint külön-külön. Például a művelődéspolitika leírására a régi ETO a 008:32 jelzetkombinációt javasolja: „kultúra” és „politika” – holott nyilvánvaló, hogy egyik témakör sincs benne kimerítően kifejtve. Ezzel szerintem megtévesztjük azokat, akik csak az első vagy csak a második témakörre kíváncsiak, monografikus mélységben (nem csak részként, összetevőként). Ezt az érvet azzal szemben is fel lehet vetni, amely szerint a jelzetelemek szerinti keresés most is lehetséges, csak külön sorba kell azokat írni. Ebben az esetben is ésszerű lenne érzékeltetni, hogy összetevőről van szó, amit az én javaslatomban a prefixum egyértelműen jelezne. (Ez talán a tezauruszokra is érvényes. Szerintem a monografikus keresésnek és a résztéma keresésének formai megkülönböztetése egyfajta „higiéniai” kérdés.) Egy másik megoldás az lehetne, ha a monográfiákat különböztetnénk meg. Van is erre egy formai alosztás: a (035.3), de tudomásom szerint nem alkalmazzák, és ha nincs a jelzetben, utólag igen körülményes lenne hozzátenni (ehhez újra kézbe kellene venni az eredeti dokumentumot).
Az egyértelműség okán még egy másik eszközt is felvetek: ez a kettős prefixum, ami azt jelezné, hogy az adott témakörnek nemcsak hogy a monografikus tartalmára nem utalunk, hanem maga a jelzet is csak átvitt értelemben, valamiféle irányultság kifejezésére szolgál. Ilyen a bűnügyi novellák szűkebb tartalmának jelzése a bűnügyi regény analógiájával. Ilyenkor az egyszeres prefixummal megkülönböztetett 82-312.4 (bűnügyi regény) alkalmazása sem lenne helyes, ezért a %%82-312.4 az indokolt. Elbeszélés, de egyben kvázi-bűnügyi regény is. Úgy tűnhet, hogy ez túlbonyolítása a problémának, de a javaslatot érdemes megfontolni. Kísérletet is végezhetnénk (szakdolgozati téma lehet) annak kiderítésére, hogy a monografikusnak látszó résztémák összekapcsolása a posztkoordinált keresésben mennyi téves találatot produkálna.

Programok láncolata

Elképzeléseim szerint a korábbi ETO jelzeteket nem egyetlen program dolgozná fel, hanem programok egész láncolata, oly módon, hogy az egyik program kimenete lenne a következő program bemenete. A főprogram a legegyszerűbb problémákat oldaná meg, a nehezebbeket pedig az alprogramoknak továbbítaná. A főprogramon belüli főmodul azt állapítaná meg, hogy a jelzetsor élén álló elem milyen típusú, és ez alapján az illetékes modulhoz irányítaná, az leválasztaná a sor élén álló elemet, feldolgozná, a sor többi részét pedig visszautalná a főmodulnak, amely újrakezdené a sorelemzést (a sor maradékával).
Gondolatmenetemet megpróbálom egy jól áttekinthető programnyelv, a BASIC (azon belül a Borland-féle Turbo BASIC) segítségével illusztrálni. A kódrészleteket tartalmazó mintaprogramok forráskódja és futtatható verziója a cikk végén jelzett webhelyekről letölthető és kipróbálható. Magában a cikkben azonban csak a kódok lényegi részleteit közlöm. A főmodul alapszerkezete a BASIC-ben:

IF LEFT$(Sor$,1)>=”0” AND LEFT$(Sor$,1)<=”9” THEN FotablazatiSzam
IF LEFT$(Sor$,1)>= „A” AND LEFT$(Sor$,1)<= „z” THEN NevAlosztas
IF LEFT$(Sor$,2)=„(0” THEN FormaiAlosztas
IF LEFT$(Sor$,2)=”(=” THEN NepiAlosztas
IF LEFT$(Sor$,1)=”(„ AND MID$(Sor$,2,1)>”0” THEN FoldrajziAlosztas
IF LEFT$(Sor$,2)=”-0” THEN IsmervAlosztas
IF LEFT$(Sor$,1)=”=” THEN NyelviAlosztas
IF LEFT$(Sor$,3)=”.00” THEN SzempontAlosztas
IF ASC(LEFT$(Sor$,1))=34 THEN IdoAlosztas  ’ az idézőjel ASCII kódja

A modulok már külön alprogramokba is kerülhetnek. Ezek közül elég a legegyszerűbbet bemutatni. A honismereti alprogram lelke a következő kódrészlet:
Maradek$ = RIGHT$(Fotablazat$,LEN(Fotablazat$)-4)
’a főtáblázati szám a 908. sztring levágása után
FoldrajziElem$ = ”(” + Maradek$ + ”)”
(Mintaprogram: 908.EXE)
Mivel a honismereti főtáblázati szám analógiásan magában foglalja a földrajzi alosztás számjegyeit, ezt a földrajzi elemet onnan ki kell menekíteni, így a pont utáni részt az erre kiokosított program már magától levágja és zárójelek közé  teszi.. A fenti programrészlet alapján például a 908.439 honismereti jelzet kimenete az alábbi lesz: %908 és %(439). Mivel mindkettő problémamentes, egyből a kész tételek állományához íródnak hozzá.

Korlátozottan közös alosztások

A következőkben megpróbálom elkülöníteni a régi ETO-ban szereplő korlátozottan közös alosztások típusait, és felvázolom a kezelésükre kidolgozható algoritmusokat. A jelenlegi jelzetek szétbontása során figyelembe kell vennünk az egyes alosztások alkalmazásának szabályait. Ha megvan a definíció, az ettől fogva már önálló deszkriptorként is használható. Ezt tekintem „törzs” jelzetnek.

Pont nullás alosztás

Ideális esetben annak a számtartománynak az elején, ahol alkalmazni lehet, egy magyarázatot is találunk az adott alosztás érvényességi körét illetően. Az itt található meghatározást kell figyelembe venni, azaz a specifikus főtáblázati szám mellett ez lesz a törzs jelzet, a konkrét alosztással együtt. Jegyezzük meg: a törzs jelzet az, ahol az illető alosztás definícióját megtaláltuk. Olyan pont nullás alosztás is lehet, amelynél nincs explicit magyarázat, és nincs megjelölve az alkalmazási tartomány. Ilyen esetben feltételezhetjük, hogy érvényessége nem terjed túl azon a szakon, amelyben találtuk.
Formalizálva: Azonosítjuk a jelzet törzs részét. A jelzetet elvágjuk az elválasztójelnél (ez itt a pont). Ami az elválasztójel után van, az az alosztás (a pontot is beleértve), ami előtte, az az alapjelzet. Kimentjük az alapjelzetet, majd a törzset az alosztással.
Példa: 303.725.064. A törzs: 303, az alosztás: .064, az alapjelzet: 303.725.  Kimentendő elemek: %303.725 és %303.064. Modellelemzés a társadalomtudományokban, illetve számítógépes társadalomtudományi módszerek.
Torzs$=”303”
Jelzethossz=LEN(Jelzet$)
AlosztasPoz=INSTR(Jelzet$,”.0”)
Alosztas$=RIGHT$(Jelzet$,Jelzethossz-AlosztasPoz+1)
Alapjelzet$=LEFT$(Jelzet$,AlosztasPoz-1)
(Mintaprogram: 303.EXE)

Kötőjeles alosztás

A kötőjel után nullánál nagyobb számjegy következik. (A kötőjel nullás alosztás másik eset, azt lásd később.)
Formalizálva: Megkeressük az adott jelzetre érvényes szabályt. Azonosítjuk a jelzet törzs részét, levágjuk a jelzetet az elválasztójelnél (ez itt a kötőjel). Ami az elválasztójel után van, az az alosztás (beleértve a kötőjelet), ami előtte, az az alapjelzet.  Kimentendő elemek: az alapjelzet, valamint a törzs és az alosztás.
Példa: 546.11-14. Törzs: 54. Alapjelzet: 546.11. Alosztás: -14. Kimentendők: %546.11 és %54-14. Hidrogén, illetve folyékony állapot. (Felvethető, hogy miért kell kimenteni a folyékony állapotot mint elemet. Azért, hogy minden ilyen tulajdonságú anyagot külön is keresni lehessen.) A kódrészlet:
Torzs$=”54”
Jelzethossz = LEN(Jelzet$)
AlosztPoz=INSTR(Jelzet$,”-”)
Alosztas$=RIGHT$(Jelzet$,Jelzethossz-AlosztPoz+1)
Alapjelzet$=LEFT$(Jelzet$,AlosztPoz-1)
(Mintaprogram: 546.EXE)
Általánosan közös alosztáson belül is előfordulhat kötőjeles alosztás. A földrajzi alosztásokon belül például ilyen alosztások jelzik az égtájakat és az egyéb elméleti kategóriákat. Ebben az esetben is ugyanígy vágjuk ketté a jelzetet, csak mindkettő esetében figyelembe vesszük a földrajzi alosztás jelleget (azaz helyreállítjuk a zárójeleket).
Formalizálva Megállapítjuk, hogy ez kötőjeles földrajzi alosztás. A kötőjel előtti rész az alapjelzet, a kötőjellel kezdődő rész a korlátozottan közös alosztás, amelyet az egyes szám  és a kötőjel vezet be. Kimentendők: az alapjelzet, valamint a korlátozottan közös alosztás.
Példa: (4-11). Az alapjelzet: (4), a korlátozottan közös alosztás: -11, amelynek standard alakja: (1-11). Kimentendők: %(4) és %(1-11). Európa és keleti égtáj. (A különválasztás itt is kérdéses lehet, de itt az alternatíva minden egyes földrajzi egységnek minden égtájjal való kombinálása a táblázatban, illetve a betűrendes mutatóban. Ezzel szemben a szétválasztás biztosítja minden kombináció visszakereshetőségét, amennyiben van ilyen dokumentum.) A kódrészlet:
IF INSTR(FoldrAlosztas$,”-”)>0 THEN
Alapjelzet$=LEFT$(FoldrAlosztas$,INSTR(FoldrAlosztas$,”-”)-1)+”)”
Torzs$=”(1-”
KorlKozAlosztas$=RIGHT$(FoldrAlosztas$,INSTR(FoldrAlosztas$,”-”))
(Mintaprogram: 411.EXE)
Meg kell jegyezni, hogy bizonyos földrajzi jelzeten belüli alosztásnak látszó jelzetek önállóan  is megállnak. Például: (1-922) az Északi-sarkvidék természeti tájai, (1-926) Afrika természeti tájai vagy (1-929.9) Hawaii-szigetek. Ezeket érdemes egyszerű földrajzi jelzeteknek tekinteni. Ilyenkor külön alapjelzet nincs, és aligha képzelhető el például a (4-926) jelzet: Afrika természeti tájai – Európán belül.

Kötőjel nullás alosztás

Ilyenek az általános ismérvek szerinti (eredetileg nem közös) al¬osz¬tások. Ezeket minden baj nélkül, önállóan mentjük ki. Sajnálatos módon azonban a 616-os szakon (patológia) belül is előfordulnak, speciális tartalommal. 616-03 a betegségek lefolyásának, kezelésének különböző formái, miközben a -03 mint általánosan közös alosztás az anyagok szerinti jellemzőket tartalmazza. A -05 a személyek szerinti általánosan közös alosztás, de a 616-05 alatt ezt konkretizálják, a két számsor tehát nem ugyanazzal a jelentéssel bír. A -06-os, -07-es és -09-es alosztás csak a patológián belül fordul elő. A 617 és 618 szakokon belül ez megismétlődhet. Mindezeket célszerű belefoglalni egy táblázatba, amely a kivételeket sorolja fel. Ha egy ilyen kötőjel nullás alosztásnak van speciális értelme egy adott szakban, akkor azt nem általánosan közös, hanem korlátozottan közös alosztásként kezeljük.
Formalizálva: Ha a főtáblázati szám szerepel a kivételek között, akkor korlátozottan közös alosztásként kezeljük, a megfelelő szabályt követve. Ha nem szerepel a kivételek listáján, akkor általánosan közös alosztásról van szó, és a már ismert eljárást követjük. Azonosítjuk a jelzet törzs részét, elvágjuk a jelzetet az elválasztójelnél (ez itt a kötőjel). Ami az elválasztójel után van, az az alosztás (beleértve a kötőjel nullát), ami előtte, az az alapjelzet. Kimentendők: az alapjelzet, illetve a törzs az alosztással.
Példa: 616.23-036. A jelzettartomány szerepel a kivételek listáján. Törzs: 616, főtáblázati szám: 616.23, alosztás: 616-036. Kimentendők: %616.23 és %616-036. Légcső és hörgők, valamint a betegségek lefolyása.
A programnak először is meg kell vizsgálnia a „kivételek listáját”, és ha az adott jelzettartomány szerepel benne, akkor ezt a tényt jeleznie kell (Problema=1). Majd
IF INSTR(Jelzet$,”-”)>0 AND Problema =1 THEN
Torzs$=”616”
Jelzethossz = LEN(Jelzet$)
AlosztasPoz = INSTR(Jelzet$,”-”)
Alosztas$=RIGHT$(Jelzet$,Jelzethossz-AlosztasPoz+1)
Alapjelzet$=LEFT$(Jelzet$,AlosztasPoz-1)
END IF
(Mintaprogram: 616.EXE)
Ellenpélda: 615.014.2-032.3. Mivel a 615 (gyógy¬szertan) nem szerepel a kivételek között, a Problema változó nem lesz 1, így a kötőjel nullás alosztást az általánosan közös alosztások táblázatában kell megkeresnünk. Kimentendők: %615.014.2 és %-032.3. Gyógyszerkészítmények összetétele és elkészítése, illetve széntartalmú ásványok. És az egészségügyön kívül természetesen ilyen sima eset lenne például a 685.8-036 jelzet. Kimentendő: %685.8 és %-036. Játékcikkek, valamint és gumi- és műanyagok. (Itt felesleges a BASIC példa, hiszen a javasolt fő program a kötőjel nullás alosztásokat általánosan közös alosztásként eleve leválasztja a főtáblázati számról, ha a jelzettartomány nem szerepel a kivételek listájában.)
Kötőjel nullás alosztások szerepelnek a nyelv és irodalom területén is, pl. 802/809-02 a nyelvek fejlődési szakaszai. Ez egy meglehetősen bonyolult analógia (az analógiás jelzetképzésre még visszatérek). A nyelvtudományi eredeti jelzet: 800.2. A 820/899-nél (nemzeti irodalmak) található magyarázat szerint ugyanez használható az irodalmak korszakai esetében is.
Formalizálva: Megkeressük az alapjelzet végét, és azonosítjuk az aktuális alosztást. Az alapján megkeressük az analóg nyelvtudományi jelzetet. Kimentendők: az alapjelzet és a nyelvtudományi jelzet.
Nyelvtudományi példa: 802.0-022. Alapjelzet: 802.0, alosztás: -022, amit analógiásan vissza kell vezetnünk a 800.22 jelzetre. Ennek törzse: 800. Kimentendők: %802.0 és %800.22. Angol nyelv, valamint korai nyelvfejlődési szakasz.
Torzs$=”800”
Jelzethossz = LEN(Jelzet$)
AlosztasPoz = INSTR(Jelzet$,”-”)
Alapjelzet$=LEFT$(Jelzet$,AlosztasPoz-1)
Alosztas$=RIGHT$(Jelzet$,Jelzethossz-AlosztasPoz+1)
Alosztas$=RIGHT$(Alosztas$,LEN(Alosztas$)-1)
’a -0 levágása
Alosztas$=”.”+Alosztas$
’a pont hozzátétele az alosztás elejéhez
Fotablazat$=Torzs$+Alosztas$
(Mintaprogram: 802.EXE)
Irodalmi példa: 820-022. Alapjelzet: 820, al¬osztás: -022, amit analógiásan ugyancsak a 800.22-re vezetünk vissza. Kimentendők tehát: %820 és %800.22. Angol irodalom és korai nyelvfejlődési szakasz. Itt ugyanaz a törzs jelzet, az alapjelzet pedig az eredeti főtáblázati szám kötőjel előtti része. A BASIC program (820.EXE) a fentiek miatt szóról szóra megegyezik.

Közbeékeléses alosztás

Ebben az esetben a főtáblázati szám és a logikailag hoz¬zá tartozó al¬osztás közé be van ékelve egy másik, általánosan közös al¬osztás. Ilyen előfordulhat a művészeti stílusoknál: 7.034 (reneszánsz, barokk, rokokó, koloniál művészet), ahol az alábbi megjegyzést találjuk: „Alosztályozás (4/9), továbbá a következő számok csatolásával, pl. 7.034(45)6 Olasz manierizmus. Velencei iskola.”  (350. old.) A művészeti stílusok a 7-es főosztály elején vannak, és ott még egy további megjegyzést is találunk: „(Az alant felsorolt, 0-s korlátozottan közös alosztások a 77 és a 796/799 osztályokban nem alkalmazhatók.)”.
Formalizálva: Ha a főtáblázati szám nem szerepel a kivételek között, akkor azonosítjuk az alapjelzetet és a közbeékelt (itt:földrajzi) alosztást, valamint a hátravetett jelzetelemet. Kimentendők: az alapjelzet, a közbeékelés, valamint a törzs jelzet az alosztással és a hátravetett elemmel együtt.
Példa: 75.035(439)5. Az alapjelzet: 75, a közbeékelés: (439), a törzs: 7, az alosztás: .035, a hátravetett elem: 5, az alosztás a hátravetett elemmel együtt (szokás szerint ponttal tagolva): 7.035.5. Kimentendők: %75, %7.035.5 és %(439). Festészet, eklektikus stílus, Magyarország.
A számítógépes programnak először is el kell döntenie, hogy az adott jelzetre vonatkozik-e a szabály: Utána elkülönítjük az egyes elemeket és hozzáírjuk őket a kész tételek állományához:
Torzs$=”7”
Jelzethossz = LEN(Jelzet$)
AlosztasPoz = INSTR(Jelzet$, ”.0”)
Alapjelzet$=LEFT$(Jelzet$,AlosztasPoz-1)
Maradek$=RIGHT$(Jelzet$,Jelzethossz-AlosztasPoz)
NyitoZarojel = INSTR(Maradek$,”(”)
Alosztas1$=LEFT$(Maradek$,NyitoZarojel-1)
Maradek2$=RIGHT$(Maradek$,LEN(Maradek$)-NyitoZarojel+1)
ZaroZarojel = INSTR(Maradek2$,”)”)
FoldrAlosztas$=LEFT$(Maradek2$,ZaroZarojel)
Hatravetett$=RIGHT$(Maradek2$,LEN(Maradek2$)-ZaroZarojel)
Alosztas$ = ”.” + Alosztas1$ + ”.” + Hatravetett$
END IF
(Mintaprogram: 750.EXE)
A közbeékeléses alosztás még furább változata fordul elő az irodalom szakon belül. A szakjelzet után név alosztás van, majd utána egy számjegyes, vagy pont nullás alosztás. Ezek kezelésére két megoldás lehetséges. Vagy a személy neve mellett felvesszük a 82…A/Z.01/.09 alosztást, illetve a 82…A/Z 1/.7 alosztást (mindkettő esetében tehát azt a jelzetet, ahol a magyarázat van), vagy ezt a jelzetrészt egyszerűen nem vesszük figyelembe, és csak a fontosabb jelzetrészt mentjük ki.
Példák: 894.511 Arany János.03 (Arany János műveinek fordításai). Kimentendők: %894.511 (magyar irodalom), %Arany János (a név al¬osztás) és %82…A/Z.03 (egyes szerzők műveinek fordításai). Ugyanígy: 894.511 Arany János 1 (Arany János összes művei). Kimentendők: %894.511, %Arany János és %82…A/Z 1 (a szerző összes művei). Az egyszerűsített eljárás szerint csak két elemet mentünk ki: %894.511 és %Arany János. Felvethető még ezeknek a hátravetett elemeknek az író neve utáni felsorolása is, de annak megértéséhez mindenképpen táblázat kell, és nehéz lenne elmagyarázni az olvasónak, hogy miben különbözik az Arany János 1 az Arany János 7-től. (Az OSZK katalógusában találtam példát a főtáblázati számnak a pont nullás alosztással való összevonására is.)

Szempont szerinti alosztás

Ez a típus az új kiadásban már nem szerepel, és a régi kiadásban sem önálló, a táblázat instrukciói szerint (régi kiadás, 44. old.) kizárólag csoportosításra használhatjuk, és önállóan nem is kereshető vissza. Ha azonban posztkoordinációra törekszünk, ezt a korlátozást kénytelenek vagyunk figyelmen kívül hagyni, és ezeket a jelzetelemeket önálló deszkriptorként alkalmazni. (A korlátozás valószínűleg a cédulakatalógus korszakára vezethető vissza, számítógépes környezetben nem látom értelmét.)
Formalizálva: Megkeressük az elválasztójelet (ez itt a pont nulla nulla), ami előtte van, az a főtáblázati szám. Ami utána van, az a szempont szerinti alosztás (beleértve a pont nulla nullát). Mindkét elemet külön mentjük  ki.
Példa: 681.3.004.14. A .004.14 szempont szerinti alosztás, az előtte lévő szám főtáblázati szám. Ennek  megfelelően a kimentendő tételek: %681.3, valamint a %.004.14 (szempont szerinti alosztás). Magyarul: adatfeldolgozó gépek, számítógépek, illetve használat, alkalmazás.
Mivel ez egy könnyen azonosítható alosztástípus, már a főprogram le tudja választani, nem kell hozzá külön alprogramot írni.
Van azonban itt egy speciális eset is. A .000-hoz ponttal kapcsolhatunk egy főtáblázati számot, például a .000.34 jelentése: jogi szempontból. Ezt úgy tehetjük alkalmassá a posztkoordinációra, hogy főtáblázati számként értelmezzük. Példa: .000.34. Kimentendő: %34. Jogtudomány. A pont nulla nulla nulla önmagában üres kategória, azt nincs értelme visszakereshetővé tenni.
Fotablazat$=RIGHT$(Jelzet$,LEN(Jelzet$)-5)
(Mintaprogram: 000.EXE)

Kiegészítéses alosztás

Jellemzője, hogy egy főtáblázati számhoz egy bizonyos szabály szerint egy másik főtáblázati számot lehet hozzákapcsolni. Nem könnyű felismerni, mert nem vezeti be semmiféle külön jelölő karakter, kizárólag a táblázatban elrejtett magyarázat ad útbaigazítást. Ilyen a 372.8, az egyes tantárgyak jelzete. Ehhez hozzáfűzhetjük az adott témakör főtáblázati számát. Mivel 53 a fizika, ebből 372.853 a fizika mint tantárgy.
Formalizálva: Ha a főtáblázati szám egy bizonyos jelzettel kezdődik (ez esetben ez a 372.8), az az alapjelzet, az utána lévő jelzetet pedig főtáblázati számként kell értelmezni. Mivel a pont nullás főtáblázati szám miatt elcsúszhat a pont, be kell iktatni egy eljárást a főtáblázati szám három jegyenként való újratagolására (ezt a BASIC programban szubrutinok végzik). Kimentendők: az alapjelzet és a kiegészítés mint főtáblázati szám.
Tantárgyi példa: 372.894.39. Törzs: 372.8, a főtáblázati szám nyersen: 94.39, a pontok áthelyezése után 943.9. Kimentendők: %372.8 és %943.9. Tantárgyak, valamint Magyarország történelme.
Alapjelzet$=”372.8”
Jelzethossz = LEN(Jelzet$)
Alapjelzethossz = LEN(Alapjelzet$)
IF LEFT$(Jelzet$,Alapjelzethossz)=Alapjelzet$ THEN
Lenyeg$=RIGHT$(Jelzet$,Jelzethossz-Alapjelzethossz)
Nyers$ = Lenyeg$
GOSUB Pontok
’a pontokat áthelyező szubrutin, bemenete Nyers$, kimenete Kesz$
Lenyeg$ = Kesz$
GOTO ProgramVege
END IF
(Mintaprogram: 3728.EXE)
Itt a pontokat áthelyező szubrutin lehet érdekes. Első menetben (PontKi) úgy másoljuk át a Nyers$ sztring karaktereit a Sima$ sztringbe, hogy a pontot kihagyjuk. A második menetben (PontBe) megnézzük, hogy az átmásolt karakter sorszáma (v) osztható-e hárommal, és ha igen, beszúrjuk mögéje a pontot  (IF v MOD 3=0 THEN Kesz$=Kesz$+”.”). Mivel a nulla 3-mal osztva nem ad maradékot, továbbá az utolsónak átmásolt karakter is lehet 3-mal osztható, a Kesz$ sztring elejéről és végéről is le kell vágni az esetleges pontot.
Szakfőiskolai példa: 378.633. A 378.6 a szakfőiskolák jelzete, ezt levágva 33-at kapunk. Kimentendők: %378.6 és %33. Szakfőiskolák, közgazdaságtan. A mintaprogramban (3786.EXE) csak az alapjelzet különbözik.

Számvégződéses alosztás

A régi ETO kiadásokban találunk ilyeneket, például a 669-es szakon belül (kohászat). Ha egy egyszerű (nem képzett) főtáblázati szám végén 1-es áll, az az arról a témakörről szóló összefoglaló műveket jelenti, a 3-as az ércek kohósítására, a 4-es a tisztítására, finomítására utal. Ha a főtáblázati szám végén 5-ös számjegy áll, azt jelenti: ötvözet. (Az erre vonatkozó útmutatást az 1993-as kiadás 317. oldalán találjuk.) 669.1 vas és  acél, 669.15 vasötvözetek, 669.3 réz, 669.35 rézötvözetek, és így tovább.
Formalizálva: Azonosítjuk a törzs jelzetet, azonosítjuk a fém saját jelzetét, majd az utolsó számjegyet. Kimentendők: a fém jelzete, valamint a törzs a számvégződéses alosztással. (Természetesen minden számvégződéses alosztásra külön algoritmust és külön alprogramot kell kidolgoznunk, de ugyanerre a kaptafára.)
Példa: 669.35. Törzs: 669, a fém önálló jelzete 3, a számvégződés 5 (ötvözet). Kimentendők: %669.3 és %669…5.  Réz és ötvözetek.
Torzs$=”669”
Vegzodes$=RIGHT$(Jelzet$,1)
Maradek$=LEFT$(Jelzet$,LEN(Jelzet$)-1)
Egyed$=RIGHT$(Maradek$,LEN(Maradek$)-LEN(Torzs$)-1)
Fem$=Torzs$+”.”+Egyed$
(Mintaprogram: 669.EXE)

Aposztrófos alosztás

Ezeket többnyire olyankor használjuk, amikor két azonos főtáblázati számhoz kapcsolódó korlátozottan közös alosztást kombinálunk Tiszta aposztrófos alosztást találunk többek között a pártok és mozgalmak többes irányultságánál.
Formalizálva: Azonosítjuk a törzs jelzetet (ez a 329) és az egyes alkotóelemeket, az aposztróf utáni számjegyeket egyenként hozzákapcsolva a törzs jelzethez. Kimentendők: a rekonstruált jelzetek.
Példa: 329.11’17. Törzs: 329. Az egyes irányzatok: 11 és 17. Kimentendők: a rekonstruált jelzetek: %329.11 és %329.17. Konzervatív irányzat, nemzeti irányzat. Felvetődhet, hogy a két irányultság külön kezelése mellett nem lenne-e szükség az eredeti, kombinált jelzetre is. Ez is lehetséges, de csak akkor, ha szerepeltetjük az indexben (itt: konzervatív-nemzeti irányzat).
Néhány részlet BASIC-ben:
Jelzethossz=LEN(Jelzet$)
Torzs$=”329” ’pártok, mozgalmak
Torzshossz=LEN(Torzs$)
Minta$=”’” ’aposztróf
Szetszedendo$=RIGHT$(Jelzet$,Jelzethossz-Torzshossz-1)
Itt szükség van egy iterációra (egy feltételtől függő ismételt végrehajtásra) ahhoz, hogy az előre nem ismert számú aposztrófos hozzáfűzéseket kezelni tudjuk. Az egyes elemek azonosítása után mindig megnézzük, hogy vége van-e a jelzetnek, vagy újabb aposztróf következik. Mivel a ciklusváltozó menet közben rövidül, a ciklust csak gyalogosan tudjuk imitálni.
Ciklus:
ap = INSTR(Szetszedendo$,”’”)
’a következő aposztróf pozícioja
IF ap=0 AND Szetszedendo$>”” THEN
’ha nincs aposztróf, maga a maradék az egyed
Egyed$=Szetszedendo$
Maradek$=””
GOTO ElemAzonositas
END IF
IF ap>0 THEN
’ha van aposztróf, az addig tartó rész az egyed
Egyed$=LEFT$(Szetszedendo$,ap-1)
’az aposztróf előtti karakterig
Ehossz=LEN(Egyed$)
Maradek$=RIGHT$(Szetszedendo$,LEN(Szetszedendo$)-Ehossz-1)
GOTO ElemAzonositas
END IF
Az elemazonosító részlet állítja össze a kimentendő sort:
ElemAzonositas:
Komplex$=Torzs$+”.”+Egyed$
PRINT ”Kimenteni: ”;RekordID$+Prefix$+Komplex$
IF Maradek$=”” THEN GOTO UjSor
IF Maradek$>”” THEN
Szetszedendo$=Maradek$
GOTO Ciklus
(Mintaprogram: 329.EXE)
A 669-es szakban az ötvözetek esete annyiban nehezebb, hogy ott egyszerre fordulhat elő számvégződéses alosztás és aposztróf. Ha egy fémnek egy másik fémmel való ötvözéséről van szó, akkor a könyvtáros leírja az első fém ötvözetes számát (például a 669.35-öt, azaz a rézötvözetet), majd aposztróffal hozzáilleszti azokat a jelzetelemeket, amelyek az ötvözet további fém-alkotóelemeire utalnak. A réznél ez a 3-as szám (a 669 utáni számjegy), a cinknél az 5-ös (a 669.5-ből), az ónnál pedig a 6-os (a 669.6-ból). Az első ötvözet még teljes formában szerepel (ugyanúgy, mint a fenti példában az első pártirányzat), a továbbiak azonosító jelzetelemei aposztróffal kapcsolódnak ehhez.
Formalizálva: Azonosítjuk a számvégződés fajtáját (itt: ötvözet). Azonosítjuk az egyes alkotóelemeket (az aposztróf utáni számjegyet hozzákapcsolva a törzs jelzethez). Kimentendők: a számvégződéses alosztás fajtája és az egyes fémek rekonstruált jelzete (az ötvözetet jelző számjegy nélkül).
Példa: 669.35’5’6. Törzs: 669. Kimentendők: %669…5, %669.3, %669.5, %669.6. Ötvözetek, réz, cink, ón.
Kombinálhatjuk a pártoknál látott aposzt¬róf¬kezelést az ötvözeteknél alkalmazott számvégződés-azonosítással. Először megállapítjuk, milyen számvégződésről van szó, utána megnézzük, mi az első elem, majd a ciklussal kimentjük mindegyik összetevő rekonstruált jelzetét.
Jelzethossz=LEN(Jelzet$)
Torzs$=”669”
Maradek$=RIGHT$(Jelzet$,Jelzethossz-4)
ap=INSTR(Maradek$,”’”) ’ az aposztróf pozíciója
ElsoElem$=LEFT$(Maradek$,ap-1)
Vegzodes$=RIGHT$(ElsoElem$,1)
Tipus$=Torzs$+”…”+Vegzodes$
ElsoElem$=LEFT$(ElsoElem$,LEN(ElsoElem$)-1)
’ a végződés levágása
Fem$=Torzs$+”.”+ElsoElem$
Szetszedendo$=RIGHT$(Maradek$,LEN(Maradek$)-ap)
GOTO Ciklus
(Mintaprogram: 669AP.EXE)

Analógiás alosztás

Egyes fogalmak részletezése nem az adott osztályban történik, hanem egy másik helyen kifejtett részletezést veszünk át. (A szabályt persze meg kell találnunk valahol.)
Az 56 őslénytan alatt a régi ETO-ban mindössze néhány „saját” jelzetet találunk. A paleobotanika rendszertanánál az 582 növényrendszertanhoz utasítanak bennünket, a paleozoológia rendszertanánál pedig az 592/599 állatrendszertan a minta. Ez azt jelenti, hogy a táblázatunkban nem szereplő jelzeteket a megfelelő modern jelzet analógiája szerint kell értelmeznünk. És ha van utána egy pont nullás alosztás is, akkor azt az 56-os számtartományon belül kell megértenünk, nem pedig a modern jelzeten belül (ahova csak az analógia miatt ruccantunk át).
Formalizálva: Azonosítjuk a törzset, az analógiás jelzetet, valamint az esetleges korlátozott alosztást hozzákapcsoljuk a törzs jelzethez. Kimentendők: ezek a jelzetelemek.
Példa: 568.1.01. A jelzet a nem részletezett 562/569 jelzettartományba esik (paleozoológia), ez lesz az alapjelzet. A  törzs: 56. A táblázatban található magyarázat az 592/599-es jelzettartományba vezet, ezek szerint 598.1 az analógiás jelzet. A .01 egy korlátozottan közös alosztás (az eredeti osztályon belül). Kimentendők ezek szerint: %562/569, %598.1 és %56.01. A paleozoológia rendszertana, hüllők, valamint őslénytani elméletek, fosszíliák stb.
Az őslénytani jelzeteket kezelő alprogram először az esetleges alosztást ellenőrzi:
Jelzethossz=LEN(Jelzet$)
AlosztasPoz=INSTR(Jelzet$,”.0”)
Torzs$=”56”
IF AlosztasPoz>0 THEN
Maradek$=LEFT$(Jelzet$,AlosztasPoz-1)
Maradekhossz=LEN(Maradek$)
Alosztas$=RIGHT$(Jelzet$,Jelzethossz-Maradekhossz)
Jelzet$=Maradek$
END IF
Aztán eldönti, hogy a jelzet a növényekre vagy az állatokra vonatkozik-e, és az ennek megfelelő szubrutinba ugrik.
IF LEFT$(Jelzet$,3)=”561” THEN
GOSUB Paleobotanika
GOTO UjSor
END IF
IF Jelzet$ >= ”562” AND Jelzet$ < ”57” THEN
GOSUB Paleozoologia
GOTO UjSor
END IF
A paleozoológiai szubrutin így fest (a már említett pontáthelyező eljárással):
Paleozoologia:
Eredeti$=Jelzet$
Bovitmeny$=RIGHT$(Eredeti$,LEN(Eredeti$)-2)
’levágjuk az 56-ot
UjSzam$=”59”+Bovitmeny$
Nyers$=UjSzam$
GOSUB Pontok ’a pontokat átrendező szubrutin
Jelzet$=Kesz$
RETURN
(Mintaprogram: 568.EXE)
Az egyes nyelveken belül kötőjeles alosztások jelzik a filológiai, nyelvészeti tanulmányokat, pl. -1 helyesírás, ábécé, kiejtés, -5 nyelvtan. Itt azonban van egy külön nehézség: ezeket a kötőjeles alosztásokat ugyanis a 801-ből kell képezni, és a részletezés analógiák segítségével történhet. A -1 megfelel a 801.1 főtáblázati számnak, ahol a 801.15 a kiejtés, 801.18 a rövidítések, ebből adódóan a táblázatban fel nem sorolt -15 alosztás egy adott nyelv kiejtésével kapcsolatos művekre utal. A -18 értelme pedig: rövidítések az adott nyelven. 802.0-15 angol kiejtés, 802.0-18 angol rövidítések. Ugyanígy lesz a 801.56 mondattanból 802.0-56 az angol nyelv mondattana. Tehát mielőtt konkrét jelentést adnánk az adott nyelv jelzetének, tekintetbe kell vennünk a 801-es szakon belüli, részletezőbb analógiákat is.
Formalizálva: Azonosítjuk a főtáblázati számot (a nyelvet). Levágjuk a kötőjel utáni részt, elébe tesszük a 801-es jelzetelemet, a kötőjelet pedig pontra cseréljük.
Példa: 802.0-316.1. A nyelv: 802.0 (angol). A kötőjel eltávolítása után marad: 316.1, a 801 jelzettel és az ott található pont beiktatása után 801.316.1-t kapunk (neologizmusok). Kimentendők: %802.0 és %801.316.1. Angol nyelv, neologizmusok.
A BASIC programrészlet először megkeresi a kötőjelet, aztán átalakítja az alosztást, végül hozzáírja az elemeket a kész tételekhez.
Torzs$=”801”
AlosztasPoz=INSTR(Jelzet$,”-”)
Alosztas$=RIGHT$(Jelzet$,LEN(Jelzet$)-AlosztasPoz)
Nyelv$=LEFT$(Jelzet$,AlosztasPoz-1)
Analogia$=”.”+Alosztas$
(Mintaprogram: 801.EXE)
Sajátosak az állattenyésztésen belüli analógiás kapcsolatok is. Az állati termékeket és a háziállatokat egy aposztrófos kombináció foglalja egybe.
Formalizálva: Azonosítjuk a terméket és a háziállatra utaló jelzetelemet, majd a szabályt követve rekonstruáljuk a háziállat jelzetét.
Példa: 637.5’5. A rekonstruált jelzetek: 637.5 és 636.5. Kimentendők: %637.5 és %636.5. Hús és sertés.
ap=INSTR(Jelzet$,”’”)
IF LEFT$(Jelzet$,3)=”637” AND ap>0 THEN
Termek$=LEFT$(Jelzet$,ap-1)
Maradek$=RIGHT$(Jelzet$,LEN(Jelzet$)-LEN(Termek$)-1)
Allat$=”636”+”.”+Maradek$
END IF
(Mintaprogram: 637.EXE)
A formai alosztásokon belül is vannak ilyen bonyolult analógiás jelzetképzési szabályok, amelyek előírják, hogy egy meg nem nevezett formai alosztást hogyan lehet előállítani. Erre két példát hozok.
A (0.05) alosztás jelentése: dokumentumok a sajátos használói kategóriák szempontjából. Ha a dokumentum könyv, akkor egyrészt a (02) általánosan közös alosztást kell alkalmazni, másrészt a személyi általánosan közös alosztás kötőjel utáni jelzetrészét kell átvenni. Mivel a kötőjel nulla utáni 53.2 jelentése: gyermekek és csecsemők általában, a gyermekkönyvek formai alosztását a táblázatban említett analógiás szabály alapján a (02.053.2)  formai alosztás fogja jelenteni a jelzetalkotásnál. Ugyanez megismétlődhet például a (03)-ban: referenszkönyv gyermekeknek, a (05)-ben és elvileg más formai alosztásokon belül is. A jelzetelemzésnél fordítva járunk el.
Formalizálva:Azonosítjuk a dokumentumtípust: (02), (03), (05) . A pont utáni jelzetrészt különválasztjuk, és személyi alosztásként ábrázoljuk, az ott talált kötőjel nullás formában. Kimentendő: a dokumentumtípus és a személyi alosztás.
Példa: (02.053.2). Dokumentumtípus: (02), személyi alosztás: -053.2. Kimentendők: %(02) és %-053.2. Könyv, gyermekek.
A BASIC program először azonosítja az adathordozót, majd az olvasói kategóriát. Az Elvalasztas változóba a .05 elem helyzete kerül.
Elvalasztas = INSTR(Jelzet$,”.05”)
Adathordozo$ = LEFT$(Jelzet$,Elvalasztas-1)+”)”
Maradek$ = RIGHT$(Jelzet$,LEN(Jelzet$) – Elvalasztas)
Olvasok$ = LEFT$(Maradek$, LEN(Maradek$) -1)
Olvasok$ =”-”+Olvasok$  ’a személyi alosztás kötőjele
(Mintaprogram: 020532.EXE)
Ez egy tiszta megoldás, de talán érdemes lenne ezekkel a kombinációkkal kiegészíteni a táblázatot, és ezeket az indexben külön is feltüntetni: (02.053.2) gyermekeknek szánt könyv,  (05.053.2) gyermekeknek szánt folyóirat, (05.055.2) nőknek szánt folyóirat stb.
A másik példa a formai alosztások táblázatában nem szereplő formák jelzése a zárójel nulla és kettőspont után, a megfelelő főtáblázati szám felhasználásával. Ésszerűnek látszik, hogy itt csak a főtáblázati számra figyeljünk. Az „ilyen vagy olyan formában” jelzetelemnek -  amelynek jele a (0:…)  — nincs önálló tartalma.
Formalizálva: Elvágjuk a formai alosztást a kettőspontnál, és csak az ebből levezetett (zárójel nélküli) főtáblázati számot mentjük ki.
Példák: (0:82-32) regény formájában. Kimentendő: %82-32. Regény. Vagy: (0:930.24) kronológia formájában. Kimentendő: %930.24. Történelmi kronológia. (Ami regény formájában tárgyal valamit, az maga is regény, ami kronológia formájában, az kronológia.)
Fotablazat$=RIGHT$(Jelzet$,LEN(Jelzet$)-3)
Fotablazat$=LEFT$(Fotablazat$,LEN(Fotablazat$)-1)
(Mintaprogram: 08232.EXE)

Nagy analógiás csoportok

Végül meg kell említenünk azt a két nagy analógiás csoportot, amelynek jelzeteit egy-egy alapjelzetből lehet levezetni. Az egyik a nyelvi analógiás csoport. A nyelvtudományi jelzetből képezzük a nyelvi alosztást (ez a dokumentum nyelvét jelenti), továbbá a népi alosztást és az irodalmi jelzetet. A gondot az okozza, hogy bár sok jelzetet az analógiás csoport mindegyik elemében megtaláljuk, más jelzeteket csak kikövetkeztetni lehet. Ebből a szempontból a népi alosztás a leghiányosabb, amelynek jelzeteit többnyire a nyelvi alosztásból, s ha ott is hiányzik, akkor közvetlenül a nyelvtudományi jelzetből kell levezetni. (Az új ETO kiadásban a nyelvtudomány helyett a nyelvi alosztás az, ahol minden nyelv szerepel.)
Formalizálva: A nyelvi analógiás csoportban bármelyik jelzetből előállítjuk a nyelvi azonosítót, ebből a pontok esetleges áthelyezésével és a 80-as szám elébe helyezésével a nyelvtudományi főtáblázati számot, amely analógiaként felhasználható.
Irodalmi példa: 882.6. Kimentendők: %820/899 és %808.26. Nemzeti irodalmak, illetve belorusz nyelv.
NyelviAzonosito$=RIGHT$(Irodalom$,LEN(Irodalom$)-1)
Eredeti$=NyelviAzonosito$
GOSUB PontKi
NyelviAzonosito$=Sima$
Nyelvtudomany$=”80”+NyelviAzonosito$
Sima$=Nyelvtudomany$
GOSUB PontBe
Nyelvtudomany$=Kesz$
(Mintapélda: 8826.EXE.
Egyéb mintapéldák: 8094631.EXE, 946124.EXE és 956.EXE.)
A másik nagy analógiás csoport a földrajz, ahol a földrajzi alosztásból vezethető le a földrajztudomány, a honismeret és a történelem. (Ez utóbbi csoport változott az ETO reformjával. Mindenütt magát a földrajzi al¬osz¬tást használják, a honismeretnél a 908-as alapjelzettel, a földrjaznál a 913-as jelzettel, a történelemnél a 94-es jelzettel kombinálva. De most a korábbi ETO jelzetekről beszélünk.)
Formalizálva: A földrajzi analógiás csoportban bármelyik jelzetből előállítjuk a földrajzi azonosítót, eltávolítjuk a tagolást szolgáló pontokat, átalakítjuk földrajzi alosztássá (a nyitó és záró zárójelek hozzáadásával, illetve a pontok átrendezésével). Kimentendő: a törzs (a történelem, honismeret vagy földrajztudomány jelzete) és a földrajzi alosztás.
Példa: 943.9. Törzs: 9, földrajzi azonosító: 439, ebből a földrajzi alosztás: (439). Kimentendők: %9 és %(439). Történelem, Magyarország.
FoldrajziAzonosito$=RIGHT$(Tortenelem$,LEN(Tortenelem$)-1)
Eredeti$=FoldrajziAzonosito$
GOSUB PontKi
FoldrajziAzonosito$=Sima$
GOSUB PontBe
FoldrajziAzonosito$=Kesz$
FoldrajziAlosztas$=”(”+FoldrajziAzonosito$+”)”
(Mintaprogramok: 9364.EXE, 9087294.EXE, 919612.EXE és
439151.EXE)
Az azonosító kinyerésének fordítottja, az egyes analóg jelzetek szintézise. A cikk végén hivatkozott weboldalakon szerepel egy PHP demo program, amely oda-vissza átvált az analógiás csoportok jelzetei között.
Kérdés, hogy az olvasó fejében is könnyű-e szétválasztani ezeket a jelzeteket alapjelzetre (földrajztudomány, honismeret, történelem) és (földrajzi) alosztásra. Én azt látom ésszerűnek, ha mindkét lehetőséget megadjuk: maradjon meg Magyarország történelme (a régi ETO-ban), és pluszként szerepeljen a történelem, illetve a földrajzi alosztás. Tehát a fenti példában kimentendő lehet még az eredeti jelzet is:943.9.
Az még inkább kérdéses, hogy érdemes-e a nyelvi analógiás csoportot is elemeire szétbontani. Nehéz elképzelni, hogy valaki úgy keresné meg a jakutokkal kapcsolatos nemzetiségi problémákat, hogy nemzetiségi kérdés ÉS jakut nyelv. Ebben az esetben azt tartanám ésszerűnek, ha egy külön program segítségével a nyelvtudományi jelzetekből előállítanánk minden lehetséges nyelvi alosztást, népi alosztást és irodalmi jelzetet, ezeket felvennénk az indexbe, és nem kellene elemeikre szétbontani őket.
Egyes szakokon belül speciális analógiás összefüggéseket is találunk. Az irodalmon belül ilyen a már többször emlegetett példa: az elbeszélések tematikus tagolása a regény tagolásának mintájára. Mindezekre külön szétbontási szabályok létrehozása is lehetséges (ahogy bemutattam), de ésszerűbbnek látszik ehelyett magának a táblázatnak a kiegészítése. Nem az én feladatom eldönteni, hogy melyik út a követendő, én itt csak jelzem a problémát.
Olyan algoritmusokról beszéltem, amelyek a régi ETO-ban használ¬hatók, de sok olyan terület van, ahol a komp¬lex jelzetek auto¬matikus felda¬rabolása az új ETO-ban is mű¬ködne. Az irodalmi műfajok esetében például az alosztások változatlanul megmaradtak, csak az irodalom konkrét jelzete változott., és ez nem érinti az általam javasolt formális technikákat.

A betűrendes indexről

A betűrendes index nélkül az egész rendszer nem működik megfelelően. Jelenleg ennek az indexnek több hibája van. Bizonyos jelzetkombinációk nem szerepelnek benne, különösen a példaként megadott kombinációk hiányoznak. Ilyenek: az állampolgári ismeretek mint tantárgy, a színházlátogatás mint szabadidős tevékenység, a sertéshús mint élelmiszeripari termék, a gyermek számára kiadott könyvek (van „gyermekkönyvek”, de az a 087.5-ös főtáblázati számra utal), mint ahogy az új ETO mutatójában is hiába keressük a korábban emlegetett hadiárvákat vagy a volt partizánokat. Néhol indokolatlannak tűnő jelzetképzésekbe botlunk. Ilyen a légi utasbiztosítás, ahol a biztosításügyet a levegőhöz társítják, nem a légi közlekedéshez: 368.97(203). Ha az új ETO-nak a még ennél is esetlegesebb, egyezményes, tárgyszó jellegű jelzeteire gondolunk, világos, hogy jelentősen bővíteni kell az indexet.
Persze figyelembe kell venni, hogy az ETO alapvetően egy egyirányú tagolást valósít meg, amelyből következik, hogy az „egyéb” kategóriának is megvan a létjogosultsága, vagy hogy nem szükséges megismételni a magasabb fogalom nevét az alárendelt fogalomnál. Én annak vagyok a híve, hogy legyen minden ETO megnevezés egyértelmű és egyedi. Az olyan átfogó témaköröket, amelyek megnevezésében előfordulnak a későbbi részletezésben is szereplő megnevezések, vagy nem kellene megnevezni az összefoglaló címben, vagy egyetlen kifejezésként (ahelyett, hogy ezeket ponttal elválasztva, egymástól függetlenül sorolnánk fel)..
Nézzük például a 36-os osztályt: Szociális gondoskodás és gondozás. Lakásigények. Fogyasztói érdekek. Biztosításügy.
Helyette az alábbi tagolást javaslom:
36 Szociálpolitika
364.4 Szociális segítségnyújtás fajtái
365 Lakáskérdés
365.4 Lakásigények
366 Fogyasztói érdekek
366.5 Fogyasztói érdekvédelem
368 Biztosításügy
369 Társadalombiztosítás
Minden további, a jelenlegi táblázatban felsorolt szinonimát (pl. szociális gondoskodás) az indexbe kellene felvenni.
Mivel az általam elképzelt index egylépcsős lenne, minden gyakorlatban előforduló variánsról közvetlenül a megfelelő jelzethez vezetné a keresőt, ezért nem lennének benne lásd, csakis lásd még hivatkozások. A 323.12-es és 323.13-as jelzeteket például az alábbi indextételek fejeznék ki:
Antiszemitizmus 323.12(=924)
Antiszemitizmus lásd még Mozgalmak egyes rasszok vagy  nemzetiségek ellen
Cigányellenesség 323.12(=914.99)
Cigányok elleni mozgalmak 323.12(=914.99)
Cionizmus 323.13(=924)
Cionizmus lásd még Mozgalmak egyes rasszok vagy nemzetiségek érdekében
Mozgalmak egyes nemzetiségek ellen 323.12
Mozgalmak egyes nemzetiségek érdekében 323.13
Mozgalmak egyes rasszok ellen 323.12
Mozgalmak egyes rasszok érdekében 323.13
Mozgalmak egyes rasszok vagy nemzetiségek ellen 323.12
Mozgalmak egyes rasszok vagy nemzetiségek érdekében 323.13
Mozgalmak egyes rasszok érdekében 323.12
Nemzetiségek elleni mozgalmak 323.12
Nemzetiségek érdekében szervezett mozgalmak 323.13
Rasszista mozgalmak negatív előjellel 323.12
Rasszista mozgalmak pozitív előjellel 323.13
Rasszok elleni mozgalmak 323.12
Rasszokat támogató mozgalmak 323.13
Zsidóellenesség 323.12(=924)
Igaz, hogy ezáltal az index nagyon felduzzadna, de egyrészt mit érdekli ez a használót, másrészt a számítógépes adatbázisban sokkal több elfér, mint egy papír kiadású mutatókötetben.
Megfontolandó az ETO indexnek egy tárgyszavas rendszerrel való összeolvasztása. Az OSZK számára kidolgozott tezauruszban5 szerepelnek az adott deszkriptorhoz tartozó ETO jelzetek. Még a korlátozottan közös alosztásoknak azon előfordulására is gondoltak, ahol a definíciójuk megtalálható. Megvannak az ETO általánosan közös alosztásainak megfelelői is (kunok mint népi alosztás, kőkorszak mint idő alosztás, fénykép mint formai alosztás, Nyugat-Európa mint földrajzi alosztás), viszont nem találtam meg a szerintem külön is kezelhető nem önálló alosztásokat (szempontok, általános ismérvek). A tezauruszba felvett kifejezéseket kulcsszóként posztkoordinált keresésre is fel lehet használni, ez elsősorban alkalmazási kérdés, és az adott online katalógus képességeitől, szerkezetétől függ. Az OSZK online katalógusában a tárgyi kulcsszó is visszakereshető (a MARC rekordban a 650-es mező). Hankiss Elemér Csapdák és egerek című kötetét például megtalálhatjuk a következő tárgyi kulcsszavak segítségével: társadalmi változás, belpolitika, gazdaságpolitika, ezredforduló (több kulcsszó beírására nincs lehetőség). A földrajzi név (651-es mező): Magyarország, de a keresési lehetőségek között nem találtam olyan rubrikát, amelybe bele lehetne írni a földrajzi nevet.
A tárgyszavas megközelítés kiküszöbölhetetlennek tűnő hátránya a mélységi tagolás hiánya. A tezauruszok ugyan jelzik a fölé- és alárendelt fogalmakat, de ez meglehetősen elméleti és absztrakt – szembeállítva az ETO jelzetek egyszerű és vizuális hierarchiájával. Akármilyen jövő is vár a könyvtári osztályozásra, kár lenne a hierarchikus rendszerek mélységi dimenzióját elvetni csak azért, mert az ETO jelenlegi formájában és alkalmazási módjaiban még nem alkalmazkodott a posztkoordináció követelményeihez.

Számítógéppel

Ezek után megkísérelhetjük felvázolni az ETO jelzetek (és ezen belül a korlátozottan közös alosztások) posztkoordinált visszakeresésre alkalmassá tételének egy lehetséges útját. Magának a kódnak a kidolgozása függ az alkalmazandó számítógépes nyelv sajátosságaitól. Eddig mindenütt a BASIC-ről beszéltem, de lehet C, C++ vagy bármely más programnyelv is, a megfelelő változtatásokkal ugyanúgy fog működni.
A jelenlegi jelzetek feldolgozásához gyakorlati okokból több egyszerűsítést javaslok:

  1. Nem nyúlunk bele egyik könyvtár online katalógusába sem, hanem egy külön listával dolgozunk, amelyet az adatbázisokból exportáltunk. (Minden valamirevaló adatbázis-kezelő rendszer képes a rekordok egyes részeinek, mezőinek szelektív exportjára.) Ennek a megközelítésnek előnye, hogy a – rendszeresen megismételt – szelektív export után a posztkoordinált keresésre alkalmas eszköz külön segédletként használható, előállításával a jelenlegi rendszer semmit sem veszítene, viszont sokat nyerhetne – tájékoztatási értékben.
  2. Az input listánk minden sora két részből áll: az adott jelzethez tartozó könyvtári azonosítóból és egy ETO jelzetből. (Mivel a rekordazonosító egy rendszeren belül azonos hosszúságú, egyszerűbbnek látszik a jelzetek elé tenni, így mindegyik sor érdemi része egy bizonyos oszlopban kezdődik. Ez ebben a kísérleti fázisban ésszerűbbnek tűnik, mintha adatbázis-szerkezetet hoznánk létre. De ha ezzel a külön listával több tájékoztatási feladatot akarunk megoldani, akkor fel lehet venni a szerzőt, címet és egyéb azonosításra alkalmas adatelemet, ami a teljes bibliográfiai rekordig is bővíthető, akkor pedig elkerülhetetlen az összetettebb szerkezet.) Hozzá kell tenni, hogy az egy könyvtáron belül érvényes rekordazonosító helyett használhatnánk a könyvazonosító számokat is (ISBN). Ebben az esetben a posztkoordinált visszakeresés révén a könyvesboltok és antikváriumok listáiban is meg tudnánk találni a keresett dokumentumokat.
  3. A főprogram beolvassa az említett lista egy-egy sorát, és megpróbálja feldolgozni. Amit már az első lépcsőben sikerül feldolgozni, az rögtön bekerül a kész fájlok állományába, a rekordazonosítóval és a prefixummal együtt. Amit nem tud a saját algoritmusaival feldolgozni, az egy „megemésztetlen jelzetek” jellegű fájlba íródik ki (prefixum nélkül, de az eredeti azonosítóval), amit egy másik program, egy alprogram próbál majd feldolgozni. Ezek a programok egy láncolatot alkotnak, de lehetséges lenne ezeknek az alprogramoknak a fő programba való integrálása is. A választott megoldás függ a programozói ambíciótól és a rendelkezésre álló számítástechnikai kapacitástól.
  4. A kimeneti tételek soronként két részből állnak: a megfelelő azonosítóból és a posztkoordinált keresésre alkalmas egyetlen elemből. Az elemek szerint közvetlenül is lehet keresni, de bármely két elem összekapcsolásával megállapítható, hogy van-e közös azonosítójuk. Ha van, a megtalált dokumentum megfelel a keresési kritériumoknak. A kimeneti fájl tehát felfogható egy olyan segédletnek, amely már most, a kísérleti szakaszban is elősegítheti bizonyos adatbázisrekordok posztkoordinált visszakeresését a feldolgozott tételek tekintetében.

A fentiekhez hozzáfűzhetjük, hogy a jelenlegi könyvtári szoftverek számára az jelentené a legkisebb megrázkódtatást, ha maga a posztkoordinált visszakeresés is a rendszeren kívül, egy külön adatbázisban zajlana. Azt használva megállapíthatnánk, hogy mely ismérvek mely dokumentumokban vannak meg együttesen, és azoknak a dokumentumoknak az azonosítója szerint keresnénk meg a találatokat a katalógusba (vagy az ISBN adatbázisban).
Az általam elképzelt input fájl szerkezete – az OSZK online katalógusából vett jelzetekkel – nagyjából így festene. (A számítógépes feldolgozáshoz készített minta (INPUT.TXT) eleje az Amicus rekordazonosítókkal:
000000054936 568.19(02.053.2)
000000239046 669.017:543.42
000000554379 908.439 Ságújfalu
000000580675 008:323(439)”197/198”(082)
000000674296 541.123.34:669.35’26’296.017.1
(…)
Azonosítóként ISBN számokat is használhatunk. De mivel az ISBN azonosítók hossza az évek során változott, szóközökkel ki kell párnázni a régieket. A bemeneti lista ISBN verziójának (ISBN.TXT) egy részlete:
(…)
963-86664-4-7         930.8(=945.11)(089.3)
963-87000-1-7         681.3.004.14
963-9484-90-3         327.5(5-011)
978-963-06-8987-8     894.511-14.032
978-963-07-9378-0     820-322.4=945.11
978-963-09-5661-1     598.1
(…)

Helyi rekordazonosító, vagy ISBN?

A könyvtárak saját rekordazonosítójának használata mellett szól a találatok zökkenőmentes összekapcsolása a helyi online katalógussal (például felesleges találatnak minősíthetők a helyben meg nem lévő dokumentumok). Az ISBN előnyei ezzel szemben: nem kötődik könyvtári állományokhoz, nemzetközileg is egységes, továbbá, hogy a Google révén a felhasználók által kedvelt felületen is elérhetők.

A számítógépes feldolgozás mechanikája

Ahogy fentebb utaltam rá, a főprogram végezné el a legnagyobb volumenű munkát: az egyszerű jelzetelemek azonosítását és különválasztását. Az alosztás nélküli (és nem analógiásan képzett) főtáblázati számok és az általánosan közös alosztások (amennyiben belül sem tartalmaznak korlátozottan közös alosztásokat) külön-külön kerülnek a kész visszakereső elemeket tartalmazó kimeneti fájlba, annak a rekordnak az azonosítójával együtt, amelyhez tartoznak. Az ebben a munkamenetben fel nem dolgozott elemek adódnak tovább a következő alprogram számára. Ezek tehát már az eredeti rekordokban szereplő jelzettöredékek lesznek, de végig megtartják a rekordazonosítójukat, hiszen annak segítségével lehet eljutni a forrásdokumentumokhoz.
Minden program három adatfájlt kezel: a feldolgozandó (input) állományt (a BASIC programban a #1-es csatorna), a sikeresen feldolgozott tételek állományát (a #2-es csatorna), valamint a további feldolgozást igénylő, problematikus tételek állományát (a #3-as csatorna). Az egyik program problematikus tételeket tartalmazó kimeneti állománya lesz a következő program bemenete, miközben a sikeresen feldolgozott elemek állománya fokozatosan bővül. (A program haladásának követhetősége érdekében a mintaprogramok egy negyedik csatornát is megnyitnak, amelyen keresztül egy naplófájlba írják, mi történt a program belsejében. Erre egy olajozottan működő, éles programban már nincs szükség.)

A főmodul logikai váza

Megnyitjuk a feldolgozandó fájlt olvasásra, valamint a feldolgozott tételeket és a további feldolgozást igénylő fájlokat hozzáírásra. A BASIC programunkban ez így történik:
OPEN inputfile$ FOR INPUT AS #1
OPEN feldolgozottak$ FOR APPEND AS #2
OPEN problematikusak$ FOR APPEND AS #3
Beolvassuk a feldolgozandó fájl egy sorát, megállapítjuk a beolvasott sor hosszát és elraktározzuk a beolvasott sorban szereplő azonosítót.
Elemezzük az aktuális sort. A sor elejének elemzése alapján – ahogy láttuk – a sor a megfelelő modulhoz kerül.

Az egyes feldolgozó modulok szerkezete

A karaktereket egyenként megvizsgálva megkeressük a vizsgálandó elem végét.. Ha ebben a programrészben feldolgozhatatlan jelenséggel találkozunk, akkor ezt  a problémák mutatójával jelezzük (például: Problema = 1). (A főtáblázati számok esetében ez történik, ha számvégződéses alosztásokat észlelünk, illetve ha az adott jelzet szerepel az analógiákra utaló „kivételek jegyzékében”. Ezeket külön alprogramnak kell feloldania.). A problémák mutatójának értékétől függően a jelzet vagy a feldolgozott, vagy a további feldolgozást igénylő (problematikus) tételek állományához íródik hozzá. A kimentett karaktersorozattal rövidül a sor, majd újrakezdődik a sorelemzés a maradék sorban lévő elemekkel. Ha szimpla vagy dupla kettősponttal, illetve plusz jellel összekapcsolt jelzetekkel találkozunk, azokat szétszedjük, és külön-külön dolgozzuk fel. Ugyanígy járunk el a zárójel nulla kettőspont segítségével képzett formai alosztások esetében is a megfelelő alprogramban: egyszerűen a formai alosztásban szereplő főtáblázati számot mentjük ki. A per jellel összefoglalt jelzeteket egyben tartjuk, mert csak így jelentenek valamit.
A program az output fájlokhoz való hozzáírást szubrutinhívásokkal oldja meg, ezek végrehajtása után a vezérlés visszakerül az adott programrészletbe, onnan pedig visszaugrunk a sorelemzés elejére, hogy megvizsgálhassuk a maradék sort, mindig a pillanatnyi első karaktertől kezdve.
Amikor a feldolgozandó fájl beolvasott sorai véget érnek, bezárjuk a még nyitva lévő fájlokat:
Programmodulokon kívüli feladat az aktuális input fájl kijelölése, félbehagyott folyamatok után a folytatás megszervezése stb. A saját demo programomat egy batch fájl (DEMO.BAT, ill. ISBNDEMO.BAT) vezérli, ez indítja el az egyes alprogramokat, és ezeknek az alprogramoknak kötött sorrendje van. Az első program (a fő program) kimenete a TOVABB1.TXT, ez a második program bemenete, amely létrehozza a TOVABB2.TXT fájlt – és így tovább. A kész tételek állományának neve OK.TXT, ez folyamatosan bővül, ahogy a problémák a feldolgozás menetében sorra megoldódnak. (A valóságban több tucat alprogramra van szükség, a demo csak egy korlátozott számú problémahalmazt dolgoz fel. A megoldás módjai azonban így is jól láthatóak.)

Az automatizálás korlátai

Az ETO következetlen alkalmazásából fakad, hogy a 82-es főtáblázati szám egyszerre jelent irodalomtudományt és világirodalmat, azaz a tartalma nem egyértelmű. Az utóbbinál használhatnánk a (100) földrajzi alosztást. A nemzeti irodalmaknál ugyanígy el szoktuk hagyni a földrajzi alosztást, ha egy adott mű az anyaországban jelenik meg. Például az amerikai irodalomnál feltüntetjük a (73) földrajzi alosztást, de a brit irodalomnál nem tüntetjük fel a (410)-et. Ugyanez érvényes a franciaországi francia, a spanyolországi spanyol stb. irodalmi művekre. Ezek feltehetően a munkaigényes cédulagépelési korszak csökevényei, kiküszöbölésükhöz szükség van emberi beavatkozásra, a folyamat ezek miatt tehát teljesen mégsem automatizálható. A nevek írásában is sok következetlenség van, ezekre a program nehezen tud reagálni – például a (439.151)-ből és a Bp.-ből elő tudja állítani az egységes Budapest nevet, de például a Jókairól nem tudja eldönteni, hogy Mórról vagy Annáról van-e szó. (Ezen az online katalógus segíthetne, amennyiben a neveket eleve a leíró katalogizálók által előállított rekordmezőkben keresné, függetlenül az ETO jelzetbe felvett alfabetikus alosztásoktól.)

Gondolatban

Gondolatban futtassuk a programot, és nézzük meg, mi történne egy adott rekorddal a fő program futtatása során!
Legyen az input fájlból beolvasott első sor:
000002761099 796.032(100)(091)(083.4)      [Címe: Olimpiák, 1896-2008.]
A program először is elválasztja a rekordazonosítót a sor többi részétől. RekordID$=000002761099. Sor$ = 796.032(100)(091)(083.4).
Megkezdődik a sorelemzés. A program megállapítja, hogy a sor a főtáblázati számmal kezdődik, de azon belül talál egy pont nullás alosztást, amit a problematikus tételekhez ír hozzá (a prefixum nélkül): 000002761099 796.032 .
Ezután megrövidül a sor. A maradék: (100)(091)(083.4). A program visszaugrik a sorelemzés kezdetéhez, és elölről kezdi a vizsgálatot.
(100)(091)(083.4)
Az aktuális sor zárójellel és egy nullánál nagyobb számjeggyel kezdődik, ezért ugrás a földrajzi alosztásokat vizsgáló modulba.
Ott a program megkeresi a földrajzi alosztás végét. A kiírandó tétel a rekordazonosítóval és a prefixummal: 000002761099 %(100)
Kiíródik a kész tételek közé. A sor megrövidítése után a maradék: (091)(083.4). Visszaugrás a sorelemzés kezdetéhez, és elölről kezdődik a vizsgálat.
(091)(083.4)
Az aktuális sor zárójel nullával kezdődik, ugrás a formai alosztások moduljába. Meg kell keresni a formai alosztás végét, le kell választani az eredeti sorról, ez lesz a kiírandó tétel, a rekordazonosítóval és a prefixummal: 000002761099 %(091).
A sor rövidítése után a maradék: (083.4). Visszaugrás a sorelemzés kezdetéhez.
(083.4)
Az aktuális sor ezúttal is zárójel nullával kezdődik, ugrás a formai alosztások moduljába. Meg kell keresni a formai alosztás végét. Le kell választani az eredeti sorról, ez lesz a kiírandó tétel, a rekordazonosítóval: 000002761099 %(083.4). Most azonban már nem maradt elemzendő jelzetelem.
A program ekkor oda ugrik vissza, ahol beolvashatja a következő sort a feldolgozandó jelzetek állományából.
Nézzünk egy másik példát! A Közép-Kelet-Európa az amerikai újságírásban című kötet egyik jelzetsora:
000000076056 323(4-11)”1989/199”
Itt a földrajzi általánosan közös alosztásban látunk korlátozottan közös alosztást. A 323 a főtáblázati számok moduljából íródik hozzá a kész tételekhez, és ugyanez történik az idő alosztással az idő alosztások moduljában. A földrajzi alosztás két eleme külön íródik ki. Az elmentendő tételek tehát mind a feldolgozott tételekbe kerülnek, a következő formában:
000000076056 %323
000000076056 %”1989/199”
000000076056 %(4)
000000076056 %(1-11)

A fagyöngyös gyilkosság című, bűnügyi novella-antológia jelzetsora:
000002700076 82-322.4=945.11
Itt az irodalmi műfaji alosztás áttételessége a gond. A sima elem a nyelvi alosztás, de az irodalmi jelzet a problémákhoz kerül, hiszen az alapprogram nem tudja kezelni a 82-32 és a 82-312.4 között fennálló analógiát, ezt a feladatot majd egy külön alprogram végzi el, a programok láncolata keretében. A feldolgozott tétel: 000002700076 %=945.11, a további feldolgozást igénylő, problematikus tételek állományába kerülő jelzet pedig: 000002700076 82-322.4.
Mit fog csinálni az irodalmi műfajokat feldolgozó alprogram? Először is azonosítja a 82-32 műfaji alosztást (elbeszélések), majd a 82-312.4 (bűnügyi regény) analógiájára létrehozza a %%82-312.4 meta-alosztást is (azzal a jelentéssel, hogy „bűnügyi irodalmi téma”). Emlékezzünk: a kettős prefixum itt arra hívja fel a figyelmet, hogy a mögötte álló jelzetet átvitt értelemben kell érteni.

Alternatívák

Mindaz, amit a fentiekben felvetettem, az én személyes javaslatom. A könyvtáros szakma dolga, hogy eldöntse:
Érdemes-e kiegészíteni az ETO jelenlegi posztkoordinációs lehetőségeit a korlátozottan közös alosztások szisztematikus feldolgozásával, vagy elégedjünk meg a jelenlegi eszközök használatával?
Ha úgy döntünk, hogy feldolgozzuk a korlátozottan közös alosztásokat, ez a könyvtári online katalógusokon belül történjék, vagy egy külön adatbázisban?
Kiterjedjen-e az utólagos számítógépes feldolgozás az új ETO szerint előállítandó jelzetekre is, vagy a korábbi anyagra korlátozódjék?
A két nagy analógiás csoport minden lehetséges jelzetét érdemes-e előállítani, vagy elégedjünk meg az analógiák érzékeltetésével?
Használjunk-e prefixumot a posztkoordináció céljára előállított jelzetelemekre, vagy csak az elemeket mentsük ki?
A betűrendes mutatóba érdemes-e közvetlenül  felvenni a gyakran előforduló kombinációkat, vagy rábízzuk az olvasókra ezeknek a kombinációknak az összeállítását?
A jelzetek feldolgozása során mi legyen az azonosító: az egyes könyvtárak rekordazonosítója, vagy az ISBN?
Külön betűrendes mutatót dolgozzunk-e ki, vagy hozzunk létre (a Köztaurusz esetében inkább frissítésről lenne szó) egy egységes keresési felületet?
Milyen szép is lenne, ha egy külső adatbázisban rendelkezésre állna az Országos Széchényi Könyvtár 1990 óta feldolgozott állománya, alkalmassá téve a posztkoordinált visszakeresésre, és ezt tájékoztatási céllal online módon bárki használhatná, határon belül és azon túl! Vagy ha egy nemzetközi összefogás keretében több ország egyesített könyvtermése is visszakereshetővé válna ilyen posztkoordinált módon, az ISBN számok használata révén…
A könyvtárosok racionális emberek ‒ de azért még szárnyalhat a fantáziájuk.

Hivatkozások

1.     MÁNDY Gábor: Régi ETO, új ETO = Könyvtári Figyelő, 21. (57.) évf. 2011. 2. sz.  317–332. p. http://ki.oszk.hu/kf/2011/07/regi-eto-uj-eto/ [2013. február 7.]
2.    Universal decimal classification / magyar, röv. kiad. Egyetemes Tizedes Osztályozás : FID Publ. No. 691 / [szerk. Babiczky Béla, Schneller Károly] / [közread. az] OMIKK, OSZK-KMK / [. közrem. Cséffalvy Olga et al.]. – Röv. kiad. – Bp. : OMIKK : OSZK KMK, 1990–1991. – 2 db 29 cm
3.     Egyetemes Tizedes Osztályozás : UDC Publ. No. P057 / [. szerk. és bev. Barátné Hajdu Ágnes] ; [. közrem. Ackermanné Kelő Kamilla et al.] ; [közread. az] Országos Széchényi Könyvtár Könyvtári Intézet. – Budapest : KI, 2005. – 3 db 29 cm
4.     http://ki.oszk.hu/kf/2011/07/eszrevetelek-mandy-gabor-tanulmanyahoz/#more-1914 [2013. február 7.]
5.     OSZK TEZAURUSZ/KÖZTAURUSZ :  Az Országos Széchényi Könyvtár és a közművelődési könyvtárak átfogó tezaurusza, 3.0 változat / főszerkesztő Ungváry Rudolf ; [közread. az] Országos Széchényi Könyvtár, Magyar Könyvtárosok Egyesülete].– Budapest,  2002.
http://mek.oszk.hu/00700/00769/html/
A példaprogramok beszerezhetők a szerzőtől és a Könyvtári Intézet szakkönyvtárából, továbbá letölthetők az alábbi webhelyek valamelyikéről, ahol az internetes demo programok is kipróbálhatók:
http://mandynamics.hostzi.com/
vagy
http://www.mandygabor.extra.hu/
Beérkezett: 2013. február 7.