我构建了一个程序来从一个命令树生成不同的动词。
摘要文件:
abstract Test = {
flags startcat = Utterance;
cat
Utterance; Imperative; Verb; VerbPhrase;
fun
-- verb phrase
Play_VP : VerbPhrase;
-- Imp
Play_Imp : VerbPhrase -> Imperative;
-- Utt
Sentence : Imperative -> Utterance;}
具体文件:
concrete TestEng of Test = open SyntaxEng, TestEngSrc, ParadigmsEng in {
lincat
Utterance = Utt;
Imperative = Imp;
VerbPhrase = VP;
Verb = V;
lin
-- verb phrase
Play_VP = mkVP ( variants{ mkV(play_Str) ; put_on_V });
--Imp
Play_Imp verbPhrase = mkImp(verbPhrase);
--Utt
Sentence imperative = mkUtt(imperative);}
最后是源文件:
resource TestEngSrc = open ParadigmsEng, SyntaxEng in {
oper
-- verb string
play_Str : Str = variants{ "broadcast" ; "play"
; "replay" ; "see" ; "view" ; "watch" ; "show"};
-- verb
play_V : V = variants {mkV(play_Str) ; put_on_V };
-- verb part
put_on_V : V = partV (mkV "put") "on";}
我在 GitHub 上搜索了 GF 线程,以确定这个问题是个人问题还是一般问题,但我发现了这个页面: https ://github.com/GrammaticalFramework/GF/issues/32 其中提到了一个解决方案将在较新的版本中提供GF。是否有关于此线程的任何更新,或者是否有比此线程中提供的解决方案更好的解决方案。感谢您的时间和精力。