You selected rminer.pl
% rminer.pl (a derivative from metric01b.pl)
% the rule mining for social choice
% date: 2007.7.11
% revised: 2007.7.16
:- [sged06]. % cumulative load
:- chdom(_->l:L), nl,write('default domain':L),nl,nl.
:- make_n_agents(3).
% naive rule mining for social choice logic programming (SCLP)
rule_miner(A,B):-
formulate_hypothesis(A->B,C),
\+ gen_win(_,C).
:- dynamic rm/1.
minimal_rule_miner(A,B):-
\+ clause(rm(_),true),
rule_miner(A,B),
\+ (
rule_miner(C,D),(C,D)\=(A,B),
subset(C,A),subset(D,B)
).
minimal_rule_miner(A,B):-
\+ \+ clause(rm(_),true),
rm(A->B),
\+ (
rm(C->D),(C,D)\=(A,B),
subset(C,A),subset(D,B)
).
formulate_hypothesis(Y->Z,O):-
axioms_for_win(X),
formulate_hypothesis(X,Y->Z,O).
formulate_hypothesis([],[]->[],[]).
formulate_hypothesis([A:_|X],[A|B]->C,[A:yes|D]):-
formulate_hypothesis(X,B->C,D).
formulate_hypothesis([A:_|X],B->[A|C],[A:no(_)|D]):-
formulate_hypothesis(X,B->C,D).
formulate_hypothesis([_|X],B->C,D):-
formulate_hypothesis(X,B->C,D).
gen_rm:- C=rm(A->B),
forall(rule_miner(A,B),
(clause(C,_)->true;assert(C))
),
nl,write('save the rm/1 results to file? (y/n)'),
read(Y),
(member(Y,[y,'Y'])->tell_rm;true).
tell_rm:- C=rm(_), tell_goal('rm.pl',forall,C).
mr(A->B):-
\+ \+ clause(rm(_),true),
minimal_rule_miner(A,B).
/*
?- minimal_rule_miner(A,B).
A = [monotonic]
B = [proper, strong]
Yes
?- gen_rm.
save the rm/1 results to file? (y/n)y.
complete
Yes
?- mr(C->D),nl,write(C->D),fail.
[monotonic]->[proper, strong]
[monotonic, not weak]->[strong]
[strong]->[monotonic, not weak]
[]->[monotonic, essential]
[]->[proper, not weak]
[]->[proper, essential]
[strong, essential]->[not weak]
[]->[strong, essential]
[not weak]->[essential]
No
?- rule_miner([monotonic,proper,strong|A],B).
A = ['not weak']
B = [essential] ;
A = [essential]
B = ['not weak'] ;
No
?- rule_miner([proper,strong|A],B),nl,write(A->B),fail.
[not weak]->[monotonic, essential]
[essential]->[monotonic, not weak]
[]->[monotonic, not weak, essential]
[]->[monotonic, not weak]
[]->[monotonic, essential]
[not weak]->[essential]
[essential]->[not weak]
No
?-
*/
% end
return to front page.