@fpw/en-wiktionary-la-modules 0.1.6 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,11 +11,15 @@ var NominalType;
11
11
  NominalType["Both"] = "both";
12
12
  NominalType["NotBoth"] = "not_both";
13
13
  NominalType["Masculine"] = "M";
14
+ NominalType["masculine"] = "m";
14
15
  NominalType["Feminine"] = "F";
16
+ NominalType["feminine"] = "f";
15
17
  NominalType["Neuter"] = "N";
16
18
  NominalType["neuter"] = "n";
17
19
  NominalType["NoMasculine"] = "-M";
18
20
  NominalType["NotMasculine"] = "not_M";
21
+ NominalType["NotMe"] = "not_Me";
22
+ NominalType["NotFeminine"] = "not_F";
19
23
  NominalType["NoFeminine"] = "-F";
20
24
  NominalType["NoNeuter"] = "-N";
21
25
  NominalType["NotNeuter"] = "not_N";
@@ -1 +1 @@
1
- {"version":3,"file":"NominalType.js","sourceRoot":"","sources":["../../../src/modules/declination/NominalType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NominalType.js","sourceRoot":"","sources":["../../../src/modules/declination/NominalType.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@fpw/en-wiktionary-la-modules",
3
3
  "author": "Folke Will",
4
4
  "license": "CC-BY-SA-3.0",
5
- "version": "0.1.6",
5
+ "version": "0.2.1",
6
6
  "description": "Reimplementation of some Latin modules of en.wikipedia.org, especially inflections",
7
7
  "repository": {
8
8
  "type": "git",
package/src/LaEngine.ts CHANGED
@@ -1,11 +1,15 @@
1
1
  import { parse_template } from "./modules/common";
2
- import { ConjOptions, VerbData, LaVerb } from "./modules/conjugation/LaVerb";
3
- import { NounData, LaNominal, AdjectiveData, DeclOptions } from "./modules/declination/LaNominal";
4
- import { LaPersonalPronoun, PersonalPronounData } from "./modules/declination/LaPersonalPronoun";
2
+ import { ConjOptions, VerbData as VerbInflectionData, LaVerb } from "./modules/conjugation/LaVerb";
3
+ import { NounData as NounInflectionData, LaNominal, AdjectiveData as AdjectiveInflectionData, DeclOptions } from "./modules/declination/LaNominal";
4
+ import { LaPersonalPronoun, PersonalPronounData as PersonalPronounInflectionData } from "./modules/declination/LaPersonalPronoun";
5
5
  import { HeadwordData } from "./modules/headword/HeadWord";
6
6
  import { HeadwordParser } from "./modules/headword/HeadwordParser";
7
7
 
8
- export type InflectionData = NounData | AdjectiveData | VerbData | PersonalPronounData;
8
+ export type InflectionData =
9
+ NounInflectionData |
10
+ AdjectiveInflectionData |
11
+ VerbInflectionData |
12
+ PersonalPronounInflectionData;
9
13
 
10
14
  export interface EngineOptions {
11
15
  verbOptions?: ConjOptions;
@@ -24,12 +28,12 @@ export class LaEngine {
24
28
  this.headword = new HeadwordParser(this.nominal, this.conj);
25
29
  }
26
30
 
27
- public decline_noun(template: string): NounData {
31
+ public decline_noun(template: string): NounInflectionData {
28
32
  const args = parse_template(template);
29
33
  return this.nominal.do_generate_noun_forms(args);
30
34
  }
31
35
 
32
- public decline_gerund(template: string): NounData {
36
+ public decline_gerund(template: string): NounInflectionData {
33
37
  const args = parse_template(template);
34
38
  const gerund = args.get("1");
35
39
 
@@ -38,12 +42,12 @@ export class LaEngine {
38
42
  return this.nominal.do_generate_noun_forms(gerundArgs, "gerunds");
39
43
  }
40
44
 
41
- public decline_adjective(template: string): AdjectiveData {
45
+ public decline_adjective(template: string): AdjectiveInflectionData {
42
46
  const args = parse_template(template);
43
47
  return this.nominal.do_generate_adj_forms(args);
44
48
  }
45
49
 
46
- public conjugate_verb(template: string): VerbData {
50
+ public conjugate_verb(template: string): VerbInflectionData {
47
51
  const args = parse_template(template);
48
52
  return this.conj.make_data(args);
49
53
  }
@@ -5,7 +5,7 @@
5
5
  * A few new options to suppress certain rate forms were added.
6
6
  *
7
7
  * Original source: https://en.wiktionary.org/wiki/Module:la-verb
8
- * Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-verb&oldid=67964189
8
+ * Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-verb&oldid=71129594
9
9
  *
10
10
  * Lua idioms, function and variable names kept as in the original in order to easily
11
11
  * backport later changes to this implementation.
@@ -3,7 +3,7 @@
3
3
  * It was converted from Lua to TypeScript by Folke Will <folko@solhost.org>.
4
4
  *
5
5
  * Original source: https://en.wiktionary.org/wiki/Module:la-adj/data
6
- * Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-adj/data&oldid=68705243
6
+ * Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-adj/data&oldid=71117358
7
7
  *
8
8
  * Lua idioms, function and variable names kept as in the original in order to easily
9
9
  * backport later changes to this implementation.
@@ -618,7 +618,44 @@ export const m_adj_decl: Map<string, ((data: SegmentData, args: string[]) => voi
618
618
  setNominalForm(data.forms, "abl_pl_n", [""]);
619
619
 
620
620
  data.voc = false;
621
+ } else if (args[0] == "hice") {
622
+ data.title = "demonstrative pronoun";
623
+ setNominalForm(data.forms, "nom_sg_m", ["hice"]);
624
+ setNominalForm(data.forms, "nom_sg_f", ["haece"]);
625
+ setNominalForm(data.forms, "nom_sg_n", ["hoce"]);
626
+ setNominalForm(data.forms, "nom_pl_m", ["hīce"]);
627
+ setNominalForm(data.forms, "nom_pl_n", ["haece"]);
628
+ setNominalForm(data.forms, "nom_pl_f", ["haece"]);
629
+
630
+ setNominalForm(data.forms, "gen_sg_m", ["huiusce"]);
631
+ setNominalForm(data.forms, "gen_sg_f", ["huiusce"]);
632
+ setNominalForm(data.forms, "gen_sg_n", ["huiusce"]);
633
+ setNominalForm(data.forms, "gen_pl_m", ["hōrunce", "hōrumce"]);
634
+ setNominalForm(data.forms, "gen_pl_f", ["hārunce", "hārumce"]);
635
+ setNominalForm(data.forms, "gen_pl_n", ["hōrunce", "hōrumce"]);
636
+
637
+ setNominalForm(data.forms, "dat_sg_m", ["huīce"]);
638
+ setNominalForm(data.forms, "dat_sg_f", ["huīce"]);
639
+ setNominalForm(data.forms, "dat_sg_n", ["huīce"]);
640
+ setNominalForm(data.forms, "dat_pl_m", ["hīsce"]);
641
+ setNominalForm(data.forms, "dat_pl_f", ["hīsce"]);
642
+ setNominalForm(data.forms, "dat_pl_n", ["hīsce"]);
643
+
644
+ setNominalForm(data.forms, "acc_sg_m", ["hunce"]);
645
+ setNominalForm(data.forms, "acc_sg_f", ["hance"]);
646
+ setNominalForm(data.forms, "acc_sg_n", ["hoce"]);
647
+ setNominalForm(data.forms, "acc_pl_m", ["hōsce"]);
648
+ setNominalForm(data.forms, "acc_pl_f", ["hāsce"]);
649
+ setNominalForm(data.forms, "acc_pl_n", ["haece"]);
650
+
651
+ setNominalForm(data.forms, "abl_sg_m", ["hōce"]);
652
+ setNominalForm(data.forms, "abl_sg_f", ["hāce"]);
653
+ setNominalForm(data.forms, "abl_sg_n", ["hōce"]);
654
+ setNominalForm(data.forms, "abl_pl_m", ["hīsce"]);
655
+ setNominalForm(data.forms, "abl_pl_f", ["hīsce"]);
656
+ setNominalForm(data.forms, "abl_pl_n", ["hīsce"]);
621
657
 
658
+ data.voc = false;
622
659
  } else if (args[0] == "plūs") {
623
660
  data.title = "irregular third-declension comparative adjective";
624
661
 
@@ -799,67 +836,125 @@ export const m_adj_decl: Map<string, ((data: SegmentData, args: string[]) => voi
799
836
 
800
837
  data.categories = [];
801
838
  } else if (args[0] == "quis" || args[0] == "quī") {
802
- let id = "id";
839
+ if (data.declOpts.useSimpleQuis) {
840
+ let id = "id";
841
+ if (args[0] == "quī") {
842
+ id = "od";
843
+ }
844
+ data.title = "relative/interrogative pronoun";
845
+ if (args[0] == "quī") {
846
+ setNominalForm(data.forms, "nom_sg_m", ["quī"]);
847
+ } else {
848
+ setNominalForm(data.forms, "nom_sg_m", ["quis"]);
849
+ }
850
+ setNominalForm(data.forms, "nom_sg_f", ["quae"]);
851
+ setNominalForm(data.forms, "nom_sg_n", ["qu" + id]);
852
+ setNominalForm(data.forms, "nom_pl_m", ["quī"]);
853
+ setNominalForm(data.forms, "nom_pl_f", ["quae"]);
854
+ setNominalForm(data.forms, "nom_pl_n", ["quae"]);
803
855
 
804
- if (args[0] == "quī") {
805
- id = "od";
856
+ setNominalForm(data.forms, "acc_sg_m", ["quem"]);
806
857
  setNominalForm(data.forms, "acc_sg_f", ["quam"]);
807
- setNominalForm(data.forms, "abl_sg_f", ["quā"]);
808
- } else {
809
- setNominalForm(data.forms, "acc_sg_f", ["quem", "quam"]);
810
- setNominalForm(data.forms, "abl_sg_f", ["quō", "quā"]);
811
- }
812
- data.title = "relative/interrogative pronoun";
813
-
814
- setNominalForm(data.forms, "nom_sg_m", ["quis"]);
815
- setNominalForm(data.forms, "nom_sg_f", ["quis", "quae"]);
816
- setNominalForm(data.forms, "nom_sg_n", ["qu" + id]);
817
- setNominalForm(data.forms, "nom_pl_m", ["quī"]);
818
- setNominalForm(data.forms, "nom_pl_f", ["quae"]);
819
- setNominalForm(data.forms, "nom_pl_n", ["quae"]);
820
-
821
- setNominalForm(data.forms, "gen_sg_m", ["cuius"]);
822
- setNominalForm(data.forms, "gen_sg_f", ["cuius"]);
823
- setNominalForm(data.forms, "gen_sg_n", ["cuius"]);
824
- setNominalForm(data.forms, "gen_pl_m", ["quōrum"]);
825
- setNominalForm(data.forms, "gen_pl_f", ["quārum"]);
826
- setNominalForm(data.forms, "gen_pl_n", ["quōrum"]);
827
-
828
- setNominalForm(data.forms, "dat_sg_m", ["cui"]);
829
- setNominalForm(data.forms, "dat_sg_f", ["cui"]);
830
- setNominalForm(data.forms, "dat_sg_n", ["cui"]);
831
- if (!data.declOpts.suppressRareIrregForms) {
832
- setNominalForm(data.forms, "dat_pl_m", ["quibus", "quīs"]);
833
- setNominalForm(data.forms, "dat_pl_f", ["quibus", "quīs"]);
834
- setNominalForm(data.forms, "dat_pl_n", ["quibus", "quīs"]);
835
-
836
- setNominalForm(data.forms, "abl_pl_m", ["quibus", "quīs"]);
837
- setNominalForm(data.forms, "abl_pl_f", ["quibus", "quīs"]);
838
- setNominalForm(data.forms, "abl_pl_n", ["quibus", "quīs"]);
839
- } else {
858
+ setNominalForm(data.forms, "acc_sg_n", ["qu" + id]);
859
+ setNominalForm(data.forms, "acc_pl_m", ["quōs"]);
860
+ setNominalForm(data.forms, "acc_pl_f", ["quās"]);
861
+ setNominalForm(data.forms, "acc_pl_n", ["quae"]);
862
+
863
+ setNominalForm(data.forms, "gen_sg_m", ["cuius"]);
864
+ setNominalForm(data.forms, "gen_sg_f", ["cuius"]);
865
+ setNominalForm(data.forms, "gen_sg_n", ["cuius"]);
866
+ setNominalForm(data.forms, "gen_pl_m", ["quōrum"]);
867
+ setNominalForm(data.forms, "gen_pl_f", ["quārum"]);
868
+ setNominalForm(data.forms, "gen_pl_n", ["quōrum"]);
869
+
870
+ setNominalForm(data.forms, "dat_sg_m", ["cui"]);
871
+ setNominalForm(data.forms, "dat_sg_f", ["cui"]);
872
+ setNominalForm(data.forms, "dat_sg_n", ["cui"]);
840
873
  setNominalForm(data.forms, "dat_pl_m", ["quibus"]);
841
874
  setNominalForm(data.forms, "dat_pl_f", ["quibus"]);
842
875
  setNominalForm(data.forms, "dat_pl_n", ["quibus"]);
843
876
 
877
+ setNominalForm(data.forms, "abl_sg_m", ["quō"]);
878
+ setNominalForm(data.forms, "abl_sg_f", ["quā"]);
879
+ setNominalForm(data.forms, "abl_sg_n", ["quō"]);
844
880
  setNominalForm(data.forms, "abl_pl_m", ["quibus"]);
845
881
  setNominalForm(data.forms, "abl_pl_f", ["quibus"]);
846
882
  setNominalForm(data.forms, "abl_pl_n", ["quibus"]);
847
- }
848
883
 
849
- setNominalForm(data.forms, "acc_sg_m", ["quem"]);
850
- setNominalForm(data.forms, "acc_sg_n", ["qu" + id]);
851
- setNominalForm(data.forms, "acc_pl_m", ["quōs"]);
852
- setNominalForm(data.forms, "acc_pl_f", ["quās"]);
853
- setNominalForm(data.forms, "acc_pl_n", ["quae"]);
884
+ data.voc = false;
885
+ } else {
886
+ const note1 = "When used as an indefinite pronoun or adjective, the feminine nominative singular and neuter nominative/accusative plural is usually 'qua' instead of 'quae'. Indefinite 'qua' is generally only found directly after the accompanying '[[si#Latin|sī]]', '[[nisi#Latin|nisi]]', '[[num#Latin|num]]', or '[[ne#Latin|nē]]' and may be considered to be either enclitic to it or forming a compound with it; sometimes '[[siqua#Latin|sīqua]]', '[[numqua#Latin|numqua]]', and '[[nequa#Latin|nēqua]]' are written together. The form 'qua' is never found for any form of the interrogative or relative pronouns, nor for the feminine plural of the indefinite pronoun or adjective.";
887
+ const note2 = "In Republican Latin or earlier, 'quī' was often spelled as '[[quei]]', 'cuius' as '[[quoius]]', 'cui' as '[[quoi]]' (or '[[quoiei]]'), and 'quīs' as '[[queis]]'.";
888
+ let id = "id";
889
+
890
+ if (args[0] == "quī") {
891
+ id = "od";
892
+ setNominalForm(data.forms, "nom_sg_m", ["quī", "quis"]);
893
+ setNominalForm(data.forms, "nom_sg_f", ["quae", "qua"]);
894
+ setNominalForm(data.forms, "acc_sg_f", ["quam"]);
895
+ setNominalForm(data.forms, "abl_sg_m", ["quō"]);
896
+ setNominalForm(data.forms, "abl_sg_f", ["quā"]);
897
+ setNominalForm(data.forms, "abl_sg_n", ["quō"]);
898
+ data.notes.set("nom_sg_m1", note2);
899
+ data.notes.set("nom_sg_f2", note1);
900
+ } else {
901
+ setNominalForm(data.forms, "nom_sg_m", ["quis", "quī"]);
902
+ setNominalForm(data.forms, "nom_sg_f", ["quae", "qua", "quis"]);
903
+ setNominalForm(data.forms, "acc_sg_f", ["quam", "quem"]);
904
+ setNominalForm(data.forms, "abl_sg_m", ["quō", "quī"]);
905
+ setNominalForm(data.forms, "abl_sg_f", ["quā", "quī"]);
906
+ setNominalForm(data.forms, "abl_sg_n", ["quō", "quī"]);
907
+ data.notes.set("nom_sg_m2", note2);
908
+ data.notes.set("nom_sg_f2", note1);
909
+ }
910
+ data.title = "relative/interrogative pronoun";
854
911
 
855
- setNominalForm(data.forms, "abl_sg_m", ["quō"]);
856
- setNominalForm(data.forms, "abl_sg_n", ["quō"]);
912
+ setNominalForm(data.forms, "nom_sg_n", ["qu" + id]);
913
+ setNominalForm(data.forms, "nom_pl_m", ["quī"]);
914
+ setNominalForm(data.forms, "nom_pl_f", ["quae"]);
915
+ setNominalForm(data.forms, "nom_pl_n", ["quae", "qua"]);
916
+ data.notes.set("nom_pl_m1", note2);
917
+ data.notes.set("nom_pl_n2", note1);
918
+
919
+ setNominalForm(data.forms, "gen_sg_m", ["cuius"]);
920
+ setNominalForm(data.forms, "gen_sg_f", ["cuius"]);
921
+ setNominalForm(data.forms, "gen_sg_n", ["cuius"]);
922
+ setNominalForm(data.forms, "gen_pl_m", ["quōrum"]);
923
+ setNominalForm(data.forms, "gen_pl_f", ["quārum"]);
924
+ setNominalForm(data.forms, "gen_pl_n", ["quōrum"]);
925
+ data.notes.set("gen_sg_m1", note2);
926
+ data.notes.set("gen_sg_f1", note2);
927
+ data.notes.set("gen_sg_n1", note2);
928
+
929
+ setNominalForm(data.forms, "dat_sg_m", ["cui"]);
930
+ setNominalForm(data.forms, "dat_sg_f", ["cui"]);
931
+ setNominalForm(data.forms, "dat_sg_n", ["cui"]);
932
+ data.notes.set("dat_sg_m1", note2);
933
+ data.notes.set("dat_sg_f1", note2);
934
+ data.notes.set("dat_sg_n1", note2);
857
935
 
858
- data.voc = false;
936
+ setNominalForm(data.forms, "dat_pl_m", ["quibus", "quīs"]);
937
+ setNominalForm(data.forms, "dat_pl_f", ["quibus", "quīs"]);
938
+ setNominalForm(data.forms, "dat_pl_n", ["quibus", "quīs"]);
939
+ data.notes.set("dat_pl_m2", note2);
940
+ data.notes.set("dat_pl_f2", note2);
941
+ data.notes.set("dat_pl_n2", note2);
859
942
 
860
- if (args[0] == "quī") {
861
- setNominalForm(data.forms, "nom_sg_m", ["quī"]);
862
- setNominalForm(data.forms, "nom_sg_f", ["quae"]);
943
+ setNominalForm(data.forms, "abl_pl_m", ["quibus", "quīs"]);
944
+ setNominalForm(data.forms, "abl_pl_f", ["quibus", "quīs"]);
945
+ setNominalForm(data.forms, "abl_pl_n", ["quibus", "quīs"]);
946
+ data.notes.set("abl_pl_m2", note2);
947
+ data.notes.set("abl_pl_f2", note2);
948
+ data.notes.set("abl_pl_n2", note2);
949
+
950
+ setNominalForm(data.forms, "acc_sg_m", ["quem"]);
951
+ setNominalForm(data.forms, "acc_sg_n", ["qu" + id]);
952
+ setNominalForm(data.forms, "acc_pl_m", ["quōs"]);
953
+ setNominalForm(data.forms, "acc_pl_f", ["quās"]);
954
+ setNominalForm(data.forms, "acc_pl_n", ["quae", "qua"]);
955
+ data.notes.set("acc_pl_n2", note1);
956
+
957
+ data.voc = false;
863
958
  }
864
959
  } else if (args[0] == "quisquis") {
865
960
  data.title = "relative/interrogative pronoun";
@@ -22,6 +22,7 @@ export interface DeclOptions {
22
22
  suppressOldGenitive?: boolean;
23
23
  suppressNonNeuterIStemAccIs?: boolean;
24
24
  suppressRareIrregForms?: boolean;
25
+ useSimpleQuis?: boolean;
25
26
  populateAllTerminations?: boolean;
26
27
  suppressAdjPtcForms?: boolean;
27
28
  }
@@ -726,7 +726,7 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
726
726
  setNominalForm(data.forms, "dat_sg", ["domuī"]);
727
727
  setNominalForm(data.forms, "abl_sg", ["domō"]);
728
728
 
729
- setNominalForm(data.forms, "gen_pl", ["domuum"]);
729
+ setNominalForm(data.forms, "gen_pl", ["domuum", "domōrum"]);
730
730
  setNominalForm(data.forms, "acc_pl", ["domōs"]);
731
731
  }
732
732
  setNominalForm(data.forms, "acc_sg", ["domum"]);
@@ -9,11 +9,15 @@ export enum NominalType {
9
9
  NotBoth = "not_both",
10
10
 
11
11
  Masculine = "M",
12
+ masculine = "m",
12
13
  Feminine = "F",
14
+ feminine = "f",
13
15
  Neuter = "N",
14
16
  neuter = "n",
15
17
  NoMasculine = "-M",
16
18
  NotMasculine = "not_M",
19
+ NotMe = "not_Me",
20
+ NotFeminine = "not_F",
17
21
  NoFeminine = "-F",
18
22
  NoNeuter = "-N",
19
23
  NotNeuter = "not_N",