9:- use_module(library(mcintyre)). 10
11:- if(current_predicate(use_rendering/1)). 12:- use_rendering(c3). 13:- use_rendering(graphviz). 14:- use_rendering(table,[header(['Multivalued variable index','Rule index','Grounding substitution'])]). 15:- endif. 16
17:- mc. 18
19:- begin_lpad. 20
21course(c1).
22
23professor(p1).
24
25student(s1).
26
27student(s2).
28
29advised_by(A,B):0.10708782742681 :-
30 student(A),
31 professor(B),
32 position(B,faculty).
33
34advised_by(A,B):0.0278422273781903 :-
35 student(A),
36 professor(B),
37 \+position(B,faculty).
38
39course_level(A,level_300):0.0666666666666667; course_level(A,level_400):0.318518518518519; course_level(A,level_500):0.614814814814815 :-
40 course(A).
41
42phase(A,post_Generals):0.935483870967742; phase(A,post_Quals):0.032258064516129; phase(A,pre_Quals):0.032258064516129 :-
43 student(A),
44 years_in_program(A,year_6_or_more).
45
46phase(A,post_Generals):0.04; phase(A,post_Quals):0.04; phase(A,pre_Quals):0.92 :-
47 student(A),
48 \+years_in_program(A,year_6_or_more),
49 years_in_program(A,year_1).
50
51phase(A,post_Generals):0.566666666666667; phase(A,post_Quals):0.366666666666667; phase(A,pre_Quals):0.0666666666666667 :-
52 student(A),
53 \+years_in_program(A,year_6_or_more),
54 \+years_in_program(A,year_1),
55 years_in_program(A,year_5).
56
57phase(A,post_Generals):0.222222222222222; phase(A,post_Quals):0.666666666666667; phase(A,pre_Quals):0.111111111111111 :-
58 student(A),
59 \+years_in_program(A,year_6_or_more),
60 \+years_in_program(A,year_1),
61 \+years_in_program(A,year_5),
62 years_in_program(A,year_4).
63
64phase(A,post_Generals):0.0476190476190476; phase(A,post_Quals):0.547619047619048; phase(A,pre_Quals):0.404761904761905 :-
65 student(A),
66 \+years_in_program(A,year_6_or_more),
67 \+years_in_program(A,year_1),
68 \+years_in_program(A,year_5),
69 \+years_in_program(A,year_4).
70
71position(A,faculty):0.732142857142857; position(A,faculty_adjunct):0.125; position(A,faculty_affiliate):0.0714285714285714; position(A,faculty_emeritus):0.0714285714285714 :-
72 professor(A).
73
74aux1_prof_nb_publications(A) :-
75 advised_by(B,A),
76 student_nb_publications(B,three_or_more).
77
78prof_nb_publications(A,none):0.0416666666666667; prof_nb_publications(A,one_to_nine):0.416666666666667; prof_nb_publications(A,ten_or_more):0.541666666666667 :-
79 professor(A),
80 aux1_prof_nb_publications(A).
81
82prof_nb_publications(A,none):0.5; prof_nb_publications(A,one_to_nine):0.294117647058824; prof_nb_publications(A,ten_or_more):0.205882352941176 :-
83 professor(A),
84 \+aux1_prof_nb_publications(A).
85
86shared_publication(A,B):0.00101010101010101 :-
87 professor(A),
88 student(B),
89 student_nb_publications(B,none).
90
91shared_publication(A,B):0.956521739130435 :-
92 professor(A),
93 student(B),
94 \+student_nb_publications(B,none),
95 advised_by(B,A),
96 years_in_program(B,year_6_or_more).
97
98shared_publication(A,B):0.125 :-
99 professor(A),
100 student(B),
101 \+student_nb_publications(B,none),
102 advised_by(B,A),
103 \+years_in_program(B,year_6_or_more),
104 prof_nb_publications(A,none).
105
106shared_publication(A,B):0.631578947368421 :-
107 professor(A),
108 student(B),
109 \+student_nb_publications(B,none),
110 advised_by(B,A),
111 \+years_in_program(B,year_6_or_more),
112 \+prof_nb_publications(A,none).
113
114shared_publication(A,B):0.00515463917525773 :-
115 professor(A),
116 student(B),
117 \+student_nb_publications(B,none),
118 \+advised_by(B,A),
119 prof_nb_publications(A,none).
120
121shared_publication(A,B):0.099236641221374 :-
122 professor(A),
123 student(B),
124 \+student_nb_publications(B,none),
125 \+advised_by(B,A),
126 \+prof_nb_publications(A,none),
127 prof_nb_publications(A,one_to_nine),
128 student_nb_publications(B,one_or_two).
129
130shared_publication(A,B):0.0152671755725191 :-
131 professor(A),
132 student(B),
133 \+student_nb_publications(B,none),
134 \+advised_by(B,A),
135 \+prof_nb_publications(A,none),
136 prof_nb_publications(A,one_to_nine),
137 \+student_nb_publications(B,one_or_two).
138
139shared_publication(A,B):0.146017699115044 :-
140 professor(A),
141 student(B),
142 \+student_nb_publications(B,none),
143 \+advised_by(B,A),
144 \+prof_nb_publications(A,none),
145 \+prof_nb_publications(A,one_to_nine).
146
147student_nb_publications(A,none):0.594405594405594; student_nb_publications(A,one_or_two):0.195804195804196; student_nb_publications(A,three_or_more):0.20979020979021 :-
148 student(A).
149
150aux1_taught_by(A,B) :-
151 teaching_assistant(A,C),
152 advised_by(C,B).
153
154aux2_taught_by(A,B) :-
155 teaching_assistant(A,C),
156 advised_by(C,B),
157 shared_publication(B,C).
158
159taught_by(A,B):0.777777777777778 :-
160 course(A),
161 professor(B),
162 aux1_taught_by(A,B),
163 aux2_taught_by(A,B).
164
165taught_by(A,B):0.333333333333333 :-
166 course(A),
167 professor(B),
168 aux1_taught_by(A,B),
169 \+aux2_taught_by(A,B).
170
171taught_by(A,B):0.266666666666667 :-
172 course(A),
173 professor(B),
174 \+aux1_taught_by(A,B),
175 position(B,faculty),
176 course_level(A,level_300).
177
178taught_by(A,B):0.102941176470588 :-
179 course(A),
180 professor(B),
181 \+aux1_taught_by(A,B),
182 position(B,faculty),
183 \+course_level(A,level_300).
184
185taught_by(A,B):0.029673590504451 :-
186 course(A),
187 professor(B),
188 \+aux1_taught_by(A,B),
189 \+position(B,faculty).
190
191teaching_assistant(A,B):0.0333333333333333 :-
192 course(A),
193 student(B),
194 course_level(A,level_300),
195 student_nb_publications(B,three_or_more).
196
197teaching_assistant(A,B):0.158227848101266 :-
198 course(A),
199 student(B),
200 course_level(A,level_300),
201 \+student_nb_publications(B,three_or_more).
202
203teaching_assistant(A,B):0.0337519623233909 :-
204 course(A),
205 student(B),
206 \+course_level(A,level_300),
207 course_level(A,level_400).
208
209teaching_assistant(A,B):0.0120999219359875 :-
210 course(A),
211 student(B),
212 \+course_level(A,level_300),
213 \+course_level(A,level_400).
214
215years_in_program(A,year_1):0.244444444444444; years_in_program(A,year_2):0.155555555555556; years_in_program(A,year_3):0.233333333333333; years_in_program(A,year_4):0.144444444444444; years_in_program(A,year_5):0.111111111111111; years_in_program(A,year_6_or_more):0.111111111111111 :-
216 student(A),
217 student_nb_publications(A,none).
218
219years_in_program(A,year_1):0.032258064516129; years_in_program(A,year_2):0.0645161290322581; years_in_program(A,year_3):0.0645161290322581; years_in_program(A,year_4):0.209677419354839; years_in_program(A,year_5):0.306451612903226; years_in_program(A,year_6_or_more):0.32258064516129 :-
220 student(A),
221 \+student_nb_publications(A,none).
222
223:- end_lpad.
?-
prob(taught_by(c1,p1),Prob)
. % what is the probability that course c1 is taught by professor p1? % expected result 0.09265809305111444 ?-prob_bar(taught_by(c1,p1),Prob)
. % what is the probability that course c1 is taught by professor p1? % expected result 0.09265809305111444 ?-bdd_dot_string(taught_by(c1,p1),B,V)
. % draw the bdd for the query*/