better table-snap
Christian Fraß

Christian Fraß commited on 2016-08-08 20:58:42
Zeige 18 geänderte Dateien mit 2058 Einfügungen und 2121 Löschungen.

... ...
@@ -3,16 +3,16 @@
3 3
 	<section class="subsection pseudo" id="de_grot_diktator">
4 4
 		<header>De grot diktator</header>
5 5
 		<span class="text lang_fs">
6
-			<p>Ek bet fur fargivung, dok ek ik vil nit are de verlds herskar — ek ar nit solk en man. Ek vil nit beherske odar neddrüke et man, insted ek vil helpe de maner alvar on alvan: De judisk, de hejdisk, de fargig, de vit, …. Vi al skal helpe en de ander fur at vi kön leve in en beder verld. Vi vil nit hate odar farakte us. Dis verld hav plats fur al maner on ur erd ar so rik, at vi al kön spise nok. De levrid kön are so fri on skön; dok vi hav farlatet de veg.</p>
7
-			<p>Gridhed hav sükent de maners seler on hav fült de verld med hatrid; het hav ledet us to elend on blutsketrid. Vi hav utvikelt raskhed, dok ur gester stan stil. Vi lat makiner verke fur us; ur vished hav makt us hokmudig on ur klughed hard on unfrendlik; vi denk altu mang on föl altu lit. Dok mer den makiner vi treng manlikhed; mer den klughed vi treng frendlikhed on gudhed. An dis egenheder, ur levrid ar frükridig on al ding ar lost.</p>
8
-			<p>Med de helprid av flütoger on de radio vi ar narer en to de ander den et tid ruk. Maner treng enhed on en alver arend bruderlikhed fur bruke dis utfindunger gud. Selv no mang tused in der verld kön höre min stem, mang tusend fartvivelt verer, kviner on smal kinder — ofarunger av en sistem, vilk kvel on fang unskuldig maner. Ek rup to al, vilk kön hör mig no: Fartvivel nit! De elend skal versvinde, van de gridhed versvind on de biterhed av maner, vilk frük de forskritrid av manskap. Maners hatrid skal versvinde on diktarorer skal döe. Dan de kraft, vilk di hav takt fra de folk, skal kome bak to de folk. Selv ef mang blud ar sketet: Tu kampe fur de frihed ar en gud sak.</p>
9
-			<p>Kemparer: Kemp nit fur tiraner, maner, vilk farakt je on mak je to sklaver, vilk vertskat nit jer levrid, vilk seg to je, vat jir skal make, true on föle! Di [drill] je, föd je, behandel je lik kanon-födung. Kemp nit fur dis fardervt maner — makin-maner med makin-hövder on makin-herter! Jir ar nit makiner, jir ar nit direr, jir ar maner. Lat de manlikhed blive in jer herter! Jir skal nit hate; bar de unlivt hat, de unlivt on de fardervt.</p>
10
-			<p>Kemperar: Kemp nit fur de sklavskap! Kemp fur de frihed! Ine de 17. avsnidung av de hajlig Lukas ar skrivt: ‚God ar in al maner.‘ Nit bar in en grup av maner, insted in al maner, in je! Jir, de folk, hav de kraft; de kraft fur tu bue vapener, dok ok de kraft fur tu sprede gladhed. Jir, de folk, hav de kraft fur tu make dis levrid fri on skön, fur tu make dis levrid en vunderfült sak. Darfur: In de nenung av folkherskrid: Lat us bruke dis kraft! Lat us verde en! Lat us kempe fur en nü verld, fur en gud verld, vilk giv magrid tu verke to de maner, vilk giv to de jung en eftertid on to de old sikerhed. Ok de tiraner hav truent dis to us fur tu foe de vold, dok di hav lügt. Di mak nit sant dir luvung, di ing tid vil. Tiraner frien bar dim selv, dok de folk skal blive sklaver.</p>
11
-			<p>Lat us no kempe fur tu upfüle dis luvung. Lat us kempe fur tu make de verld fri, fur tu uvervinde landmarker, gridhed, hatrid on de nittillatung. Lat us kempe fur en verld med farstanrid, en verld, var vetskap on forskritrid skal lede to al mans gladhed.</p>
12
-			<p>Kemparer: In de nenung av folkherskrid: Lat us al verde en!</p>
6
+			<p>Ek bid fur fargivung, dok ek vil nit are de verlds herskar — ek ar nit solk en man. Ek vil nit beherske odar neddrüke et man, insted ek vil helpe de maner alvan önd alvar: De judisk, de hejdisk, de fargig, de vit, …. Vi al skal helpe en de ander fur at vi kön leve ine en beter verld. Vi vil nit hate odar farakte us. Dis verld hav plats fur al maner önd ur erd ar so rik, at vi al kön spise nok. De levrid kön are so fri önd skön; dok vi hav farlatet de veg.</p>
7
+			<p>Gridhed hav sükent de maners seler önd hav fült de verld med hatrid; het hav ledet us to elend önd blutsketrid. Vi hav utvikelt raskhed, dok ur gester stan stil. Vi lat makiner verke fur us; ur vetrid hav makt us hokmudig önd ur klughed hard önd unfrendlik; vi denk altu mang önd föl altu lit. Dok mer den makiner vi treng manlikhed; mer den klughed vi treng frendlikhed önd gudhed. An dis egenheder, ur levrid ar frükridig önd al ding ar lost.</p>
8
+			<p>Med de helprid av flütüger önd de radio vi ar narer en to de ander den et tid ruk. De manskap treng enhed önd en alvar arend bruderlikhed fur tu bruke dis utfindunger gud. Selv no mang tused in der verld kön höre min stem, mang tusend fartvivelt verer, kviner önd smal kinder — ofarunger av en sistem, vilk fang önd kvel unskuldig maner. Ek rup to al, vilk kön hör mig no: Fartvivel nit! De elend skal farsvinde, van de gridhed farsvind önd de biterhed av maner, vilk frük de manskaps forskritrid. De Maners hatrid skal farsvinde önd diktarorer skal döe. Dan de kraft, vilk di hav takt fra de folk, skal kome bak to de folk. Selv ef mang blud ar sketet: Tu kempe fur de frihed ar en gud sak.</p>
9
+			<p>Kemparer: Kemp nit fur tiraner; maner, vilk farakt ju önd mak ju to sklaver; vilk vertskat nit jur levrid, vilk seg to ju, vat je skal make, true önd föle! Di skend ju, föd ju, behandel ju lik kanon-födung. Kemp nit fur dis fardervt maner — makin-maner med makin-hövder önd makin-herter! Je ar nit makiner, je ar nit direr, je ar maner. Lat de manlikhed blive ine jur herter! Je skal nit hate; bar de unlivt hat, de unlivt önd de fardervt.</p>
10
+			<p>Kemperar: Kemp nit fur de sklavskap! Kemp fur de frihed! Ine de 17. avsnidung av de hajlig Lukas ar skrivt: ‚God ar ine al maner.‘ — nit bar ine en grup av maner, insted ine al maner, ine ju. Je, de folk, hav de kraft; de kraft fur tu bue vapener, dok ok de kraft fur tu sprede gladhed. Je, de folk, hav de kraft fur tu make dis levrid fri önd skön, fur tu make dis levrid en vunderfült sak. Darfur: Ine de nam av folkherskrid: Lat us bruke dis kraft! Lat us verde en! Lat us kempe fur en nü verld, fur en beter verld, vilk giv to de maner magrid tu verke, vilk giv en eftertid to de jung önd sikerhed to de old. Ok de tiraner hav truent dis to us fur tu foe de vold, dok di hav lügt. Di mak nit sant dir luvung, di ing tid vil. Tiraner frien bar dim selv, dok de folk skal blive sklaver.</p>
11
+			<p>Lat us no kempe fur tu upfüle dis luvung. Lat us kempe fur tu make de verld fri, fur tu uvervinde landmarker, gridhed, hatrid önd de untillatrid. Lat us kempe fur en verld med farstanrid, en verld, var vetridskap önd forskritrid skal lede to al mans gladhed.</p>
12
+			<p>Kemparer: Ine de nam av folkherskrid: Lat us al verde en!</p>
13 13
 		</span>
14
+		<p>An attempt to translate the final speech from the famous Charlie Chaplin movie "The great dictator" (with some passages inspired by the German translation); the English original can be listened to <a href="https://www.youtube.com/watch?v=ibVpDhW6kDQ">on youtube</a>; or in case you'd like to hear a more heart-wrenching version: <a href="https://www.youtube.com/watch?v=Gaq62VCcnew">accompanied by "Hans Zimmer - Time"</a>.</p>
14 15
 		<!--
15
-		<a href="https://www.youtube.com/watch?v=ibVpDhW6kDQ">No music</a>
16 16
 		<a href="https://www.youtube.com/watch?v=Gaq62VCcnew">With "Hans Zimmer -- Time"</a>
17 17
 		  -->
18 18
 	</section>
... ...
@@ -1,6 +1,7 @@
1 1
 <?php
2 2
 global $configuration;
3 3
 include_once("source/logic/server/data.php");
4
+include_once("source/logic/server/sql.php");
4 5
 include_once("source/logic/server/table.php");
5 6
 
6 7
 function convert_persona($persona) {return [0 => "impersonal", 1 => "1st person", 2 => "2nd person", 3 => "3rd person"][$persona];}
