Newer
Older
import logging
import os
import shutil
from collections import OrderedDict
from datetime import datetime
from typing import List, Tuple, Dict
from unittest.mock import patch
from conllu import TokenList
from flask import Flask
from flask.ctx import AppContext
from flask.testing import FlaskClient
from gensim.models import Word2Vec
from gensim.models.keyedvectors import Vocab
from networkx import Graph
from numpy.core.multiarray import ndarray
from mcserver import Config, TestingConfig
from mcserver.app import db, shutdown_session
from mcserver.app.models import Phenomenon, PartOfSpeech, CitationLevel, ExerciseData, GraphData, \
LinkMC, NodeMC, Language, Dependency, Case, AnnisResponse, Solution, TextPart, Citation, ExerciseMC, CorpusMC, \
SolutionElement
from mcserver.app.services import AnnotationService, CustomCorpusService, TextService, DatabaseService
from mcserver.models_auto import Corpus, Exercise, UpdateInfo
class MockFilterBy:
def __init__(self, ui: UpdateInfo = None):
self.ui: UpdateInfo = ui
def first(self):
return self.ui
class MockQuery:
def __init__(self, ui: UpdateInfo = None):
self.ui: UpdateInfo = ui
def all(self):
return db.session.query(Corpus).all()
def filter_by(self, **kwargs):
return MockFilterBy(self.ui)
class MockResponse:
def __init__(self, text: str, ok: bool = True, content: bytes = b""):
self.content: bytes = content
self.encoding: str = "utf-8"
self.ok: bool = ok
self.text: str = text
def raise_for_status(self) -> None:
pass
class MockWV:
def __init__(self):
self.vocab: Dict[str, Vocab] = {"ueritas": Vocab(count=50), "uera": Vocab(count=50)}
ret_val: ndarray = ndarray((100,))
ret_val.fill(0.5)
self.get_vector_return_value: ndarray = ret_val
def get_vector(self, word: str) -> ndarray:
return self.get_vector_return_value
class MockW2V:
def __init__(self):
self.wv = MockWV()
class TestHelper:
def __init__(self, app: Flask):
self.app: Flask = app
self.app_context: AppContext = self.app.app_context()
self.client: FlaskClient = self.app.test_client()
@staticmethod
def update_flask_app(class_name: str, app_factory: callable) -> None:
"""Sets up and tears down the testing environment for each Test Case."""
if len(Mocks.app_dict) and list(Mocks.app_dict.keys())[0] != class_name:
if Config.CORPUS_STORAGE_MANAGER:
Config.CORPUS_STORAGE_MANAGER.__exit__(None, None, None)
if os.path.exists(Config.GRAPH_DATABASE_DIR):
shutil.rmtree(Config.GRAPH_DATABASE_DIR)
list(Mocks.app_dict.values())[0].app_context.pop()
shutdown_session()
db.drop_all()
Mocks.app_dict = {}
if not len(Mocks.app_dict):
with patch.object(TextService, "init_stop_words_latin"):
Mocks.app_dict[class_name] = TestHelper(app_factory(TestingConfig))

