% Test Query: % myActivity(p0001,?Activity,?InOut,1:integer,20:integer,?StartTime,?EndTime,?Place,?Duration,?Level). % Sample Wellness Rules for Activities of Person p0001 % ---------------------------------------------------- %---------------- %Profile - P0001 %---------------- %CALENDAR %-------- calendar(p0001,c0001). %EVENTS - possible %----------------------------- event(c0001,?:Activity,possible,"2009-06-15T10:15:00","2009-06-15T11:15:00"). event(c0001,?:Activity,possible,"2009-06-13T16:00:00","2009-06-13T17:00:00"). event(c0001,?:Activity,possible,"2009-12-14T14:00:00","2009-12-14T15:30:00"). event(c0001,?:Activity,possible,"2009-12-12T12:00:00","2009-12-12T17:00:00"). %EVENTS - PAST %------------- event(c0001,?:Running,past,"2009-06-12T16:00:00","2009-06-12T17:00:00"). %MAP %--- map(p0001,m0001). %EXPECTED FITNESS LEVELS %----------------------- fitness(p0001,"2009-06-15T10:15:00",6:integer). fitness(p0001,"2009-06-13T16:00:00",6:integer). fitness(p0001,"2009-12-14T14:00:00",3:integer). fitness(p0001,"2009-12-12T12:00:00",4:integer). %MEETUP LOCATION FITNESS LEVELS %------------------------------ level(p0001,walk,out,conniesStation,"P10M",1:integer). level(p0001,walk,out,conniesStation,"P20M",2:integer). level(p0001,walk,out,conniesStation,"P40M",3:integer). level(p0001,walk,out,conniesStation,"P60M",4:integer). level(p0001,walk,out,conniesStation,"P80M",5:integer). level(p0001,walk,out,debbiesValley,"P10M",2:integer). level(p0001,walk,out,debbiesValley,"P20M",3:integer). level(p0001,walk,out,debbiesValley,"P40M",4:integer). level(p0001,walk,out,debbiesValley,"P60M",5:integer). level(p0001,walk,out,debbiesValley,"P80M",7:integer). level(p0001,run,out,conniesStation,"P10M",3:integer). level(p0001,run,out,conniesStation,"P20M",4:integer). level(p0001,run,out,conniesStation,"P40M",5:integer). level(p0001,run,out,conniesStation,"P60M",8:integer). level(p0001,run,out,conniesStation,"P80M",9:integer). level(p0001,run,out,petersWagon,"P10M",2:integer). level(p0001,run,out,petersWagon,"P20M",3:integer). level(p0001,run,out,petersWagon,"P40M",5:integer). level(p0001,run,out,petersWagon,"P60M",7:integer). level(p0001,run,out,petersWagon,"P80M",10:integer). level(p0001,run,out,allensBrook,"P10M",1:integer). level(p0001,run,out,allensBrook,"P20M",2:integer). level(p0001,run,out,allensBrook,"P40M",4:integer). level(p0001,run,out,allensBrook,"P60M",6:integer). level(p0001,run,out,allensBrook,"P80M",8:integer). level(p0001,run,in,joesGym,"P60M",5:integer). level(p0001,run,in,joesGym,"P80M",8:integer). level(p0001,run,in,joesGym,"P80M",8:integer). level(p0001,run,in,joesGym,"P80M",9:integer). level(p0001,run,in,joesGym,"P80M",10:integer). level(p0001,swim,in,johnsPool,"P10M",2:integer). level(p0001,swim,in,johnsPool,"P20M",3:integer). level(p0001,swim,in,johnsPool,"P40M",4:integer). level(p0001,swim,in,johnsPool,"P60M",5:integer). level(p0001,swim,in,johnsPool,"P80M",7:integer). level(p0001,swim,out,sandrasLake,"P10M",3:integer). level(p0001,swim,out,sandrasLake,"P20M",4:integer). level(p0001,swim,out,sandrasLake,"P40M",5:integer). level(p0001,swim,out,sandrasLake,"P60M",6:integer). level(p0001,swim,out,sandrasLake,"P80M",9:integer). level(p0001,skate,out,sandrasLake,"P10M",2:integer). level(p0001,skate,out,sandrasLake,"P20M",3:integer). level(p0001,skate,out,sandrasLake,"P40M",5:integer). level(p0001,skate,out,sandrasLake,"P60M",7:integer). level(p0001,skate,out,sandrasLake,"P80M",8:integer). level(p0001,yoga,in,lukesHall,"P10M",1:integer). level(p0001,yoga,in,lukesHall,"P20M",2:integer). level(p0001,yoga,in,lukesHall,"P40M",3:integer). level(p0001,yoga,in,lukesHall,"P60M",4:integer). level(p0001,yoga,in,lukesHall,"P80M",5:integer). %Preferred Group Sizes %--------------------- groupSize(p0001,walk,out,1:integer,20:integer). groupSize(p0001,run,out,2:integer,8:integer). groupSize(p0001,run,in,2:integer,6:integer). groupSize(p0001,swim,in,1:integer,3:integer). groupSize(p0001,swim,out,2:integer,4:integer). groupSize(p0001,skate,out,1:integer,12:integer). groupSize(p0001,yoga,in,1:integer,7:integer). %-------------------------- %Activities - Walking (out) %-------------------------- myActivity(p0001,Walking,out,?MinRSVP,?MaxRSVP,?StartTime,?EndTime,?Place,?Duration,?Level) :- calendar(p0001,?Calendar), event(?Calendar,?:Walking,possible,?StartTime,?EndTime), participation(p0001,walk,out,?MinRSVP,?MaxRSVP), season(?StartTime,summer), forecast(?StartTime,sky,?Weather), notEqual(?Weather,raining), map(p0001,?Map), meetup(?Map,walk,out,?Place), level(p0001,walk,out,?Place,?Duration,?Level), fitness(p0001,?StartTime,?ExpectedFitness), greaterThanOrEqual(?ExpectedFitness,?Level), goodDuration(?Duration,?StartTime,?EndTime). %-------------------------- %Activities - Running (out) %-------------------------- myActivity(p0001,Running,out,?MinRSVP,?MaxRSVP,?StartTime,?EndTime,?Place,?Duration,?Level) :- calendar(p0001,?Calendar), event(?Calendar,?:Running,possible,?StartTime,?EndTime), participation(p0001,run,out,?MinRSVP,?MaxRSVP), season(?StartTime,summer), forecast(?StartTime,sky,?Weather), notEqual(?Weather,raining), map(p0001,?Map), meetup(?Map,run,out,?Place), level(p0001,run,out,?Place,?Duration,?Level), fitness(p0001,?StartTime,?ExpectedFitness), greaterThanOrEqual(?ExpectedFitness,?Level), goodDuration(?Duration,?StartTime,?EndTime). %------------------------- %Activities - Running (in) %------------------------- myActivity(p0001,Running,in,?MinRSVP,?MaxRSVP,?StartTime,?EndTime,?Place,?Duration,?Level) :- calendar(p0001,?Calendar), event(?Calendar,?:Running,possible,?StartTime,?EndTime), yesterday(?StartTime,?StartTimeYDay,?EndTime,?EndTimeYDay), naf(event(?Calendar,?:Running,past,?StartTimeYDay,?EndTimeYDay)), participation(p0001,run,in,?MinRSVP,?MaxRSVP), season(?StartTime,summer), forecast(?StartTime,sky,?Weather), forecast(?StartTime,temperature,?Temp), greaterThanOrEqual(?Temp,20:integer), map(p0001,?Map), meetup(?Map,run,in,?Place), level(p0001,run,in,?Place,?Duration,?Level), fitness(p0001,?StartTime,?ExpectedFitness), greaterThanOrEqual(?ExpectedFitness,?Level), goodDuration(?Duration,?StartTime,?EndTime). %-------------------------- %Activities - Swimming (in) %-------------------------- myActivity(p0001,Swimming,in,?MinRSVP,?MaxRSVP,?StartTime,?EndTime,?Place,?Duration,?Level) :- calendar(p0001,?Calendar), event(?Calendar,?:Swimming,possible,?StartTime,?EndTime), participation(p0001,swim,in,?MinRSVP,?MaxRSVP), season(?StartTime,winter), map(p0001,?Map), meetup(?Map,swim,in,?Place), level(p0001,swim,in,?Place,?Duration,?Level), fitness(p0001,?StartTime,?ExpectedFitness), greaterThanOrEqual(?ExpectedFitness,?Level), goodDuration(?Duration,?StartTime,?EndTime). %--------------------------- %Activities - Swimming (out) %--------------------------- myActivity(p0001,Swimming,out,?MinRSVP,?MaxRSVP,?StartTime,?EndTime,?Place,?Duration,?Level) :- calendar(p0001,?Calendar), event(?Calendar,?:Swimming,possible,?StartTime,?EndTime), participation(p0001,swim,out,?MinRSVP,?MaxRSVP), season(?StartTime,summer), forecast(?StartTime,sky,sunny), forecast(?StartTime,temperature,?Temp), greaterThanOrEqual(?Temp,27:integer), map(p0001,?Map), meetup(?Map,swim,out,?Place), level(p0001,swim,out,?Place,?Duration,?Level), fitness(p0001,?StartTime,?ExpectedFitness), greaterThanOrEqual(?ExpectedFitness,?Level), goodDuration(?Duration,?StartTime,?EndTime). %-------------------------- %Activities - Skating (out) %-------------------------- myActivity(p0001,Skating,out,?MinRSVP,?MaxRSVP,?StartTime,?EndTime,?Place,?Duration,?Level) :- calendar(p0001,?Calendar), event(?Calendar,?:Skating,possible,?StartTime,?EndTime), participation(p0001,skate,out,?MinRSVP,?MaxRSVP), season(?StartTime,winter), forecast(?StartTime,sky,?Weather), forecast(?StartTime,temperature,?Temp), notEqual(?Weather,snowing), lessThanOrEqual(?Temp,0:integer), map(p0001,?Map), meetup(?Map,skate,out,?Place), level(p0001,skate,out,?Place,?Duration,?Level), fitness(p0001,?StartTime,?ExpectedFitness), greaterThanOrEqual(?ExpectedFitness,?Level), goodDuration(?Duration,?StartTime,?EndTime). %------------------------- %Activities - Yogaing (in) %------------------------- myActivity(p0001,Yoga,in,?MinRSVP,?MaxRSVP,?StartTime,?EndTime,?Place,?Duration,?Level) :- calendar(p0001,?Calendar), event(?Calendar,?:Yoga,possible,?StartTime,?EndTime), participation(p0001,yoga,in,?MinRSVP,?MaxRSVP), map(p0001,?Map), meetup(?Map,yoga,in,?Place), level(p0001,yoga,in,?Place,?Duration,?Level), fitness(p0001,?StartTime,?ExpectedFitness), greaterThanOrEqual(?ExpectedFitness,?Level), goodDuration(?Duration,?StartTime,?EndTime).