避免Prolog中的数据冗余

避免Prolog中的数据冗余,prolog,Prolog,我正在修补Prolog,遇到了以下问题。 假设我想创建一个关于大学课程的知识库。 我需要以下两个关系方案: relation scheme for lecturer: lecturer(Name,Surname) relation scheme for course: course(Topic,Lecturer,Date,Location). 我有一位讲师,John Doe: lecturer(doe,john). John Doe教授复杂性课程: course(complexity,l

我正在修补Prolog,遇到了以下问题。 假设我想创建一个关于大学课程的知识库。 我需要以下两个关系方案:

relation scheme for lecturer: lecturer(Name,Surname)
relation scheme for course:   course(Topic,Lecturer,Date,Location).
我有一位讲师,John Doe:

lecturer(doe,john).
John Doe教授复杂性课程:

course(complexity,lecturer(doe,john),monday,roomA).
现在我有一个冗余的信息-不好
有没有办法实现这样的目标:

l1 = lecturer(doe,john).

course(complexity,l1,monday,roomA).

非常感谢

与数据库中相同的标准化可能性适用:

id\u firstname\u姓氏(1,john,doe)。

以及:

课程\u日\u房间\u讲师(复杂性,周一'A',1)。

也就是说,我们为每个讲师引入了一个唯一的ID,并使用该ID来指代此人