mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-20 16:42:51 -06:00
started grammar extending FreqFin with tricky clitic syntax
This commit is contained in:
@@ -330,8 +330,10 @@ incomplete resource Constructors = open Grammar in { --%
|
|||||||
= \t,p -> TUseCl t ASimul p ; --%
|
= \t,p -> TUseCl t ASimul p ; --%
|
||||||
mkS : Ant -> Pol -> Cl -> S --%
|
mkS : Ant -> Pol -> Cl -> S --%
|
||||||
= \a,p -> TUseCl TPres a p ; --%
|
= \a,p -> TUseCl TPres a p ; --%
|
||||||
mkS : (Tense) -> (Ant) -> (Pol) -> Cl -> S -- she wouldn't have slept --:
|
mkS : (Tense) -> (Ant) -> (Pol) -> Cl -> S -- she wouldn't have slept
|
||||||
= \t,a -> TUseCl t a ; --%
|
= \t,a -> TUseCl t a ; --%
|
||||||
|
mkS : Temp -> Pol -> Cl -> S -- she wouldn't have slept --:
|
||||||
|
= UseCl ; --%
|
||||||
|
|
||||||
-- Sentences can be combined with conjunctions. This can apply to a pair
|
-- Sentences can be combined with conjunctions. This can apply to a pair
|
||||||
-- of sentences, but also to a list of more than two.
|
-- of sentences, but also to a list of more than two.
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ main = do
|
|||||||
let funSet = S.fromList (map (head . words) (lines kotus))
|
let funSet = S.fromList (map (head . words) (lines kotus))
|
||||||
mapM_ putStrLn $ concatMap (prEntry funSet . mkOne) $ lines src
|
mapM_ putStrLn $ concatMap (prEntry funSet . mkOne) $ lines src
|
||||||
|
|
||||||
stoplist = S.fromList ["ei","olla","ei_ihme","eikä"]
|
stoplist = S.fromList
|
||||||
|
["ei","olla","ei_ihme","eikä","ettei","ellei","vaikkei","muttei","miksei","jollei","jottei"]
|
||||||
|
|
||||||
prEntry funSet (f,c,w,p@(k,n),i) = if n == 0 then [] else [
|
prEntry funSet (f,c,w,p@(k,n),i) = if n == 0 then [] else [
|
||||||
unwords ["fun",f, " : ", c,";"],
|
unwords ["fun",f, " : ", c,";"],
|
||||||
|
|||||||
73
lib/src/finnish/frequency/FreqGrammarFin.gf
Normal file
73
lib/src/finnish/frequency/FreqGrammarFin.gf
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
--# -path=.:alltenses:..
|
||||||
|
|
||||||
|
concrete FreqGrammarFin of FreqGrammarFinAbs =
|
||||||
|
LexiconFin, ---
|
||||||
|
StructuralFin - ---
|
||||||
|
--- FreqFin -
|
||||||
|
[
|
||||||
|
everybody_NP,
|
||||||
|
everything_NP,
|
||||||
|
-- somebody_NP
|
||||||
|
-- something_NP
|
||||||
|
nobody_NP,
|
||||||
|
nothing_NP
|
||||||
|
],
|
||||||
|
TenseX
|
||||||
|
** open SyntaxFin, (P = ParadigmsFin), (R = ParamX), Prelude in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Clause = {subj : NP ; vp : VP} ;
|
||||||
|
Part = Adv ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
ClauseS part temp pol cl =
|
||||||
|
mkS temp pol (mkCl (mkNP cl.subj part) cl.vp) ;
|
||||||
|
SubjKinS part temp pol cl =
|
||||||
|
mkS temp pol (mkCl (mkNP (mkNP cl.subj (kin.s ! pol.p)) part) cl.vp) ;
|
||||||
|
VerbKinS part temp pol cl =
|
||||||
|
mkS temp pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ;
|
||||||
|
AdvKinS part temp pol adv cl =
|
||||||
|
mkS temp pol (mkCl (mkNP cl.subj part) (mkVP (mkVP cl.vp adv) (kin.s ! pol.p))) ;
|
||||||
|
PreAdvS part temp pol adv cl =
|
||||||
|
mkS adv (mkS part (mkS temp pol (mkCl cl.subj cl.vp))) ;
|
||||||
|
PreAdvKinS part temp pol adv cl =
|
||||||
|
mkS adv (mkS part (mkS (kin.s ! pol.p) (mkS temp pol (mkCl cl.subj cl.vp)))) ;
|
||||||
|
PreAdvSubjKinS part temp pol adv cl =
|
||||||
|
mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ;
|
||||||
|
PreAdvVerbKinS part temp pol adv cl =
|
||||||
|
mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ;
|
||||||
|
PreAdvAdvKinS part temp pol adv1 adv2 cl =
|
||||||
|
mkS adv1 (mkS part (mkS temp pol (mkCl cl.subj (mkVP (mkVP cl.vp adv2) (kin.s ! pol.p))))) ;
|
||||||
|
|
||||||
|
|
||||||
|
--- AnterVerbS part kin t pol cl =
|
||||||
|
--- mkS t anteriorAnt pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ;
|
||||||
|
|
||||||
|
PredV np v = {subj = np ; vp = mkVP v} ;
|
||||||
|
|
||||||
|
FPrepNP prep np = mkAdv prep np ;
|
||||||
|
FDetCN cn = mkNP the_Det (lin CN cn) ;
|
||||||
|
FAdjCN a cn = mkCN (lin A a) (lin CN cn) ;
|
||||||
|
|
||||||
|
FUsePron p = mkNP p ;
|
||||||
|
FUseN n = mkCN n ;
|
||||||
|
|
||||||
|
--- TransV v = P.mkV2 (lin V v) ;
|
||||||
|
|
||||||
|
noPart = P.mkAdv [] ;
|
||||||
|
han_Part = P.mkAdv (glueTok "han") ;
|
||||||
|
pa_Part = P.mkAdv (glueTok "pa") ;
|
||||||
|
pas_Part = P.mkAdv (glueTok "pas") ;
|
||||||
|
ko_Part = P.mkAdv (glueTok "ko") ;
|
||||||
|
kos_Part = P.mkAdv (glueTok "kos") ;
|
||||||
|
kohan_Part = P.mkAdv (glueTok "kohan") ;
|
||||||
|
pahan_Part = P.mkAdv (glueTok "pahan") ;
|
||||||
|
|
||||||
|
|
||||||
|
oper
|
||||||
|
kin : {s : R.Polarity => Adv} =
|
||||||
|
{s = table {R.Pos => P.mkAdv (glueTok "kin") ; R.Neg => P.mkAdv (glueTok "kaan")}} ;
|
||||||
|
|
||||||
|
glueTok : Str -> Str = \s -> "&!" ++ s ;
|
||||||
|
|
||||||
|
}
|
||||||
50
lib/src/finnish/frequency/FreqGrammarFinAbs.gf
Normal file
50
lib/src/finnish/frequency/FreqGrammarFinAbs.gf
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
abstract FreqGrammarFinAbs =
|
||||||
|
Lexicon, ---
|
||||||
|
Structural - ---
|
||||||
|
--- FreqFinAbs -
|
||||||
|
[
|
||||||
|
everybody_NP,
|
||||||
|
everything_NP,
|
||||||
|
-- somebody_NP
|
||||||
|
-- something_NP
|
||||||
|
nobody_NP,
|
||||||
|
nothing_NP
|
||||||
|
],
|
||||||
|
Tense
|
||||||
|
** {
|
||||||
|
|
||||||
|
flags startcat = S ;
|
||||||
|
|
||||||
|
cat
|
||||||
|
Clause ; Part ;
|
||||||
|
|
||||||
|
fun
|
||||||
|
ClauseS : Part -> Temp -> Pol -> Clause -> S ; -- arihan juo nyt
|
||||||
|
SubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- arikinhan juo nyt
|
||||||
|
VerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- arihan juokin nyt
|
||||||
|
AdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- arihan juo nytkin
|
||||||
|
PreAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nytkinhän ari juo
|
||||||
|
PreAdvS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän ari juo
|
||||||
|
PreAdvSubjKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän arikin juo
|
||||||
|
PreAdvVerbKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän ari juokin
|
||||||
|
PreAdvAdvKinS : Part -> Temp -> Pol -> Adv -> Adv -> Clause -> S ; -- nythän ari juo täälläkin
|
||||||
|
|
||||||
|
--- AnterVerbS : Part -> PartKin -> Tense -> Pol -> Clause -> S ; -- arihan onkin juonut
|
||||||
|
--- doesn't put in right place
|
||||||
|
|
||||||
|
PredV : NP -> V -> Clause ;
|
||||||
|
PredV2 : NP -> V2 -> NP -> Clause ;
|
||||||
|
PredObjV2 : NP -> V2 -> NP -> Clause ;
|
||||||
|
|
||||||
|
FPrepNP : Prep -> NP -> Adv ;
|
||||||
|
FDetCN : CN -> NP ;
|
||||||
|
FAdjCN : A -> CN -> CN ;
|
||||||
|
|
||||||
|
FUsePron : Pron -> NP ;
|
||||||
|
FUseN : N -> CN ;
|
||||||
|
|
||||||
|
--- TransV : V -> V2 ;
|
||||||
|
|
||||||
|
noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part, kohan_Part, pahan_Part : Part ;
|
||||||
|
|
||||||
|
}
|
||||||
32
lib/src/finnish/frequency/particles.txt
Normal file
32
lib/src/finnish/frequency/particles.txt
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
-- AR 29/12/2010
|
||||||
|
|
||||||
|
Pas ::= pas | pa | han | kos | ko | kohan | pahan -- free
|
||||||
|
Kin ::= kin/kaan -- dep. on polarity
|
||||||
|
|
||||||
|
-- declaratives and questions
|
||||||
|
|
||||||
|
ari Pas? ei? (juo Kin maitoa nyt | juo maitoa Kin nyt | juo maitoa nyt Kin?)
|
||||||
|
maitoa Pas? ei? (ari Kin juo nyt | ari juo Kin nyt | ari juo nyt Kin?)
|
||||||
|
nyt Pas? ei? (ari Kin juo maitoa | ari juo Kin maitoa | ari juo maitoa Kin?)
|
||||||
|
|
||||||
|
ari Kin Pas? ei? juo maitoa nyt
|
||||||
|
maitoa Kin Pas? ari ei? juo nyt
|
||||||
|
nyt Kin Pas? ari ei? juo maitoa
|
||||||
|
|
||||||
|
juo Pas? (ari Kin maitoa nyt | ari maitoa Kin nyt | ari maitoa nyt Kin?)
|
||||||
|
ei Pas? (ari Kin juo maitoa nyt | ari juo Kin maitoa nyt | ari juo maitoa Kin nyt |
|
||||||
|
ari juo maitoa nyt Kin?)
|
||||||
|
|
||||||
|
-- imperatives
|
||||||
|
|
||||||
|
juo Pas-? (ari Kin maitoa nyt | ari maitoa Kin nyt | ari maitoa nyt Kin?)
|
||||||
|
älä Pas-? (ari Kin juo maitoa nyt | ari juo Kin maitoa nyt | ari juo maitoa Kin nyt
|
||||||
|
| ari juo maitoa nyt Kin?)
|
||||||
|
|
||||||
|
Pas- ::= pa | pas | han | pahan
|
||||||
|
|
||||||
|
-- negation word
|
||||||
|
|
||||||
|
*enkään, *etkään, *eikään, ?emmekään, ?ettekään, ?eivätkään (quite some Google hits)
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user