diff options
Diffstat (limited to 'examples/sammie/SammieGer2.gf')
| -rw-r--r-- | examples/sammie/SammieGer2.gf | 459 |
1 files changed, 0 insertions, 459 deletions
diff --git a/examples/sammie/SammieGer2.gf b/examples/sammie/SammieGer2.gf deleted file mode 100644 index 51490f6a5..000000000 --- a/examples/sammie/SammieGer2.gf +++ /dev/null @@ -1,459 +0,0 @@ ---# -path=.:alltenses - ----- doesn't compile yet (AR 8/10/2009) - -concrete SammieGer2 of Sammie = open - - SyntaxGer, ---- should be used - - GrammarGer, - ExtraGer, - SymbolGer, - ParadigmsGer, - IrregGer, - (R = ResGer), ---- - ConstructX, - Prelude -in { - -flags startcat=Action; - -param SetForm = Any | All ; - -oper Set = { s : SetForm => NP } ; - -oper mkSet : CN -> Set = \x -> { s = table { - Any => variants { - DetCN someSg_Det x ; - DetCN (DetSg (SgQuant IndefArt) NoOrd) x - } ; - All => - PredetNP all_Predet (DetCN (DetPl (PlQuant all_art) NoNum NoOrd) x) - } - } ; - -oper mkSetAdj : CN -> A -> Set = \x, adj -> - mkSet (AdjCN (PositA adj) x) ; - -oper optional : Str -> Str = \s -> variants { []; s } ; - -oper song = UseN (variants {song_N ; track_N}) ; -oper album = UseN (variants {album_N ; record_N ; cd_N}) ; - -oper command : Utt -> Phr = \s -> variants { - PhrUtt NoPConj s NoVoc ; - PhrUtt NoPConj s please_Voc ; - PhrUtt please_PConj s NoVoc - } ; - - withGenre : CN -> CN -> Set = \x,y -> - mkSet (typeWithGenre x y) ; - - withGenreBy : CN -> NP -> CN -> Set = \x,z,y -> - mkSet (AdvCN (typeWithGenre x y) (PrepNP artist_Prep z)) ; - ----- - -lincat - Action = Phr ; - - Object, Playlist, Artist, Album, Song = NP ; - - PlaylistName, ArtistName, AlbumName, SongName = PN ; - - PlaylistSet, ArtistSet, AlbumSet, SongSet = Set ; - - ToIdentify = QS ; - - Genre = CN ; - - Number = Num ; - -lin - -- Action - - add_song_to_playlist l o = - command (imperative PPos (ImpVP (ComplV3 add_V3 o l))) ; - - create = - command - (imperative PPos (ImpVP (ComplV2 create_V2 - (DetCN (DetSg (SgQuant IndefArt) NoOrd) - (AdjCN (PositA new_A) (UseN playlist_N)))))) ; - - dialog_pause = - command (imperative PPos (ImpVP shutup_VP)) ; - - go_back_in_display_history = - command (variants { - UttAdv back_Adv ; - imperative PPos (ImpVP goback_VP) - } - ) ; - - help = - command (imperative PPos (ImpVP goback_VP)) ; - - -- tell me - identify x = - command (variants { - UttQS x ; - imperative PPos (ImpVP (AdvVP (ComplV2 tell_V2 (UsePron i_Pron)) - (AdvSC (EmbedQS x)))) - } - ) ; - --- identify_songlist_of_album x = command (x.s) ; - - make_completion x = command (UttNP x) ; - - pause = - command (imperative PPos (ImpVP pause_VP)) ; - - play x = - command (imperative PPos (ImpVP (ComplV2 play_V2 x))) ; - - please_repeat = command what_say ; - - reject_any_constraint_determination = - command (whatever_Utt) ; - - remove l o = - command (imperative PPos (ImpVP (ComplV3 remove_V3 o l))) ; - - resume = - command (imperative PPos (ImpVP resume_VP)) ; - - -- show me - - show x = - command ( - imperative PPos (ImpVP (AdvVP (ComplV2 show_V2 (UsePron i_Pron)) - (AdvSC (EmbedQS x))))) ; - - show_main_menu = - command (variants { - imperative PPos (ImpVP (ComplV3 show_V3 (UsePron i_Pron) mainmenu_NP)) ; - imperative PPos (ImpVP (ComplV2 return_V2 mainmenu_NP)) - } - ) ; - - skip_backward = - command (variants { - imperative PPos (ImpVP (ComplV2 play_V2 (previous song))) ; - imperative PPos (ImpVP (ComplV2 goto_V2 (previous song))) - } - ) ; - - skip_forward = - command (variants { - imperative PPos (ImpVP (ComplV2 play_V2 (next song))) ; - imperative PPos (ImpVP (ComplV2 goto_V2 (next song))) - } - ) ; - - stop = command (imperative PPos (ImpVP (UseV stop_V))) ; - - -- ToIdentify - - artist_of_album album = - UseQCl past.p1 past.p2 PPos (QuestVP whoSg_IP - (variants {ComplV2 record_V2 album ; ComplV2 make_V2 album})) ; ---- { s = "who" ++ variants {"made";"sings";"plays";"recorded"} ++ album.s } ; - - artist_of_song song = - UseQCl past.p1 past.p2 PPos (QuestVP whoSg_IP (ComplV2 record_V2 song)) ; - - currently_playing_object = - UseQCl TPres ASimul PPos (WhatName - (this song)) ; - -{- --- - { s = variants { - ["what is this"] ++ optional song ++ ["called"]; - ["what is the name of this"] ++ optional song; - } } ; --} - - resource_by_type x = ---T - UseQCl TPres ASimul PPos (WhatName x) ; - - -- Object - - one_song x = x ; - any_song x = x.s ! Any ; - all_songs x = x.s ! All ; - - one_album x = x ; - any_album x = x.s ! Any ; - all_albums x = x.s ! All ; - - one_playlist x = x ; - any_playlist x = x.s ! Any ; - all_playlists x = x.s ! All ; - - - -- PlaylistSet - - playlists_all = mkSet (UseN playlist_N) ; - playlists_by_genre = withGenre (UseN playlist_N) ; - - -- Playlist - - playlist_this = this (UseN playlist_N) ; --- DetCN (DetSg (SgQuant this_Quant) NoOrd) (UseN playlist_N) ; - playlist_number x = - CNNumNP (UseN playlist_N) x ; - playlist_name x = - DetCN (DetSg (SgQuant DefArt) NoOrd) (ApposCN (UseN playlist_N) (UsePN x)) ; - - -- ArtistSet - - artists_all = mkSet (UseN artist_N) ; - - -- Artist - - artist_this = this (UseN artist_N) ; - -- DetCN (DetSg (SgQuant this_Quant) NoOrd) (UseN artist_N) ; - artist_name x =variants { - UsePN x ; - DetCN (DetSg (SgQuant DefArt) NoOrd) (ApposCN (UseN artist_N) (UsePN x)) - } ; - - -- AlbumSet - - albums_all = mkSet album ; - albums_by_artist artist = - mkSet (AdvCN album (PrepNP artist_Prep artist)) ; - albums_by_genre = withGenre album ; - - albums_by_artist_genre = withGenreBy album ; - - -- Album - - album_this = - this album ; - - album_number x = variants { - CNNumNP (ApposCN album (CNNumNP (UseN number_N) x)) NoNum ; - CNNumNP album x - } ; - album_name x = variants { - UsePN x ; - DetCN (DetSg (SgQuant DefArt) NoOrd) (ApposCN album (UsePN x)) - } ; - - album_name_artist x y = AdvNP (variants { - UsePN x ; - DetCN (DetSg (SgQuant DefArt) NoOrd) (ApposCN album (UsePN x)) - }) (PrepNP artist_Prep y) ; - - -- SongSet - - songs_all = mkSet song ; - songs_by_artist artist = - mkSet (AdvCN song (PrepNP artist_Prep artist)) ; - songs_by_genre = withGenre song ; - songs_by_album album = - mkSet (AdvCN song (PrepNP from_Prep album)) ; - - songs_by_artist_genre = withGenreBy song ; - - -- Song - - song_this = this song ; - -- DetCN (DetSg (SgQuant this_Quant) NoOrd) song ; - song_name x = variants { - UsePN x ; - DetCN (DetSg (SgQuant DefArt) NoOrd) (ApposCN song (UsePN x)) - } ; - song_name_artist x y = AdvNP (variants { - UsePN x ; - DetCN (DetSg (SgQuant DefArt) NoOrd) (ApposCN song (UsePN x)) - }) (PrepNP artist_Prep y) ; - - -- Ordinal - --- num_1 = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))) ; - num_2 = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; --- num_3 = { s = "three" } ; - - - - -- Music database - - -- PlaylistName - - CoolHits = name ["cool_hits"] ; --- Romantik = { s = ["romance"] }; - - -- Artist - --- Falco = { s = ["Falco"] }; --- TheBeatles = { s = ["The Beatles"] }; - U2 = name "u2" ; - - -- Genre - --- Pop = { s = ["pop"] }; - Rock = UseN rock_N ; - - -- AlbumName - - HowToDismantleAnAtomicBomb = name ["how_to_dismantle_an_atomic_bomb"]; - - -- SongName - --- AHardDaysNight = { s = ["a hard day's night"] }; --- LetItBe = { s = ["let it be"] }; - Vertigo = name ["vertigo"] ; - --- } --- instance ParamSammieGer of ParamSammie = open - -oper - - song_N = variants { - reg2N "lied" "lieder" neuter ; - reg2N "song" "songs" masculine - } ; - track_N = reg2N "stück" "stücke" neuter ; - album_N = mkN "album" "album" "album" "albums" "alben" "alben" neuter ; - record_N = regN "platte" ; - cd_N = reg2N "cd" "cds" feminine ; - playlist_N = variants { - reg2N "playlist" "playlisten" feminine ; - regN "wiedergabeliste" - } ; - artist_N = regN "künstler" ; - number_N = reg2N "nummer" "nummern" feminine ; - rock_N = regN "rock" ; - - new_A = regA "neu" ; - - add_V3 = - mkV3 (prefixV "hinzu" (regV "fügen")) accPrep zu_Prep ; - remove_V3 = - mkV3 (prefixV "aus" nehmen_V) accPrep (mkPrep "aus" dative) ; - show_V3 = mkV3 (regV "zeigen") datPrep accPrep ; - - create_V2 = dirV2 (no_geV (regV (variants {"erzeugen" ; "erstellen"}))) ; - tell_V2 = mkV2 (regV "sagen") datPrep ; - play_V2 = dirV2 (regV "spielen") ; - show_V2 = mkV2 (regV "zeigen") datPrep ; - return_V2 = mkV2 (prefixV "zurück" gehen_V) zu_Prep ; - goto_V2 = mkV2 gehen_V to_Prep ; - record_V2 = dirV2 (no_geV (regV "interpretieren")) ; - --prefixV "ein" (regV "spielen")) ; - make_V2 = dirV2 (regV "machen") ; - - stop_V = halten_V ; - - back_Adv = mkAdv "zurück" ; - - what_IAdv = mkIAdv "was" ; - - - - previous_Ord = - {s = variants { - (regA "vorig").s ! R.Posit ; - (regA "vorhergehend").s ! R.Posit - } ; - lock_Ord = <> - } ; - next_Ord = - {s = variants { - (regA "nächst").s ! R.Posit ; - (regA "nachfolgend").s ! R.Posit - } ; - lock_Ord = <> - } ; - - please_PConj = mkPConj "bitte" ; - - mainmenu_NP = - DetCN (DetSg (SgQuant DefArt) NoOrd) - (UseN (reg2N "hauptmenü" "hauptmenüs" neuter)) ; - - goback_VP = AdvVP (UseV gehen_V) back_Adv ; - shutup_VP = UseV (schweigen_V) ; - pause_VP = UseV (regV "pausieren") ; - resume_VP = UseV (regV "wiederholen") ; ---- - - whatever_Utt = mkUtt ["irgendwas"] ; - - typeWithGenre x genre = ----- CompoundCN genre x ; - AdvCN x (PrepNP with_Prep - (DetCN (DetSg MassDet NoOrd) genre)) ; - - name = regPN ; - - WhatName x = QuestIAdv how_IAdv (PredVP x (UseV heißen_V)) ; - - past = <TPres,AAnter> ; - - imperative = variants { UttImpPol ; UttImpSg } ; - - previous = DetCN (DetSg (SgQuant DefArt) previous_Ord) ; - next = DetCN (DetSg (SgQuant DefArt) next_Ord) ; - - what_say = UttIP whatSg_IP ; - - all_art = variants {IndefArt ; DefArt} ; - - artist_Prep = variants {by8agent_Prep ; with_Prep} ; - - this cn = variants { - DetCN (DetSg (SgQuant this_Quant) NoOrd) cn ; - DetCN (DetSg (SgQuant DefArt) NoOrd) - (AdjCN (PositA (regA "aktuell")) cn) - } ; - --- interface ParamSammie = open Grammar in { - -oper - song_N, track_N, album_N, record_N, cd_N, - playlist_N, artist_N, number_N, rock_N : N ; - new_A : A ; - - add_V3, remove_V3, show_V3 : V3 ; - create_V2, tell_V2, play_V2, show_V2, return_V2, goto_V2, - record_V2, make_V2 : V2 ; - stop_V : V ; - - back_Adv : Adv ; - - what_IAdv : IAdv ; - - previous_Ord, next_Ord : Ord ; - please_PConj : PConj ; - - mainmenu_NP : NP ; - - goback_VP : VP ; - shutup_VP : VP ; - pause_VP : VP ; - resume_VP : VP ; - - whatever_Utt : Utt ; - - typeWithGenre : CN -> CN -> CN ; - - name : Str -> PN ; - - WhatName : NP -> QCl ; - - past : Tense * Ant ; - - imperative : Pol -> Imp -> Utt ; - - previous, next : CN -> NP ; - - what_say : Utt ; - all_art : Quant ; - - this : CN -> NP ; - -} |