... ...
@@ -10,54 +11,96 @@ function convert_genus($genus) {return [0 => "common", 1 => "masculine", 2 => "f
10 11
 <section class="subsection" id="personal_pronouns">
11 12
 	<header>Personal Pronouns</header>
12 13
 <?php
13
-	$table = new class_table
14
-	(
15
-		[
16
-			new class_column
17
-			(
18
-				"Case",
19
-				function ($row)
14
+	$data_common = read_json("../../data/common.json");
15
+	$data_pronouns = read_json("../../data/personal_pronouns.json");
16
+	
17
+	$data = $data_pronouns["words"];
20 18
 	{
21
-					return [
22
-						convert_persona($row["persona"]),
23
-						convert_numerus($row["numerus"]),
24
-						convert_genus($row["genus"]),
25
-					];
26
-				},
27
-				function ($value)
28 19
 		{
29
-					return implode(" / ", $value);
20
+			$data = sql_cross($data, $data_common["counts"]);
21
+			$data = sql_select($data, function ($row) {return ($row["count_id"] == $row["id"]);});
22
+			$data = sql_delete($data, ["count_id", "id"]);
23
+			$data = sql_rename($data, "name", "count_name");
30 24
 		}
31
-			),
32
-			/*
33
-			 */
34
-			new class_column
35
-			(
36
-				$configuration["languagemap"]["fs"],
37
-				function ($row)
38 25
 		{
39
-					return $row["fs"];
40
-				},
41
-				function ($value)
26
+			$data = sql_cross($data, $data_common["persons"]);
27
+			$data = sql_select($data, function ($row) {return ($row["person_id"] == $row["id"]);});
28
+			$data = sql_delete($data, ["person_id", "id"]);
29
+			$data = sql_rename($data, "name", "person_name");
30
+		}
42 31
 		{
43
-					return implode(", ", array_map(function ($word) {return mark($word, ["word", "lang_fs"]);}, $value));
32
+			$data = sql_cross($data, $data_common["genders"]);
33
+			$data = sql_select($data, function ($row) {return ($row["gender_id"] == $row["id"]);});
34
+			$data = sql_delete($data, ["gender_id", "id"]);
35
+			$data = sql_rename($data, "name", "gender_name");
44 36
 		}
45
-			),
46
-			new class_column
47
-			(
48
-				$configuration["languagemap"][$configuration["target"]],
49
-				function ($row)
50 37
 		{
51
-					global $configuration;
52
-					return $row[$configuration["target"]];
53
-				},
54
-				function ($value)
38
+			$data = sql_cross($data, $data_pronouns["types"]);
39
+			$data = sql_select($data, function ($row) {return ($row["type_id"] == $row["id"]);});
40
+			$data = sql_delete($data, ["type_id", "id"]);
41
+			$data = sql_rename($data, "name", "type_name");
42
+		}
55 43
 		{
56
-					return ((count($value) == 0) ? "--" : implode(", ", array_map(function ($word) {global $configuration; return mark($word, ["word", "lang_" . $configuration["target"]]);}, $value)));
44
+			$data = sql_cross($data, $data_common["cases"]);
45
+			$data = sql_select($data, function ($row) {return ($row["case_id"] == $row["id"]);});
46
+			$data = sql_delete($data, ["case_id", "id"]);
47
+			$data = sql_rename($data, "name", "case_name");
48
+		}
57 49
 	}
58
-			),
50
+	
51
+	$table = new class_table
52
+	(
53
+		[
54
+			new class_column("Language", "language_id"),
55
+			new class_column("Count", "count_name"),
56
+			new class_column("Person", "person_name"),
57
+			new class_column("Gender", "gender_name"),
58
+			new class_column("Type", "type_name"),
59
+			new class_column("Case", "case_name"),
60
+			new class_column("Words", "words", function ($x) {return json_encode($x);}),
59 61
 		],
60
-		read_json("source/data/personal_pronouns.json")
62
+		$data
63
+	);
64
+	
65
+	$table = $table->snap
66
+	(
67
+		[
68
+			"label_vertical" => function ($column) {return "";},
69
+			"columns_vertical" =>
70
+			[
71
+				$table->columns_get()[4],
72
+				$table->columns_get()[5],
73
+			],
74
+			"label_horizontal" => function ($column, $value) {return $value;},
75
+			"columns_horizontal" =>
76
+			[
77
+				$table->columns_get()[1],
78
+				$table->columns_get()[2],
79
+				$table->columns_get()[3],
80
+			],
81
+			"columns_data" =>
82
+			[
83
+				$table->columns_get()[0],
84
+				$table->columns_get()[6],
85
+			],
86
+			"data_aggregator" => function ($values)
87
+			{
88
+				return $values;
89
+			},
90
+			"data_formatter" => function ($value)
91
+			{
92
+				return (
93
+					_bar("words")
94
+					(
95
+						[
96
+							"original" => $value[0]["words"],
97
+							"translated" => $value[1]["words"],
98
+						]
99
+					)
100
+				);
101
+				return json_encode($value);
102
+			},
103
+		]
61 104
 	);
62 105
 	$table->generate();
63 106
  ?>
... ...
@@ -1,5 +1,30 @@
1 1
 <section class="section" id="sentence_content">
2 2
 	<header>Sentence Structure</header>
3
+	<!--
3 4
 	<span class="todo">all</span>
5
+	  -->
6
+	<?php proposal(); ?>
7
+	<!--
8
+	<p>elements in curly brackets are optional.</p>
9
+	  -->
10
+	<p>The 
11
+	<section class="subsection" id="declarative_sentences">
12
+		<header>Declarative Sentences</header>
13
+		<p>Scheme: "<span class="clause subject meta optional">subject</span> <span class="clause predicate meta mandatory">predicate</span> <span class="clause object meta optional">object</span> <span class="clause other meta optional">other parts</span>."</p>
14
+		<p>Example: "<span class="clause subject">De vulf</span> <span class="clause predicate">hav givt</span> <span class="clause object">en sten</span> <span class="clause object">to de fogel</span> <span class="clause other">po fordag</span>."</p>
15
+		<p>Translation: <span class="sentence lang_en">The wolf has given a stone to the bird yesterday.</span></p>
16
+	</section>
17
+	<section class="subsection" id="interrogative_sentences">
18
+		<header>Interrogative Sentences</header>
19
+		<p>Scheme: "<span class="clause predicate meta mandatory">predicate:flected verb</span> <span class="clause subject meta optional">subject</span> <span class="clause predicate meta mandatory">predicate:rest</span> <span class="clause object meta optional">object</span> <span class="clause other meta optional">other parts</span>."</p>
20
+		<p>Example: "<span class="clause predicate">Hav</span> <span class="clause subject">de vulf</span> <span class="clause predicate">givt</span> <span class="clause object">en sten</span> <span class="clause object">to de fogel</span> <span class="clause other">po fordag</span>?"</p>
21
+		<p>Translation: <span class="sentence lang_en">Has the wolf given a stone to the bird yesterday?</span></p>
22
+	</section>
23
+	<section class="subsection" id="imperative_sentences">
24
+		<header>Imperative Sentences</header>
25
+		<p>Scheme: "<span class="clause predicate meta mandatory">predicate</span> <span class="clause subject meta optional">subject</span> <span class="clause object meta optional">object</span> <span class="clause other meta optional">other parts</span>!"</p>
26
+		<p>Example: "<span class="clause predicate">Giv</span> <span class="clause object">en sten</span> <span class="clause object">to de fogel</span>!</p>
27
+		<p>Translation: <span class="sentence lang_en">Give a stone to the bird!</span></p>
28
+	</section>
4 29
 </section>
5 30
 
... ...
@@ -1,233 +1,126 @@
1
-[
2 1
 {
3
-		"type": "x0",
4
-		"positive_absolute": {
5
-			"fs": ["for"],
6
-			"en": ["in front"]
7
-		},
8
-		"positive_relative": {
9
-			"fs": ["for (lut)"],
10
-			"en": ["in front of"]
11
-		},
12
-		"positive_attributive": {
13
-			"fs": ["for arend"],
14
-			"en": ["fore","front"]
15
-		},
16
-		"directive_absolute": {
17
-			"fs": ["to for"],
18
-			"en": ["forward"]
19
-		},
20
-		"directive_relative": {
21
-			"fs": ["to for (lut)"],
22
-			"en": ["in front of"]
23
-		}
24
-	},
25
-	{
26
-		"type": "x1",
27
-		"positive_absolute": {
28
-			"fs": ["ruk"],
29
-			"en": ["back"]
30
-		},
31
-		"positive_relative": {
32
-			"fs": ["ruk (lut)"],
33
-			"en": ["behind"]
34
-		},
35
-		"positive_attributive": {
36
-			"fs": ["ruk arend"],
37
-			"en": ["rear", "hind"]
38
-		},
39
-		"directive_absolute": {
40
-			"fs": ["to ruk"],
41
-			"en": ["backward", "behind"]
42
-		},
43
-		"directive_relative": {
44
-			"fs": ["to ruk (lut)"],
45
-			"en": ["behind"]
46
-		}
47
-	},
48
-	{
49
-		"type": "x2",
50
-		"positive_absolute": {
51
-			"fs": ["top"],
52
-			"en": ["on top"]
53
-		},
54
-		"positive_relative": {
55
-			"fs": ["top (lut)"],
56
-			"en": ["over", "above"]
57
-		},
58
-		"positive_attributive": {
59
-			"fs": ["top arend"],
60
-			"en": ["upper"]
61
-		},
62
-		"directive_absolute": {
63
-			"fs": ["to top"],
64
-			"en": ["up"]
65
-		},
66
-		"directive_relative": {
67
-			"fs": ["to top (lut)"],
68
-			"en": ["over","above"]
69
-		}
70
-	},
71
-	{
72
-		"type": "x3",
73
-		"positive_absolute": {
74
-			"fs": ["ned"],
75
-			"en": ["below"]
76
-		},
77
-		"positive_relative": {
78
-			"fs": ["ned (lut)"],
79
-			"en": ["under"]
80
-		},
81
-		"positive_attributive": {
82
-			"fs": ["ned arend"],
83
-			"en": ["lower"]
84
-		},
85
-		"directive_absolute": {
86
-			"fs": ["to ned"],
87
-			"en": ["down"]
88
-		},
89
-		"directive_relative": {
90
-			"fs": ["to ned (lut)"],
91
-			"en": ["under"]
92
-		}
93
-	},
94
-	{
95
-		"type": "x4",
96
-		"positive_absolute": {
97
-			"fs": ["vinst"],
98
-			"en": ["left"]
99
-		},
100
-		"positive_relative": {
101
-			"fs": ["vinst (lut)"],
102
-			"en": ["left from"]
103
-		},
104
-		"positive_attributive": {
105
-			"fs": ["vinst arend"],
106
-			"en": ["left"]
107
-		},
108
-		"directive_absolute": {
109
-			"fs": ["to vinst"],
110
-			"en": ["to the left"]
111
-		},
112
-		"directive_relative": {
113
-			"fs": ["to vinst (lut)"],
114
-			"en": ["to the left of"]
115
-		}
116
-	},
117
-	{
118
-		"type": "x5",
119
-		"positive_absolute": {
120
-			"fs": ["hög"],
121
-			"en": ["right"]
122
-		},
123
-		"positive_relative": {
124
-			"fs": ["hög (lut)"],
125
-			"en": ["right from"]
126
-		},
127
-		"positive_attributive": {
128
-			"fs": ["hög arend"],
129
-			"en": ["right"]
130
-		},
131
-		"directive_absolute": {
132
-			"fs": ["to hög"],
133
-			"en": ["to the right"]
134
-		},
135
-		"directive_relative": {
136
-			"fs": ["to hög (lut)"],
137
-			"en": ["to the right of"]
138
-		}
139
-	},
140
-	{
141
-		"type": "x6",
142
-		"positive_absolute": {
143
-			"fs": ["ine"],
144
-			"en": ["inside"]
145
-		},
146
-		"positive_relative": {
147
-			"fs": ["ine (lut)"],
148
-			"en": ["in", "inside from"]
149
-		},
150
-		"positive_attributive": {
151
-			"fs": ["ine arend"],
152
-			"en": ["inner"]
153
-		},
154
-		"directive_absolute": {
155
-			"fs": ["in"],
156
-			"en": ["in"]
157
-		},
158
-		"directive_relative": {
159
-			"fs": ["in (lut)"],
160
-			"en": ["into"]
161
-		}
162
-	},
163
-	{
164
-		"type": "x7",
165
-		"positive_absolute": {
166
-			"fs": ["ute"],
167
-			"en": ["outside"]
168
-		},
169
-		"positive_relative": {
170
-			"fs": ["ute (lut)"],
171
-			"en": ["out", "outside from"]
172
-		},
173
-		"positive_attributive": {
174
-			"fs": ["ute arend"],
175
-			"en": ["outer"]
176
-		},
177
-		"directive_absolute": {
178
-			"fs": ["ut"],
179
-			"en": ["out"]
180
-		},
181
-		"directive_relative": {
182
-			"fs": ["ut (lut)"],
183
-			"en": ["out of"]
184
-		}
185
-	},
186
-	{
187
-		"type": "x8",
188
-		"positive_absolute": {
189
-			"fs": ["upe"],
190
-			"en": ["upon"]
191
-		},
192
-		"positive_relative": {
193
-			"fs": ["upe (lut)"],
194
-			"en": ["thereon"]
195
-		},
196
-		"positive_attributive": {
197
-			"fs": ["upe arend"],
198
-			"en": []
199
-		},
200
-		"directive_absolute": {
201
-			"fs": ["up"],
202
-			"en": ["on"]
203
-		},
204
-		"directive_relative": {
205
-			"fs": ["up (lut)"],
206
-			"en": ["onto"]
207
-		}
208
-	},
209
-	{
210
-		"type": "x9",
211
-		"positive_absolute": {
212
-			"fs": ["mel"],
213
-			"en": ["inbetween"]
214
-		},
215
-		"positive_relative": {
216
-			"fs": ["mel (lut)"],
217
-			"en": ["between"]
218
-		},
219
-		"positive_attributive": {
220
-			"fs": ["mel arend"],
221
-			"en": ["middle"]
222
-		},
223
-		"directive_absolute": {
224
-			"fs": ["to mel"],
225
-			"en": ["between"]
226
-		},
227
-		"directive_relative": {
228
-			"fs": ["to mel (lut)"],
229
-			"en": ["between"]
230
-		}
231
-	}
2
+	"situations": [
3
+		{"id": "x00", "name": "x00"},
4
+		{"id": "x01", "name": "x01"},
5
+		{"id": "x02", "name": "x02"},
6
+		{"id": "x03", "name": "x03"},
7
+		{"id": "x04", "name": "x04"},
8
+		{"id": "x05", "name": "x05"},
9
+		{"id": "x06", "name": "x06"},
10
+		{"id": "x07", "name": "x07"},
11
+		{"id": "x08", "name": "x08"},
12
+		{"id": "x09", "name": "x09"}
13
+	],
14
+	"types": [
15
+		{"id": "pos", "name": "positive"},
16
+		{"id": "dir", "name": "directive"}
17
+	],
18
+	"kinds": [
19
+		{"id": "abs", "name": "absolute"},
20
+		{"id": "rel", "name": "relative"},
21
+		{"id": "att", "name": "attributive"}
22
+	],
23
+	"words": [
24
+		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "kind_id": "abs", "words": ["for"]},
25
+		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "kind_id": "rel", "words": ["for (lut)"]},
26
+		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "kind_id": "att", "words": ["for arend"]},
27
+		{"language_id": "fs", "situation_id": "x00", "type_id": "dir", "kind_id": "abs", "words": ["to for"]},
28
+		{"language_id": "fs", "situation_id": "x00", "type_id": "dir", "kind_id": "rel", "words": ["to for (lut)"]},
29
+		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "kind_id": "abs", "words": ["ruk"]},
30
+		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "kind_id": "rel", "words": ["ruk (lut)"]},
31
+		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "kind_id": "att", "words": ["ruk arend"]},
32
+		{"language_id": "fs", "situation_id": "x01", "type_id": "dir", "kind_id": "abs", "words": ["to ruk"]},
33
+		{"language_id": "fs", "situation_id": "x01", "type_id": "dir", "kind_id": "rel", "words": ["to ruk (lut)"]},
34
+		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "kind_id": "abs", "words": ["top"]},
35
+		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "kind_id": "rel", "words": ["top (lut)"]},
36
+		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "kind_id": "att", "words": ["top arend"]},
37
+		{"language_id": "fs", "situation_id": "x02", "type_id": "dir", "kind_id": "abs", "words": ["to top"]},
38
+		{"language_id": "fs", "situation_id": "x02", "type_id": "dir", "kind_id": "rel", "words": ["to top (lut)"]},
39
+		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "kind_id": "abs", "words": ["ned"]},
40
+		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "kind_id": "rel", "words": ["ned (lut)"]},
41
+		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "kind_id": "att", "words": ["ned arend"]},
42
+		{"language_id": "fs", "situation_id": "x03", "type_id": "dir", "kind_id": "abs", "words": ["to ned"]},
43
+		{"language_id": "fs", "situation_id": "x03", "type_id": "dir", "kind_id": "rel", "words": ["to ned (lut)"]},
44
+		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "kind_id": "abs", "words": ["vinst"]},
45
+		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "kind_id": "rel", "words": ["vinst (lut)"]},
46
+		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "kind_id": "att", "words": ["vinst arend"]},
47
+		{"language_id": "fs", "situation_id": "x04", "type_id": "dir", "kind_id": "abs", "words": ["to vinst"]},
48
+		{"language_id": "fs", "situation_id": "x04", "type_id": "dir", "kind_id": "rel", "words": ["to vinst (lut)"]},
49
+		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "kind_id": "abs", "words": ["hög"]},
50
+		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "kind_id": "rel", "words": ["hög (lut)"]},
51
+		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "kind_id": "att", "words": ["hög arend"]},
52
+		{"language_id": "fs", "situation_id": "x05", "type_id": "dir", "kind_id": "abs", "words": ["to hög"]},
53
+		{"language_id": "fs", "situation_id": "x05", "type_id": "dir", "kind_id": "rel", "words": ["to hög (lut)"]},
54
+		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "kind_id": "abs", "words": ["ine"]},
55
+		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "kind_id": "rel", "words": ["ine (lut)"]},
56
+		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "kind_id": "att", "words": ["ine arend"]},
57
+		{"language_id": "fs", "situation_id": "x06", "type_id": "dir", "kind_id": "abs", "words": ["in"]},
58
+		{"language_id": "fs", "situation_id": "x06", "type_id": "dir", "kind_id": "rel", "words": ["in (lut)"]},
59
+		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "kind_id": "abs", "words": ["ute"]},
60
+		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "kind_id": "rel", "words": ["ute (lut)"]},
61
+		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "kind_id": "att", "words": ["ute arend"]},
62
+		{"language_id": "fs", "situation_id": "x07", "type_id": "dir", "kind_id": "abs", "words": ["ut"]},
63
+		{"language_id": "fs", "situation_id": "x07", "type_id": "dir", "kind_id": "rel", "words": ["ut (lut)"]},
64
+		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "kind_id": "abs", "words": ["upe"]},
65
+		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "kind_id": "rel", "words": ["upe (lut)"]},
66
+		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "kind_id": "att", "words": ["upe arend"]},
67
+		{"language_id": "fs", "situation_id": "x08", "type_id": "dir", "kind_id": "abs", "words": ["up"]},
68
+		{"language_id": "fs", "situation_id": "x08", "type_id": "dir", "kind_id": "rel", "words": ["up (lut)"]},
69
+		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "kind_id": "abs", "words": ["mel"]},
70
+		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "kind_id": "rel", "words": ["mel (lut)"]},
71
+		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "kind_id": "att", "words": ["mel arend"]},
72
+		{"language_id": "fs", "situation_id": "x09", "type_id": "dir", "kind_id": "abs", "words": ["to mel"]},
73
+		{"language_id": "fs", "situation_id": "x09", "type_id": "dir", "kind_id": "rel", "words": ["to mel (lut)"]},
74
+		{"language_id": "en", "situation_id": "x00", "type_id": "pos", "kind_id": "abs", "words": ["in front"]},
75
+		{"language_id": "en", "situation_id": "x00", "type_id": "pos", "kind_id": "rel", "words": ["in front of"]},
76
+		{"language_id": "en", "situation_id": "x00", "type_id": "pos", "kind_id": "att", "words": ["fore", "front"]},
77
+		{"language_id": "en", "situation_id": "x00", "type_id": "dir", "kind_id": "abs", "words": ["forward"]},
78
+		{"language_id": "en", "situation_id": "x00", "type_id": "dir", "kind_id": "rel", "words": ["in front of"]},
79
+		{"language_id": "en", "situation_id": "x01", "type_id": "pos", "kind_id": "abs", "words": ["back"]},
80
+		{"language_id": "en", "situation_id": "x01", "type_id": "pos", "kind_id": "rel", "words": ["behind"]},
81
+		{"language_id": "en", "situation_id": "x01", "type_id": "pos", "kind_id": "att", "words": ["rear", "hind"]},
82
+		{"language_id": "en", "situation_id": "x01", "type_id": "dir", "kind_id": "abs", "words": ["backward", "behind"]},
83
+		{"language_id": "en", "situation_id": "x01", "type_id": "dir", "kind_id": "rel", "words": ["behind"]},
84
+		{"language_id": "en", "situation_id": "x02", "type_id": "pos", "kind_id": "abs", "words": ["on top"]},
85
+		{"language_id": "en", "situation_id": "x02", "type_id": "pos", "kind_id": "rel", "words": ["over", "above"]},
86
+		{"language_id": "en", "situation_id": "x02", "type_id": "pos", "kind_id": "att", "words": ["upper"]},
87
+		{"language_id": "en", "situation_id": "x02", "type_id": "dir", "kind_id": "abs", "words": ["up"]},
88
+		{"language_id": "en", "situation_id": "x02", "type_id": "dir", "kind_id": "rel", "words": ["over", "above"]},
89
+		{"language_id": "en", "situation_id": "x03", "type_id": "pos", "kind_id": "abs", "words": ["below"]},
90
+		{"language_id": "en", "situation_id": "x03", "type_id": "pos", "kind_id": "rel", "words": ["under"]},
91
+		{"language_id": "en", "situation_id": "x03", "type_id": "pos", "kind_id": "att", "words": ["lower"]},
92
+		{"language_id": "en", "situation_id": "x03", "type_id": "dir", "kind_id": "abs", "words": ["down"]},
93
+		{"language_id": "en", "situation_id": "x03", "type_id": "dir", "kind_id": "rel", "words": ["under"]},
94
+		{"language_id": "en", "situation_id": "x04", "type_id": "pos", "kind_id": "abs", "words": ["left"]},
95
+		{"language_id": "en", "situation_id": "x04", "type_id": "pos", "kind_id": "rel", "words": ["left from"]},
96
+		{"language_id": "en", "situation_id": "x04", "type_id": "pos", "kind_id": "att", "words": ["left"]},
97
+		{"language_id": "en", "situation_id": "x04", "type_id": "dir", "kind_id": "abs", "words": ["to the left"]},
98
+		{"language_id": "en", "situation_id": "x04", "type_id": "dir", "kind_id": "rel", "words": ["to the left of"]},
99
+		{"language_id": "en", "situation_id": "x05", "type_id": "pos", "kind_id": "abs", "words": ["right"]},
100
+		{"language_id": "en", "situation_id": "x05", "type_id": "pos", "kind_id": "rel", "words": ["right from"]},
101
+		{"language_id": "en", "situation_id": "x05", "type_id": "pos", "kind_id": "att", "words": ["right"]},
102
+		{"language_id": "en", "situation_id": "x05", "type_id": "dir", "kind_id": "abs", "words": ["to the right"]},
103
+		{"language_id": "en", "situation_id": "x05", "type_id": "dir", "kind_id": "rel", "words": ["to the right of"]},
104
+		{"language_id": "en", "situation_id": "x06", "type_id": "pos", "kind_id": "abs", "words": ["inside"]},
105
+		{"language_id": "en", "situation_id": "x06", "type_id": "pos", "kind_id": "rel", "words": ["in", "inside from"]},
106
+		{"language_id": "en", "situation_id": "x06", "type_id": "pos", "kind_id": "att", "words": ["inner"]},
107
+		{"language_id": "en", "situation_id": "x06", "type_id": "dir", "kind_id": "abs", "words": ["in"]},
108
+		{"language_id": "en", "situation_id": "x06", "type_id": "dir", "kind_id": "rel", "words": ["into"]},
109
+		{"language_id": "en", "situation_id": "x07", "type_id": "pos", "kind_id": "abs", "words": ["outside"]},
110
+		{"language_id": "en", "situation_id": "x07", "type_id": "pos", "kind_id": "rel", "words": ["out", "outside from"]},
111
+		{"language_id": "en", "situation_id": "x07", "type_id": "pos", "kind_id": "att", "words": ["outer"]},
112
+		{"language_id": "en", "situation_id": "x07", "type_id": "dir", "kind_id": "abs", "words": ["out"]},
113
+		{"language_id": "en", "situation_id": "x07", "type_id": "dir", "kind_id": "rel", "words": ["out of"]},
114
+		{"language_id": "en", "situation_id": "x08", "type_id": "pos", "kind_id": "abs", "words": ["upon"]},
115
+		{"language_id": "en", "situation_id": "x08", "type_id": "pos", "kind_id": "rel", "words": ["thereon"]},
116
+		{"language_id": "en", "situation_id": "x08", "type_id": "pos", "kind_id": "att", "words": []},
117
+		{"language_id": "en", "situation_id": "x08", "type_id": "dir", "kind_id": "abs", "words": ["on"]},
118
+		{"language_id": "en", "situation_id": "x08", "type_id": "dir", "kind_id": "rel", "words": ["onto"]},
119
+		{"language_id": "en", "situation_id": "x09", "type_id": "pos", "kind_id": "abs", "words": ["inbetween"]},
120
+		{"language_id": "en", "situation_id": "x09", "type_id": "pos", "kind_id": "rel", "words": ["between"]},
121
+		{"language_id": "en", "situation_id": "x09", "type_id": "pos", "kind_id": "att", "words": ["middle"]},
122
+		{"language_id": "en", "situation_id": "x09", "type_id": "dir", "kind_id": "abs", "words": ["between"]},
123
+		{"language_id": "en", "situation_id": "x09", "type_id": "dir", "kind_id": "rel", "words": ["between"]}
232 124
 	]
125
+}
233 126
 
