From 479fe7236f89ef0f7b7aa3349d66468e56b23f85 Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Fri, 19 Jul 2024 18:15:31 +0200 Subject: [PATCH] took away duplicates of Structural from MorphoDictEng in conformance with the other MorphoDicts --- src/morphodict/MorphoDictEng.gf | 54 +++++++++++------------ src/morphodict/MorphoDictEngAbs.gf | 46 +++++++++---------- src/morphodict/utils/remove_duplicates.py | 18 ++++++++ 3 files changed, 68 insertions(+), 50 deletions(-) create mode 100644 src/morphodict/utils/remove_duplicates.py diff --git a/src/morphodict/MorphoDictEng.gf b/src/morphodict/MorphoDictEng.gf index 4cf05b168..7ad0670e8 100644 --- a/src/morphodict/MorphoDictEng.gf +++ b/src/morphodict/MorphoDictEng.gf @@ -1,10 +1,10 @@ --# -path=.:alltenses concrete MorphoDictEng of MorphoDictEngAbs = - CatEng [N,A,V,Adv,Prep] ** - open - ParadigmsEng - in - { +CatEng [N,A,V,Adv,Prep] ** +open +ParadigmsEng +in +{ oper mkAMost : Str -> Str -> A = \ajar,ly -> mkA ajar ("more" ++ ajar) ("most" ++ ajar) ly ; lin '\'til_Prep' = mkPrep "'til" ; @@ -360,7 +360,7 @@ lin about_face_V = mkV "about-face" "about-faced" "about-faced" ; lin above_A = mkAMost "above" "abovely" ; lin above_Adv = mkAdv "above" ; lin above_N = mkN "above" "aboves" ; -lin above_Prep = mkPrep "above" ; +--- lin above_Prep = mkPrep "above" ; lin above_board_A = mkAMost "above board" "above boardly" ; lin above_board_Adv = mkAdv "above board" ; lin above_mentioned_A = mkAMost "above-mentioned" "above-mentionedly" ; @@ -1241,7 +1241,7 @@ lin afropavo_N = mkN "afropavo" "afropavoes" ; lin aft_Adv = mkAdv "aft" ; lin after_A = mkAMost "after" "afterly" ; lin after_Adv = mkAdv "after" ; -lin after_Prep = mkPrep "after" ; +--- lin after_Prep = mkPrep "after" ; lin afterbirth_N = mkN "afterbirth" "afterbirths" ; lin afterburner_N = mkN "afterburner" "afterburners" ; lin aftercare_N = mkN "aftercare" "aftercares" ; @@ -5084,7 +5084,7 @@ lin befit_V = mkV "befit" "befitted" "befitted" ; lin befitting_A = mkAMost "befitting" "befittingly" ; lin befogged_A = mkAMost "befogged" "befoggedly" ; lin before_Adv = mkAdv "before" ; -lin before_Prep = mkPrep "before" ; +--- lin before_Prep = mkPrep "before" ; lin beforehand_A = mkAMost "beforehand" "beforehandly" ; lin beforehand_Adv = mkAdv "beforehand" ; lin befoul_V = mkV "befoul" "befouled" "befouled" ; @@ -5127,7 +5127,7 @@ lin behead_V = mkV "behead" "beheaded" "beheaded" ; lin behest_N = mkN "behest" "behests" ; lin behind_Adv = mkAdv "behind" ; lin behind_N = mkN "behind" "behinds" ; -lin behind_Prep = mkPrep "behind" ; +--- lin behind_Prep = mkPrep "behind" ; lin behindhand_A = mkAMost "behindhand" "behindhandly" ; lin behither_Prep = mkPrep "behither" ; lin behold_V = mkV "behold" "beheld" "beheld" ; @@ -5378,7 +5378,7 @@ lin bettong_N = mkN "bettong" "bettongs" ; lin bettor_N = mkN "bettor" "bettors" ; lin betulaceous_A = mkAMost "betulaceous" "betulaceously" ; lin between_Adv = mkAdv "between" ; -lin between_Prep = mkPrep "between" ; +--- lin between_Prep = mkPrep "between" ; lin betwixen_Prep = mkPrep "betwixen" ; lin betwixt_Prep = mkPrep "betwixt" ; lin bevatron_N = mkN "bevatron" "bevatrons" ; @@ -15893,7 +15893,7 @@ lin durative_N = mkN "durative" "duratives" ; lin durbar_N = mkN "durbar" "durbars" ; lin duress_N = mkN "duress" "duresses" ; lin durian_N = mkN "durian" "durians" ; -lin during_Prep = mkPrep "during" ; +--- lin during_Prep = mkPrep "during" ; lin durmast_N = mkN "durmast" "durmasts" ; lin durra_N = mkN "durra" "durras" ; lin durum_N = mkN "durum" "durums" ; @@ -17583,7 +17583,7 @@ lin eversion_N = mkN "eversion" "eversions" ; lin everyday_A = mkAMost "everyday" "everydaily" ; lin everyman_N = mkN "everyman" "everymans" ; lin everyplace_Adv = mkAdv "everyplace" ; -lin everywhere_Adv = mkAdv "everywhere" ; +--- lin everywhere_Adv = mkAdv "everywhere" ; lin evict_V = mkV "evict" "evicted" "evicted" ; lin eviction_N = mkN "eviction" "evictions" ; lin evidence_N = mkN "evidence" "evidences" ; @@ -17654,7 +17654,7 @@ lin excellence_N = mkN "excellence" "excellences" ; lin excellency_N = mkN "excellency" "excellencies" ; lin excellent_A = mkAMost "excellent" "excellently" ; lin excelsior_N = mkN "excelsior" "excelsiors" ; -lin except_Prep = mkPrep "except" ; +--- lin except_Prep = mkPrep "except" ; lin except_V = mkV "except" "excepted" "excepted" ; lin except_for_Prep = mkPrep "except for" ; lin exception_N = mkN "exception" "exceptions" ; @@ -19582,7 +19582,7 @@ lin footwork_N = mkN "footwork" "footworks" ; lin fop_N = mkN "fop" "fops" ; lin foppish_A = mkAMost "foppish" "foppishly" ; lin foppishness_N = mkN "foppishness" "foppishnesses" ; -lin for_Prep = mkPrep "for" ; +--- lin for_Prep = mkPrep "for" ; lin for_example_Adv = mkAdv "for example" ; lin for_instance_Adv = mkAdv "for instance" ; lin for_starters_Adv = mkAdv "for starters" ; @@ -20104,7 +20104,7 @@ lin frogmouth_N = mkN "frogmouth" "frogmouths" ; lin frolic_N = mkN "frolic" "frolics" ; lin frolic_V = mkV "frolic" "frolicked" "frolicked" ; lin frolicsome_A = mkAMost "frolicsome" "frolicsomely" ; -lin from_Prep = mkPrep "from" ; +--- lin from_Prep = mkPrep "from" ; lin from_home_Adv = mkAdv "from home" ; lin fromward_Prep = mkPrep "fromward" ; lin frond_N = mkN "frond" "fronds" ; @@ -23060,7 +23060,7 @@ lin herd_N = mkN "herd" "herds" ; lin herd_V = mkV "herd" "herded" "herded" ; lin herder_N = mkN "herder" "herders" ; lin herdsman_N = mkN "herdsman" "herdsmen" ; -lin here_Adv = mkAdv "here" ; +--- lin here_Adv = mkAdv "here" ; lin hereabout_Adv = mkAdv "hereabout" ; lin hereabouts_Adv = mkAdv "hereabouts" ; lin hereafter_Adv = mkAdv "hereafter" ; @@ -24873,7 +24873,7 @@ lin imputrescible_A = mkAMost "imputrescible" "imputrescibly" ; lin in_A = mkA "in" "inner" "innest" "inly" ; lin in_Adv = mkAdv "in" ; lin in_N = mkN "in" "ins" ; -lin in_Prep = mkPrep "in" ; +--- lin in_Prep = mkPrep "in" ; lin in_accordance_with_Prep = mkPrep "in accordance with" ; lin in_addition_Adv = mkAdv "in addition" ; lin in_addition_to_Prep = mkPrep "in addition to" ; @@ -34102,7 +34102,7 @@ lin omnivorous_A = mkAMost "omnivorous" "omnivorously" ; lin omophagia_N = mkN "omophagia" "omophagias" ; lin omphaloskepsis_N = mkN "omphaloskepsis" "omphaloskepsises" ; lin on_Adv = mkAdv "on" ; -lin on_Prep = mkPrep "on" ; +--- lin on_Prep = mkPrep "on" ; lin on_account_of_Prep = mkPrep "on account of" ; lin on_behalf_of_Prep = mkPrep "on behalf of" ; lin on_licence_N = mkN "on-licence" "on-licences" ; @@ -40154,7 +40154,7 @@ lin quisling_N = mkN "quisling" "quislings" ; lin quit_quit_V = mkV "quit" "quit" "quit" ; lin quit_quitted_V = mkV "quit" "quitted" "quitted" ; lin quitclaim_N = mkN "quitclaim" "quitclaims" ; -lin quite_Adv = mkAdv "quite" ; +--- lin quite_Adv = mkAdv "quite" ; lin quits_A = mkAMost "quits" "quitsly" ; lin quittance_N = mkN "quittance" "quittances" ; lin quitter_N = mkN "quitter" "quitters" ; @@ -46383,7 +46383,7 @@ lin sometime_Adv = mkAdv "sometime" ; lin sometimes_Adv = mkAdv "sometimes" ; lin someway_Adv = mkAdv "someway" ; lin somewhat_Adv = mkAdv "somewhat" ; -lin somewhere_Adv = mkAdv "somewhere" ; +--- lin somewhere_Adv = mkAdv "somewhere" ; lin somewhere_N = mkN "somewhere" "somewheres" ; lin sommelier_N = mkN "sommelier" "sommeliers" ; lin somnambulism_N = mkN "somnambulism" "somnambulisms" ; @@ -50228,7 +50228,7 @@ lin therapeutics_N = mkN "therapeutics" "therapeutics" ; lin therapist_N = mkN "therapist" "therapists" ; lin therapsid_N = mkN "therapsid" "therapsids" ; lin therapy_N = mkN "therapy" "therapies" ; -lin there_Adv = mkAdv "there" ; +--- lin there_Adv = mkAdv "there" ; lin thereabout_Adv = mkAdv "thereabout" ; lin thereabouts_Adv = mkAdv "thereabouts" ; lin thereafter_Adv = mkAdv "thereafter" ; @@ -50485,7 +50485,7 @@ lin throttle_N = mkN "throttle" "throttles" ; lin throttle_V = mkV "throttle" "throttled" "throttled" ; lin throttle_valve_N = mkN "throttle-valve" "throttle-valves" ; lin through_Adv = mkAdv "through" ; -lin through_Prep = mkPrep "through" ; +--- lin through_Prep = mkPrep "through" ; lin throughout_Adv = mkAdv "throughout" ; lin throughout_Prep = mkPrep "throughout" ; lin throughput_N = mkN "throughput" "throughputs" ; @@ -50800,7 +50800,7 @@ lin tiyin_N = mkN "tiyin" "tiyins" ; lin tizzy_N = mkN "tizzy" "tizzies" ; lin tnt_N = mkN "tnt" "tnts" ; lin to_Adv = mkAdv "to" ; -lin to_Prep = mkPrep "to" ; +--- lin to_Prep = mkPrep "to" ; lin to_date_Adv = mkAdv "to date" ; lin to_do_N = mkN "to-do" "to-dos" ; lin toad_N = mkN "toad" "toads" ; @@ -52641,7 +52641,7 @@ lin undependability_N = mkN "undependability" "undependabilities" ; lin undependable_A = mkAMost "undependable" "undependably" ; lin undepicted_A = mkAMost "undepicted" "undepictedly" ; lin under_Adv = mkAdv "under" ; -lin under_Prep = mkPrep "under" ; +--- lin under_Prep = mkPrep "under" ; lin under_the_counter_A = mkAMost "under-the-counter" "under-the-counterly" ; lin underachievement_N = mkN "underachievement" "underachievements" ; lin underachiever_N = mkN "underachiever" "underachievers" ; @@ -55963,7 +55963,7 @@ lin witchgrass_N = mkN "witchgrass" "witchgrasses" ; lin witching_A = mkAMost "witching" "witchingly" ; lin witching_N = mkN "witching" "witchings" ; lin witchlike_A = mkAMost "witchlike" "witchlikely" ; -lin with_Prep = mkPrep "with" ; +--- lin with_Prep = mkPrep "with" ; lin with_a_view_to_Prep = mkPrep "with a view to" ; lin with_regard_to_Prep = mkPrep "with regard to" ; lin with_respect_to_Prep = mkPrep "with respect to" ; @@ -55979,7 +55979,7 @@ lin withhold_V = mkV "withhold" "withheld" "withheld" ; lin withholder_N = mkN "withholder" "withholders" ; lin withholding_N = mkN "withholding" "withholdings" ; lin within_Prep = mkPrep "within" ; -lin without_Prep = mkPrep "without" ; +--- lin without_Prep = mkPrep "without" ; lin withstand_V = mkV "withstand" "withstood" "withstood" ; lin withstander_N = mkN "withstander" "withstanders" ; lin withy_N = mkN "withy" "withies" ; @@ -56605,4 +56605,4 @@ lin élan_N = mkN "élan" "élans" ; lin élite_N = mkN "élite" "élites" ; lin émigré_N = mkN "émigré" "émigrés" ; lin épée_N = mkN "épée" "épées" ; -} \ No newline at end of file +} diff --git a/src/morphodict/MorphoDictEngAbs.gf b/src/morphodict/MorphoDictEngAbs.gf index 85e1f517a..0b0b0c52d 100644 --- a/src/morphodict/MorphoDictEngAbs.gf +++ b/src/morphodict/MorphoDictEngAbs.gf @@ -1,5 +1,5 @@ abstract MorphoDictEngAbs = - Cat [N,A,V,Adv,Prep] ** +Cat [N,A,V,Adv,Prep] ** { fun '\'til_Prep' : Prep ; @@ -355,7 +355,7 @@ fun about_face_V : V ; fun above_A : A ; fun above_Adv : Adv ; fun above_N : N ; -fun above_Prep : Prep ; +--- fun above_Prep : Prep ; fun above_board_A : A ; fun above_board_Adv : Adv ; fun above_mentioned_A : A ; @@ -1236,7 +1236,7 @@ fun afropavo_N : N ; fun aft_Adv : Adv ; fun after_A : A ; fun after_Adv : Adv ; -fun after_Prep : Prep ; +--- fun after_Prep : Prep ; fun afterbirth_N : N ; fun afterburner_N : N ; fun aftercare_N : N ; @@ -5079,7 +5079,7 @@ fun befit_V : V ; fun befitting_A : A ; fun befogged_A : A ; fun before_Adv : Adv ; -fun before_Prep : Prep ; +--- fun before_Prep : Prep ; fun beforehand_A : A ; fun beforehand_Adv : Adv ; fun befoul_V : V ; @@ -5122,7 +5122,7 @@ fun behead_V : V ; fun behest_N : N ; fun behind_Adv : Adv ; fun behind_N : N ; -fun behind_Prep : Prep ; +--- fun behind_Prep : Prep ; fun behindhand_A : A ; fun behither_Prep : Prep ; fun behold_V : V ; @@ -5373,7 +5373,7 @@ fun bettong_N : N ; fun bettor_N : N ; fun betulaceous_A : A ; fun between_Adv : Adv ; -fun between_Prep : Prep ; +--- fun between_Prep : Prep ; fun betwixen_Prep : Prep ; fun betwixt_Prep : Prep ; fun bevatron_N : N ; @@ -15888,7 +15888,7 @@ fun durative_N : N ; fun durbar_N : N ; fun duress_N : N ; fun durian_N : N ; -fun during_Prep : Prep ; +--- fun during_Prep : Prep ; fun durmast_N : N ; fun durra_N : N ; fun durum_N : N ; @@ -17578,7 +17578,7 @@ fun eversion_N : N ; fun everyday_A : A ; fun everyman_N : N ; fun everyplace_Adv : Adv ; -fun everywhere_Adv : Adv ; +--- fun everywhere_Adv : Adv ; fun evict_V : V ; fun eviction_N : N ; fun evidence_N : N ; @@ -17649,7 +17649,7 @@ fun excellence_N : N ; fun excellency_N : N ; fun excellent_A : A ; fun excelsior_N : N ; -fun except_Prep : Prep ; +--- fun except_Prep : Prep ; fun except_V : V ; fun except_for_Prep : Prep ; fun exception_N : N ; @@ -19577,7 +19577,7 @@ fun footwork_N : N ; fun fop_N : N ; fun foppish_A : A ; fun foppishness_N : N ; -fun for_Prep : Prep ; +--- fun for_Prep : Prep ; fun for_example_Adv : Adv ; fun for_instance_Adv : Adv ; fun for_starters_Adv : Adv ; @@ -20099,7 +20099,7 @@ fun frogmouth_N : N ; fun frolic_N : N ; fun frolic_V : V ; fun frolicsome_A : A ; -fun from_Prep : Prep ; +--- fun from_Prep : Prep ; fun from_home_Adv : Adv ; fun fromward_Prep : Prep ; fun frond_N : N ; @@ -23055,7 +23055,7 @@ fun herd_N : N ; fun herd_V : V ; fun herder_N : N ; fun herdsman_N : N ; -fun here_Adv : Adv ; +--- fun here_Adv : Adv ; fun hereabout_Adv : Adv ; fun hereabouts_Adv : Adv ; fun hereafter_Adv : Adv ; @@ -24868,7 +24868,7 @@ fun imputrescible_A : A ; fun in_A : A ; fun in_Adv : Adv ; fun in_N : N ; -fun in_Prep : Prep ; +--- fun in_Prep : Prep ; fun in_accordance_with_Prep : Prep ; fun in_addition_Adv : Adv ; fun in_addition_to_Prep : Prep ; @@ -34097,7 +34097,7 @@ fun omnivorous_A : A ; fun omophagia_N : N ; fun omphaloskepsis_N : N ; fun on_Adv : Adv ; -fun on_Prep : Prep ; +--- fun on_Prep : Prep ; fun on_account_of_Prep : Prep ; fun on_behalf_of_Prep : Prep ; fun on_licence_N : N ; @@ -40149,7 +40149,7 @@ fun quisling_N : N ; fun quit_quit_V : V ; fun quit_quitted_V : V ; fun quitclaim_N : N ; -fun quite_Adv : Adv ; +--- fun quite_Adv : Adv ; fun quits_A : A ; fun quittance_N : N ; fun quitter_N : N ; @@ -46378,7 +46378,7 @@ fun sometime_Adv : Adv ; fun sometimes_Adv : Adv ; fun someway_Adv : Adv ; fun somewhat_Adv : Adv ; -fun somewhere_Adv : Adv ; +--- fun somewhere_Adv : Adv ; fun somewhere_N : N ; fun sommelier_N : N ; fun somnambulism_N : N ; @@ -50223,7 +50223,7 @@ fun therapeutics_N : N ; fun therapist_N : N ; fun therapsid_N : N ; fun therapy_N : N ; -fun there_Adv : Adv ; +--- fun there_Adv : Adv ; fun thereabout_Adv : Adv ; fun thereabouts_Adv : Adv ; fun thereafter_Adv : Adv ; @@ -50480,7 +50480,7 @@ fun throttle_N : N ; fun throttle_V : V ; fun throttle_valve_N : N ; fun through_Adv : Adv ; -fun through_Prep : Prep ; +--- fun through_Prep : Prep ; fun throughout_Adv : Adv ; fun throughout_Prep : Prep ; fun throughput_N : N ; @@ -50795,7 +50795,7 @@ fun tiyin_N : N ; fun tizzy_N : N ; fun tnt_N : N ; fun to_Adv : Adv ; -fun to_Prep : Prep ; +--- fun to_Prep : Prep ; fun to_date_Adv : Adv ; fun to_do_N : N ; fun toad_N : N ; @@ -52636,7 +52636,7 @@ fun undependability_N : N ; fun undependable_A : A ; fun undepicted_A : A ; fun under_Adv : Adv ; -fun under_Prep : Prep ; +--- fun under_Prep : Prep ; fun under_the_counter_A : A ; fun underachievement_N : N ; fun underachiever_N : N ; @@ -55958,7 +55958,7 @@ fun witchgrass_N : N ; fun witching_A : A ; fun witching_N : N ; fun witchlike_A : A ; -fun with_Prep : Prep ; +--- fun with_Prep : Prep ; fun with_a_view_to_Prep : Prep ; fun with_regard_to_Prep : Prep ; fun with_respect_to_Prep : Prep ; @@ -55974,7 +55974,7 @@ fun withhold_V : V ; fun withholder_N : N ; fun withholding_N : N ; fun within_Prep : Prep ; -fun without_Prep : Prep ; +--- fun without_Prep : Prep ; fun withstand_V : V ; fun withstander_N : N ; fun withy_N : N ; @@ -56600,4 +56600,4 @@ fun élan_N : N ; fun élite_N : N ; fun émigré_N : N ; fun épée_N : N ; -} \ No newline at end of file +} diff --git a/src/morphodict/utils/remove_duplicates.py b/src/morphodict/utils/remove_duplicates.py new file mode 100644 index 000000000..c63f4bdbd --- /dev/null +++ b/src/morphodict/utils/remove_duplicates.py @@ -0,0 +1,18 @@ +import sys + +FUNS_FILE='funs.tmp' # obtained by pg -funs with the module to exclude + +# example: +# cat MorphoDictEng.gf | python3 remove_duplicates.py >tmp/MorphoDictEng.gf +W cat MorphoDictEngAbs.gf | python3 remove_duplicates.py >tmp/MorphoDictEngAbs.gf + + +with open(FUNS_FILE) as funs: + funset = {line.split()[0] for line in funs if line.split()} + +for line in sys.stdin: + ws = line.split() + if ws[1:] and ws[0] in ['fun', 'lin'] and ws[1] in funset: + print('---', line.strip()) + else: + print(line.strip())