1
0
forked from GitHub/gf-core

took away old-examples

This commit is contained in:
aarne
2008-06-27 09:18:50 +00:00
parent ae83ab19ed
commit 9fbe3cbcd3
621 changed files with 0 additions and 412541 deletions

View File

@@ -1,20 +0,0 @@
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

View File

@@ -1,194 +0,0 @@
-- 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 ;

View File

@@ -1,269 +0,0 @@
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 ;
-}
}

View File

@@ -1,268 +0,0 @@
--# -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 ;
-}
}

View File

@@ -1,53 +0,0 @@
-- 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.

View File

@@ -1,12 +0,0 @@
-- 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 ;
}

View File

@@ -1,16 +0,0 @@
--# -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 ;
}

View File

@@ -1,15 +0,0 @@
--# -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 ;
}

View File

@@ -1,15 +0,0 @@
--# -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 ;
}

View File

@@ -1,10 +0,0 @@
-- 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
}

View File

@@ -1,2 +0,0 @@
concrete QuestionsEng of Questions = QuestionsI with
(Lang = LangEng) ;

View File

@@ -1,2 +0,0 @@
concrete QuestionsFre of Questions = QuestionsI with
(Lang = LangFre) ;

View File

@@ -1,21 +0,0 @@
-- 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
-}

View File

@@ -1,18 +0,0 @@
--# -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" ;
}

View File

@@ -1,2 +0,0 @@
concrete QuestionsSwe of Questions = QuestionsI with
(Lang = LangSwe) ;

View File

@@ -1,4 +0,0 @@
i -ex AnimalsEng.gf ;; s
i AnimalsFre.gf ;; s
i AnimalsSwe.gf ;; s
pm | wf animals.gfcm

View File

@@ -1,8 +0,0 @@
--# -path=.:alltenses:prelude
concrete BigEnglish of BigEnglishAbs =
GrammarEng,
--- IrregEng,
ExtraEng,
BigLexEng
** {} ;

View File

@@ -1,8 +0,0 @@
--# -path=.:alltenses:prelude
abstract BigEnglishAbs =
Grammar,
--- IrregEngAbs,
ExtraEngAbs,
BigLexEngAbs
** {} ;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
--# -path=.:alltenses:prelude
concrete BigSwedish of BigSwedishAbs =
GrammarSwe,
ExtraSwe,
BigLexSwe
** {} ;

View File

@@ -1,5 +0,0 @@
abstract BigSwedishAbs =
Grammar,
ExtraSweAbs,
BigLexSweAbs
** {} ;

View File

@@ -1,20 +0,0 @@
-- 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 ";;" ;

View File

@@ -1,20 +0,0 @@
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*

View File

@@ -1,42 +0,0 @@
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"

View File

@@ -1,148 +0,0 @@
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"
]

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +0,0 @@
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

View File

@@ -1,48 +0,0 @@
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]

View File

@@ -1,29 +0,0 @@
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 ;
}

View File

@@ -1,9 +0,0 @@
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.

View File

@@ -1,28 +0,0 @@
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 == "--"

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +0,0 @@
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"

View File

@@ -1,36 +0,0 @@
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 ;
}

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageAra of Bronzeage = CatAra, SwadeshAra ** BronzeageI with
(Lang = LangAra) ;

View File

@@ -1,7 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageDan of Bronzeage = CatDan, SwadeshDan ** BronzeageI with
(Lang = LangDan) ** {
flags language = da_DK;
}

View File

@@ -1,7 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageEng of Bronzeage = CatEng, SwadeshEng ** BronzeageI with
(Lang = LangEng) ** {
flags language = en_US;
}

View File

@@ -1,8 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageFin of Bronzeage = CatFin, SwadeshFin ** BronzeageI with
(Lang = LangFin) ** {
flags language = fi_FI;
}

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageFre of Bronzeage = CatFre, SwadeshFre ** BronzeageI with
(Lang = LangFre) ;

View File

@@ -1,8 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageGer of Bronzeage = CatGer, SwadeshGer ** BronzeageI with
(Lang = LangGer) ** {
flags language = de_DE;
}

View File

@@ -1,59 +0,0 @@
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 ;
}

View File

@@ -1,7 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageIta of Bronzeage = CatIta, SwadeshIta ** BronzeageI with
(Lang = LangIta) ** {
flags language = it_IT;
}

View File

@@ -1,6 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageNor of Bronzeage = CatNor, SwadeshNor ** BronzeageI with
(Lang = LangNor) ** {
flags language = nb_NO;
}

View File

@@ -1,7 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageRus of Bronzeage = CatRus, SwadeshRus ** BronzeageI with
(Lang = LangRus) ** {
flags language = ru_RU;
}

View File

@@ -1,7 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageSpa of Bronzeage = CatSpa, SwadeshSpa ** BronzeageI with
(Lang = LangSpa) ** {
flags language = es_ES;
}

View File

@@ -1,8 +0,0 @@
--# -path=.:present:prelude
concrete BronzeageSwe of Bronzeage = CatSwe, SwadeshSwe ** BronzeageI with
(Lang = LangSwe) ** {
flags language = sv_SE;
}

View File