... ...
@@ -0,0 +1,233 @@
1
+[
2
+	{
3
+		"type": "x0",
4
+		"positive_absolute": {
5
+			"fs": ["for"],
6
+			"en": ["in front"]
7
+		},
8
+		"positive_relative": {
9
+			"fs": ["for (lut)"],
10
+			"en": ["in front of"]
11
+		},
12
+		"positive_attributive": {
13
+			"fs": ["for arend"],
14
+			"en": ["fore","front"]
15
+		},
16
+		"directive_absolute": {
17
+			"fs": ["to for"],
18
+			"en": ["forward"]
19
+		},
20
+		"directive_relative": {
21
+			"fs": ["to for (lut)"],
22
+			"en": ["in front of"]
23
+		}
24
+	},
25
+	{
26
+		"type": "x1",
27
+		"positive_absolute": {
28
+			"fs": ["ruk"],
29
+			"en": ["back"]
30
+		},
31
+		"positive_relative": {
32
+			"fs": ["ruk (lut)"],
33
+			"en": ["behind"]
34
+		},
35
+		"positive_attributive": {
36
+			"fs": ["ruk arend"],
37
+			"en": ["rear", "hind"]
38
+		},
39
+		"directive_absolute": {
40
+			"fs": ["to ruk"],
41
+			"en": ["backward", "behind"]
42
+		},
43
+		"directive_relative": {
44
+			"fs": ["to ruk (lut)"],
45
+			"en": ["behind"]
46
+		}
47
+	},
48
+	{
49
+		"type": "x2",
50
+		"positive_absolute": {
51
+			"fs": ["top"],
52
+			"en": ["on top"]
53
+		},
54
+		"positive_relative": {
55
+			"fs": ["top (lut)"],
56
+			"en": ["over", "above"]
57
+		},
58
+		"positive_attributive": {
59
+			"fs": ["top arend"],
60
+			"en": ["upper"]
61
+		},
62
+		"directive_absolute": {
63
+			"fs": ["to top"],
64
+			"en": ["up"]
65
+		},
66
+		"directive_relative": {
67
+			"fs": ["to top (lut)"],
68
+			"en": ["over","above"]
69
+		}
70
+	},
71
+	{
72
+		"type": "x3",
73
+		"positive_absolute": {
74
+			"fs": ["ned"],
75
+			"en": ["below"]
76
+		},
77
+		"positive_relative": {
78
+			"fs": ["ned (lut)"],
79
+			"en": ["under"]
80
+		},
81
+		"positive_attributive": {
82
+			"fs": ["ned arend"],
83
+			"en": ["lower"]
84
+		},
85
+		"directive_absolute": {
86
+			"fs": ["to ned"],
87
+			"en": ["down"]
88
+		},
89
+		"directive_relative": {
90
+			"fs": ["to ned (lut)"],
91
+			"en": ["under"]
92
+		}
93
+	},
94
+	{
95
+		"type": "x4",
96
+		"positive_absolute": {
97
+			"fs": ["vinst"],
98
+			"en": ["left"]
99
+		},
100
+		"positive_relative": {
101
+			"fs": ["vinst (lut)"],
102
+			"en": ["left from"]
103
+		},
104
+		"positive_attributive": {
105
+			"fs": ["vinst arend"],
106
+			"en": ["left"]
107
+		},
108
+		"directive_absolute": {
109
+			"fs": ["to vinst"],
110
+			"en": ["to the left"]
111
+		},
112
+		"directive_relative": {
113
+			"fs": ["to vinst (lut)"],
114
+			"en": ["to the left of"]
115
+		}
116
+	},
117
+	{
118
+		"type": "x5",
119
+		"positive_absolute": {
120
+			"fs": ["hög"],
121
+			"en": ["right"]
122
+		},
123
+		"positive_relative": {
124
+			"fs": ["hög (lut)"],
125
+			"en": ["right from"]
126
+		},
127
+		"positive_attributive": {
128
+			"fs": ["hög arend"],
129
+			"en": ["right"]
130
+		},
131
+		"directive_absolute": {
132
+			"fs": ["to hög"],
133
+			"en": ["to the right"]
134
+		},
135
+		"directive_relative": {
136
+			"fs": ["to hög (lut)"],
137
+			"en": ["to the right of"]
138
+		}
139
+	},
140
+	{
141
+		"type": "x6",
142
+		"positive_absolute": {
143
+			"fs": ["ine"],
144
+			"en": ["inside"]
145
+		},
146
+		"positive_relative": {
147
+			"fs": ["ine (lut)"],
148
+			"en": ["in", "inside from"]
149
+		},
150
+		"positive_attributive": {
151
+			"fs": ["ine arend"],
152
+			"en": ["inner"]
153
+		},
154
+		"directive_absolute": {
155
+			"fs": ["in"],
156
+			"en": ["in"]
157
+		},
158
+		"directive_relative": {
159
+			"fs": ["in (lut)"],
160
+			"en": ["into"]
161
+		}
162
+	},
163
+	{
164
+		"type": "x7",
165
+		"positive_absolute": {
166
+			"fs": ["ute"],
167
+			"en": ["outside"]
168
+		},
169
+		"positive_relative": {
170
+			"fs": ["ute (lut)"],
171
+			"en": ["out", "outside from"]
172
+		},
173
+		"positive_attributive": {
174
+			"fs": ["ute arend"],
175
+			"en": ["outer"]
176
+		},
177
+		"directive_absolute": {
178
+			"fs": ["ut"],
179
+			"en": ["out"]
180
+		},
181
+		"directive_relative": {
182
+			"fs": ["ut (lut)"],
183
+			"en": ["out of"]
184
+		}
185
+	},
186
+	{
187
+		"type": "x8",
188
+		"positive_absolute": {
189
+			"fs": ["upe"],
190
+			"en": ["upon"]
191
+		},
192
+		"positive_relative": {
193
+			"fs": ["upe (lut)"],
194
+			"en": ["thereon"]
195
+		},
196
+		"positive_attributive": {
197
+			"fs": ["upe arend"],
198
+			"en": []
199
+		},
200
+		"directive_absolute": {
201
+			"fs": ["up"],
202
+			"en": ["on"]
203
+		},
204
+		"directive_relative": {
205
+			"fs": ["up (lut)"],
206
+			"en": ["onto"]
207
+		}
208
+	},
209
+	{
210
+		"type": "x9",
211
+		"positive_absolute": {
212
+			"fs": ["mel"],
213
+			"en": ["inbetween"]
214
+		},
215
+		"positive_relative": {
216
+			"fs": ["mel (lut)"],
217
+			"en": ["between"]
218
+		},
219
+		"positive_attributive": {
220
+			"fs": ["mel arend"],
221
+			"en": ["middle"]
222
+		},
223
+		"directive_absolute": {
224
+			"fs": ["to mel"],
225
+			"en": ["between"]
226
+		},
227
+		"directive_relative": {
228
+			"fs": ["to mel (lut)"],
229
+			"en": ["between"]
230
+		}
231
+	}
232
+]
233
+
... ...
@@ -0,0 +1,40 @@
1
+{
2
+	"languages": [
3
+		{"id": "af", "name": "Afrikaans"},
4
+		{"id": "de", "name": "German"},
5
+		{"id": "da", "name": "Danish"},
6
+		{"id": "en", "name": "English"},
7
+		{"id": "eo", "name": "Esperanto"},
8
+		{"id": "fs", "name": "Folksprak"},
9
+		{"id": "is", "name": "Icelandic"},
10
+		{"id": "nb", "name": "Norwegian (Bokmål)"},
11
+		{"id": "nl", "name": "Dutch"},
12
+		{"id": "nn", "name": "Norwegian (Nynorsk)"},
13
+		{"id": "pg", "name": "Proto-Germanic"},
14
+		{"id": "sv", "name": "Swedish"},
15
+		{"id": "yi", "name": "Yiddish"}
16
+	],
17
+	"cases": [
18
+		{"id": "nom", "name": "nominative"},
19
+		{"id": "acc", "name": "accusative"},
20
+		{"id": "dat", "name": "dative"},
21
+		{"id": "gen", "name": "genitive"}
22
+	],
23
+	"counts": [
24
+		{"id": "sin", "name": "singular"},
25
+		{"id": "plu", "name": "plural"}
26
+	],
27
+	"persons": [
28
+		{"id": "imp", "name": "impersonal"},
29
+		{"id": "1st", "name": "1st"},
30
+		{"id": "2nd", "name": "2nd"},
31
+		{"id": "3rd", "name": "3rd"}
32
+	],
33
+	"genders": [
34
+		{"id": "neu", "name": "neuter"},
35
+		{"id": "mas", "name": "masculine"},
36
+		{"id": "fem", "name": "feminine"},
37
+		{"id": "com", "name": "common"}
38
+	]
39
+}
40
+
... ...
@@ -1,344 +1,181 @@
1
-[
2 1
 {
3
-		"domain": "Concrete",
4
-		"interrogative": {
5
-			"fs": ["vilk"],
6
-			"en": ["which"]
7
-		},
8
-		"relative": {
9
-			"fs": ["vilk"],
10
-			"en": ["which"]
11
-		},
12
-		"demonstrative_far": {
13
-			"fs": ["jen"],
14
-			"en": ["that"]
15
-		},
16
-		"demonstrative_near": {
17
-			"fs": ["dis"],
18
-			"en": ["this"]
19
-		},
20
-		"universal": {
21
-			"fs": ["al"],
22
-			"en": ["every", "all"]
23
-		},
24
-		"undefined": {
25
-			"fs": ["et"],
26
-			"en": ["some"]
27
-		},
28
-		"negative": {
29
-			"fs": ["ing"],
30
-			"en": ["no"]
31
-		}
32
-	},
33
-	{
34
-		"domain": "Person",
35
-		"interrogative": {
36
-			"fs": ["vilk man", "ve"],
37
-			"en": ["who"]
38
-		},
39
-		"relative": {
40
-			"fs": ["vilk man", "ve"],
41
-			"en": ["who"]
42
-		},
43
-		"demonstrative_far": {
44
-			"fs": ["jen man"],
45
-			"en": []
46
-		},
47
-		"demonstrative_near": {
48
-			"fs": ["dis man"],
49
-			"en": []
50
-		},
51
-		"universal": {
52
-			"fs": ["al man", "alve"],
53
-			"en": ["everyone"]
54
-		},
55
-		"undefined": {
56
-			"fs": ["et man", "etve"],
57
-			"en": ["someone"]
58
-		},
59
-		"negative": {
60
-			"fs": ["ing man", "ingve"],
61
-			"en": ["no one"]
62
-		}
63
-	},
64
-	{
65
-		"domain": "Thing",
66
-		"interrogative": {
67
-			"fs": ["vilk ding", "vat"],
68
-			"en": ["what"]
69
-		},
70
-		"relative": {
71
-			"fs": ["vilk ding", "vat"],
72
-			"en": ["what"]
73
-		},
74
-		"demonstrative_far": {
75
-			"fs": ["jen ding", "dat"],
76
-			"en": ["that"]
77
-		},
78
-		"demonstrative_near": {
79
-			"fs": ["dis ding"],
80
-			"en": ["this"]
81
-		},
82
-		"universal": {
83
-			"fs": ["al ding", "alvat"],
84
-			"en": ["everything"]
85
-		},
86
-		"undefined": {
87
-			"fs": ["et ding", "etvat"],
88
-			"en": ["something"]
89
-		},
90
-		"negative": {
91
-			"fs": ["ing ding", "ingvat"],
92
-			"en": ["nothing"]
93
-		}
94
-	},
95
-	{
96
-		"domain": "Posession",
97
-		"interrogative": {
98
-			"fs": ["av vilk man", "ves"],
99
-			"en": []
100
-		},
101
-		"relative": {
102
-			"fs": ["av vilk man", "ves"],
103
-			"en": []
104
-		},
105
-		"demonstrative_far": {
106
-			"fs": ["av jen man"],
107
-			"en": []
108
-		},
109
-		"demonstrative_near": {
110
-			"fs": ["av dis man"],
111
-			"en": []
112
-		},
113
-		"universal": {
114
-			"fs": ["av al man", "alves"],
115
-			"en": []
116
-		},
117
-		"undefined": {
118
-			"fs": ["av et man", "etves"],
119
-			"en": []
120
-		},
121
-		"negative": {
122
-			"fs": ["av ing man", "ingves"],
123
-			"en": []
124
-		}
125
-	},
126
-	{
127
-		"domain": "Time",
128
-		"interrogative": {
129
-			"fs": ["vilk tid", "van"],
130
-			"en": ["when"]
131
-		},
132
-		"relative": {
133
-			"fs": ["vilk tid", "van"],
134
-			"en": ["when"]
135
-		},
136
-		"demonstrative_far": {
137
-			"fs": ["jen tid", "dan"],
138
-			"en": ["then"]
139
-		},
140
-		"demonstrative_near": {
141
-			"fs": ["dis tid", "no"],
142
-			"en": ["now"]
143
-		},
144
-		"universal": {
145
-			"fs": ["al tid", "alvan"],
146
-			"en": ["always"]
147
-		},
148
-		"undefined": {
149
-			"fs": ["et tid", "etvan"],
150
-			"en": ["sometimes"]
151
-		},
152
-		"negative": {
153
-			"fs": ["ing tid", "ingvan"],
154
-			"en": ["never"]
155
-		}
156
-	},
157
-	{
158
-		"domain": "Location",
159
-		"interrogative": {
160
-			"fs": ["vilk sted", "var"],
161
-			"en": ["where"]
162
-		},
163
-		"relative": {
164
-			"fs": ["vilk sted", "var"],
165
-			"en": ["where"]
166
-		},
167
-		"demonstrative_far": {
168
-			"fs": ["jen sted", "dar"],
169
-			"en": ["there"]
170
-		},
171
-		"demonstrative_near": {
172
-			"fs": ["dis sted", "har"],
173
-			"en": ["here"]
174
-		},
175
-		"universal": {
176
-			"fs": ["al sted", "alvar"],
177
-			"en": ["everywhere"]
178
-		},
179
-		"undefined": {
180
-			"fs": ["et sted", "etvar"],
181
-			"en": ["somewhere"]
182
-		},
183
-		"negative": {
184
-			"fs": ["ing sted", "ingvar"],
185
-			"en": ["nowhere"]
186
-		}
187
-	},
188
-	{
189
-		"domain": "Direction",
190
-		"interrogative": {
191
-			"fs": ["to vilk sted", "varto"],
192
-			"en": []
193
-		},
194
-		"relative": {
195
-			"fs": ["to vilk sted", "varto"],
196
-			"en": []
197
-		},
198
-		"demonstrative_far": {
199
-			"fs": ["to jen sted", "darto"],
200
-			"en": []
201
-		},
202
-		"demonstrative_near": {
203
-			"fs": ["to dis sted", "harto"],
204
-			"en": []
205
-		},
206
-		"universal": {
207
-			"fs": ["to al sted", "alto"],
208
-			"en": []
209
-		},
210
-		"undefined": {
211
-			"fs": ["to et sted", "etto"],
212
-			"en": []
213
-		},
214
-		"negative": {
215
-			"fs": ["to ing sted", "ingto"],
216
-			"en": []
217
-		}
218
-	},
219
-	{
220
-		"domain": "Cause",
221
-		"interrogative": {
222
-			"fs": ["fur vilk grund", "varfur"],
223
-			"en": ["why"]
224
-		},
225
-		"relative": {
226
-			"fs": ["fur vilk grund", "varfur"],
227
-			"en": ["why"]
228
-		},
229
-		"demonstrative_far": {
230
-			"fs": ["fur jen grund", "darfur"],
231
-			"en": []
232
-		},
233
-		"demonstrative_near": {
234
-			"fs": ["fur dis grund", "harfur"],
235
-			"en": []
236
-		},
237
-		"universal": {
238
-			"fs": ["fur al grund", "alfur"],
239
-			"en": []
240
-		},
241
-		"undefined": {
242
-			"fs": ["fur et grund", "etfur"],
243
-			"en": []
244
-		},
245
-		"negative": {
246
-			"fs": ["fur ing grund", "ingfur"],
247
-			"en": []
248
-		}
249
-	},
250
-	{
251
-		"domain": "Manner",
252
-		"interrogative": {
253
-			"fs": ["vilk mot", "hur"],
254
-			"en": ["how"]
255
-		},
256
-		"relative": {
257
-			"fs": ["vilk mot", "hur"],
258
-			"en": ["how"]
259
-		},
260
-		"demonstrative_far": {
261
-			"fs": ["jen mot", "so"],
262
-			"en": ["so"]
263
-		},
264
-		"demonstrative_near": {
265
-			"fs": ["dis mot", "so"],
266
-			"en": ["so"]
267
-		},
268
-		"universal": {
269
-			"fs": ["al mot"],
270
-			"en": []
271
-		},
272
-		"undefined": {
273
-			"fs": ["et mot"],
274
-			"en": []
275
-		},
276
-		"negative": {
277
-			"fs": ["ing mot"],
278
-			"en": []
279
-		}
280
-	},
281
-	{
282
-		"domain": "Type",
283
-		"interrogative": {
284
-			"fs": ["vilk slag"],
285
-			"en": ["what kind of"]
286
-		},
287
-		"relative": {
288
-			"fs": ["vilk slag"],
289
-			"en": []
290
-		},
291
-		"demonstrative_far": {
292
-			"fs": ["jen slag", "solk"],
293
-			"en": ["such"]
294
-		},
295
-		"demonstrative_near": {
296
-			"fs": ["dis slag"],
297
-			"en": []
298
-		},
299
-		"universal": {
300
-			"fs": ["al slag"],
301
-			"en": []
302
-		},
303
-		"undefined": {
304
-			"fs": ["et slag"],
305
-			"en": []
306
-		},
307
-		"negative": {
308
-			"fs": ["ing slag"],
309
-			"en": []
310
-		}
311
-	},
312
-	{
313
-		"domain": "Amount",
314
-		"interrogative": {
315
-			"fs": ["vilk mang"],
316
-			"en": ["how many", "how much"]
317
-		},
318
-		"relative": {
319
-			"fs": ["vilk mang"],
320
-			"en": ["how many", "how much"]
321
-		},
322
-		"demonstrative_far": {
323
-			"fs": ["jen mang"],
324
-			"en": []
325
-		},
326
-		"demonstrative_near": {
327
-			"fs": ["dis mang"],
328
-			"en": []
329
-		},
330
-		"universal": {
331
-			"fs": ["al mang"],
332
-			"en": []
333
-		},
334
-		"undefined": {
335
-			"fs": ["et mang"],
336
-			"en": []
337
-		},
338
-		"negative": {
339
-			"fs": ["ing mang"],
340
-			"en": []
341
-		}
342
-	}
2
+	"domains": [
3
+		{"id": "con", "name": "Concrete"},
4
+		{"id": "per", "name": "Person"},
5
+		{"id": "thi", "name": "Thing"},
6
+		{"id": "pos", "name": "Posession"},
7
+		{"id": "tim", "name": "Time"},
8
+		{"id": "loc", "name": "Location"},
9
+		{"id": "dir", "name": "Direction"},
10
+		{"id": "cau", "name": "Cause"},
11
+		{"id": "man", "name": "Manner"},
12
+		{"id": "typ", "name": "Type"},
13
+		{"id": "amo", "name": "Amount"}
14
+	],
15
+	"types": [
16
+		{"id": "int", "name": "Interrogative"},
17
+		{"id": "rel", "name": "Relative"},
18
+		{"id": "def", "name": "Demonstrative far"},
19
+		{"id": "den", "name": "Demonstrative near"},
20
+		{"id": "uni", "name": "Universal"},
21
+		{"id": "und", "name": "Undefined"},
22
+		{"id": "neg", "name": "Negative"}
23
+	],
24
+	"words": [
25
+		{"language_id": "fs", "domain_id": "con", "type_id": "int", "words": ["vilk"]},
26
+		{"language_id": "fs", "domain_id": "con", "type_id": "rel", "words": ["vilk"]},
27
+		{"language_id": "fs", "domain_id": "con", "type_id": "def", "words": ["jen"]},
28
+		{"language_id": "fs", "domain_id": "con", "type_id": "den", "words": ["dis"]},
29
+		{"language_id": "fs", "domain_id": "con", "type_id": "uni", "words": ["al"]},
30
+		{"language_id": "fs", "domain_id": "con", "type_id": "und", "words": ["et"]},
31
+		{"language_id": "fs", "domain_id": "con", "type_id": "neg", "words": ["ing"]},
32
+		{"language_id": "fs", "domain_id": "per", "type_id": "int", "words": ["vilk man", "ve"]},
33
+		{"language_id": "fs", "domain_id": "per", "type_id": "rel", "words": ["vilk man", "ve"]},
34
+		{"language_id": "fs", "domain_id": "per", "type_id": "def", "words": ["jen man"]},
35
+		{"language_id": "fs", "domain_id": "per", "type_id": "den", "words": ["dis man"]},
36
+		{"language_id": "fs", "domain_id": "per", "type_id": "uni", "words": ["al man", "alve"]},
37
+		{"language_id": "fs", "domain_id": "per", "type_id": "und", "words": ["et man", "etve"]},
38
+		{"language_id": "fs", "domain_id": "per", "type_id": "neg", "words": ["ing man", "ingve"]},
39
+		{"language_id": "fs", "domain_id": "thi", "type_id": "int", "words": ["vilk ding", "vat"]},
40
+		{"language_id": "fs", "domain_id": "thi", "type_id": "rel", "words": ["vilk ding", "vat"]},
41
+		{"language_id": "fs", "domain_id": "thi", "type_id": "def", "words": ["jen ding", "dat"]},
42
+		{"language_id": "fs", "domain_id": "thi", "type_id": "den", "words": ["dis ding"]},
43
+		{"language_id": "fs", "domain_id": "thi", "type_id": "uni", "words": ["al ding", "alvat"]},
44
+		{"language_id": "fs", "domain_id": "thi", "type_id": "und", "words": ["et ding", "etvat"]},
45
+		{"language_id": "fs", "domain_id": "thi", "type_id": "neg", "words": ["ing ding", "ingvat"]},
46
+		{"language_id": "fs", "domain_id": "pos", "type_id": "int", "words": ["av vilk man", "ves"]},
47
+		{"language_id": "fs", "domain_id": "pos", "type_id": "rel", "words": ["av vilk man", "ves"]},
48
+		{"language_id": "fs", "domain_id": "pos", "type_id": "def", "words": ["av jen man"]},
49
+		{"language_id": "fs", "domain_id": "pos", "type_id": "den", "words": ["av dis man"]},
50
+		{"language_id": "fs", "domain_id": "pos", "type_id": "uni", "words": ["av al man", "alves"]},
51
+		{"language_id": "fs", "domain_id": "pos", "type_id": "und", "words": ["av et man", "etves"]},
52
+		{"language_id": "fs", "domain_id": "pos", "type_id": "neg", "words": ["av ing man", "ingves"]},
53
+		{"language_id": "fs", "domain_id": "tim", "type_id": "int", "words": ["vilk tid", "van"]},
54
+		{"language_id": "fs", "domain_id": "tim", "type_id": "rel", "words": ["vilk tid", "van"]},
55
+		{"language_id": "fs", "domain_id": "tim", "type_id": "def", "words": ["jen tid", "dan"]},
56
+		{"language_id": "fs", "domain_id": "tim", "type_id": "den", "words": ["dis tid", "no"]},
57
+		{"language_id": "fs", "domain_id": "tim", "type_id": "uni", "words": ["al tid", "alvan"]},
58
+		{"language_id": "fs", "domain_id": "tim", "type_id": "und", "words": ["et tid", "etvan"]},
59
+		{"language_id": "fs", "domain_id": "tim", "type_id": "neg", "words": ["ing tid", "ingvan"]},
60
+		{"language_id": "fs", "domain_id": "loc", "type_id": "int", "words": ["vilk sted", "var"]},
61
+		{"language_id": "fs", "domain_id": "loc", "type_id": "rel", "words": ["vilk sted", "var"]},
62
+		{"language_id": "fs", "domain_id": "loc", "type_id": "def", "words": ["jen sted", "dar"]},
63
+		{"language_id": "fs", "domain_id": "loc", "type_id": "den", "words": ["dis sted", "har"]},
64
+		{"language_id": "fs", "domain_id": "loc", "type_id": "uni", "words": ["al sted", "alvar"]},
65
+		{"language_id": "fs", "domain_id": "loc", "type_id": "und", "words": ["et sted", "etvar"]},
66
+		{"language_id": "fs", "domain_id": "loc", "type_id": "neg", "words": ["ing sted", "ingvar"]},
67
+		{"language_id": "fs", "domain_id": "dir", "type_id": "int", "words": ["to vilk sted", "varto"]},
68
+		{"language_id": "fs", "domain_id": "dir", "type_id": "rel", "words": ["to vilk sted", "varto"]},
69
+		{"language_id": "fs", "domain_id": "dir", "type_id": "def", "words": ["to jen sted", "darto"]},
70
+		{"language_id": "fs", "domain_id": "dir", "type_id": "den", "words": ["to dis sted", "harto"]},
71
+		{"language_id": "fs", "domain_id": "dir", "type_id": "uni", "words": ["to al sted", "alto"]},
72
+		{"language_id": "fs", "domain_id": "dir", "type_id": "und", "words": ["to et sted", "etto"]},
73
+		{"language_id": "fs", "domain_id": "dir", "type_id": "neg", "words": ["to ing sted", "ingto"]},
74
+		{"language_id": "fs", "domain_id": "cau", "type_id": "int", "words": ["fur vilk grund", "varfur"]},
75
+		{"language_id": "fs", "domain_id": "cau", "type_id": "rel", "words": ["fur vilk grund", "varfur"]},
76
+		{"language_id": "fs", "domain_id": "cau", "type_id": "def", "words": ["fur jen grund", "darfur"]},
77
+		{"language_id": "fs", "domain_id": "cau", "type_id": "den", "words": ["fur dis grund", "harfur"]},
78
+		{"language_id": "fs", "domain_id": "cau", "type_id": "uni", "words": ["fur al grund", "alfur"]},
79
+		{"language_id": "fs", "domain_id": "cau", "type_id": "und", "words": ["fur et grund", "etfur"]},
80
+		{"language_id": "fs", "domain_id": "cau", "type_id": "neg", "words": ["fur ing grund", "ingfur"]},
81
+		{"language_id": "fs", "domain_id": "man", "type_id": "int", "words": ["vilk mot", "hur"]},
82
+		{"language_id": "fs", "domain_id": "man", "type_id": "rel", "words": ["vilk mot", "hur"]},
83
+		{"language_id": "fs", "domain_id": "man", "type_id": "def", "words": ["jen mot", "so"]},
84
+		{"language_id": "fs", "domain_id": "man", "type_id": "den", "words": ["dis mot", "so"]},
85
+		{"language_id": "fs", "domain_id": "man", "type_id": "uni", "words": ["al mot"]},
86
+		{"language_id": "fs", "domain_id": "man", "type_id": "und", "words": ["et mot"]},
87
+		{"language_id": "fs", "domain_id": "man", "type_id": "neg", "words": ["ing mot"]},
88
+		{"language_id": "fs", "domain_id": "typ", "type_id": "int", "words": ["vilk slag"]},
89
+		{"language_id": "fs", "domain_id": "typ", "type_id": "rel", "words": ["vilk slag"]},
90
+		{"language_id": "fs", "domain_id": "typ", "type_id": "def", "words": ["jen slag", "solk"]},
91
+		{"language_id": "fs", "domain_id": "typ", "type_id": "den", "words": ["dis slag"]},
92
+		{"language_id": "fs", "domain_id": "typ", "type_id": "uni", "words": ["al slag"]},
93
+		{"language_id": "fs", "domain_id": "typ", "type_id": "und", "words": ["et slag"]},
94
+		{"language_id": "fs", "domain_id": "typ", "type_id": "neg", "words": ["ing slag"]},
95
+		{"language_id": "fs", "domain_id": "amo", "type_id": "int", "words": ["vilk mang"]},
96
+		{"language_id": "fs", "domain_id": "amo", "type_id": "rel", "words": ["vilk mang"]},
97
+		{"language_id": "fs", "domain_id": "amo", "type_id": "def", "words": ["jen mang"]},
98
+		{"language_id": "fs", "domain_id": "amo", "type_id": "den", "words": ["dis mang"]},
99
+		{"language_id": "fs", "domain_id": "amo", "type_id": "uni", "words": ["al mang"]},
100
+		{"language_id": "fs", "domain_id": "amo", "type_id": "und", "words": ["et mang"]},
101
+		{"language_id": "fs", "domain_id": "amo", "type_id": "neg", "words": ["ing mang"]},
102
+		{"language_id": "en", "domain_id": "con", "type_id": "int", "words": ["which"]},
103
+		{"language_id": "en", "domain_id": "con", "type_id": "rel", "words": ["which"]},
104
+		{"language_id": "en", "domain_id": "con", "type_id": "def", "words": ["that"]},
105
+		{"language_id": "en", "domain_id": "con", "type_id": "den", "words": ["this"]},
106
+		{"language_id": "en", "domain_id": "con", "type_id": "uni", "words": ["every", "all"]},
107
+		{"language_id": "en", "domain_id": "con", "type_id": "und", "words": ["some"]},
108
+		{"language_id": "en", "domain_id": "con", "type_id": "neg", "words": ["no"]},
109
+		{"language_id": "en", "domain_id": "per", "type_id": "int", "words": ["who"]},
110
+		{"language_id": "en", "domain_id": "per", "type_id": "rel", "words": ["who"]},
111
+		{"language_id": "en", "domain_id": "per", "type_id": "def", "words": ["that person", "that one"]},
112
+		{"language_id": "en", "domain_id": "per", "type_id": "den", "words": ["this person", "this one"]},
113
+		{"language_id": "en", "domain_id": "per", "type_id": "uni", "words": ["everyone", "everybody"]},
114
+		{"language_id": "en", "domain_id": "per", "type_id": "und", "words": ["someone", "somebody"]},
115
+		{"language_id": "en", "domain_id": "per", "type_id": "neg", "words": ["no one", "nobody"]},
116
+		{"language_id": "en", "domain_id": "thi", "type_id": "int", "words": ["what"]},
117
+		{"language_id": "en", "domain_id": "thi", "type_id": "rel", "words": ["what"]},
118
+		{"language_id": "en", "domain_id": "thi", "type_id": "def", "words": ["that"]},
119
+		{"language_id": "en", "domain_id": "thi", "type_id": "den", "words": ["this"]},
120
+		{"language_id": "en", "domain_id": "thi", "type_id": "uni", "words": ["everything"]},
121
+		{"language_id": "en", "domain_id": "thi", "type_id": "und", "words": ["something", "anything"]},
122
+		{"language_id": "en", "domain_id": "thi", "type_id": "neg", "words": ["nothing"]},
123
+		{"language_id": "en", "domain_id": "pos", "type_id": "int", "words": ["whose"]},
124
+		{"language_id": "en", "domain_id": "pos", "type_id": "rel", "words": ["whose"]},
125
+		{"language_id": "en", "domain_id": "pos", "type_id": "def", "words": ["that one's"]},
126
+		{"language_id": "en", "domain_id": "pos", "type_id": "den", "words": ["this one's"]},
127
+		{"language_id": "en", "domain_id": "pos", "type_id": "uni", "words": ["everyone's"]},
128
+		{"language_id": "en", "domain_id": "pos", "type_id": "und", "words": ["someone's"]},
129
+		{"language_id": "en", "domain_id": "pos", "type_id": "neg", "words": ["no one's"]},
130
+		{"language_id": "en", "domain_id": "tim", "type_id": "int", "words": ["when"]},
131
+		{"language_id": "en", "domain_id": "tim", "type_id": "rel", "words": ["when"]},
132
+		{"language_id": "en", "domain_id": "tim", "type_id": "def", "words": ["then"]},
133
+		{"language_id": "en", "domain_id": "tim", "type_id": "den", "words": ["now"]},
134
+		{"language_id": "en", "domain_id": "tim", "type_id": "uni", "words": ["always"]},
135
+		{"language_id": "en", "domain_id": "tim", "type_id": "und", "words": ["sometimes", "anytime", "ever"]},
136
+		{"language_id": "en", "domain_id": "tim", "type_id": "neg", "words": ["never"]},
137
+		{"language_id": "en", "domain_id": "loc", "type_id": "int", "words": ["where"]},
138
+		{"language_id": "en", "domain_id": "loc", "type_id": "rel", "words": ["where"]},
139
+		{"language_id": "en", "domain_id": "loc", "type_id": "def", "words": ["there"]},
140
+		{"language_id": "en", "domain_id": "loc", "type_id": "den", "words": ["here"]},
141
+		{"language_id": "en", "domain_id": "loc", "type_id": "uni", "words": ["everywhere"]},
142
+		{"language_id": "en", "domain_id": "loc", "type_id": "und", "words": ["somewhere"]},
143
+		{"language_id": "en", "domain_id": "loc", "type_id": "neg", "words": ["nowhere"]},
144
+		{"language_id": "en", "domain_id": "dir", "type_id": "int", "words": ["whereto", "whither"]},
145
+		{"language_id": "en", "domain_id": "dir", "type_id": "rel", "words": ["whereto", "whither"]},
146
+		{"language_id": "en", "domain_id": "dir", "type_id": "def", "words": ["(to) there", "thither"]},
147
+		{"language_id": "en", "domain_id": "dir", "type_id": "den", "words": ["(to) here", "hither"]},
148
+		{"language_id": "en", "domain_id": "dir", "type_id": "uni", "words": []},
149
+		{"language_id": "en", "domain_id": "dir", "type_id": "und", "words": ["(to) anywhere"]},
150
+		{"language_id": "en", "domain_id": "dir", "type_id": "neg", "words": ["(to) nowhere", "nowhither"]},
151
+		{"language_id": "en", "domain_id": "cau", "type_id": "int", "words": ["why"]},
152
+		{"language_id": "en", "domain_id": "cau", "type_id": "rel", "words": ["why"]},
153
+		{"language_id": "en", "domain_id": "cau", "type_id": "def", "words": []},
154
+		{"language_id": "en", "domain_id": "cau", "type_id": "den", "words": []},
155
+		{"language_id": "en", "domain_id": "cau", "type_id": "uni", "words": []},
156
+		{"language_id": "en", "domain_id": "cau", "type_id": "und", "words": []},
157
+		{"language_id": "en", "domain_id": "cau", "type_id": "neg", "words": []},
158
+		{"language_id": "en", "domain_id": "man", "type_id": "int", "words": ["how"]},
159
+		{"language_id": "en", "domain_id": "man", "type_id": "rel", "words": ["how"]},
160
+		{"language_id": "en", "domain_id": "man", "type_id": "def", "words": ["so"]},
161
+		{"language_id": "en", "domain_id": "man", "type_id": "den", "words": ["so"]},
162
+		{"language_id": "en", "domain_id": "man", "type_id": "uni", "words": []},
163
+		{"language_id": "en", "domain_id": "man", "type_id": "und", "words": []},
164
+		{"language_id": "en", "domain_id": "man", "type_id": "neg", "words": []},
165
+		{"language_id": "en", "domain_id": "typ", "type_id": "int", "words": ["what kind of"]},
166
+		{"language_id": "en", "domain_id": "typ", "type_id": "rel", "words": []},
167
+		{"language_id": "en", "domain_id": "typ", "type_id": "def", "words": ["such"]},
168
+		{"language_id": "en", "domain_id": "typ", "type_id": "den", "words": []},
169
+		{"language_id": "en", "domain_id": "typ", "type_id": "uni", "words": []},
170
+		{"language_id": "en", "domain_id": "typ", "type_id": "und", "words": []},
171
+		{"language_id": "en", "domain_id": "typ", "type_id": "neg", "words": []},
172
+		{"language_id": "en", "domain_id": "amo", "type_id": "int", "words": ["how many", "how much"]},
173
+		{"language_id": "en", "domain_id": "amo", "type_id": "rel", "words": ["how many", "how much"]},
174
+		{"language_id": "en", "domain_id": "amo", "type_id": "def", "words": []},
175
+		{"language_id": "en", "domain_id": "amo", "type_id": "den", "words": []},
176
+		{"language_id": "en", "domain_id": "amo", "type_id": "uni", "words": []},
177
+		{"language_id": "en", "domain_id": "amo", "type_id": "und", "words": []},
178
+		{"language_id": "en", "domain_id": "amo", "type_id": "neg", "words": []}
343 179
 	]
180
+}
344 181
 
