-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmigration.sql
More file actions
133 lines (120 loc) · 4.11 KB
/
Copy pathmigration.sql
File metadata and controls
133 lines (120 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
CREATE TYPE lemma_type AS ENUM (
'NOMINAL',
'UNINFLECTED',
'VERBAL'
);
CREATE TYPE grammatical_number_type AS ENUM (
'SINGULAR',
'PLURAL'
);
CREATE TYPE grammatical_case_type AS ENUM (
'NOMINATIVE',
'ACCUSATIVE',
'GENITIVE',
'DATIVE',
'ABLATIVE',
'INSTRUMENTAL',
'LOCATIVE'
);
CREATE TYPE grammatical_article_type AS ENUM (
'DEFINITE_ARTICLE_NOO',
'DEFINITE_ARTICLE_NOO_WITH_FIRST_PERSON_POSSESSIVE_ARTICLE',
'DEFINITE_ARTICLE_UHT',
'NONE',
'POSSESSIVE_ARTICLE_NOO',
'DEFINITE_ARTICLE_NOO_WITH_SECOND_PERSON_POSSESSIVE_ARTICLE',
'DEFINITE_ARTICLE_NOO_WITH_THIRD_PERSON_POSSESSIVE_ARTICLE_NOO',
'DEFINITE_ARTICLE_NOO_WITH_THIRD_PERSON_POSSESSIVE_ARTICLE_UHT',
'POSSESSIVE_ARTICLE_SINGULAR_FIRST_PERSON',
'POSSESSIVE_ARTICLE_SINGULAR_SECOND_PERSON',
'POSSESSIVE_ARTICLE_UHT'
);
CREATE TYPE grammatical_person_type AS ENUM (
'FIRST',
'SECOND',
'THIRD',
'NONE'
);
CREATE TYPE verb_tense_type AS ENUM (
'SIMPLE_PRESENT',
'SIMPLE_PAST',
'SIMPLE_FUTURE',
'PAST_IMPERFECT',
'PAST_PERFECT',
'PRESENT_PERFECT',
'FUTURE_PERFECT',
'NONE'
);
CREATE TYPE verb_mood_type AS ENUM (
'INDICATIVE',
'SUBJUNCTIVE',
'CONDITIONAL',
'IMPERATIVE',
'PROHIBITIVE'
);
CREATE TYPE verb_polarity_type AS ENUM (
'POSITIVE',
'NEGATIVE'
);
CREATE TYPE verbal_inflection_class_type AS ENUM (
'REGULAR_VERB',
'INFINITIVE',
'PRESENT_PARTICIPLE',
'PAST_PARTICIPLE',
'FUTURE_PARTICIPLE',
'PRESENT_PARTICIPLE_SUBSTANTIVE',
'PAST_PARTICIPLE_SUBSTANTIVE',
'FUTURE_PARTICIPLE_SUBSTANTIVE'
);
-- In the context of the Nayiri Lexicon for the Armenian language, an Inflection represents
-- the morphological analysis of a given Word Form.
-- Inflection objects are defined globally and shared across Word Forms.
CREATE TABLE inflections (
inflection_id TEXT PRIMARY KEY,
lemma_type lemma_type NOT NULL,
display_name_hy TEXT NOT NULL,
display_name_en TEXT NOT NULL,
grammatical_number grammatical_number_type,
grammatical_case grammatical_case_type,
grammatical_article grammatical_article_type,
grammatical_person grammatical_person_type,
verb_tense verb_tense_type,
verb_mood verb_mood_type,
verb_polarity verb_polarity_type,
verbal_inflection_class verbal_inflection_class_type
);
-- In the context of the Nayiri Armenian Lexicon, a Lexeme functions as a container that
-- groups one or more Lemmas sharing the same or closely related meaning.
CREATE TABLE lexemes (
lexeme_id TEXT PRIMARY KEY,
description TEXT NOT NULL,
lemma_type lemma_type NOT NULL
);
-- In the context of the Nayiri Armenian Lexicon, a Lemma is a container with exactly
-- one canonical word form and exactly one part of speech, and encapsulates one or more
-- Word Forms derived from its canonical form.
CREATE TABLE lemmas (
lemma_id TEXT PRIMARY KEY,
lexeme_id TEXT NOT NULL REFERENCES lexemes(lexeme_id) ON DELETE CASCADE,
lemma_string TEXT NOT NULL,
part_of_speech TEXT NOT NULL,
lemma_display_string TEXT
);
-- A Word Form is a specific inflected realization of a lemma.
-- Each Word Form is associated with exactly one Inflection object, which provides its morphological analysis.
CREATE TABLE word_forms (
lemma_id TEXT NOT NULL REFERENCES lemmas(lemma_id) ON DELETE CASCADE,
inflection_id TEXT NOT NULL REFERENCES inflections(inflection_id),
form TEXT NOT NULL,
PRIMARY KEY (lemma_id, inflection_id)
);
CREATE TABLE lexicon_metadata (
version TEXT PRIMARY KEY,
attribution TEXT NOT NULL,
license TEXT NOT NULL,
publisher TEXT NOT NULL,
author TEXT NOT NULL,
contact_email TEXT NOT NULL,
website TEXT NOT NULL,
sponsorship TEXT
);