mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-24 18:28:55 -06:00
changed names of resource-1.3; added a note on homepage on release
This commit is contained in:
20
old-examples/CLE/CF2GF.hs
Normal file
20
old-examples/CLE/CF2GF.hs
Normal file
@@ -0,0 +1,20 @@
|
||||
import Data.List (intersperse)
|
||||
import Data.Char (isAlpha)
|
||||
|
||||
-- to massage cf rules to funs, in order, preserving comments
|
||||
-- to get cats, use pg -printer=gf
|
||||
|
||||
cf2gf :: FilePath -> IO ()
|
||||
cf2gf file = do
|
||||
ss <- readFile file >>= return . lines
|
||||
mapM_ (putStrLn . mkOne) ss
|
||||
|
||||
mkOne line = case words line of
|
||||
fun : cat : "::=" : cats ->
|
||||
let
|
||||
(cats0,cats2) = span (/=";") cats
|
||||
cats1 = filter (isAlpha . head) cats0 ++ [cat]
|
||||
in
|
||||
unwords $ [init fun, ":"] ++ intersperse "->" cats1 ++ cats2
|
||||
_ -> line
|
||||
|
||||
194
old-examples/CLE/English.cf
Normal file
194
old-examples/CLE/English.cf
Normal file
@@ -0,0 +1,194 @@
|
||||
-- SLT book, chapter 9
|
||||
|
||||
-- p. 164
|
||||
|
||||
utterance_phrase. UTTERANCE ::= PHRASE ;
|
||||
utterance_conj_phrase. UTTERANCE ::= CONJ PHRASE ;
|
||||
utterance_whatabout. UTTERANCE ::= "what" "about" PHRASE ;
|
||||
utterance_howabout. UTTERANCE ::= "how" "about" PHRASE ;
|
||||
|
||||
phrase_pp. PHRASE ::= PP ;
|
||||
phrase_advp. PHRASE ::= ADVP ;
|
||||
phrase_np. PHRASE ::= NP ;
|
||||
|
||||
utterance_s_imp. UTTERANCE ::= S_imp ;
|
||||
utterance_s_moved. UTTERANCE ::= S_moved ;
|
||||
utterance_s_q. UTTERANCE ::= S_q ;
|
||||
utterance_s_norm_inv. UTTERANCE ::= S_norm_inv ;
|
||||
utterance_s_norm. UTTERANCE ::= S_norm ;
|
||||
|
||||
-- p. 162
|
||||
|
||||
s_norm_NP_VP. S_norm ::= NP_norm VP ; -- these 3 are 1 in CLE
|
||||
s_q_NP_VP. S_q ::= NP_q VP ;
|
||||
s_r_NP_VP. S_r ::= NP_r VP ;
|
||||
|
||||
s_imp_NP_VP. S_imp ::= NP_imp VP ;
|
||||
|
||||
s_advp_s. S ::= ADVP_sent S ;
|
||||
s_s_advp. S ::= S ADVP_sent ;
|
||||
s_conj_s. S ::= S CONJ S ;
|
||||
|
||||
-- p. 163: 6 wh-move-rules
|
||||
|
||||
-- p. 160
|
||||
|
||||
vp_vp_pp. VP ::= VP PP ;
|
||||
vp_vp_advp. VP ::= VP ADVP ;
|
||||
vp_advp_vp. VP ::= ADVP VP ;
|
||||
advp_vp_ing. ADVP ::= VP_ing ;
|
||||
advp_vp_to. ADVP ::= VP_to ;
|
||||
vp_conj_vp. VP ::= VP CONJ VP ;
|
||||
vp_not_vp. VP ::= "not" VP ;
|
||||
|
||||
np_gaps. NP_gaps ::= ;
|
||||
pp_gaps. PP_gaps ::= ;
|
||||
adjp_gaps. ADJP_gaps ::= ;
|
||||
advp_gaps. ADVP_gaps ::= ;
|
||||
|
||||
-- p. 157
|
||||
|
||||
vp_be_comp. VP ::= V_be COMP ; -- 1 rule VP ::= V COMPS
|
||||
vp_tr. VP ::= V_tr NP ;
|
||||
vp_ditr. VP ::= V_ditr NP NP ;
|
||||
vp_intr. VP ::= V_intr ;
|
||||
vp_mod. VP ::= V_mod VP ; -- would, could, can, may, will
|
||||
vp_do. VP ::= V_do VP ;
|
||||
vp_be_pass. VP ::= V_be VP_pass ;
|
||||
vp_be_ing. VP ::= V_be VP_ing ;
|
||||
vp_part. VP ::= V_part ; -- particle verb
|
||||
vp_s. VP ::= V_s S ;
|
||||
vp_vp_to. VP ::= V_vp VP_to ; -- "how much does it cost to fly..."
|
||||
vp_ditrq. VP ::= V_ditrq NP S_q ;
|
||||
vp_ditrpp. VP ::= V_ditrpp NP PP ;
|
||||
vp_trq. VP ::= V_trq S_q ;
|
||||
|
||||
-- p. 159
|
||||
|
||||
comp_np. COMP ::= NP ;
|
||||
comp_adjp. COMP ::= ADJP ;
|
||||
comp_pp. COMP ::= PP ;
|
||||
|
||||
-- p. 156
|
||||
|
||||
pp_pp. PP ::= PP PP ; -- big PP --- unnecessary ambiguity?
|
||||
|
||||
pp_p_np. PP ::= P NP ;
|
||||
pp_np_temporal. PP ::= NP_temporal ;
|
||||
pp_name_p_name. PP ::= NP_name P NP_name ; -- Baltimore to Philadelpia
|
||||
pp_conj_pp. PP ::= PP CONJ PP ;
|
||||
|
||||
-- p. 157; the numeral rules are not shown
|
||||
|
||||
number_digit. NUMBER ::= DIGIT ; --- and more
|
||||
ordinal_first. ORDINAL ::= "first" ; --- and more
|
||||
code_digit. CODE ::= DIGIT ;
|
||||
code_digit_code. CODE ::= DIGIT CODE ;
|
||||
|
||||
digit_1. DIGIT ::= "one" ;
|
||||
digit_2. DIGIT ::= "two" ;
|
||||
digit_3. DIGIT ::= "three" ;
|
||||
digit_4. DIGIT ::= "four" ;
|
||||
digit_5. DIGIT ::= "five" ;
|
||||
digit_6. DIGIT ::= "six" ;
|
||||
digit_7. DIGIT ::= "seven" ;
|
||||
digit_8. DIGIT ::= "eight" ;
|
||||
digit_9. DIGIT ::= "nine" ;
|
||||
digit_0. DIGIT ::= "zero" ;
|
||||
|
||||
-- p. 154 "recursive NPs"
|
||||
|
||||
np_np_pp. NP ::= NP PP ;
|
||||
np_np_rel. NP ::= NP REL ;
|
||||
|
||||
np_np_vp_ing. NP ::= NP VP_ing ; -- these 2 are 1 with \/
|
||||
np_np_vp_pass. NP ::= NP VP_pass ;
|
||||
|
||||
np_np_adjp. NP ::= NP ADJP_post ; --- restr. acc to text
|
||||
|
||||
rel_s_rel. REL ::= S_r ;
|
||||
rel_s_norm. REL ::= S_normal_gap ; --- type normal=norm ??
|
||||
--- they cannot be showing their real code here
|
||||
|
||||
adjp_nocomp. ADJP ::= ADJ_nocomp ; -- ADJP ::= ADJ COMPS
|
||||
adjp_pp. ADJP ::= ADJ_pp PP ; -- only "available" in corpus
|
||||
|
||||
np_conj_np. NP ::= NP CONJ NP ; --- curious analysis of conj lists...
|
||||
np_np_np. NP ::= NP NP ; -- Boston Atlanta and Denver
|
||||
|
||||
s_vp_inf. S_norm ::= VP_inf ; -- "to get from X to Y (is...)"
|
||||
np_s_q. NP ::= S_q ; -- "what city they stop in (is...)"
|
||||
np_s_norm. NP ::= S_norm ;
|
||||
np_compl_s. NP ::= COMPLEMENTISER S_norm ; --- they don't tell what CO... is
|
||||
|
||||
np_np_code. NP ::= NP CODE ; --- unnec. source of ambiguity
|
||||
|
||||
|
||||
-- p. 150
|
||||
|
||||
np_det_nbar. NP ::= DET NBAR ;
|
||||
np_nbar. NP ::= NBAR ; -- "information", "travel arrangements"
|
||||
|
||||
nbar_adjp_nbar. NBAR ::= ADJP NBAR ;
|
||||
nbar_nbar_nbar. NBAR ::= NBAR NBAR ; --- unnec. ambiguity
|
||||
nbar_name_nbar. NBAR ::= NP_name NBAR ; -- "Delta flights"
|
||||
nbar_conj_nbar. NBAR ::= NBAR CONJ NBAR ;
|
||||
|
||||
adjp_most_adj. ADJP ::= "most" ADJ ;
|
||||
adjp_least_adj. ADJP ::= "least" ADJ ;
|
||||
ordinal_adjp_superl. ORDINAL ::= ADJP_superlative ;
|
||||
|
||||
det_the_ordinal. DET ::= "the" ORDINAL ;
|
||||
det_ordinal. DET ::= ORDINAL ; -- common in spoken language
|
||||
det_predet_det. DET ::= PREDET DET ;
|
||||
det_numer. DET ::= NUMBER ; --- NUMBER in book
|
||||
det_less_than. DET ::= "less" "than" NUMBER ; --- NUMBER
|
||||
det_more_than. DET ::= "more" "than" NUMBER ; --- NUMBER
|
||||
det_possessive. DET ::= POSSESSIVE ;
|
||||
|
||||
|
||||
-- p. 152 time and date NPs not given
|
||||
|
||||
np_code. NP ::= CODE ;
|
||||
np_nbar_code. NP ::= NBAR CODE ;
|
||||
|
||||
--- CODE ::= NUMBER already covered above
|
||||
-- letter codes added from corpus
|
||||
|
||||
np_det. NP ::= DET_bare ; -- any, which, one, both, the same, the latest,...
|
||||
|
||||
nbar_comp. NBAR ::= NBAR_of "of" NBAR ; -- only ex of NBAR COMP; (kind | type) of plane
|
||||
|
||||
|
||||
-- lexicon; picked from examples and explanations
|
||||
|
||||
possessive_my. POSSESSIVE ::= "my" ;
|
||||
|
||||
predet_all. PREDET ::= "all" ;
|
||||
predet_only. PREDET ::= "only" ;
|
||||
predet_just. PREDET ::= "just" ;
|
||||
|
||||
nbar_flight. NBAR ::= "flight" ;
|
||||
nbar_aircraft. NBAR ::= "aircraft" ;
|
||||
|
||||
name_Delta. NP_name ::= "Delta" ;
|
||||
name_Dallas. NP_name ::= "Dallas" ;
|
||||
name_Boston. NP_name ::= "Boston" ;
|
||||
|
||||
conj_and. CONJ ::= "and" ;
|
||||
|
||||
det_any. DET_bare ::= "any" ;
|
||||
|
||||
v_is. V_be ::= "is" ;
|
||||
v_leave. V_intr ::= "leaves" ;
|
||||
v_have. V_tr ::= "has" ;
|
||||
|
||||
nbar_of_type. NBAR_of ::= "type" ;
|
||||
|
||||
adj_cheap. ADJ ::= "cheap" ;
|
||||
|
||||
|
||||
--- ad hoc coercions to make cf grammar work
|
||||
|
||||
det_bare. DET ::= DET_bare ;
|
||||
|
||||
269
old-examples/CLE/QLF.gf
Normal file
269
old-examples/CLE/QLF.gf
Normal file
@@ -0,0 +1,269 @@
|
||||
abstract QLF = {
|
||||
|
||||
-- by CF2GF
|
||||
|
||||
fun
|
||||
-- SLT book, chapter 9
|
||||
|
||||
-- p. 164
|
||||
|
||||
utterance_phrase : PHRASE -> UTTERANCE ;
|
||||
utterance_conj_phrase : CONJ -> PHRASE -> UTTERANCE ;
|
||||
utterance_whatabout : PHRASE -> UTTERANCE ;
|
||||
utterance_howabout : PHRASE -> UTTERANCE ;
|
||||
|
||||
phrase_pp : PP -> PHRASE ;
|
||||
phrase_advp : ADVP -> PHRASE ;
|
||||
phrase_np : NP -> PHRASE ;
|
||||
|
||||
utterance_s_imp : S_imp -> UTTERANCE ;
|
||||
utterance_s_moved : S_moved -> UTTERANCE ;
|
||||
utterance_s_q : S_q -> UTTERANCE ;
|
||||
utterance_s_norm_inv : S_norm_inv -> UTTERANCE ;
|
||||
utterance_s_norm : S_norm -> UTTERANCE ;
|
||||
|
||||
-- p. 162
|
||||
|
||||
s_norm_NP_VP : NP_norm -> VP -> S_norm ; -- these 3 are 1 in CLE
|
||||
s_q_NP_VP : NP_q -> VP -> S_q ;
|
||||
s_r_NP_VP : NP_r -> VP -> S_r ;
|
||||
|
||||
s_imp_NP_VP : NP_imp -> VP -> S_imp ;
|
||||
|
||||
s_advp_s : ADVP_sent -> S -> S ;
|
||||
s_s_advp : S -> ADVP_sent -> S ;
|
||||
s_conj_s : S -> CONJ -> S -> S ;
|
||||
|
||||
-- p. 163: 6 wh-move-rules
|
||||
|
||||
-- p. 160
|
||||
|
||||
vp_vp_pp : VP -> PP -> VP ;
|
||||
vp_vp_advp : VP -> ADVP -> VP ;
|
||||
vp_advp_vp : ADVP -> VP -> VP ;
|
||||
advp_vp_ing : VP_ing -> ADVP ;
|
||||
advp_vp_to : VP_to -> ADVP ;
|
||||
vp_conj_vp : VP -> CONJ -> VP -> VP ;
|
||||
vp_not_vp : VP -> VP ;
|
||||
|
||||
np_gaps : NP_gaps ;
|
||||
pp_gaps : PP_gaps ;
|
||||
adjp_gaps : ADJP_gaps ;
|
||||
advp_gaps : ADVP_gaps ;
|
||||
|
||||
-- p. 157
|
||||
|
||||
vp_be_comp : V_be -> COMP -> VP ; -- 1 rule VP ::= V COMPS
|
||||
vp_tr : V_tr -> NP -> VP ;
|
||||
vp_ditr : V_ditr -> NP -> NP -> VP ;
|
||||
vp_intr : V_intr -> VP ;
|
||||
vp_mod : V_mod -> VP -> VP ; -- would, could, can, may, will
|
||||
vp_do : V_do -> VP -> VP ;
|
||||
vp_be_pass : V_be -> VP_pass -> VP ;
|
||||
vp_be_ing : V_be -> VP_ing -> VP ;
|
||||
vp_part : V_part -> VP ; -- particle verb
|
||||
vp_s : V_s -> S -> VP ;
|
||||
vp_vp_to : V_vp -> VP_to -> VP ; -- "how much does it cost to fly..."
|
||||
vp_ditrq : V_ditrq -> NP -> S_q -> VP ;
|
||||
vp_ditrpp : V_ditrpp -> NP -> PP -> VP ;
|
||||
vp_trq : V_trq -> S_q -> VP ;
|
||||
|
||||
-- p. 159
|
||||
|
||||
comp_np : NP -> COMP ;
|
||||
comp_adjp : ADJP -> COMP ;
|
||||
comp_pp : PP -> COMP ;
|
||||
|
||||
-- p. 156
|
||||
|
||||
pp_pp : PP -> PP -> PP ; -- big PP --- unnecessary ambiguity?
|
||||
|
||||
pp_p_np : P -> NP -> PP ;
|
||||
pp_np_temporal : NP_temporal -> PP ;
|
||||
pp_name_p_name : NP_name -> P -> NP_name -> PP ; -- Baltimore to Philadelpia
|
||||
pp_conj_pp : PP -> CONJ -> PP -> PP ;
|
||||
|
||||
-- p. 157; the numeral rules are not shown
|
||||
|
||||
number_digit : DIGIT -> NUMBER ; --- and more
|
||||
ordinal_first : ORDINAL ; --- and more
|
||||
code_digit : DIGIT -> CODE ;
|
||||
code_digit_code : DIGIT -> CODE -> CODE ;
|
||||
|
||||
digit_1 : DIGIT ;
|
||||
digit_2 : DIGIT ;
|
||||
digit_3 : DIGIT ;
|
||||
digit_4 : DIGIT ;
|
||||
digit_5 : DIGIT ;
|
||||
digit_6 : DIGIT ;
|
||||
digit_7 : DIGIT ;
|
||||
digit_8 : DIGIT ;
|
||||
digit_9 : DIGIT ;
|
||||
digit_0 : DIGIT ;
|
||||
|
||||
-- p. 154 "recursive NPs"
|
||||
|
||||
np_np_pp : NP -> PP -> NP ;
|
||||
np_np_rel : NP -> REL -> NP ;
|
||||
|
||||
np_np_vp_ing : NP -> VP_ing -> NP ; -- these 2 are 1 with \/
|
||||
np_np_vp_pass : NP -> VP_pass -> NP ;
|
||||
|
||||
np_np_adjp : NP -> ADJP_post -> NP ; --- restr. acc to text
|
||||
|
||||
rel_s_rel : S_rel -> REL ;
|
||||
rel_s_norm : S_normal_gap -> REL ; --- type normal=norm ??
|
||||
--- they cannot be showing their real code here
|
||||
|
||||
adjp_nocomp : ADJ_nocomp -> ADJP ; -- ADJP ::= ADJ COMPS
|
||||
adjp_np : ADJ_pp -> NP -> ADJP ; -- only "available" in corpus
|
||||
-- adjp_pp : ADJ_pp -> PP -> ADJP ; -- only "available" in corpus
|
||||
|
||||
np_conj_np : NP -> CONJ -> NP -> NP ; --- curious analysis of conj lists...
|
||||
np_np_np : NP -> NP -> NP ; -- Boston Atlanta and Denver
|
||||
|
||||
s_vp_inf : VP_inf -> S_norm ; -- "to get from X to Y (is...)"
|
||||
np_s_q : S_q -> NP ; -- "what city they stop in (is...)"
|
||||
np_s_norm : S_norm -> NP ;
|
||||
np_compl_s : COMPLEMENTISER -> S_norm -> NP ; --- they don't tell what CO... is
|
||||
|
||||
np_np_code : NP -> CODE -> NP ; --- unnec. source of ambiguity
|
||||
|
||||
|
||||
-- p. 150
|
||||
|
||||
np_det_nbar : DET -> NBAR -> NP ;
|
||||
np_nbar : NBAR -> NP ; -- "information", "travel arrangements"
|
||||
|
||||
nbar_adjp_nbar : ADJP -> NBAR -> NBAR ;
|
||||
nbar_nbar_nbar : NBAR -> NBAR -> NBAR ; --- unnec. ambiguity
|
||||
nbar_name_nbar : NP_name -> NBAR -> NBAR ; -- "Delta flights"
|
||||
nbar_conj_nbar : NBAR -> CONJ -> NBAR -> NBAR ;
|
||||
|
||||
adjp_most_adj : ADJ -> ADJP ;
|
||||
adjp_least_adj : ADJ -> ADJP ;
|
||||
ordinal_adjp_superl : ADJP_superlative -> ORDINAL ;
|
||||
|
||||
det_the_ordinal : ORDINAL -> DET ;
|
||||
det_ordinal : ORDINAL -> DET ; -- common in spoken language
|
||||
det_predet_det : PREDET -> DET -> DET ;
|
||||
det_numer : NUMBER -> DET ; --- NUMBER in book
|
||||
det_less_than : NUMBER -> DET ; --- NUMBER
|
||||
det_more_than : NUMBER -> DET ; --- NUMBER
|
||||
det_possessive : POSSESSIVE -> DET ;
|
||||
|
||||
|
||||
-- p. 152 time and date NPs not given
|
||||
|
||||
np_code : CODE -> NP ;
|
||||
np_nbar_code : NBAR -> CODE -> NP ;
|
||||
|
||||
-- : NUMBER -> already -> covered -> above -> CODE
|
||||
-- letter codes added from corpus
|
||||
|
||||
np_det : DET_bare -> NP ; -- any, which, one, both, the same, the latest,...
|
||||
|
||||
nbar_comp : NBAR_of -> NBAR -> NBAR ; -- only ex of NBAR COMP; (kind | type) of plane
|
||||
|
||||
-- by pg -printer=gf
|
||||
|
||||
cat ADJ ;
|
||||
cat ADJP ;
|
||||
cat ADJP_gaps ;
|
||||
cat ADJP_post ;
|
||||
cat ADJP_superlative ;
|
||||
cat ADJ_nocomp ;
|
||||
cat ADJ_pp ;
|
||||
cat ADVP ;
|
||||
cat ADVP_gaps ;
|
||||
cat ADVP_sent ;
|
||||
cat CODE ;
|
||||
cat COMP ;
|
||||
cat COMPLEMENTISER ;
|
||||
cat CONJ ;
|
||||
cat DET ;
|
||||
cat DET_bare ;
|
||||
cat DIGIT ;
|
||||
cat NBAR ;
|
||||
cat NBAR_of ;
|
||||
cat NP ;
|
||||
cat NP_gaps ;
|
||||
cat NP_imp ;
|
||||
cat NP_name ;
|
||||
cat NP_norm ;
|
||||
cat NP_q ;
|
||||
cat NP_r ;
|
||||
cat NP_temporal ;
|
||||
cat NUMBER ;
|
||||
cat ORDINAL ;
|
||||
cat P ;
|
||||
cat PHRASE ;
|
||||
cat POSSESSIVE ;
|
||||
cat PP ;
|
||||
cat PP_gaps ;
|
||||
cat PREDET ;
|
||||
cat REL ;
|
||||
cat S ;
|
||||
cat S_imp ;
|
||||
cat S_moved ;
|
||||
cat S_norm ;
|
||||
cat S_norm_inv ;
|
||||
cat S_normal_gap ;
|
||||
cat S_q ;
|
||||
cat S_r ;
|
||||
cat S_rel ;
|
||||
cat UTTERANCE ;
|
||||
cat VP ;
|
||||
cat VP_inf ;
|
||||
cat VP_ing ;
|
||||
cat VP_pass ;
|
||||
cat VP_to ;
|
||||
cat V_be ;
|
||||
cat V_ditr ;
|
||||
cat V_ditrpp ;
|
||||
cat V_ditrq ;
|
||||
cat V_do ;
|
||||
cat V_intr ;
|
||||
cat V_mod ;
|
||||
cat V_part ;
|
||||
cat V_s ;
|
||||
cat V_tr ;
|
||||
cat V_trq ;
|
||||
cat V_vp ;
|
||||
|
||||
|
||||
{-
|
||||
-- lexicon; picked from examples and explanations
|
||||
|
||||
possessive_my : POSSESSIVE ;
|
||||
|
||||
predet_all : PREDET ;
|
||||
predet_only : PREDET ;
|
||||
predet_just : PREDET ;
|
||||
|
||||
nbar_flight : NBAR ;
|
||||
nbar_aircraft : NBAR ;
|
||||
|
||||
name_Delta : NP_name ;
|
||||
name_Dallas : NP_name ;
|
||||
name_Boston : NP_name ;
|
||||
|
||||
conj_and : CONJ ;
|
||||
|
||||
det_any : DET_bare ;
|
||||
|
||||
v_is : V_be ;
|
||||
v_leave : V_intr ;
|
||||
v_have : V_tr ;
|
||||
|
||||
nbar_of_type : NBAR_of ;
|
||||
|
||||
adj_cheap : ADJ ;
|
||||
|
||||
|
||||
--- ad hoc coercions to make cf grammar work
|
||||
|
||||
det_bare : DET_bare -> DET ;
|
||||
-}
|
||||
|
||||
}
|
||||
268
old-examples/CLE/QLFEng.gf
Normal file
268
old-examples/CLE/QLFEng.gf
Normal file
@@ -0,0 +1,268 @@
|
||||
--# -path=resource/abstract:resource/english:prelude
|
||||
|
||||
concrete QLFEng of QLF = open ResourceEng, VerbphraseEng in {
|
||||
|
||||
-- by CF2GF
|
||||
|
||||
lin
|
||||
-- SLT book, chapter 9
|
||||
|
||||
-- p. 164
|
||||
|
||||
utterance_phrase p = p ;
|
||||
----utterance_conj_phrase : CONJ -> Phrase -> UTTERANCE ;
|
||||
----utterance_whatabout : PHRASE -> UTTERANCE ;
|
||||
----utterance_howabout : PHRASE -> UTTERANCE ;
|
||||
|
||||
----phrase_pp : PP -> PHRASE ;
|
||||
----phrase_advp : ADVP -> PHRASE ;
|
||||
phrase_np = PhrNP ;
|
||||
|
||||
utterance_s_imp = ImperMany ; --- ImperOne
|
||||
utterance_s_moved = QuestPhrase ;
|
||||
utterance_s_q = QuestPhrase ;
|
||||
----utterance_s_norm_inv = QuestPhrase ;
|
||||
utterance_s_norm = IndicPhrase ;
|
||||
|
||||
-- p. 162
|
||||
|
||||
s_norm_NP_VP np vp = UseCl (PosTP TPresent ASimul) (PredVP np vp) ;
|
||||
s_q_NP_VP ip vp = UseQCl (PosTP TPresent ASimul) (IntVP ip vp) ;
|
||||
s_r_NP_VP rp vp = UseRCl (PosTP TPresent ASimul) (RelVP rp vp) ;
|
||||
|
||||
----s_imp_NP_VP npimp = PosImpVP ;
|
||||
|
||||
---- s_advp_s : ADVP_sent -> S -> S ;
|
||||
---- s_s_advp : S -> ADVP_sent -> S ; -- AdvCl : Cl -> Adv -> Cl ;
|
||||
s_conj_s a conj b = ConjS and_Conj (TwoS a b) ;
|
||||
|
||||
-- p. 163: 6 wh-move-rules
|
||||
|
||||
-- p. 160
|
||||
|
||||
---- vp_vp_pp : VP -> PP -> VP ;
|
||||
---- vp_vp_advp : VP -> ADVP -> VP ;
|
||||
---- vp_advp_vp : ADVP -> VP -> VP ;
|
||||
---- advp_vp_ing : VP_ing -> ADVP ;
|
||||
---- advp_vp_to : VP_to -> ADVP ;
|
||||
---- vp_conj_vp : VP -> CONJ -> VP -> VP ;
|
||||
---- vp_not_vp : VP -> VP ;
|
||||
|
||||
--np_gaps : NP_gaps ;
|
||||
--pp_gaps : PP_gaps ;
|
||||
--adjp_gaps : ADJP_gaps ;
|
||||
--advp_gaps : ADVP_gaps ;
|
||||
|
||||
-- p. 157
|
||||
|
||||
---- vp_be_comp : V_be -> COMP -> VP ; -- 1 rule VP ::= V COMPS
|
||||
vp_tr = ComplV2 ;
|
||||
vp_ditr = ComplV3 ;
|
||||
vp_intr = UseV ;
|
||||
vp_mod vv vp = ComplVV vv (UseVCl PNeg ASimul (UseVP vp)) ;
|
||||
-- vp_do : V_do -> VP -> VP ;
|
||||
---- vp_be_pass : V_be -> VP_pass -> VP ; -- UsePassV : V -> VP ;
|
||||
---- vp_be_ing : V_be -> VP_ing -> VP ;
|
||||
-- vp_part : V_part -> VP ; -- particle verb
|
||||
vp_s = ComplVS ;
|
||||
---- vp_vp_to : V_vp -> VP_to -> VP ; -- "how much does it cost to fly..."
|
||||
vp_ditrq = ComplV2Q ;
|
||||
-- vp_ditrpp : V_ditrpp -> NP -> PP -> VP ;
|
||||
vp_trq = ComplVQ ;
|
||||
|
||||
-- p. 159
|
||||
|
||||
---- comp_np : NP -> COMP ;
|
||||
---- comp_adjp : ADJP -> COMP ;
|
||||
---- comp_pp : PP -> COMP ;
|
||||
|
||||
-- p. 156
|
||||
|
||||
---- pp_pp : PP -> PP -> PP ; -- big PP --- unnecessary ambiguity?
|
||||
|
||||
pp_p_np = PrepNP ;
|
||||
---- pp_np_temporal : NP_temporal -> PP ;
|
||||
---- pp_name_p_name : NP_name -> P -> NP_name -> PP ; -- Baltimore to Philadelpia
|
||||
---- pp_conj_pp : PP -> CONJ -> PP -> PP ;
|
||||
|
||||
-- p. 157; the numeral rules are not shown
|
||||
{-
|
||||
number_digit : DIGIT -> NUMBER ; --- and more
|
||||
ordinal_first : ORDINAL ; --- and more
|
||||
code_digit : DIGIT -> CODE ;
|
||||
code_digit_code : DIGIT -> CODE -> CODE ;
|
||||
|
||||
digit_1 : DIGIT ;
|
||||
digit_2 : DIGIT ;
|
||||
digit_3 : DIGIT ;
|
||||
digit_4 : DIGIT ;
|
||||
digit_5 : DIGIT ;
|
||||
digit_6 : DIGIT ;
|
||||
digit_7 : DIGIT ;
|
||||
digit_8 : DIGIT ;
|
||||
digit_9 : DIGIT ;
|
||||
digit_0 : DIGIT ;
|
||||
-}
|
||||
-- p. 154 "recursive NPs"
|
||||
|
||||
np_np_pp np pp = AdvNP np (AdvPP pp) ;
|
||||
---- np_np_rel : NP -> REL -> NP ;
|
||||
|
||||
---- np_np_vp_ing : NP -> VP_ing -> NP ; -- these 2 are 1 with \/
|
||||
---- np_np_vp_pass : NP -> VP_pass -> NP ; --- AdjPart : V -> A
|
||||
|
||||
---- np_np_adjp : NP -> ADJP_post -> NP ; --- restr. acc to text
|
||||
|
||||
-- rel_s_rel : S_r -> REL ;
|
||||
rel_s_norm s = UseRCl (PosTP TPresent ASimul) (RelSlash IdRP s) ;
|
||||
--- they cannot be showing their real code here
|
||||
|
||||
adjp_nocomp = UseA ;
|
||||
adjp_np = ComplA2 ;
|
||||
|
||||
np_conj_np x conj y = ConjNP conj (TwoNP x y) ;
|
||||
-- np_np_np : NP -> NP -> NP ; -- Boston Atlanta and Denver
|
||||
|
||||
---- s_vp_inf : VP_inf -> S_norm ; -- "to get from X to Y (is...)"
|
||||
---- np_s_q : S_q -> NP ; -- "what city they stop in (is...)"
|
||||
---- np_s_norm : S_norm -> NP ;
|
||||
---- np_compl_s : COMPLEMENTISER -> S_norm -> NP ; --- they don't tell what CO... is
|
||||
|
||||
---- np_np_code : NP -> CODE -> NP ; --- unnec. source of ambiguity
|
||||
|
||||
|
||||
-- p. 150
|
||||
|
||||
np_det_nbar = DetNP ;
|
||||
np_nbar = MassNP ; --- also pl. "travel arrangements"
|
||||
|
||||
nbar_adjp_nbar = ModAP ;
|
||||
---- nbar_nbar_nbar : NBAR -> NBAR -> NBAR ; --- unnec. ambiguity
|
||||
---- nbar_name_nbar : NP_name -> NBAR -> NBAR ; -- "Delta flights"
|
||||
---- nbar_conj_nbar : NBAR -> CONJ -> NBAR -> NBAR ;
|
||||
|
||||
adjp_most_adj = SuperlADeg ;
|
||||
---- adjp_least_adj : ADJ -> ADJP ;
|
||||
---- ordinal_adjp_superl : ADJP_superlative -> ORDINAL ;
|
||||
|
||||
---- det_the_ordinal : ORDINAL -> DET ;
|
||||
---- det_ordinal : ORDINAL -> DET ; -- common in spoken language
|
||||
---- det_predet_det : PREDET -> DET -> DET ;
|
||||
---- det_numer : NUMBER -> DET ; --- NUMBER in book
|
||||
---- det_less_than : NUMBER -> DET ; --- NUMBER
|
||||
---- det_more_than : NUMBER -> DET ; --- NUMBER
|
||||
---- det_possessive : POSSESSIVE -> DET ;
|
||||
|
||||
|
||||
-- p. 152 time and date NPs not given
|
||||
|
||||
---- np_code : CODE -> NP ;
|
||||
---- np_nbar_code : NBAR -> CODE -> NP ;
|
||||
|
||||
-- : NUMBER -> already -> covered -> above -> CODE
|
||||
-- letter codes added from corpus
|
||||
|
||||
---- np_det : DET_bare -> NP ; -- any, which, one, both, the same, the latest,...
|
||||
|
||||
---- nbar_comp : NBAR_of -> NBAR -> NBAR ; -- only ex (kind | type) of plane
|
||||
|
||||
lincat
|
||||
ADJ = ADeg ;
|
||||
ADJP = AP ;
|
||||
-- ADJP_gaps ;
|
||||
-- ADJP_post ;
|
||||
-- ADJP_superlative ;
|
||||
ADJ_nocomp = A ;
|
||||
ADJ_pp = A2 ;
|
||||
ADVP = Adv ;
|
||||
-- ADVP_gaps ;
|
||||
ADVP_sent = AdC ;
|
||||
---- CODE = String ;
|
||||
---- COMP ; NP ADJP PP
|
||||
-- COMPLEMENTISER ;
|
||||
CONJ = Conj ;
|
||||
DET = Det ;
|
||||
---- DET_bare ;
|
||||
-- DIGIT ;
|
||||
NBAR = CN ;
|
||||
NBAR_of = N2 ;
|
||||
NP = NP ;
|
||||
-- NP_gaps ;
|
||||
-- NP_imp ;
|
||||
NP_name = PN ;
|
||||
NP_norm = NP ;
|
||||
NP_q = IP ;
|
||||
NP_r = RP ;
|
||||
NP_temporal = NP ;
|
||||
NUMBER = Numeral ;
|
||||
ORDINAL = A ;
|
||||
P = Prep ;
|
||||
PHRASE = Phr ;
|
||||
-- POSSESSIVE ;
|
||||
PP = PP ;
|
||||
-- PP_gaps ;
|
||||
---- PREDET ;
|
||||
REL = RS ;
|
||||
S = S ;
|
||||
S_imp = Imp ;
|
||||
S_moved = QS ;
|
||||
S_norm = S ;
|
||||
-- S_norm_inv ;
|
||||
S_normal_gap = Slash ;
|
||||
S_q = QS ;
|
||||
S_r = RS ;
|
||||
UTTERANCE = Phr ;
|
||||
VP = VP ;
|
||||
VP_inf = VPI ;
|
||||
-- VP_ing ;
|
||||
-- VP_pass ;
|
||||
-- VP_to ;
|
||||
-- V_be ;
|
||||
V_ditr = V3 ;
|
||||
V_ditrpp = V3 ;
|
||||
V_ditrq = V2Q ;
|
||||
-- V_do ;
|
||||
V_intr = V ;
|
||||
V_mod = VV ;
|
||||
V_part = V ;
|
||||
V_s = VS ;
|
||||
V_tr = V2 ;
|
||||
V_trq = VQ ;
|
||||
V_vp = VV ;
|
||||
|
||||
|
||||
{-
|
||||
-- lexicon; picked from examples and explanations
|
||||
|
||||
possessive_my : POSSESSIVE ;
|
||||
|
||||
predet_all : PREDET ;
|
||||
predet_only : PREDET ;
|
||||
predet_just : PREDET ;
|
||||
|
||||
nbar_flight : NBAR ;
|
||||
nbar_aircraft : NBAR ;
|
||||
|
||||
name_Delta : NP_name ;
|
||||
name_Dallas : NP_name ;
|
||||
name_Boston : NP_name ;
|
||||
|
||||
conj_and : CONJ ;
|
||||
|
||||
det_any : DET_bare ;
|
||||
|
||||
v_is : V_be ;
|
||||
v_leave : V_intr ;
|
||||
v_have : V_tr ;
|
||||
|
||||
nbar_of_type : NBAR_of ;
|
||||
|
||||
adj_cheap : ADJ ;
|
||||
|
||||
|
||||
--- ad hoc coercions to make cf grammar work
|
||||
|
||||
det_bare : DET_bare -> DET ;
|
||||
-}
|
||||
|
||||
}
|
||||
53
old-examples/TWA.cf
Normal file
53
old-examples/TWA.cf
Normal file
@@ -0,0 +1,53 @@
|
||||
-- example of probabilistic grammar from Jurafsky & Martin p. 449
|
||||
-- AR 1/11/2005
|
||||
|
||||
PredVP. S ::= NP VP ; --# prob 0.80
|
||||
PredAux. S ::= Aux NP VP ; --# prob 0.15
|
||||
JustVP. S ::= VP ; --# prob 0.05
|
||||
|
||||
DetNO. NP ::= Det Nom ; --# prob 0.20
|
||||
PNounNP. NP ::= PNoun ; --# prob 0.35
|
||||
NomNP. NP ::= Nom ; --# prob 0.05
|
||||
ProNP. NP ::= Pro ; --# prob 0.40
|
||||
|
||||
NounNom. Nom ::= Noun ; --# prob 0.75
|
||||
CompNom. Nom ::= Noun Nom ; --# prob 0.20
|
||||
PNounNom. Nom ::= PNoun Nom ; --# prob 0.05
|
||||
|
||||
IntrVP. VP ::= Verb ; --# prob 0.55
|
||||
TrVP. VP ::= Verb NP ; --# prob 0.40
|
||||
DitrVP: VP ::= Verb NP NP ; --# prob 0.05
|
||||
|
||||
that. Det ::= "that" ; --# prob 0.05
|
||||
the. Det ::= "the" ; --# prob 0.80
|
||||
a. Det ::= "a" ; --# prob 0.15
|
||||
|
||||
bookN. Noun ::= "book" ; --# prob 0.10
|
||||
flights. Noun ::= "flights" ; --# prob 0.50
|
||||
meal. Noun ::= "meal" ; --# prob 0.40
|
||||
|
||||
bookV. Verb ::= "book" ; --# prob 0.30
|
||||
includeV. Verb ::= "include" ; --# prob 0.30
|
||||
want. Verb ::= "want" ; --# prob 0.40
|
||||
|
||||
can. Aux ::= "can" ; --# prob 0.40
|
||||
does. Aux ::= "does" ; --# prob 0.30
|
||||
do. Aux ::= "do" ; --# prob 0.30
|
||||
|
||||
TWA. PNoun ::= "TWA" ; --# prob 0.40
|
||||
Denver. PNoun ::= "Denver" ; --# prob 0.60
|
||||
|
||||
you. Pro ::= "you" ; --# prob 0.40
|
||||
I. Pro ::= "I" ; --# prob 0.60
|
||||
|
||||
-- > p -prob "can you book TWA flights"
|
||||
--
|
||||
-- 4.3200000000000016e-7
|
||||
-- 3.7800000000000013e-7
|
||||
-- PredAux can (ProNP you) (TrVP bookV (NomNP (PNounNom TWA (NounNom flights))))
|
||||
-- PredAux can (ProNP you) (DitrVP bookV (PNounNP TWA) (NomNP (NounNom flights)))
|
||||
-- [0.15, 0.40,0.40, 0.40, 0.05, 0.30, 0.35, 0.40, 0.05, 0.75, 0.50]
|
||||
--
|
||||
-- J&M have different figures, but they seem to be wrong. For
|
||||
-- instance, their products have 12 terms although the trees have only
|
||||
-- 11 constructors.
|
||||
12
old-examples/animal/Animals.gf
Normal file
12
old-examples/animal/Animals.gf
Normal file
@@ -0,0 +1,12 @@
|
||||
-- The Question grammar specialized to animals.
|
||||
|
||||
abstract Animals = Questions ** {
|
||||
|
||||
flags startcat=Phrase ;
|
||||
|
||||
fun
|
||||
-- a lexicon of animals and actions among them
|
||||
Dog, Cat, Mouse, Lion, Zebra : Entity ;
|
||||
Chase, Eat, See : Action ;
|
||||
}
|
||||
|
||||
16
old-examples/animal/AnimalsEng.gf
Normal file
16
old-examples/animal/AnimalsEng.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
--# -path=.:present:prelude
|
||||
--resource/english:resource/abstract:resource/../prelude
|
||||
|
||||
concrete AnimalsEng of Animals = QuestionsEng **
|
||||
open LangEng, ParadigmsEng, IrregEng in {
|
||||
|
||||
lin
|
||||
Dog = regN "dog" ;
|
||||
Cat = regN "cat" ;
|
||||
Mouse = mk2N "mouse" "mice" ;
|
||||
Lion = regN "lion" ;
|
||||
Zebra = regN "zebra" ;
|
||||
Chase = dirV2 (regV "chase") ;
|
||||
Eat = dirV2 eat_V ;
|
||||
See = dirV2 see_V ;
|
||||
}
|
||||
15
old-examples/animal/AnimalsFre.gf
Normal file
15
old-examples/animal/AnimalsFre.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete AnimalsFre of Animals = QuestionsFre **
|
||||
open LangFre, ParadigmsFre, IrregFre in {
|
||||
|
||||
lin
|
||||
Dog = regN "chien" ;
|
||||
Cat = regN "chat" ;
|
||||
Mouse = regGenN "souris" feminine ;
|
||||
Lion = regN "lion" ;
|
||||
Zebra = regGenN "zèbre" masculine ;
|
||||
Chase = dirV2 (regV "chasser") ;
|
||||
Eat = dirV2 (regV "manger") ;
|
||||
See = voir_V2 ;
|
||||
}
|
||||
15
old-examples/animal/AnimalsSwe.gf
Normal file
15
old-examples/animal/AnimalsSwe.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete AnimalsSwe of Animals = QuestionsSwe **
|
||||
open LangSwe, ParadigmsSwe, IrregSwe in {
|
||||
|
||||
lin
|
||||
Dog = regN "hund" ;
|
||||
Cat = mk2N "katt" "katter" ;
|
||||
Mouse = mkN "mus" "musen" "möss" "mössen" ;
|
||||
Lion = mk2N "lejon" "lejon" ;
|
||||
Zebra = regN "zebra" ;
|
||||
Chase = dirV2 (regV "jaga") ;
|
||||
Eat = dirV2 äta_V ;
|
||||
See = dirV2 se_V ;
|
||||
}
|
||||
10
old-examples/animal/Questions.gf
Normal file
10
old-examples/animal/Questions.gf
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Simple questions and answers, in present tense.
|
||||
|
||||
abstract Questions = {
|
||||
cat
|
||||
Phrase ; Entity ; Action ;
|
||||
fun
|
||||
Who : Action -> Entity -> Phrase ; -- who chases X
|
||||
Whom : Entity -> Action -> Phrase ; -- whom does X chase
|
||||
Answer : Entity -> Action -> Entity -> Phrase ; -- X chases Y
|
||||
}
|
||||
2
old-examples/animal/QuestionsEng.gf
Normal file
2
old-examples/animal/QuestionsEng.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete QuestionsEng of Questions = QuestionsI with
|
||||
(Lang = LangEng) ;
|
||||
2
old-examples/animal/QuestionsFre.gf
Normal file
2
old-examples/animal/QuestionsFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete QuestionsFre of Questions = QuestionsI with
|
||||
(Lang = LangFre) ;
|
||||
21
old-examples/animal/QuestionsI.gf
Normal file
21
old-examples/animal/QuestionsI.gf
Normal file
@@ -0,0 +1,21 @@
|
||||
-- File generated by GF from ./QuestionsI.gfe
|
||||
incomplete concrete QuestionsI of Questions = open Lang in {
|
||||
lincat Action = V2 ;
|
||||
lin Answer = \woman_N -> \love_V2 -> \man_N -> PhrUtt NoPConj (UttNP (DetCN (DetSg (SgQuant DefArt)NoOrd)(ApposCN (ApposCN (UseN woman_N)(DetCN (DetPl (PlQuant IndefArt)NoNum NoOrd)(UseN love_N)))(DetCN (DetPl (PlQuant IndefArt)NoNum NoOrd)(UseN man_N)))))NoVoc ;
|
||||
lincat Entity = N ;
|
||||
lincat Phrase = Phr ;
|
||||
lin Who = \love_V2 -> \man_N -> PhrUtt NoPConj (UttAdv (AdvSC (EmbedQS (UseQCl TPres ASimul PPos (QuestVP whoSg_IP (ComplV2 love_V2 (DetCN (DetPl (PlQuant IndefArt)NoNum NoOrd)(UseN man_N)))))))) NoVoc ;
|
||||
lin Whom = \man_N -> \love_V2 -> PhrUtt NoPConj (UttQS (UseQCl TPres ASimul PPos (QuestSlash whoPl_IP (SlashV2 (DetCN (DetSg (SgQuant DefArt)NoOrd)(UseN man_N)) love_V2)))) NoVoc ;
|
||||
}
|
||||
{-
|
||||
AMBIGUOUS in Who
|
||||
who loves men
|
||||
PhrUtt NoPConj (UttQS (UseQCl TPres ASimul PPos (QuestVP whoSg_IP (ComplV2 love_V2 (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN man_N)))))) NoVoc
|
||||
AMBIGUOUS in Whom
|
||||
whom does the man love
|
||||
PhrUtt NoPConj (UttQS (UseQCl TPres ASimul PPos (QuestSlash whoSg_IP (SlashV2 (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN man_N)) love_V2)))) NoVoc
|
||||
AMBIGUOUS in Answer
|
||||
the woman loves men
|
||||
PhrUtt NoPConj (UttNP (DetCN (DetSg (SgQuant DefArt) NoOrd) (ApposCN (UseN woman_N) (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (ApposCN (UseN love_N) (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN man_N))))))) NoVoc
|
||||
PhrUtt NoPConj (UttS (UseCl TPres ASimul PPos (PredVP (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN woman_N)) (ComplV2 love_V2 (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN man_N)))))) NoVoc
|
||||
-}
|
||||
18
old-examples/animal/QuestionsI.gfe
Normal file
18
old-examples/animal/QuestionsI.gfe
Normal file
@@ -0,0 +1,18 @@
|
||||
--# -resource=../../lib/present/LangEng.gfc
|
||||
--# -path=.:present:prelude
|
||||
|
||||
-- to compile: gf -examples QuestionsI.gfe
|
||||
-- or use directly gf <mkAnimals.gfs
|
||||
|
||||
incomplete concrete QuestionsI of Questions = open Lang in {
|
||||
lincat
|
||||
Phrase = Phr ;
|
||||
Entity = N ;
|
||||
Action = V2 ;
|
||||
|
||||
lin
|
||||
Who love_V2 man_N = in Phr "who loves men" ;
|
||||
Whom man_N love_V2 = in Phr "whom does the man love" ;
|
||||
Answer woman_N love_V2 man_N = in Phr "the woman loves men" ;
|
||||
|
||||
}
|
||||
2
old-examples/animal/QuestionsSwe.gf
Normal file
2
old-examples/animal/QuestionsSwe.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete QuestionsSwe of Questions = QuestionsI with
|
||||
(Lang = LangSwe) ;
|
||||
4
old-examples/animal/mkAnimals.gfs
Normal file
4
old-examples/animal/mkAnimals.gfs
Normal file
@@ -0,0 +1,4 @@
|
||||
i -ex AnimalsEng.gf ;; s
|
||||
i AnimalsFre.gf ;; s
|
||||
i AnimalsSwe.gf ;; s
|
||||
pm | wf animals.gfcm
|
||||
8
old-examples/big/BigEnglish.gf
Normal file
8
old-examples/big/BigEnglish.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
concrete BigEnglish of BigEnglishAbs =
|
||||
GrammarEng,
|
||||
--- IrregEng,
|
||||
ExtraEng,
|
||||
BigLexEng
|
||||
** {} ;
|
||||
8
old-examples/big/BigEnglishAbs.gf
Normal file
8
old-examples/big/BigEnglishAbs.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
abstract BigEnglishAbs =
|
||||
Grammar,
|
||||
--- IrregEngAbs,
|
||||
ExtraEngAbs,
|
||||
BigLexEngAbs
|
||||
** {} ;
|
||||
5856
old-examples/big/BigLexEng.gf
Normal file
5856
old-examples/big/BigLexEng.gf
Normal file
File diff suppressed because it is too large
Load Diff
5844
old-examples/big/BigLexEngAbs.gf
Normal file
5844
old-examples/big/BigLexEngAbs.gf
Normal file
File diff suppressed because it is too large
Load Diff
11809
old-examples/big/BigLexSwe.gf
Normal file
11809
old-examples/big/BigLexSwe.gf
Normal file
File diff suppressed because it is too large
Load Diff
11809
old-examples/big/BigLexSweAbs.gf
Normal file
11809
old-examples/big/BigLexSweAbs.gf
Normal file
File diff suppressed because it is too large
Load Diff
7
old-examples/big/BigSwedish.gf
Normal file
7
old-examples/big/BigSwedish.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
concrete BigSwedish of BigSwedishAbs =
|
||||
GrammarSwe,
|
||||
ExtraSwe,
|
||||
BigLexSwe
|
||||
** {} ;
|
||||
5
old-examples/big/BigSwedishAbs.gf
Normal file
5
old-examples/big/BigSwedishAbs.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
abstract BigSwedishAbs =
|
||||
Grammar,
|
||||
ExtraSweAbs,
|
||||
BigLexSweAbs
|
||||
** {} ;
|
||||
20
old-examples/big/MAP/Lisp.cf
Normal file
20
old-examples/big/MAP/Lisp.cf
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Lisp as used in the Alvey grammar
|
||||
|
||||
entrypoints Prog, Exp ;
|
||||
|
||||
Pro. Prog ::= [Exp] ;
|
||||
|
||||
App. Exp ::= "(" [Exp] ")" ;
|
||||
At. Exp ::= Id ;
|
||||
IdPlus. Exp ::= IdPl ;
|
||||
IdStr. Exp ::= String ;
|
||||
Plus. Exp ::= "+" ;
|
||||
Minus. Exp ::= "-" ;
|
||||
Num. Exp ::= Integer ;
|
||||
|
||||
token IdPl ('+' letter (letter | digit | '-' | '_')*) ;
|
||||
token Id (letter (letter | digit | '-' | '_')*) ;
|
||||
|
||||
terminator Exp "" ;
|
||||
|
||||
comment ";;" ;
|
||||
20
old-examples/big/MAP/Makefile
Normal file
20
old-examples/big/MAP/Makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
all:
|
||||
make big
|
||||
make gf
|
||||
mv Big*.gf ..
|
||||
gf:
|
||||
./mkBig
|
||||
|
||||
big:
|
||||
ghc --make MkBig -o mkBig
|
||||
parser:
|
||||
happy -gca ParLisp.y
|
||||
alex -g LexLisp.x
|
||||
latex DocLisp.tex; dvips DocLisp.dvi -o DocLisp.ps
|
||||
ghc --make TestLisp.hs -o TestLisp
|
||||
clean:
|
||||
-rm -f *.log *.aux *.hi *.o *.dvi
|
||||
-rm -f DocLisp.ps
|
||||
distclean: clean
|
||||
-rm -f DocLisp.* LexLisp.* ParLisp.* LayoutLisp.* SkelLisp.* PrintLisp.* TestLisp.* AbsLisp.* TestLisp ErrM.* SharedString.* Lisp.dtd XMLLisp.* Makefile*
|
||||
|
||||
42
old-examples/big/MAP/MkBig.hs
Normal file
42
old-examples/big/MAP/MkBig.hs
Normal file
@@ -0,0 +1,42 @@
|
||||
module Main where
|
||||
|
||||
import TransBig
|
||||
|
||||
import IO ( stdin, hGetContents )
|
||||
import System ( getArgs, getProgName )
|
||||
|
||||
import LexLisp
|
||||
import ParLisp
|
||||
import SkelLisp
|
||||
import PrintLisp
|
||||
import AbsLisp
|
||||
import ErrM
|
||||
|
||||
type ParseFun a = [Token] -> Err a
|
||||
|
||||
myLLexer = myLexer
|
||||
|
||||
type Verbosity = Int
|
||||
|
||||
putStrV :: Verbosity -> String -> IO ()
|
||||
putStrV v s = if v > 1 then putStrLn s else return ()
|
||||
|
||||
runFile :: Verbosity -> ParseFun Prog -> FilePath -> IO ()
|
||||
runFile v p f = putStrLn f >> readFile f >>= run v p
|
||||
|
||||
run :: Verbosity -> ParseFun Prog -> String -> IO ()
|
||||
run v p s = let ts = myLLexer s in case p ts of
|
||||
Bad s -> do putStrLn "\nParse Failed...\n"
|
||||
putStrV v "Tokens:"
|
||||
putStrV v $ show ts
|
||||
putStrLn s
|
||||
Ok tree -> do putStrLn "\nParse Successful!"
|
||||
transTree tree
|
||||
|
||||
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
runFile 0 pProg infile
|
||||
|
||||
infile = "bigwordlist.en"
|
||||
148
old-examples/big/MAP/TransBig.hs
Normal file
148
old-examples/big/MAP/TransBig.hs
Normal file
@@ -0,0 +1,148 @@
|
||||
module TransBig where
|
||||
|
||||
import AbsLisp
|
||||
import PrintLisp
|
||||
|
||||
import Char
|
||||
|
||||
abstrgf = "BigLexEngAbs.gf"
|
||||
concrgf = "BigLexEng.gf"
|
||||
|
||||
transTree :: Prog -> IO ()
|
||||
transTree (Pro ts) = do
|
||||
writeFile abstrgf "abstract BigLexEngAbs = Cat **{\n"
|
||||
writeFile concrgf
|
||||
"concrete BigLexEng of BigLexEngAbs = CatEng ** open ParadigmsEng, IrregEng in {\n"
|
||||
mapM_ transRule ts
|
||||
appendFile abstrgf "}\n"
|
||||
addOpers
|
||||
appendFile concrgf "}\n"
|
||||
|
||||
transRule :: Exp -> IO ()
|
||||
transRule e = case e of
|
||||
App (At f : _ : cat : _) | not (discardCat cat) -> catRule (hyph f) cat
|
||||
_ -> notConsidered $ "--! " ++ printTree e
|
||||
where
|
||||
hyph (Id f) = Id (map unhyph f)
|
||||
unhyph '-' = '_'
|
||||
unhyph c = c
|
||||
|
||||
discardCat (App cs) = any (flip elem cs) discarded where
|
||||
discarded = [
|
||||
App [At (Id "AUX"),Plus],
|
||||
App [At (Id "PAST"),Plus],
|
||||
App [At (Id "QUA"),Plus],
|
||||
App [At (Id "VFORM"),At (Id "EN")],
|
||||
App [At (Id "AFORM"),At (Id "ER")],
|
||||
App [At (Id "AFORM"),At (Id "EST")]
|
||||
]
|
||||
discardCat _ = False
|
||||
|
||||
|
||||
catRule :: Id -> Exp -> IO ()
|
||||
catRule (Id f) e = case cleanCat e of
|
||||
App (App [At (Id "V"), Minus] : App [At (Id "N"), Plus] : more) -> case more of
|
||||
[App [At (Id "SUBCAT"),sub]] ->
|
||||
let prep = prepSub sub in
|
||||
putRule (f ++ "_N2" ++ prep) "N2" "prepN2" [show f, show prep]
|
||||
[App [At (Id "PLU"),Minus],App [At (Id "SUBCAT"),sub]] ->
|
||||
let prep = prepSub sub in
|
||||
putRule (f ++ "_N2" ++ prep) "N2" "irregN2" [show f, show f, show prep]
|
||||
[App [At (Id "PLU"),Minus]] ->
|
||||
putRule (f ++ "_N") "N" "irregN" [show f, show f] --- could find the forms
|
||||
[App [At (Id "PLU"),_]] ->
|
||||
notConsidered $ "--! " ++ f ++ " " ++ printTree e
|
||||
(App [At (Id "PRO"),Plus]:_) ->
|
||||
notConsidered $ "--! " ++ f ++ " " ++ printTree e
|
||||
[App [At (Id "COUNT"),Minus]] ->
|
||||
putRule (f ++ "_N") "N" "massN" [show f]
|
||||
[App [At (Id "PN"),Plus]] ->
|
||||
putRule (f ++ "_PN") "PN" "regPN" [show f]
|
||||
[] ->
|
||||
putRule (f ++ "_N") "N" "regN" [show f]
|
||||
_ -> putStrLn $ "---- " ++ f ++ " " ++ printTree e
|
||||
App (App [At (Id "V"), Plus] : App [At (Id "N"), Plus] : more) -> case more of
|
||||
(App [At (Id "ADV"), Plus]:_) ->
|
||||
putRule (f ++ "_Adv") "Adv" "mkAdv" [show f]
|
||||
[App [At (Id "SUBCAT"),sub]] ->
|
||||
let prep = prepSub sub in
|
||||
putRule (f ++ "_A2" ++ prep) "A2" "regA2" [show f,show prep]
|
||||
[App [At (Id "AFORM"),At (Id "NONE")],App [At (Id "SUBCAT"),sub]] ->
|
||||
let prep = prepSub sub in
|
||||
putRule (f ++ "_A2" ++ prep) "A2" "longA2" [show f,show prep]
|
||||
[App [At (Id "SUBCAT"),sub],App [At (Id "AFORM"),At (Id "NONE")]] ->
|
||||
let prep = prepSub sub in
|
||||
putRule (f ++ "_A2" ++ prep) "A2" "longA2" [show f,show prep]
|
||||
(App [At (Id "AFORM"),At (Id "NONE")]:_) ->
|
||||
putRule (f ++ "_A") "A" "longA" [show f]
|
||||
[] ->
|
||||
putRule (f ++ "_A") "A" "regA" [show f]
|
||||
_ -> putStrLn $ "---- " ++ f ++ " " ++ printTree e
|
||||
App (App [At (Id "V"), Plus] : App [At (Id "N"), Minus] : more) -> case more of
|
||||
App [At (Id "SUBCAT"),At (Id "NP_NP")]:form ->
|
||||
putRule (f ++ "_V3") "V3" "dirdirV3" [verbForm form f]
|
||||
App [At (Id "SUBCAT"),At (Id ('N':'P':'_':sub))]:form ->
|
||||
let prep = map toLower (drop 2 sub) in
|
||||
putRule (f ++ "_V3" ++ prep) "V3" "dirprepV3" [verbForm form f, show prep]
|
||||
App [At (Id "SUBCAT"),At (Id "SFIN")]:form ->
|
||||
putRule (f ++ "_VS") "VS" "mkVS" [verbForm form f]
|
||||
App [At (Id "SUBCAT"),At (Id "SE1")]:form ->
|
||||
putRule (f ++ "_VV") "VV" "mkVV" [verbForm form f]
|
||||
App [At (Id "SUBCAT"),sub]:form ->
|
||||
let prep = prepSub sub in
|
||||
putRule (f ++ "_V2" ++ prep) "V2" "prepV2" [verbForm form f, show prep]
|
||||
form | length form < 2 ->
|
||||
putRule (f ++ "_V") "V" "useV" [verbForm form f]
|
||||
_ -> putStrLn $ "---- " ++ f ++ " " ++ printTree e
|
||||
App (App [At (Id "V"), Minus] : App [At (Id "N"), Minus] : more) -> case more of
|
||||
[App [At (Id "SUBCAT"), At (Id "BARE_S")]] ->
|
||||
putRule (f ++ "_Subj") "Subj" "mkSubj" [show f]
|
||||
[App [At (Id "SUBCAT"), At (Id "NP")]] ->
|
||||
putRule (f ++ "_Prep") "Prep" "mkPrep" [show f]
|
||||
App [At (Id "PRO"), Plus] : _ ->
|
||||
putRule (f ++ "_Adv") "Adv" "proAdv" [show f]
|
||||
_ -> putStrLn $ "---- " ++ f ++ " " ++ printTree e
|
||||
App (App [At (Id "PRO"), Plus] :
|
||||
App [At (Id "V"), Minus] : App [At (Id "N"), Minus] :_) ->
|
||||
putRule (f ++ "_Adv") "Adv" "proAdv" [show f]
|
||||
_ -> notConsidered $ "--! " ++ f ++ " " ++ printTree e
|
||||
|
||||
cleanCat (App es) = App $ filter (not . irrelevant) es where
|
||||
irrelevant c = elem c [
|
||||
App [At (Id "SUBCAT"), At (Id "NULL")],
|
||||
App [At (Id "AT"), Minus], --- ?
|
||||
App [At (Id "LAT"), Minus],
|
||||
App [At (Id "LAT"), Plus]
|
||||
]
|
||||
cleanCat c = c
|
||||
|
||||
notConsidered r = return () --- putStrLn
|
||||
|
||||
putRule :: String -> String -> String -> [String] -> IO ()
|
||||
putRule fun cat oper args = do
|
||||
appendFile abstrgf $ unwords ["fun",fun,":",cat,";\n"]
|
||||
appendFile concrgf $ unwords $ ["lin",fun,"=",oper] ++ args ++ [";\n"]
|
||||
|
||||
prepSub :: Exp -> String
|
||||
prepSub s = case s of
|
||||
At (Id ('P':'P':cs)) -> map toLower cs
|
||||
_ -> ""
|
||||
|
||||
verbForm form f
|
||||
| elem (App [At (Id "REG"),Minus]) form = "IrregEng." ++ f ++ "_V"
|
||||
| otherwise = "(regV " ++ show f ++ ")"
|
||||
|
||||
addOpers = mapM_ (appendFile concrgf) [
|
||||
"oper proAdv : Str -> Adv = \\s -> mkAdv s ;\n",
|
||||
"oper useV : V -> V = \\v -> v ;\n",
|
||||
"oper massN : Str -> N = \\s -> regN s ;\n",
|
||||
"longA : Str -> A = \\s -> compoundADeg (regA s) ;\n",
|
||||
"mkSubj : Str -> Subj = \\s -> {s = s ; lock_Subj = <>} ;\n",
|
||||
"irregN : Str -> Str -> N = \x,y -> mk2N x y ;\",
|
||||
"irregN2 : Str -> Str -> Str -> N2 = \x,y,p -> mkN2 (irregN x y) (mkPrep p) ;\n",
|
||||
"longA2 : Str -> Str -> A2 = \s,p -> mkA2 (compoundADeg (regA s)) (mkPrep p) ;\n",
|
||||
"regA2 : Str -> Str -> A2 = \s,p -> mkA2 (regA s) (mkPrep p) ;\n",
|
||||
"prepV2 : V -> Str -> V2 = \s,p -> mkV2 s (mkPrep p) ;\n",
|
||||
"prepN2 : Str -> Str -> N2 = \s,p -> mkN2 (regN s) (mkPrep p) ;\n",
|
||||
"dirprepV3 : V -> Str -> V3 = \s,p -> dirV3 s (mkPrep p) ;\n"
|
||||
]
|
||||
6723
old-examples/big/MAP/bigwordlist.en
Normal file
6723
old-examples/big/MAP/bigwordlist.en
Normal file
File diff suppressed because it is too large
Load Diff
14
old-examples/big/MAP/log.txt
Normal file
14
old-examples/big/MAP/log.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
7/11/2006
|
||||
|
||||
14.10 write Lisp.cf
|
||||
|
||||
14.20 able to parse biglex
|
||||
|
||||
14.30 MkBig main program compiles
|
||||
|
||||
16.25 writing 5842 lemmas in files
|
||||
|
||||
17.15 compiles fine but get conflicts with Irreg and Structural
|
||||
|
||||
17.37 compiles fine in BigShallowEng, but not BigEnglish, because the latter
|
||||
imports too much conflicting lexicon to remove manually
|
||||
48
old-examples/big/MkDict.hs
Normal file
48
old-examples/big/MkDict.hs
Normal file
@@ -0,0 +1,48 @@
|
||||
import Char
|
||||
|
||||
infile = "mywordlist1"
|
||||
|
||||
main = do
|
||||
s <- readFile infile
|
||||
mapM_ (putStrLn . mkOne) $ lines s
|
||||
|
||||
mkOne s = case words s of
|
||||
"--":_ -> ""
|
||||
('(':_):w:cat:ws -> unwords $ mkCatf (nopar cat) (more ws) w
|
||||
_ -> "-- " ++ s
|
||||
where
|
||||
more ws = case ws of
|
||||
_ | elem "(REG" ws -> "irreg"
|
||||
_ -> "reg"
|
||||
nopar = filter (flip notElem "()")
|
||||
mkCatf c r w = case c of
|
||||
"Noun" -> ["N","regN",w]
|
||||
"PRT" -> ["Adv","mkAdv",w] ----
|
||||
"TITLE" -> ["N","regN",w] ----
|
||||
"Adject" -> ["A","regA",w]
|
||||
"AdjInf" -> ["A","regA",w] ----
|
||||
"AdjInf_LONG" -> ["A","longA",w] ----
|
||||
"AdjPrd" -> ["A","regA",w] ----
|
||||
"AdjPrd_LONG" -> ["A","longA",w] ----
|
||||
"Adject_LONG" -> ["A","longA",w]
|
||||
"Verb" | r == "irreg" -> []
|
||||
"Verb" -> ["V","regV",w]
|
||||
"V2" | r == "irreg" -> ["V2","irreg", w, "_V"]
|
||||
"V2" -> ["V2","regV2", w]
|
||||
"PNoun" -> ["PN","regPN",toUpper (head w): tail w]
|
||||
'V':'2':'_':prep | r == "irreg" ->
|
||||
let p = map toLower prep in ["V2","mkV2_"++p, w, "_V", p]
|
||||
x:'2':'_':prep ->
|
||||
let p = map toLower prep in [[x]++"2","prep" ++[x]++"2"++p, w, p]
|
||||
"V3_NP" | r == "irreg" -> ["V3","irreg", w, "_V"]
|
||||
"V3_NP" -> ["V3","regV3", w]
|
||||
'V':'3':'_':'P':'P':prep | r == "irreg" ->
|
||||
let p = map toLower prep in ["V3","mkV3_"++p, w, "_V", p]
|
||||
'V':'3':'_':'P':'P':prep ->
|
||||
let p = map toLower prep in ["V3","mkV3_"++p, w, p]
|
||||
'V':'3':'_':'S':_ | r == "irreg" -> ["V2","mkV2_S", w, "_V"] ----
|
||||
'V':'3':'_':'S':_ -> ["V2","mkV2_S", w] ----
|
||||
'V':'3':'_':_ -> ["V3","mkV3", w] ----
|
||||
|
||||
_ -> [c,"mk" ++ c, w]
|
||||
|
||||
29
old-examples/big/MoreParadigmsSwe.gf
Normal file
29
old-examples/big/MoreParadigmsSwe.gf
Normal file
@@ -0,0 +1,29 @@
|
||||
resource MoreParadigmsSwe = ParadigmsSwe ** open Prelude, CatSwe in {
|
||||
|
||||
oper
|
||||
s2 : Str -> N = decl2Noun ;
|
||||
s3 : Str -> N = decl3Noun ;
|
||||
s4 : Str -> N = decl4Noun ;
|
||||
s5 : Str -> N = decl5Noun ;
|
||||
|
||||
v2 : Str -> V = conj2 ;
|
||||
v3 : Str -> V = conj3 ;
|
||||
|
||||
aAbstract : Str -> A = \a -> mk2A a a ;
|
||||
aFager : Str -> A = \a -> mk3A a (a + "t") (Predef.tk 2 a + "a") ;
|
||||
aGrund : Str -> A = regA ; -- yes
|
||||
aKorkad : Str -> A = \a -> mk3A a (init a + "t") (a + "e") ;
|
||||
aVaken : Str -> A = \a -> mk3A a (init a + "t") (Predef.tk 2 a + "a") ;
|
||||
aVid : Str -> A = regA ; -- yes
|
||||
|
||||
---- to do
|
||||
sParti : Str -> N = regN ;
|
||||
sPapper : Str -> N = regN ;
|
||||
sKikare : Str -> N = regN ;
|
||||
sProgram : Str -> N = regN ;
|
||||
sNyckel : Str -> N = regN ;
|
||||
sMuseum : Str -> N = regN ;
|
||||
sKam : Str -> N = regN ;
|
||||
|
||||
|
||||
}
|
||||
9
old-examples/big/README
Normal file
9
old-examples/big/README
Normal file
@@ -0,0 +1,9 @@
|
||||
BigEngLex.gf adapted from a word list by Alan Black & al.
|
||||
http://www.cs.cmu.edu/~awb/pub/map/MAP3.1.tar.gz
|
||||
Not to be used for military purposes.
|
||||
|
||||
Translation to GF has introduced some errors, e.g. in
|
||||
inflection, which have not yet been corrected.
|
||||
|
||||
AR 2006.
|
||||
|
||||
28
old-examples/big/extract2gf.hs
Normal file
28
old-examples/big/extract2gf.hs
Normal file
@@ -0,0 +1,28 @@
|
||||
import System
|
||||
import Char
|
||||
|
||||
-- usage: extract2gf <lang> <extracted>
|
||||
|
||||
main = do
|
||||
la:f:_ <- getArgs
|
||||
let cnc = f ++ ".gf"
|
||||
let abs = f ++ "Abs.gf"
|
||||
s <- readFile f
|
||||
writeFile abs $ "abstract " ++ f ++ "Abs = Cat ** {\n"
|
||||
writeFile cnc $ "concrete " ++ f ++ " of " ++ f ++
|
||||
"Abs = Cat" ++ la ++ " ** open Paradigms" ++ la ++ " in {\n"
|
||||
mapM_ (mkOne abs cnc . words) $ filter (not . empty) $ lines s
|
||||
appendFile abs "}"
|
||||
appendFile cnc "}"
|
||||
|
||||
-- format: cat oper args
|
||||
|
||||
mkOne abs cnc (cat : oper : args@(a1:_)) = do
|
||||
appendFile abs $ " fun " ++ fun ++ " : " ++ cat ++ " ;\n"
|
||||
appendFile cnc $ " lin " ++ fun ++ " = " ++ lin ++ " ;\n"
|
||||
where
|
||||
fun = a1 ++ "_" ++ cat ++ "_" ++ oper
|
||||
lin = unwords $ oper:["\"" ++ s ++ "\"" | s <- args]
|
||||
mkOne _ _ ws = putStrLn $ unwords ws
|
||||
|
||||
empty s = all isSpace s || take 2 s == "--"
|
||||
6056
old-examples/big/mywordlist1
Normal file
6056
old-examples/big/mywordlist1
Normal file
File diff suppressed because it is too large
Load Diff
49
old-examples/big/postedit.hs
Normal file
49
old-examples/big/postedit.hs
Normal file
@@ -0,0 +1,49 @@
|
||||
import Char
|
||||
import System
|
||||
|
||||
infile = "BigLexEng.gf"
|
||||
tmp = "tm"
|
||||
|
||||
main = do
|
||||
writeFile tmp ""
|
||||
s <- readFile infile
|
||||
mapM_ (appendFile tmp . mkTwo) $ lines s --- $ chop s
|
||||
system "cp BigLexEng.gf bak"
|
||||
system "mv tm BigLexEng.gf"
|
||||
|
||||
chop s = case s of
|
||||
';':cs -> ";\n"++chop cs
|
||||
c:cs -> c:chop cs
|
||||
_ -> s
|
||||
|
||||
mkTwo s = case words s of
|
||||
lin:tie:eq:"dirV3":tie_V:ws ->
|
||||
let prep = case reverse (takeWhile (/='_') (reverse tie)) of
|
||||
"loc" -> "in" ---
|
||||
p -> p
|
||||
in unwords $
|
||||
[lin,tie,eq,"dirV3",show (take (length tie_V - 2) tie_V),show prep] ++
|
||||
ws ++ ["\n"]
|
||||
_ -> s ++ "\n"
|
||||
|
||||
mkOne s = case words s of
|
||||
lin:a2:eq:pa2:ws | take 6 pa2 == "prepA2" ->
|
||||
unwords $ [lin,a2,eq,"prepA2"] ++ ws ++ ["\n"]
|
||||
lin:a2:eq:pa2:ws | take 6 pa2 == "prepV2" ->
|
||||
unwords $ [lin,a2,eq,"prepV2"] ++ ws ++ ["\n"]
|
||||
lin:v2:eq:"mkV2":v:_:ws ->
|
||||
unwords $ [lin,v2,eq,"mkV2",(read v ++ "_V")] ++ ws ++ ["\n"]
|
||||
lin:v2:eq:"mkV3":v:_:ws ->
|
||||
unwords $ [lin,v2,eq,"dirV3",(read v ++ "_V")] ++ ws ++ ["\n"]
|
||||
lin:a2:eq:pa2:ws | take 4 pa2 == "mkV2" ->
|
||||
unwords $ [lin,a2,eq,"mkV2"] ++ ws ++ ["\n"]
|
||||
lin:a2:eq:pa2:ws | take 6 pa2 == "prepN2" ->
|
||||
unwords $ [lin,a2,eq,"prepN2"] ++ ws ++ ["\n"]
|
||||
lin:a2:eq:pa2:ws | take 4 pa2 == "mkV3" ->
|
||||
unwords $ [lin,a2,eq,"mkV3"] ++ ws ++ ["\n"]
|
||||
|
||||
lin:v2:eq:"irreg":v:_:ws ->
|
||||
unwords $ [lin,v2,eq,"dirV2",(read v ++ "_V")] ++ ws ++ ["\n"]
|
||||
|
||||
|
||||
_ -> s ++ "\n"
|
||||
36
old-examples/bronzeage/Bronzeage.gf
Normal file
36
old-examples/bronzeage/Bronzeage.gf
Normal file
@@ -0,0 +1,36 @@
|
||||
abstract Bronzeage = Cat, Swadesh ** {
|
||||
|
||||
cat
|
||||
Sent ; MassCN ;
|
||||
|
||||
fun
|
||||
PhrPos : Sent -> Phr ;
|
||||
PhrNeg : Sent -> Phr ;
|
||||
PhrQuest : Sent -> Phr ;
|
||||
PhrImp : Imp -> Phr ;
|
||||
PhrImpNeg : Imp -> Phr ;
|
||||
|
||||
SentV : V -> NP -> Sent ;
|
||||
SentV2 : V2 -> NP -> NP -> Sent ;
|
||||
SentV2Mass : V2 -> NP -> MassCN -> Sent ;
|
||||
SentV3 : V3 -> NP -> NP -> NP -> Sent ;
|
||||
SentA : A -> NP -> Sent ;
|
||||
SentNP : NP -> NP -> Sent ;
|
||||
|
||||
SentAdvV : V -> NP -> Adv -> Sent ;
|
||||
SentAdvV2 : V2 -> NP -> NP -> Adv -> Sent ;
|
||||
|
||||
ImpV : V -> Imp ;
|
||||
ImpV2 : V2 -> NP -> Imp ;
|
||||
|
||||
UsePron : Pron -> NP ;
|
||||
DetCN : Det -> CN -> NP ;
|
||||
NumCN : Num -> CN -> NP ;
|
||||
|
||||
UseN : N -> CN ;
|
||||
ModCN : A -> CN -> CN ;
|
||||
|
||||
UseMassN : MassN -> MassCN ;
|
||||
ModMass : A -> MassCN -> MassCN ;
|
||||
|
||||
}
|
||||
5
old-examples/bronzeage/BronzeageAra.gf
Normal file
5
old-examples/bronzeage/BronzeageAra.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageAra of Bronzeage = CatAra, SwadeshAra ** BronzeageI with
|
||||
(Lang = LangAra) ;
|
||||
|
||||
7
old-examples/bronzeage/BronzeageDan.gf
Normal file
7
old-examples/bronzeage/BronzeageDan.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageDan of Bronzeage = CatDan, SwadeshDan ** BronzeageI with
|
||||
(Lang = LangDan) ** {
|
||||
flags language = da_DK;
|
||||
}
|
||||
|
||||
7
old-examples/bronzeage/BronzeageEng.gf
Normal file
7
old-examples/bronzeage/BronzeageEng.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageEng of Bronzeage = CatEng, SwadeshEng ** BronzeageI with
|
||||
(Lang = LangEng) ** {
|
||||
flags language = en_US;
|
||||
}
|
||||
|
||||
8
old-examples/bronzeage/BronzeageFin.gf
Normal file
8
old-examples/bronzeage/BronzeageFin.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageFin of Bronzeage = CatFin, SwadeshFin ** BronzeageI with
|
||||
(Lang = LangFin) ** {
|
||||
flags language = fi_FI;
|
||||
}
|
||||
|
||||
|
||||
5
old-examples/bronzeage/BronzeageFre.gf
Normal file
5
old-examples/bronzeage/BronzeageFre.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageFre of Bronzeage = CatFre, SwadeshFre ** BronzeageI with
|
||||
(Lang = LangFre) ;
|
||||
|
||||
8
old-examples/bronzeage/BronzeageGer.gf
Normal file
8
old-examples/bronzeage/BronzeageGer.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageGer of Bronzeage = CatGer, SwadeshGer ** BronzeageI with
|
||||
(Lang = LangGer) ** {
|
||||
flags language = de_DE;
|
||||
}
|
||||
|
||||
|
||||
59
old-examples/bronzeage/BronzeageI.gf
Normal file
59
old-examples/bronzeage/BronzeageI.gf
Normal file
@@ -0,0 +1,59 @@
|
||||
incomplete concrete BronzeageI of Bronzeage = open Lang in {
|
||||
|
||||
flags
|
||||
startcat = Phr ; optimize = all_subs ; --optimize = share_subs ;
|
||||
unlexer = text ; lexer = text ;
|
||||
|
||||
lincat
|
||||
Sent = {s : SForm => Str} ; MassCN = CN ;
|
||||
|
||||
lin
|
||||
PhrPos sent = {s = sent.s ! SPos ++ "."} ;
|
||||
PhrNeg sent = {s = sent.s ! SNeg ++ "."} ;
|
||||
PhrQuest sent = {s = sent.s ! SQuest ++ "?"} ;
|
||||
PhrImp imp = {s = (PhrUtt NoPConj (UttImpSg PPos imp) NoVoc).s ++ "!"} ;
|
||||
PhrImpNeg imp = {s = (PhrUtt NoPConj (UttImpSg PNeg imp) NoVoc).s ++ "!"} ;
|
||||
|
||||
SentV v np = mkSent np (UseV v) ;
|
||||
|
||||
SentV2 v x y = mkSent x (ComplV2 v y) ;
|
||||
SentV2Mass v x y = mkSent x (ComplV2 v (massNP y)) ;
|
||||
SentV3 v x y z = mkSent x (ComplV3 v y z) ;
|
||||
SentA a x = mkSent x (UseComp (CompAP (PositA a))) ;
|
||||
SentNP a x = mkSent x (UseComp (CompNP a)) ;
|
||||
|
||||
SentAdvV v np adv = mkSent np (AdvVP (UseV v) adv) ;
|
||||
SentAdvV2 v x y adv = mkSent x (AdvVP (ComplV2 v y) adv) ;
|
||||
|
||||
ImpV v = ImpVP (UseV v) ;
|
||||
ImpV2 v x = ImpVP (ComplV2 v x) ;
|
||||
|
||||
UsePron p = Lang.UsePron p ;
|
||||
DetCN d n = Lang.DetCN d n ;
|
||||
NumCN k cn = Lang.DetCN (DetPl (IndefArt) k NoOrd) cn ;
|
||||
|
||||
UseN n = Lang.UseN n ;
|
||||
ModCN a cn = AdjCN (PositA a) cn ;
|
||||
|
||||
UseMassN mn = Lang.UseN mn ;
|
||||
ModMass a cn = AdjCN (PositA a) cn ;
|
||||
|
||||
param
|
||||
SForm = SPos | SNeg | SQuest ;
|
||||
|
||||
oper
|
||||
mkSent : NP -> VP -> Sent ;
|
||||
mkSent np vp =
|
||||
let cl = PredVP np vp
|
||||
in {
|
||||
s = table {
|
||||
SPos => Predef.toStr S (UseCl Lang.TPres ASimul PPos cl) ;
|
||||
SNeg => Predef.toStr S (UseCl Lang.TPres ASimul PNeg cl) ;
|
||||
SQuest => Predef.toStr QS (UseQCl Lang.TPres ASimul PPos (QuestCl cl))
|
||||
} ;
|
||||
lock_Sent = <>
|
||||
} ;
|
||||
|
||||
massNP : CN -> NP = \mcn -> Lang.DetCN (DetSg MassDet NoOrd) mcn ;
|
||||
|
||||
}
|
||||
7
old-examples/bronzeage/BronzeageIta.gf
Normal file
7
old-examples/bronzeage/BronzeageIta.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageIta of Bronzeage = CatIta, SwadeshIta ** BronzeageI with
|
||||
(Lang = LangIta) ** {
|
||||
flags language = it_IT;
|
||||
}
|
||||
|
||||
6
old-examples/bronzeage/BronzeageNor.gf
Normal file
6
old-examples/bronzeage/BronzeageNor.gf
Normal file
@@ -0,0 +1,6 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageNor of Bronzeage = CatNor, SwadeshNor ** BronzeageI with
|
||||
(Lang = LangNor) ** {
|
||||
flags language = nb_NO;
|
||||
}
|
||||
7
old-examples/bronzeage/BronzeageRus.gf
Normal file
7
old-examples/bronzeage/BronzeageRus.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageRus of Bronzeage = CatRus, SwadeshRus ** BronzeageI with
|
||||
(Lang = LangRus) ** {
|
||||
flags language = ru_RU;
|
||||
}
|
||||
|
||||
7
old-examples/bronzeage/BronzeageSpa.gf
Normal file
7
old-examples/bronzeage/BronzeageSpa.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageSpa of Bronzeage = CatSpa, SwadeshSpa ** BronzeageI with
|
||||
(Lang = LangSpa) ** {
|
||||
flags language = es_ES;
|
||||
}
|
||||
|
||||
8
old-examples/bronzeage/BronzeageSwe.gf
Normal file
8
old-examples/bronzeage/BronzeageSwe.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete BronzeageSwe of Bronzeage = CatSwe, SwadeshSwe ** BronzeageI with
|
||||
(Lang = LangSwe) ** {
|
||||
flags language = sv_SE;
|
||||
}
|
||||
|
||||
|
||||
47
old-examples/bronzeage/README
Normal file
47
old-examples/bronzeage/README
Normal file
@@ -0,0 +1,47 @@
|
||||
(AR 24/2/2006)
|
||||
|
||||
(c) Björn Bringert and Aarne Ranta 2005-2006
|
||||
|
||||
Based on grammars and lexicon in GF/examples/stoneage by Björn Bringert.
|
||||
These grammars use a more varying syntax, with negation, questions,
|
||||
imperatives, adverbs, and adjectival predication added.
|
||||
|
||||
|
||||
To build the run-time grammar:
|
||||
|
||||
echo "s ;; pm | wf bronzeage.gfcm" | gf -nocf Bronzeage???.gf
|
||||
|
||||
Before this, you have to have compiled the libraries:
|
||||
|
||||
cd <whatever you need>GF/lib/resource-1.0
|
||||
make present
|
||||
|
||||
To work with the grammar
|
||||
|
||||
gf bronzeage.gfcm
|
||||
|
||||
Once in GF, you can do translation,
|
||||
|
||||
p -mcfg -lang=BronzeageEng "Don't eat that thick snake!" | tb
|
||||
|
||||
spoken-language translation (requires ATK),
|
||||
|
||||
si -lang=BronzeageEng -tr | p -mcfg -lang=BronzeageEng | tb
|
||||
|
||||
random generation,
|
||||
|
||||
gr | tb
|
||||
|
||||
translation quiz lists
|
||||
|
||||
tl -number=5 -cat=CN BronzeageEng BronzeageFre
|
||||
|
||||
morphological quiz lists
|
||||
|
||||
ml -number=5 -cat=V -lang=BronzeageSpa
|
||||
|
||||
sentence transformation quiz lists
|
||||
|
||||
ml -number=5 -cat=Sent -lang=BronzeageEng
|
||||
|
||||
|
||||
245
old-examples/bronzeage/Swadesh.gf
Normal file
245
old-examples/bronzeage/Swadesh.gf
Normal file
@@ -0,0 +1,245 @@
|
||||
abstract Swadesh = Cat ** {
|
||||
|
||||
cat
|
||||
MassN ;
|
||||
|
||||
fun
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP : Pron ;
|
||||
youSg_NP : Pron ;
|
||||
he_NP : Pron ;
|
||||
we_NP : Pron ;
|
||||
youPl_NP : Pron ;
|
||||
they_NP : Pron ;
|
||||
whoPl_IP : IP ; -- only one who in Swadesh 207
|
||||
whoSg_IP : IP ;
|
||||
whatPl_IP : IP ; -- only one what in Swadesh 207
|
||||
whatSg_IP : IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
that_Det : Det ;
|
||||
this_Det : Det ;
|
||||
---- all_Predet : Predet ;
|
||||
many_Det : Det ;
|
||||
some_Det : Det ;
|
||||
|
||||
left_Ord : Ord ;
|
||||
right_Ord : Ord ;
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv : Adv ;
|
||||
there_Adv : Adv ;
|
||||
where_IAdv : IAdv ;
|
||||
when_IAdv : IAdv ;
|
||||
how_IAdv : IAdv ;
|
||||
far_Adv : Adv ;
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj : Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
-- at_Prep : Prep ;
|
||||
in_Prep : Prep ;
|
||||
with_Prep : Prep ;
|
||||
|
||||
-- not -- ?
|
||||
-- if -- ?
|
||||
-- because -- ?
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det : Det ;
|
||||
two_Num : Num ;
|
||||
three_Num : Num ;
|
||||
four_Num : Num ;
|
||||
five_Num : Num ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A : A ;
|
||||
big_A : A ;
|
||||
black_A : A ;
|
||||
cold_A : A ;
|
||||
correct_A : A ;
|
||||
dirty_A : A ;
|
||||
dry_A : A ;
|
||||
dull_A : A ;
|
||||
full_A : A ;
|
||||
good_A : A ;
|
||||
green_A : A ;
|
||||
heavy_A : A ;
|
||||
long_A : A ;
|
||||
narrow_A : A ;
|
||||
near_A : A ;
|
||||
new_A : A ;
|
||||
old_A : A ;
|
||||
---- other_A : A ;
|
||||
red_A : A ;
|
||||
rotten_A : A ;
|
||||
round_A : A ;
|
||||
sharp_A : A ;
|
||||
short_A : A ;
|
||||
small_A : A ;
|
||||
smooth_A : A ;
|
||||
straight_A : A ;
|
||||
thick_A : A ;
|
||||
thin_A : A ;
|
||||
warm_A : A ;
|
||||
wet_A : A ;
|
||||
white_A : A ;
|
||||
wide_A : A ;
|
||||
yellow_A : A ;
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N : N ;
|
||||
ashes_N : MassN ;
|
||||
back_N : N ;
|
||||
bark_N : MassN ;
|
||||
belly_N : N ;
|
||||
bird_N : N ;
|
||||
blood_N : MassN ;
|
||||
bone_N : N ;
|
||||
breast_N : N ;
|
||||
child_N : N ;
|
||||
cloud_N : N ;
|
||||
day_N : N ;
|
||||
dog_N : N ;
|
||||
dust_N : MassN ;
|
||||
ear_N : N ;
|
||||
earth_N : MassN ;
|
||||
egg_N : N ;
|
||||
eye_N : N ;
|
||||
fat_N : MassN ;
|
||||
---- father_N : N ;
|
||||
feather_N : N ;
|
||||
fingernail_N : N ;
|
||||
fire_N : N ;
|
||||
fish_N : N ;
|
||||
flower_N : N ;
|
||||
fog_N : MassN ;
|
||||
foot_N : N ;
|
||||
forest_N : N ;
|
||||
fruit_N : N ;
|
||||
grass_N : N ;
|
||||
guts_N : N ;
|
||||
hair_N : N ;
|
||||
hand_N : N ;
|
||||
head_N : N ;
|
||||
heart_N : N ;
|
||||
horn_N : N ;
|
||||
husband_N : N ;
|
||||
ice_N : MassN ;
|
||||
knee_N : N ;
|
||||
lake_N : N ;
|
||||
leaf_N : N ;
|
||||
leg_N : N ;
|
||||
liver_N : N ;
|
||||
louse_N : N ;
|
||||
man_N : N ;
|
||||
meat_N : MassN ;
|
||||
moon_N : N ;
|
||||
---- mother_N : N ;
|
||||
mountain_N : N ;
|
||||
mouth_N : N ;
|
||||
name_N : N ;
|
||||
neck_N : N ;
|
||||
night_N : N ;
|
||||
nose_N : N ;
|
||||
person_N : N ;
|
||||
rain_N : MassN ;
|
||||
river_N : N ;
|
||||
road_N : N ;
|
||||
root_N : N ;
|
||||
rope_N : N ;
|
||||
salt_N : MassN ;
|
||||
sand_N : MassN ;
|
||||
sea_N : N ;
|
||||
seed_N : N ;
|
||||
skin_N : N ;
|
||||
sky_N : N ;
|
||||
smoke_N : MassN ;
|
||||
snake_N : N ;
|
||||
snow_N : MassN ;
|
||||
star_N : N ;
|
||||
stick_N : N ;
|
||||
stone_N : N ;
|
||||
sun_N : N ;
|
||||
tail_N : N ;
|
||||
tongue_N : N ;
|
||||
tooth_N : N ;
|
||||
tree_N : N ;
|
||||
water_N : MassN ;
|
||||
wife_N : N ;
|
||||
wind_N : N ;
|
||||
wing_N : N ;
|
||||
woman_N : N ;
|
||||
worm_N : N ;
|
||||
year_N : N ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 : V2 ;
|
||||
blow_V : V ;
|
||||
breathe_V : V ;
|
||||
burn_V : V ;
|
||||
come_V : V ;
|
||||
count_V2 : V2 ;
|
||||
cut_V2 : V2 ;
|
||||
die_V : V ;
|
||||
dig_V : V ;
|
||||
drink_V2 : V2 ;
|
||||
eat_V2 : V2 ;
|
||||
fall_V : V ;
|
||||
fear_V2 : V2 ;
|
||||
fight_V2 : V2 ;
|
||||
float_V : V ;
|
||||
flow_V : V ;
|
||||
fly_V : V ;
|
||||
freeze_V : V ;
|
||||
give_V3 : V3 ;
|
||||
hear_V2 : V2 ;
|
||||
hit_V2 : V2 ;
|
||||
hold_V2 : V2 ;
|
||||
hunt_V2 : V2 ;
|
||||
kill_V2 : V2 ;
|
||||
know_V2 : V2 ;
|
||||
laugh_V : V ;
|
||||
lie_V : V ;
|
||||
live_V : V ;
|
||||
play_V : V ;
|
||||
pull_V2 : V2 ;
|
||||
push_V2 : V2 ;
|
||||
rub_V2 : V2 ;
|
||||
say_V : V ;
|
||||
scratch_V2 : V2 ;
|
||||
see_V2 : V2 ;
|
||||
sew_V : V ;
|
||||
sing_V : V ;
|
||||
sit_V : V ;
|
||||
sleep_V : V ;
|
||||
smell_V : V ;
|
||||
spit_V : V ;
|
||||
split_V2 : V2 ;
|
||||
squeeze_V2 : V2 ;
|
||||
stab_V2 : V2 ;
|
||||
stand_V : V ;
|
||||
suck_V2 : V2 ;
|
||||
swell_V : V ;
|
||||
swim_V : V ;
|
||||
think_V : V ;
|
||||
throw_V2 : V2 ;
|
||||
tie_V2 : V2 ;
|
||||
turn_V : V ;
|
||||
vomit_V : V ;
|
||||
walk_V : V ;
|
||||
wash_V2 : V2 ;
|
||||
wipe_V2 : V2 ;
|
||||
|
||||
}
|
||||
5
old-examples/bronzeage/SwadeshAra.gf
Normal file
5
old-examples/bronzeage/SwadeshAra.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshAra of Swadesh = CatAra ** SwadeshI with
|
||||
(Lang = LangAra) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshDan.gf
Normal file
5
old-examples/bronzeage/SwadeshDan.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshDan of Swadesh = CatDan ** SwadeshI with
|
||||
(Lang = LangDan) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshEng.gf
Normal file
5
old-examples/bronzeage/SwadeshEng.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshEng of Swadesh = CatEng ** SwadeshI with
|
||||
(Lang = LangEng) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshFin.gf
Normal file
5
old-examples/bronzeage/SwadeshFin.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshFin of Swadesh = CatFin ** SwadeshI with
|
||||
(Lang = LangFin) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshFre.gf
Normal file
5
old-examples/bronzeage/SwadeshFre.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshFre of Swadesh = CatFre ** SwadeshI with
|
||||
(Lang = LangFre) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshGer.gf
Normal file
5
old-examples/bronzeage/SwadeshGer.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshGer of Swadesh = CatGer ** SwadeshI with
|
||||
(Lang = LangGer) ;
|
||||
|
||||
227
old-examples/bronzeage/SwadeshI.gf
Normal file
227
old-examples/bronzeage/SwadeshI.gf
Normal file
@@ -0,0 +1,227 @@
|
||||
incomplete concrete SwadeshI of Swadesh = open Lang in {
|
||||
|
||||
lincat
|
||||
MassN = Lang.N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = Lang.i_Pron ;
|
||||
youSg_NP = Lang.youSg_Pron ;
|
||||
he_NP = Lang.he_Pron ;
|
||||
we_NP = Lang.we_Pron ;
|
||||
youPl_NP = Lang.youPl_Pron ;
|
||||
they_NP = Lang.they_Pron ;
|
||||
whoPl_IP = Lang.whoPl_IP ;
|
||||
whoSg_IP = Lang.whoSg_IP ;
|
||||
whatPl_IP = Lang.whatPl_IP ;
|
||||
whatSg_IP = Lang.whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (this_Quant) NoOrd ;
|
||||
that_Det = DetSg (that_Quant) NoOrd ;
|
||||
many_Det = Lang.many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
---- few_Det = few_Det ;
|
||||
|
||||
left_Ord = Lang.left_Ord ;
|
||||
right_Ord = Lang.right_Ord ;
|
||||
-- Adverbs
|
||||
here_Adv = Lang.here_Adv;
|
||||
there_Adv = Lang.there_Adv;
|
||||
where_IAdv = Lang.where_IAdv;
|
||||
when_IAdv = Lang.when_IAdv;
|
||||
how_IAdv = Lang.how_IAdv;
|
||||
far_Adv = Lang.far_Adv ;
|
||||
-- not : Adv ; -- ?
|
||||
-- Conjunctions
|
||||
and_Conj = Lang.and_Conj ;
|
||||
-- Prepositions
|
||||
in_Prep = Lang.in_Prep ;
|
||||
with_Prep = Lang.with_Prep ;
|
||||
-- Numerals
|
||||
one_Det = Lang.DetPl IndefArt
|
||||
(Lang.NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01))))) NoOrd ;
|
||||
two_Num = Lang.NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = Lang.NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = Lang.NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = Lang.NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
-- Adjectives
|
||||
bad_A = Lang.bad_A ;
|
||||
big_A = Lang.big_A ;
|
||||
black_A = Lang.black_A ;
|
||||
cold_A = Lang.cold_A ;
|
||||
correct_A = Lang.correct_A ;
|
||||
dirty_A = Lang.dirty_A ;
|
||||
dry_A = Lang.dry_A ;
|
||||
dull_A = Lang.dull_A ;
|
||||
full_A = Lang.full_A ;
|
||||
good_A = Lang.good_A ;
|
||||
green_A = Lang.green_A ;
|
||||
heavy_A = Lang.heavy_A ;
|
||||
long_A = Lang.long_A ;
|
||||
narrow_A = Lang.narrow_A ;
|
||||
near_A = Lang.near_A ;
|
||||
new_A = Lang.new_A ;
|
||||
old_A = Lang.old_A ;
|
||||
---- other_A = Lang.other_A ;
|
||||
red_A = Lang.red_A ;
|
||||
rotten_A = Lang.rotten_A ;
|
||||
round_A = Lang.round_A ;
|
||||
sharp_A = Lang.sharp_A ;
|
||||
short_A = Lang.short_A ;
|
||||
small_A = Lang.small_A ;
|
||||
smooth_A = Lang.smooth_A ;
|
||||
straight_A = Lang.straight_A ;
|
||||
thick_A = Lang.thick_A ;
|
||||
thin_A = Lang.thin_A ;
|
||||
warm_A = Lang.warm_A ;
|
||||
wet_A = Lang.wet_A ;
|
||||
white_A = Lang.white_A ;
|
||||
wide_A = Lang.wide_A ;
|
||||
yellow_A = Lang.yellow_A ;
|
||||
-- Nouns
|
||||
animal_N = Lang.animal_N ;
|
||||
ashes_N = Lang.ashes_N ;
|
||||
back_N = Lang.back_N ;
|
||||
bark_N = Lang.bark_N ;
|
||||
belly_N = Lang.belly_N ;
|
||||
bird_N = Lang.bird_N;
|
||||
blood_N = Lang.blood_N ;
|
||||
bone_N = Lang.bone_N ;
|
||||
breast_N = Lang.breast_N ;
|
||||
child_N = Lang.child_N ;
|
||||
cloud_N = Lang.cloud_N ;
|
||||
day_N = Lang.day_N ;
|
||||
dog_N = Lang.dog_N ;
|
||||
dust_N = Lang.dust_N ;
|
||||
ear_N = Lang.ear_N ;
|
||||
earth_N = Lang.earth_N ;
|
||||
egg_N = Lang.egg_N ;
|
||||
eye_N = Lang.eye_N ;
|
||||
fat_N = Lang.fat_N ;
|
||||
feather_N = Lang.feather_N ;
|
||||
fingernail_N = Lang.fingernail_N ;
|
||||
fire_N = Lang.fire_N ;
|
||||
fish_N = Lang.fish_N ;
|
||||
flower_N = Lang.flower_N ;
|
||||
fog_N = Lang.fog_N ;
|
||||
foot_N = Lang.foot_N ;
|
||||
forest_N = Lang.forest_N ;
|
||||
fruit_N = Lang.fruit_N ;
|
||||
grass_N = Lang.grass_N ;
|
||||
guts_N = Lang.guts_N ;
|
||||
hair_N = Lang.hair_N ;
|
||||
hand_N = Lang.hand_N ;
|
||||
head_N = Lang.head_N ;
|
||||
heart_N = Lang.heart_N ;
|
||||
horn_N = Lang.horn_N ;
|
||||
husband_N = Lang.man_N ; --- aviomies
|
||||
ice_N = Lang.ice_N ;
|
||||
knee_N = Lang.knee_N ;
|
||||
lake_N = Lang.lake_N ;
|
||||
leaf_N = Lang.leaf_N ;
|
||||
leg_N = Lang.leg_N ;
|
||||
liver_N = Lang.liver_N ;
|
||||
louse_N = Lang.louse_N ;
|
||||
man_N = Lang.man_N ;
|
||||
meat_N = Lang.meat_N ;
|
||||
moon_N = Lang.moon_N ;
|
||||
---- mother_N = Lang.mother_N ;
|
||||
mountain_N = Lang.mountain_N ;
|
||||
mouth_N = Lang.mouth_N ;
|
||||
name_N = Lang.name_N ;
|
||||
neck_N = Lang.neck_N ;
|
||||
night_N = Lang.night_N ;
|
||||
nose_N = Lang.nose_N ;
|
||||
person_N = Lang.person_N ;
|
||||
rain_N = Lang.rain_N ;
|
||||
river_N = Lang.river_N ;
|
||||
road_N = Lang.road_N ;
|
||||
root_N = Lang.root_N ;
|
||||
rope_N = Lang.rope_N ;
|
||||
salt_N = Lang.salt_N ;
|
||||
sand_N = Lang.sand_N ;
|
||||
sea_N = Lang.sea_N ;
|
||||
seed_N = Lang.seed_N ;
|
||||
skin_N = Lang.skin_N ;
|
||||
sky_N = Lang.sky_N ;
|
||||
smoke_N = Lang.smoke_N ;
|
||||
snake_N = Lang.snake_N ;
|
||||
snow_N = Lang.snow_N ;
|
||||
star_N = Lang.star_N ;
|
||||
stick_N = Lang.stick_N ;
|
||||
stone_N = Lang.stone_N ;
|
||||
sun_N = Lang.sun_N ;
|
||||
tail_N = Lang.tail_N ;
|
||||
tongue_N = Lang.tongue_N ;
|
||||
tooth_N = Lang.tooth_N ;
|
||||
tree_N = Lang.tree_N ;
|
||||
water_N = Lang.water_N ;
|
||||
wife_N = Lang.wife_N ;
|
||||
wind_N = Lang.wind_N ;
|
||||
wing_N = Lang.wing_N ;
|
||||
woman_N = Lang.woman_N ;
|
||||
worm_N = Lang.worm_N ;
|
||||
year_N = Lang.year_N ;
|
||||
-- Verbs
|
||||
bite_V2 = Lang.bite_V2 ;
|
||||
blow_V = Lang.blow_V ;
|
||||
breathe_V = Lang.breathe_V ;
|
||||
burn_V = Lang.burn_V ;
|
||||
come_V = Lang.come_V ;
|
||||
count_V2 = Lang.count_V2 ;
|
||||
cut_V2 = Lang.cut_V2 ;
|
||||
die_V = Lang.die_V ;
|
||||
dig_V = Lang.dig_V ;
|
||||
drink_V2 = Lang.drink_V2 ;
|
||||
eat_V2 = Lang.eat_V2 ;
|
||||
fall_V = Lang.fall_V ;
|
||||
fear_V2 = Lang.fear_V2 ;
|
||||
fight_V2 = Lang.fight_V2 ;
|
||||
float_V = Lang.float_V ;
|
||||
flow_V = Lang.flow_V ;
|
||||
fly_V = Lang.fly_V ;
|
||||
freeze_V = Lang.freeze_V ;
|
||||
give_V3 = Lang.give_V3 ;
|
||||
hear_V2 = Lang.hear_V2 ;
|
||||
hit_V2 = Lang.hit_V2 ;
|
||||
hold_V2 = Lang.hold_V2 ;
|
||||
hunt_V2 = Lang.hunt_V2 ;
|
||||
kill_V2 = Lang.kill_V2 ;
|
||||
know_V2 = Lang.know_V2 ;
|
||||
laugh_V = Lang.laugh_V ;
|
||||
lie_V = Lang.lie_V ;
|
||||
live_V = Lang.live_V ;
|
||||
play_V = Lang. play_V2 ;
|
||||
pull_V2 = Lang.pull_V2 ;
|
||||
push_V2 = Lang.push_V2 ;
|
||||
rub_V2 = Lang.rub_V2 ;
|
||||
say_V = Lang.say_VS ;
|
||||
scratch_V2 = Lang.scratch_V2 ;
|
||||
see_V2 = Lang.see_V2 ;
|
||||
sew_V = Lang.sew_V ;
|
||||
sing_V = Lang.sing_V ;
|
||||
sit_V = Lang.sit_V ;
|
||||
sleep_V = Lang.sleep_V ;
|
||||
smell_V = Lang.smell_V ;
|
||||
spit_V = Lang.spit_V ;
|
||||
split_V2 = Lang.split_V2 ;
|
||||
squeeze_V2 = Lang.squeeze_V2 ;
|
||||
stab_V2 = Lang.stab_V2 ;
|
||||
stand_V = Lang.stand_V ;
|
||||
suck_V2 = Lang.suck_V2 ;
|
||||
swell_V = Lang.swell_V ;
|
||||
swim_V = Lang.swim_V ;
|
||||
think_V = Lang.think_V ;
|
||||
throw_V2 = Lang.throw_V2 ;
|
||||
tie_V2 = Lang.tie_V2 ;
|
||||
turn_V = Lang.turn_V ;
|
||||
vomit_V = Lang.vomit_V ;
|
||||
walk_V = Lang.walk_V ;
|
||||
wash_V2 = Lang.wash_V2 ;
|
||||
wipe_V2 = Lang.wipe_V2 ;
|
||||
|
||||
}
|
||||
5
old-examples/bronzeage/SwadeshIta.gf
Normal file
5
old-examples/bronzeage/SwadeshIta.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshIta of Swadesh = CatIta ** SwadeshI with
|
||||
(Lang = LangIta) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshNor.gf
Normal file
5
old-examples/bronzeage/SwadeshNor.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshNor of Swadesh = CatNor ** SwadeshI with
|
||||
(Lang = LangNor) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshRus.gf
Normal file
5
old-examples/bronzeage/SwadeshRus.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshRus of Swadesh = CatRus ** SwadeshI with
|
||||
(Lang = LangRus) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshSpa.gf
Normal file
5
old-examples/bronzeage/SwadeshSpa.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshSpa of Swadesh = CatSpa ** SwadeshI with
|
||||
(Lang = LangSpa) ;
|
||||
|
||||
5
old-examples/bronzeage/SwadeshSwe.gf
Normal file
5
old-examples/bronzeage/SwadeshSwe.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshSwe of Swadesh = CatSwe ** SwadeshI with
|
||||
(Lang = LangSwe) ;
|
||||
|
||||
243
old-examples/bronzeage/old/SwadeshEng.gf
Normal file
243
old-examples/bronzeage/old/SwadeshEng.gf
Normal file
@@ -0,0 +1,243 @@
|
||||
concrete SwadeshEng of Swadesh = CatEng
|
||||
** open MorphoEng, LangEng, ParadigmsEng, IrregEng, Prelude in {
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
all_Predet = all_Predet ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
|
||||
-- left_Ord = left_Ord ;
|
||||
-- right_Ord = right_Ord ;
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv;
|
||||
there_Adv = there_Adv;
|
||||
where_IAdv = where_IAdv;
|
||||
when_IAdv = when_IAdv;
|
||||
how_IAdv = how_IAdv;
|
||||
-- far_Adv = far_Adv ;
|
||||
|
||||
-- "not" treated in Verb
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
--- at_Prep = ss "at" ;
|
||||
in_Prep = in_Prep ;
|
||||
with_Prep = with_Prep ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = (regA "correct") ;
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = regA "dry" ;
|
||||
dull_A = regA "dull" ;
|
||||
full_A = regA "full" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = regA "heavy" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = regA "near" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = (regA "rotten") ;
|
||||
round_A = regA "round" ;
|
||||
sharp_A = regA "sharp" ;
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = regA "smooth" ;
|
||||
straight_A = regA "straight" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = regA "wet" ; ----
|
||||
white_A = white_A ;
|
||||
wide_A = regA "wide" ;
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = regN "animal" ;
|
||||
ashes_N = regN "ash" ; -- FIXME: plural only?
|
||||
back_N = regN "back" ;
|
||||
bark_N = regN "bark" ;
|
||||
belly_N = regN "belly" ;
|
||||
bird_N = bird_N;
|
||||
blood_N = regN "blood" ;
|
||||
bone_N = regN "bone" ;
|
||||
breast_N = regN "breast" ;
|
||||
child_N = child_N ;
|
||||
cloud_N = regN "cloud" ;
|
||||
day_N = regN "day" ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = regN "dust" ;
|
||||
ear_N = regN "ear" ;
|
||||
earth_N = regN "earth" ;
|
||||
egg_N = regN "egg" ;
|
||||
eye_N = regN "eye" ;
|
||||
fat_N = regN "fat" ;
|
||||
father_N = UseN2 father_N2 ;
|
||||
feather_N = regN "feather" ;
|
||||
fingernail_N = regN "fingernail" ;
|
||||
fire_N = regN "fire" ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = regN "flower" ;
|
||||
fog_N = regN "fog" ;
|
||||
foot_N = mk2N "foot" "feet" ;
|
||||
forest_N = regN "forest" ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = regN "grass" ;
|
||||
guts_N = regN "gut" ; -- FIXME: no singular
|
||||
hair_N = regN "hair" ;
|
||||
hand_N = regN "hand" ;
|
||||
head_N = regN "head" ;
|
||||
heart_N = regN "heart" ;
|
||||
horn_N = regN "horn" ;
|
||||
husband_N = genderN masculine (regN "husband") ;
|
||||
ice_N = regN "ice" ;
|
||||
knee_N = regN "knee" ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = mk2N "leaf" "leaves" ;
|
||||
leg_N = regN "leg" ;
|
||||
liver_N = regN "liver" ;
|
||||
louse_N = mk2N "louse" "lice" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = regN "mouth" ;
|
||||
name_N = regN "name" ;
|
||||
neck_N = regN "neck" ;
|
||||
night_N = regN "night" ;
|
||||
nose_N = regN "nose" ;
|
||||
person_N = genderN human (regN "person") ;
|
||||
rain_N = regN "rain" ;
|
||||
river_N = river_N ;
|
||||
road_N = regN "road" ;
|
||||
root_N = regN "root" ;
|
||||
rope_N = regN "rope" ;
|
||||
salt_N = regN "salt" ;
|
||||
sand_N = regN "sand" ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = regN "seed" ;
|
||||
skin_N = regN "skin" ;
|
||||
sky_N = regN "sky" ;
|
||||
smoke_N = regN "smoke" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = regN "snow" ;
|
||||
star_N = star_N ;
|
||||
stick_N = regN "stick" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = regN "tail" ;
|
||||
tongue_N = regN "tongue" ;
|
||||
tooth_N = mk2N "tooth" "teeth" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = genderN feminine (mk2N "wife" "wives") ;
|
||||
wind_N = regN "wind" ;
|
||||
wing_N = regN "wing" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = regN "worm" ;
|
||||
year_N = regN "year" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 = dirV2 bite_V ;
|
||||
blow_V = blow_V ;
|
||||
breathe_V = dirV2 (regV "breathe") ;
|
||||
burn_V = burn_V ;
|
||||
come_V = come_V ;
|
||||
count_V2 = dirV2 (regV "count") ;
|
||||
cut_V2 = dirV2 cut_V ;
|
||||
die_V = die_V ;
|
||||
dig_V = dig_V ;
|
||||
drink_V2 = dirV2 drink_V ;
|
||||
eat_V2 = dirV2 eat_V ;
|
||||
fall_V = fall_V ;
|
||||
fear_V2 = dirV2 (regV "fear") ;
|
||||
fight_V2 = dirV2 fight_V ;
|
||||
float_V = regV "float" ;
|
||||
flow_V = regV "flow" ;
|
||||
fly_V = fly_V ;
|
||||
freeze_V = freeze_V ;
|
||||
give_V3 = dirV3 give_V "to" ;
|
||||
hear_V2 = dirV2 hear_V ;
|
||||
hit_V2 = dirV2 hit_V ;
|
||||
hold_V2 = dirV2 hold_V ;
|
||||
hunt_V2 = dirV2 (regV "hunt") ;
|
||||
kill_V2 = dirV2 (regV "kill") ;
|
||||
know_V2 = dirV2 know_V ;
|
||||
laugh_V = regV "laugh" ;
|
||||
lie_V = lie_V ;
|
||||
live_V = live_V ;
|
||||
play_V = regV "play" ;
|
||||
pull_V2 = dirV2 (regV "pull") ;
|
||||
push_V2 = dirV2 (regV "push") ;
|
||||
rub_V2 = dirV2 (regDuplV "rub") ;
|
||||
say_V = say_V ;
|
||||
scratch_V2 = dirV2 (regV "scratch") ;
|
||||
see_V2 = dirV2 see_V ;
|
||||
sew_V = sew_V ;
|
||||
sing_V = sing_V ;
|
||||
sit_V = sit_V ;
|
||||
sleep_V = sleep_V ;
|
||||
smell_V = regV "smell" ;
|
||||
spit_V = spit_V ;
|
||||
split_V2 = dirV2 split_V ;
|
||||
squeeze_V2 = dirV2 (regV "squeeze") ;
|
||||
stab_V2 = dirV2 (regDuplV "stab") ;
|
||||
stand_V = stand_V ;
|
||||
suck_V2 = dirV2 (regV "suck") ;
|
||||
swell_V = swell_V ;
|
||||
swim_V = swim_V ;
|
||||
think_V = think_V ;
|
||||
throw_V2 = dirV2 throw_V ;
|
||||
tie_V2 = dirV2 (regV "tie") ;
|
||||
turn_V = regV "turn" ;
|
||||
vomit_V = regV "vomit" ;
|
||||
walk_V = walk_V ;
|
||||
wash_V2 = dirV2 (regV "wash") ;
|
||||
wipe_V2 = dirV2 (regV "wipe") ;
|
||||
|
||||
}
|
||||
269
old-examples/bronzeage/old/SwadeshFin.gf
Normal file
269
old-examples/bronzeage/old/SwadeshFin.gf
Normal file
@@ -0,0 +1,269 @@
|
||||
--# -path=.:../present:../finnish:../common:../abstract:../../prelude
|
||||
|
||||
concrete SwadeshFin of Swadesh = CatFin
|
||||
** open MorphoFin, LangFin, ParadigmsFin, Prelude in {
|
||||
|
||||
flags optimize=values ;
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
all_Det = mkDet Pl {s = \\nf =>
|
||||
let
|
||||
kaiket = (nhn (sKorpi "kaikki" "kaiken" "kaikkena")).s
|
||||
in
|
||||
case nf of {
|
||||
NCase Pl Nom => "kaikki" ;
|
||||
_ => kaiket ! nf
|
||||
}
|
||||
} ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
few_Det = mkDet Sg (regN "harva") ;
|
||||
other_Det = mkDet Sg (regN "muu") ;
|
||||
|
||||
left_Ord = mkOrd (regN "vasen") ;
|
||||
right_Ord = mkOrd (regN "oikea") ;
|
||||
|
||||
oper
|
||||
mkOrd : N -> Ord ;
|
||||
mkOrd x = {s = \\n,c => x.s ! NCase n c; lock_Ord = <> } ;
|
||||
|
||||
lin
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv;
|
||||
there_Adv = there_Adv;
|
||||
where_IAdv = where_IAdv;
|
||||
when_IAdv = when_IAdv;
|
||||
how_IAdv = how_IAdv;
|
||||
far_Adv = mkAdv "kaukana" ;
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
at_Prep = casePrep adessive ;
|
||||
in_Prep = casePrep inessive ;
|
||||
with_Prep = postGenPrep "kanssa" ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = regA "oikea" ;
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = mkADeg (regN "kuiva") "kuivempi" "kuivin" ;
|
||||
dull_A = mkADeg (regN "tylsä") "tylsempi" "tylsin" ;
|
||||
full_A = mkADeg (reg3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = regA "raskas" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = regA "läheinen" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = regA "mätä" ;
|
||||
round_A = regA "pyöreä" ;
|
||||
sharp_A = regA "terävä" ;
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = regA "sileä" ;
|
||||
straight_A = mkADeg (regN "suora") "suorempi" "suorin" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = mkADeg (regN "märkä") "märempi" "märin" ;
|
||||
white_A = white_A ;
|
||||
wide_A = regA "leveä" ;
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = reg3N "eläin" "eläimen" "eläimiä" ;
|
||||
ashes_N = regN "tuhka" ;
|
||||
back_N = regN "selkä" ;
|
||||
bark_N = regN "kaarna" ;
|
||||
belly_N = regN "vatsa" ;
|
||||
bird_N = bird_N;
|
||||
blood_N = nMeri "veri" ;
|
||||
bone_N = regN "luu" ;
|
||||
breast_N = regN "rinta" ;
|
||||
child_N = child_N ;
|
||||
cloud_N = reg2N "pilvi" "pilviä" ;
|
||||
day_N = regN "päivä" ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = regN "pöly" ;
|
||||
ear_N = regN "korva" ;
|
||||
earth_N = regN "maa" ;
|
||||
egg_N = regN "muna" ;
|
||||
eye_N = regN "silmä" ;
|
||||
fat_N = regN "rasva" ;
|
||||
father_N = regN "isä" ;
|
||||
feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ;
|
||||
fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ;
|
||||
fire_N = reg2N "tuli" "tulia" ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = regN "kukka" ;
|
||||
fog_N = regN "sumu" ;
|
||||
foot_N = regN "jalka" ;
|
||||
forest_N = regN "metsä" ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = regN "ruoho" ;
|
||||
guts_N = regN "sisälmys" ; --- suoli
|
||||
hair_N = regN "hius" ;
|
||||
hand_N = reg3N "käsi" "käden" "käsiä" ;
|
||||
head_N = regN "pää" ;
|
||||
heart_N = reg3N "sydän" "sydämen" "sydämiä" ;
|
||||
horn_N = reg2N "sarvi" "sarvia" ;
|
||||
husband_N = man_N ; --- aviomies
|
||||
ice_N = regN "jää" ;
|
||||
knee_N = reg2N "polvi" "polvia" ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = reg2N "lehti" "lehtiä" ;
|
||||
leg_N = regN "jalka" ; --- sääri
|
||||
liver_N = regN "maksa" ;
|
||||
louse_N = regN "lude" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = regN "äiti" ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = regN "suu" ;
|
||||
name_N = reg2N "nimi" "nimiä" ;
|
||||
neck_N = regN "niska" ;
|
||||
night_N = regN "yö" ;
|
||||
nose_N = regN "nenä" ;
|
||||
person_N = regN "henkilö" ;
|
||||
rain_N = regN "sade" ;
|
||||
river_N = river_N ;
|
||||
road_N = regN "tie" ;
|
||||
root_N = reg2N "juuri" "juuria" ;
|
||||
rope_N = reg3N "köysi" "köyden" "köysiä" ;
|
||||
salt_N = regN "suola" ;
|
||||
sand_N = regN "hiekka" ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = regN "siemen" ;
|
||||
skin_N = regN "nahka" ;
|
||||
sky_N = reg3N "taivas" "taivaan" "taivaita" ;
|
||||
smoke_N = regN "savu" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = sgpartN (nMeri "lumi") "lunta" ;
|
||||
star_N = star_N ;
|
||||
stick_N = regN "keppi" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = regN "häntä" ;
|
||||
tongue_N = reg2N "kieli" "kieliä" ;
|
||||
tooth_N = regN "hammas" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = regN "vaimo" ;
|
||||
wind_N = reg2N "tuuli" "tuulia" ;
|
||||
wing_N = reg2N "siipi" "siipiä" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = regN "mato" ;
|
||||
year_N = reg3N "vuosi" "vuoden" "vuosia" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 = dirV2 (regV "purra") ;
|
||||
blow_V = regV "puhaltaa" ;
|
||||
breathe_V2 = dirV2 (regV "hengittää") ;
|
||||
burn_V = regV "palaa" ;
|
||||
come_V = come_V ;
|
||||
count_V2 = dirV2 (regV "laskea") ;
|
||||
cut_V2 = dirV2 (reg2V "leikata" "leikkasi") ;
|
||||
die_V = regV "kuolla";
|
||||
dig_V = regV "kaivaa" ;
|
||||
drink_V2 = dirV2 ( drink_V2) ;
|
||||
eat_V2 = dirV2 ( eat_V2) ;
|
||||
fall_V = reg3V "pudota" "putoan" "putosi" ;
|
||||
fear_V2 = dirV2 (reg3V "pelätä" "pelkään" "pelkäsi") ;
|
||||
fight_V2 = dirV2 (regV "taistella") ;
|
||||
float_V = regV "kellua" ;
|
||||
flow_V = reg3V "virrata" "virtaan" "virtasi" ;
|
||||
fly_V = regV "lentää" ;
|
||||
freeze_V = regV "jäätyä" ;
|
||||
give_V = dirdirV3 (regV "antaa") ;
|
||||
hear_V2 = dirV2 ( hear_V2) ;
|
||||
hit_V2 = dirV2 (regV "lyödä") ;
|
||||
hold_V2 = dirV2 (regV "pitää") ;
|
||||
hunt_V2 = dirV2 (regV "metsästää") ;
|
||||
kill_V2 = dirV2 (regV "tappaa") ;
|
||||
know_V2 = dirV2 (reg2V "tuntea" "tunsin") ;
|
||||
laugh_V = reg3V "nauraa" "nauran" "nauroi" ;
|
||||
lie_V = reg3V "maata" "makaan" "makasi" ;
|
||||
live_V = live_V ;
|
||||
play_V = play_V2 ;
|
||||
pull_V2 = dirV2 (regV "vetää") ;
|
||||
push_V2 = dirV2 (regV "työntää") ;
|
||||
rub_V2 = dirV2 (regV "hieroa") ;
|
||||
say_V = regV "sanoa" ;
|
||||
scratch_V2 = dirV2 (regV "raapia") ;
|
||||
see_V = ( see_V2) ;
|
||||
sew_V = regV "kylvää" ;
|
||||
sing_V = regV "laulaa" ;
|
||||
sit_V = regV "istua" ;
|
||||
sleep_V = sleep_V ;
|
||||
smell_V = reg2V "haistaa" "haistoi" ;
|
||||
spit_V = regV "sylkeä" ;
|
||||
split_V2 = dirV2 (reg2V "halkaista" "halkaisi") ;
|
||||
squeeze_V2 = dirV2 (regV "puristaa") ;
|
||||
stab_V2 = dirV2 (regV "pistää") ;
|
||||
stand_V = mkV "seistä" "seisoo" "seison" "seisovat" "seiskää" "seistään"
|
||||
"seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät
|
||||
suck_V2 = dirV2 (regV "imeä") ;
|
||||
swell_V = mkV "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan"
|
||||
"turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ;
|
||||
swim_V = reg3V "uida" "uin" "ui" ;
|
||||
think_V = reg3V "ajatella" "ajattelen" "ajatteli" ;
|
||||
throw_V2 = dirV2 (regV "heittää") ;
|
||||
tie_V2 = dirV2 (regV "sitoa") ;
|
||||
turn_V = regV "kääntyä" ;
|
||||
vomit_V = regV "oksentaa" ;
|
||||
walk_V = walk_V ;
|
||||
wash_V2 = dirV2 (regV "pestä") ;
|
||||
wipe_V2 = dirV2 (regV "pyyhkiä") ;
|
||||
|
||||
oper
|
||||
regA = regADeg ; ----
|
||||
|
||||
|
||||
}
|
||||
259
old-examples/bronzeage/old/SwadeshFre.gf
Normal file
259
old-examples/bronzeage/old/SwadeshFre.gf
Normal file
@@ -0,0 +1,259 @@
|
||||
--# -path=.:../french:../common:../abstract:../../prelude:../romance
|
||||
|
||||
concrete SwadeshFre of Swadesh = CatFre
|
||||
** open PhonoFre, MorphoFre, LangFre, ParadigmsFre, IrregFre, Prelude in {
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
all_Det = {
|
||||
s = \\g,c => prepCase c ++ genForms "tous" "toutes" ! g ++ "les" ;
|
||||
n = Pl
|
||||
} ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
few_Det = {s = \\g,c => prepCase c ++ "peu" ++ elisDe ; n = Pl} ;
|
||||
other_Det = {
|
||||
s = \\g,c => prepCase c ++ "d'autres" ; -- de d'autres
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
left_Ord = mkOrd (regA "gauche") ;
|
||||
right_Ord = mkOrd (regA "droite") ;
|
||||
|
||||
oper
|
||||
mkOrd : A -> Ord ;
|
||||
mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ;
|
||||
|
||||
lin
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv;
|
||||
there_Adv = there_Adv;
|
||||
where_IAdv = where_IAdv;
|
||||
when_IAdv = when_IAdv;
|
||||
how_IAdv = how_IAdv;
|
||||
far_Adv = mkAdv "loin" ;
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
at_Prep = dative ;
|
||||
in_Prep = in_Prep ;
|
||||
with_Prep = with_Prep ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = regA "correct" ;
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = (mkA "sec" "sèche" "secs" "sèches") ;
|
||||
dull_A = regA "émoussé" ;
|
||||
full_A = regA "plein" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = regA "lourd" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = regA "proche" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = regA "pourri" ;
|
||||
round_A = regA "rond" ;
|
||||
sharp_A = regA "tranchant" ;
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = regA "lisse" ;
|
||||
straight_A = regA "droite" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = regA "mouillé" ;
|
||||
white_A = white_A ;
|
||||
wide_A = regA "large" ;
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = regN "animal" ;
|
||||
ashes_N = regGenN "cendre" masculine ;
|
||||
back_N = regN "dos" ;
|
||||
bark_N = regN "écorce" ;
|
||||
belly_N = regGenN "ventre" masculine ;
|
||||
bird_N = bird_N;
|
||||
blood_N = regN "sang" ;
|
||||
bone_N = regN "os" ;
|
||||
breast_N = regN "sein" ; --- poitrine
|
||||
child_N = child_N ;
|
||||
cloud_N = regGenN "nuage" masculine ;
|
||||
day_N = regN "jour" ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = regN "poussière" ;
|
||||
ear_N = regN "oreille" ;
|
||||
earth_N = regN "terre" ;
|
||||
egg_N = regN "oeuf" ;
|
||||
eye_N = mkN "oeil" "yeux" masculine ;
|
||||
fat_N = regN "graisse" ;
|
||||
father_N = UseN2 father_N2 ;
|
||||
feather_N = regN "plume" ;
|
||||
fingernail_N = regGenN "ongle" masculine ;
|
||||
fire_N = regN "feu" ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = regGenN "fleur" feminine ;
|
||||
fog_N = regN "brouillard" ;
|
||||
foot_N = regN "pied" ;
|
||||
forest_N = regGenN "forêt" feminine ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = regN "herbe" ;
|
||||
guts_N = regN "entraille" ;
|
||||
hair_N = regN "cheveu" ;
|
||||
hand_N = regGenN "main" feminine ;
|
||||
head_N = regN "tête" ;
|
||||
heart_N = regN "coeur" ;
|
||||
horn_N = regGenN "corne" masculine ;
|
||||
husband_N = regN "mari" ;
|
||||
ice_N = regN "glace" ;
|
||||
knee_N = regN "genou" ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = regN "feuille" ;
|
||||
leg_N = regN "jambe" ;
|
||||
liver_N = regGenN "foie" masculine ;
|
||||
louse_N = regN "pou" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = regN "bouche" ;
|
||||
name_N = regN "nom" ;
|
||||
neck_N = mkN "cou" "cous" masculine ;
|
||||
night_N = regGenN "nuit" feminine ;
|
||||
nose_N = regN "nez" ;
|
||||
person_N = regN "personne" ;
|
||||
rain_N = regN "pluie" ;
|
||||
river_N = river_N ;
|
||||
road_N = regN "route" ;
|
||||
root_N = regN "racine" ;
|
||||
rope_N = regN "corde" ;
|
||||
salt_N = regN "sel" ;
|
||||
sand_N = regGenN "sable" masculine ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = regN "graine" ;
|
||||
skin_N = regN "peau" ;
|
||||
sky_N = mkN "ciel" "cieux" masculine ;
|
||||
smoke_N = regN "fumée" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = regN "neige" ;
|
||||
star_N = star_N ;
|
||||
stick_N = regN "bâton" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = regN "queue" ;
|
||||
tongue_N = regN "langue" ;
|
||||
tooth_N = regGenN "dent" feminine ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = regN "femme" ;
|
||||
wind_N = regN "vent" ;
|
||||
wing_N = regN "aile" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = regN "ver" ;
|
||||
year_N = regN "an" ; --- année
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V = ( mordre_V2) ;
|
||||
blow_V = regV "souffler" ;
|
||||
breathe_V2 = dirV2 (regV "respirer") ;
|
||||
burn_V = regV "brûler" ;
|
||||
come_V = venir_V ;
|
||||
count_V2 = dirV2 (regV "conter") ;
|
||||
cut_V2 = dirV2 (regV "tailler") ;
|
||||
die_V = mourir_V ;
|
||||
dig_V = regV "creuser" ;
|
||||
drink_V = ( boire_V2) ;
|
||||
eat_V2 = dirV2 (regV "manger") ;
|
||||
fall_V = regV "tomber" ;
|
||||
fear_V = ( craindre_V2) ;
|
||||
fight_V2 = dirV2 (regV "lutter") ;
|
||||
float_V = regV "flotter" ;
|
||||
flow_V = regV "couler" ;
|
||||
fly_V = regV "voler" ;
|
||||
freeze_V = reg3V "geler" "gèle" "gèlera" ;
|
||||
give_V = dirdirV3 (regV "donner") ;
|
||||
hear_V = ( entendre_V2) ;
|
||||
hit_V2 = dirV2 (regV "frapper") ;
|
||||
hold_V = ( tenir_V2) ;
|
||||
hunt_V2 = dirV2 (regV "chasser") ;
|
||||
kill_V2 = dirV2 (regV "tuer") ;
|
||||
know_V = ( connaître_V2) ;
|
||||
laugh_V = rire_V2 ;
|
||||
lie_V = reflV étendre_V2 ;
|
||||
live_V = vivre_V2 ;
|
||||
play_V = regV "jouer" ;
|
||||
pull_V2 = dirV2 (regV "tirer") ;
|
||||
push_V2 = dirV2 (regV "pousser") ;
|
||||
rub_V2 = dirV2 (regV "frotter") ;
|
||||
say_V = dire_V2 ;
|
||||
scratch_V2 = dirV2 (regV "gratter") ;
|
||||
see_V = ( voir_V2) ;
|
||||
sew_V = coudre_V2 ;
|
||||
sing_V = regV "chanter" ;
|
||||
sit_V = reflV asseoir_V2 ;
|
||||
sleep_V = dormir_V2 ;
|
||||
smell_V = v2V ( sentir_V2) ;
|
||||
spit_V = regV "cracher" ;
|
||||
split_V = ( fendre_V2) ;
|
||||
squeeze_V2 = dirV2 (regV "serrer") ;
|
||||
stab_V2 = dirV2 (regV "poignarder") ;
|
||||
stand_V = reflV (reg3V "lever" "lève" "lèvera") ;
|
||||
suck_V2 = dirV2 (regV "sucer") ;
|
||||
swell_V = regV "gonfler" ;
|
||||
swim_V = regV "nager" ;
|
||||
think_V = regV "penser" ;
|
||||
throw_V2 = dirV2 (regV "jeter") ;
|
||||
tie_V2 = dirV2 (regV "lier") ;
|
||||
turn_V = regV "tourner" ;
|
||||
vomit_V = regV "vomir" ;
|
||||
walk_V = regV "marcher" ;
|
||||
wash_V2 = dirV2 (regV "laver") ;
|
||||
wipe_V2 = dirV2 (regV "essuyer") ;
|
||||
|
||||
}
|
||||
248
old-examples/bronzeage/old/SwadeshGer.gf
Normal file
248
old-examples/bronzeage/old/SwadeshGer.gf
Normal file
@@ -0,0 +1,248 @@
|
||||
--# -path=.:../abstract:../common:../german:../../prelude
|
||||
|
||||
concrete SwadeshGer of Swadesh = CatGer
|
||||
** open MorphoGer, LangGer, ParadigmsGer, Prelude in {
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
-- all_Det = mkDeterminer Pl "all" ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
-- few_Det = mkDeterminer Pl "few" ;
|
||||
-- other_Det = mkDeterminer Pl "other" ;
|
||||
|
||||
|
||||
-- left_Ord = regA "left" ;
|
||||
-- right_Ord = regA "right" ;
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv;
|
||||
there_Adv = there_Adv;
|
||||
where_IAdv = where_IAdv;
|
||||
when_IAdv = when_IAdv;
|
||||
how_IAdv = how_IAdv;
|
||||
-- far_Adv = mkAdv "far" ;
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
-- at_Prep = ss "at" ;
|
||||
-- in_Prep = ss "in" ;
|
||||
-- with_Prep = ss "with" ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
-- correct_A = (regA "correct") ;
|
||||
dirty_A = dirty_A ;
|
||||
-- dry_A = regA "dry" ;
|
||||
-- dull_A = regA "dull" ;
|
||||
-- full_A = regA "full" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
-- heavy_A = regA "heavy" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
-- near_A = regA "near" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
-- rotten_A = (regA "rotten") ;
|
||||
-- round_A = regA "round" ;
|
||||
-- sharp_A = regA "sharp" ;
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
-- smooth_A = regA "smooth" ;
|
||||
-- straight_A = regA "straight" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
-- wet_A = regA "wet" ; ----
|
||||
white_A = white_A ;
|
||||
-- wide_A = regA "wide" ;
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
-- Nouns
|
||||
|
||||
-- animal_N = regN "animal" ;
|
||||
-- ashes_N = regN "ash" ; -- FIXME: plural only?
|
||||
-- back_N = regN "back" ;
|
||||
-- bark_N = regN "bark" ;
|
||||
-- belly_N = regN "belly" ;
|
||||
bird_N = bird_N;
|
||||
-- blood_N = regN "blood" ;
|
||||
-- bone_N = regN "bone" ;
|
||||
-- breast_N = regN "breast" ;
|
||||
child_N = child_N ;
|
||||
-- cloud_N = regN "cloud" ;
|
||||
-- day_N = regN "day" ;
|
||||
dog_N = dog_N ;
|
||||
-- dust_N = regN "dust" ;
|
||||
-- ear_N = regN "ear" ;
|
||||
-- earth_N = regN "earth" ;
|
||||
-- egg_N = regN "egg" ;
|
||||
-- eye_N = regN "eye" ;
|
||||
-- fat_N = regN "fat" ;
|
||||
--- father_N = UseN2 father_N2 ;
|
||||
-- feather_N = regN "feather" ;
|
||||
-- fingernail_N = regN "fingernail" ;
|
||||
-- fire_N = regN "fire" ;
|
||||
fish_N = fish_N ;
|
||||
-- flower_N = regN "flower" ;
|
||||
-- fog_N = regN "fog" ;
|
||||
-- foot_N = mk2N "foot" "feet" ;
|
||||
-- forest_N = regN "forest" ;
|
||||
fruit_N = fruit_N ;
|
||||
-- grass_N = regN "grass" ;
|
||||
-- guts_N = regN "gut" ; -- FIXME: no singular
|
||||
-- hair_N = regN "hair" ;
|
||||
-- hand_N = regN "hand" ;
|
||||
-- head_N = regN "head" ;
|
||||
-- heart_N = regN "heart" ;
|
||||
-- horn_N = regN "horn" ;
|
||||
-- husband_N = genderN masculine (regN "husband") ;
|
||||
-- ice_N = regN "ice" ;
|
||||
-- knee_N = regN "knee" ;
|
||||
lake_N = lake_N ;
|
||||
-- leaf_N = mk2N "leaf" "leaves" ;
|
||||
-- leg_N = regN "leg" ;
|
||||
-- liver_N = regN "liver" ;
|
||||
-- louse_N = mk2N "louse" "lice" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
--- mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
-- mouth_N = regN "mouth" ;
|
||||
-- name_N = regN "name" ;
|
||||
-- neck_N = regN "neck" ;
|
||||
-- night_N = regN "night" ;
|
||||
-- nose_N = regN "nose" ;
|
||||
-- person_N = genderN human (regN "person") ;
|
||||
-- rain_N = regN "rain" ;
|
||||
river_N = river_N ;
|
||||
-- road_N = regN "road" ;
|
||||
-- root_N = regN "root" ;
|
||||
-- rope_N = regN "rope" ;
|
||||
-- salt_N = regN "salt" ;
|
||||
-- sand_N = regN "sand" ;
|
||||
sea_N = sea_N ;
|
||||
-- seed_N = regN "seed" ;
|
||||
-- skin_N = regN "skin" ;
|
||||
-- sky_N = regN "sky" ;
|
||||
-- smoke_N = regN "smoke" ;
|
||||
snake_N = snake_N ;
|
||||
-- snow_N = regN "snow" ;
|
||||
star_N = star_N ;
|
||||
-- stick_N = regN "stick" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
-- tail_N = regN "tail" ;
|
||||
-- tongue_N = regN "tongue" ;
|
||||
-- tooth_N = mk2N "tooth" "teeth" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
-- wife_N = genderN feminine (mk2N "wife" "wives") ;
|
||||
-- wind_N = regN "wind" ;
|
||||
-- wing_N = regN "wing" ;
|
||||
woman_N = woman_N ;
|
||||
-- worm_N = regN "worm" ;
|
||||
-- year_N = regN "year" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
-- bite_V = bite_V ;
|
||||
-- blow_V = blow_V ;
|
||||
-- breathe_V2 = dirV2 (regV "breathe") ;
|
||||
-- burn_V = burn_V ;
|
||||
come_V = come_V ;
|
||||
-- count_V2 = dirV2 (regV "count") ;
|
||||
-- cut_V2 = dirV2 cut_V ;
|
||||
die_V = die_V ;
|
||||
-- dig_V = dig_V ;
|
||||
drink_V = drink_V2 ;
|
||||
eat_V = eat_V2 ;
|
||||
-- fall_V = fall_V ;
|
||||
-- fear_V2 = dirV2 (regV "fear") ;
|
||||
-- fight_V2 = dirV2 fight_V ;
|
||||
-- float_V = regV "float" ;
|
||||
-- flow_V = regV "flow" ;
|
||||
-- fly_V = fly_V ;
|
||||
-- freeze_V = freeze_V ;
|
||||
-- give_V = dirdirV3 give_V ;
|
||||
hear_V = hear_V2 ;
|
||||
-- hit_V2 = dirV2 hit_V ;
|
||||
-- hold_V2 = dirV2 hold_V ;
|
||||
-- hunt_V2 = dirV2 (regV "hunt") ;
|
||||
-- kill_V2 = dirV2 (regV "kill") ;
|
||||
-- know_V2 = dirV2 know_V ;
|
||||
-- laugh_V = regV "laugh" ;
|
||||
-- lie_V = lie_V ;
|
||||
live_V = live_V ;
|
||||
-- play_V = regV "play" ;
|
||||
-- pull_V2 = dirV2 (regV "pull") ;
|
||||
-- push_V2 = dirV2 (regV "push") ;
|
||||
-- rub_V2 = dirV2 (regDuplV "rub") ;
|
||||
-- say_V = say_V ;
|
||||
-- scratch_V2 = dirV2 (regV "scratch") ;
|
||||
-- see_V = see_V2 ;
|
||||
-- sew_V = sew_V ;
|
||||
-- sing_V = sing_V ;
|
||||
-- sit_V = sit_V ;
|
||||
sleep_V = sleep_V ;
|
||||
-- smell_V2 = dirV2 (regV "smell") ;
|
||||
-- spit_V = spit_V ;
|
||||
-- split_V2 = dirV2 split_V ;
|
||||
-- squeeze_V2 = dirV2 (regV "squeeze") ;
|
||||
-- stab_V2 = dirV2 (regDuplV "stab") ;
|
||||
-- stand_V = stand_V ;
|
||||
-- suck_V2 = dirV2 (regV "suck") ;
|
||||
-- swell_V = swell_V ;
|
||||
-- swim_V = swim_V ;
|
||||
-- think_V = think_V ;
|
||||
-- throw_V2 = dirV2 throw_V ;
|
||||
-- tie_V2 = dirV2 (regV "tie") ;
|
||||
-- turn_V = regV "turn" ;
|
||||
-- vomit_V = regV "vomit" ;
|
||||
walk_V = walk_V ;
|
||||
-- wash_V2 = dirV2 (regV "wash") ;
|
||||
-- wipe_V2 = dirV2 (regV "wipe") ;
|
||||
|
||||
}
|
||||
258
old-examples/bronzeage/old/SwadeshIta.gf
Normal file
258
old-examples/bronzeage/old/SwadeshIta.gf
Normal file
@@ -0,0 +1,258 @@
|
||||
--# -path=.:../italian:../common:../abstract:../../prelude:../romance
|
||||
|
||||
concrete SwadeshIta of Swadesh = CatIta
|
||||
** open PhonoIta, MorphoIta, LangIta, ParadigmsIta, BeschIta, Prelude in {
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
all_Det = {
|
||||
s = \\g,c => prepCase c ++ genForms ["tutti i"] ["tutte le"] ! g ;
|
||||
n = Pl
|
||||
} ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
few_Det = {s = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ; n = Pl} ;
|
||||
other_Det = {
|
||||
s = \\g,c => prepCase c ++ genForms "altri" "altre" ! g ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
left_Ord = mkOrd (regA "sinistro") ;
|
||||
right_Ord = mkOrd (regA "destro") ;
|
||||
|
||||
oper
|
||||
mkOrd : A -> Ord ;
|
||||
mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ;
|
||||
|
||||
lin
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv;
|
||||
there_Adv = there_Adv;
|
||||
where_IAdv = where_IAdv;
|
||||
when_IAdv = when_IAdv;
|
||||
how_IAdv = how_IAdv;
|
||||
far_Adv = mkAdv "lontano" ;
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
at_Prep = dative ;
|
||||
in_Prep = in_Prep ;
|
||||
with_Prep = with_Prep ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = regA "corretto" ;
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = regA "secco" ;
|
||||
dull_A = regA "noioso" ;
|
||||
full_A = regA "pieno" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = regA "pesante" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = regA "vicino" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = regA "marcio" ;
|
||||
round_A = regA "rotondo" ;
|
||||
sharp_A = regA "aguzzo" ;
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = regA "liscio" ;
|
||||
straight_A = regA "diretto" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = regA "bagnato" ;
|
||||
white_A = white_A ;
|
||||
wide_A = regA "largo" ;
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = regN "animale" ;
|
||||
ashes_N = regN "cenere" ;
|
||||
back_N = regN "schiena" ;
|
||||
bark_N = regN "corteccia" ;
|
||||
belly_N = regN "pancia" ;
|
||||
bird_N = bird_N;
|
||||
blood_N = regN "sangue" ;
|
||||
bone_N = regN "osso" ;
|
||||
breast_N = regN "seno" ;
|
||||
child_N = child_N ;
|
||||
cloud_N = regN "nuvola" ;
|
||||
day_N = regN "giorno" ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = regN "polvere" ;
|
||||
ear_N = regN "orecchio" ;
|
||||
earth_N = regN "terra" ;
|
||||
egg_N = mkN "uovo" "uova" masculine ; -- fem in Pl
|
||||
eye_N = regN "occhio" ;
|
||||
fat_N = regN "grasso" ;
|
||||
father_N = UseN2 father_N2 ;
|
||||
feather_N = regN "piuma" ;
|
||||
fingernail_N = regN "unghia" ;
|
||||
fire_N = regN "fuoco" ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = regN "fiore" ;
|
||||
fog_N = regN "nebbia" ;
|
||||
foot_N = regN "piede" ;
|
||||
forest_N = regN "bosco" ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = regN "erba" ;
|
||||
guts_N = regN "intestino" ;
|
||||
hair_N = regN "capello" ;
|
||||
hand_N = femN (regN "mano") ;
|
||||
head_N = regN "testa" ;
|
||||
heart_N = regN "cuore" ;
|
||||
horn_N = regN "corno" ;
|
||||
husband_N = regN "marito" ;
|
||||
ice_N = regN "ghiaccio" ;
|
||||
knee_N = regN "ginocchio" ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = regN "foglia" ;
|
||||
leg_N = regN "gamba" ;
|
||||
liver_N = regN "fegato" ;
|
||||
louse_N = regN "pidocchio" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = regN "bocca" ;
|
||||
name_N = regN "nome" ;
|
||||
neck_N = regN "collo" ;
|
||||
night_N = femN (regN "notte") ;
|
||||
nose_N = regN "naso" ;
|
||||
person_N = regN "persona" ;
|
||||
rain_N = regN "pioggia" ;
|
||||
river_N = river_N ;
|
||||
road_N = regN "strada" ;
|
||||
root_N = femN (regN "radice") ;
|
||||
rope_N = regN "corda" ;
|
||||
salt_N = regN "sale" ;
|
||||
sand_N = regN "sabbia" ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = regN "seme" ;
|
||||
skin_N = femN (regN "pelle") ;
|
||||
sky_N = regN "cielo" ;
|
||||
smoke_N = regN "fumo" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = femN (regN "neve") ;
|
||||
star_N = star_N ;
|
||||
stick_N = regN "bastone" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = regN "coda" ;
|
||||
tongue_N = regN "lingua" ;
|
||||
tooth_N = regN "dente" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = regN "donna" ;
|
||||
wind_N = regN "vento" ;
|
||||
wing_N = regN "ala" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = regN "verme" ;
|
||||
year_N = regN "anno" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 = dirV2 (verboV (esplodere_51 "mordere")) ;
|
||||
blow_V = regV "soffiare" ;
|
||||
breathe_V2 = dirV2 (regV "respirare") ;
|
||||
burn_V = regV "bruciare" ;
|
||||
come_V = come_V ;
|
||||
count_V2 = dirV2 (regV "contare") ;
|
||||
cut_V2 = dirV2 (regV "tagliare") ;
|
||||
die_V = die_V ;
|
||||
dig_V = regV "scavare" ;
|
||||
drink_V2 = dirV2 (drink_V2) ;
|
||||
eat_V2 = dirV2 (regV "mangiare") ;
|
||||
fall_V = essereV (verboV (cadere_28 "cadere")) ;
|
||||
fear_V2 = dirV2 (fear_VS) ;
|
||||
fight_V2 = dirV2 (regV "lottare") ;
|
||||
float_V = regV "galleggiare" ;
|
||||
flow_V = verboV (finire_100 "fluire") ;
|
||||
fly_V = regV "volare" ;
|
||||
freeze_V = regV "gelare" ;
|
||||
give_V = dirdirV3 (verboV (dare_15 "dare")) ;
|
||||
hear_V2 = dirV2 (hear_V2) ;
|
||||
hit_V2 = dirV2 (regV "colpire") ;
|
||||
hold_V2 = dirV2 (verboV (venire_110 "tenire")) ;
|
||||
hunt_V2 = dirV2 (regV "cacciare") ;
|
||||
kill_V2 = dirV2 (verboV (ridere_74 "uccidere")) ;
|
||||
know_V2 = dirV2 (know_V2) ;
|
||||
laugh_V = verboV (ridere_74 "ridere") ;
|
||||
lie_V = verboV (piacere_64 "giacere") ;
|
||||
live_V = live_V ;
|
||||
play_V = regV "giocare" ;
|
||||
pull_V2 = dirV2 (regV "tirare") ;
|
||||
push_V2 = dirV2 (verboV (cingere_31 "spingere")) ;
|
||||
rub_V2 = dirV2 (regV "strofinare") ;
|
||||
say_V = say_VS ;
|
||||
scratch_V2 = dirV2 (regV "graffiare") ;
|
||||
see_V2 = dirV2 (see_V2) ;
|
||||
sew_V = verboV (cucire_103 "cucire") ;
|
||||
sing_V = regV "cantare" ;
|
||||
sit_V = reflV (verboV (sedere_84 "sedere")) ;
|
||||
sleep_V = sleep_V ;
|
||||
smell_V = verboV (sentire_99 "sentire") ;
|
||||
spit_V = regV "sputare" ;
|
||||
split_V2 = dirV2 (verboV (ridere_74 "dividere")) ;
|
||||
squeeze_V2 = dirV2 (verboV (temere_20 "spremere")) ;
|
||||
stab_V2 = dirV2 (regV "pugnalare") ;
|
||||
stand_V = verboV (stare_16 "stare") ; ---- in piedi
|
||||
suck_V2 = dirV2 (regV "succhiare") ;
|
||||
swell_V = regV "gonfiare" ;
|
||||
swim_V = regV "nuotare" ;
|
||||
think_V = regV "pensare" ;
|
||||
throw_V2 = dirV2 (regV "gettare") ;
|
||||
tie_V2 = dirV2 (regV "legare") ;
|
||||
turn_V = regV "tornare" ;
|
||||
vomit_V = regV "vomitare" ;
|
||||
walk_V = regV "camminare" ;
|
||||
wash_V2 = dirV2 (regV "lavare") ;
|
||||
wipe_V2 = dirV2 (regV "asciugare") ;
|
||||
|
||||
}
|
||||
252
old-examples/bronzeage/old/SwadeshNor.gf
Normal file
252
old-examples/bronzeage/old/SwadeshNor.gf
Normal file
@@ -0,0 +1,252 @@
|
||||
--# -path=.:../norwegian:../common:../abstract:../scandinavian:../../prelude
|
||||
|
||||
concrete SwadeshNor of Swadesh = CatNor
|
||||
** open MorphoNor, LangNor, ParadigmsNor, IrregNor, Prelude in {
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
all_Det = {s = \\_,_ => "alle" ; n = Pl ; det = DDef Indef} ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ;
|
||||
other_Det = {s = \\_,_ => "andre" ; n = Pl ; det = DDef Indef} ;
|
||||
|
||||
left_Ord = {s = "venstre" ; isDet = True} ;
|
||||
right_Ord = {s = "høyre" ; isDet = True} ;
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv ;
|
||||
there_Adv = there_Adv ;
|
||||
where_IAdv = where_IAdv ;
|
||||
when_IAdv = when_IAdv ;
|
||||
how_IAdv = how_IAdv ;
|
||||
|
||||
far_Adv = mkAdv "fjern" ;
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
at_Prep = ss "ved" ;
|
||||
in_Prep = ss "i" ;
|
||||
with_Prep = ss "med" ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = regA "riktig" ;
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = mk2A "tørr" "tørt" ;
|
||||
dull_A = regA "sløv" ;
|
||||
full_A = regA "full" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = irregADeg "tung" "tyngre" "tyngst" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = mkADeg "nære" "nære" "nære" "nærmere" "nærmest" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = mk3ADeg "råtten" "råttent" "råtne" ;
|
||||
round_A = regA "rund" ;
|
||||
sharp_A = mk2A "kvass" "kvast" ;
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = mk2A "slett" "slett" ;
|
||||
straight_A = regA "rak" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = regA "våt" ;
|
||||
white_A = white_A ;
|
||||
wide_A = regA "bred" ;
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = mk2N "dyr" "dyret" ;
|
||||
ashes_N = mk2N "aske" "aska" ;
|
||||
back_N = mk2N "rygg" "ryggen" ;
|
||||
bark_N = mk2N "bark" "barken" ;
|
||||
belly_N = mk2N "mage" "magen" ;
|
||||
bird_N = bird_N ;
|
||||
blood_N = mk2N "blod" "blodet" ;
|
||||
bone_N = mk2N "bein" "beinet" ;
|
||||
breast_N = mk2N "bryst" "brystet" ;
|
||||
child_N = child_N ;
|
||||
cloud_N = mk2N "sky" "skya" ;
|
||||
day_N = mk2N "dag" "dagen" ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = mk2N "støv" "støvet" ;
|
||||
ear_N = mk2N "øre" "øret" ;
|
||||
earth_N = mk2N "jord" "jorda" ;
|
||||
egg_N = mk2N "egg" "egget" ;
|
||||
eye_N = mkN "øye" "øyet" "øyne" "øynene" ;
|
||||
fat_N = mk2N "fett" "fettet" ;
|
||||
father_N = mkN "far" "faren" "fedre" "fedrene" ;
|
||||
-- father_N = UseN2 father_N2 ;
|
||||
feather_N = mk2N "fjør" "fjøra" ;
|
||||
fingernail_N = mk2N "negl" "neglen" ;
|
||||
fire_N = mk2N "ild" "ilden" ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = mk2N "blomst" "blomsten" ;
|
||||
fog_N = mk2N "tåke" "tåka" ;
|
||||
foot_N = mk2N "fot" "føtter" ;
|
||||
forest_N = mk2N "skog" "skogen" ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = mk2N "gras" "graset" ;
|
||||
guts_N = mk2N "tarm" "tarmen" ; ---- involler
|
||||
hair_N = mk2N "hår" "håret" ;
|
||||
hand_N = mk2N "hånd" "hånden" ;
|
||||
|
||||
head_N = mk2N "hode" "hodet" ;
|
||||
heart_N = mk2N "hjerte" "hjertet" ;
|
||||
horn_N = mk2N "horn" "hornet" ;
|
||||
husband_N = mkN "ektemann" "ektemannen" "ektemenn" "ektemennen" ;
|
||||
ice_N = mk2N "is" "isen" ;
|
||||
knee_N = mkN "kne" "kneet" "knær" "knæne" ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = mk2N "løv" "løvet" ;
|
||||
leg_N = mk2N "bein" "beinet" ;
|
||||
liver_N = mkN "lever" "leveren" "levrer" "levrene" ;
|
||||
louse_N = mk2N "lus" "lusa" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = mkN "mor" "moren" "mødre" "mødrene" ;
|
||||
-- mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = mk2N "munn" "munnen" ;
|
||||
name_N = mk2N "navn" "navnet" ;
|
||||
neck_N = mk2N "nakke" "nakken" ;
|
||||
night_N = mkN "natt" "natta" "netter" "nettene" ;
|
||||
nose_N = mk2N "nese" "nesen" ;
|
||||
person_N = mk2N "person" "personen" ;
|
||||
rain_N = mk2N "regn" "regnet" ;
|
||||
river_N = river_N ;
|
||||
road_N = mk2N "vei" "veien" ;
|
||||
root_N = mkN "rot" "rota" "røtter" "røttene" ;
|
||||
rope_N = mk2N "tau" "tauet" ;
|
||||
salt_N = mk2N "salt" "saltet" ;
|
||||
sand_N = mk2N "sand" "sanden" ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = mk2N "frø" "frøet" ;
|
||||
skin_N = mk2N "skinn" "skinnet" ;
|
||||
sky_N = mkN "himmel" "himmelen" "himler" "himlene" ;
|
||||
smoke_N = mk2N "røyk" "røyken" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = mk2N "snø" "snøen" ;
|
||||
star_N = star_N ;
|
||||
stick_N = mk2N "pinne" "pinnen" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = mk2N "hale" "halen" ;
|
||||
tongue_N = mk2N "tunge" "tunga" ;
|
||||
tooth_N = mkN "tann" "tanna" "tenner" "tennene" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = mk2N "kone" "kona" ;
|
||||
wind_N = mk2N "vind" "vinden" ;
|
||||
wing_N = mk2N "vinge" "vingen" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = mk2N "mark" "marken" ;
|
||||
year_N = mk2N "år" "året" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 = dirV2 (IrregNor.bite_V) ;
|
||||
blow_V = mk2V "blåse" "blåste" ;
|
||||
breathe_V2 = dirV2 (regV "puste") ;
|
||||
burn_V = brenne_V ;
|
||||
come_V = komme_V ;
|
||||
count_V2 = dirV2 (regV "regne") ;
|
||||
cut_V2 = dirV2 (skjære_V) ;
|
||||
die_V = dø_V ;
|
||||
dig_V = mk2V "grave" "gravde" ;
|
||||
drink_V2 = dirV2 (drikke_V) ;
|
||||
eat_V2 = dirV2 (mk2V "spise" "spiste") ;
|
||||
fall_V = falle_V ;
|
||||
fear_V2 = dirV2 (regV "frykte") ;
|
||||
fight_V2 = dirV2 (slåss_V) ;
|
||||
float_V = flyte_V ;
|
||||
flow_V = renne_V ;
|
||||
fly_V = fly_V ;
|
||||
freeze_V = fryse_V ;
|
||||
give_V = dirdirV3 gi_V ;
|
||||
hear_V2 = dirV2 (mk2V "høre" "hørde") ;
|
||||
hit_V2 = dirV2 (slå_V) ;
|
||||
hold_V2 = dirV2 (holde_V) ;
|
||||
hunt_V2 = dirV2 (regV "jakte") ;
|
||||
kill_V2 = dirV2 (mk2V "drepe" "drepte") ;
|
||||
know_V2 = dirV2 (vite_V) ;
|
||||
laugh_V = mkV "le" "ler" "les" "lo" "ledd" "le" ;
|
||||
lie_V = ligge_V ;
|
||||
live_V = mk2V "leve" "levde" ;
|
||||
play_V = mk2V "leke" "lekte" ;
|
||||
pull_V2 = dirV2 (dra_V) ;
|
||||
push_V2 = dirV2 (irregV "skyve" "skjøv" "skjøvet") ;
|
||||
rub_V2 = dirV2 (gni_V) ;
|
||||
say_V = si_V ;
|
||||
scratch_V2 = dirV2 (regV "klø") ;
|
||||
see_V2 = dirV2 (se_V) ;
|
||||
sew_V = mk2V "sy" "sydde" ;
|
||||
sing_V = synge_V ;
|
||||
sit_V = sitte_V ;
|
||||
sleep_V = sove_V ;
|
||||
smell_V = regV "lukte" ;
|
||||
spit_V = regV "spytte" ;
|
||||
split_V2 = dirV2 (mk2V "kløyve" "kløyvde") ;
|
||||
squeeze_V2 = dirV2 (mk2V "klemme" "klemte") ;
|
||||
stab_V2 = dirV2 (stikke_V) ;
|
||||
stand_V = stå_V ;
|
||||
suck_V2 = dirV2 (suge_V) ;
|
||||
swell_V = partV (regV "hovne") "opp" ;
|
||||
swim_V = regV "simme" ;
|
||||
think_V = mk2V "tenke" "tenkte" ;
|
||||
throw_V2 = dirV2 (regV "kaste") ;
|
||||
tie_V2 = dirV2 (regV "knytte") ;
|
||||
turn_V = mk2V "vende" "vendte" ;
|
||||
vomit_V = partV (regV "kaste") "opp" ;
|
||||
walk_V = gå_V ;
|
||||
wash_V2 = dirV2 (regV "vaske") ;
|
||||
wipe_V2 = dirV2 (regV "tørke") ;
|
||||
|
||||
}
|
||||
251
old-examples/bronzeage/old/SwadeshRus.gf
Normal file
251
old-examples/bronzeage/old/SwadeshRus.gf
Normal file
@@ -0,0 +1,251 @@
|
||||
--# -path=.:../abstract:../../prelude
|
||||
|
||||
concrete SwadeshRus of Swadesh = CatRus
|
||||
** open ResourceRus, SyntaxRus, ParadigmsRus,
|
||||
BasicRus, Prelude in {
|
||||
flags coding=utf8 ;
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = this_Det ;
|
||||
that_Det = that_Det ;
|
||||
all_Det = all_NDet ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
few_Det = adjInvar "мало" ** {n = Sg; g = PNoGen; c= Nom} ;
|
||||
other_Det = drugojDet ** {n = Sg; g = PNoGen; c= Nom} ;
|
||||
|
||||
-- left_Ord = AStaruyj "лев";
|
||||
-- right_Ord = AStaruyj "прав";
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv ;
|
||||
there_Adv = there_Adv ;
|
||||
where_IAdv = where_IAdv ;
|
||||
when_IAdv = when_IAdv ;
|
||||
how_IAdv = how_IAdv ;
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
at_Prep = { s2 = "у" ; c = genitive} ;
|
||||
in_Prep = { s2 = "в" ; c = prepositional} ;
|
||||
with_Prep = { s2 = "с" ; c = instructive} ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = mkA (AStaruyj "правильн") "правильнее";
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = mkA (AMolodoj "сух") "суше";
|
||||
dull_A = mkA (AStaruyj "скучн") "скучнее";
|
||||
far_A = mkA (AKhoroshij "далекий") "дальше";
|
||||
full_A = mkA (AStaruyj "полн") "полнее";
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = mkA (AStaruyj "тяжел") "тяжелее";
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = mkA (AMalenkij "близк") "ближе";
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = mkA (AMolodoj "гнил") "гнилее";
|
||||
round_A = mkA (AStaruyj "кругл") "круглее";
|
||||
sharp_A = mkA (AStaruyj "остр") "острее";
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = mkA (AMalenkij "гладк") "глаже";
|
||||
straight_A = mkA (AMolodoj "прям") "прямее";
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = mkA (AStaruyj "мокр") "мокрее";
|
||||
white_A = white_A ;
|
||||
wide_A = mkA (AMalenkij "широк") "шире";
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = nZhivotnoe "животн" ;
|
||||
ashes_N = nPepel "пеп" ;
|
||||
back_N = nMashina "спин" ;
|
||||
bark_N = mkN "лай" "лая" "лаю" "лай" "лаем" "лае" "лаи" "лаев" "лаям" "лаи" "лаями" "лаях" masculine inanimate;
|
||||
belly_N = nTelefon "живот" ;
|
||||
bird_N = bird_N ;
|
||||
blood_N = nBol "кров" ;
|
||||
bone_N = nBol "кост" ;
|
||||
breast_N = nBol "грудь" ;
|
||||
child_N = child_N ;
|
||||
cloud_N = nChislo "облак" ;
|
||||
day_N = mkN "день" "дня" "дню" "день" "днём" "дне" "дни" "дней" "дням" "дни" "днями" "днях" masculine inanimate ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = nBol "пыл" ;
|
||||
ear_N = nChislo "ухо" ;
|
||||
earth_N = nTetya "земл" ;
|
||||
egg_N = nChislo "яйц" ;
|
||||
eye_N = nAdres "глаз" ;
|
||||
fat_N = nBank "жир" ;
|
||||
father_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate ;
|
||||
-- father_N = UseN2 father_N2 ;
|
||||
feather_N = mkN "перо" "пера" "перу" "пера" "пером" "пере" "перья" "перьев" "перьям" "перьев" "перьями" "перьях" neuter inanimate ;
|
||||
fingernail_N = mkN "ноготь" "ногтя" "ногтю" "ногтя" "ногтем" "ногте" "ногти" "ногтей" "ногтям" "ногтей" "ногтями" "ногтях" masculine inanimate ;
|
||||
fire_N = mkN "огонь" "огня" "огню" "огня" "огнём" "огне" "огни" "огней" "огням" "огней" "огнями" "огнях" masculine inanimate ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate ;
|
||||
fog_N = nTelefon "туман" ;
|
||||
foot_N = nTetya "ступн" ;
|
||||
forest_N = nAdres "лес" ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = nMashina "трав" ;
|
||||
guts_N = nBol "внутренност" ;
|
||||
hair_N = nTelefon "волос" ;
|
||||
hand_N = nNoga "рук" ;
|
||||
head_N = nMashina "голов" ;
|
||||
heart_N = mkN "сердце" "сердца" "сердцу" "сердца" "сердцем" "сердце" "сердца" "сердец" "сердцам" "сердец" "сердцами" "сердцах" neuter inanimate;
|
||||
horn_N = nAdres "рог" ;
|
||||
husband_N = mkN "муж" "мужа" "мужу" "мужа" "мужем" "муже" "мужья" "мужей" "мужьям" "мужей" "мужьями" "мужьях" masculine animate ;
|
||||
ice_N = mkN "лёд" "льда" "льду" "льда" "льдом" "льде" "льды" "льдов" "льдам" "льдов" "льдами" "льдах" masculine inanimate ;
|
||||
knee_N = mkN "колено" "колена" "колену" "колена" "коленом" "колене" "колени" "колен" "коленам" "колен" "коленями" "коленях" neuter inanimate ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = nStul "лист" ;
|
||||
leg_N = nNoga "ног" ;
|
||||
liver_N = nBol "печен" ;
|
||||
louse_N = mkN "вошь" "вши" "вши" "вошь" "вошью" "вше" "вши" "вшей" "вшам" "вшей" "вшами" "вшах" feminine animate ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = mkN "мать" "матери" "матери" "мать" "матерью" "матери" "матери" "матерей" "матерям" "матерей" "матерями" "матерях" feminine animate ;
|
||||
--- mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = mkN "рот" "рта" "рту" "рот" "ртом" "рте" "рты" "ртов" "ртам" "рты" "ртами" "ртах" masculine inanimate;
|
||||
name_N = mkN "имя" "имени" "имени" "имя" "именем" "имени" "имена" "имён" "именам" "имена" "именами" "именах" neuter inanimate;
|
||||
neck_N = nTetya "ше" ;
|
||||
night_N = nBol "ноч" ;
|
||||
nose_N = nTelefon "нос" ;
|
||||
person_N = nBol "личность" ;
|
||||
rain_N = nNol "дожд" ;
|
||||
river_N = river_N ;
|
||||
road_N = nNoga "дорог" ;
|
||||
root_N = nUroven "кор" ;
|
||||
rope_N = nNoga "веревк" ;
|
||||
salt_N = nBol "сол" ;
|
||||
sand_N = mkN "песок" "песка" "песку" "песок" "песком" "песке" "пески" "песков" "пескам" "песков" "песками" "песках" masculine inanimate ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = mkN "семя" "семени" "семении" "семя" "семенем" "семени" "семена" "семян" "семенам" "семена" "семенами" "семенах" neuter inanimate ;
|
||||
skin_N = nEdinica "кож" ;
|
||||
sky_N = mkN "небо" "неба" "небу" "небо" "небом" "небе" "небеса" "небес" "небесам" "небес" "небесами" "небесах" neuter inanimate ;
|
||||
smoke_N = nTelefon "дым" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = nAdres "снег" ;
|
||||
star_N = star_N ;
|
||||
stick_N = nNoga "палк" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = nTelefon "хвост" ;
|
||||
tongue_N = nBank "язык" ;
|
||||
tooth_N = nTelefon "зуб" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = nMashina "жен" ;
|
||||
wind_N = mkN "ветер" "ветра" "ветру" "ветер" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" masculine inanimate ;
|
||||
wing_N = mkN "крыло" "крыла" "крылу" "крыло" "крылом" "крыле" "крылья" "крыльев" "крыльям" "крылья" "крыльями" "крыльях" neuter inanimate ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = nNol "черв" ;
|
||||
year_N = nAdres "год" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V = mkRegVerb imperfective first "куса" "ю" "кусал" "кусай" "кусать";
|
||||
blow_V = mkRegVerb imperfective first "ду" "ю" "дул" "дуй" "дуть" ;
|
||||
breathe_V = mkRegVerb imperfective second "дыш" "у" "дышал" "дыши" "дышать" ;
|
||||
burn_V = mkRegVerb imperfective second "гор" "ю" "горел" "гори" "гореть" ;
|
||||
come_V = come_V ;
|
||||
count_V = mkRegVerb imperfective first "счита" "ю" "считал" "считай" "считать" ;
|
||||
cut_V = mkRegVerb imperfective first "реж" "у" "резал" "режь" "резать" ;
|
||||
die_V = die_V ;
|
||||
dig_V = mkRegVerb imperfective first "копа" "ю" "копал" "копай" "копать" ;
|
||||
drink_V = mkRegVerb imperfective firstE "пь" "ю" "пил" "пей" "пить" ;
|
||||
eat_V = mkVerbum imperfective "ем" "ешь" "ест" "едим" "едите" "едят" "ел" "ешь" "есть" ;
|
||||
fall_V = mkRegVerb imperfective first "пада" "ю" "падал" "падай" "падать" ;
|
||||
fear_V = mkRegVerb imperfective second "бо" "ю" "боял" "бой" "боять" ;
|
||||
fight_V = mkRegVerb imperfective firstE "дер" "у" "драл" "дери" "драть" ;
|
||||
float_V = mkRegVerb imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ;
|
||||
flow_V = mkRegVerb imperfective firstE "тек" "у" "тёк" "теки" "течь" ;
|
||||
fly_V = mkRegVerb imperfective second "лета" "ю" "летал" "летай" "летать" ;
|
||||
freeze_V = mkRegVerb imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ;
|
||||
give_V = mkRegVerb imperfective firstE "да" "ю" "давал" "давай" "давать" ;
|
||||
hear_V = mkRegVerb imperfective first "слыш" "у" "слышал" "слышь" "слышать" ;
|
||||
hit_V = mkRegVerb imperfective first "ударя" "ю" "ударял" "ударяй" "ударять" ;
|
||||
hold_V = mkRegVerb imperfective second "держ" "у" "держал" "держи" "держать" ;
|
||||
hunt_V = mkRegVerb imperfective second "охоч" "у" "охотил" "охоть" "охотить" ;
|
||||
kill_V = mkRegVerb imperfective first "убива" "ю" "убивал" "убивай" "убивать" ;
|
||||
know_V = mkRegVerb imperfective first "зна" "ю" "знал" "знай" "знать" ;
|
||||
laugh_V = mkRegVerb imperfective firstE "сме" "ю" "смеял" "смей" "смеять" ;
|
||||
lie_V = mkRegVerb imperfective firstE "лг" "у" "лгал" "лги" "лгать" ;
|
||||
live_V = live_V ;
|
||||
play_V = mkRegVerb imperfective first "игра" "ю" "играл" "играй" "играть" ;
|
||||
pull_V = mkRegVerb imperfective first "тян" "у" "тянул" "тяни" "тянуть" ;
|
||||
push_V = mkRegVerb imperfective first "толка" "ю" "толкал" "толкай" "толкать" ;
|
||||
rub_V = mkRegVerb imperfective firstE "тр" "у" "тёр" "три" "тереть" ;
|
||||
say_V = mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить";
|
||||
scratch_V = mkRegVerb imperfective first "чеш" "у" "чесал" "чеши" "чесать" ; see_V = mkRegVerb imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" ;
|
||||
sew_V = mkRegVerb imperfective firstE "шь" "ю" "шил" "шей" "шить" ;
|
||||
sing_V = mkRegVerb imperfective firstE "по" "ю" "пел" "пой" "петь" ;
|
||||
sit_V = mkVerbum imperfective "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть" ;
|
||||
sleep_V = sleep_V ;
|
||||
smell_V = mkRegVerb imperfective first "пахн" "у" "пахнул" "пахни" "пахнуть" ;
|
||||
spit_V = mkRegVerb imperfective firstE "плю" "ю" "плевал" "плюй" "плевать" ;
|
||||
split_V = mkRegVerb imperfective first "разбива" "ю" "разбивал" "разбей" "разбивать" ;
|
||||
squeeze_V = mkRegVerb imperfective first "сжима" "ю" "сжимал" "сжимай" "сжимать" ;
|
||||
stab_V = mkRegVerb imperfective first "кол" "ю" "колол" "коли" "колоть" ;
|
||||
stand_V = mkRegVerb imperfective second "сто" "ю" "стоял" "стой" "стоять" ;
|
||||
suck_V = mkRegVerb imperfective firstE "сос" "у" "сосал" "соси" "сосать" ;
|
||||
swell_V = mkRegVerb imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ;
|
||||
swim_V = mkRegVerb imperfective first "плава" "ю" "плавал" "плавай" "плавать" ;
|
||||
think_V = mkRegVerb imperfective first "дума" "ю" "думал" "думай" "думать" ;
|
||||
throw_V = mkRegVerb imperfective first "броса" "ю" "бросал" "бросай" "бросать" ;
|
||||
tie_V = mkRegVerb imperfective first "вяж" "у" "вязал" "вяжи" "вязать" ;
|
||||
turn_V = mkRegVerb imperfective first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать" ;
|
||||
vomit_V = mkRegVerb imperfective firstE "рв" "у" "рвал" "рви" "рвать" ;
|
||||
walk_V = walk_V ;
|
||||
wash_V = mkRegVerb imperfective first "мо" "ю" "мыл" "мой" "мыть" ;
|
||||
wipe_V = mkRegVerb imperfective first "вытира" "ю" "вытирал" "вытирай" "вытирать" ;
|
||||
|
||||
};
|
||||
262
old-examples/bronzeage/old/SwadeshSpa.gf
Normal file
262
old-examples/bronzeage/old/SwadeshSpa.gf
Normal file
@@ -0,0 +1,262 @@
|
||||
--# -path=.:../spanish:../common:../abstract:../../prelude:../romance
|
||||
|
||||
concrete SwadeshSpa of Swadesh = CatSpa
|
||||
** open PhonoSpa, MorphoSpa, LangSpa, ParadigmsSpa, BeschSpa, Prelude in {
|
||||
|
||||
-- words contributed by Ana Bove, May 2005
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
all_Det = {
|
||||
s = \\g,c => prepCase c ++ genForms ["todos los"] ["todas las"] ! g ;
|
||||
n = Pl
|
||||
} ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
few_Det = {s = \\g,c => prepCase c ++ genForms "pocos" "pocas" ! g ; n = Pl} ;
|
||||
other_Det = {
|
||||
s = \\g,c => prepCase c ++ genForms "otros" "otras" ! g ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
left_Ord = mkOrd (regA "izquierda") ;
|
||||
right_Ord = mkOrd (regA "derecha") ;
|
||||
|
||||
oper
|
||||
mkOrd : A -> Ord ;
|
||||
mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ;
|
||||
|
||||
lin
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv;
|
||||
there_Adv = there_Adv;
|
||||
where_IAdv = where_IAdv;
|
||||
when_IAdv = when_IAdv;
|
||||
how_IAdv = how_IAdv;
|
||||
far_Adv = mkAdv "lejos" ; ----?
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
at_Prep = dative ;
|
||||
in_Prep = in_Prep ;
|
||||
with_Prep = with_Prep ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = regA "correcto" ;
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = regA "seco" ;
|
||||
dull_A = regA "desafilado" ;
|
||||
full_A = regA "lleno" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = regA "pesado" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = regA "cerca" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = regA "podrido" ;
|
||||
round_A = regA "redondo" ;
|
||||
sharp_A = regA "filoso" ; -- afilado, puntiagudo
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = regA "liso" ; -- suave
|
||||
straight_A = regA "directo" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = regA "mojado" ;
|
||||
white_A = white_A ;
|
||||
wide_A = regA "ancho" ; -- extenso
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = regN "animal" ; -- masc (sometimes fem when adj)
|
||||
ashes_N = regN "ceniza" ;
|
||||
back_N = regN "espalda" ;
|
||||
bark_N = regN "corteza" ;
|
||||
belly_N = regN "panza" ; -- barriga
|
||||
bird_N = bird_N;
|
||||
blood_N = femN (regN "sangre") ;
|
||||
bone_N = regN "hueso" ;
|
||||
breast_N = regN "seno" ; -- pecho
|
||||
child_N = child_N ;
|
||||
cloud_N = femN (regN "nube") ;
|
||||
day_N = mascN (regN "día") ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = regN "polvo" ;
|
||||
ear_N = regN "oreja" ;
|
||||
earth_N = regN "tierra" ;
|
||||
egg_N = regN "huevo" ;
|
||||
eye_N = regN "ojo" ;
|
||||
fat_N = regN "grasa" ;
|
||||
father_N = UseN2 father_N2 ;
|
||||
feather_N = regN "pluma" ;
|
||||
fingernail_N = regN "uña" ;
|
||||
fire_N = regN "fuego" ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = femN (regN "flor") ;
|
||||
fog_N = regN "niebla" ;
|
||||
foot_N = regN "pie" ;
|
||||
forest_N = regN "bosque" ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = regN "pasto" ; -- hierba, césped (masc)
|
||||
guts_N = regN "tripa" ; -- gut=intestino ---- pl.t. tripas
|
||||
hair_N = regN "cabello" ; -- pelo
|
||||
hand_N = femN (regN "mano") ;
|
||||
head_N = regN "cabeza" ;
|
||||
heart_N = mkN "corazón" "corazones" masculine ;
|
||||
horn_N = regN "cuerno" ;
|
||||
husband_N = regN "marido" ; -- esposo
|
||||
ice_N = regN "hielo" ;
|
||||
knee_N = regN "rodilla" ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = regN "hoja" ;
|
||||
leg_N = regN "pierna" ;
|
||||
liver_N = regN "hígado" ;
|
||||
louse_N = regN "piojo" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = regN "boca" ;
|
||||
name_N = regN "nombre" ;
|
||||
neck_N = regN "cuello" ;
|
||||
night_N = femN (regN "noche") ;
|
||||
nose_N = femN (regN "nariz") ;
|
||||
person_N = regN "persona" ;
|
||||
rain_N = regN "lluvia" ;
|
||||
river_N = river_N ;
|
||||
road_N = femN (regN "calle") ; -- camino
|
||||
root_N = femN (regN "raíz") ;
|
||||
rope_N = regN "cuerda" ;
|
||||
salt_N = femN (regN "sal") ;
|
||||
sand_N = regN "arena" ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = regN "semilla" ;
|
||||
skin_N = femN (regN "piel") ; -- fem
|
||||
sky_N = regN "cielo" ;
|
||||
smoke_N = regN "humo" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = femN (regN "nieve") ; -- fem
|
||||
star_N = star_N ;
|
||||
stick_N = mkN "bastón" "bastones" masculine ; -- palo
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = regN "cola" ;
|
||||
tongue_N = regN "lengua" ;
|
||||
tooth_N = regN "diente" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = regN "esposa" ;
|
||||
wind_N = regN "viento" ;
|
||||
wing_N = regN "ala" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = regN "gusano" ; -- lombriz (fem)
|
||||
year_N = regN "año" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 = dirV2 (verboV (morder_50b "morder")) ;
|
||||
blow_V = regV "soplar" ;
|
||||
breathe_V2 = dirV2 (regV "respirar") ;
|
||||
burn_V = regV "quemar" ;
|
||||
come_V = come_V ;
|
||||
count_V2 = dirV2 (verboV (contar_38b "contar")) ;
|
||||
cut_V2 = dirV2 (regV "cortar") ;
|
||||
die_V = die_V ;
|
||||
dig_V = regV "escarbar" ;
|
||||
drink_V2 = dirV2 (regV "tomar") ;
|
||||
eat_V2 = dirV2 (regV "comer") ;
|
||||
fall_V = verboV (caer_20 "caer") ;
|
||||
fear_V2 = dirV2 (fear_VS) ;
|
||||
fight_V2 = dirV2 (regV "pelear") ;
|
||||
float_V = regV "flotar" ;
|
||||
flow_V = verboV (influir_45 "fluir") ; -- circular
|
||||
fly_V = regV "volar" ;
|
||||
freeze_V = regV "congelar" ;
|
||||
give_V = dirdirV3 (verboV (dar_27 "dar")) ;
|
||||
hear_V2 = dirV2 (hear_V2) ;
|
||||
hit_V2 = dirV2 (regV "golpear") ;
|
||||
hold_V2 = dirV2 (verboV (tener_4 "tener")) ;
|
||||
hunt_V2 = dirV2 (regV "cazar") ;
|
||||
kill_V2 = dirV2 (regV "matar") ;
|
||||
know_V2 = dirV2 (know_V2) ;
|
||||
laugh_V = regV "reir" ; ----V reír_67
|
||||
lie_V = reflV (regV "acostar") ; -- "acostarse"
|
||||
live_V = live_V ;
|
||||
play_V = regV "jugar" ;
|
||||
pull_V2 = dirV2 (regV "tirar") ;
|
||||
push_V2 = dirV2 (regV "empujar") ;
|
||||
rub_V2 = dirV2 (regV "resfregar") ;
|
||||
say_V = say_VS ;
|
||||
scratch_V2 = dirV2 (regV "rascar") ;
|
||||
see_V2 = dirV2 (see_V2) ;
|
||||
sew_V = regV "coser" ;
|
||||
sing_V = regV "cantar" ;
|
||||
sit_V = reflV (regV "sentar") ;
|
||||
sleep_V = sleep_V ;
|
||||
smell_V = verboV (oler_52 "oler") ;
|
||||
spit_V = regV "escupir" ;
|
||||
split_V2 = dirV2 (regV "separar") ; -- dividir,) ;
|
||||
squeeze_V2 = dirV2 (regV "exprimir") ;
|
||||
stab_V2 = dirV2 (regV "apuñalar") ;
|
||||
stand_V = verboV (estar_2 "estar") ; ---- "estar de pie" ;
|
||||
suck_V2 = dirV2 (regV "chupar") ;
|
||||
swell_V = regV "tragar" ;
|
||||
swim_V = regV "nadar" ;
|
||||
think_V = regV "pensar" ;
|
||||
throw_V2 = dirV2 (regV "tirar") ;
|
||||
tie_V2 = dirV2 (regV "atar") ;
|
||||
turn_V = regV "doblar" ;
|
||||
vomit_V = regV "vomitar" ;
|
||||
walk_V = regV "caminar" ;
|
||||
wash_V2 = dirV2 (regV "lavar") ;
|
||||
wipe_V2 = dirV2 (regV "secar") ;
|
||||
|
||||
}
|
||||
252
old-examples/bronzeage/old/SwadeshSwe.gf
Normal file
252
old-examples/bronzeage/old/SwadeshSwe.gf
Normal file
@@ -0,0 +1,252 @@
|
||||
--# -path=.:present:prelude
|
||||
|
||||
concrete SwadeshSwe of Swadesh = CatSwe
|
||||
** open MorphoSwe, LangSwe, ParadigmsSwe, IrregSwe, Prelude in {
|
||||
|
||||
lincat
|
||||
MassN = N ;
|
||||
|
||||
lin
|
||||
|
||||
-- Pronouns
|
||||
|
||||
i_NP = i_Pron ;
|
||||
youSg_NP = youSg_Pron ;
|
||||
he_NP = he_Pron ;
|
||||
we_NP = we_Pron ;
|
||||
youPl_NP = youPl_Pron ;
|
||||
they_NP = they_Pron ;
|
||||
whoPl_IP = whoPl_IP ;
|
||||
whoSg_IP = whoSg_IP ;
|
||||
whatPl_IP = whatPl_IP ;
|
||||
whatSg_IP = whatSg_IP ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
this_Det = DetSg (SgQuant this_Quant) NoOrd ;
|
||||
that_Det = DetSg (SgQuant that_Quant) NoOrd ;
|
||||
all_Det = {s = \\_,_ => "alla" ; n = Pl ; det = DDef Indef} ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = someSg_Det ;
|
||||
few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ;
|
||||
other_Det = {s = \\_,_ => "andra" ; n = Pl ; det = DDef Indef} ;
|
||||
|
||||
left_Ord = {s = "vänstra" ; isDet = True} ;
|
||||
right_Ord = {s = "högra" ; isDet = True} ;
|
||||
|
||||
-- Adverbs
|
||||
|
||||
here_Adv = here_Adv ;
|
||||
there_Adv = there_Adv ;
|
||||
where_IAdv = where_IAdv ;
|
||||
when_IAdv = when_IAdv ;
|
||||
how_IAdv = how_IAdv ;
|
||||
far_Adv = mkAdv "långt" ;
|
||||
|
||||
-- not : Adv ; -- ?
|
||||
|
||||
-- Conjunctions
|
||||
|
||||
and_Conj = and_Conj ;
|
||||
|
||||
-- Prepositions
|
||||
|
||||
at_Prep = ss "vid" ;
|
||||
in_Prep = ss "i" ;
|
||||
with_Prep = ss "med" ;
|
||||
|
||||
-- Numerals
|
||||
|
||||
one_Det = DetSg one_Quant NoOrd ;
|
||||
two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
|
||||
three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
|
||||
four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
|
||||
five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
|
||||
|
||||
-- Adjectives
|
||||
|
||||
bad_A = bad_A ;
|
||||
big_A = big_A ;
|
||||
black_A = black_A ;
|
||||
cold_A = cold_A ;
|
||||
correct_A = regA "riktig" ;
|
||||
dirty_A = dirty_A ;
|
||||
dry_A = regA "torr" ;
|
||||
dull_A = mk2A "slö" "slött";
|
||||
full_A = regA "full" ;
|
||||
good_A = good_A ;
|
||||
green_A = green_A ;
|
||||
heavy_A = irregA "tung" "tyngre" "tyngst" ;
|
||||
long_A = long_A ;
|
||||
narrow_A = narrow_A ;
|
||||
near_A = mkA "nära" "nära" "nära" "nära"
|
||||
"närmare" "närmast" "närmaste" ;
|
||||
new_A = new_A ;
|
||||
old_A = old_A ;
|
||||
red_A = red_A ;
|
||||
rotten_A = mk3A "rutten" "ruttet" "ruttna" ;
|
||||
round_A = regA "rund" ;
|
||||
sharp_A = regA "vass" ;
|
||||
short_A = short_A ;
|
||||
small_A = small_A ;
|
||||
smooth_A = regA "slät" ;
|
||||
straight_A = regA "rak" ;
|
||||
thick_A = thick_A ;
|
||||
thin_A = thin_A ;
|
||||
warm_A = warm_A ;
|
||||
wet_A = regA "våt" ;
|
||||
white_A = white_A ;
|
||||
wide_A = mk2A "bred" "brett" ;
|
||||
yellow_A = yellow_A ;
|
||||
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = mk2N "djur" "djur" ;
|
||||
ashes_N = mk2N "aska" "askor" ;
|
||||
back_N = mk2N "rygg" "ryggar" ;
|
||||
bark_N = mk2N "bark" "barkar" ;
|
||||
belly_N = mk2N "mage" "magar" ;
|
||||
bird_N = bird_N ;
|
||||
blood_N = mk2N "blod" "blod" ;
|
||||
bone_N = mk2N "ben" "ben" ;
|
||||
breast_N = mk2N "bröst" "bröst" ;
|
||||
child_N = child_N ;
|
||||
cloud_N = mk2N "moln" "moln" ;
|
||||
day_N = mk2N "dag" "dagar" ;
|
||||
dog_N = dog_N ;
|
||||
dust_N = mk2N "damm" "damm" ;
|
||||
ear_N = mkN "öra" "örat" "öron" "öronen" ;
|
||||
earth_N = mk2N "jord" "jordar" ;
|
||||
egg_N = mk2N "ägg" "ägg" ;
|
||||
eye_N = mkN "öga" "ögat" "ögon" "ögonen" ;
|
||||
fat_N = mk2N "fett" "fett" ;
|
||||
father_N = (mkN "far" "fadern" "fäder" "fäderna") ;
|
||||
-- father_N = UseN2 father_N2 ;
|
||||
feather_N = mk2N "fjäder" "fjädrar" ;
|
||||
fingernail_N = mkN "nagel" "nageln" "naglar" "naglarna";
|
||||
fire_N = mk2N "eld" "eldar" ;
|
||||
fish_N = fish_N ;
|
||||
flower_N = mk2N "blomma" "blommor" ;
|
||||
fog_N = mk2N "dimma" "dimmor" ;
|
||||
foot_N = mk2N "fot" "fötter" ;
|
||||
forest_N = mk2N "skog" "skogar" ;
|
||||
fruit_N = fruit_N ;
|
||||
grass_N = mk2N "gräs" "gräs" ;
|
||||
guts_N = mk2N "inälva" "inälvor" ;
|
||||
hair_N = mk2N "hår" "hår" ;
|
||||
hand_N = mk2N "hand" "händer" ;
|
||||
head_N = mkN "huvud" "huvudet" "huvuden" "huvudena" ;
|
||||
heart_N = mkN "hjärta" "hjärtat" "hjärtan" "hjärtana" ;
|
||||
horn_N = mk2N "horn" "horn" ;
|
||||
husband_N = (mk2N "make" "makar") ;
|
||||
ice_N = mk2N "is" "isar" ;
|
||||
knee_N = mkN "knä" "knäet" "knän" "knäna" ;
|
||||
lake_N = lake_N ;
|
||||
leaf_N = mk2N "löv" "löv" ;
|
||||
leg_N = mk2N "ben" "ben" ;
|
||||
liver_N = mkN "lever" "levern" "levrar" "levrarna";
|
||||
louse_N = mkN "lus" "lusen" "löss" "lössen" ;
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = mkN "mor" "modern" "mödrar" "mödrarna" ;
|
||||
-- mother_N = UseN2 mother_N2 ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = mkN "mun" "munnen" "munnar" "munnarna" ;
|
||||
name_N = mk2N "namn" "namn" ;
|
||||
neck_N = mk2N "nacke" "nackar" ;
|
||||
night_N = mk2N "natt" "nätter" ;
|
||||
nose_N = mk2N "näsa" "näsor" ;
|
||||
person_N = mk2N "person" "personer" ;
|
||||
rain_N = mk2N "regn" "regn" ;
|
||||
river_N = river_N ;
|
||||
road_N = mk2N "väg" "vägar" ;
|
||||
root_N = mk2N "rot" "rötter" ;
|
||||
rope_N = mk2N "rep" "rep" ;
|
||||
salt_N = mkN "salt" "saltet" "salter" "salterna";
|
||||
sand_N = mk2N "sand" "sander" ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = mkN "frö" "fröet" "frön" "fröna" ;
|
||||
skin_N = mk2N "skinn" "skinn" ;
|
||||
sky_N = mk2N "himmel" "himlar" ;
|
||||
smoke_N = mk2N "rök" "rökar" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = mkN "snö" "snön" "snöer" "snöerna" ;
|
||||
star_N = star_N ;
|
||||
stick_N = mk2N "pinne" "pinnar" ;
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = mk2N "svans" "svansar" ;
|
||||
tongue_N = mk2N "tunga" "tungor" ;
|
||||
tooth_N = mk2N "tand" "tänder" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
wife_N = mk2N "fru" "fruar" ;
|
||||
wind_N = mk2N "vind" "vindar" ;
|
||||
wing_N = mk2N "vinge" "vingar" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = mk2N "mask" "maskar" ;
|
||||
year_N = mk2N "år" "år" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 = dirV2 (bita_V) ;
|
||||
blow_V = mk2V "blåsa" "blåste" ;
|
||||
breathe_V2 = dirV2 (depV (regV "anda")) ;
|
||||
burn_V = brinna_V ; -- FIXME: bränna?
|
||||
come_V = komma_V ;
|
||||
count_V2 = dirV2 (regV "räkna") ;
|
||||
cut_V2 = dirV2 (skära_V) ;
|
||||
die_V = dö_V ;
|
||||
dig_V = mk2V "gräva" "grävde" ;
|
||||
drink_V2 = dirV2 (dricka_V) ;
|
||||
eat_V2 = dirV2 (äta_V) ;
|
||||
fall_V = falla_V ;
|
||||
fear_V2 = dirV2 (regV "frukta") ;
|
||||
-- FIXME: passive forms are very strange
|
||||
fight_V = mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") "med" ;
|
||||
float_V = flyta_V ;
|
||||
flow_V = rinna_V ;
|
||||
fly_V = flyga_V ;
|
||||
freeze_V = frysa_V ;
|
||||
give_V = dirV3 giva_V "till";
|
||||
hear_V2 = dirV2 (mk2V "höra" "hörde") ;
|
||||
hit_V2 = dirV2 (slå_V) ;
|
||||
hold_V2 = dirV2 (hålla_V) ;
|
||||
hunt_V2 = dirV2 (regV "jaga") ;
|
||||
kill_V2 = dirV2 (regV "döda") ;
|
||||
know_V2 = dirV2 (känna_V) ;
|
||||
laugh_V = regV "skratta" ;
|
||||
lie_V = ligga_V ;
|
||||
live_V = leva_V ;
|
||||
play_V = mk2V "leka" "lekte" ;
|
||||
pull_V2 = dirV2 (draga_V) ;
|
||||
push_V2 = dirV2 (mk2V "trycka" "tryckte") ;
|
||||
rub_V2 = dirV2 (gnida_V) ;
|
||||
say_V = säga_V ;
|
||||
scratch_V2 = dirV2 (regV "klia") ;
|
||||
see_V2 = dirV2 (se_V) ;
|
||||
sew_V = sy_V ;
|
||||
sing_V = sjunga_V ;
|
||||
sit_V = sitta_V ;
|
||||
sleep_V = sova_V ;
|
||||
smell_V = regV "lukta" ;
|
||||
spit_V = regV "spotta" ;
|
||||
split_V2 = dirV2 (klyva_V) ;
|
||||
squeeze_V2 = dirV2 (klämma_V) ;
|
||||
stab_V2 = dirV2 (sticka_V) ;
|
||||
stand_V = stå_V ;
|
||||
suck_V2 = dirV2 (suga_V) ;
|
||||
swell_V = svälla_V ;
|
||||
swim_V = regV "simma" ;
|
||||
think_V = mk2V "tänka" "tänkte" ;
|
||||
throw_V2 = dirV2 (regV "kasta") ;
|
||||
tie_V2 = dirV2 (knyta_V) ;
|
||||
turn_V = vända_V ;
|
||||
vomit_V = mk2V "spy" "spydde" ;
|
||||
walk_V = gå_V ;
|
||||
wash_V2 = dirV2 (regV "tvätta") ;
|
||||
wipe_V2 = dirV2 (regV "torka") ;
|
||||
|
||||
}
|
||||
4
old-examples/compiling/Compex.gf
Normal file
4
old-examples/compiling/Compex.gf
Normal file
@@ -0,0 +1,4 @@
|
||||
abstract Compex = {
|
||||
cat Prop ; Ind ;
|
||||
fun Even : Ind -> Prop ;
|
||||
}
|
||||
8
old-examples/compiling/CompexEng.gf
Normal file
8
old-examples/compiling/CompexEng.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
concrete CompexEng of Compex = open MathematicalEng, ParadigmsEng, Prelude in {
|
||||
lincat
|
||||
Prop = {s : Bool => Str} ;
|
||||
Ind = NP ;
|
||||
lin
|
||||
Even : Ind -> Prop ;
|
||||
|
||||
}
|
||||
12
old-examples/dialogue/Agenda.gf
Normal file
12
old-examples/dialogue/Agenda.gf
Normal file
@@ -0,0 +1,12 @@
|
||||
abstract Agenda = Dialogue, Weekday ** {
|
||||
|
||||
fun
|
||||
Day : Kind ;
|
||||
Meeting : Kind ;
|
||||
Add : Oper2 Meeting Day ;
|
||||
Remove : Oper1 Meeting ;
|
||||
Interrupt : Oper0 ;
|
||||
|
||||
day : WDay -> Object Day ;
|
||||
|
||||
}
|
||||
15
old-examples/dialogue/AgendaEng.gf
Normal file
15
old-examples/dialogue/AgendaEng.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete AgendaEng of Agenda =
|
||||
DialogueEng, WeekdayEng ** open MultiEng, ParadigmsEng in {
|
||||
|
||||
lin
|
||||
Day = UseN (regN "day") ;
|
||||
Meeting = UseN (regN "meeting") ;
|
||||
Add = dirV3 (regV "add") (mkPrep "on") ;
|
||||
Remove = dirV2 (regV "remove") ;
|
||||
Interrupt = regV "interrupt" ;
|
||||
|
||||
day = UsePN ;
|
||||
|
||||
}
|
||||
15
old-examples/dialogue/AgendaFin.gf
Normal file
15
old-examples/dialogue/AgendaFin.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete AgendaFin of Agenda =
|
||||
DialogueFin, WeekdayFin ** open MultiFin, ParadigmsFin in {
|
||||
|
||||
lin
|
||||
Day = UseN (regN "päivä") ;
|
||||
Meeting = UseN (regN "kokous") ;
|
||||
Add = dirV3 (regV "lisätä") translative ;
|
||||
Remove = dirV2 (regV "poistaa") ;
|
||||
Interrupt = regV "keskeyttää" ;
|
||||
|
||||
day = UsePN ;
|
||||
|
||||
}
|
||||
16
old-examples/dialogue/AgendaFre.gf
Normal file
16
old-examples/dialogue/AgendaFre.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete AgendaFre of Agenda =
|
||||
DialogueFre, WeekdayFre ** open MultiFre, ParadigmsFre, IrregFre in {
|
||||
|
||||
lin
|
||||
Day = UseN (regN "jour") ;
|
||||
Meeting = UseN (regN "réunion") ;
|
||||
Add = dirdirV3 (regV "ajouter") ;
|
||||
Remove = dirV2 (regV "ôter") ;
|
||||
Interrupt = interrompre_V2 ;
|
||||
|
||||
day = UsePN ;
|
||||
|
||||
}
|
||||
|
||||
15
old-examples/dialogue/AgendaProlog.gf
Normal file
15
old-examples/dialogue/AgendaProlog.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
--# -path=.:prelude
|
||||
|
||||
concrete AgendaProlog of Agenda =
|
||||
DialogueProlog, WeekdayProlog ** open ResProlog, Prelude in {
|
||||
|
||||
lin
|
||||
Day = ss "day" ;
|
||||
Meeting = ss "meeting" ;
|
||||
Add = op2 "add_event" "event_to_store" "date_to_store" ;
|
||||
Remove = op1 "remove_event" "event_to_remove" ;
|
||||
Interrupt = ss "interrupt" ;
|
||||
|
||||
day = apps "weekday" ;
|
||||
|
||||
}
|
||||
16
old-examples/dialogue/AgendaSwe.gf
Normal file
16
old-examples/dialogue/AgendaSwe.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete AgendaSwe of Agenda =
|
||||
DialogueSwe, WeekdaySwe ** open MultiSwe, ParadigmsSwe, IrregSwe in {
|
||||
|
||||
lin
|
||||
Day = UseN (regN "dag") ;
|
||||
Meeting = UseN (regGenN "möte" neutrum) ;
|
||||
Add = dirV3 (partV lägga_V "till") (mkPrep "på") ;
|
||||
Remove = dirV2 (partV taga_V "bort") ;
|
||||
Interrupt = avbryta_V ;
|
||||
|
||||
day = UsePN ;
|
||||
|
||||
}
|
||||
|
||||
13
old-examples/dialogue/AuxDialogue.gf
Normal file
13
old-examples/dialogue/AuxDialogue.gf
Normal file
@@ -0,0 +1,13 @@
|
||||
interface AuxDialogue = open Multi in {
|
||||
oper
|
||||
defN : N -> NP = \n ->
|
||||
DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN n) ;
|
||||
|
||||
mkMove : Str -> Phr = \s -> {s = variants {
|
||||
s ;
|
||||
s ++ please_Voc.s
|
||||
} ;
|
||||
lock_Phr = <>
|
||||
} ;
|
||||
|
||||
}
|
||||
2
old-examples/dialogue/AuxEng.gf
Normal file
2
old-examples/dialogue/AuxEng.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
instance AuxEng of AuxDialogue = open MultiEng in {
|
||||
}
|
||||
2
old-examples/dialogue/AuxFin.gf
Normal file
2
old-examples/dialogue/AuxFin.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
instance AuxFin of AuxDialogue = open MultiFin in {
|
||||
}
|
||||
2
old-examples/dialogue/AuxFre.gf
Normal file
2
old-examples/dialogue/AuxFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
instance AuxFre of AuxDialogue = open MultiFre in {
|
||||
}
|
||||
2
old-examples/dialogue/AuxSwe.gf
Normal file
2
old-examples/dialogue/AuxSwe.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
instance AuxSwe of AuxDialogue = open MultiSwe in {
|
||||
}
|
||||
52
old-examples/dialogue/Dialogue.gf
Normal file
52
old-examples/dialogue/Dialogue.gf
Normal file
@@ -0,0 +1,52 @@
|
||||
abstract Dialogue = {
|
||||
|
||||
flags startcat=Move ;
|
||||
|
||||
cat
|
||||
Move ;
|
||||
Action ;
|
||||
Proposition ;
|
||||
Question ;
|
||||
Kind ;
|
||||
Object Kind ;
|
||||
Oper0 ;
|
||||
Oper1 Kind ;
|
||||
Oper2 Kind Kind ;
|
||||
|
||||
fun
|
||||
IRequest : Action -> Input ;
|
||||
IConfirm : Action -> Input ;
|
||||
IAnswer : Proposition -> Input ;
|
||||
IIssue : Question -> Input ;
|
||||
|
||||
IYes : Input ;
|
||||
INo : Input ;
|
||||
IObject : (k : Kind) -> Object k -> Input ;
|
||||
|
||||
PAction : Action -> Proposition ;
|
||||
|
||||
QKind : Kind -> Question ;
|
||||
|
||||
AOper0 : Oper0 -> Action ;
|
||||
AOper1 : (k : Kind) -> Oper1 k -> Object k -> Action ;
|
||||
AOper2 : (k,m : Kind) -> Oper2 k m -> Object k -> Object m -> Action ;
|
||||
|
||||
OAll : (k : Kind) -> Object k ;
|
||||
OIndef : (k : Kind) -> Object k ;
|
||||
ODef : (k : Kind) -> Object k ;
|
||||
|
||||
-- multimodality
|
||||
|
||||
cat
|
||||
Click ;
|
||||
Input ; -- multimodal asynchronous input
|
||||
Speech ; -- speech only
|
||||
fun
|
||||
OThis : (k : Kind) -> Click -> Object k ;
|
||||
OThisKind : (k : Kind) -> Click -> Object k ;
|
||||
|
||||
MInput : Input -> Move ;
|
||||
SInput : Input -> Speech ;
|
||||
|
||||
MkClick : String -> Click ;
|
||||
}
|
||||
4
old-examples/dialogue/DialogueEng.gf
Normal file
4
old-examples/dialogue/DialogueEng.gf
Normal file
@@ -0,0 +1,4 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete DialogueEng of Dialogue = DialogueI with
|
||||
(Multi = MultiEng) ;
|
||||
4
old-examples/dialogue/DialogueFin.gf
Normal file
4
old-examples/dialogue/DialogueFin.gf
Normal file
@@ -0,0 +1,4 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete DialogueFin of Dialogue = DialogueI with
|
||||
(Multi = MultiFin) ;
|
||||
4
old-examples/dialogue/DialogueFre.gf
Normal file
4
old-examples/dialogue/DialogueFre.gf
Normal file
@@ -0,0 +1,4 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete DialogueFre of Dialogue = DialogueI with
|
||||
(Multi = MultiFre) ;
|
||||
98
old-examples/dialogue/DialogueI.gf
Normal file
98
old-examples/dialogue/DialogueI.gf
Normal file
@@ -0,0 +1,98 @@
|
||||
incomplete concrete DialogueI of Dialogue = open Multi, Prelude in {
|
||||
|
||||
flags optimize = all_subs ;
|
||||
|
||||
lincat
|
||||
Move = Phr ;
|
||||
Action = {s : ActType => Str ; point : Str} ;
|
||||
Proposition = Utt ; ----
|
||||
Question = Utt ;
|
||||
Kind = CN ;
|
||||
Object = NP ;
|
||||
Oper0 = V ;
|
||||
Oper1 = V2 ;
|
||||
Oper2 = V3 ;
|
||||
|
||||
lin
|
||||
IRequest a = {s = a.s ! ARequest ; point = a.point ; lock_Utt = <>} ;
|
||||
IConfirm a = {s = a.s ! AConfirm ; point = a.point ; lock_Utt = <>} ;
|
||||
IAnswer a = a ;
|
||||
IIssue a = a ;
|
||||
|
||||
IYes = yes_Phr ** noPoint ;
|
||||
INo = no_Phr ** noPoint ;
|
||||
IObject _ ob = UttNP ob ;
|
||||
|
||||
PAction a = {s = a.s ! AConfirm ; point = a.point ; lock_Utt = <>} ;
|
||||
|
||||
QKind k =
|
||||
UttQS (UseQCl TPres ASimul PPos
|
||||
(ExistIP (IDetCN whichPl_IDet NoNum NoOrd k))) ;
|
||||
|
||||
AOper0 op = mkAction (UseV op) ;
|
||||
AOper1 _ op x = mkAction (ComplV2 op x) ;
|
||||
AOper2 _ _ op x y = mkAction (ComplV3 op x y) ;
|
||||
|
||||
OAll k = PredetNP all_Predet (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) k) ;
|
||||
OIndef k = DetCN (DetSg (SgQuant IndefArt) NoOrd) k ;
|
||||
ODef k = DetCN (DetSg (SgQuant DefArt) NoOrd) k ;
|
||||
|
||||
param
|
||||
ActType = ARequest | AConfirm ; -- and some others
|
||||
|
||||
oper
|
||||
|
||||
-- this should perhaps be language dependent - but at least these
|
||||
-- variants seem to make sense in all languages
|
||||
|
||||
mkAction : VP -> {s : ActType => Str ; point : Str} = \vp -> {
|
||||
s = table {
|
||||
ARequest => (variants {
|
||||
aImp vp ;
|
||||
aWant vp ;
|
||||
aCanYou vp
|
||||
}).s ;
|
||||
AConfirm => (variants {
|
||||
aInf vp
|
||||
}).s
|
||||
} ;
|
||||
point = vp.point
|
||||
} ;
|
||||
|
||||
optPlease : Voc = variants {NoVoc ; please_Voc} ;
|
||||
|
||||
aImp : VP -> Utt = \vp ->
|
||||
UttImpSg PPos (ImpVP vp) ;
|
||||
|
||||
aWant : VP -> Utt = \vp ->
|
||||
UttS (UseCl TPres ASimul PPos
|
||||
(PredVP (UsePron i_Pron) (ComplVV want_VV vp))) ;
|
||||
|
||||
aCanYou : VP -> Utt = \vp ->
|
||||
UttQS (UseQCl TPres ASimul PPos (QuestCl
|
||||
(PredVP (UsePron youSg_Pron) (ComplVV can_VV vp)))) ;
|
||||
|
||||
aInf : VP -> Utt = \vp ->
|
||||
UttVP vp ;
|
||||
|
||||
-- multimodality
|
||||
|
||||
lincat
|
||||
Click = Point ;
|
||||
Input = Utt ;
|
||||
Speech = Multi.Speech ;
|
||||
|
||||
lin
|
||||
OThis k c = this8point_NP c ;
|
||||
OThisKind k c = DetCN (DetSg (SgQuant (this8point_Quant c)) NoOrd) k ;
|
||||
|
||||
MInput i = PhrUtt NoPConj i optPlease ;
|
||||
SInput i = SpeechUtt NoPConj i optPlease ;
|
||||
|
||||
MkClick = MkPoint ;
|
||||
|
||||
oper
|
||||
noPoint = {point = []} ;
|
||||
|
||||
}
|
||||
|
||||
42
old-examples/dialogue/DialogueProlog.gf
Normal file
42
old-examples/dialogue/DialogueProlog.gf
Normal file
@@ -0,0 +1,42 @@
|
||||
--# -path=.:prelude
|
||||
|
||||
concrete DialogueProlog of Dialogue = open ResProlog, Prelude in {
|
||||
|
||||
flags lexer=codelit ; unlexer=code ;
|
||||
|
||||
lincat
|
||||
Move = SS ;
|
||||
Action = SS ;
|
||||
Proposition = SS ;
|
||||
Question = SS ;
|
||||
Kind = SS ;
|
||||
Object = SS ;
|
||||
Oper0 = SS ;
|
||||
Oper1 = {s, x : Str} ;
|
||||
Oper2 = {s, x, y : Str} ;
|
||||
|
||||
lin
|
||||
MRequest a = a ;
|
||||
MConfirm a = a ; --- ??
|
||||
MAnswer a = a ; --- ??
|
||||
MIssue a = ss (bracket (app1 "ask" a.s)) ; --- ??
|
||||
|
||||
MYes = ss (bracket (app1 "answer" "yes")) ;
|
||||
MNo = ss (bracket (app1 "answer" "no")) ;
|
||||
MObject _ ob = ss (bracket (apps "answer" ob).s) ;
|
||||
|
||||
QKind k = ss (app2 "q" "X" (app1 k.s "X")) ;
|
||||
|
||||
AOper0 op = ss (bracket (request op.s)) ;
|
||||
AOper1 _ op x = ss (req_ans op.s op.x x.s) ;
|
||||
AOper2 _ _ op x y =
|
||||
ss (bracket (request op.s ++ "," ++
|
||||
answer (app1 op.x x.s) ++ "," ++ answer (app1 op.y y.s))) ;
|
||||
|
||||
OAll = apps "all" ;
|
||||
OIndef = apps "indef" ;
|
||||
ODef = apps "def" ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
4
old-examples/dialogue/DialogueSwe.gf
Normal file
4
old-examples/dialogue/DialogueSwe.gf
Normal file
@@ -0,0 +1,4 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete DialogueSwe of Dialogue = DialogueI with
|
||||
(Multi = MultiSwe) ;
|
||||
16
old-examples/dialogue/Lights.gf
Normal file
16
old-examples/dialogue/Lights.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
abstract Lights = Dialogue ** {
|
||||
|
||||
fun
|
||||
Light : Kind ;
|
||||
Room : Kind ;
|
||||
SwitchOnIn : Oper2 Light Room ;
|
||||
SwitchOffIn : Oper2 Light Room ;
|
||||
SwitchOn : Oper1 Light ;
|
||||
SwitchOff : Oper1 Light ;
|
||||
|
||||
LivingRoom : Object Room ;
|
||||
Kitchen : Object Room ;
|
||||
|
||||
MorningMode : Move ;
|
||||
|
||||
}
|
||||
19
old-examples/dialogue/LightsEng.gf
Normal file
19
old-examples/dialogue/LightsEng.gf
Normal file
@@ -0,0 +1,19 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete LightsEng of Lights =
|
||||
DialogueEng ** open MultiEng, ParadigmsEng, AuxEng, Prelude in {
|
||||
|
||||
lin
|
||||
Light = UseN (regN "light") ;
|
||||
Room = UseN (regN "room") ;
|
||||
SwitchOnIn = dirV3 (partV (regV "switch") "on") (mkPrep "in") ;
|
||||
SwitchOffIn = dirV3 (partV (regV "switch") "off") (mkPrep "in") ;
|
||||
SwitchOn = dirV2 (partV (regV "switch") "on") ;
|
||||
SwitchOff = dirV2 (partV (regV "switch") "off") ;
|
||||
|
||||
LivingRoom = defN (regN ["living-room"]) ;
|
||||
Kitchen = defN (regN ["kitchen"]) ;
|
||||
|
||||
MorningMode = mkMove (optStr "the" ++ ["morning mode"]) ;
|
||||
|
||||
}
|
||||
19
old-examples/dialogue/LightsFin.gf
Normal file
19
old-examples/dialogue/LightsFin.gf
Normal file
@@ -0,0 +1,19 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete LightsFin of Lights =
|
||||
DialogueFin ** open MultiFin, ParadigmsFin, AuxFin in {
|
||||
|
||||
lin
|
||||
Light = UseN (regN "valo") ;
|
||||
Room = UseN (regN "huone") ;
|
||||
SwitchOnIn = dirV3 (regV "sytyttää") inessive ;
|
||||
SwitchOffIn = dirV3 (regV "sammuttaa") inessive ;
|
||||
SwitchOn = dirV2 (regV "sytyttää") ;
|
||||
SwitchOff = dirV2 (regV "sammuttaa") ;
|
||||
|
||||
LivingRoom = defN (regN "olohuone") ;
|
||||
Kitchen = defN (regN "keittiö") ;
|
||||
|
||||
MorningMode = mkMove ["aamuvalaistus"] ;
|
||||
|
||||
}
|
||||
19
old-examples/dialogue/LightsFre.gf
Normal file
19
old-examples/dialogue/LightsFre.gf
Normal file
@@ -0,0 +1,19 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
concrete LightsFre of Lights =
|
||||
DialogueFre ** open MultiFre, ParadigmsFre, IrregFre, AuxFre in {
|
||||
|
||||
lin
|
||||
Light = UseN (regN "lampe") ;
|
||||
Room = UseN (regN "chambre") ;
|
||||
SwitchOnIn = dirV3 (regV "allumer") (mkPrep "dans") ;
|
||||
SwitchOffIn = dirV3 éteindre_V2 (mkPrep "dans") ;
|
||||
SwitchOn = dirV2 (regV "allumer") ;
|
||||
SwitchOff = dirV2 éteindre_V2 ;
|
||||
|
||||
LivingRoom = defN (regN "salon") ;
|
||||
Kitchen = defN (regN "cuisine") ;
|
||||
|
||||
MorningMode = mkMove ["le mode matinal"] ;
|
||||
|
||||
}
|
||||
20
old-examples/dialogue/LightsProlog.gf
Normal file
20
old-examples/dialogue/LightsProlog.gf
Normal file
@@ -0,0 +1,20 @@
|
||||
--# -path=.:prelude
|
||||
|
||||
concrete LightsProlog of Lights =
|
||||
DialogueProlog ** open ResProlog, Prelude in {
|
||||
|
||||
lin
|
||||
Light = ss "light" ;
|
||||
Room = ss "room" ;
|
||||
SwitchOnIn = op2 "switch_on" "switch_what" "switch_where" ;
|
||||
SwitchOffIn = op2 "switch_off" "switch_what" "switch_where" ;
|
||||
SwitchOn = op1 "switch_on" "switch_what" ;
|
||||
SwitchOff = op1 "switch_off" "switch_what" ;
|
||||
|
||||
LivingRoom = ss "living_room" ;
|
||||
Kitchen = ss "kitchen" ;
|
||||
|
||||
MorningMode = ss (bracket (app1 "answer" "morning_mode")) ;
|
||||
|
||||
}
|
||||
|
||||
20
old-examples/dialogue/LightsSwe.gf
Normal file
20
old-examples/dialogue/LightsSwe.gf
Normal file
@@ -0,0 +1,20 @@
|
||||
--# -path=.:multimodal:alltenses:prelude
|
||||
|
||||
|
||||
concrete LightsSwe of Lights =
|
||||
DialogueSwe ** open MultiSwe, ParadigmsSwe, AuxSwe in {
|
||||
|
||||
lin
|
||||
Light = UseN (regN "lampa") ;
|
||||
Room = UseN (mkN "rum" "rummet" "rum" "rummen") ;
|
||||
SwitchOnIn = dirV3 (regV "tänder") (mkPrep "i") ;
|
||||
SwitchOffIn = dirV3 (regV "släcker") (mkPrep "i") ;
|
||||
SwitchOn = dirV2 (regV "tänder") ;
|
||||
SwitchOff = dirV2 (regV "släcker") ;
|
||||
|
||||
LivingRoom = defN (mkN "vardagsrum" "vardagsrummet" "vardagsrum" "vardagsrummen") ;
|
||||
Kitchen = defN (mk2N "kök" "kök") ;
|
||||
|
||||
MorningMode = mkMove ["morgonläget"] ;
|
||||
|
||||
}
|
||||
14
old-examples/dialogue/Makefile
Normal file
14
old-examples/dialogue/Makefile
Normal file
@@ -0,0 +1,14 @@
|
||||
lights:
|
||||
echo "s ;; pm | wf lights.gfcm" | gf Lights*.gf
|
||||
|
||||
agenda:
|
||||
echo "s ;; pm | wf agenda.gfcm" | gf Agenda*.gf
|
||||
|
||||
engcorpus:
|
||||
echo "gt -depth=4 | pt -transform=typecheck | l -all" | gf LightsEng.gf
|
||||
|
||||
swecorpus:
|
||||
echo "gt -depth=4 | pt -transform=typecheck | l -all" | gf LightsSwe.gf
|
||||
|
||||
doc:
|
||||
txt2tags -thtml -ogf-dialogue.html README.txt
|
||||
99
old-examples/dialogue/README.txt
Normal file
99
old-examples/dialogue/README.txt
Normal file
@@ -0,0 +1,99 @@
|
||||
Dialogue system grammars using GF resource.
|
||||
|
||||
AR 16/5/2006
|
||||
|
||||
|
||||
24/5 Added multimodality.
|
||||
|
||||
==Functionality and purpose==
|
||||
|
||||
Dialogue system abstract syntax + concrete syntaxes for
|
||||
different languages. One of them is Prolog (with some resemblance to
|
||||
dialogue moves in GoDiS).
|
||||
|
||||
The purpose is to show how new systems can be built for new domains just
|
||||
by specifying just two things:
|
||||
- a domain ontology in abstract syntax
|
||||
- a domain terminologies in concrete syntaxes
|
||||
|
||||
|
||||
This is based on two library elements
|
||||
- base dialogue grammars
|
||||
- resource grammar libraries
|
||||
|
||||
|
||||
In general, the only kind of elements that need to be added are
|
||||
constants (0-place fun's) of the following categories from Dialogue.gf.
|
||||
```
|
||||
Kind ; -- e.g. Room
|
||||
Object Kind ; -- e.g. Kitchen
|
||||
Oper0 ; -- e.g. Stop
|
||||
Oper1 Kind ; -- e.g. Play
|
||||
Oper2 Kind Kind ; -- e.g. Add
|
||||
Move ; -- e.g. MorningMode
|
||||
```
|
||||
|
||||
|
||||
==Files in this directory==
|
||||
|
||||
Files (for X = Eng, Fin, Fre, Prolog, Swe):
|
||||
|
||||
Files provided as library to build on:
|
||||
```
|
||||
Dialogue.gf -- base dialogue grammar
|
||||
DialogueX.gf -- implementation instance
|
||||
DialogueI.gf -- implementation functor
|
||||
|
||||
ResProlog.gf -- help constructs for Prolog terms
|
||||
|
||||
Weekday.gf -- untility grammar with weekdays
|
||||
WeekdayX.gf
|
||||
|
||||
AuxDialogue.gf-- interface of auxiliary resource-defined opers
|
||||
AuxX.gf -- instances for different languages
|
||||
```
|
||||
Files implementing two examples.
|
||||
```
|
||||
Agenda.gf -- application grammar for agenda
|
||||
AgendaX.gf
|
||||
|
||||
Lights.gf -- application grammar for lights
|
||||
Lights.gf
|
||||
```
|
||||
|
||||
==Files needed to build a new application==
|
||||
|
||||
To build a new application for domain Dom, you thus need
|
||||
```
|
||||
Dom.gf -- introduce fun's in Kind, Object, Oper0, Oper1, Oper2
|
||||
DomX.gf -- concrete syntax of the new fun's for language X
|
||||
```
|
||||
|
||||
==Some tests==
|
||||
|
||||
You first need to do, with the latest resource grammar version,
|
||||
- ``make present`` in ``lib/resource-1.0``
|
||||
|
||||
To test an application in GF, do e.g.
|
||||
- ``make lights`` to make a package with all the Lights grammars
|
||||
- ``make engcorpus`` to generate an English corpus
|
||||
- ``make swecorpus`` to generate a Swedish corpus
|
||||
|
||||
|
||||
|
||||
Here are some other commands:
|
||||
- ``i LightsEng.gf`` in current dir, to load a grammar
|
||||
- ``gr | l -all`` to random-generate
|
||||
- ``gt -depth=4 | pt -transform=typecheck | l -all`` to generate a corpus
|
||||
- ``p "switch off all lights in the kitchen"`` to parse
|
||||
- ``i LightsProlog.gf`` to load the Prolog version
|
||||
- ``pg -printer=gsl -startcat=Move`` to print a Nuance grammar
|
||||
- ``p -lang=LightsEng "switch off all lights" | pt -transform=solve | l -lang=LightsProlog``
|
||||
to translate from English to Prolog
|
||||
- ``si -tr -lang=LightsEng | p -cat=Move -lang=LightsEng | pt -transform=solve | l -lang=LightsProlog``
|
||||
to translate English speech into Prolog
|
||||
|
||||
|
||||
The last one is the coolest - but you may need to enable the ``speech_input`` command by installing ATK
|
||||
and recompiling GF.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user