summaryrefslogtreecommitdiff
path: root/scripts/rgl-predictability.hs
blob: ec1abefed8cda9d0bc4614ac56b8ecb09320528d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
{-# LANGUAGE OverloadedStrings #-}
module Main where

import GF.Predictability

main = defaultMain
  [ englishNouns, englishVerbs
  -- , finnishNouns, finnishVerbs ]
  , frenchVerbs
  , swedishNouns, swedishVerbs ]

englishNouns, englishVerbs :: Experiment
englishNouns = Experiment
  { title = "English nouns"
  , lexicon = "lib/src/english/DictEng.gf"
  , category = "N"
  , nforms        = 4
  , morphology = "lib/src/english/ParadigmsEng.gf"
  , smartparadigm = "mkN"
  , setup = \(man:_:men:_:_) -> [ [esc man], [esc man,esc men] ] }
englishVerbs = Experiment
  { title = "English verbs"
  , lexicon = "lib/src/english/DictEng.gf"
  , category = "V"
  , nforms        = 5
  , morphology = "lib/src/english/ParadigmsEng.gf"
  , smartparadigm = "mkV"
  , setup = \(blow:blows:blown:blowing:blew:_) ->
    [ [ esc blow ]
    , [ esc blow, esc blew ]
    , [ esc blow, esc blew, esc blown ]
    , [ esc blow, esc blows, esc blew, esc blown, esc blowing ] ] }

  -- ~~~ Finnish ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
finnishNouns, finnishVerbs :: Experiment
finnishNouns = Experiment
  { title = "Finnish nouns"
  , lexicon = "lib/src/finnish/DictFin.gf"
  , category = "NK"
  , nforms        = 10
  , morphology = "lib/src/finnish/ParadigmsFin.gf"
  , smartparadigm = "mkN"
  , setup = \(talo:talon:taloa:talona:taloon:talojen:taloja:taloina:taloissa:taloihin:_) ->
      map (map esc )
        [ [ talo ]
        , [ talo, taloja ]
        , [ talo, talon, taloja ]
        , [ talo, talon, taloja, taloa ]
        , [ talo,talon,taloa,talona,taloon,talojen,taloja,taloina,taloissa,taloihin ] ] }

finnishVerbs = Experiment
  { title = "Finnish verbs"
  , lexicon = "lib/src/finnish/DictFin.gf"
  , category = "VK"
  , nforms        = 12
  , morphology = "lib/src/finnish/ParadigmsFin.gf"
  , smartparadigm = "mkV"
  , setup = \(panna:panen:panee:panevat:pankaa:pannaan:panin:pani:panisi:pannut:pantu:pannee:_) ->
      map (map esc )
        [ [ panna ]
        , [ panna, pani ]
        , [ panna, panen, pani ]
        , [ panna, panen, panee, panevat, pankaa, pannaan, panin, pani, panisi, pannut, pantu, pannee ] ]}
  
-- ~~~ French ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
frenchVerbs :: Experiment
frenchVerbs = Experiment
  { title         = "French verbs"
  , lexicon       = "lib/src/french/DictFre.gf"
  , category      = "V"
  , nforms        = 51
  , morphology    = "lib/src/french/ParadigmsFre.gf"
  , smartparadigm = "mkV"
  , setup         = \vForms ->
      let jeter = vForms!!0
          jette = vForms!!3
          jettera = vForms!!33
          tenir = vForms!!0
          tiens = vForms!!1
          tient = vForms!!3
          tenons = vForms!!4
          tenez = vForms!!5
          tiennent = vForms!!6
          tienne = vForms!!7
          tenions = vForms!!10
          tiensI = vForms!!43
          tint = vForms!!27
          tiendra = vForms!!33
          tenu = vForms!!46
      in map (map esc )
        [ [ jeter ]
        , [ jeter, jette, jettera ]
        , [ tenir, tiens, tenons, tiennent, tint, tiendra, tenu ]
        , [ tenir,tiens,tient,tenons,tenez,tiennent,tienne,tenions,tiensI,tint,tiendra,tenu ]
        ] }
  -- ~~~ Swedish ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
swedishNouns, swedishVerbs :: Experiment
swedishNouns = Experiment
  { title = "Swedish nouns"
  , lexicon = "lib/src/swedish/DictSwe.gf"
  , category = "N"
  , nforms        = 8
  , morphology = "lib/src/swedish/ParadigmsSwe.gf"
  , smartparadigm = "mkN"
  , setup = \(gurka:gurkas:gurkan:gurkans:gurkor:gurkors:gurkorna:gurkornas:_) ->
      [ [ esc gurka ]
      , [ esc gurka, esc gurkor ]
      , [ esc gurka, esc gurkan , esc gurkor, esc gurkorna ] ] }

swedishVerbs = Experiment
  { title = "Swedish verbs"
  , lexicon = "lib/src/swedish/DictSwe.gf"
  , category = "V"
  , nforms        = 17
  , morphology = "lib/src/swedish/ParadigmsSwe.gf"
  , smartparadigm = "mkV"
  , setup = \(gaar:gaas:gick:gicks:gaa_imp:gaa_inf:gaas_inf:gaatt:gaatts:gaangen:gaangens:gaanget:gaangets:gaangna_undef:gaangnas_undef:gaangna_def:gaangnas_def:_) ->
      [ [ esc gaa_inf ]
      , [ esc gaa_inf, esc gick, esc gaatt ]
      , [ esc gaa_inf, esc gaar, esc gaa_imp, esc gick, esc gaatt, esc gaangen ] ] }