📄 p.pl
字号:
%% define words:
determiner([D],determiner(D) ) :-
member(D,[the,a,an]).
noun([N], noun(N)) :-
member(N,[dog, street, ball, bat, boy]).
adj([A], adj(A)) :-
member(A,[fast, little, big]).
prep([P], prep(P)) :-
member(P,[down, under]).
verb([V], verb(V)) :-
member(V,[ran, caught, yelled, see, saw]).
%% parse noun phrases:
noun_phrase(NP,noun_phrase(DTree,NTree)) :-
append(D,N,NP),
determiner(D,DTree),
noun(N,NTree).
%% parse prepositional phase:
prep_phrase(PP, prep_phrase(PTree, NPTree)) :-
append(P,NP,PP),
prep(P, PTree),
noun_phrase(NP, NPTree).
%% parse verb phrases:
verb_phrase(VP, verb_phrase(VTree, NPTree)) :-
append(V,NP,VP),
verb(V, VTree),
noun_phrase(NP, NPTree).
verb_phrase(VP, verb_phrase(VTree, PPTree)) :-
append(V,PP,VP),
verb(V, VTree),
prep_phrase(PP, PPTree).
verb_phrase(VP, verb_phrase(VTree)) :-
verb(V, VTree).
%% parse entences:
sentence(S, sentence(NPTree,VPTree) ) :-
append(NP,VP,S),
noun_phrase(NP,NPTree),
verb_phrase(VP,VPTree).
%% throw away test code:
%% test :- sentence([the,dog, ran], Tree), print(Tree).
%% test1 :- sentence([the,dog, ran, down, the, street], Tree), print(Tree).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -