我使用 Swi-Prolog 是因为我认为 Prolog 的使用有点奇怪。我之所以这么说是因为除了 Watson,我不知道人们通常使用 Prolog 做什么。
无论如何,我正在制作一个序言程序,用于根据我所说的来定义情绪:
emotion(anxiety,emotion):-
emotion(anxiety,prime).
emotion(fear,emotion):-
emotion(anxiety,prime),
emotion(when,prime),
emotion(bad,prime).
emotion(horrified,emotion):-
emotion(surprise,prime),
(emotion(fear,emotion);emotion(aversion,prime)).
素数是一元的,所以它们不是问题。
我可以找到情绪(X,Y)。这将是我用两个参数定义的所有内容。
问题是如何根据定义找到单词?我可以告诉 prolog 找出所有包含某种焦虑定义的情绪吗?从技术上讲,这将是一种情绪、恐惧和“恐惧”之一的焦虑,因为我通过惊讶和恐惧(这意味着焦虑)或惊讶和厌恶来定义它。
有没有我可以使用的命令,或者我必须编写一些程序才能让 prolog 生成这样的列表?