在Prolog中获取复杂复合词中的变量

时间:2017-05-07 21:07:54

标签: prolog

我有一个Prolog语句解析器,它返回一个句子(作为列表传递给它),分为两部分 - doubleNoun_Phrase。见下面的例子:

Verb_Phrase

现在我想取sentence(Sentence, sentence(np(Noun_Phrase), vp(Verb_Phrase))) :- np(Sentence, Noun_Phrase, Remainder), vp(Remainder, Verb_Phrase). Noun_Phrase并将它们传递给另一个Prolog谓词,但首先我要从 {{1}中提取第一个词(应该总是一个动词)变量和Verb_Phrase的其余部分变成另一个变量并将它们分别传递给下一个谓词。

我考虑过使用统一,我尝试过:

Verb_Phrase

但我每次都得到错误:超出本地堆栈异常。我认为这与Verb_Phrase没有真正的列表有关。这可能是Verb_Phrase的意思:

Verb_Phrase

我如何才能将sentence(Sentence, sentence(np(Noun_Phrase), vp(Verb_Phrase))), [Head|Tail] = Verb_Phrase, next_predicate(_, Noun_Phrase, Head, Tail, _). 作为变量动词,并将其余部分作为变量,在Prolog中使用这样的复合词?

0 个答案:

没有答案