... ...
@@ -0,0 +1,344 @@
1
+[
2
+	{
3
+		"domain": "Concrete",
4
+		"interrogative": {
5
+			"fs": ["vilk"],
6
+			"en": ["which"]
7
+		},
8
+		"relative": {
9
+			"fs": ["vilk"],
10
+			"en": ["which"]
11
+		},
12
+		"demonstrative_far": {
13
+			"fs": ["jen"],
14
+			"en": ["that"]
15
+		},
16
+		"demonstrative_near": {
17
+			"fs": ["dis"],
18
+			"en": ["this"]
19
+		},
20
+		"universal": {
21
+			"fs": ["al"],
22
+			"en": ["every", "all"]
23
+		},
24
+		"undefined": {
25
+			"fs": ["et"],
26
+			"en": ["some"]
27
+		},
28
+		"negative": {
29
+			"fs": ["ing"],
30
+			"en": ["no"]
31
+		}
32
+	},
33
+	{
34
+		"domain": "Person",
35
+		"interrogative": {
36
+			"fs": ["vilk man", "ve"],
37
+			"en": ["who"]
38
+		},
39
+		"relative": {
40
+			"fs": ["vilk man", "ve"],
41
+			"en": ["who"]
42
+		},
43
+		"demonstrative_far": {
44
+			"fs": ["jen man"],
45
+			"en": []
46
+		},
47
+		"demonstrative_near": {
48
+			"fs": ["dis man"],
49
+			"en": []
50
+		},
51
+		"universal": {
52
+			"fs": ["al man", "alve"],
53
+			"en": ["everyone"]
54
+		},
55
+		"undefined": {
56
+			"fs": ["et man", "etve"],
57
+			"en": ["someone"]
58
+		},
59
+		"negative": {
60
+			"fs": ["ing man", "ingve"],
61
+			"en": ["no one"]
62
+		}
63
+	},
64
+	{
65
+		"domain": "Thing",
66
+		"interrogative": {
67
+			"fs": ["vilk ding", "vat"],
68
+			"en": ["what"]
69
+		},
70
+		"relative": {
71
+			"fs": ["vilk ding", "vat"],
72
+			"en": ["what"]
73
+		},
74
+		"demonstrative_far": {
75
+			"fs": ["jen ding", "dat"],
76
+			"en": ["that"]
77
+		},
78
+		"demonstrative_near": {
79
+			"fs": ["dis ding"],
80
+			"en": ["this"]
81
+		},
82
+		"universal": {
83
+			"fs": ["al ding", "alvat"],
84
+			"en": ["everything"]
85
+		},
86
+		"undefined": {
87
+			"fs": ["et ding", "etvat"],
88
+			"en": ["something"]
89
+		},
90
+		"negative": {
91
+			"fs": ["ing ding", "ingvat"],
92
+			"en": ["nothing"]
93
+		}
94
+	},
95
+	{
96
+		"domain": "Posession",
97
+		"interrogative": {
98
+			"fs": ["av vilk man", "ves"],
99
+			"en": []
100
+		},
101
+		"relative": {
102
+			"fs": ["av vilk man", "ves"],
103
+			"en": []
104
+		},
105
+		"demonstrative_far": {
106
+			"fs": ["av jen man"],
107
+			"en": []
108
+		},
109
+		"demonstrative_near": {
110
+			"fs": ["av dis man"],
111
+			"en": []
112
+		},
113
+		"universal": {
114
+			"fs": ["av al man", "alves"],
115
+			"en": []
116
+		},
117
+		"undefined": {
118
+			"fs": ["av et man", "etves"],
119
+			"en": []
120
+		},
121
+		"negative": {
122
+			"fs": ["av ing man", "ingves"],
123
+			"en": []
124
+		}
125
+	},
126
+	{
127
+		"domain": "Time",
128
+		"interrogative": {
129
+			"fs": ["vilk tid", "van"],
130
+			"en": ["when"]
131
+		},
132
+		"relative": {
133
+			"fs": ["vilk tid", "van"],
134
+			"en": ["when"]
135
+		},
136
+		"demonstrative_far": {
137
+			"fs": ["jen tid", "dan"],
138
+			"en": ["then"]
139
+		},
140
+		"demonstrative_near": {
141
+			"fs": ["dis tid", "no"],
142
+			"en": ["now"]
143
+		},
144
+		"universal": {
145
+			"fs": ["al tid", "alvan"],
146
+			"en": ["always"]
147
+		},
148
+		"undefined": {
149
+			"fs": ["et tid", "etvan"],
150
+			"en": ["sometimes"]
151
+		},
152
+		"negative": {
153
+			"fs": ["ing tid", "ingvan"],
154
+			"en": ["never"]
155
+		}
156
+	},
157
+	{
158
+		"domain": "Location",
159
+		"interrogative": {
160
+			"fs": ["vilk sted", "var"],
161
+			"en": ["where"]
162
+		},
163
+		"relative": {
164
+			"fs": ["vilk sted", "var"],
165
+			"en": ["where"]
166
+		},
167
+		"demonstrative_far": {
168
+			"fs": ["jen sted", "dar"],
169
+			"en": ["there"]
170
+		},
171
+		"demonstrative_near": {
172
+			"fs": ["dis sted", "har"],
173
+			"en": ["here"]
174
+		},
175
+		"universal": {
176
+			"fs": ["al sted", "alvar"],
177
+			"en": ["everywhere"]
178
+		},
179
+		"undefined": {
180
+			"fs": ["et sted", "etvar"],
181
+			"en": ["somewhere"]
182
+		},
183
+		"negative": {
184
+			"fs": ["ing sted", "ingvar"],
185
+			"en": ["nowhere"]
186
+		}
187
+	},
188
+	{
189
+		"domain": "Direction",
190
+		"interrogative": {
191
+			"fs": ["to vilk sted", "varto"],
192
+			"en": ["(to) where","whither"]
193
+		},
194
+		"relative": {
195
+			"fs": ["to vilk sted", "varto"],
196
+			"en": ["(to) where","whither"]
197
+		},
198
+		"demonstrative_far": {
199
+			"fs": ["to jen sted", "darto"],
200
+			"en": ["(to) there","thither"]
201
+		},
202
+		"demonstrative_near": {
203
+			"fs": ["to dis sted", "harto"],
204
+			"en": ["(to) here","hither"]
205
+		},
206
+		"universal": {
207
+			"fs": ["to al sted", "alto"],
208
+			"en": []
209
+		},
210
+		"undefined": {
211
+			"fs": ["to et sted", "etto"],
212
+			"en": ["(to) anywhere"]
213
+		},
214
+		"negative": {
215
+			"fs": ["to ing sted", "ingto"],
216
+			"en": ["(to) nowhere","nowither"]
217
+		}
218
+	},
219
+	{
220
+		"domain": "Cause",
221
+		"interrogative": {
222
+			"fs": ["fur vilk grund", "varfur"],
223
+			"en": ["why"]
224
+		},
225
+		"relative": {
226
+			"fs": ["fur vilk grund", "varfur"],
227
+			"en": ["why"]
228
+		},
229
+		"demonstrative_far": {
230
+			"fs": ["fur jen grund", "darfur"],
231
+			"en": []
232
+		},
233
+		"demonstrative_near": {
234
+			"fs": ["fur dis grund", "harfur"],
235
+			"en": []
236
+		},
237
+		"universal": {
238
+			"fs": ["fur al grund", "alfur"],
239
+			"en": []
240
+		},
241
+		"undefined": {
242
+			"fs": ["fur et grund", "etfur"],
243
+			"en": []
244
+		},
245
+		"negative": {
246
+			"fs": ["fur ing grund", "ingfur"],
247
+			"en": []
248
+		}
249
+	},
250
+	{
251
+		"domain": "Manner",
252
+		"interrogative": {
253
+			"fs": ["vilk mot", "hur"],
254
+			"en": ["how"]
255
+		},
256
+		"relative": {
257
+			"fs": ["vilk mot", "hur"],
258
+			"en": ["how"]
259
+		},
260
+		"demonstrative_far": {
261
+			"fs": ["jen mot", "so"],
262
+			"en": ["so"]
263
+		},
264
+		"demonstrative_near": {
265
+			"fs": ["dis mot", "so"],
266
+			"en": ["so"]
267
+		},
268
+		"universal": {
269
+			"fs": ["al mot"],
270
+			"en": []
271
+		},
272
+		"undefined": {
273
+			"fs": ["et mot"],
274
+			"en": []
275
+		},
276
+		"negative": {
277
+			"fs": ["ing mot"],
278
+			"en": []
279
+		}
280
+	},
281
+	{
282
+		"domain": "Type",
283
+		"interrogative": {
284
+			"fs": ["vilk slag"],
285
+			"en": ["what kind of"]
286
+		},
287
+		"relative": {
288
+			"fs": ["vilk slag"],
289
+			"en": []
290
+		},
291
+		"demonstrative_far": {
292
+			"fs": ["jen slag", "solk"],
293
+			"en": ["such"]
294
+		},
295
+		"demonstrative_near": {
296
+			"fs": ["dis slag"],
297
+			"en": []
298
+		},
299
+		"universal": {
300
+			"fs": ["al slag"],
301
+			"en": []
302
+		},
303
+		"undefined": {
304
+			"fs": ["et slag"],
305
+			"en": []
306
+		},
307
+		"negative": {
308
+			"fs": ["ing slag"],
309
+			"en": []
310
+		}
311
+	},
312
+	{
313
+		"domain": "Amount",
314
+		"interrogative": {
315
+			"fs": ["vilk mang"],
316
+			"en": ["how many", "how much"]
317
+		},
318
+		"relative": {
319
+			"fs": ["vilk mang"],
320
+			"en": ["how many", "how much"]
321
+		},
322
+		"demonstrative_far": {
323
+			"fs": ["jen mang"],
324
+			"en": []
325
+		},
326
+		"demonstrative_near": {
327
+			"fs": ["dis mang"],
328
+			"en": []
329
+		},
330
+		"universal": {
331
+			"fs": ["al mang"],
332
+			"en": []
333
+		},
334
+		"undefined": {
335
+			"fs": ["et mang"],
336
+			"en": []
337
+		},
338
+		"negative": {
339
+			"fs": ["ing mang"],
340
+			"en": []
341
+		}
342
+	}
343
+]
344
+
... ...
@@ -1,80 +1,208 @@
1
-[
2 1
 {
3
-		"numerus": 1,
4
-		"persona": 0,
5
-		"genus": 0,
6
-		"fs": ["man"],
7
-		"en": ["one","you"]
8
-	},
9
-	{
10
-		"numerus": 1,
11
-		"persona": 1,
12
-		"genus": 0,
13
-		"fs": ["ek"],
14
-		"en": ["i"]
15
-	},
16
-	{
17
-		"numerus": 1,
18
-		"persona": 2,
19
-		"genus": 0,
20
-		"fs": ["du"],
21
-		"en": ["you","thou"]
22
-	},
23
-	{
24
-		"numerus": 1,
25
-		"persona": 3,
26
-		"genus": 0,
27
-		"fs": ["hen"],
28
-		"en": []
29
-	},
30
-	{
31
-		"numerus": 1,
32
-		"persona": 3,
33
-		"genus": 1,
34
-		"fs": ["hi"],
35
-		"en": ["he"]
36
-	},
37
-	{
38
-		"numerus": 1,
39
-		"persona": 3,
40
-		"genus": 2,
41
-		"fs": ["hu"],
42
-		"en": ["she"]
43
-	},
44
-	{
45
-		"numerus": 1,
46
-		"persona": 3,
47
-		"genus": 3,
48
-		"fs": ["het"],
49
-		"en": ["it"]
50
-	},
51
-	{
52
-		"numerus": 2,
53
-		"persona": 0,
54
-		"genus": 0,
55
-		"fs": ["man"],
56
-		"en": ["they","you"]
57
-	},
58
-	{
59
-		"numerus": 2,
60
-		"persona": 1,
61
-		"genus": 0,
62
-		"fs": ["vi"],
63
-		"en": ["we"]
64
-	},
65
-	{
66
-		"numerus": 2,
67
-		"persona": 2,
68
-		"genus": 0,
69
-		"fs": ["jer"],
70
-		"en": ["you (all)"]
71
-	},
72
-	{
73
-		"numerus": 2,
74
-		"persona": 3,
75
-		"genus": 0,
76
-		"fs": ["di"],
77
-		"en": ["they"]
78
-	}
2
+	"types": [
3
+		{"id": "nor", "name": "normal"},
4
+		{"id": "ref", "name": "reflexive"},
5
+		{"id": "pos", "name": "possesive"}
6
+	],
7
+	"words": [
8
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["man"]},
9
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["ek"]},
10
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["du"]},
11
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["hen"]},
12
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["han"]},
13
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["hun"]},
14
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["hit"]},
15
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["maner"]},
16
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["vi"]},
17
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["je"]},
18
+		{"language_id": "fs", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["di"]},
19
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["man"]},
20
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["mek"]},
21
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["dek"]},
22
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["hen"]},
23
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["han"]},
24
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["hun"]},
25
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["hit"]},
26
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["maner"]},
27
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["us"]},
28
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["ju"]},
29
+		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["dim"]},
30
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to man"]},
31
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to mek"]},
32
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to dek"]},
33
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["to hen"]},
34
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to han"]},
35
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to hun"]},
36
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to hit"]},
37
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to maner"]},
38
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to us"]},
39
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to ju"]},
40
+		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to dim"]},
41
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["sek"]},
42
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["mek"]},
43
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["dek"]},
44
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["sek"]},
45
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["sek"]},
46
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["sek"]},
47
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["sek"]},
48
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["maner"]},
49
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["us"]},
50
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["ju"]},
51
+		{"language_id": "fs", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["sek"]},
52
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to sek"]},
53
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to mek"]},
54
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to dek"]},
55
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["to sek"]},
56
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to sek"]},
57
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to sek"]},
58
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to sek"]},
59
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to sek"]},
60
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to us"]},
61
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to ju"]},
62
+		{"language_id": "fs", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to sek"]},
63
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["mans"]},
64
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["min"]},
65
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["din"]},
66
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["hens"]},
67
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["hans"]},
68
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["huns"]},
69
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["hits"]},
70
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["maners"]},
71
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["ur"]},
72
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["jer"]},
73
+		{"language_id": "fs", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["dir"]},		
74
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["mans"]},
75
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["min"]},
76
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["din"]},
77
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["hens"]},
78
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["hans"]},
79
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["huns"]},
80
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["hits"]},
81
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["maners"]},
82
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["ur"]},
83
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["jer"]},
84
+		{"language_id": "fs", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["dir"]},
85
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to mans"]},
86
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to min"]},
87
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to din"]},
88
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["to hens"]},
89
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to hans"]},
90
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to huns"]},
91
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to hits"]},
92
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to maners"]},
93
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to ur"]},
94
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to jer"]},
95
+		{"language_id": "fs", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to dir"]},
96
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["av mans"]},
97
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["av min"]},
98
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["av din"]},
99
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["av hens"]},
100
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["av hans"]},
101
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["av huns"]},
102
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["av hits"]},
103
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["av maners"]},
104
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["av ur"]},
105
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["av jer"]},
106
+		{"language_id": "fs", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["av dir"]},
107
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["one","you"]},
108
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["i"]},
109
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["you","thou"]},
110
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
111
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["he"]},
112
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["she"]},
113
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["it"]},
114
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["you","they"]},
115
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["we"]},
116
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["you (all)"]},
117
+		{"language_id": "en", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["they"]},
118
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["one","you"]},
119
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["me"]},
120
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["you","thee"]},
121
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
122
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["him"]},
123
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["her"]},
124
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["it"]},
125
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["you","them"]},
126
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["us"]},
127
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["you (all)"]},
128
+		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["them"]},
129
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to one","to you"]},
130
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to me"]},
131
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to you","to thee"]},
132
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
133
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to him"]},
134
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to her"]},
135
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to it"]},
136
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to you","to them"]},
137
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to us"]},
138
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to you (all)"]},
139
+		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to them"]},
140
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["oneself","yourself"]},
141
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["myself"]},
142
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["yourself"]},
143
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
144
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["himself"]},
145
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["herself"]},
146
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["itself"]},
147
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["themselves","yourselves"]},
148
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["ourselves"]},
149
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["yourselves"]},
150
+		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["themselves"]},
151
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to oneself","to yourself"]},
152
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to myself"]},
153
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to yourself"]},
154
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
155
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to himself"]},
156
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to herself"]},
157
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to itself"]},
158
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to themselves","to yourselves"]},
159
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to ourselves"]},
160
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to yourselves"]},
161
+		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to themselves"]},
162
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["ones","your"]},
163
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["my"]},
164
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
165
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
166
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["his"]},
167
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["her"]},
168
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["its"]},
169
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["their","your"]},
170
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["our"]},
171
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
172
+		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["their"]},		
173
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["ones","your"]},
174
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["my"]},
175
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
176
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
177
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["his"]},
178
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["her"]},
179
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["its"]},
180
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["their","your"]},
181
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["our"]},
182
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
183
+		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["their"]},
184
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to ones","to your"]},
185
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to my"]},
186
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to your"]},
187
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
188
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to his"]},
189
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to her"]},
190
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to its"]},
191
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to their","to your"]},
192
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to our"]},
193
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to your"]},
194
+		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to their"]},
195
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["of ones","of your"]},
196
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["of my"]},
197
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["of your"]},
198
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
199
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["of his"]},
200
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["of her"]},
201
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["of its"]},
202
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["of their","of your"]},
203
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["of our"]},
204
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["of your"]},
205
+		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["of their"]}
79 206
 	]
