Nederlandstalige versie van ISpell ---------------------------------- Verspreidingsbepalingen De programma's in dit archief zijn freeware. Dat betekent dat ze vrij verspreidbaar zijn, zolang er niets aan veranderd wordt. Vrij verspreidbaar, niet tegen grote vergoedingen dus. En enkel als deze doc-file bij de programma's blijft. Vereisten Als je het groene boekje wil gebruiken, heb je minimaal 3.5 Mb vrij geheugen nodig, om de simpele reden dat de woordenlijst zo groot is, en ISpell die volledig in het geheugen laadt. Ook is Workbench 2.0 vereist. (Laat a.u.b. iets weten als je ISpell gebruikt en geen 2.1 of hoger hebt, anders is een volgende versie waarschijnlijk 2.1+ enkel) Doel Hoofddoel is toe te laten Nederlandstalige teksten op spelfouten te controleren. Dit gebeurt op een woord per woord basis, en volgens de woorden in de woordenlijst. Dit kan op twee manieren gebeuren: via een primitieve opdrachtregelinterface, of via de ARexx-interface. De ARexx-interface hoeft niet zichtbaar te zijn, die kan ook bediend worden door een ander programma, bijvoorbeeld GoldEd. Installatie en gebruik Het installeren van ISpell zelf is niet moeilijk: zet die gewoon ergens waar je die wil hebben. En het is waarschijnlijk nodig van een 'path'-opdracht toe te voegen aan de user-startup, zodat ISpell van om het even waar gevonden kan worden. Het eerste te overwinnen probleem is aan een woordenboek te geraken. Een gewone lijst van woorden is niet direkt geschikt, die staat niet in het juiste formaat. Een eerste mogelijkheid is te proberen aan een bestaand woordenboek te komen. (er staat er een op GBOF van Lieven Lema, gearchiveerd ongeveer 1.5 Mb. Weet echter dat er nog enkele foutjes staan in de eerste versie ervan, wegens een nog niet perfecte "Converteer") Een tweede mogelijkheid is aan het groene boekje te geraken, en dat zelf te converteren. (staat op de FTP-site donau.et.tudelft.nl, directory pub/words. Gearchiveerd 937577 bytes (words.dutch.Z), niet gearchiveerd 1752465 (groene_boekje) of 2979319 bytes (groene_boekje_uitgebreid)) Als die file groene_boekje noemt, moet je volgende commando's uitvoeren om die lijst om te zetten: > Converteer groene_boekje groene_boekje.woorden > BuildHash groene_boekje.woorden s/ISpell.hash > BuildHash groene_boekje.woorden s/ISpell.hash De eerste opdracht haalt alle speciale tekens uit het groene boekje weg, (#, * en de cijfers) zet accenten op de letters waar nodig, en vervoegt werkwoorden. Dat laatste is niet zo eenvoudig: er moet rekening gehouden worden met onregelmatige werkwoorden, tweeklanken, trema's op de 'e', of een 'e' nu dof is of niet, open lettergrepen waarvan de klinker verdubbeld moet worden, stemhebbende en stemloze medeklinkers, enz. Enkel de niet-scheidbare werkwoorden worden vervoegd. Dat is geen beperking als het om een volledige woordenlijst gaat: als daar een werkwoord als 'aanbidden' in voorkomt, zal ook 'bidden' voorkomen, en beiden hebben dezelfde stam. Wegens de moeilijkheidsgraad van het vinden van de stam is het dus nog mogelijk dat daar nog een foutje in zit. (Ook als je de bestaande hash-file afhaalt, kan je met de gevolgen daarvan te maken hebben: dat woordenboek is ook met 'converteer' aangemaakt) Dus als je een stam van een werkwoord, met of zonder t, tegenkomt die foutief is: laat het a.u.b. weten. De tweede opdracht, BuildHash, zet de woordenlijst om in een file waarmee ISpell overweg kan. Van zodra die opdracht gedaan is, kan je ISpell starten en beginnen gebruiken. Er is echter nog een probleempje: er zitten nog enkele woorden dubbel in dat bestand. Buildhash stelt dat vast na de eerste keer overlopen van groene_boekje.woorden. Er wordt trouwens gemeld hoeveel dubbels er in zitten. Om die te verwijderen, en dus wat geheugen te winnen: start BuildHash een tweede maal. De hash-file moet niet ISpell.hash noemen, maar dat is de naam die als standaard in ISpell zit. Om ISpell te starten volstaat "run <>nil: ISpell -r". Gebruik je een andere naam, dan start je ISpell met b.v. "run <>nil: ISpell -dnederlandstaligehashfile.hash -r" De hash-files *moeten* in de s-directory staan. Bij ISpell-3.3-LJR was dat S:, de directory waar de startup-sequence in staat dus. Ik heb dat veranderd naar PROGDIR:S. Dus in de directory waar ISpell staat, maak je een directory s, en daarin komen de hashfile(s). Een assign kan daar niets aan veranderen, enkel het verplaatsen van ISpell naar een andere directory. Als je het engelstalig woordenboek wil voor ISpell: dat staat in het archief van ISpell-3.3-LJR, (o.m. te vinden op Aminet, en waarschijnlijk ook op de Fish-disks) en natuurlijk ook in het GNU-ISpell-4.0 archief. ARexx-interface Eens gestart als server, kan ISpell vanuit ARexx bediend worden. Bijvoorbeeld > run ISpell -dtestlijst.hash -r Om te testen gebruikte ik het volgenteren > check zat : * (de lijnen met '>' ervoor zijn de opdrachten, die met ':' ervoor de uitvoer.) De uitvoer betekent dat 'rtere' niet in die kleine woordenlijst staan. De alternatieven volgen op de ampersand. En het sterretje als antwoord op 'check zat' betekent dat dat woord in het woordenboek voorkomt. Indien geen overeenstemmend woord werd gevonden, krijg je een '#' als antwoord. De bedoeling is natuurlijk niet dat je dat voor veel woorden gaat doen. Gebruik dan "ISpell bestandsnaam", of een ARexx-programma dat ISpell bedient. Verder ISpell Arexx-opdrachten zijn: - Lookup , vind alle woorden die aan een bepaalde "regular expression" voldoen. (een woord met wildcards er in) Dit heb ik nog niet aangepast aan woorden met accenten, wees dus niet verrast als die niet teruggevonden worden. Een voorbeeld: 'quickcheck ..[ea].' levert alle woorden van vier letters die als derde letter een e of a hebben. - QuickCheck , zoek een woord op zonder naar alternatieven te zoeken - geeft allen 'bad' of 'ok' als antwoord. - Add , voegt een woord toe aan de gebruikerswoordenlijst, (standaard s/.Ispell-words) antwoordt met 'ok' EN schrijft deze volledig naar disk. Als je meerdere woorden wil toevoegen, is QuickAdd beter geschikt. Voer op het einde dan een keer Add uit, en alle woorden worden bewaard. - QuickAdd , zoals Add, maar dan zonder het naar disk schrijven. - FileCheck , zoekt alle woorden in het aangegeven ASCII-bestand die niet in het woordenboek voorkomen, en zet deze in een bestand in T:. De naam van dat bestand wordt gemeld via 'RESULT' en moet je achteraf zelf wissen. Bedoeling is dat je daarna via 'Check' voor deze woorden alternatieven aanbiedt. - ExtendedFilecheck , zoals filecheck, maar antwoordt met "OK", en zet in de stem-variabele "ISpellResult" de resultaten van de controle. Voorbeeld van gebruik: (jawel, een enkele lijn :) rx "options results; address 'IRexxSpell'; 'extendedfilecheck aclower.h'; say result; say "Aantal verkeerd gespelde woorden:" ispellresult.count; do i = 1 to ispellresult.count; say ispellresult.i.line ispellresult.i.column ispellresult.i.word; end" - version, meldt de versie en de verstane opdrachten - exit, bekindig ISpell Om ISpell te stoppen, kan je naar de Shell gaan, de Status-opdracht geven, en een break sturen naar het ISpell-proces. Of voer volgende shell-opdracht uit: rx "address 'IRexxSpell' exit" Gekende fouten Een beperking van ISpell is dat het geen alternatieven zal vinden als twee letters fout zijn. Ddhre" niet als alternatief krijgen. Geschiedenis ISpell heeft een lange geschiedenis. Deze versie van ISpell is volledig gebaseerd op ISpell-3.3-LJR, een door Loren J. Rittle verzorgde Amiga-versie van ISpell. Het archief daarvan bevat veel meer dan het deze: o.a. een Engelstalig woordenboek, de source, iets wat LJR een GUI voor ISpell noemt, en ARexx-macro's voor verschillende editors. (TTX, CED, Gnu-Emacs, MG, Shell, VLT, WShell) Op zijn beurt is ISpell-3.3-LJR gebaseerd op Unix-ISpell 3.3, vanwaar de eenvoudige interface bij het interactief controleren komt. Ondertussen bestaat ook GNU-ISpell-4.0. Momenteel ben ik nog aan het uitzoeken of daar grote verbeteringen inzitten t.o.v. ISpell-3.3. Als je meer te weten wil komen over ISpell, weet je nu waar je moet zoeken. Belangrijkste veranderingen van deze versie van ISpell t.o.v. ISpell-3.3-LJR is het herkennen van de accenten, en Buildhash die in staat is tweemaal voorkomende woorden te herkennen. En natuurlijk het conversieprogramma dat het groene boekje omzet in een woordenlijst. Dankbetuiging Zeker wil ik Lieven Lema danken, voor de hulp bij het afwerken van "Converteer". Suggesties Suggesties zijn altijd welkom, en bug-reports ook natuurlijk. Laat het a.u.b. weten als je graag iets veranderd zsoleerd te bekijken, of een koppeling naar ProWrite of FinalCopy ... Bart Van Assche 12 mei 1994 Bereikbaar via: E-mail: Bart.VanAssche@rug.ac.be Fido: Schrijf een bericht naar UUCP (2:29/777.0), met op de eerste lijn "To: Bart.VanAssche@rug.ac.be", dan een lege lijn, en dan het eigenlijke bericht. Gewone post: Bart Van Assche Diepestraat 15 9820 Bottelare