1:- module(race_ape, [
2 check_consistency/3,
3 ask_with_answers/3,
4 prove_with_answers/3
5 ]). 6:- reexport('../race', except([
7 prove_with_answers/3,
8 ask_with_answers/3
9 ])). 10
12:- use_module(library(ape)). 13
14check_consistency(Knowledge, Result, Variant) :-
15 replace_variables(Knowledge, Variant),
16 race:check_consistency(Variant, Result),
17 Result \= error(_),
18 !.
19
20ask_with_answers(Knowledge, Question, Result) :-
21 race:ask_with_answers(Knowledge, Question, Result).
22
23prove_with_answers(Knowledge, Theorem, Result) :-
24 race:prove_with_answers(Knowledge, Theorem, Result).
25
26replace_variables(Text, Variant) :-
27 tokenizer:tokenize(Text, Tokens),
28 maplist(replace_possible_var, Tokens, TokenVariant),
29 tokens_to_sentences:tokens_to_sentences(TokenVariant, SentencesTokenVariant),
30 ace_niceace:tokens_to_sentences(SentencesTokenVariant, SentencesVariant),
31 atomic_list_concat(SentencesVariant, ' ', Variant).
32
33replace_possible_var(Token, Variant) :-
34 atom_codes(Token, Codes),
35 Codes = [C], 36 C >= 97,
37 C =< 122,
38 !,
39 variant(C, Cn),
40 atom_codes(Variant, [Cn]).
41
42replace_possible_var(Token, Token).
43
45variant(97, Cn) :-
46 !,
47 ( Cn = 97 ; Cn = 65 ).
50variant(C, Cn) :-
51 ( Cn is C - 32
52 ; Cn is C )