-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtda_option_20793038_SanhuezaVega.pl
77 lines (62 loc) · 2.72 KB
/
tda_option_20793038_SanhuezaVega.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
:- module(tda_option_20793038_SanhuezaVega, [setOption/6, getOptionMessage/2, getOptionCBCodelink/2, getOptionFCodelink/2, getOptionByMessage/3]).
:- use_module(tda_tools_20793038_SanhuezaVega).
% ######################################## TDA OPTION ########################################
% ######################################## REPRESENTACION ####################################
% Este TDA corresponde a una opcion.
% Dentro se guardara un id de la opcion, un mensaje, un id de chatbot, un id de flujo
% y una lista de palabras que caracterizan a la opcion.
% ######################################## CONSTRUCTOR #######################################
% Descripcion: Construye una opcion.
% Dom: ID (int) X Message (string) X ChatbotCodeLink (int) X FlowCodeLink (int) X
% Keyword (list)
% Rec: Option (list)
% Metodo: -
setOption(ID, Message, ChatbotCodeLink, FlowCodeLink, Keyword, Option):-
Option = [ID, Message, ChatbotCodeLink, FlowCodeLink, Keyword].
% ######################################## SELECTOR ##########################################
% Descripcion: Obtiene el ID de una opcion.
% Dom: Option (list)
% Rec: OptionID (int)
% Metodo: -
getOptionID(Option, OptionID):-
setOption(OptionID, _, _, _, _, Option).
% Descripcion: Obtiene el mensaje de una opcion.
% Dom: Option (list)
% Rec: OptionMessage (string)
% Metodo: -
getOptionMessage(Option, OptionMessage):-
setOption(_, OptionMessage, _, _, _, Option).
% Descripcion: Obtiene el Chatbot codelink de una opcion.
% Dom: Option (list)
% Rec: OptionCBCodelink (int)
% Metodo: -
getOptionCBCodelink(Option, OptionCBCodelink):-
setOption(_, _, OptionCBCodelink, _, _, Option).
% Descripcion: Obtiene el Flow codelink de una opcion.
% Dom: Option (list)
% Rec: OptionFCodelink (int)
% Metodo: -
getOptionFCodelink(Option, OptionFCodelink):-
setOption(_, _, _, OptionFCodelink, _, Option).
% Descripcion: Obtiene la lista de palabras claves de una opcion.
% Dom: Option (list)
% Rec: OptionKeyword (list)
% Metodo: -
getOptionKeyword(Option, OptionKeyword):-
setOption(_, _, _, _, OptionKeyword, Option).
% Descripcion: Obtiene una opcion segun su mensaje o id.
% Dom: Message (string) X OptionList (list)
% Rec: SelectedOption (list)
% Metodo: Recursion
getOptionByMessage(Message, [First | _], SelectedOption):-
getOptionID(First, OptionID),
number_string(OptionID, SOptionID),
SOptionID == Message,
SelectedOption = First, !.
getOptionByMessage(Message, [First | _], SelectedOption):-
downcase_atom(Message, MinMessage),
getOptionKeyword(First, OptionKeyword),
member(MinMessage, OptionKeyword),
SelectedOption = First, !.
getOptionByMessage(Message, [_ | Rest], SelectedOption):-
getOptionByMessage(Message, Rest, SelectedOption).