(**** * * Module Attributes defines the attributes objects of a schedule. * * NOTE: this is work in progress. Several objects are yet to be defined. * Also, more complete object descriptions are needed. * *) module Attributes; export all; object Attributes components: sstr:ScheduleStrength; description: (* The Attributes object is comprised of the schedule strength (a measure of how good the schedule fulfills the desired preferences): ScheduleStrength. *); end Attributes; object ScheduleStrength components: sst:schStrTotal and ssis:InstructorStrength* and ssc:Conflicts; description: (* The ScheduleStrength is a measure of how good the schedule fulfills all the desired preferences. *); end ScheduleStrength; object schStrTotal = integer; object Conflicts components: Conflict and conBoolean; description: (* The Conflicts object contains information to determine if the generated schedule has conflicts and a description of the conflict if it does. *); end Conflicts; object Conflict = string; object conBoolean = boolean; object InstructorStrength components: Name and Value and Courses* and Pattern* and Proximal* and Time*; description: (* The InstructorStrength object gives an integer value that represents how good the generated schedule fits the given instructor's preferences. *); end InstructorStrength; object Name = string; object Courses components: Course and Value; description: (* The Courses object gives an integer value that represents how good the generated schedule fits the an instructor's course preferences. *); end Courses; object Course = string; object Pattern components: PatternV and Value; description: (* The Pattern object gives an integer value that represents how good the generated schedule fits the an instructor's pattern preferences. *); end Pattern; object PatternV = string; object Proximal components: Distance and Value; description: (* The Proximal object gives an integer value that represents how good the generated schedule fits the an instructor's proximal preferences. *); end Proximal; object Distance = integer; object Time components: TimeV and Value; description: (* The Time object gives an integer value that represents how good the generated schedule fits the an instructor's Time preferences. *); end Time; object TimeV = integer; object Value = integer; end Attributes;