Konstantin Schulz
committed
Mocks.app_dict[class_name].app.logger.setLevel(logging.WARNING)
Mocks.app_dict[class_name].app.testing = True
DatabaseService.commit()
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
class Mocks:
"""This class contains mock objects for unit testing purposes."""
annotations: List[TokenList] = [TokenList(
tokens=[{"id": 1, "form": "Caesar", "lemma": "Caeso", "upostag": "VERB", "xpostag": "L3|modJ|tem3|gen4|stAV",
"feats": {"Mood": "Ind", "Number": "Sing", "Person": "1", "Tense": "Fut", "VerbForm": "Fin",
"Voice": "Pass"}, "head": 0, "deprel": "root", "deps": None, "misc": {"ref": "1.1"}},
{"id": 2, "form": "et", "lemma": "et", "upostag": "CCONJ", "xpostag": "O4|stRL", "feats": None,
"head": 3, "deprel": "cc", "deps": None, "misc": None},
{"id": 3, "form": "Galli", "lemma": "Gallo", "upostag": "VERB", "xpostag": "L3|modQ|tem1|stAC",
"feats": {"Tense": "Pres", "VerbForm": "Inf", "Voice": "Pass"}, "head": 1, "deprel": "conj",
"deps": None, "misc": None},
{"id": 4, "form": "fortes", "lemma": "fors", "upostag": "NOUN", "xpostag": "C1|grn1|casJ|gen2|stRS",
"feats": {"Case": "Nom", "Degree": "Pos", "Gender": "Fem", "Number": "Plur"}, "head": 3,
"deprel": "nsubj:pass", "deps": None, "misc": None},
{"id": 5, "form": "sunt", "lemma": "sum", "upostag": "AUX", "xpostag": "N3|modA|tem1|gen9|stAV",
"feats": {"Mood": "Ind", "Number": "Plur", "Person": "3", "Tense": "Pres", "VerbForm": "Fin",
"Voice": "Act"}, "head": 3, "deprel": "aux:pass", "deps": None,
"misc": {"SpaceAfter": "No"}},
{"id": 6, "form": ".", "lemma": ".", "upostag": "PUNCT", "xpostag": "Punc", "feats": None, "head": 1,
"deprel": "punct", "deps": None, "misc": None}],
metadata=OrderedDict([("sent_id", "1"), ("urn", "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1")]))]
annis_response_dict: dict = {"graph_data_raw": {"directed": True, "multigraph": True, "graph": {}, "nodes": [
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "Pars", "udep::lemma": "pars",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Nom|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok3",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "formator", "udep::lemma": "formator",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Nom|Gender=Masc|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok3"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "praecepturus", "udep::lemma": "praecipio",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Case=Nom|Gender=Masc|Number=Sing|Tense=Fut|VerbForm=Part|Voice=Act",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok16",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "qui", "udep::lemma": "qvi",
"udep::upostag": "PRON", "udep::xpostag": "Pr", "udep::feats": "Case=Nom|Gender=Masc|Number=Plur|PronType=Rel",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok16"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok9",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "rhetores", "udep::lemma": "rhetor",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Acc|Gender=Masc|Number=Plur",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok9"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok2",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "est", "udep::lemma": "sum",
"udep::upostag": "AUX", "udep::xpostag": "V-",
"udep::feats": "Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok2"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok17",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "dum", "udep::lemma": "dum",
"udep::upostag": "SCONJ", "udep::xpostag": "G-",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok17"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok4",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "agricolae", "udep::lemma": "Agricola",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Gen|Gender=Masc|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok4"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok8",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "es", "udep::lemma": "sum",
"udep::upostag": "AUX", "udep::xpostag": "V-",
"udep::feats": "Mood=Ind|Number=Sing|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok8"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok12",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "a", "udep::lemma": "ab",
"udep::upostag": "ADP", "udep::xpostag": "R-",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok12"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "aemulari", "udep::lemma": "aemulor",
"udep::upostag": "VERB", "udep::xpostag": "V-", "udep::feats": "Tense=Pres|VerbForm=Inf|Voice=Pass",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok3",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "prima", "udep::lemma": "primus",
"udep::upostag": "ADJ", "udep::xpostag": "Mo", "udep::feats": "Case=Nom|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok3"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok13",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "plerisque", "udep::lemma": "plerusque",
"udep::upostag": "ADJ", "udep::xpostag": "A-", "udep::feats": "Case=Abl|Degree=Pos|Gender=Masc|Number=Plur",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok13"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok18",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "diserte", "udep::lemma": "diserte",
"udep::upostag": "ADV", "udep::xpostag": "Df", "udep::feats": "Degree=Pos",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok18"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "debet", "udep::lemma": "debeo",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act", "udep::deps": "root",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "aestimare", "udep::lemma": "aestimo",
"udep::upostag": "VERB", "udep::xpostag": "V-", "udep::feats": "Tense=Pres|VerbForm=Inf|Voice=Act",
"udep::deps": "root", "id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok11",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "quod", "udep::lemma": "qui",
"udep::upostag": "PRON", "udep::xpostag": "Pr", "udep::feats": "Case=Acc|Gender=Neut|Number=Sing|PronType=Rel",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok11"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "factum", "udep::lemma": "facio",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Aspect=Perf|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "loquuntur", "udep::lemma": "loquor",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok4",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "prudentiae", "udep::lemma": "prudentia",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Gen|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok4"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok10",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "personam", "udep::lemma": "persona",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Acc|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok10"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok6",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "artibus", "udep::lemma": "ars",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Abl|Gender=Fem|Number=Plur",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok6"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok15",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "est", "udep::lemma": "sum",
"udep::upostag": "AUX", "udep::xpostag": "V-",
"udep::feats": "Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok15"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok7",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "et", "udep::lemma": "et",
"udep::upostag": "CCONJ", "udep::xpostag": "C-",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok7"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok20",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "rusticis", "udep::lemma": "rusticus",
"udep::upostag": "ADJ", "udep::xpostag": "A-", "udep::feats": "Case=Abl|Degree=Pos|Gender=Masc|Number=Plur",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok20"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok11",
"annis::node_type": "node", "annis::type": "node", "annis::tok": ".", "udep::lemma": ".",
"udep::upostag": "PUNCT", "id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok11"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok5",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "ipsam", "udep::lemma": "ipse",
"udep::upostag": "DET", "udep::xpostag": "Pd", "udep::feats": "Case=Acc|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok5"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok8",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "eloquentia", "udep::lemma": "eloquentia",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Abl|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok8"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok22",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "sunt", "udep::lemma": "sum",
"udep::upostag": "AUX", "udep::xpostag": "V-",
"udep::feats": "Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok22"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "adsecuti", "udep::lemma": "assequor",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Aspect=Perf|Case=Nom|Gender=Masc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok1",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "Neque", "udep::lemma": "neque",
"udep::upostag": "ADV", "udep::xpostag": "Df",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok1"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok6",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "cui", "udep::lemma": "qui",
"udep::upostag": "PRON", "udep::xpostag": "Pr", "udep::feats": "Case=Dat|Gender=Fem|Number=Sing|PronType=Rel",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok6"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok4",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "praefationis", "udep::lemma": "praefatio",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Gen|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok4"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok23",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "ut", "udep::lemma": "ut",
"udep::upostag": "SCONJ", "udep::xpostag": "G-",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok23"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok2",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "enim", "udep::lemma": "enim",
"udep::upostag": "ADV", "udep::xpostag": "Df",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok2"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok1",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "Sed", "udep::lemma": "sed",
"udep::upostag": "CCONJ", "udep::xpostag": "C-",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok1"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok25",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "doctrina", "udep::lemma": "doctrina",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Nom|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok25"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok24",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "eorum", "udep::lemma": "is",
"udep::upostag": "PRON", "udep::xpostag": "Pp",
"udep::feats": "Case=Gen|Gender=Masc|Number=Plur|Person=3|PronType=Prs",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok24"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok5",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "moram", "udep::lemma": "mora",
"udep::upostag": "NOUN", "udep::xpostag": "Nb", "udep::feats": "Case=Acc|Gender=Fem|Number=Sing",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok5"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok2",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "nos", "udep::lemma": "nos",
"udep::upostag": "PRON", "udep::xpostag": "Pp",
"udep::feats": "Case=Nom|Gender=Masc|Number=Plur|Person=1|PronType=Prs",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok2"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok7",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "quos", "udep::lemma": "qui",
"udep::upostag": "PRON", "udep::xpostag": "Pr", "udep::feats": "Case=Acc|Gender=Masc|Number=Plur|PronType=Rel",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok7"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok26",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "nec", "udep::lemma": "neque",
"udep::upostag": "ADV", "udep::xpostag": "Df",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok26"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok27",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "a", "udep::lemma": "ab",
"udep::upostag": "ADP", "udep::xpostag": "R-",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok27"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok6",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "ne", "udep::lemma": "ne",
"udep::upostag": "SCONJ", "udep::xpostag": "G-",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok6"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "recidamus", "udep::lemma": "recido#2",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Mood=Sub|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act", "udep::deps": "root",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok8",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "reprehendimus",
"udep::lemma": "repr(eh)endo", "udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Mood=Ind|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok8"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok30",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "intelligi", "udep::lemma": "intellego",
"udep::upostag": "VERB", "udep::xpostag": "V-", "udep::feats": "Tense=Pres|VerbForm=Inf|Voice=Pass",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok30"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok28",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "disertissimis", "udep::lemma": "dissero",
"udep::upostag": "ADJ", "udep::xpostag": "A-", "udep::feats": "Case=Abl|Degree=Sup|Gender=Masc|Number=Plur",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok28"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok31",
"annis::node_type": "node", "annis::type": "node", "annis::tok": ".", "udep::lemma": ".",
"udep::upostag": "PUNCT", "id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok31"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok9",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "imitemur", "udep::lemma": "imitor",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Mood=Sub|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Pass",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok9"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok10",
"annis::node_type": "node", "annis::type": "node", "annis::tok": ".", "udep::lemma": ".",
"udep::upostag": "PUNCT", "id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok10"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "possit", "udep::lemma": "possum",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Mood=Sub|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29"},
{"annis::node_name": "urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok30",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "possit", "udep::lemma": "possum",
"udep::upostag": "VERB", "udep::xpostag": "V-",
"udep::feats": "Mood=Sub|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": 1}
], "links": [
{"udep::deprel": "nmod", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok3", "key": 0},
{"udep::deprel": "nmod", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok4", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok2", "key": 0},
{"udep::deprel": "nmod", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok4", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok4", "key": 1},
{"udep::deprel": "iobj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok6", "key": 0},
{"udep::deprel": "aux", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok8", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok8", "key": 1},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok16",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok17", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok2",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok3", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok17",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok18", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok4",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok8",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok12",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok13", "key": 0},
{"udep::deprel": "obl", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok6", "key": 0},
{"udep::deprel": "obj:dir", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok9", "key": 0},
{"udep::deprel": "advcl", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok11", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok4", "key": 0},
{"udep::deprel": "case", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok13",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok12", "key": 0},
{"udep::deprel": "advcl", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok13",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok13",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok18",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19", "key": 0},
{"udep::deprel": "advmod", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok1", "key": 0},
{"udep::deprel": "discourse", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok2", "key": 0},
{"udep::deprel": "nsubj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok3", "key": 0},
{"udep::deprel": "xcomp", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok10", "key": 0},
{"annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok31", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok6", "key": 0},
{"udep::deprel": "nsubj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1", "key": 0},
{"udep::deprel": "cop", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok2", "key": 0},
{"udep::deprel": "obj:dir", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok10", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok10", "key": 1},
{"annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok11", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok11",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok12", "key": 0},
{"udep::deprel": "nsubj:pass", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok11", "key": 0},
{"udep::deprel": "obl:agent", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok13", "key": 0},
{"udep::deprel": "aux:pass", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok15", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok14",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok15", "key": 1},
{"udep::deprel": "mark", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok17", "key": 0},
{"udep::deprel": "advmod", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok18", "key": 0},
{"udep::deprel": "iobj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok20", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok20", "key": 1},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok4",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok5", "key": 0},
{"udep::deprel": "det", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok10",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok5", "key": 0},
{"udep::deprel": "acl", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok10",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok10",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok11", "key": 0},
{"udep::deprel": "cc", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok6",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok7", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok6",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok7", "key": 1},
{"udep::deprel": "conj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok6",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok8", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok15",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok16", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok7",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok8", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok20",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok11",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok1", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok6", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok8",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok9", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok22",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok23", "key": 0},
{"udep::deprel": "nsubj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok16", "key": 0},
{"udep::deprel": "advcl", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok19", "key": 0},
{"udep::deprel": "aux", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok22", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok22", "key": 1},
{"udep::deprel": "advcl", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok21",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok1",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok2", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok6",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok4",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok5", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok23",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok24", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok2",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok3", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok1",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok2", "key": 0},
{"udep::deprel": "det", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok25",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok24", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok25",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok26", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok24",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok25", "key": 0},
{"udep::deprel": "nmod", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok4", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok5",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok6", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok2",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok7",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok8", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok26",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok27", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok27",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok28", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok6",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok7", "key": 0},
{"udep::deprel": "cc", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok1", "key": 0},
{"udep::deprel": "nsubj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok2", "key": 0},
{"udep::deprel": "obj:dir", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok5", "key": 0},
{"udep::deprel": "advcl", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok9", "key": 0},
{"annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok10", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok3",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok4", "key": 0},
{"udep::deprel": "obj:dir", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok8",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok7", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok8",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok9", "key": 0},
{"udep::deprel": "obl:agent", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok30",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok28", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok30",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok31", "key": 0},
{"udep::deprel": "case", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok28",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok27", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok28",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok31",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok1", "key": 0},
{"udep::deprel": "mark", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok6", "key": 0},
{"udep::deprel": "obj:dir", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok8", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok9",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159695tok10", "key": 0},
{"udep::deprel": "mark", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok23", "key": 0},
{"udep::deprel": "nsubj", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok25", "key": 0},
{"udep::deprel": "advmod", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok26", "key": 0},
{"udep::deprel": "xcomp", "annis::component_name": "dep", "annis::component_type": "Pointing",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok30", "key": 0},
{"annis::component_name": "", "annis::component_type": "Ordering",
"source": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok29",
"target": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok30", "key": 1}]},
"solutions": [{"target": {"sentence_id": 159692, "token_id": 7,
"salt_id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok7",
"content": "praecepturus"},
"value": {"sentence_id": 0, "token_id": 0, "content": "",
"salt_id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1"}},
{
"target": {"sentence_id": 159692, "token_id": 9,
"salt_id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok9",
"content": "aestimare"},
"value": {"sentence_id": 0, "token_id": 0, "content": "",
"salt_id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1"}},
{
"target": {"sentence_id": 159693, "token_id": 5,
"salt_id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159693tok5",
"content": "debet"},
"value": {"sentence_id": 0, "token_id": 0, "content": "",
"salt_id": "salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent159692tok1"}}],
"conll": "# newdoc id = /var/folders/30/yqnv6lz56r14dqhpw18knn2r0000gp/T/tmp7qn86au9\n# sent_id = 1\n# text = Caesar fortis est.\n1\tCaesar\tCaeso\tVERB\tC1|grn1|casA|gen1|stAN\tCase=Nom|Degree=Pos|Gender=Masc|Number=Sing\t2\tcsubj\t_\t_\n2\tfortis\tfortis\tADJ\tC1|grn1|casA|gen1|stAN\tCase=Nom|Degree=Pos|Gender=Masc|Number=Sing\t0\troot\troot\t_\n3\test\tsum\tAUX\tN3|modA|tem1|gen6|stAV\tMood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act\t2\tcop\t_\tSpaceAfter=No\n4\t.\t.\tPUNCT\tPunc\t_\t2\tpunct\t_\t_\n\n# sent_id = 2\n# text = Galli moriuntur.\n1\tGalli\tGallus\tPRON\tF1|grn1|casJ|gen1|stPD\tCase=Nom|Degree=Pos|Gender=Masc|Number=Plur|PronType=Dem\t2\tnsubj:pass\t_\t_\n2\tmoriuntur\tmorior\tVERB\tL3|modJ|tem1|gen9|stAV\tMood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass\t0\troot\troot\tSpaceAfter=No\n3\t.\t.\tPUNCT\tPunc\t_\t2\tpunct\t_\tSpacesAfter=\\n\n\n"}
app_dict: Dict[str, TestHelper] = {}
aqls: List[str] = ["=".join([Phenomenon.UPOSTAG, '"{0}"'.format(
AnnotationService.phenomenon_map[Phenomenon.UPOSTAG][PartOfSpeech.verb.name][0])])]
graph_data: GraphData = AnnotationService.map_graph_data(annis_response_dict["graph_data_raw"])
annis_response: AnnisResponse = AnnisResponse(graph_data=graph_data)
corpora: List[Corpus] = [
CorpusMC.from_dict(title="title1", source_urn="urn1", author="author1",
citation_level_1=CitationLevel.default.value),
CorpusMC.from_dict(title="title2", source_urn="urn2", author="author2",
citation_level_1=CitationLevel.default.value)]
cts_capabilities_xml: str = '<GetCapabilities xmlns="http://chs.harvard.edu/xmlns/cts"><request><requestName>GetInventory</requestName><requestFilters>urn=urn:cts:latinLit</requestFilters></request><reply><ti:TextInventory xmlns:ti=\'http://chs.harvard.edu/xmlns/cts\'><ti:textgroup urn=\'urn:cts:latinLit:phi0660\' xmlns:ti=\'http://chs.harvard.edu/xmlns/cts\'><ti:groupname xml:lang=\'eng\'>Tibullus</ti:groupname><ti:groupname xml:lang=\'lat\'>Corpus Tibullianum</ti:groupname><ti:work xml:lang="lat" urn=\'urn:cts:latinLit:phi0660.phi001\' groupUrn=\'urn:cts:latinLit:phi0660\' xmlns:ti=\'http://chs.harvard.edu/xmlns/cts\'><ti:title xml:lang=\'lat\'>Elegiae</ti:title><ti:edition urn=\'urn:cts:latinLit:phi0660.phi001.perseus-lat2\' workUrn=\'urn:cts:latinLit:phi0660.phi001\' xmlns:ti=\'http://chs.harvard.edu/xmlns/cts\'><ti:label xml:lang=\'eng\'>Elegiae, Aliorumque carminum libri tres</ti:label><ti:description xml:lang=\'eng\'>Tibullus, creator; Postgate, J. P. (John Percival), 1853- 1926, editor </ti:description><ti:online><ti:citationMapping><ti:citation label="book" xpath="/tei:div[@n=\'?\']" scope="/tei:TEI/tei:text/tei:body/tei:div"><ti:citation label="poem" xpath="/tei:div[@n=\'?\']" scope="/tei:TEI/tei:text/tei:body/tei:div/tei:div[@n=\'?\']"><ti:citation label="line" xpath="//tei:l[@n=\'?\']" scope="/tei:TEI/tei:text/tei:body/tei:div/tei:div[@n=\'?\']/tei:div[@n=\'?\']"></ti:citation></ti:citation></ti:citation></ti:citationMapping></ti:online></ti:edition></ti:work><ti:work xml:lang="lat" urn=\'urn:cts:latinLit:phi0660.phi003\' groupUrn=\'urn:cts:latinLit:phi0660\' xmlns:ti=\'http://chs.harvard.edu/xmlns/cts\'> </ti:work></ti:textgroup></ti:TextInventory></reply></GetCapabilities>'
cts_passage_xml: str = '<GetPassage xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns="http://chs.harvard.edu/xmlns/cts"><request><requestName>GetPassage</requestName><requestUrn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.2</requestUrn></request><reply><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.2</urn><passage><TEI xmlns="http://www.tei-c.org/ns/1.0"><text><body><div type="edition" xml:lang="lat" n="urn:cts:latinLit:phi0448.phi001.perseus-lat2"><div n="1" type="textpart" subtype="book"><div type="textpart" subtype="chapter" n="1"><div type="textpart" subtype="section" n="1"><p>Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.</p></div><div type="textpart" subtype="section" n="2"><p>Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit.</p></div></div></div></div></body></text></TEI></passage></reply></GetPassage>'
cts_passage_xml_1_level: str = '<GetPassage xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns="http://chs.harvard.edu/xmlns/cts"><request><requestName>GetPassage</requestName><requestUrn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1-1.2</requestUrn></request><reply><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1-1.2</urn><passage><TEI xmlns="http://www.tei-c.org/ns/1.0"><text><body><div type="edition" xml:lang="lat" n="urn:cts:latinLit:phi0448.phi001.perseus-lat2"><div n="1" type="textpart" subtype="book"><p>Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.</p></div><div n="2" type="textpart" subtype="book"><p>Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.</p></div><div n="3" type="textpart" subtype="book"><p>Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.</p></div></div></body></text></TEI></passage></reply></GetPassage>'
cts_passage_xml_2_levels: str = '<GetPassage xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns="http://chs.harvard.edu/xmlns/cts"><request><requestName>GetPassage</requestName><requestUrn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1-1.2</requestUrn></request><reply><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1-1.2</urn><passage><TEI xmlns="http://www.tei-c.org/ns/1.0"><text><body><div type="edition" xml:lang="lat" n="urn:cts:latinLit:phi0448.phi001.perseus-lat2"><div n="1" type="textpart" subtype="book"><div type="textpart" subtype="section" n="1"><p>Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.</p></div></div></div></body></text></TEI></passage></reply></GetPassage>'
cts_reff_xml: str = '<GetValidReff xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns="http://chs.harvard.edu/xmlns/cts"><request><requestName>GetValidReff</requestName><requestUrn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1</requestUrn><requestLevel>3</requestLevel></request><reply><reff><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1</urn><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.2</urn><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.3</urn><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.4</urn><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.5</urn><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.6</urn><urn>urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.7</urn></reff></reply></GetValidReff>'
exercise: Exercise = ExerciseMC.from_dict(
eid="test", last_access_time=datetime.utcnow().timestamp(), exercise_type='ddwtos',
search_values=f'["{Phenomenon.FEATS}={Case.accusative.name}", "{Phenomenon.DEPENDENCY}={Dependency.object.name}", "{Phenomenon.LEMMA}=bellum", "{Phenomenon.DEPENDENCY}={Dependency.root.name}"]',
language=Language.English.value,
conll="# newdoc id = /var/folders/30/yqnv6lz56r14dqhpw18knn2r0000gp/T/tmp7qn86au9\n# newpar\n# sent_id = 1\n# text = Caesar fortis est.\n1\tCaesar\tCaeso\tVERB\tC1|grn1|casA|gen1|stAN\tCase=Nom|Degree=Pos|Gender=Masc|Number=Sing\t2\tcsubj\t_\t_\n2\tfortis\tfortis\tADJ\tC1|grn1|casA|gen1|stAN\tCase=Nom|Degree=Pos|Gender=Masc|Number=Sing\t0\troot\t_\t_\n3\test\tsum\tAUX\tN3|modA|tem1|gen6|stAV\tMood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act\t2\tcop\t_\tSpaceAfter=No\n4\t.\t.\tPUNCT\tPunc\t_\t2\tpunct\t_\t_\n\n# sent_id = 2\n# text = Galli moriuntur.\n1\tGalli\tGallus\tPRON\tF1|grn1|casJ|gen1|stPD\tCase=Nom|Degree=Pos|Gender=Masc|Number=Plur|PronType=Dem\t2\tnsubj:pass\t_\t_\n2\tmoriuntur\tmorior\tVERB\tL3|modJ|tem1|gen9|stAV\tMood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass\t0\troot\t_\tSpaceAfter=No\n3\t.\t.\tPUNCT\tPunc\t_\t2\tpunct\t_\tSpacesAfter=\\n\n\n",
solutions=json.dumps([
Solution(target=SolutionElement(
sentence_id=1, token_id=1, content="praecepturus",
salt_id="salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent1tok1"),
value=SolutionElement(
sentence_id=1, token_id=2, content="Caesar",
salt_id="salt:/urn:custom:latinLit:proiel.pal-agr.lat:1.1.1/doc1#sent1tok2")).to_dict()
]).replace(" ", ""),
urn=f"{CustomCorpusService.custom_corpora[4].corpus.source_urn}:2.23.1-2.23.1")
exercise_data: ExerciseData = ExerciseData(
graph=GraphData(directed=False, graph={}, links=[
LinkMC(annis_component_name=Config.GRAPHANNIS_DEPENDENCY_LINK, annis_component_type="act",
source="doc1#sent1tok1", target="doc1#sent1tok2", udep_deprel="uddr")],
multigraph=False, nodes=[
NodeMC(annis_node_name="ann", annis_node_type="ant", annis_tok="atk", annis_type="atp",
id="doc1#sent1tok1", udep_upostag="udupt", udep_xpostag="udxpt", udep_feats="udf",
udep_lemma="udl"),
NodeMC(annis_node_name="ann", annis_node_type="ant", annis_tok="atk", annis_type="atp",
id="doc1#sent1tok2", udep_upostag="udupt", udep_xpostag="udxpt", udep_feats="udf",
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
udep_lemma="udl")]), uri="/test", solutions=[])
exercise_pdf: bytes = b'%PDF-1.4\n%\x93\x8c\x8b\x9e ReportLab Generated PDF document http://www.reportlab.com\n1 0 obj\n<<\n/F1 2 0 R\n>>\nendobj\n2 0 obj\n<<\n/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font\n>>\nendobj\n3 0 obj\n<<\n/BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [ /ASCII85Decode ] /Height 23 /Length 223 /Subtype /Image \n /Type /XObject /Width 24\n>>\nstream\n\n 003B00 002700 002480 0E4940 114920 14B220 3CB650\n 75FE88 17FF8C 175F14 1C07E2 3803C4 703182 F8EDFC\n B2BBC2 BB6F84 31BFC2 18EA3C 0E3E00 07FC00 03F800\n 1E1800 1FF800>\n endstream\nendobj\n4 0 obj\n<<\n/Contents 8 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 7 0 R /Resources <<\n/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject <<\n/FormXob.c7485dcc8d256a6f197ed7802687f252 3 0 R\n>>\n>> /Rotate 0 /Trans <<\n\n>> \n /Type /Page\n>>\nendobj\n5 0 obj\n<<\n/PageMode /UseNone /Pages 7 0 R /Type /Catalog\n>>\nendobj\n6 0 obj\n<<\n/Author () /CreationDate'
exercise_xml: str = '<quiz> <question type="matching"> <name> <text></text> </name> <questiontext format="html"> <text><![CDATA[<br><p></p><p></p><br><br>]]></text> </questiontext> <generalfeedback format="html"> <text></text> </generalfeedback> <defaultgrade>1.0000000</defaultgrade> <penalty>0.1000000</penalty> <hidden>0</hidden> <shuffleanswers>1</shuffleanswers> <correctfeedback format="html"> <text></text> </correctfeedback> <partiallycorrectfeedback format="html"> <text></text> </partiallycorrectfeedback> <incorrectfeedback format="html"> <text></text> </incorrectfeedback> <shownumcorrect/> <tags></tags> </question></quiz>'
graph_data_raw_part: str = '{"directed":true,"multigraph":true,"graph":{},"nodes":[{"annis::node_name":"'
h5p_json_cloze: str = '{"textField":"*Caesar* fortis est. Galli moriuntur."}'
h5p_json_matching: str = '{"textField":"praecepturus *Caesar*\\n"}'
h5p_json_fill_blanks_1: Tuple[str, str] = ("1_en",
'{"questions": [ "<p>Gaius --> *C.* --> *make*<\/p>", "<p>scribo --> *scribere* --> *write*<\/p>", "<p>commoveri --> *commovere* --> *move / unsettle*<\/p>", "<p>gaudeas --> *gaudere* --> *rejoice / be glad*<\/p>" ], "showSolutions": "Show solutions", "tryAgain": "Try again", "text": "<p><b>Vocabulary knowledge<\/b><br>Fill in the basic form and give a translation of this form.</p>\\n"}')
h5p_json_fill_blanks_3: Tuple[str, str] = ("3_en",
'{"questions": [ "<p>signum --> *sign*<\/p>", "<p>vas --> *jar*<\/p>", "<p>condicio --> *condition / requirement / term*<\/p>", "<p>clarus --> *clear / bright*<\/p>" ], "showSolutions": "Show solutions", "tryAgain": "Try again", "text": "<p>Translate this word of origin:<\/p>\\n"}')
h5p_json_fill_blanks_4: Tuple[str, str] = ("4_en",
'{"questions": [ "<p>deducere --> *de*-*ducere* --> *lead away*<\/p>", "<p>commovere --> *com / cum*-*movere* --> *move / to move*<\/p>", "<p>praeclarus --> *prae*-*clarus* --> *highly famous / famous*" ], "showSolutions": "Show solutions", "tryAgain": "Try again", "text": "<p>Break down the compounds into their components and give a possible English translation:<\/p>\\n"}')
h5p_json_fill_blanks_13: Tuple[str, str] = ("13_en",
'{"questions": [ "<p>Name the Latin phrase for \\"your efficiency\\".<br> *istam virtutem*<\/p>", "<p>Which English word corresponds to the Latin combination of words \\"moderationem animi\\"?<br> *serenity / the serenity / your serenity*<\/p>", "<p>Who sees and hears of the efficiency of Quintus? Indicate the appropriate genitive attributes.<br> *clarissimae provinciae* and *omnium gentium ac nationum*<\/p>" ], "showSolutions": "Show solutions", "tryAgain": "Try again", "text": "<p><b><i>Quid autem reperiri tam eximium aut tam expetendum potest quam istam virtutem, moderationem animi, temperantiam [...] in luce Asiae, in oculis clarissimae provinciae atque in auribus omnium gentium ac nationum esse positam?<\/i><\/b><\/p><br><p>But what can turn out to be greater and more desirable than that your efficiency, your serenity and your modesty [...] were spread out in the public of the province of Asia, before the eyes of the highly famous province and before the ears of all tribes and peoples?<\/p>\\n"}')
h5p_json_multi_choice: str = '{"answers":[{"correct":false,"text":"<div>He is satisfied.<\/div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":true,"text":"<div>It is enough.<\/div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":false,"text":"<div>He has enough.<\/div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}}],"question":"<p>Choose the correct meaning:<\/p><p><em>satis est.<\/em><\/p>\\n"}'
h5p_json_multi_choice_2: str = '{"answers":[{"correct":true,"text":"<div>provincia</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":true,"text":"<div>civis</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":true,"text":"<div>socius</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":true,"text":"<div>publicus</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":false,"text":"<div>adventus</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":false,"text":"<div>omnis</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":false,"text":"<div>autem</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}},{"correct":false,"text":"<div>res</div>\\n","tipsAndFeedback":{"tip":"","chosenFeedback":"","notChosenFeedback":""}}],"question":"<p>Choose words (4) that belong to the word field <b>government</b>:</p>\\n"}'
h5p_json_multi_choice_9: Tuple[str, str] = ("9_en",
'{"answers": [ { "correct": true, "text": "<div>provincia<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } }, { "correct": true, "text": "<div>civis<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } }, { "correct": true, "text": "<div>socius<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } }, { "correct": true, "text": "<div>publicus<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } }, { "correct": false, "text": "<div>adventus<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } }, { "correct": false, "text": "<div>omnis<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } }, { "correct": false, "text": "<div>autem<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } }, { "correct": false, "text": "<div>res<\/div>\\n", "tipsAndFeedback": { "tip": "", "chosenFeedback": "", "notChosenFeedback": "" } } ], "question": "<p>Choose words (4) that belong to the word field <b>government</b>:<\/p>\\n"}')
h5p_json_voc_list: str = '{"questions":["<p><h4>atque </h4> *and : and*</p>"]}'
headers_form_data: dict = {"Content-Type": "application/x-www-form-urlencoded"}
kwic_svg: bytes = b'"<svg height=\\"360\\" id=\\"svg1\\" width=\\"1252\\">'
nodes: List[dict] = [{"annis::node_name": "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok1",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "Caesar",
"udep::upostag": "VERB", "udep::xpostag": "L3|modJ|tem3|gen4|stAV",
"udep::feats": "Mood=Ind|Number=Sing|Person=1|Tense=Fut|VerbForm=Fin|Voice=Pass",
"id": "salt:/urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok1"},
{"annis::node_name": "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok5",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "sunt",
"udep::upostag": "AUX", "udep::xpostag": "N3|modA|tem1|gen9|stAV",
"udep::feats": "Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act",
"id": "salt:/urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok5"},
{"annis::node_name": "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok4",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "fortes",
"udep::upostag": "NOUN", "udep::xpostag": "C1|grn1|casJ|gen2|stRS",
"udep::feats": "Case=Nom|Degree=Pos|Gender=Fem|Number=Plur",
"id": "salt:/urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok4"},
{"annis::node_name": "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok2",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "et",
"udep::upostag": "CCONJ", "udep::xpostag": "O4|stRL",
"id": "salt:/urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok2"},
{"annis::node_name": "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok6",
"annis::node_type": "node", "annis::type": "node", "annis::tok": ".",
"udep::upostag": "PUNCT", "udep::xpostag": "Punc",
"id": "salt:/urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok6"},
{"annis::node_name": "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok3",
"annis::node_type": "node", "annis::type": "node", "annis::tok": "Galli",
"udep::upostag": "VERB", "udep::xpostag": "L3|modQ|tem1|stAC",
"udep::feats": "Tense=Pres|VerbForm=Inf|Voice=Pass",
"id": "salt:/urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok3"}]
proper_nouns: List[str] = ['Alcibiades', 'Carthago', 'Gallia', 'Graecus', 'Hermes', 'Iuppiter', 'Maria', 'Pollux',
'Romanus', 'Solomon', 'amor']
raw_text: str = "Caesar fortis est. Galli moriuntur."
static_exercises_udpipe_string: str = "1\tscribere\tscribere\n1\tcommovere\tcommovere\n1\tC\tC\n1\tgaudere\tgaudere\n1\tsignum\tsignum\n1\tvas\tvas\n1\tclarus\tclarus\n1\tcondicio\tcondicio\n1\tcom\tcum\n1\tprae\tprae\n1\tmovere\tmovere\n1\tducere\tducere\n1\tde\tde\n1\tcum\tcum\n1\tistam\tiste\n1\tnationum\tnatio\n1\tclarissimae\tclarus\n1\tmoderationem\tmoderatio\n1\tanimi\tanimus\n1\tomnium\tomnis\n1\tgentium\tgens\n1\tac\tac\n1\tvirtutem\tvirtus\n1\tprovinciae\tprovincia\n1\tCaesar\tCaesar\n1\test\tesse\n1\tsatis\tsatis\n1\tgovernment\tgovernment\n1\tsocius\tsocius\n1\tprovincia\tprovincia\n1\tpublicus\tpublicus\n1\tcivis\tcivis\n1\tatque\tatque"
subgraph_json: str = '{"exercise_id":"","exercise_type":"","frequency_analysis":null,"graph_data":{"directed":true,"graph":{},"links":[],"multigraph":true,"nodes":[{"annis_node_name":"urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok3","annis_node_type":"node","annis_tok":"Galli","annis_type":"node","id":"salt:/urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.1/doc1#sent1tok3","is_oov":null,"udep_lemma":"Gallo","udep_upostag":"VERB","udep_xpostag":"L3|modQ|tem1|stAC","udep_feats":"Tense=Pres|VerbForm=Inf|Voice=Pass","solution":null}]},"solutions":[],"text_complexity":null,"uri":""}'
test_args: List[str] = ["tests.py", "-test"]
text_complexity_json_string: str = '{"all":54.53,"avg_w_len":5.79,"avg_w_per_sent":17.33,"lex_den":0.73,"n_abl_abs":0,"n_clause":1,"n_gerund":1,"n_inf":1,"n_part":1,"n_punct":3,"n_sent":3,"n_subclause":0,"n_types":48,"n_w":52,"pos":11}'
text_list: List[Tuple[str, str]] = [("urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1", raw_text.split(".")[0]),
("urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.2", raw_text.split(".")[1])]
text_parts: List[TextPart] = [
TextPart(citation=Citation(level=CitationLevel.book, label="2", value=2), text_value="text", sub_text_parts=[
TextPart(
citation=Citation(level=CitationLevel.chapter, label="23", value=23), text_value="inner text",
sub_text_parts=[
TextPart(citation=Citation(level=CitationLevel.section, label="1", value=1),
text_value="subtext"),
TextPart(citation=Citation(level=CitationLevel.section, label="2", value=2))])])]
udpipe_string: str = "# newpar\n# sent_id = 1\n# text = Caesar fortis est.\n1\tCaesar\tCaeso\tVERB\tC1|grn1|casA|gen1|stAN\tCase=Nom|Degree=Pos|Gender=Masc|Number=Sing\t2\tcsubj\t_\t_\n2\tfortis\tfortis\tADJ\tC1|grn1|casA|gen1|stAN\tCase=Nom|Degree=Pos|Gender=Masc|Number=Sing\t0\troot\t_\t_\n3\test\tsum\tAUX\tN3|modA|tem1|gen6|stAV\tMood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act\t2\tcop\t_\tSpaceAfter=No\n4\t.\t.\tPUNCT\tPunc\t_\t2\tpunct\t_\t_\n\n# sent_id = 2\n# text = Galli moriuntur.\n1\tGalli\tGallus\tPRON\tF1|grn1|casJ|gen1|stPD\tCase=Nom|Degree=Pos|Gender=Masc|Number=Plur|PronType=Dem\t2\tnsubj:pass\t_\t_\n2\tmoriuntur\tmorior\tVERB\tL3|modJ|tem1|gen9|stAV\tMood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass\t0\troot\t_\tSpaceAfter=No\n3\t.\t.\tPUNCT\tPunc\t_\t2\tpunct\t_\tSpacesAfter=\\n\n\n"
urn: str = "urn:cts:latinLit:phi0448.phi001.perseus-lat2:1.1.1-1.1.2"
urn_custom: str = f"{CustomCorpusService.custom_corpora[4].corpus.source_urn}:2.23.1-2.23.1"
xapi_json_string: str = '{"0":{"actor":{"account":{"name":"9a7eef78-b0b4-471d-b451-e47c9b20d231"},"objectType":"Agent"},"verb":{"id":"http://adlnet.gov/expapi/verbs/answered","display":{"en-US":"answered"}},"object":{"objectType":"Activity","definition":{"extensions":{"http://h5p.org/x-api/h5p-local-content-id":1},"interactionType":"fill-in","type":"http://adlnet.gov/expapi/activities/cmi.interaction","description":{"en-US":"<p>Matching: Assign the matching elements to each other!</p><br/>divisa __________<br/>dividit __________<br/>"},"correctResponsesPattern":["partes[,]Belgis"]}},"context":{"contextActivities":{"category":[{"id":"http://h5p.org/libraries/H5P.DragText-1.8","objectType":"Activity"}]}},"result":{"response":"Belgis[,]","score":{"min":0,"raw":0,"max":2,"scaled":0},"duration":"PT4.12S","completion":true}}}'
@staticmethod
def mock_add_eges(keys: List[str], w2v: Word2Vec, nearest_neighbor_count: int, min_count: int, graph: Graph):
graph.add_edge("ueritas", "uera")