move examples upwards.
This commit is contained in:
71
packages/CLPBN/examples/School/schema.yap
Normal file
71
packages/CLPBN/examples/School/schema.yap
Normal file
@@ -0,0 +1,71 @@
|
||||
|
||||
/* base file for school database. Supposed to be called from school_*.yap */
|
||||
|
||||
professor_key(Key) :-
|
||||
professor(Key).
|
||||
|
||||
professor_ability(Key,Abi) :-
|
||||
abi_table(Key, AbiDist),
|
||||
{ Abi = ability(Key) with p([h,m,l], AbiDist) }.
|
||||
|
||||
professor_popularity(Key, Pop) :-
|
||||
professor_ability(Key, Abi),
|
||||
pop_table(Key,PopTable),
|
||||
{ Pop = popularity(Key) with
|
||||
p([h,m,l], PopTable,[Abi]) }.
|
||||
|
||||
registration_key(Key) :-
|
||||
registration(Key, _, _).
|
||||
|
||||
registration_course(Key, CKey) :-
|
||||
registration(Key, CKey, _).
|
||||
|
||||
registration_student(Key, SKey) :-
|
||||
registration(Key, _, SKey).
|
||||
|
||||
registration_grade(Key, Grade) :-
|
||||
registration(Key, CKey, SKey),
|
||||
course_difficulty(CKey, Dif),
|
||||
student_intelligence(SKey, Int),
|
||||
grade_table(Int, Dif, Table),
|
||||
{ Grade = grade(Key) with Table }.
|
||||
|
||||
% registration_satisfaction(r0, h) :- {}.
|
||||
registration_satisfaction(Key, Sat) :-
|
||||
registration_course(Key, CKey),
|
||||
course_professor(CKey, PKey),
|
||||
professor_ability(PKey, Abi),
|
||||
registration_grade(Key, Grade),
|
||||
satisfaction_table(Abi, Grade, Table),
|
||||
{ Sat = satisfaction(Key) with Table }.
|
||||
|
||||
course_key(Key) :-
|
||||
course(Key,_).
|
||||
|
||||
course_professor(Key, PKey) :-
|
||||
course(Key, PKey).
|
||||
|
||||
course_rating(CKey, Rat) :-
|
||||
setof(Sat, RKey^(registration_course(RKey,CKey), registration_satisfaction(RKey,Sat)), Sats),
|
||||
{ Rat = rating(CKey) with avg([h,m,l],Sats) }.
|
||||
|
||||
course_difficulty(Key, Dif) :-
|
||||
dif_table(Key, Dist),
|
||||
{ Dif = difficulty(Key) with p([h,m,l], Dist) }.
|
||||
|
||||
student_key(Key) :-
|
||||
student(Key).
|
||||
|
||||
student_intelligence(Key, Int) :-
|
||||
int_table(Key, IDist, Domain),
|
||||
{ Int = intelligence(Key) with p(Domain, IDist) }.
|
||||
|
||||
student_ranking(Key, Rank) :-
|
||||
setof(Grade, CKey^(registration_student(CKey,Key),
|
||||
registration_grade(CKey, Grade)), Grades),
|
||||
{ Rank = ranking(Key) with avg([a,b,c,d],Grades) }.
|
||||
|
||||
:- ensure_loaded(tables).
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user