如何将此规则的所有结果作为程序中的事实输入,或者如何将这些结果作为事实处理?

时间:2012-04-17 13:30:38

标签: prolog prolog-assert

%Examples
%course_meetings(maths4,tutorial,t07,khaled_mohamed,'tutorial for t07')
%days([sat,sun...])
%tutorialrooms([c6301,b4108,c2201,c2301,c2202,c2203])
%slots([1,2,3,4,5])



day_tut(Day,Slot,Place,Course,Group,Instr,Descr):-
    days(X),member(Day,X),
    tutorialrooms(X1),member(Place,X1),
    course_meetings(Course,tutorial,Group,Instr,Descr),
    slots(X2),member(Slot,X2).

我想过使用Assert,但我不熟悉prolog不确定它是如何工作的想法是最终我想根据某些规则示例为每个组创建一个时间表示例每个组应该休息一天并且讲座应该先于教程......

1 个答案:

答案 0 :(得分:1)

我的建议来自SWI-Prolog。

您可以使用assert / 1将数据插入动态数据库;您可以使用out / 1将元组放在Linda表上,或者使用更高级的功能,例如db_assert。

但问题是,不是如何记录这些数据,而是为什么要这样做。根据您打算如何解决调度问题,您可能需要这种录制策略,或者甚至可能没有。