diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-06 16:14:45 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-06 16:18:34 +0300 |
commit | 8a7e9b26e073731c82c02594d081c57aa474eade (patch) | |
tree | 8aba21e17f5518dc52fb407ba4759ee499a33e34 /data/dbverb.struct | |
parent | 00131c263a9cb0ff8501bc1c4dc1e38b84af1a88 (diff) | |
download | ellinika-8a7e9b26e073731c82c02594d081c57aa474eade.tar.gz ellinika-8a7e9b26e073731c82c02594d081c57aa474eade.tar.bz2 |
Improve conjugator
* data/db.struct: Update.
* data/dbverb.struct: New file.
* scm/conjugator.scm: Conjugate passive voice.
* src/ellinika/elmorph.c (elstr-char-prop-bitmask): Accept
negative positions.
* xml/pl/rhmata.xml: Make verb suffixes prominent.
* xml/ru/rhmata.xml: Likewise.
Diffstat (limited to 'data/dbverb.struct')
-rw-r--r-- | data/dbverb.struct | 323 |
1 files changed, 323 insertions, 0 deletions
diff --git a/data/dbverb.struct b/data/dbverb.struct new file mode 100644 index 0000000..4ab6a37 --- /dev/null +++ b/data/dbverb.struct @@ -0,0 +1,323 @@ +set names utf8; +DROP TABLE IF EXISTS verbflect; +CREATE TABLE verbflect( + ident int(32) not null, -- REL 8 + sing1 varchar(32), + sing2 varchar(32), + sing3 varchar(32), + plur1 varchar(32), + plur2 varchar(32), + plur3 varchar(32), + UNIQUE(ident) +); + +DROP TABLE IF EXISTS conjugation; +CREATE TABLE conjugation( + conj char(2), -- REL 9 + voice enum('act','pas'), -- Ενεργητηκή/Μεσοπαθητική + mode enum('ind','sub','imp'), + tense varchar(128), + thema enum('pres','aor','sub','synt'), -- Ενεστώτα, Αόριστου, υποτακτικής, syntethic + suffix char(32), + flect int(32), -- REL 8 + accmap char(7), -- accent map + particle char(2), -- NULL/θα/να + aux varchar(128), -- REL 10 + auxtense char(32), + KEY (conj), + KEY (voice), + KEY (mode) +); + +DROP TABLE IF EXISTS participle; +CREATE TABLE participle ( + conj char(2), -- REL 9 + voice enum('act','pas'), -- Ενεργητηκή/Μεσοπαθητική + tense char(32), + thema enum('pres','aor','sub'), -- Ενεστώτα, Αόριστου, υποτακτικής + suffix char(32), + flect char(32), + aux varchar(128) +); + +INSERT INTO verbflect VALUES +(0, NULL, NULL, NULL, NULL, NULL, NULL), +-- Συζυγία Α' +(1, "ω", "εις", "ει", "ουμε", "ετε", "ουν(ε)"), +(2, "α", "ες", "ε", "αμε", "ατε", "αν"), +(8, NULL, "ε", NULL, NULL, "ετε", NULL), +(9, NULL, "ε", NULL, NULL, "τε", NULL), +(11, "ομαι", "εσαι", "εται", "όμαστε", "εστε", "ονται"), +(12, "όμουν", "όσουν", "όταν", "όμαστε", "όμαστε", "ονταν"), +(15, "ώ", "είς", "εί", "ούμε", "είτε", "ούν(ε)"), +(17, NULL, "ου", NULL, NULL, NULL, NULL), +(18, NULL, NULL, NULL, NULL, "είτε", NULL), +-- Συζυγία Β΄ - α΄ τάξη +(20, "ώ,άω", "άς", "ά,άει","άμε,ούμε","άτε","ούν(ε)"), +(25, NULL, "α", NULL, NULL, "άτε", NULL), +(28, "ιέμαι", "ιέσαι", "ιέται", "ιόμαστε", "ιέστε", "ιούνται"), +(29, "ιόμουν", "ιόσουν", "ιόταν", "ιόμαστε", "ιόσαστε", "ιόνταν"), +(30, NULL, "ιέσαι", NULL, NULL, "ιέσται", NULL), +(31, NULL, "ου", NULL, NULL, NULL, NULL), +(32, NULL, NULL, NULL, NULL, "είτε", NULL), +-- Συζυγία Β΄ - β΄ τάξη +(33, NULL, "είς", NULL, NULL, "είτε", NULL), +(34, "ούμαι", "είσαι", "είται", "ούμαστε", "είστε", "ούνται"), +(35, "ούμουν", "ούσουν", "ούvταν", "ούμαστε", "ούσαστε", "ούνταν"), +(36, NULL, "είσαι", NULL, NULL, "είστε", NULL), +(100, "είμαι", "είσαι", "είναι", "είμαστε", "είστε,είσαστε", "είναι"), +(101, "ήμουν(α)", "ήσουν(α)", "ήταν(ε)", "ήμαστε,ήμασταν", "ήσαστε,ήσασταν", "ήταν(ε)"), +(102, "θα είμαι", "θα είσαι", "θα είναι", "θα είμαστε", "θα είστε,θα είσαστε", "θα είναι"), +(103, "να είμαι", "να είσαι", "να είναι", "να είμαστε", "να είστε,να είσαστε", "να είναι"), +(104, NULL, "να είσαι", NULL, NULL, "να είστε", NULL), +(105, "είχα", "είχες", "είχα", "είχαμε", "είχατε", "είχαν"), +(106, NULL, "βρες", NULL, NULL, "βρείτε,βρεστε", NULL) +; + +INSERT INTO conjugation VALUES +-- Συζυγία Α' +-- Ενεργητηκή φωνή +-- Οριστική +("A", "act", "ind", "Ενεστώτας", 'pres', NULL, 1, "000000", NULL, NULL, NULL), +("A", "act", "ind", "Παρατατικός", 'pres', NULL, 2, "333333+", NULL, NULL, NULL), +("A", "act", "ind", "Μέλλοντας διαρκείας", 'pres', NULL, 1, "000000", "θα", NULL, NULL), +("A", "act", "ind", "Αόριστος", 'aor', NULL, 2, "333333+", NULL, NULL, NULL), +("A", "act", "ind", "Παρακείμενος", 'synt', NULL, 0, NULL, NULL, "έχω", "Ενεστώτας"), +("A", "act", "ind", "Υπερσυντέλικος", 'synt', NULL, 0, NULL, NULL, "έχω", "Παρατατικός"), +("A", "act", "ind", "Συντελεσμένος μέλλοντας", 'synt', NULL, 0, NULL, "θα", "έχω", "Ενεστώτας"), +("A", "act", "ind", "Μέλλοντας στιγμιαίος", 'sub', NULL, 1, "000000", "θα", NULL, NULL), +-- Υποτακτική +("A", "act", "sub", "Ενεστώτας", 'pres', NULL, 1, "000000", "να", NULL, NULL), +("A", "act", "sub", "Αόριστος", 'sub', NULL, 1, "000000", "να", NULL, NULL), +("A", "act", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Ενεστώτας"), +-- Προστακτική +("A", "act", "imp", "Ενεστώτας", 'pres', NULL, 8, "-3--3-", NULL, NULL, NULL), +("A", "act", "imp", "Αόριστος", 'sub', NULL, 9, "-0--0-", NULL, NULL, NULL), +("A", "act", "imp", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Ενεστώτας"), +-- Μεσοπαθητική φωνή +-- Οριστική +("A", "pas", "ind", "Ενεστώτας", 'pres', NULL, 11, "000300", NULL, NULL, NULL), +("A", "pas", "ind", "Παρατατικός", 'pres', NULL, 12, "222333", NULL, NULL, NULL), +("A", "pas", "ind", "Μέλλοντας διαρκείας", 'pres', NULL, 11, "333333", "θα", NULL, NULL), +("A", "pas", "ind", "Αόριστος", 'aor', "ηκ", 2, "333333", NULL, NULL, NULL), +("A", "pas", "ind", "Παρακείμενος", 'synt', NULL, 0, NULL, NULL, "έχω", "Ενεστώτας"), +("A", "pas", "ind", "Υπερσυντέλικος", 'synt', NULL, 0, NULL, NULL, "έχω", "Παρατατικός"), +("A", "pas", "ind", "Συντελεσμένος μέλλοντας", 'synt', NULL, 0, NULL, "θα", "έχω", "Ενεστώτας"), +("A", "pas", "ind", "Μέλλοντας στιγμιαίος", 'aor', NULL, 15, "111111", "θα", NULL, NULL), +-- Υποτακτική +("A", "pas", "sub", "Ενεστώτας", 'pres', NULL, 11, "333333", "να", NULL, NULL), +("A", "pas", "sub", "Αόριστος", 'aor', NULL, 15, "111221", "να", NULL, NULL), +("A", "pas", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"), +-- Προστακτική +("A", "pas", "imp", "Ενεστώτας", 'pres', NULL, 11, "-3--3-", "να", NULL, NULL), +("A", "pas", "imp", "Αόριστος", 'aor', NULL, 17, "-0----", NULL, NULL, NULL), +("A", "pas", "imp", "Αόριστος", 'aor', NULL, 18, "----2-", NULL, NULL, NULL), +("A", "pas", "imp", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"), +-- Συζυγία Β΄ - α΄ τάξη +-- Ενεργητηκή φωνή +-- Οριστική +("B1", "act", "ind", "Ενεστώτας", 'pres', NULL, 20, "ffffff", NULL, NULL, NULL), +("B1", "act", "ind", "Παρατατικός", 'pres', "ούς", 2, "ssssss", NULL, NULL, NULL), +("B1", "act", "ind", "Μέλλοντας διαρκείας", 'pres', NULL, 20, "ffffff", "θα", NULL, NULL), +("B1", "act", "ind", "Αόριστος", 'aor', "ησ", 2, "333333", NULL, NULL, NULL), +("B1", "act", "ind", "Παρακείμενος", 'synt', NULL, 0, NULL, NULL, "έχω", "Ενεστώτας"), +("B1", "act", "ind", "Υπερσυντέλικος", 'synt', NULL, 0, NULL, NULL, "έχω", "Παρατατικός"), +("B1", "act", "ind", "Συντελεσμένος μέλλοντας", 'synt', NULL, 0, NULL, "θα", "έχω", "Ενεστώτας"), +("B1", "act", "ind", "Μέλλοντας στιγμιαίος", 'aor', "ήσ", 1, "ssssss", "θα", NULL, NULL), +-- Υποτακτική +("B1", "act", "sub", "Ενεστώτας", 'pres', NULL, 20, "ffffff", "να", NULL, NULL), +("B1", "act", "sub", "Αόριστος", 'aor', "ήσ", 1, "ssssss", "να", NULL, NULL), +("B1", "act", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Ενεστώτας"), +-- Προστακτική +("B1", "act", "imp", "Ενεστώτας", 'pres', NULL, 25, "-0--2-", NULL, NULL, NULL), +("B1", "act", "imp", "Αόριστος", 'aor', "ησ", 9, "-3--3-", NULL, NULL, NULL), +("B1", "act", "imp", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Ενεστώτας"), +-- Μεσοπαθητική φωνή +-- Οριστική +("B1", "pas", "ind", "Ενεστώτας", 'pres', NULL, 28, "ffffff", NULL, NULL, NULL), +("B1", "pas", "ind", "Παρατατικός", 'pres', NULL, 29, "ffffff", NULL, NULL, NULL), +("B1", "pas", "ind", "Μέλλοντας διαρκείας", 'pres', NULL, 28, "ffffff", "θα", NULL, NULL), +("B1", "pas", "ind", "Αόριστος", 'aor', "ηκ", 2, "333333", NULL, NULL, NULL), +("B1", "pas", "ind", "Παρακείμενος", 'synt', NULL, 0, NULL, NULL, "έχω", "Ενεστώτας"), +("B1", "pas", "ind", "Υπερσυντέλικος", 'synt', NULL, 0, NULL, NULL, "έχω", "Παρατατικός"), +("B1", "pas", "ind", "Συντελεσμένος μέλλοντας", 'synt', NULL, 0, NULL, "θα", "έχω", "Ενεστώτας"), +("B1", "pas", "ind", "Μέλλοντας στιγμιαίος", 'aor', NULL, 15, "ffffff", "θα", NULL, NULL), +-- Υποτακτική +("B1", "pas", "sub", "Ενεστώτας", 'pres', NULL, 28, "ffffff", "να", NULL, NULL), +("B1", "pas", "sub", "Αόριστος", 'aor', NULL, 15, "ffffff", "να", NULL, NULL), +("B1", "pas", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"), +-- Προστακτική +("B1", "pas", "imp", "Ενεστώτας", 'pres', NULL, 30, "-f--f-", "να", NULL, NULL), + +("B1", "pas", "imp", "Αόριστος", 'aor', NULL, 31, "-2----", NULL, NULL, NULL), +("B1", "pas", "imp", "Αόριστος", 'aor', NULL, 32, "----2-", NULL, NULL, NULL), + +("B1", "pas", "imp", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"), +-- Συζυγία Β΄ - β΄ τάξη +-- Ενεργητηκή φωνή +-- Οριστική +("B2", "act", "ind", "Ενεστώτας", 'pres', NULL, 15, "ffffff", NULL, NULL, NULL), +("B2", "act", "ind", "Παρατατικός", 'pres', "ούσ", 2, "ssssss", NULL, NULL, NULL), +("B2", "act", "ind", "Μέλλοντας διαρκείας", 'pres', NULL, 15, "ffffff", "θα", NULL, NULL), +("B2", "act", "ind", "Αόριστος", 'aor', "ησ", 2, "333333", NULL, NULL, NULL), +("B2", "act", "ind", "Παρακείμενος", 'synt', NULL, 0, NULL, NULL, "έχω", "Ενεστώτας"), +("B2", "act", "ind", "Υπερσυντέλικος", 'synt', NULL, 0, NULL, NULL, "έχω", "Παρατατικός"), +("B2", "act", "ind", "Συντελεσμένος μέλλοντας", 'synt', NULL, 0, NULL, "θα", "έχω", "Ενεστώτας"), +("B2", "act", "ind", "Μέλλοντας στιγμιαίος", 'aor', "ήσ", 1, "ssssss", "θα", NULL, NULL), +-- Υποτακτική +("B2", "act", "sub", "Ενεστώτας", 'pres', NULL, 15, "ffffff", "να", NULL, NULL), +("B2", "act", "sub", "Αόριστος", 'aor', "ήσ", 1, "ssssss", "να", NULL, NULL), +("B2", "act", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Ενεστώτας"), +-- Προστακτική +("B2", "act", "imp", "Ενεστώτας", 'pres', NULL, 15, "-f----", "να", NULL, NULL), +("B2", "act", "imp", "Ενεστώτας", 'pres', NULL, 15, "----f-", NULL, NULL, NULL), + +("B2", "act", "imp", "Αόριστος", 'aor', "ησ", 9, "-3--3-", NULL, NULL, NULL), +("B2", "act", "imp", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Ενεστώτας"), +-- Μεσοπαθητική φωνή +-- Οριστική +("B2", "pas", "ind", "Ενεστώτας", 'pres', NULL, 34, "ffffff", NULL, NULL, NULL), +("B2", "pas", "ind", "Παρατατικός", 'pres', NULL, 35, "ffffff", NULL, NULL, NULL), +("B2", "pas", "ind", "Μέλλοντας διαρκείας", 'pres', NULL, 34, "ffffff", "θα", NULL, NULL), +("B2", "pas", "ind", "Αόριστος", 'aor', "ηκ", 2, "333333", NULL, NULL, NULL), +("B2", "pas", "ind", "Παρακείμενος", 'synt', NULL, 0, NULL, NULL, "έχω", "Ενεστώτας"), +("B2", "pas", "ind", "Υπερσυντέλικος", 'synt', NULL, 0, NULL, NULL, "έχω", "Παρατατικός"), +("B2", "pas", "ind", "Συντελεσμένος μέλλοντας", 'synt', NULL, 0, NULL, "θα", "έχω", "Ενεστώτας"), +("B2", "pas", "ind", "Μέλλοντας στιγμιαίος", 'aor', NULL, 15, "ffffff", "θα", NULL, NULL), +-- Υποτακτική +("B2", "pas", "sub", "Ενεστώτας", 'pres', NULL, 34, "ffffff", "να", NULL, NULL), +("B2", "pas", "sub", "Αόριστος", 'aor', NULL, 15, "ffffff", "να", NULL, NULL), +("B2", "pas", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"), +-- Προστακτική +("B2", "pas", "imp", "Ενεστώτας", 'pres', NULL, 36, "-f--f-", "να", NULL, NULL), + +("B2", "pas", "imp", "Αόριστος", 'aor', NULL, 31, "-2----", NULL, NULL, NULL), +("B2", "pas", "imp", "Αόριστος", 'aor', NULL, 32, "----2-", NULL, NULL, NULL), + +("B2", "pas", "imp", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"); + +INSERT INTO participle VALUES +-- Συζυγία Α' +-- Ενεργητηκή φωνή +("A", "act", "Ενεστώτας", 'pres', NULL, "οντας", NULL), +("A", "act", "Παρακείμενος", 'aor', NULL, "ει", "εχοντας"), +-- Μεσοπαθητική φωνή +("A", "pas", "Παρακείμενος", 'root', NULL, "μένος", NULL), +-- Συζυγία Β΄ - α΄ τάξη +-- Ενεργητηκή φωνή +("B1", "act", "Ενεστώτας", 'pres', NULL, "ώντας", NULL), +("B1", "act", "Παρακείμενος", 'aor', NULL, "ήσει", "εχοντας"), +-- Μεσοπαθητική φωνή +("B1", "pass", "Παρακείμενος", 'pres', "η", "μένος", NULL), +-- Συζυγία Β΄ - β΄ τάξη +-- Ενεργητηκή φωνή +("B2", "act", "Ενεστώτας", 'pres', NULL, "ώντας", NULL), +("B2", "act", "Παρακείμενος", 'aor', NULL, "ει", "εχοντας"), +-- Μεσοπαθητική φωνή +("B1", "pass", "Παρακείμενος", 'pres', "η", "μένος", NULL); + +DROP TABLE IF EXISTS verb; +CREATE TABLE verb( + verb varchar(128), -- REL 10 + conj char(2), -- REL 9 + augment char(1), + accmap char(7), + suffix_aor_path varchar(2), + INDEX(verb) +); + +DROP TABLE IF EXISTS irregular_root; +CREATE TABLE irregular_root( + verb varchar(128), + voice enum('act','pas'), -- Ενεργητηκή/Μεσοπαθητική + thema enum('pres','aor','sub'), -- Αόριστος/Υποτακτική + root varchar(128) +); + +INSERT INTO verb VALUES +('βρίσκω', 'A', NULL, '000000', NULL), +('θέλω','A','η',NULL, NULL), +('έχω','A',NULL,'000000', NULL), +('ξέρω','A','η',NULL, NULL), +('κρεμάω','B1',NULL,NULL,"ασ"), +('κρεμώ','B1',NULL,NULL,"ασ"), +('κιτάω','B1',NULL,NULL,"αξ"), +('κιτώ','B1',NULL,NULL,"αξ"), +('τραβάω','B1',NULL,NULL,"ηξ"), +('τραβώ','B1',NULL,NULL,"ηξ"), +('νικώ','B1',NULL,NULL,NULL) +; + +INSERT INTO irregular_root VALUES +('βρίσκω','act','aor','βρήκ'), +('βρίσκω','act','sub','βρ'), +('βρίσκω','pas','aor','βρέθ'), +('βρίσκω','pas','sub','βρέθ'), +('θέλω','act','aor','θέλησ') +; + +DROP TABLE IF EXISTS individual_verb; +CREATE TABLE individual_verb( + verb varchar(128), + voice enum('act','pas'), -- Ενεργητηκή/Μεσοπαθητική + mode enum('ind','sub','imp'), + tense varchar(128), + ident int(32), + INDEX(verb,voice,mode,tense) +); + +INSERT INTO individual_verb VALUES +("είμαι", "act", "ind", "Ενεστώτας", 100), +("είμαι", "act", "ind", "Παρατατικός", 101), +("είμαι", "act", "ind", "Μέλλοντας διαρκείας", 102), +("είμαι", "act", "ind", "Αόριστος", 0), +("είμαι", "act", "ind", "Παρακείμενος", 0), +("είμαι", "act", "ind", "Υπερσυντέλικος", 0), +("είμαι", "act", "ind", "Συντελεσμένος μέλλοντας", 0), +("είμαι", "act", "ind", "Μέλλοντας στιγμιαίος", 0), +("είμαι", "act", "sub", "Ενεστώτας", 103), +("είμαι", "act", "sub", "Αόριστος", 0), +("είμαι", "act", "sub", "Παρακείμενος", 0), +("είμαι", "act", "imp", "Ενεστώτας", 104), +("είμαι", "act", "imp", "Αόριστος", 0), +("είμαι", "act", "imp", "Παρακείμενος", 0), +("είμαι", "pas", "ind", "Ενεστώτας", 0), +("είμαι", "pas", "ind", "Παρατατικός", 0), +("είμαι", "pas", "ind", "Μέλλοντας διαρκείας", 0), +("είμαι", "pas", "ind", "Αόριστος", 0), +("είμαι", "pas", "ind", "Παρακείμενος", 0), +("είμαι", "pas", "ind", "Υπερσυντέλικος", 0), +("είμαι", "pas", "ind", "Συντελεσμένος μέλλοντας", 0), +("είμαι", "pas", "ind", "Μέλλοντας στιγμιαίος", 0), +("είμαι", "pas", "sub", "Ενεστώτας", 0), +("είμαι", "pas", "sub", "Αόριστος", 0), +("είμαι", "pas", "sub", "Παρακείμενος", 0), +("είμαι", "pas", "imp", "Ενεστώτας", 0), +("είμαι", "pas", "imp", "Αόριστος", 0), +("είμαι", "pas", "imp", "Παρακείμενος", 0), + +("έχω", "act", "ind", "Παρατατικός", 105), +("έχω", "act", "ind", "Αόριστος", 0), +("έχω", "act", "ind", "Παρακείμενος", 0), +("έχω", "act", "ind", "Υπερσυντέλικος", 0), +("έχω", "act", "ind", "Συντελεσμένος μέλλοντας", 0), +("έχω", "act", "ind", "Μέλλοντας στιγμιαίος", 0), +("έχω", "act", "sub", "Αόριστος", 0), +("έχω", "act", "sub", "Παρακείμενος", 0), +("έχω", "act", "imp", "Αόριστος", 0), +("έχω", "act", "imp", "Παρακείμενος", 0), +("έχω", "pas", "ind", "Παρατατικός", 0), +("έχω", "pas", "ind", "Μέλλοντας διαρκείας", 0), +("έχω", "pas", "ind", "Αόριστος", 0), +("έχω", "pas", "ind", "Παρακείμενος", 0), +("έχω", "pas", "ind", "Υπερσυντέλικος", 0), +("έχω", "pas", "ind", "Συντελεσμένος μέλλοντας", 0), +("έχω", "pas", "ind", "Μέλλοντας στιγμιαίος", 0), +("έχω", "pas", "sub", "Ενεστώτας", 0), +("έχω", "pas", "sub", "Αόριστος", 0), +("έχω", "pas", "sub", "Παρακείμενος", 0), +("έχω", "pas", "imp", "Ενεστώτας", 0), +("έχω", "pas", "imp", "Αόριστος", 0), +("έχω", "pas", "imp", "Παρακείμενος", 0), +("βρίσκω", "act", "imp", "Αόριστος", 106) +; |