22 berichten aan het bekijken - 1 tot 22 (van in totaal 22)
  • Q:
    Bijdrager
    Gewoonweg

    VanDale voor Mac

    Ik weet dat er een hoop mensen op zitten te wachten en ik denk dat ik eindelijk een deel van de oplossing kan bieden.
    Sinds een klein jaar ben ik overgeschakeld maar miste zoals zovelen het uitgebreide VanDale woordenboek op mijn Mac. Eindelijk is het er dan toch gekomen, maar in een slecht gemaakte en marginale versie.

    Ideaal zou zijn om de handen in elkaar te slaan en zelf met een degelijke versie op de proppen te komen. Daarvoor ben ik dus maar eens low-level achter mijn oude pc gekropen en heb de assemblercode van het VanDale programma eens grondig geanalyseerd. Ik ben er in geslaagd om een Delphi-programmaatje te schrijven (zover gaat mijn kennis) dat het meegeleverde woordenboek met bijhorende codes omzet naar een tekstbestand. Het enige spijtige is dat ik nog het oude VanDale programma gebruikt heb en dat het nieuwe natuurlijk weer op een andere manier gecodeerd is. Maar ik ben sinds kort ook de nieuwere versie aan het analyseren en denk hetzelfde resultaat te kunnen bereiken tegen eind april. Maar voorlopig maakt dat niet zoveel uit. Op zich kan er namelijk een programma geschreven worden dat makkelijk per versie aanpasbaar is.

    Waar het mij om draait is of er mensen zijn die zin hebben tijd te steken in het maken/ontwerpen/weet-ik-veel van een degelijk VanDale-programma. De mogelijkheden daarvoor zijn uitgebreid.

    Enerzijds kan er een converter komen die het gekochte woordenboek kan omzetten naar een bestand dat in de meegeleverde Tiger Dictionary kan worden uitgelezen. Dat is een gewoon XML bestand naar de regels van de Oxford Dictionary (te vinden op het net – ik kan de link wel eens doorgeven aan geïnteresseerden).

    Anderzijds lijkt het me interessant om ook een converter te maken dat een bestand aanmaakt dat door een nieuw gemaakt programma kan worden ingelezen. Dat programma kan dan meteen een waardige vervanger zijn van het standaard VanDale-programma, dat toch meer zoekmogelijkheden biedt.

    Dat zet dan meteen ook een beetje druk op VanDale om in de toekomst betere software op de markt te brengen. Zij zullen er wel niet van houden dat ik aanklooi met hun software. Maar ik hou er evenmin van zoveel moeite te moeten doen om uiteindelijk te krijgen waarvoor al dacht betaald te hebben.

    Dit project lijkt me verre van illegaal aangezien ik enkel een programmaatje zoek om hun woordenboek te kunnen lezen, maar niet de bedoeling heb om het hele woordenboek bij dit programma bij te leveren.

    Maar om tot een punt te komen. Ik denk een hele moeilijk stap zelf gezet te hebben door alvast te analyseren hoe het woordenboek opgeslagen en gecodeerd is, maar bezit – hoe tegenstrijdig dit mag klinken – niet de programmeerkwaliteiten om hier een deftig programma voor te maken. Ik heb gebruik gemaakt van kennis diep in mijn geheugen, maar ben nu niet echt meer bezig met programmeren etc. Daarvoor kocht ik net een mac. Dus zijn er degelijke programmeurs die het zien zitten dit project aan te vatten. Ik wil graag al mijn tot nu opgedane kennis delen. En ik ben er van overtuigd dat er nog een heleboel mensen véél plezier zullen beleven aan dit project. Zie maar het andere VanDale Topic.

    Enthousiastelingen?

    Inactief
    Anoniem

    Het maken van een goed woordenboek applicatie zoals Apple’s Dictionary is meer dan enkel het hebben van programmeervaardigheden.

    Apple’s Dictionary houdt rekening met de mogelijke vervoegingen van een woord. Dit betekent dus dat je een hele zooi linguistische functies zult moeten schrijven om naar de basisvorm van het ingevoerde woord te komen. (Iets wat dus een groot deel van dit forum per definitie uitsluit van het maken van zulks programma;) )

    Maar het initiatief is goed:)

    Bijdrager
    Gewoonweg

    Oh ja, ik heb me al suf gepiekerd. Daarom ook dat ik het werkje doorschuif :)

    Maar:

    1) de vervoegingen staan ook in de VanDale (alvast in de nieuwe versie)

    2) Het is niet direct noodzakelijk als de snelle toetscombinatie-truc direct werkbaar is, gewoon het VanDale woordenboek binnen je Tiger Dictionary is (voor mij) alvast handiger dan wat er nu is. En dan werken toch alvast de substantieven.:) stapsgewijs werken heet dat.

    3) een goed woordenboek programmeren is niet simpel. Daar ben ik van overtuigd, maar het is wel zeker mogelijk. Met vervoegingen en alles. Uiteindelijk staat alle info beschikbaar, en is het een kwestie van er degelijk mee overweg te gaan.

    Maar het is een leuke uitdaging.

    Inactief
    Anoniem
    ”Gewoonweg”

    Dit project lijkt me verre van illegaal aangezien ik enkel een programmaatje zoek om hun woordenboek te kunnen lezen, maar niet de bedoeling heb om het hele woordenboek bij dit programma bij te leveren.

    Ik neem aan dat je op de hoogte bent van het bestaan van een van Dale widget, waarmee je online in het woordenboek kunt zoeken?

    Bijdrager
    trabant
    ”koen”

    van Dale widget

    Zucht, daar gaan we weer. Die widget zoekt alleen in het online Hedendaags Nederlands, dat is wat anders dan het GWNT. Die verhouden zich tot elkaar als een mac mini en een afgeladen powermac G5 quad. Of als een kinderboodschappenkarretje tot een 18 meter truck met aanhanger. Het verschil tussen speelgoed en professioneel gereedschap.

    Bijdrager
    Chartreuse
    ”koen”
    ”Gewoonweg”

    Dit project lijkt me verre van illegaal aangezien ik enkel een programmaatje zoek om hun woordenboek te kunnen lezen, maar niet de bedoeling heb om het hele woordenboek bij dit programma bij te leveren.

    Ik neem aan dat je op de hoogte bent van het bestaan van een van Dale widget, waarmee je online in het woordenboek kunt zoeken?

    Ik heb het al eerder gezegd, maar nog maar een keer: de widget zoekt alleen in Van Dale Hedendaags Nederlands, en gewoonweg heeft het over het Groot Woordenboek der Nederlandse Taal (kortweg ‘de dikke’). Die widget is voor alledaags gebruik helemaal niet slecht, maar reikt voor de professionele gebruiker absoluut tekort. Ter vergelijking: een woord als ‘staan’ heeft in HN 7 definities, in De Dikke 37.


    @gewoonweg
    : wat een fantastisch idee. Ik ben een van die mensen die met de nieuwe Van Dale een kat in de zak heeft gekocht, en ik ben daar nog kwaad om, vooral door de arrogante reactie van Van Dale.

    Ik weet helemaal niets van code of programmeren, maar kan je wel vertellen dat het de meeste gebruikers met een talenachtergrond vooral gaat om de functies die de Windows-versie wel heeft.
    Op de website van Van Dale staat (heel sneaky) onder systeemeisen een pdf waarin vermeld staat welke functies in de Mac-versie ontbreken:
    – kopiëren van informatie uit artikelen naar tekstverwerker
    – bladwijzers aanleggen
    – zoeken op klank (oberzjine verwijst naar aubergine)
    – anagrammen

    Allemaal functie die ik graag en veel gebruik, en heel veel van mijn vakgenoten ook. Ook ontbreekt in de Mac-versie een koppeling naar Word. Voor mij niet zo’n punt omdat ik een NeoOffice-fan ben, maar ik weet dat veel anderen wel graag in Word werken.

    Zoals gezegd heb ik geen verstand van programmeren en kan ik daarbij dus niet helpen, maar mocht het lukken om de Dikke op de een of andere manier toch voor de Mac te onsluiten, wil ik best helpen met testen.

    ”gewoonweg”

    Het enige spijtige is dat ik nog het oude VanDale programma gebruikt heb en dat het nieuwe natuurlijk weer op een andere manier gecodeerd is.

    Hoe bedoel je, dat je de vorige versie nog hebt, en niet versie 14?

    Of het illegaal is, tja, daar kun je over twisten. Ik vind dat Van Dale ook fout bezig is door iets een volwaardige Mac-versie te noemen terwijl essentiële functies ontbreken. Lijkt me bedrog van de koper.

    Inactief
    Anoniem
    ”trabant”
    ”koen”

    van Dale widget

    Zucht, daar gaan we weer. Die widget zoekt alleen in het online Hedendaags Nederlands, dat is wat anders dan het GWNT. Die verhouden zich tot elkaar als een mac mini en een afgeladen powermac G5 quad. Of als een kinderboodschappenkarretje tot een 18 meter truck met aanhanger. Het verschil tussen speelgoed en professioneel gereedschap.

    Zeg, ik probeer alleen maar te helpen. En dat was dan ook mijn laatste bijdrage, ik wens de OP succes met zijn/haar project.

    Bijdrager
    Gewoonweg

    @ Chartreuse

    Hoe bedoel je, dat je de vorige versie nog hebt, en niet versie 14?

    Ik zat inderdaad nog met de 13de editie, maar heb sinds kort ook de 14de editie aangeschaft. Helaas is al het werk dat ik gedaan heb alleen van toepassing op de 13de editie. Maar ook voor de nieuwe editie ben ik al goed op weg. Maar het zal toch nog even duren aangezien ik deze week ook veel ander (echt) werk heb.

    Hopelijk komen er ook nog reacties van mensen die effectief hun programmeerdiensten ter beschikking kunnen stellen. Ik heb hier op het forum genoeg reacties in andere posts gelezen van mensen die zich vroeger bekwaam zagen om dit te doen, moest de mogelijkheid er zijn. Ze is er nu … Al was het maar dat iemand het basisprogramma schrijft. Inlezen van een woordenboekbestand, woorden opzoeken, etc. Dan kan ik of anderen daar makkelijk op verderwerken. Maar de cocoa kennis ontbreekt me om van nul te beginnen.

    Is er zoiets als een mac-communtiy?

    Bijdrager
    trabant
    ”Gewoonweg”

    Hopelijk komen er ook nog reacties van mensen die effectief hun programmeerdiensten ter beschikking kunnen stellen. Ik heb hier op het forum genoeg reacties in andere posts gelezen van mensen die zich vroeger bekwaam zagen om dit te doen, moest de mogelijkheid er zijn. Ze is er nu … Al was het maar dat iemand het basisprogramma schrijft. Inlezen van een woordenboekbestand, woorden opzoeken, etc. Dan kan ik of anderen daar makkelijk op verderwerken. Maar de cocoa kennis ontbreekt me om van nul te beginnen.

    Is er zoiets als een mac-communtiy?

    Bert is helaas niet meer onder ons en Pliep (Sad) heeft zich van dit forum teruggetrokken en http://www.macwereld.nl opgezet.

    Mij staat overigens iets bij van een VAMP (vereniging Apple Mac programmeurs).

    Inactief
    Anoniem

    VAMP is echt zo goed als dood:)

    Bijdrager
    jayme

    Ik zie het wel zitten om mee te helpen aan zoiets indien het in java geprogrammeerd wordt..
    cocoa/ carbon is nieuw voor me en dit zie ik niet direct zitten :s

    Bijdrager
    a la Mac

    Cocoa-programma’s kunnen in Objective-C, Java of in AppleScript geschreven worden, hoewel Apple natuurlijk het eerste aanraad.

    Bijdrager
    Gewoonweg

    Weer tijd om dit topic wat nieuw leven in te blazen, en wel met een paar kleine technische vraagjes. Enkele maanden ouder en de kennis van twee talen (Python en Objective-C) rijker, ben ik er in geslaagd de eerste simpele maar werkende versie van mijn Vandale programma te maken in cocoa. Helaas is traagheid mijn deel.

    Ik gebruik CoreData om de woordenlijst op te slaan, en koppel aan elk woord het betreffende adres in het ‘woordenboek’ bestand. Bij het opstarten van het programma wordt de hele woordenlijst ingeladen in een NSArrayController die is gekoppeld aan een NSTableViev. Bij het selecteren van een woord wordt de nodige info opgehaald en getoond in een webView. Simpel dus.

    Ik wil nu natuurlijk makkelijk kunnen zoeken op woorden. Probleem 1. Met een NSSearchField lukt dat me niet. Deze is nochtans gekoppeld aan de tableView via bindings, en predicate is ingevuld op het juiste veld. Dit lukt wel als ik gewoon een textField gebruik en de inhoud daarvan doorstuur naar een NSFilterPredicate die ik toepas op de arrayController. Vreemd vind ik. Moet ik misschien iets aanpassen bij de bindings van de arrayController? Een hoop googelen leverde tot nu niets op.

    Tweede en voornaamste probleem. Het zoeken van een woord (dus filterPredicate toepassen op de arrayController) gaat uitermate traag. Dit duurt 7 tot 9 seconden. Vermoedelijk doorloopt hij steeds de hele array (312000+ items) om elk woord te vergelijken met de zoekstring. Maar aangezien ik in eerste instanties enkel de beginletters wil vergelijken (‘ab’ levert alle woorden die beginnen met ‘ab’) zou dit met een gesorteerde of geindexeerde lijst veel sneller moeten kunnen. Hoe los ik dit op? Database gebruiken ipv CoreData en zoja, dewelke? (Te weten dat mijn coredata-app nu al met sqldatabase werkt). In de dictionary geleverd bij Tiger staan alle woorden in een xml-bestand dat geïndexeerd is (zoeksnelheden onder de second). Gebruiken zij daar coredata of is dat ”handmatig’ geprogrammeerd?

    Iemand een idee hoe ik dit het beste aanpak? Probleem is dat door de bindings heel wat over mijn hoofd heen gebeurt waar ik weinig vat op heb. Het lijkt me wat stom om dit nu allemaal links te moeten laten liggen en het alsnog zelf in elkaar te boksen om de juiste snelheid te halen. Een beetje tegenstrijdig is dat.

    Bijdrager
    arri

    ik heb niet zoveel ervaring met nsarraycontroller en hele grote databases, maar ik kan me zo voorstellen dat bindings vooral ‘handig’ zijn als koppeling met de interface en niet persee optimaal voor grote data sets..

    ik zou zelf iig beginnen te zoeken in de richting caching..
    dus bv. een array creeren met indices die verwijzen naar het eerste woord wat met b, c, d, etc.. begint.
    als dan een b is getypt, hoef je de grote array alleen te doorzoeken tussen index 1 en 2 van de cache array..

    Inactief
    Anoniem

    Opzich maakt het performance-gewijs niet zoveel uit. je kunt op de gemiddelde mac gemakkelijk tot 100.000 woorden live-filteren wanneer je dit efficient implementeert (geen woorden opnieuw testen die al eerder false getest zijn, etc)

    Zoals ik al eerder aangaf is het probleem veel meer de linguistics erachter. Een woord terugbrengen naar de stam, etc.

    (Ik heb zelf een zoek-programma geschreven om honderduizenden items te evalueren in zoekopdrachten en dit gaat nagenoeg moeiteloos binnen een seconde of 1-2 en kan efficienter bij simpelere objecten en queries)

    Bijdrager
    arri

    tekst is inderdaad peanuts, vergeleken met bv. realtime graphics (meer mijn hoek..) in termen van bytes..

    maar was Gewoonweg in eerste instantie niet op zoek naar een manier de VanDale database te converteren met iets wat compatible is met de standaard ingebouwde dictionary?

    ik zou het namelijk erg relaxed vinden als er een van dale implementatie was voor de ctrl+cmd+d shortcut.. liever dat dan weer een apparte app..

    Bijdrager
    TGV
    ”Reflex”

    Opzich maakt het performance-gewijs niet zoveel uit. je kunt op de gemiddelde mac gemakkelijk tot 100.000 woorden live-filteren wanneer je dit efficient implementeert (geen woorden opnieuw testen die al eerder false getest zijn, etc)

    Maar hij heeft het over CoreData en laat het filteren dus daaraan over.

    Zoals ik al eerder aangaf is het probleem veel meer de linguistics erachter. Een woord terugbrengen naar de stam, etc.

    Nou, dat is toevallig niet zo’n groot probleem als je de verbuigingen al hebt. Dat kost alleen even wat extra programmeerwerk.

    (Ik heb zelf een zoek-programma geschreven om honderduizenden items te evalueren in zoekopdrachten en dit gaat nagenoeg moeiteloos binnen een seconde of 1-2 en kan efficienter bij simpelere objecten en queries)

    De Van Dale bevat vele honderdduizenden woorden (ruim 600000 geloof ik), maar al heel lang geleden heb ik programma’s geschreven die daar binnen milliseconden in konden zoeken. Alleen dat was sterk gespecialiseerde code. Gebruik jij CoreData of heb je daar ook aparte code voor ontwikkeld?

    Inactief
    Anoniem

    (Ik heb zelf een zoek-programma geschreven om honderduizenden items te evalueren in zoekopdrachten en dit gaat nagenoeg moeiteloos binnen een seconde of 1-2 en kan efficienter bij simpelere objecten en queries)

    De Van Dale bevat vele honderdduizenden woorden (ruim 600000 geloof ik), maar al heel lang geleden heb ik programma’s geschreven die daar binnen milliseconden in konden zoeken. Alleen dat was sterk gespecialiseerde code. Gebruik jij CoreData of heb je daar ook aparte code voor ontwikkeld?

    Ik heb daar gewoon aparte code voor geschreven omdat CoreData in die tijd nog niet bestond. Uiteraard is mijn code ook sterk gespecialiseerd, maar dan richting mijn oplossing:-)

    Bijdrager
    TGV
    ”Reflex”

    Ik heb daar gewoon aparte code voor geschreven omdat CoreData in die tijd nog niet bestond. Uiteraard is mijn code ook sterk gespecialiseerd, maar dan richting mijn oplossing:-)

    Ik denk dat het antwoord op Gewoonwegs vraag dus is: ja, dat zou heel goed aan CoreData kunnen liggen. Een andere oplossing is nodig. Ik kan daar wel bij helpen.

    Bijdrager
    Gewoonweg

    Hey, fijn plots al die reacties.

    Om eventjes op veel vragen te antwoorden:

    Ik heb ontdekt dat er twee mogelijkheden zijn om te filteren. Enerzijds een NSPredicate toepassen op de arraycontroller die gevuld is met alle woorden, of een specifieke NSFetchrequest op de database toepassen die dan de arraycontroller vult. De eerste filtert dus de controller, de tweede de mysql database. De Eerste optie neemt ongeveer 9sec om alle woorden die beginnen met ‘a’ eruit te halen, optie 2 duurt 1 à 3 sec. Allebei nog te lang om al typend razendsnel de woordenlijst in te korten (zoals in het originele windowsprogramma).

    Misschien moet ik dus idd overgaan naar het schrijven van ‘gespecialiseerde code’. Een beetje stom alleen gezien de uitgebreide toepassingsmogelijkheden van Coredata. Maar in den beginne had ik een testprogramma in python gemaakt en dat zocht effectief supersnel, maar enkel op de beginletters van een woord.

    Wat betreft het omzetten van de database naar de apple dict., dat wordt wat moeilijk. Op dit ogenblik staat elke woordverklaring in html, en al die stukjes staan aan elkaar geplakt in een gigantisch bestand (400MB). (ik werk dus met een indexfile die aangeeft wat per woord de locatie van de verklaring is in dat bestand) De html is niet mijn keuze maar die van de originele makers. Spijtig, want hadden zij xml gebruikt was alles een apk eenvoudiger geweest. Maar om dit dus allemaal om te zetten naar de xml-dtd van apple is dus niet zo evident. (Al heb ik wel een soort gammel pythonprogramma dat deze html wat kan omzetten naar een eigensoortig soort xml. )

    Als iemand zin heeft zich hier in te storten ben ik altijd bereid code door te geven. Die persoon moet dan wel de vandale editie XIV bezitten. Dan kan ik het pythonprogramma leveren dat deze omzet naar een leesbaar bestand vol html, met bijhorende indexfile. En mijn voorlopig cocoa programma natuurlijk (maar dat is echt alfa alfa fase, héhé)

    Bijdrager
    ErikB78

    @gewoonweg:

    Ik wel best eens een blik werpen op je project om te kijken wat ik voor je kan betekenen. (je hebt ondertussen een PM met m’n mail adres zodat we zaken uit kunnen wisselen…)

    Persoonlijk lijkt me het ’t beste om te kijken dat alles omgevormd gaat worden naar het formaat dat apple ook gebruikt voor z’n dictionary. De dictionary App van apple werkt tenslotte prima, het zou zonde van de moeite zijn om dit helemaal na te gaan zitten maken terwijl het al bestaat, toch?

    Fantastisch als de Lookup in Dictionary optie ook werkt met de grote van Dale! :)

    Bijdrager
    dj bazzie wazzie

    @gewoonweg:

    Wat is het probleem met MySQL precies? Heb je dan wel de woordenlijst geindexeerd? Ik heb namelijk zelf een woordenboek waarin nu ongeveer 285.000 woorden en zinsnedes in staan maar ik heb nog steeds binnen 0.02 seconden alle gegevens binnen. Als je het via je terminal doet duurt het inderdaad lang omdat je terminal venster deze output moet laten tonen. Maar als je dit in C programmeerd gaat dit super snel. Het nadeel is dan wel dat iedereen een MySQL server moet draaien op hun machine.

    Een andere oplossing zou kunnen zijn applescript studio applicatie in combinatie met database events(SQLLite). Ik heb hier nog geen ervaring mee maar wat ik er over gelezen heb is dat het wel veel belovend is. Ik maak zelf ook applicaties waarin super snel een tekst aangevuld moeten worden door middel van een sql database. wanneer iemand typt in de applicatie is applescript wel zo snel dat het ook echt in real time wordt geupdate zonder te wachten. Dit is namelijk te realiseren omdat applescript studio alleen maar is om de juiste tekst in het juiste veld te plaatsen en hetgeen wat de berekeningen moet doen wordt toch niet door applescript uitgevoerd.

22 berichten aan het bekijken - 1 tot 22 (van in totaal 22)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.