207
+}
80 208
 
... ...
@@ -0,0 +1,80 @@
1
+[
2
+	{
3
+		"numerus": 1,
4
+		"persona": 0,
5
+		"genus": 0,
6
+		"fs": ["man"],
7
+		"en": ["one","you"]
8
+	},
9
+	{
10
+		"numerus": 1,
11
+		"persona": 1,
12
+		"genus": 0,
13
+		"fs": ["ek"],
14
+		"en": ["i"]
15
+	},
16
+	{
17
+		"numerus": 1,
18
+		"persona": 2,
19
+		"genus": 0,
20
+		"fs": ["du"],
21
+		"en": ["you","thou"]
22
+	},
23
+	{
24
+		"numerus": 1,
25
+		"persona": 3,
26
+		"genus": 0,
27
+		"fs": ["hen"],
28
+		"en": []
29
+	},
30
+	{
31
+		"numerus": 1,
32
+		"persona": 3,
33
+		"genus": 1,
34
+		"fs": ["hi"],
35
+		"en": ["he"]
36
+	},
37
+	{
38
+		"numerus": 1,
39
+		"persona": 3,
40
+		"genus": 2,
41
+		"fs": ["hu"],
42
+		"en": ["she"]
43
+	},
44
+	{
45
+		"numerus": 1,
46
+		"persona": 3,
47
+		"genus": 3,
48
+		"fs": ["het"],
49
+		"en": ["it"]
50
+	},
51
+	{
52
+		"numerus": 2,
53
+		"persona": 0,
54
+		"genus": 0,
55
+		"fs": ["man"],
56
+		"en": ["they","you"]
57
+	},
58
+	{
59
+		"numerus": 2,
60
+		"persona": 1,
61
+		"genus": 0,
62
+		"fs": ["vi"],
63
+		"en": ["we"]
64
+	},
65
+	{
66
+		"numerus": 2,
67
+		"persona": 2,
68
+		"genus": 0,
69
+		"fs": ["jer"],
70
+		"en": ["you (all)"]
71
+	},
72
+	{
73
+		"numerus": 2,
74
+		"persona": 3,
75
+		"genus": 0,
76
+		"fs": ["di"],
77
+		"en": ["they"]
78
+	}
79
+]
80
+
... ...
@@ -1,4 +1,31 @@
1 1
 [
2
+	{
3
+		"affix": "far-",
4
+		"type_from": ["verb"],
5
+		"type_to": ["verb"],
6
+		"name": null,
7
+		"description": "Alters the meaning of the verb to a somehow negative version (difficult to explain :))",
8
+		"cognates": [
9
+			{
10
+				"language": "en",
11
+				"affix": "for-"
12
+			},
13
+			{
14
+				"language": "nb",
15
+				"affix": "for-"
16
+			},
17
+			{
18
+				"language": "de",
19
+				"affix": "ver-"
20
+			}
21
+		],
22
+		"example": {
23
+			"word": "fargive",
24
+			"translations": {
25
+				"en": ["forgive"]
26
+			}
27
+		}
28
+	},
2 29
 	{
3 30
 		"affix": "-ar",
4 31
 		"type_from": ["verb"],
... ...
@@ -1,1373 +0,0 @@
1
-{
2
-	"domains": [
3
-		{
4
-			"id": "concrete",
5
-			"name": "Concrete"
6
-		},
7
-		{
8
-			"id": "person",
9
-			"name": "Person"
10
-		},
11
-		{
12
-			"id": "thing",
13
-			"name": "Thing"
14
-		},
15
-		{
16
-			"id": "posession",
17
-			"name": "Posession"
18
-		},
19
-		{
20
-			"id": "time",
21
-			"name": "Time"
22
-		},
23
-		{
24
-			"id": "location",
25
-			"name": "Location"
26
-		},
27
-		{
28
-			"id": "direction",
29
-			"name": "Direction"
30
-		},
31
-		{
32
-			"id": "cause",
33
-			"name": "Cause"
34
-		},
35
-		{
36
-			"id": "manner",
37
-			"name": "Manner"
38
-		},
39
-		{
40
-			"id": "type_id",
41
-			"name": "type_id"
42
-		},
43
-		{
44
-			"id": "amount",
45
-			"name": "Amount"
46
-		}
47
-	],
48
-	"types": [
49
-		{
50
-			"id": "interrogative",
51
-			"name": "Interrogative"
52
-		},
53
-		{
54
-			"id": "relative",
55
-			"name": "Relative"
56
-		},
57
-		{
58
-			"id": "demonstrative_far",
59
-			"name": "Demonstrative far"
60
-		},
61
-		{
62
-			"id": "demonstrative_near",
63
-			"name": "Demonstrative near"
64
-		},
65
-		{
66
-			"id": "universal",
67
-			"name": "Universal"
68
-		},
69
-		{
70
-			"id": "undefined",
71
-			"name": "Undefined"
72
-		},
73
-		{
74
-			"id": "negative",
75
-			"name": "Negative"
76
-		}
77
-	],
78
-	"words": [
79
-		{
80
-		    "domain_id":"concrete",
81
-		    "type_id":"interrogative",
82
-		    "language":"fs",
83
-		    "words":[
84
-		        "vilk"
85
-		    ]
86
-		},
87
-		{
88
-		    "domain_id":"concrete",
89
-		    "type_id":"interrogative",
90
-		    "language":"en",
91
-		    "words":[
92
-		        "which"
93
-		    ]
94
-		},
95
-		{
96
-		    "domain_id":"concrete",
97
-		    "type_id":"relative",
98
-		    "language":"fs",
99
-		    "words":[
100
-		        "vilk"
101
-		    ]
102
-		},
103
-		{
104
-		    "domain_id":"concrete",
105
-		    "type_id":"relative",
106
-		    "language":"en",
107
-		    "words":[
108
-		        "which"
109
-		    ]
110
-		},
111
-		{
112
-		    "domain_id":"concrete",
113
-		    "type_id":"demonstrative_far",
114
-		    "language":"fs",
115
-		    "words":[
116
-		        "jen"
117
-		    ]
118
-		},
119
-		{
120
-		    "domain_id":"concrete",
121
-		    "type_id":"demonstrative_far",
122
-		    "language":"en",
123
-		    "words":[
124
-		        "that"
125
-		    ]
126
-		},
127
-		{
128
-		    "domain_id":"concrete",
129
-		    "type_id":"demonstrative_near",
130
-		    "language":"fs",
131
-		    "words":[
132
-		        "dis"
133
-		    ]
134
-		},
135
-		{
136
-		    "domain_id":"concrete",
137
-		    "type_id":"demonstrative_near",
138
-		    "language":"en",
139
-		    "words":[
140
-		        "this"
141
-		    ]
142
-		},
143
-		{
144
-		    "domain_id":"concrete",
145
-		    "type_id":"universal",
146
-		    "language":"fs",
147
-		    "words":[
148
-		        "al"
149
-		    ]
150
-		},
151
-		{
152
-		    "domain_id":"concrete",
153
-		    "type_id":"universal",
154
-		    "language":"en",
155
-		    "words":[
156
-		        "every",
157
-		        "all"
158
-		    ]
159
-		},
160
-		{
161
-		    "domain_id":"concrete",
162
-		    "type_id":"undefined",
163
-		    "language":"fs",
164
-		    "words":[
165
-		        "et"
166
-		    ]
167
-		},
168
-		{
169
-		    "domain_id":"concrete",
170
-		    "type_id":"undefined",
171
-		    "language":"en",
172
-		    "words":[
173
-		        "some"
174
-		    ]
175
-		},
176
-		{
177
-		    "domain_id":"concrete",
178
-		    "type_id":"negative",
179
-		    "language":"fs",
180
-		    "words":[
181
-		        "ing"
182
-		    ]
183
-		},
184
-		{
185
-		    "domain_id":"concrete",
186
-		    "type_id":"negative",
187
-		    "language":"en",
188
-		    "words":[
189
-		        "no"
190
-		    ]
191
-		},
192
-		{
193
-		    "domain_id":"person",
194
-		    "type_id":"interrogative",
195
-		    "language":"fs",
196
-		    "words":[
197
-		        "vilk man",
198
-		        "ve"
199
-		    ]
200
-		},
201
-		{
202
-		    "domain_id":"person",
203
-		    "type_id":"interrogative",
204
-		    "language":"en",
205
-		    "words":[
206
-		        "who"
207
-		    ]
208
-		},
209
-		{
210
-		    "domain_id":"person",
211
-		    "type_id":"relative",
212
-		    "language":"fs",
213
-		    "words":[
214
-		        "vilk man",
215
-		        "ve"
216
-		    ]
217
-		},
218
-		{
219
-		    "domain_id":"person",
220
-		    "type_id":"relative",
221
-		    "language":"en",
222
-		    "words":[
223
-		        "who"
224
-		    ]
225
-		},
226
-		{
227
-		    "domain_id":"person",
228
-		    "type_id":"demonstrative_far",
229
-		    "language":"fs",
230
-		    "words":[
231
-		        "jen man"
232
-		    ]
233
-		},
234
-		{
235
-		    "domain_id":"person",
236
-		    "type_id":"demonstrative_far",
237
-		    "language":"en",
238
-		    "words":[
239
-				"that person",
240
-				"that one"
241
-		    ]
242
-		},
243
-		{
244
-		    "domain_id":"person",
245
-		    "type_id":"demonstrative_near",
246
-		    "language":"fs",
247
-		    "words":[
248
-		        "dis man"
249
-		    ]
250
-		},
251
-		{
252
-		    "domain_id":"person",
253
-		    "type_id":"demonstrative_near",
254
-		    "language":"en",
255
-		    "words":[
256
-				"this person",
257
-				"this one"
258
-		    ]
259
-		},
260
-		{
261
-		    "domain_id":"person",
262
-		    "type_id":"universal",
263
-		    "language":"fs",
264
-		    "words":[
265
-		        "al man",
266
-		        "alve"
267
-		    ]
268
-		},
269
-		{
270
-		    "domain_id":"person",
271
-		    "type_id":"universal",
272
-		    "language":"en",
273
-		    "words":[
274
-		        "everyone",
275
-		        "everybody"
276
-		    ]
277
-		},
278
-		{
279
-		    "domain_id":"person",
280
-		    "type_id":"undefined",
281
-		    "language":"fs",
282
-		    "words":[
283
-		        "et man",
284
-		        "etve"
285
-		    ]
286
-		},
287
-		{
288
-		    "domain_id":"person",
289
-		    "type_id":"undefined",
290
-		    "language":"en",
291
-		    "words":[
292
-		        "someone",
293
-		        "somebody"
294
-		    ]
295
-		},
296
-		{
297
-		    "domain_id":"person",
298
-		    "type_id":"negative",
299
-		    "language":"fs",
300
-		    "words":[
301
-		        "ing man",
302
-		        "ingve"
303
-		    ]
304
-		},
305
-		{
306
-		    "domain_id":"person",
307
-		    "type_id":"negative",
308
-		    "language":"en",
309
-		    "words":[
310
-		        "no one",
311
-		        "nobody"
312
-		    ]
313
-		},
314
-		{
315
-		    "domain_id":"thing",
316
-		    "type_id":"interrogative",
317
-		    "language":"fs",
318
-		    "words":[
319
-		        "vilk ding",
320
-		        "vat"
321
-		    ]
322
-		},
323
-		{
324
-		    "domain_id":"thing",
325
-		    "type_id":"interrogative",
326
-		    "language":"en",
327
-		    "words":[
328
-		        "what"
329
-		    ]
330
-		},
331
-		{
332
-		    "domain_id":"thing",
333
-		    "type_id":"relative",
334
-		    "language":"fs",
335
-		    "words":[
336
-		        "vilk ding",
337
-		        "vat"
338
-		    ]
339
-		},
340
-		{
341
-		    "domain_id":"thing",
342
-		    "type_id":"relative",
343
-		    "language":"en",
344
-		    "words":[
345
-		        "what"
346
-		    ]
347
-		},
348
-		{
349
-		    "domain_id":"thing",
350
-		    "type_id":"demonstrative_far",
351
-		    "language":"fs",
352
-		    "words":[
353
-		        "jen ding",
354
-		        "dat"
355
-		    ]
356
-		},
357
-		{
358
-		    "domain_id":"thing",
359
-		    "type_id":"demonstrative_far",
360
-		    "language":"en",
361
-		    "words":[
362
-		        "that"
363
-		    ]
364
-		},
365
-		{
366
-		    "domain_id":"thing",
367
-		    "type_id":"demonstrative_near",
368
-		    "language":"fs",
369
-		    "words":[
370
-		        "dis ding"
371
-		    ]
372
-		},
373
-		{
374
-		    "domain_id":"thing",
375
-		    "type_id":"demonstrative_near",
376
-		    "language":"en",
377
-		    "words":[
378
-		        "this"
379
-		    ]
380
-		},
381
-		{
382
-		    "domain_id":"thing",
383
-		    "type_id":"universal",
384
-		    "language":"fs",
385
-		    "words":[
386
-		        "al ding",
387
-		        "alvat"
388
-		    ]
389
-		},
390
-		{
391
-		    "domain_id":"thing",
392
-		    "type_id":"universal",
393
-		    "language":"en",
394
-		    "words":[
395
-		        "everything"
396
-		    ]
397
-		},
398
-		{
399
-		    "domain_id":"thing",
400
-		    "type_id":"undefined",
401
-		    "language":"fs",
402
-		    "words":[
403
-		        "et ding",
404
-		        "etvat"
405
-		    ]
406
-		},
407
-		{
408
-		    "domain_id":"thing",
409
-		    "type_id":"undefined",
410
-		    "language":"en",
411
-		    "words":[
412
-		        "something",
413
-		        "anything"
414
-		    ]
415
-		},
416
-		{
417
-		    "domain_id":"thing",
418
-		    "type_id":"negative",
419
-		    "language":"fs",
420
-		    "words":[
421
-		        "ing ding",
422
-		        "ingvat"
423
-		    ]
424
-		},
425
-		{
426
-		    "domain_id":"thing",
427
-		    "type_id":"negative",
428
-		    "language":"en",
429
-		    "words":[
430
-		        "nothing"
431
-		    ]
432
-		},
433
-		{
434
-		    "domain_id":"posession",
435
-		    "type_id":"interrogative",
436
-		    "language":"fs",
437
-		    "words":[
438
-		        "av vilk man",
439
-		        "ves"
440
-		    ]
441
-		},
442
-		{
443
-		    "domain_id":"posession",
444
-		    "type_id":"interrogative",
445
-		    "language":"en",
446
-		    "words":[
447
-				"whose"
448
-		    ]
449
-		},
450
-		{
451
-		    "domain_id":"posession",
452
-		    "type_id":"relative",
453
-		    "language":"fs",
454
-		    "words":[
455
-		        "av vilk man",
456
-		        "ves"
457
-		    ]
458
-		},
459
-		{
460
-		    "domain_id":"posession",
461
-		    "type_id":"relative",
462
-		    "language":"en",
463
-		    "words":[
464
-				"whose"
465
-		    ]
466
-		},
467
-		{
468
-		    "domain_id":"posession",
469
-		    "type_id":"demonstrative_far",
470
-		    "language":"fs",
471
-		    "words":[
472
-		        "av jen man"
473
-		    ]
474
-		},
475
-		{
476
-		    "domain_id":"posession",
477
-		    "type_id":"demonstrative_far",
478
-		    "language":"en",
479
-		    "words":[
480
-		    	"that one's"
481
-		    ]
482
-		},
483
-		{
484
-		    "domain_id":"posession",
485
-		    "type_id":"demonstrative_near",
486
-		    "language":"fs",
487
-		    "words":[
488
-		        "av dis man"
489
-		    ]
490
-		},
491
-		{
492
-		    "domain_id":"posession",
493
-		    "type_id":"demonstrative_near",
494
-		    "language":"en",
495
-		    "words":[
496
-		    	"this one's"
497
-		    ]
498
-		},
499
-		{
500
-		    "domain_id":"posession",
501
-		    "type_id":"universal",
502
-		    "language":"fs",
503
-		    "words":[
504
-		        "av al man",
505
-		        "alves"
506
-		    ]
507
-		},
508
-		{
509
-		    "domain_id":"posession",
510
-		    "type_id":"universal",
511
-		    "language":"en",
512
-		    "words":[
513
-		    	"everyone's"
514
-		    ]
515
-		},
516
-		{
517
-		    "domain_id":"posession",
518
-		    "type_id":"undefined",
519
-		    "language":"fs",
520
-		    "words":[
521
-		        "av et man",
522
-		        "etves"
523
-		    ]
524
-		},
525
-		{
526
-		    "domain_id":"posession",
527
-		    "type_id":"undefined",
528
-		    "language":"en",
529
-		    "words":[
530
-		    	"someone's"
531
-		    ]
532
-		},
533
-		{
534
-		    "domain_id":"posession",
535
-		    "type_id":"negative",
536
-		    "language":"fs",
537
-		    "words":[
538
-		        "av ing man",
539
-		        "ingves"
540
-		    ]
541
-		},
542
-		{
543
-		    "domain_id":"posession",
544
-		    "type_id":"negative",
545
-		    "language":"en",
546
-		    "words":[
547
-		    	"no one's"
548
-		    ]
549
-		},
550
-		{
551
-		    "domain_id":"time",
552
-		    "type_id":"interrogative",
553
-		    "language":"fs",
554
-		    "words":[
555
-		        "vilk tid",
556
-		        "van"
557
-		    ]
558
-		},
559
-		{
560
-		    "domain_id":"time",
561
-		    "type_id":"interrogative",
562
-		    "language":"en",
563
-		    "words":[
564
-		        "when"
565
-		    ]
566
-		},
567
-		{
568
-		    "domain_id":"time",
569
-		    "type_id":"relative",
570
-		    "language":"fs",
571
-		    "words":[
572
-		        "vilk tid",
573
-		        "van"
574
-		    ]
575
-		},
576
-		{
577
-		    "domain_id":"time",
578
-		    "type_id":"relative",
579
-		    "language":"en",
580
-		    "words":[
581
-		        "when"
582
-		    ]
583
-		},
584
-		{
585
-		    "domain_id":"time",
586
-		    "type_id":"demonstrative_far",
587
-		    "language":"fs",
588
-		    "words":[
589
-		        "jen tid",
590
-		        "dan"
591
-		    ]
592
-		},
593
-		{
594
-		    "domain_id":"time",
595
-		    "type_id":"demonstrative_far",
596
-		    "language":"en",
597
-		    "words":[
598
-		        "then"
599
-		    ]
600
-		},
601
-		{
602
-		    "domain_id":"time",
603
-		    "type_id":"demonstrative_near",
604
-		    "language":"fs",
605
-		    "words":[
606
-		        "dis tid",
607
-		        "no"
608
-		    ]
609
-		},
610
-		{
611
-		    "domain_id":"time",
612
-		    "type_id":"demonstrative_near",
613
-		    "language":"en",
614
-		    "words":[
615
-		        "now"
616
-		    ]
617
-		},
618
-		{
619
-		    "domain_id":"time",
620
-		    "type_id":"universal",
621
-		    "language":"fs",
622
-		    "words":[
623
-		        "al tid",
624
-		        "alvan"
625
-		    ]
626
-		},
627
-		{
628
-		    "domain_id":"time",
629
-		    "type_id":"universal",
630
-		    "language":"en",
631
-		    "words":[
632
-		        "always"
633
-		    ]
634
-		},
635
-		{
636
-		    "domain_id":"time",
637
-		    "type_id":"undefined",
638
-		    "language":"fs",
639
-		    "words":[
640
-		        "et tid",
641
-		        "etvan"
642
-		    ]
643
-		},
644
-		{
645
-		    "domain_id":"time",
646
-		    "type_id":"undefined",
647
-		    "language":"en",
648
-		    "words":[
649
-		        "sometimes",
650
-		        "anytime",
651
-		        "ever"
652
-		    ]
653
-		},
654
-		{
655
-		    "domain_id":"time",
656
-		    "type_id":"negative",
657
-		    "language":"fs",
658
-		    "words":[
659
-		        "ing tid",
660
-		        "ingvan"
661
-		    ]
662
-		},
663
-		{
664
-		    "domain_id":"time",
665
-		    "type_id":"negative",
666
-		    "language":"en",
667
-		    "words":[
668
-		        "never"
669
-		    ]
670
-		},
671
-		{
672
-		    "domain_id":"location",
673
-		    "type_id":"interrogative",
674
-		    "language":"fs",
675
-		    "words":[
676
-		        "vilk sted",
677
-		        "var"
678
-		    ]
679
-		},
680
-		{
681
-		    "domain_id":"location",
682
-		    "type_id":"interrogative",
683
-		    "language":"en",
684
-		    "words":[
685
-		        "where"
686
-		    ]
687
-		},
688
-		{
689
-		    "domain_id":"location",
690
-		    "type_id":"relative",
691
-		    "language":"fs",
692
-		    "words":[
693
-		        "vilk sted",
694
-		        "var"
695
-		    ]
696
-		},
697
-		{
698
-		    "domain_id":"location",
699
-		    "type_id":"relative",
700
-		    "language":"en",
701
-		    "words":[
702
-		        "where"
703
-		    ]
704
-		},
705
-		{
706
-		    "domain_id":"location",
707
-		    "type_id":"demonstrative_far",
708
-		    "language":"fs",
709
-		    "words":[
710
-		        "jen sted",
711
-		        "dar"
712
-		    ]
713
-		},
714
-		{
715
-		    "domain_id":"location",
716
-		    "type_id":"demonstrative_far",
717
-		    "language":"en",
718
-		    "words":[
719
-		        "there"
720
-		    ]
721
-		},
722
-		{
723
-		    "domain_id":"location",
724
-		    "type_id":"demonstrative_near",
725
-		    "language":"fs",
726
-		    "words":[
727
-		        "dis sted",
728
-		        "har"
729
-		    ]
730
-		},
731
-		{
732
-		    "domain_id":"location",
733
-		    "type_id":"demonstrative_near",
734
-		    "language":"en",
735
-		    "words":[
736
-		        "here"
737
-		    ]
738
-		},
739
-		{
740
-		    "domain_id":"location",
741
-		    "type_id":"universal",
742
-		    "language":"fs",
743
-		    "words":[
744
-		        "al sted",
745
-		        "alvar"
746
-		    ]
747
-		},
748
-		{
749
-		    "domain_id":"location",
750
-		    "type_id":"universal",
751
-		    "language":"en",
752
-		    "words":[
753
-		        "everywhere"
754
-		    ]
755
-		},
756
-		{
757
-		    "domain_id":"location",
758
-		    "type_id":"undefined",
759
-		    "language":"fs",
760
-		    "words":[
761
-		        "et sted",
762
-		        "etvar"
763
-		    ]
764
-		},
765
-		{
766
-		    "domain_id":"location",
767
-		    "type_id":"undefined",
768
-		    "language":"en",
769
-		    "words":[
770
-		        "somewhere"
771
-		    ]
772
-		},
773
-		{
774
-		    "domain_id":"location",
775
-		    "type_id":"negative",
776
-		    "language":"fs",
777
-		    "words":[
778
-		        "ing sted",
779
-		        "ingvar"
780
-		    ]
781
-		},
782
-		{
783
-		    "domain_id":"location",
784
-		    "type_id":"negative",
785
-		    "language":"en",
786
-		    "words":[
787
-		        "nowhere"
788
-		    ]
789
-		},
790
-		{
791
-		    "domain_id":"direction",
792
-		    "type_id":"interrogative",
793
-		    "language":"fs",
794
-		    "words":[
795
-		        "to vilk sted",
796
-		        "varto"
797
-		    ]
798
-		},
799
-		{
800
-		    "domain_id":"direction",
801
-		    "type_id":"interrogative",
802
-		    "language":"en",
803
-		    "words":[
804
-
805
-		    ]
806
-		},
807
-		{
808
-		    "domain_id":"direction",
809
-		    "type_id":"relative",
810
-		    "language":"fs",
811
-		    "words":[
812
-		        "to vilk sted",
813
-		        "varto"
814
-		    ]
815
-		},
816
-		{
817
-		    "domain_id":"direction",
818
-		    "type_id":"relative",
819
-		    "language":"en",
820
-		    "words":[
821
-
822
-		    ]
823
-		},
824
-		{
825
-		    "domain_id":"direction",
826
-		    "type_id":"demonstrative_far",
827
-		    "language":"fs",
828
-		    "words":[
829
-		        "to jen sted",
830
-		        "darto"
831
-		    ]
832
-		},
833
-		{
834
-		    "domain_id":"direction",
835
-		    "type_id":"demonstrative_far",
836
-		    "language":"en",
837
-		    "words":[
838
-
839
-		    ]
840
-		},
841
-		{
842
-		    "domain_id":"direction",
843
-		    "type_id":"demonstrative_near",
844
-		    "language":"fs",
845
-		    "words":[
846
-		        "to dis sted",
847
-		        "harto"
848
-		    ]
849
-		},
850
-		{
851
-		    "domain_id":"direction",
852
-		    "type_id":"demonstrative_near",
853
-		    "language":"en",
854
-		    "words":[
855
-
856
-		    ]
857
-		},
858
-		{
859
-		    "domain_id":"direction",
860
-		    "type_id":"universal",
861
-		    "language":"fs",
862
-		    "words":[
863
-		        "to al sted",
864
-		        "alto"
865
-		    ]
866
-		},
867
-		{
868
-		    "domain_id":"direction",
869
-		    "type_id":"universal",
870
-		    "language":"en",
871
-		    "words":[
872
-
873
-		    ]
874
-		},
875
-		{
876
-		    "domain_id":"direction",
877
-		    "type_id":"undefined",
878
-		    "language":"fs",
879
-		    "words":[
880
-		        "to et sted",
881
-		        "etto"
882
-		    ]
883
-		},
884
-		{
885
-		    "domain_id":"direction",
886
-		    "type_id":"undefined",
887
-		    "language":"en",
888
-		    "words":[
889
-
890
-		    ]
891
-		},
892
-		{
893
-		    "domain_id":"direction",
894
-		    "type_id":"negative",
895
-		    "language":"fs",
896
-		    "words":[
897
-		        "to ing sted",
898
-		        "ingto"
899
-		    ]
900
-		},
901
-		{
902
-		    "domain_id":"direction",
903
-		    "type_id":"negative",
904
-		    "language":"en",
905
-		    "words":[
906
-
907
-		    ]
908
-		},
909
-		{
910
-		    "domain_id":"cause",
911
-		    "type_id":"interrogative",
912
-		    "language":"fs",
913
-		    "words":[
914
-		        "fur vilk grund",
915
-		        "varfur"
916
-		    ]
917
-		},
918
-		{
919
-		    "domain_id":"cause",
920
-		    "type_id":"interrogative",
921
-		    "language":"en",
922
-		    "words":[
923
-		        "why"
924
-		    ]
925
-		},
926
-		{
927
-		    "domain_id":"cause",
928
-		    "type_id":"relative",
929
-		    "language":"fs",
930
-		    "words":[
931
-		        "fur vilk grund",
932
-		        "varfur"
933
-		    ]
934
-		},
935
-		{
936
-		    "domain_id":"cause",
937
-		    "type_id":"relative",
938
-		    "language":"en",
939
-		    "words":[
940
-		        "why"
941
-		    ]
942
-		},
943
-		{
944
-		    "domain_id":"cause",
945
-		    "type_id":"demonstrative_far",
946
-		    "language":"fs",
947
-		    "words":[
948
-		        "fur jen grund",
949
-		        "darfur"
950
-		    ]
951
-		},
952
-		{
953
-		    "domain_id":"cause",
954
-		    "type_id":"demonstrative_far",
955
-		    "language":"en",
956
-		    "words":[
957
-
958
-		    ]
959
-		},
960
-		{
961
-		    "domain_id":"cause",
962
-		    "type_id":"demonstrative_near",
963
-		    "language":"fs",
964
-		    "words":[
965
-		        "fur dis grund",
966
-		        "harfur"
967
-		    ]
968
-		},
969
-		{
970
-		    "domain_id":"cause",
971
-		    "type_id":"demonstrative_near",
972
-		    "language":"en",
973
-		    "words":[
974
-
975
-		    ]
976
-		},
977
-		{
978
-		    "domain_id":"cause",
979
-		    "type_id":"universal",
980
-		    "language":"fs",
981
-		    "words":[
982
-		        "fur al grund",
983
-		        "alfur"
984
-		    ]
985
-		},
986
-		{
987
-		    "domain_id":"cause",
988
-		    "type_id":"universal",
989
-		    "language":"en",
990
-		    "words":[
991
-
992
-		    ]
993
-		},
994
-		{
995
-		    "domain_id":"cause",
996
-		    "type_id":"undefined",
997
-		    "language":"fs",
998
-		    "words":[
999
-		        "fur et grund",
1000
-		        "etfur"
1001
-		    ]
1002
-		},
1003
-		{
1004
-		    "domain_id":"cause",
1005
-		    "type_id":"undefined",
1006
-		    "language":"en",
1007
-		    "words":[
1008
-
1009
-		    ]
1010
-		},
1011
-		{
1012
-		    "domain_id":"cause",
1013
-		    "type_id":"negative",
1014
-		    "language":"fs",
1015
-		    "words":[
1016
-		        "fur ing grund",
1017
-		        "ingfur"
1018
-		    ]
1019
-		},
1020
-		{
1021
-		    "domain_id":"cause",
1022
-		    "type_id":"negative",
1023
-		    "language":"en",
1024
-		    "words":[
1025
-
1026
-		    ]
1027
-		},
1028
-		{
1029
-		    "domain_id":"manner",
1030
-		    "type_id":"interrogative",
1031
-		    "language":"fs",
1032
-		    "words":[
1033
-		        "vilk mot",
1034
-		        "hur"
1035
-		    ]
1036
-		},
1037
-		{
1038
-		    "domain_id":"manner",
1039
-		    "type_id":"interrogative",
1040
-		    "language":"en",
1041
-		    "words":[
1042
-		        "how"
1043
-		    ]
1044
-		},
1045
-		{
1046
-		    "domain_id":"manner",
1047
-		    "type_id":"relative",
1048
-		    "language":"fs",
1049
-		    "words":[
1050
-		        "vilk mot",
1051
-		        "hur"
1052
-		    ]
1053
-		},
1054
-		{
1055
-		    "domain_id":"manner",
1056
-		    "type_id":"relative",
1057
-		    "language":"en",
1058
-		    "words":[
1059
-		        "how"
1060
-		    ]
1061
-		},
1062
-		{
1063
-		    "domain_id":"manner",
1064
-		    "type_id":"demonstrative_far",
1065
-		    "language":"fs",
1066
-		    "words":[
1067
-		        "jen mot",
1068
-		        "so"
1069
-		    ]
1070
-		},
1071
-		{
1072
-		    "domain_id":"manner",
1073
-		    "type_id":"demonstrative_far",
1074
-		    "language":"en",
1075
-		    "words":[
1076
-		        "so"
1077
-		    ]
1078
-		},
1079
-		{
1080
-		    "domain_id":"manner",
1081
-		    "type_id":"demonstrative_near",
1082
-		    "language":"fs",
1083
-		    "words":[
1084
-		        "dis mot",
1085
-		        "so"
1086
-		    ]
1087
-		},
1088
-		{
1089
-		    "domain_id":"manner",
1090
-		    "type_id":"demonstrative_near",
1091
-		    "language":"en",
1092
-		    "words":[
1093
-		        "so"
1094
-		    ]
1095
-		},
1096
-		{
1097
-		    "domain_id":"manner",
1098
-		    "type_id":"universal",
1099
-		    "language":"fs",
1100
-		    "words":[
1101
-		        "al mot"
1102
-		    ]
1103
-		},
1104
-		{
1105
-		    "domain_id":"manner",
1106
-		    "type_id":"universal",
1107
-		    "language":"en",
1108
-		    "words":[
1109
-
1110
-		    ]
1111
-		},
1112
-		{
1113
-		    "domain_id":"manner",
1114
-		    "type_id":"undefined",
1115
-		    "language":"fs",
1116
-		    "words":[
1117
-		        "et mot"
1118
-		    ]
1119
-		},
1120
-		{
1121
-		    "domain_id":"manner",
1122
-		    "type_id":"undefined",
1123
-		    "language":"en",
1124
-		    "words":[
1125
-
1126
-		    ]
1127
-		},
1128
-		{
1129
-		    "domain_id":"manner",
1130
-		    "type_id":"negative",
1131
-		    "language":"fs",
1132
-		    "words":[
1133
-		        "ing mot"
1134
-		    ]
1135
-		},
1136
-		{
1137
-		    "domain_id":"manner",
1138
-		    "type_id":"negative",
1139
-		    "language":"en",
1140
-		    "words":[
1141
-
1142
-		    ]
1143
-		},
1144
-		{
1145
-		    "domain_id":"type",
1146
-		    "type_id":"interrogative",
1147
-		    "language":"fs",
1148
-		    "words":[
1149
-		        "vilk slag"
1150
-		    ]
1151
-		},
1152
-		{
1153
-		    "domain_id":"type",
1154
-		    "type_id":"interrogative",
1155
-		    "language":"en",
1156
-		    "words":[
1157
-		        "what kind of"
1158
-		    ]
1159
-		},
1160
-		{
1161
-		    "domain_id":"type",
1162
-		    "type_id":"relative",
1163
-		    "language":"fs",
1164
-		    "words":[
1165
-		        "vilk slag"
1166
-		    ]
1167
-		},
1168
-		{
1169
-		    "domain_id":"type",
1170
-		    "type_id":"relative",
1171
-		    "language":"en",
1172
-		    "words":[
1173
-
1174
-		    ]
1175
-		},
1176
-		{
1177
-		    "domain_id":"type",
1178
-		    "type_id":"demonstrative_far",
1179
-		    "language":"fs",
1180
-		    "words":[
1181
-		        "jen slag",
1182
-		        "solk"
1183
-		    ]
1184
-		},
1185
-		{
1186
-		    "domain_id":"type",
1187
-		    "type_id":"demonstrative_far",
1188
-		    "language":"en",
1189
-		    "words":[
1190
-		        "such"
1191
-		    ]
1192
-		},
1193
-		{
1194
-		    "domain_id":"type",
1195
-		    "type_id":"demonstrative_near",
1196
-		    "language":"fs",
1197
-		    "words":[
1198
-		        "dis slag"
1199
-		    ]
1200
-		},
1201
-		{
1202
-		    "domain_id":"type",
1203
-		    "type_id":"demonstrative_near",
1204
-		    "language":"en",
1205
-		    "words":[
1206
-
1207
-		    ]
1208
-		},
1209
-		{
1210
-		    "domain_id":"type",
1211
-		    "type_id":"universal",
1212
-		    "language":"fs",
1213
-		    "words":[
1214
-		        "al slag"
1215
-		    ]
1216
-		},
1217
-		{
1218
-		    "domain_id":"type",
1219
-		    "type_id":"universal",
1220
-		    "language":"en",
1221
-		    "words":[
1222
-
1223
-		    ]
1224
-		},
1225
-		{
1226
-		    "domain_id":"type",
1227
-		    "type_id":"undefined",
1228
-		    "language":"fs",
1229
-		    "words":[
1230
-		        "et slag"
1231
-		    ]
1232
-		},
1233
-		{
1234
-		    "domain_id":"type",
1235
-		    "type_id":"undefined",
1236
-		    "language":"en",
1237
-		    "words":[
1238
-
1239
-		    ]
1240
-		},
1241
-		{
1242
-		    "domain_id":"type",
1243
-		    "type_id":"negative",
1244
-		    "language":"fs",
1245
-		    "words":[
1246
-		        "ing slag"
1247
-		    ]
1248
-		},
1249
-		{
1250
-		    "domain_id":"type",
1251
-		    "type_id":"negative",
1252
-		    "language":"en",
1253
-		    "words":[
1254
-
1255
-		    ]
1256
-		},
1257
-		{
1258
-		    "domain_id":"amount",
1259
-		    "type_id":"interrogative",
1260
-		    "language":"fs",
1261
-		    "words":[
1262
-		        "vilk mang"
1263
-		    ]
1264
-		},
1265
-		{
1266
-		    "domain_id":"amount",
1267
-		    "type_id":"interrogative",
1268
-		    "language":"en",
1269
-		    "words":[
1270
-		        "how many",
1271
-		        "how much"
1272
-		    ]
1273
-		},
1274
-		{
1275
-		    "domain_id":"amount",
1276
-		    "type_id":"relative",
1277
-		    "language":"fs",
1278
-		    "words":[
1279
-		        "vilk mang"
1280
-		    ]
1281
-		},
1282
-		{
1283
-		    "domain_id":"amount",
1284
-		    "type_id":"relative",
1285
-		    "language":"en",
1286
-		    "words":[
1287
-		        "how many",
1288
-		        "how much"
1289
-		    ]
1290
-		},
1291
-		{
1292
-		    "domain_id":"amount",
1293
-		    "type_id":"demonstrative_far",
1294
-		    "language":"fs",
1295
-		    "words":[
1296
-		        "jen mang"
1297
-		    ]
1298
-		},
1299
-		{
1300
-		    "domain_id":"amount",
1301
-		    "type_id":"demonstrative_far",
1302
-		    "language":"en",
1303
-		    "words":[
1304
-
1305
-		    ]
1306
-		},
1307
-		{
1308
-		    "domain_id":"amount",
1309
-		    "type_id":"demonstrative_near",
1310
-		    "language":"fs",
1311
-		    "words":[
1312
-		        "dis mang"
1313
-		    ]
1314
-		},
1315
-		{
1316
-		    "domain_id":"amount",
1317
-		    "type_id":"demonstrative_near",
1318
-		    "language":"en",
1319
-		    "words":[
1320
-
1321
-		    ]
1322
-		},
1323
-		{
1324
-		    "domain_id":"amount",
1325
-		    "type_id":"universal",
1326
-		    "language":"fs",
1327
-		    "words":[
1328
-		        "al mang"
1329
-		    ]
1330
-		},
1331
-		{
1332
-		    "domain_id":"amount",
1333
-		    "type_id":"universal",
1334
-		    "language":"en",
1335
-		    "words":[
1336
-
1337
-		    ]
1338
-		},
1339
-		{
1340
-		    "domain_id":"amount",
1341
-		    "type_id":"undefined",
1342
-		    "language":"fs",
1343
-		    "words":[
1344
-		        "et mang"
1345
-		    ]
1346
-		},
1347
-		{
1348
-		    "domain_id":"amount",
1349
-		    "type_id":"undefined",
1350
-		    "language":"en",
1351
-		    "words":[
1352
-
1353
-		    ]
1354
-		},
1355
-		{
1356
-		    "domain_id":"amount",
1357
-		    "type_id":"negative",
1358
-		    "language":"fs",
1359
-		    "words":[
1360
-		        "ing mang"
1361
-		    ]
1362
-		},
1363
-		{
1364
-		    "domain_id":"amount",
1365
-		    "type_id":"negative",
1366
-		    "language":"en",
1367
-		    "words":[
1368
-
1369
-		    ]
1370
-		}
1371
-	]
1372
-}
1373
-
... ...
@@ -1,4 +1,39 @@
1 1
 <?php
2
+	function fetch($structure, $field, $fallback = null, $escalation = 1)
3
+	{
4
+		if (array_key_exists($field, $structure))
5
+		{
6
+			return $structure[$field];
7
+		}
8
+		else
9
+		{
10
+			switch ($escalation)
11
+			{
12
+				case 0:
13
+				{
14
+					return $fallback;
15
+					// break;
16
+				}
17
+				case 1:
18
+				{
19
+					return $fallback;
20
+					// break;
21
+				}
22
+				case 2:
23
+				{
24
+					throw (sprintf("field '%s' missing in structure!", $field));
25
+					return $fallback;
26
+					// break;
27
+				}
28
+				default:
29
+				{
30
+					throw (sprintf("unhandled escalation level %u", $escalation));
31
+					// break;
32
+				}
33
+			}
34
+		}
35
+	}
36
+	
2 37
 	function compose($names)
3 38
 	{
4 39
 		array_map
... ...
@@ -58,39 +58,29 @@
58 58
 		);
59 59
 	}
60 60
 	
61
-	function sql_delete($table_source, $columns)
61
+	function sql_condense($table_source, $columns_from, $columns_to, $condensators)
62 62
 	{
63 63
 		return (
64 64
 			array_map
65 65
 			(
66
-				function ($row_in) use (&$columns)
66
+				function ($row_in) use (&$columns_from,&$columns_to,&$condensators)
67 67
 				{
68 68
 					$row_out = [];
69
-					foreach ($row_in as $key_in => $value_in)
69
+					$values = [];
70
+					foreach ($row_in as $column => $value)
70 71
 					{
71
-						if (array_search($key_in, $columns) === false)
72
+						if (array_search($column, $columns_from) === false)
72 73
 						{
73
-							$row_out[$key_in] = $value_in;
74
+							$row_out[$column] = $row_in[$column];
74 75
 						}
76
+						else
77
+						{
78
+							$values[$column] = $value;
75 79
 						}
76
-					return $row_out;
77
-				},
78
-				$table_source
79
-			)
80
-		);
81 80
 					}
82
-	
83
-	function sql_add($table_source, $columns, $assigners = [])
84
-	{
85
-		return (
86
-			array_map
87
-			(
88
-				function ($row_in) use (&$columns, &$assigners)
81
+					foreach ($columns_to as $column)
89 82
 					{
90
-					$row_out = $row_in;
91
-					foreach ($columns as $column)
92
-					{
93
-						$row_out[$column] = (array_key_exists($column, $assigners) ? $assigners[$column]($row_in) : null);
83
+						$row_out[$column] = (array_key_exists($column, $condensators) ? $condensators[$column]($values) : null);
94 84
 					}
95 85
 					return $row_out;
96 86
 				},
... ...
@@ -99,44 +89,35 @@
99 89
 		);
100 90
 	}
101 91
 	
102
-	function sql_rename($table_source, $column_from, $column_to)
103
-	{
104
-		return (
105
-			array_map
106
-			(
107
-				function ($row_in) use (&$column_from,&$column_to)
92
+	function sql_delete($table_source, $columns)
108 93
 	{
109
-					$row_out = [];
110
-					foreach ($row_in as $column => $value)
94
+		return sql_condense($table_source, $columns, [], []);
95
+	}
96
+	
97
+	function sql_add($table_source, $columns, $assigners = [])
111 98
 	{
112
-						$row_out[($column == $column_from) ? $column_to : $column] = $row_in[$column];
99
+		return sql_condense($table_source, [], $columns, $assigners);
113 100
 	}
114
-					return $row_out;
115
-				},
116
-				$table_source
117
-			)
118
-		);
101
+	
102
+	function sql_rename($table_source, $column_from, $column_to)
103
+	{
104
+		return sql_condense($table_source, [$column_from], [$column_to], [$column_to => function ($values) use (&$column_from) {return $values[$column_from];}]);
119 105
 	}
120 106
 	
121 107
 	function sql_select($table_source, $predicate)
122 108
 	{
123
-		return (
124
-			array_filter
125
-			(
126
-				$table_source,
127
-				$predicate
128
-			)
129
-		);
109
+		return array_filter($table_source, $predicate);
130 110
 	}
131 111
 	
132
-	function sql_group($table_source, $column, $aggregators)
112
+	function sql_groups($table_source, $column, $extraction = null)
133 113
 	{
114
+		if ($extraction == null) $extraction = (function ($column, $row) {return $row[$column];});
134 115
 		$groups = [];
135 116
 		array_map
136 117
 		(
137
-			function ($row_source) use (&$table_source,&$column,&$groups)
118
+			function ($row_source) use (&$table_source,&$column,&$extraction,&$groups)
138 119
 			{
139
-				$value = $row_source[$column];
120
+				$value = $extraction($column, $row_source);
140 121
 				$group = null;
141 122
 				$index = null;
142 123
 				// foreach ($groups as $group_)
... ...
@@ -161,6 +142,12 @@
161 142
 			},
162 143
 			$table_source
163 144
 		);
145
+		return $groups;
146
+	}
147
+		
148
+	function sql_groupify($table_source, $column, $aggregators)
149
+	{
150
+		$groups = sql_groups($table_source, $column);
164 151
 		$table_result = array_map
165 152
 		(
166 153
 			function ($group) use (&$column,&$aggregators)
... ...
@@ -179,18 +166,108 @@
179 166
 		return $table_result;
180 167
 	}
181 168
 	
182
-	function sql_snap($table_source)
169
+	/*
170
+	
171
+	+------+------+------+
172
+	|  xA  |  xB  |  xC  |
173
+	+------+------+------+
174
+	|  a2  |  b1  |  c3  |
175
+	+------+------+------+
176
+	|  a1  |  b1  |  c0  |
177
+	+------+------+------+
178
+	|  a1  |  b3  |  c2  |
179
+	+------+------+------+
180
+	|  a2  |  b2  |  c4  |
181
+	+------+------+------+
182
+	|  a1  |  b2  |  c1  |
183
+	+------+------+------+
184
+	|  a2  |  b4  |  c5  |
185
+	+------+------+------+
186
+	
187
+	+------+------+------+
188
+	|  xA  |  xB  |  xC  |
189
+	+------+------+------+
190
+	|  a1  |  b1  |  c0  |
191
+	+------+------+------+
192
+	|  a1  |  b2  |  c1  |
193
+	+------+------+------+
194
+	|  a1  |  b3  |  c2  |
195
+	+------+------+------+
196
+	|  a2  |  b1  |  c3  |
197
+	+------+------+------+
198
+	|  a2  |  b2  |  c4  |
199
+	+------+------+------+
200
+	|  a2  |  b4  |  c5  |
201
+	+------+------+------+
202
+	
203
+	+------+------+------+
204
+	|  xA  |  xB  |  xC  |
205
+	+------+------+------+
206
+	|  a1  |  b1  |  c0  |
207
+	|      +------+------+
208
+	|      |  b2  |  c1  |
209
+	|      +------+------+
210
+	|      |  b3  |  c2  |
211
+	+------+------+------+
212
+	|  a2  |  b1  |  c3  |
213
+	|      +------+------+
214
+	|      |  b2  |  c4  |
215
+	|      +------+------+
216
+	|      |  b4  |  c5  |
217
+	+------+------+------+
218
+	
219
+	+------+------+------+------+------+
220
+	|  xA  | xB:b1| xB:b2| xB:b3| xB:b4|
221
+	+------+------+------+------+------+
222
+	|  a1  |  c0  |  c1  |  c2  |  --  |
223
+	+------+------+------+------+------+
224
+	|  a2  |  c3  |  c4  |  --  |  c5  |
225
+	+------+------+------+------+------+
226
+	
227
+	 */
228
+	function sql_snap($table_source, $column_vertical, $column_horizontal, $column_data)
183 229
 	{
184
-		$columns = [];
185
-		$table_result = [];
230
+		$values = [];
186 231
 		array_map
187 232
 		(
188
-			function ($row_source)
233
+			function ($row) use (&$values,&$column_horizontal)
189 234
 			{
190
-				
235
+				$value = $row[$column_horizontal];
236
+				if (array_search($value, $values) === false) array_push($values, $value);
191 237
 			},
192 238
 			$table_source
193 239
 		);
240
+		$groups = sql_groups($table_source, $column_vertical);
241
+		// print(json_encode(array_slice($groups, 0, 2)) . "\n");
242
+		$table_result = array_map
243
+		(
244
+			function ($group) use (&$column_vertical,&$column_horizontal,&$column_data,&$values)
245
+			{
246
+				$row = [];
247
+				$row[$column_vertical] = $group["value"];
248
+				array_map
249
+				(
250
+					function ($value) use (&$row)
251
+					{
252
+						$row[$value] = [];
253
+					},
254
+					$values
255
+				);
256
+				array_map
257
+				(
258
+					function ($member) use (&$column_horizontal,&$column_data,&$row)
259
+					{
260
+						$value = $member[$column_horizontal];
261
+						$data = $member[$column_data];
262
+						// print("-- adding value " . json_encode($data) . " for field " . $value . " to dataset " . json_encode($row) . "\n");
263
+						array_push($row[$value], $data);
264
+					},
265
+					$group["members"]
266
+				);
267
+				return $row;
268
+			},
269
+			$groups
270
+		);
194 271
 		return $table_result;
195 272
 	}
196 273
 	
... ...
@@ -1,23 +1,26 @@
1 1
 <?php
2
+include_once("misc.php");
3
+
2 4
 class class_column
3 5
 {
4 6
 	public $title;
5 7
 	
6
-	public $extract_;
8
+	public $field;
7 9
 	
8 10
 	public $format_;
9 11
 	
10
-	public function __construct($title, $extract_, $format_ = null)
12
+	public function __construct($title, $field, $format_ = null)
11 13
 	{
12 14
 		if ($format_ == null) $format_ = function ($x) {return $x;};
13 15
 		$this->title = $title;
14
-		$this->extract_ = $extract_;
16
+		$this->field = $field;
15 17
 		$this->format_ = $format_;
16 18
 	}
17 19
 	
18 20
 	public function extract($row)
19 21
 	{
20
-		return call_user_func($this->extract_, $row);
22
+		// return call_user_func($this->extract_, $row);
23
+		return $row[$this->field];
21 24
 		// return $this->extract_($row);
22 25
 	}
23 26
 	
... ...
@@ -41,6 +44,11 @@ class class_table
41 44
 		$this->fill($rows);
42 45
 	}
43 46
 	
47
+	public function columns_get()
48
+	{
49
+		return $this->columns;
50
+	}
51
+	
44 52
 	private function add($row)
45 53
 	{
46 54
 		array_push($this->rows, $row);
... ...
@@ -55,6 +63,122 @@ class class_table
55 63
 		);
56 64
 	}
57 65
 	
66
+	public function snap($configuration)
67
+	{
68
+		$columns_vertical = fetch($configuration, "columns_vertical", null, 2);
69
+		$columns_horizontal = fetch($configuration, "columns_horizontal", null, 2);
70
+		$columns_data = fetch($configuration, "columns_data", null, 2);
71
+		
72
+		$columns_source =
73
+		[
74
+			new class_column("Vertical", "vertical"),
75
+			new class_column("Horizontal", "horizontal"),
76
+			new class_column("Data", "data"),
77
+		];
78
+		$rows_source = null;
79
+		{
80
+			$rows_source = $this->rows;
81
+			$rows_source = sql_condense
82
+			(
83
+				$rows_source,
84
+				array_map(function ($column) {return $column->field;}, $columns_vertical),
85
+				["vertical"],
86
+				["vertical" => function ($values) use (&$columns_vertical) {return implode("/", array_map(function ($column) use (&$values) {return $values[$column->field];}, $columns_vertical));}]
87
+			);
88
+			$rows_source = sql_condense
89
+			(
90
+				$rows_source,
91
+				array_map(function ($column) {return $column->field;}, $columns_horizontal),
92
+				["horizontal"],
93
+				["horizontal" => function ($values) use (&$columns_horizontal) {return implode("/", array_map(function ($column) use (&$values) {return $values[$column->field];}, $columns_horizontal));}]
94
+			);
95
+			$rows_source = sql_condense
96
+			(
97
+				$rows_source,
98
+				array_map(function ($column) {return $column->field;}, $columns_data),
99
+				["data"],
100
+				["data" => function ($values) use (&$configuration) {return fetch($configuration, "data_aggregator", function ($values) {return /*json_encode(*/$values/*)*/;}, 1)($values);}]
101
+			);
102
+		}
103
+		// return (new class_table($columns_source, $rows_source));
104
+		$columns_result = [];
105
+		{
106
+			array_push
107
+			(
108
+				$columns_result,
109
+				new class_column
110
+				(
111
+					fetch
112
+					(
113
+						$configuration,
114
+						"label_vertical",
115
+						function ($columns) {return implode("/", array_map(function ($column) {return $column->title;}, $columns));},
116
+						1
117
+					)($columns_vertical),
118
+					"vertical"
119
+				)
120
+			);
121
+		}
122
+		$values = [];
123
+		foreach ($rows_source as $row)
124
+		{
125
+			$value = $columns_source[1]->extract($row);
126
+			if (array_search($value, $values) === false)
127
+			{
128
+				array_push
129
+				(
130
+					$columns_result,
131
+					new class_column
132
+					(
133
+						fetch
134
+						(
135
+							$configuration,
136
+							"label_horizontal",
137
+							function ($columns, $value) {return implode("/", array_map(function ($column) {return $column->title;}, $columns)) . ":" . $value;},
138
+							1
139
+						)($columns_horizontal, $value),
140
+						sprintf("horizontal_%u", count($columns_result)-1),
141
+						fetch($configuration, "data_formatter", function ($x) {return json_encode($x);}, 1)
142
+					)
143
+				);
144
+				array_push($values, $value);
145
+			}
146
+		}
147
+		$groups = sql_groups($rows_source, "vertical");
148
+		$rows_result = array_map
149
+		(
150
+			function ($group) use (&$columns_vertical,&$columns_horizontal,&$columns_data,&$columns_source,&$columns_result,&$values)
151
+			{
152
+				$row = [];
153
+				{
154
+					$row["vertical"] = $group["value"];
155
+				}
156
+				for ($index = 0; $index < count($columns_result); ++$index)
157
+				{
158
+					$row[sprintf("horizontal_%u", $index)] = [];
159
+				}
160
+				foreach ($group["members"] as $member)
161
+				{
162
+					$value = $columns_source[1]->extract($member);
163
+					$data = $columns_source[2]->extract($member);
164
+					$index = array_search($value, $values);
165
+					if ($index === false)
166
+					{
167
+						throw ("fatal error");
168
+					}
169
+					else
170
+					{
171
+						$field = sprintf("horizontal_%u", $index);
172
+						array_push($row[$field], $data);
173
+					}
174
+				}
175
+				return $row;
176
+			},
177
+			$groups
178
+		);
179
+		return (new class_table($columns_result, $rows_result));
180
+	}
181
+	
58 182
 	public function generate()
59 183
 	{
60 184
  ?>
... ...
@@ -0,0 +1,273 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+<table class="datatable">
8
+	<thead>
9
+		<tr>
10
+ 			<th>
11
+			</th>
12
+ 			<th>
13
+singular/impersonal/common			</th>
14
+ 			<th>
15
+singular/1st/common			</th>
16
+ 			<th>
17
+singular/2nd/common			</th>
18
+ 			<th>
19
+singular/3rd/common			</th>
20
+ 			<th>
21
+singular/3rd/masculine			</th>
22
+ 			<th>
23
+singular/3rd/feminine			</th>
24
+ 			<th>
25
+singular/3rd/neuter			</th>
26
+ 			<th>
27
+plural/impersonal/common			</th>
28
+ 			<th>
29
+plural/1st/common			</th>
30
+ 			<th>
31
+plural/2nd/common			</th>
32
+ 			<th>
33
+plural/3rd/common			</th>
34
+		</tr>
35
+	</thead>
36
+	<tbody>
37
+		<tr>
38
+		 			<td>
39
+normal/nominative		 			</td>
40
+		 			<td>
41
+<span class="words lang_fs">man</span> ~ <span class="words lang_">one</span>, <span class="words lang_">you</span>		 			</td>
42
+		 			<td>
43
+<span class="words lang_fs">ek</span> ~ <span class="words lang_">i</span>		 			</td>
44
+		 			<td>
45
+<span class="words lang_fs">du</span> ~ <span class="words lang_">you</span>, <span class="words lang_">thou</span>		 			</td>
46
+		 			<td>
47
+<span class="words lang_fs">hen</span> ~ ?		 			</td>
48
+		 			<td>
49
+<span class="words lang_fs">han</span> ~ <span class="words lang_">he</span>		 			</td>
50
+		 			<td>
51
+<span class="words lang_fs">hun</span> ~ <span class="words lang_">she</span>		 			</td>
52
+		 			<td>
53
+<span class="words lang_fs">hit</span> ~ <span class="words lang_">it</span>		 			</td>
54
+		 			<td>
55
+<span class="words lang_fs">maner</span> ~ <span class="words lang_">you</span>, <span class="words lang_">they</span>		 			</td>
56
+		 			<td>
57
+<span class="words lang_fs">vi</span> ~ <span class="words lang_">we</span>		 			</td>
58
+		 			<td>
59
+<span class="words lang_fs">je</span> ~ <span class="words lang_">you (all)</span>		 			</td>
60
+		 			<td>
61
+<span class="words lang_fs">di</span> ~ <span class="words lang_">they</span>		 			</td>
62
+		</tr>
63
+		<tr>
64
+		 			<td>
65
+normal/accusative		 			</td>
66
+		 			<td>
67
+<span class="words lang_fs">man</span> ~ <span class="words lang_">one</span>, <span class="words lang_">you</span>		 			</td>
68
+		 			<td>
69
+<span class="words lang_fs">mek</span> ~ <span class="words lang_">me</span>		 			</td>
70
+		 			<td>
71
+<span class="words lang_fs">dek</span> ~ <span class="words lang_">you</span>, <span class="words lang_">thee</span>		 			</td>
72
+		 			<td>
73
+<span class="words lang_fs">hen</span> ~ ?		 			</td>
74
+		 			<td>
75
+<span class="words lang_fs">han</span> ~ <span class="words lang_">him</span>		 			</td>
76
+		 			<td>
77
+<span class="words lang_fs">hun</span> ~ <span class="words lang_">her</span>		 			</td>
78
+		 			<td>
79
+<span class="words lang_fs">hit</span> ~ <span class="words lang_">it</span>		 			</td>
80
+		 			<td>
81
+<span class="words lang_fs">maner</span> ~ <span class="words lang_">you</span>, <span class="words lang_">them</span>		 			</td>
82
+		 			<td>
83
+<span class="words lang_fs">us</span> ~ <span class="words lang_">us</span>		 			</td>
84
+		 			<td>
85
+<span class="words lang_fs">ju</span> ~ <span class="words lang_">you (all)</span>		 			</td>
86
+		 			<td>
87
+<span class="words lang_fs">dim</span> ~ <span class="words lang_">them</span>		 			</td>
88
+		</tr>
89
+		<tr>
90
+		 			<td>
91
+normal/dative		 			</td>
92
+		 			<td>
93
+<span class="words lang_fs">to man</span> ~ <span class="words lang_">to one</span>, <span class="words lang_">to you</span>		 			</td>
94
+		 			<td>
95
+<span class="words lang_fs">to mek</span> ~ <span class="words lang_">to me</span>		 			</td>
96
+		 			<td>
97
+<span class="words lang_fs">to dek</span> ~ <span class="words lang_">to you</span>, <span class="words lang_">to thee</span>		 			</td>
98
+		 			<td>
99
+<span class="words lang_fs">to hen</span> ~ ?		 			</td>
100
+		 			<td>
101
+<span class="words lang_fs">to han</span> ~ <span class="words lang_">to him</span>		 			</td>
102
+		 			<td>
103
+<span class="words lang_fs">to hun</span> ~ <span class="words lang_">to her</span>		 			</td>
104
+		 			<td>
105
+<span class="words lang_fs">to hit</span> ~ <span class="words lang_">to it</span>		 			</td>
106
+		 			<td>
107
+<span class="words lang_fs">to maner</span> ~ <span class="words lang_">to you</span>, <span class="words lang_">to them</span>		 			</td>
108
+		 			<td>
109
+<span class="words lang_fs">to us</span> ~ <span class="words lang_">to us</span>		 			</td>
110
+		 			<td>
111
+<span class="words lang_fs">to ju</span> ~ <span class="words lang_">to you (all)</span>		 			</td>
112
+		 			<td>
113
+<span class="words lang_fs">to dim</span> ~ <span class="words lang_">to them</span>		 			</td>
114
+		</tr>
115
+		<tr>
116
+		 			<td>
117
+reflexive/accusative		 			</td>
118
+		 			<td>
119
+<span class="words lang_fs">sek</span> ~ <span class="words lang_">oneself</span>, <span class="words lang_">yourself</span>		 			</td>
120
+		 			<td>
121
+<span class="words lang_fs">mek</span> ~ <span class="words lang_">myself</span>		 			</td>
122
+		 			<td>
123
+<span class="words lang_fs">dek</span> ~ <span class="words lang_">yourself</span>		 			</td>
124
+		 			<td>
125
+<span class="words lang_fs">sek</span> ~ ?		 			</td>
126
+		 			<td>
127
+<span class="words lang_fs">sek</span> ~ <span class="words lang_">himself</span>		 			</td>
128
+		 			<td>
129
+<span class="words lang_fs">sek</span> ~ <span class="words lang_">herself</span>		 			</td>
130
+		 			<td>
131
+<span class="words lang_fs">sek</span> ~ <span class="words lang_">itself</span>		 			</td>
132
+		 			<td>
133
+<span class="words lang_fs">maner</span> ~ <span class="words lang_">themselves</span>, <span class="words lang_">yourselves</span>		 			</td>
134
+		 			<td>
135
+<span class="words lang_fs">us</span> ~ <span class="words lang_">ourselves</span>		 			</td>
136
+		 			<td>
137
+<span class="words lang_fs">ju</span> ~ <span class="words lang_">yourselves</span>		 			</td>
138
+		 			<td>
139
+<span class="words lang_fs">sek</span> ~ <span class="words lang_">themselves</span>		 			</td>
140
+		</tr>
141
+		<tr>
142
+		 			<td>
143
+reflexive/dative		 			</td>
144
+		 			<td>
145
+<span class="words lang_fs">to sek</span> ~ <span class="words lang_">to oneself</span>, <span class="words lang_">to yourself</span>		 			</td>
146
+		 			<td>
147
+<span class="words lang_fs">to mek</span> ~ <span class="words lang_">to myself</span>		 			</td>
148
+		 			<td>
149
+<span class="words lang_fs">to dek</span> ~ <span class="words lang_">to yourself</span>		 			</td>
150
+		 			<td>
151
+<span class="words lang_fs">to sek</span> ~ ?		 			</td>
152
+		 			<td>
153
+<span class="words lang_fs">to sek</span> ~ <span class="words lang_">to himself</span>		 			</td>
154
+		 			<td>
155
+<span class="words lang_fs">to sek</span> ~ <span class="words lang_">to herself</span>		 			</td>
156
+		 			<td>
157
+<span class="words lang_fs">to sek</span> ~ <span class="words lang_">to itself</span>		 			</td>
158
+		 			<td>
159
+<span class="words lang_fs">to sek</span> ~ <span class="words lang_">to themselves</span>, <span class="words lang_">to yourselves</span>		 			</td>
160
+		 			<td>
161
+<span class="words lang_fs">to us</span> ~ <span class="words lang_">to ourselves</span>		 			</td>
162
+		 			<td>
163
+<span class="words lang_fs">to ju</span> ~ <span class="words lang_">to yourselves</span>		 			</td>
164
+		 			<td>
165
+<span class="words lang_fs">to sek</span> ~ <span class="words lang_">to themselves</span>		 			</td>
166
+		</tr>
167
+		<tr>
168
+		 			<td>
169
+possesive/nominative		 			</td>
170
+		 			<td>
171
+<span class="words lang_fs">mans</span> ~ <span class="words lang_">ones</span>, <span class="words lang_">your</span>		 			</td>
172
+		 			<td>
173
+<span class="words lang_fs">min</span> ~ <span class="words lang_">my</span>		 			</td>
174
+		 			<td>
175
+<span class="words lang_fs">din</span> ~ <span class="words lang_">your</span>		 			</td>
176
+		 			<td>
177
+<span class="words lang_fs">hens</span> ~ ?		 			</td>
178
+		 			<td>
179
+<span class="words lang_fs">hans</span> ~ <span class="words lang_">his</span>		 			</td>
180
+		 			<td>
181
+<span class="words lang_fs">huns</span> ~ <span class="words lang_">her</span>		 			</td>
182
+		 			<td>
183
+<span class="words lang_fs">hits</span> ~ <span class="words lang_">its</span>		 			</td>
184
+		 			<td>
185
+<span class="words lang_fs">maners</span> ~ <span class="words lang_">their</span>, <span class="words lang_">your</span>		 			</td>
186
+		 			<td>
187
+<span class="words lang_fs">ur</span> ~ <span class="words lang_">our</span>		 			</td>
188
+		 			<td>
189
+<span class="words lang_fs">jer</span> ~ <span class="words lang_">your</span>		 			</td>
190
+		 			<td>
191
+<span class="words lang_fs">dir</span> ~ <span class="words lang_">their</span>		 			</td>
192
+		</tr>
193
+		<tr>
194
+		 			<td>
195
+possesive/accusative		 			</td>
196
+		 			<td>
197
+<span class="words lang_fs">mans</span> ~ <span class="words lang_">ones</span>, <span class="words lang_">your</span>		 			</td>
198
+		 			<td>
199
+<span class="words lang_fs">min</span> ~ <span class="words lang_">my</span>		 			</td>
200
+		 			<td>
201
+<span class="words lang_fs">din</span> ~ <span class="words lang_">your</span>		 			</td>
202
+		 			<td>
203
+<span class="words lang_fs">hens</span> ~ ?		 			</td>
204
+		 			<td>
205
+<span class="words lang_fs">hans</span> ~ <span class="words lang_">his</span>		 			</td>
206
+		 			<td>
207
+<span class="words lang_fs">huns</span> ~ <span class="words lang_">her</span>		 			</td>
208
+		 			<td>
209
+<span class="words lang_fs">hits</span> ~ <span class="words lang_">its</span>		 			</td>
210
+		 			<td>
211
+<span class="words lang_fs">maners</span> ~ <span class="words lang_">their</span>, <span class="words lang_">your</span>		 			</td>
212
+		 			<td>
213
+<span class="words lang_fs">ur</span> ~ <span class="words lang_">our</span>		 			</td>
214
+		 			<td>
215
+<span class="words lang_fs">jer</span> ~ <span class="words lang_">your</span>		 			</td>
216
+		 			<td>
217
+<span class="words lang_fs">dir</span> ~ <span class="words lang_">their</span>		 			</td>
218
+		</tr>
219
+		<tr>
220
+		 			<td>
221
+possesive/dative		 			</td>
222
+		 			<td>
223
+<span class="words lang_fs">to mans</span> ~ <span class="words lang_">to ones</span>, <span class="words lang_">to your</span>		 			</td>
224
+		 			<td>
225
+<span class="words lang_fs">to min</span> ~ <span class="words lang_">to my</span>		 			</td>
226
+		 			<td>
227
+<span class="words lang_fs">to din</span> ~ <span class="words lang_">to your</span>		 			</td>
228
+		 			<td>
229
+<span class="words lang_fs">to hens</span> ~ ?		 			</td>
230
+		 			<td>
231
+<span class="words lang_fs">to hans</span> ~ <span class="words lang_">to his</span>		 			</td>
232
+		 			<td>
233
+<span class="words lang_fs">to huns</span> ~ <span class="words lang_">to her</span>		 			</td>
234
+		 			<td>
235
+<span class="words lang_fs">to hits</span> ~ <span class="words lang_">to its</span>		 			</td>
236
+		 			<td>
237
+<span class="words lang_fs">to maners</span> ~ <span class="words lang_">to their</span>, <span class="words lang_">to your</span>		 			</td>
238
+		 			<td>
239
+<span class="words lang_fs">to ur</span> ~ <span class="words lang_">to our</span>		 			</td>
240
+		 			<td>
241
+<span class="words lang_fs">to jer</span> ~ <span class="words lang_">to your</span>		 			</td>
242
+		 			<td>
243
+<span class="words lang_fs">to dir</span> ~ <span class="words lang_">to their</span>		 			</td>
244
+		</tr>
245
+		<tr>
246
+		 			<td>
247
+possesive/genitive		 			</td>
248
+		 			<td>
249
+<span class="words lang_fs">av mans</span> ~ <span class="words lang_">of ones</span>, <span class="words lang_">of your</span>		 			</td>
250
+		 			<td>
251
+<span class="words lang_fs">av min</span> ~ <span class="words lang_">of my</span>		 			</td>
252
+		 			<td>
253
+<span class="words lang_fs">av din</span> ~ <span class="words lang_">of your</span>		 			</td>
254
+		 			<td>
255
+<span class="words lang_fs">av hens</span> ~ ?		 			</td>
256
+		 			<td>
257
+<span class="words lang_fs">av hans</span> ~ <span class="words lang_">of his</span>		 			</td>
258
+		 			<td>
259
+<span class="words lang_fs">av huns</span> ~ <span class="words lang_">of her</span>		 			</td>
260
+		 			<td>
261
+<span class="words lang_fs">av hits</span> ~ <span class="words lang_">of its</span>		 			</td>
262
+		 			<td>
263
+<span class="words lang_fs">av maners</span> ~ <span class="words lang_">of their</span>, <span class="words lang_">of your</span>		 			</td>
264
+		 			<td>
265
+<span class="words lang_fs">av ur</span> ~ <span class="words lang_">of our</span>		 			</td>
266
+		 			<td>
267
+<span class="words lang_fs">av jer</span> ~ <span class="words lang_">of your</span>		 			</td>
268
+		 			<td>
269
+<span class="words lang_fs">av dir</span> ~ <span class="words lang_">of their</span>		 			</td>
270
+		</tr>
271
+	</tbody>
272
+</table>
273
+
... ...
@@ -0,0 +1,99 @@
1
+<?php
2
+	include_once("data.php");
3
+	include_once("sql.php");
4
+	include_once("table.php");
5
+	
6
+	$data_common = read_json("../../data/common.json");
7
+	$data_pronouns = read_json("../../data/personal_pronouns.json");
8
+	
9
+	$data = $data_pronouns["words"];
10
+	{
11
+		{
12
+			$data = sql_cross($data, $data_common["counts"]);
13
+			$data = sql_select($data, function ($row) {return ($row["count_id"] == $row["id"]);});
14
+			$data = sql_delete($data, ["count_id", "id"]);
15
+			$data = sql_rename($data, "name", "count_name");
16
+		}
17
+		{
18
+			$data = sql_cross($data, $data_common["persons"]);
19
+			$data = sql_select($data, function ($row) {return ($row["person_id"] == $row["id"]);});
20
+			$data = sql_delete($data, ["person_id", "id"]);
21
+			$data = sql_rename($data, "name", "person_name");
22
+		}
23
+		{
24
+			$data = sql_cross($data, $data_common["genders"]);
25
+			$data = sql_select($data, function ($row) {return ($row["gender_id"] == $row["id"]);});
26
+			$data = sql_delete($data, ["gender_id", "id"]);
27
+			$data = sql_rename($data, "name", "gender_name");
28
+		}
29
+		{
30
+			$data = sql_cross($data, $data_pronouns["types"]);
31
+			$data = sql_select($data, function ($row) {return ($row["type_id"] == $row["id"]);});
32
+			$data = sql_delete($data, ["type_id", "id"]);
33
+			$data = sql_rename($data, "name", "type_name");
34
+		}
35
+		{
36
+			$data = sql_cross($data, $data_common["cases"]);
37
+			$data = sql_select($data, function ($row) {return ($row["case_id"] == $row["id"]);});
38
+			$data = sql_delete($data, ["case_id", "id"]);
39
+			$data = sql_rename($data, "name", "case_name");
40
+		}
41
+	}
42
+	
43
+	$table = new class_table
44
+	(
45
+		[
46
+			new class_column("Language", "language_id"),
47
+			new class_column("Count", "count_name"),
48
+			new class_column("Person", "person_name"),
49
+			new class_column("Gender", "gender_name"),
50
+			new class_column("Type", "type_name"),
51
+			new class_column("Case", "case_name"),
52
+			new class_column("Words", "words", function ($x) {return json_encode($x);}),
53
+		],
54
+		$data
55
+	);
56
+	
57
+	$table = $table->snap
58
+	(
59
+		[
60
+			"label_vertical" => function ($column) {return "";},
61
+			"columns_vertical" =>
62
+			[
63
+				$table->columns_get()[4],
64
+				$table->columns_get()[5],
65
+			],
66
+			"label_horizontal" => function ($column, $value) {return $value;},
67
+			"columns_horizontal" =>
68
+			[
69
+				$table->columns_get()[1],
70
+				$table->columns_get()[2],
71
+				$table->columns_get()[3],
72
+			],
73
+			"columns_data" =>
74
+			[
75
+				$table->columns_get()[0],
76
+				$table->columns_get()[6],
77
+			],
78
+			"data_aggregator" => function ($values)
79
+			{
80
+				return $values;
81
+			},
82
+			"data_formatter" => function ($value)
83
+			{
84
+				return (
85
+					_bar("words")
86
+					(
87
+						[
88
+							"original" => $value[0]["words"],
89
+							"translated" => $value[1]["words"],
90
+						]
91
+					)
92
+				);
93
+				return json_encode($value);
94
+			},
95
+		]
96
+	);
97
+	$table->generate();
98
+?>
99
+
... ...
@@ -236,6 +236,58 @@ a
236 236
 	font-family: monospace;
237 237
 }
238 238
 
239
+.clause
240
+{
241
+	padding: 4px;
242
+	margin: 2px;
243
+	
244
+	&.meta
245
+	{
246
+		&:before
247
+		{
248
+			content: "[";
249
+		}
250
+		
251
+		&:after
252
+		{
253
+			content: "]";
254
+		}
255
+	}
256
+	
257
+	&.optional
258
+	{
259
+	}
260
+	
261
+	&.mandatory
262
+	{
263
+		text-decoration: underline;
264
+	}
265
+	
266
+	&.predicate
267
+	{
268
+		.interpolate(hsvvalue(@color-fg), hsvvalue(@color-bg), 0.6);
269
+		background-color: hsv(  0, 60%, @result_interpolate);
270
+	}
271
+	
272
+	&.subject
273
+	{
274
+		.interpolate(hsvvalue(@color-fg), hsvvalue(@color-bg), 0.6);
275
+		background-color: hsv( 90, 60%, @result_interpolate);
276
+	}
277
+	
278
+	&.object
279
+	{
280
+		.interpolate(hsvvalue(@color-fg), hsvvalue(@color-bg), 0.6);
281
+		background-color: hsv(180, 60%, @result_interpolate);
282
+	}
283
+	
284
+	&.other
285
+	{
286
+		.interpolate(hsvvalue(@color-fg), hsvvalue(@color-bg), 0.6);
287
+		background-color: hsv(270, 60%, @result_interpolate);
288
+	}
289
+}
290
+
239 291
 section
240 292
 {
241 293
 	&.chapter
242 294