@@ -1,47 +0,0 @@
(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

View File

@@ -1,245 +0,0 @@
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 ;
}

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshAra of Swadesh = CatAra ** SwadeshI with
(Lang = LangAra) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshDan of Swadesh = CatDan ** SwadeshI with
(Lang = LangDan) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshEng of Swadesh = CatEng ** SwadeshI with
(Lang = LangEng) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshFin of Swadesh = CatFin ** SwadeshI with
(Lang = LangFin) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshFre of Swadesh = CatFre ** SwadeshI with
(Lang = LangFre) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshGer of Swadesh = CatGer ** SwadeshI with
(Lang = LangGer) ;

View File

@@ -1,227 +0,0 @@
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 ;
}

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshIta of Swadesh = CatIta ** SwadeshI with
(Lang = LangIta) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshNor of Swadesh = CatNor ** SwadeshI with
(Lang = LangNor) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshRus of Swadesh = CatRus ** SwadeshI with
(Lang = LangRus) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshSpa of Swadesh = CatSpa ** SwadeshI with
(Lang = LangSpa) ;

View File

@@ -1,5 +0,0 @@
--# -path=.:present:prelude
concrete SwadeshSwe of Swadesh = CatSwe ** SwadeshI with
(Lang = LangSwe) ;

View File

@@ -1,243 +0,0 @@
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") ;
}

View File

@@ -1,269 +0,0 @@
--# -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 ; ----
}

View File

@@ -1,259 +0,0 @@
--# -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") ;
}

View File

@@ -1,248 +0,0 @@
--# -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") ;
}

View File

@@ -1,258 +0,0 @@
--# -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") ;
}

View File

@@ -1,252 +0,0 @@
--# -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") ;
}

View File

@@ -1,251 +0,0 @@
--# -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 "вытира" "ю" "вытирал" "вытирай" "вытирать" ;
};

View File

@@ -1,262 +0,0 @@
--# -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") ;
}

View File

@@ -1,252 +0,0 @@
--# -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") ;
}

View File

@@ -1,4 +0,0 @@
abstract Compex = {
cat Prop ; Ind ;
fun Even : Ind -> Prop ;
}

View File

@@ -1,8 +0,0 @@
concrete CompexEng of Compex = open MathematicalEng, ParadigmsEng, Prelude in {
lincat
Prop = {s : Bool => Str} ;
Ind = NP ;
lin
Even : Ind -> Prop ;
}

View File

@@ -1,12 +0,0 @@
abstract Agenda = Dialogue, Weekday ** {
fun
Day : Kind ;
Meeting : Kind ;
Add : Oper2 Meeting Day ;
Remove : Oper1 Meeting ;
Interrupt : Oper0 ;
day : WDay -> Object Day ;
}

View File

@@ -1,15 +0,0 @@
--# -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 ;
}

View File

@@ -1,15 +0,0 @@
--# -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 ;
}

View File

@@ -1,16 +0,0 @@
--# -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 ;
}

View File

@@ -1,15 +0,0 @@
--# -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" ;
}

View File

@@ -1,16 +0,0 @@
--# -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 ;
}

View File

@@ -1,13 +0,0 @@
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 = <>
} ;
}

View File

@@ -1,2 +0,0 @@
instance AuxEng of AuxDialogue = open MultiEng in {
}

View File

@@ -1,2 +0,0 @@
instance AuxFin of AuxDialogue = open MultiFin in {
}

View File

@@ -1,2 +0,0 @@
instance AuxFre of AuxDialogue = open MultiFre in {
}

View File

@@ -1,2 +0,0 @@
instance AuxSwe of AuxDialogue = open MultiSwe in {
}

View File

@@ -1,52 +0,0 @@
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 ;
}

View File

@@ -1,4 +0,0 @@
--# -path=.:multimodal:alltenses:prelude
concrete DialogueEng of Dialogue = DialogueI with
(Multi = MultiEng) ;

View File

@@ -1,4 +0,0 @@
--# -path=.:multimodal:alltenses:prelude
concrete DialogueFin of Dialogue = DialogueI with
(Multi = MultiFin) ;

View File

@@ -1,4 +0,0 @@
--# -path=.:multimodal:alltenses:prelude
concrete DialogueFre of Dialogue = DialogueI with
(Multi = MultiFre) ;

View File

@@ -1,98 +0,0 @@
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 = []} ;
}

View File

@@ -1,42 +0,0 @@
--# -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" ;
}

View File

@@ -1,4 +0,0 @@
--# -path=.:multimodal:alltenses:prelude
concrete DialogueSwe of Dialogue = DialogueI with
(Multi = MultiSwe) ;

View File

@@ -1,16 +0,0 @@
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 ;
}

View File

@@ -1,19 +0,0 @@
--# -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"]) ;
}

View File

@@ -1,19 +0,0 @@
--# -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"] ;
}

View File

@@ -1,19 +0,0 @@
--# -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"] ;
}

View File

@@ -1,20 +0,0 @@
--# -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")) ;
}

View File

@@ -1,20 +0,0 @@
--# -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"] ;
}

View File

@@ -1,14 +0,0 @@
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

View File

@@ -1,99 +0,0 @@
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