[dex] baza de date in format StarDict

Ladislau Strifler ladislau.strifler at bbcomputer.ro
Fri Aug 24 09:45:30 EEST 2018


Salutare!

Poate îl scap pe Cătă de scris o poliloghie. :)
Documentația pe care ai urmărit-o, Rafail, este depășită de vreme. Ea folosește o interogare care nu mai găsește tabelele și coloanele corespunzătoare din tabele.
Lexem = Lexeme
EntryLexem = EntryLexeme
el.lexemId =  el.lexemeId
------
replace(l.form, "'", '') = l.formNoAccent – deci nu ai nevoie de replace
d.htmlRep – nu mai există

Interogarea corectă ar fi:
select l.formNoAccent form, d.internalRep html from Lexeme l
inner join EntryLexeme el on l.id = el.lexemeId
inner join Entry e on el.entryId = e.id
inner join EntryDefinition ed on e.id = ed.entryId
inner join Definition d on ed.definitionId = d.id

după care câmpul html ar trebui reformatat trecându-l prin niște expresii regulate. (ingrată treabă)
Ex. pentru bold:
regex - /(?<!\\)@(.*)(?<!\\)@/Usg
substituire - <b>$1</b>

Tabela Lexeme nu-ți dă formele flexionare, de aceea fișierul găsit de tine nu le conține, ba mai mult de atât, văd că o interogare (poate nu cea finală) s-a limitat la 2 surse (21 și 27). :)

Citind în diagonală Readme.md, linia de mai jos mă pune pe gânduri, deducând din ea că pentru fiecare formă flexionară trebuie dată definiția.
„Pe prima linie se afla cuvantul cautat, apoi pe urmatoarea se afla definitia si dupa o linie libera”

În concluzie, dacă vei avea paradigmă completă la un verb cu peste 30 de forme conjugate, atunci vei repeta de 30+ de ori definiția?
Ar trebui să studiezi dacă există posibilitatea declarării formelor flexionare pe o linie, despărțite cu ceva separatori (,;|), iar definiția pe a doua.

Dacă faci un inner join InflectedForm i on l.id = i.lexemeId
Ai putea extrage formele flexionare prin i.formNoAccent, dar fișierul rezultat va fi imens... cu enorm de multe date redundante.

Ladislau STRIFLER
specialist IT

From: Discutii [mailto:discutii-bounces la dexonline.ro] On Behalf Of Rafail Popescu via Discutii
Sent: Thursday, August 23, 2018 5:32 PM
To: discutii la dexonline.ro
Cc: Rafail Popescu <ierom.rafail.popescu la gmail.com>
Subject: [dex] baza de date in format StarDict

Salut pe toată lumea!

Și o deranjez cu o întrebare:

    Încerc să instalez baza de date dexonline (de fapt offline) ca dictionar auxiliar in aplicația NeoReader a unui eReader Onyx Boox Note. Această aplicație lucrează cu dicționare în format StarDict. Am văzut postarea d-lui Mihail Radu Solcan despre conversia în format StarDict a bazei de date pe care o oferiți în format SQL însă nu am putut urmări procedura decât până la un anumit punct. Fișierele pe care le-am găsit deja convertite de dl. Cosmin Adrian Popescu (https://github.com/cosminadrianpopescu/dexonline-stardict) cred că nu sunt complete, nu recunosc formele flexionare și nici toate diacriticele, ceea ce le face puțin folositoare.
    Am instalat MySql, Workbench, WorkBench/j, care observ că sunt instrumente foarte puternice, dar cum nu am mai făcut programare de vreo 15 ani m-am înpotmolit... În WorkBench/j cu un driver JDSK HSQLDB se pare că se conectează la baza de date dex-database.sql dar nu îmi afișează nici un tabel, nu răspunde la nici o comandă (îmi dă o eroarea  ”user lacks privilege or object not found: LEXEM [SQL State=42501, DB Errorcode=-5501]”).

    Puteți să-mi recomandați o persoană care a rezolvat problema asta, sau măcar un sfat în legătură cu ce aș putea face?...
   Dl. Adrian Vintu mi-a recomandat să iau legătura cu dl. Cosmin Adrian Popescu dar nu am nici o adresă de-a dânsului...

   Vă mulțumesc anticipat.

       Rafail P.
-------------- partea următoare --------------
Un ataşament HTML a fost eliminat   
URL: <http://list.dexonline.ro/pipermail/discutii/attachments/20180824/7a5e854e/attachment-0001.html>


More information about the Discutii mailing list