Český soubor afixů Prefixy V češtině se používá několik desítek přepon. Protože jsou distribuovány nepravidelně a počet příznaků použitelných programem ispell je nedostatečný, byly v českém slovníku pro ispell použity pro předpony pouze čtyři příznaky: N - generuje předponu ne- (zejména pro slovesa, přídavná jména a příslovce) E - generuje předponu nej- (vytvoření třetího stupně ze druhého stupně přídavných jmen) W - generuje předpony ne-, nej- a nejne- (pro druhý stupeň přídavných jmen; vytváří zápor a třetí stupeň včetně záporu) F - generuje předpony jedna-, dvaa-, třia-, čtyřia-, čtyrya-, pěta-, šesta-, sedma-, osma-, devěta- (pro číslovky a složeniny obsahující číslovky jako jednadvacet) Pro snadné používání ostatních předpon jsou ve zdrojových souborech použity seznamy tvaru {,do,po,při,u,vy,za}hladit/ACN. Tyto seznamy jsou perlovým skriptem glob.p expandovány na seznam slov, který již lze použít jako vstup programu buildhash: hladit/ACN dohladit/ACN pohladit/ACN přihladit/ACN uhladit/ACN vyhladit/ACN zahladit/ACN Skript glob.p pracuje tak, že rozděluje čtené řádky na řetězce neobsahující mezeru ani pomlčku či spojovník. Pokud některý z takto vzniklých řetězců obsahuje seznam uzavřený ve složených závorkách a skládající se z podřetězců oddělených čárkami, bude tento řetězec nahrazen sadou řetězců, které z něj vzniknou postupným nahrazováním celého seznamu jeho jednotlivými prvky. Všechny výsledné řetězce jsou vypisovány po jednom na řádku. Skript glob.p by bylo možné použít i pro jiné účely než pro expanzi seznamů předpon - například pro slova jako balk{o,ó}n/H. Toto použití však nedoporučuji, protože by mohlo působit problémy jiným pomocným programům a skriptům pro zpracování českého slovníku. Skript glob.p není schopen expandovat v jednom řetězci více než jeden seznam (například {nad,od,pod}{,e}pisování/SN), ani vnořené seznamy. Protože však každý řádek rozdělí na řetězce v místech mezer nebo pomlček, může být na jednom řádku více seznamů. Vložení všech použitelných předpon k jednotlivým slovům musí tedy zajistit osoba, která vytváří nebo rozšiřuje slovník. Přitom je třeba dávat pozor na to, že některé předpony mění vid sloves (honit x dohonit), tranzitivitu a tím i existenci trpného rodu (jásat x rozjásat), působí změny ve slovním základu (brát x sebrat) či ve způsobu ohýbání (krást > kradu x ukrást > ukradnu), a tím i mění příznaky příslušných slov. Pro slovesa se používají nejčastěji předpony do-, na-, nad-, nade-, o-, ob-, obe-, od-, ode-, po-, pod-, pode-, popo-, pou-, poz-, pro-, pře-, před-, přede-, při-, roz-, roze-, s-, se-, sou-, spo-, spolu-, u-, v-, ve-, vy-, vz-, z-, za- a ze-; pro podstatná jména bez-, beze-, do-, dů-, ná-, nad-, nade-, o-, ob-, obe-, od-, ode-, mezi-, po-, pod-, pode-, popo-, pou-, pro-, prů-, pře-, před-, přede-, pří-, roz-, roze-, s-, se-, sou-, spo-, spolu-, ú-, v-, ve-, vý-, vz-, z-, ze- a zá; pro přídavná jména a příslovce se používají všechny výše uvedené předpony a přípony vyjadřující množství jako jedno-, dvou-, dvoj-, tří-, troj-, více-, mnoho-, málo-, poměrně často se vyskytují také cizí předpony a-, anti-, de-, dez-, in-, inter-, intra-, im-, re-, trans-, un-, mono-, di-, tri-, single-, multi- a další. Sufixy Některá slova se skloňují nebo časují podle více vzorů. Pro tato slova je třeba uvádět všechny příznaky, i když některé z nich negenerují žádné tvary navíc (například klín/HL i když by stačilo klín/L). Slovník bude pravděpodobně použit i pro jiné programy než ispell, a v nich budou takovéto informace potřebné. Příznaky pro podstatná jména mužského rodu životná P - generuje všechny tvary podstatných jmen vzorů pán a předseda kromě 1. pádu množného čísla; výchozí tvar je 1. pád jednotného čísla Příznak P lze použít i pro slova končící na -o skloňovaná podle vzoru pán (dingo, příjmení Bidlo apod.), pro cizí jména končící na -e, které se při skloňování odsouvá (Goethe, Shakespeare) i pro slova končící na -u (guru, gurua). U slov končících na -ek a -ěk se toto e/ě v dalších tvarech vypouští, stejně tomu je i u slov končících na -el, před kterým není b, d, t, š, ž, i, o nebo u. Slova, která tomuto nevyhovují (lev, ďábel a syn - 5. pád jednotného čísla synu nikoli syne) a u kterých dochází ke změně slovního základu (bůh, vůl, pán) musí být uvedena jako nepravidelná se všemi tvary. Podle možných tvarů 1. pádu množného čísla se příznak P doplňuje jedním nebo několika z příznaků I, D, V. Příznak I generuje koncovku -i (včetně měkčení h > zi, ch > ši, r > ři, k > ci), příznak D koncovku -é a příznak V koncovku -ové. D - generuje tvary cizích podstatných jmen zakončených v 1. pádě množného čísla koncovkou -es, -os nebo -us (Aristoteles, diskobolos, Kristus), která se v dalších tvarech vypouští Příznak D má tedy dvě funkce: u slov zakončených -es, -os nebo -us generuje všechny tvary podstatného jména vzoru pán, zatímco u ostatních slov generuje pouze koncovku -é. U - generuje všechny tvary podstatných jmen vzoru muž a soudce, kromě tvaru pro 1. pád množného čísla s koncovkou -ové; u slov zakončených na -ec a -eň (s výjimkou -leň) vypouští -e- Ze životných podstatných jmen mužského rodu lze obvykle vytvořit přídavná jména individuálně přivlastňovací (vzor otcův). Tato přídavné jména je nutné uvést ve slovníku zvlášť s příznakem Y. Příznaky pro podstatná jména mužského rodu neživotná H - generuje všechny tvary podle vzoru hrad bez pohybného -e-, kromě tvaru s koncovkou -ě Q - generuje všechny tvary podle vzoru hrad s pohybným -e-, kromě tvaru s koncovkou -ě, a dále všechny tvary slov podle vzoru hrad, zakončených v 1. pádě jednotného čísla na -us nebo -os, které se v dalších pádech odsouvá, u slov na -ismus generuje též tvary na -izmus L - generuje všechny tvary podle podvzoru ostrov (nebo les, který ovšem kolísá mezi vzory ostrov a hrad), včetně tvaru s koncovkou -ě R - generuje tvar s koncovkou -ě S - generuje tvary podle vzoru stroj Pro podstatná jména skloňovaná podle vzoru hrad (2. pád hradu) je třeba vybrat příznak H, pokud nemají pohybné -e-, nebo příznak Q, pokud pohybné -e- mají. Podle tvaru 1. pádu jednotného čísla nelze zjistit, zda je ve slově pohybné -e- nebo není. Například ve slově úlek závisí pohybnost -e- na významu: ve významu "leknutí" se skloňuje úlek, úleku, zatímco ve významu "malý úl" se skloňuje úlek, úlku. Příznak H lze použít i pro cizí slova s koncovým -e skloňovaná podle vzoru hrad (software) a pro pomnožná podstatná jména vzoru hrad (rozpaky). U slov, která mají koncovku -ě, je nutné uvést také příznak R. U slov s koncovkou -us nebo -os generuje příznak H tvary -usu, -usem (např. autobus, autobusu, ...), zatímco příznak Q tvary bez -us- (např. realismus, realismu, ...; generuje i realizmus, realizmu, ...). Příznak Q má tedy více funkcí; kromě generování všech tvarů vzoru hrad pro slova s pohybným -e- a generování všech tvarů slov, která jsou skloňována podle vzoru hrad, a jsou zakončeny na odsouvané -us a -os, se používá i pro generování tvarů s prázdnou koncovkou pro slova podle vzorů žena, růže a město. Také příznak S má více funkcí, kromě vzoru stroj se používá i pro vzor stavení a pro jednotné číslo vzoru růže. Příznaky pro podstatná jména ženského rodu Z - generuje tvary vzorů žena, růže (nůše) a píseň K - generuje tvary vzoru kost Q - generuje tvar s nulovou koncovkou pro slova vzoru žena a růže C - generuje tvary množného čísla vzoru růže (Dalešice, dveře) S - generuje tvary jednotného čísla vzoru růže (Roudnice) Pro podstatná jména ženského rodu se používá příznak Z nebo K. Pro slova vzoru žena a růže, která mají v 2. pádě množného čísla pravidelný tvar s prázdnou koncovkou se přidává příznak Q. Není-li tvar 2. pádu množného čísla pravidelný (houba > hub), uvede se ve slovníku na jednom řádku slovo s příznakem Z a tvar 2. pádu množného čísla. Příznak Z lze použít i pro cizí slova typu Antarktis. V tomto případě vygeneruje 1. pád jednotného čísla s tvarem -ida a další tvary kromě 2. pádu množného čísla (který generuje příznak Q). Existuje téměř kontinuum slov kolísajících mezi vzory píseň a kost. U některých slov lze použít kombinaci příznaků KZ, u jiných ZI, někdy je třeba ještě doplnit chybějící tvary, výjimečně je nutné slovo považovat (pro ispell) za nepravidelné. Pro vyzkoušení generovaných tvarů lze použít příkaz sh inter a na výzvu ispell.cz: zadat slovo s lomítkem a příznaky, například modř/ZI. Pro pomnožná jména vzoru růže se používá příznak C, který na rozdíl od příznaku Z generuje i tvar 2. pádu množného čísla. A naopak, zejména pro jména obcí, které mají tvary jednotného čísla vzoru růže (Roudnice, Sušice) je vhodné použít příznak S generující pouze tvary jednotného čísla (i když v některých případech může být použití množného čísla namístě, například mluví-li se o více obcích stejného jména). Z podstatných jmen ženského rodu, které označují osoby, některá zvířata apod., lze obvykle vytvořit přídavná jména individuálně přivlastňovací (vzor matčin). Tato přídavné jména je nutné uvést ve slovníku zvlášť s příznakem Y. Příznaky pro podstatná jména středního rodu M - generuje tvary vzorů město, moře, kromě tvarů vzoru město s koncovkou -ě/-e a s prázdnou koncovkou, funguje také pro slova typu akvárium K - generuje tvary vzoru kuře a slov typu téma (tématu, ...) S - generuje tvary vzoru stavení C - generuje tvary jednotného čísla vzoru stavení (pro hromadná podstatná jména) Q - generuje tvar s prázdnou koncovkou pro slova vzoru město R - generuje tvar s koncovkou -ě/-e pro slova vzoru město Pro slova vzoru město, která mají v 2. pádě množného čísla pravidelný tvar s prázdnou koncovkou se přidává příznak Q. Slova jako písmeno, semeno musí být uvedena s příznaky MQRI a navíc musí být zvlášť uveden tvar s koncovkou -e (písmene). Příznaky pro přídavná jména Univerzálním příznakem pro přídavná jména je příznak Y, který generuje tvary přídavných jmen podle vzorů mladý, jarní (lze použít i na druhý stupeň přídavných jmen jako mladší), otcův i matčin. Další příznaky se používají pro odvozování: K - odvozuje názvy vlastností - podstatná jména vzoru kost (mladý > mladost) C - odvozuje názvy vlastností s měkčením (exotický > exotičnost oproti příznaku K: anglický > anglickost) R - odvozuje příslovce, dochází k měkčení -ký > -ce, -chý > -še, -hý > -ze, -rý > -ře, -[dtnbpvm]ý > -[dtnbpvm]ě O - odvozuje příslovce, bez měkčení (dlouhý > dlouho) N - pouze předpona ne- E - pouze předpona nej- W - předpony ne-, nej- a nejne- Příznak Y lze použít i pro skloňování podstatných jmen vzorů hajný, průvodčí, hajná, jízdné, telecí i podstatných jmen yetti, pony, grizzly, regenschori a cizích slov na -oj, -ij (Tolstoj, Dostojevskij). Příznaky pro zájmena Y - generuje tvary substantivního skloňování podle vzorů mladý a jarní, dále tvary pro slova typu kdo, co, můj, náš a ten (kromě samotného slova co). Příznaky pro slovesa A - z infinitivu generuje všechny tvary sloves kromě příčestí trpného pro všechny vzory kromě vzorů krýt, dělat (volat), sázet a tnout a některých slov první slovesné třídy se změnou kmene B - z infinitivu generuje všechny tvary sloves kromě příčestí trpného pro vzor krýt, dále generuje tvary přítomného času a tvary rozkazovacího způsobu z 1. nebo 3. osoby jednotného čísla - lze použít pro vygenerování tvarů oznamovacího způsobu pro slovesa první slovesné třídy se změnou kmene J - z infinitivu generuje všechny tvary sloves kromě příčestí trpného pro vzory dělat (volat), sázet a tnout T - generuje z infinitivu tvary trpného rodu bez měkčení C - generuje z infinitivu tvary trpného rodu s měkčením (přemoci > přemožen, sytit > sycen, hladit > hlazen, prosit > prošen, vozit > vožen, myslit > myšlen, hustit > huštěn, opozdit > opožděn, táhnout > tažen, nadchnout > nadšen, stihnout > stižen, svléknout > svlečen, tisknout > tištěn, odemknout > odemčen) O - generuje z mužského rodu minulého či trpného příčestí další tvary X - generuje tvary přechodníku minulého z mužského rodu přechodníku minulého nebo i z infinitivu N - generuje předponu ne- Díky existenci přechodníku budoucího se téměř ze všech sloves (dokonavých i nedokonavých) generují tvary přechodníku přítomného. Ve slovníku doposud chybí jakákoli informace o dokonavosti sloves. Tuto informaci bude nutné doplnit pro přidání příznaku X, který lze použít pouze pro dokonavá slovesa. Naopak z nedokonavých sloves je třeba vygenerovat přídavná jména typu dělající a přidat je do slovníku s příznaky YN. Příznaky pro číslovky Pro číslovky lze používat následující příznaky: ZQ - pro číslovky skloňované podle vzoru žena (nula, jednička, dvojka, ...) a růže (dvojice, ...) I - pro koncovku -i (pět, šest, ...) Y - pro číslovky skloňované jako přídavná jména (první, druhý, ...) Ojediněle lze použít další příznaky pro slova, která se skloňují jako podstatná jména (sto, tisíc, milion), a příznaky N a F. Příznaky pro příslovce Příslovce je vhodné v nejvyšší možné míře odvozovat z přídavných jmen pomocí příznaků R a O. V některých případech jsou pro příslovce použitelné příznaky N, E a W popsané v kapitole Prefixy. Nesklonná slova Ojediněle lze použít některý z příznaků pro vygenerovaní jiného slova z nesklonného slova (příznak N). Pomocné skripty Pro ověřování, zda je slovo uvedeno ve slovníku a jaké tvary jsou generovány použitím určitých příznakům lze použít skript inter: sh inter # Spuštění skriptu ispell.cz: husité ispell.cz: (žádná odpověď) Slovo husité ve slovníku je ispell.cz: husiti husiti Slovo husiti ve slovníku není ispell.cz: husita/PD husita Výpis všech tvarů generovaných použití příznaků P a D husité na slovo husita husitech husito husitou husitovi husitu husitů husitům husity ispell.cz: Ctrl-D Ukončení skriptu Pro ulehčení práce s přiřazováním příznaků lze použít skript blemma, který se podle tvarů načtených slov pokusí převést tato slova do základního tvaru a přiřadit jim příznaky. Skript blemma nepoužívá žádný slovník a vychází pouze z tvarů slov, proto je jeho účinnost nízká (asi 40%) a dělá chyby, takže jeho výstup je nutné překontrolovat. :-( Příkaz perl blemma -f soubor | sort -u vypíše na standardní výstup slova, kterým se podařilo přiřadit příznaky; příkaz perl blemma -r soubor slova, u nichž se to nepodařilo. Nevyřešené problémy Některé problémy se pravděpodobně nedají rozumně řešit pomocí ispellu: - Některé zkratky (např., atd.) by měly být považovány za bezchybné, pouze pokud je za nimi tečka. - Částice -li by měla být považována za bezchybnou, pouze je-li před ní spojovník. - Povolit složeniny, jejichž první složka je tvořena slovy jako jsou modro-, tmavo-, bledě-, krátko-, mnoho-, a druhá je přídavné jméno, příslovce apod.. Možná lze nějakým způsobem použít volbu ~ u některého příznaku. Přitom se nesmí povolit složeniny obecně.