我正在编写我的第一个Prolog代码,我遇到了一些困难我想知道是否有人可以帮助我。
我正在编写一个需要遵循以下规则的程序:
对于动词短语。,名词短语出现在及物动词之前。 受试者(主格名词短语)之后是ga 直接对象(主格名词短语后跟o。
它必须能够用代码中的给定单词形成这些句子:
Adamu ga waraimasu(亚当笑)
Iive ga nakimasu(前夕哭泣)
Adamu ga Iivu O mimasi(亚当看夏娃)
Iivu ga Adamu O tetsudaimasu(前夕帮助亚当)
这是我的代码。它大部分完成除外,我不知道代码中的规则是否正确:
Japanese([adamu ],[nounphrase],[adam],[entity]).
Japanese([iivu ],[nounphrase],[eve],[entity]).
Japanese([waraimasu ],[verb,intransitive],[laughs],[property]).
Japanese([nakimasu],[verb,intransitive],[cries],[property]).
Japanese([mimasu ],[verb,transitive],[watches],[relation]).
Japanese([tetsudaimasu ],[verb,transitive],[helps],[relation]).
Japanese(A,[verbphrase],B,[property]):-
Japanese(A,[verb,intransitive],B,[property]).
Japanese(A,[nounphrase,accusative],B,[entity]):-
Japanese(C,[nounphrase],B,[entity]),
append([ga],C,A).
Japanese(A,[verbphrase],B,[property]):-
Japanese(C,[verb,transitive],D,[relation]),
Japanese(E,[nounphrase,accusative],F,[entity]),
append(C,E,A),
append(D,F,B).
Japanese(A,[sentence],B,[proposition]):-
Japanese(C,[nounphrase],D,[entity]),
Japanese(E,[verbphrase],F,[property]),
append(E,C,A),
append(F,D,B).