------------------------------------------------------------------------ -- Actor Prolog, (c) 2002 Written by Alexei A. Morozov -- -- -- -- File C:\WINDOWS\TEMP\A-PROLOG.LOG -- -- created 10-06-2003 00:49:18 -- -- Source no_source_file -- -- Library C:\WINDOWS\TEMP\A-PROLOG.BIN -- ------------------------------------------------------------------------ package "D:\\MOROZOV\\Z\\DEMO\\EXE\\EXAMPLES\\SADT\\JAM-E\\JAM-E": project: (('MODEL', project_name = "Actor Prolog", creation_date = "19/3/1999", author = "Alexei A. Morozov", title = "JAM-MAKING", language_version = "1.2.8")) ------------------------------------------------------------------------ class 'CHOOSE_BERRIES_AND_FRUITS' specializing 'DIALOG': value_o1; identifier = "ChooseFruits"; [ ] ------------------------------------------------------------------------ class 'WASH_UP_JARS_AND_LIDS' specializing 'SIMPLE_BLOCK': [] ------------------------------------------------------------------------ class 'BOIL_SOME_WATER_IN_A_KETTLE' specializing 'SIMPLE_BLOCK': [ -- instrument = "A kettle". ] ------------------------------------------------------------------------ class 'CLEANSE_LIDS_BY_BOILING_WATER' specializing 'SIMPLE_BLOCK': [ -- instrument = "A saucepan for boiling water". ] ------------------------------------------------------------------------ class 'CLEANSE_JAM-JARS_BY_BOILED_WATER' specializing 'SIMPLE_BLOCK': [ -- instrument = "A kettle". ] ------------------------------------------------------------------------ class 'DRY_JAM-JARS_AND_LIDS' specializing 'SIMPLE_BLOCK': [] ------------------------------------------------------------------------ class 'WASH_BERRIES_AND_FRUITS' specializing 'SIMPLE_BLOCK': value_i1; protecting: value_o1; [ -- goal:-!, value_o1 == value_i1. instrument = "A colander". ] ------------------------------------------------------------------------ class 'PREPARE_SOME_MIXTURE_OF_HARD_BERRIES_AND_SUGAR' specializing 'COMPOUND_BLOCK': value_i1; [ -- goal:-!, check_fruits(value_i1). check_fruits("Black rowan"). ] ------------------------------------------------------------------------ class 'PREPARE_SOME_MIXTURE_OF_LARGE_FRUITS_AND_SUGAR' specializing 'COMPOUND_BLOCK': value_i1; [ -- goal:-!, check_fruits(value_i1). check_fruits("The \"Antonovka\" apples"). ] ------------------------------------------------------------------------ class 'PREPARE_SOME_MIXTURE_OF_SOFT_BERRIES_AND_SUGAR' specializing 'COMPOUND_BLOCK': value_i1; [ -- goal:-!, check_fruits(value_i1). check_fruits("Strawberry"). ] ------------------------------------------------------------------------ class 'BOIL_SOME_WATER_IN_THE_SAUCEPAN' specializing 'SIMPLE_BLOCK': [ -- instrument = "A saucepan for boiling water". ] ------------------------------------------------------------------------ class 'PREPARE_SOME_SYRUP' specializing 'SIMPLE_BLOCK': value_i1; value_o1; [ -- goal:-!, value_o1 == value_i1. instrument = "A saucepan or copper basin". instrument = "Wooden spoon". ] ------------------------------------------------------------------------ class 'BLANCH_BERRIES' specializing 'SIMPLE_BLOCK': value_i2; value_o1; [ -- goal:-!, value_o1 == value_i2. instrument = "A colander". instrument = "A saucepan for boiling water". ] ------------------------------------------------------------------------ class 'PUT_BERRIES_IN_SYRUP' specializing 'SIMPLE_BLOCK': value_i1; value_o1; [ -- goal:-!, value_o1 == value_i1. instrument = "A saucepan or copper basin". ] ------------------------------------------------------------------------ class 'CUT_FRUITS_INTO_LOBULES' specializing 'SIMPLE_BLOCK': value_i1; value_o1; [ -- goal:-!, value_o1 == value_i1. instrument = "A knife of stainless steel". ] ------------------------------------------------------------------------ class 'SPRINKLE_WITH_SUGAR' specializing 'SIMPLE_BLOCK': value_i1; value_o1; [ -- goal:-!, value_o1 == value_i1. instrument = "A saucepan or copper basin". ] ------------------------------------------------------------------------ class 'SUSPEND_THE_PROCESS_FOR_6-8_HOURS' specializing 'SIMPLE_BLOCK': value_i1; value_o1; [ -- goal:-!, value_o1 == value_i1. instrument = "A saucepan or copper basin". ] ------------------------------------------------------------------------ class 'ADD_SOME_WATER_IN_THE_MIXTURE' specializing 'SIMPLE_BLOCK': value_i1; value_o1; [ -- goal:-!, value_o1 == value_i1. instrument = "A saucepan or copper basin". ] ------------------------------------------------------------------------ class 'BOILING_CYCLE_FOR_HARD_BERRIES_AND_FRUITS' specializing 'COMPOUND_BLOCK': value_i1; [ -- goal:-!, check_fruits(value_i1). check_fruits("Black rowan"). check_fruits("The \"Antonovka\" apples"). ] ------------------------------------------------------------------------ class 'BOILING_CYCLE_FOR_SOFT_BERRIES_AND_FRUITS' specializing 'COMPOUND_BLOCK': value_i1; [ -- goal:-!, check_fruits(value_i1). check_fruits("Strawberry"). ] ------------------------------------------------------------------------ class 'HEAT_THE_MIXTURE' specializing 'DIALOG': value_i2; time; identifier = "HeatUpMixture"; fruits = value_i2; [ -- goal:-!, set_time(value_i2,time). set_time(#,"3-5"):-!. set_time("Black rowan","3"):-!. set_time("The \"Antonovka\" apples",5):-!. set_time("Strawberry","---"):-!. set_time(_,"3-5"):-!. instrument = "A saucepan or copper basin". instrument = "Wooden spoon". ] ------------------------------------------------------------------------ class 'SUSPEND_THE_PROCESS' specializing 'SIMPLE_BLOCK': [ -- instrument = "A saucepan or copper basin". ] ------------------------------------------------------------------------ class 'CHECK_IF_JAM_IS_READY' specializing 'SIMPLE_BLOCK': [ -- instrument = "Wooden spoon". instrument = "A saucer". ] ------------------------------------------------------------------------ class 'MAIN_PHASE_OF_BOILING' specializing 'DIALOG': value_i1; time; identifier = "HeatUpMixture"; fruits = value_i1; [ -- goal:-!, set_time(value_i1,time). set_time(#,"---"):-!. set_time("Strawberry","10"):-!. set_time(_,"---"):-!. instrument = "A saucepan or copper basin". instrument = "Wooden spoon". ] ------------------------------------------------------------------------ class 'SUPPLEMENTARY_PHASE_OF_BOILING' specializing 'SIMPLE_BLOCK': [ -- instrument = "A saucepan or copper basin". instrument = "Wooden spoon". ] ------------------------------------------------------------------------ class 'COOL_JAM' specializing 'SIMPLE_BLOCK': [ -- instrument = "A saucepan or copper basin". ] ------------------------------------------------------------------------ class 'POUR_JAM_INTO_JARS' specializing 'SIMPLE_BLOCK': [ -- instrument = "Wooden spoon". instrument = "Canning equipment". ] ------------------------------------------------------------------------ class 'SIMPLE_BLOCK': [ -- goal. show(_). ] ------------------------------------------------------------------------ class 'ANALYSIS_OF_MODEL:_WHAT_KITCHEN_UTENSILS_ARE_WE_NEED?' specializing 'DIALOG': identifier = "ListOfInstruments"; title; name; number; model; x; y; text_color; container; con; result; instruments; agent = (('FINDINSTRUMENTS', container = container, protecting: result = result)); [ -- goal:- refine_list(result,[],instruments),!. goal:-!, [result]. refine_list([],LIST,LIST):-!. refine_list([#|REST],LIST1,LIST2):-!, refine_list(REST,LIST1,LIST2). refine_list([ITEM|REST],LIST1,LIST3):- is_list(ITEM),!, refine_list(ITEM,LIST1,LIST2), refine_list(REST,LIST2,LIST3). refine_list([ITEM|REST],LIST1,LIST2):- is_not_element(ITEM,LIST1),!, refine_list(REST,[ITEM|LIST1],LIST2). refine_list([_|REST],LIST1,LIST2):-!, refine_list(REST,LIST1,LIST2). refine_list(_,LIST,LIST). is_list([]):-!. is_list([_|_]). is_not_element(_,[]):-!. is_not_element(ITEM,[ITEM|_]):-!, fail. is_not_element(ITEM,[_|LIST]):- is_not_element(ITEM,LIST). show(_):- show. ] ------------------------------------------------------------------------ class 'FINDINSTRUMENTS' specializing 'ALPHA': container; result; agent = (('INSTRUMENTS', suspending: source_list = [], target_list = container, protecting: result = result)); [ -- goal:-!. ] ------------------------------------------------------------------------ class 'INSTRUMENTS' specializing 'ALPHA': source_list; target_list; result; tail_list; tail_result; tail = (('INSTRUMENTS', suspending: source_list = tail_list, target_list = target_list ?? instrument(), protecting: result = tail_result)); con = ('CONSOLE'); [ -- goal:- source_list == target_list,!, result == target_list. goal:- tail_list == target_list, result == tail_result. ] ------------------------------------------------------------------------ class 'COMPOUND_BLOCK' specializing 'ALPHA': c = ('CONSOLE'); [ -- instrument = BLOCK :- !, component(BLOCK). ] ------------------------------------------------------------------------ class 'MODEL' specializing 'ALPHA': box = (('DIAGRAM-ROOT')); project_name = "Actor Prolog"; author = "Alexei A. Morozov"; [ ] ------------------------------------------------------------------------ class 'DIAGRAM-ROOT' specializing 'A-0': link_1; box_0 = (('DIAGRAM-A0', container = self, entry_i1 = ('ARROW', host = self, entry = "0i1", value = link_1), value_i1 = link_1, entry_i2 = ('ARROW', host = self, entry = "0i2", value = link_1), value_i2 = link_1, entry_i3 = ('ARROW', host = self, entry = "0i3", value = link_1), value_i3 = link_1, entry_i4 = ('ARROW', host = self, entry = "0i4", value = link_1), value_i4 = link_1, entry_m1 = ('ARROW', host = self, entry = "0m1", value = link_1), value_m1 = link_1, entry_m2 = ('ARROW', host = self, entry = "0m2", value = link_1), value_m2 = link_1, entry_c1 = ('ARROW', host = self, entry = "0c1", value = link_1), value_c1 = link_1, entry_m3 = ('ARROW', host = self, entry = "0m3", value = link_1), value_m3 = link_1, entry_m4 = ('ARROW', host = self, entry = "0m4", value = link_1), value_m4 = link_1, entry_c2 = ('ARROW', host = self, entry = "0c2", value = link_1), value_c2 = link_1, entry_m5 = ('ARROW', host = self, entry = "0m5", value = link_1), value_m5 = link_1, entry_o1 = ('ARROW', host = self, entry = "0o1", value = link_1), value_o1 = link_1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "19/3/1999"; author = "Alexei A. Morozov"; title = "A-0"; name = "A-0"; number = 'root'; model; x = 54.0; y = 6.0; container; con = ('REPORT', title = "A-0", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'A-0' specializing 'COMPOUND_BLOCK': box_0; title; name; number; model; x; y; container; con; [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A0' specializing 'JAM-MAKING': entry_i1; value_i1; entry_i2; value_i2; entry_i3; value_i3; entry_i4; value_i4; entry_m4; value_m4; entry_m3; value_m3; entry_m1; value_m1; entry_m5; value_m5; entry_o1; value_o1; link_1; link_2; link_3; box_1 = (('DIAGRAM-A1', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i1), value_i1 = value_i1, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_3), value_o1 = link_3)); box_2 = (('DIAGRAM-A2', container = self, entry_i2 = ('ARROW', host = self, entry = "2i2", value = value_i4), value_i2 = value_i4, entry_m1 = ('ARROW', host = self, entry = "2m1", value = value_m4), value_m1 = value_m4, entry_m3 = ('ARROW', host = self, entry = "2m3", value = value_m3), value_m3 = value_m3, entry_m2 = ('ARROW', host = self, entry = "2m2", value = value_m1), value_m2 = value_m1, entry_i1 = ('ARROW', host = self, entry = "2i1", value = value_i3), value_i1 = value_i3, entry_o1 = ('ARROW', host = self, entry = "2o1", value = link_1), value_o1 = link_1)); box_3 = (('DIAGRAM-A3', container = self, entry_i2 = ('ARROW', host = self, entry = "3i2", value = value_i2), value_i2 = value_i2, entry_i1 = ('ARROW', host = self, entry = "3i1", value = link_3), value_i1 = link_3, entry_i3 = ('ARROW', host = self, entry = "3i3", value = value_i3), value_i3 = value_i3, entry_m1 = ('ARROW', host = self, entry = "3m1", value = value_m3), value_m1 = value_m3, entry_m2 = ('ARROW', host = self, entry = "3m2", value = value_m1), value_m2 = value_m1, entry_o1 = ('ARROW', host = self, entry = "3o1", value = link_2), value_o1 = link_2)); box_4 = (('DIAGRAM-A4', container = self, entry_i1 = ('ARROW', host = self, entry = "4i1", value = link_2), value_i1 = link_2, entry_m1 = ('ARROW', host = self, entry = "4m1", value = value_m3), value_m1 = value_m3, entry_o1 = ('ARROW', host = self, entry = "4o1", value = value_m1), value_o1 = value_m1)); box_5 = (('DIAGRAM-A5', container = self, entry_i1 = ('ARROW', host = self, entry = "5i1", value = value_m1), value_i1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "5o1", value = value_m1), value_o1 = value_m1)); box_6 = (('DIAGRAM-A6', container = self)); box_7 = (('DIAGRAM-A7', container = self, entry_m1 = ('ARROW', host = self, entry = "7m1", value = value_m5), value_m1 = value_m5, entry_i2 = ('ARROW', host = self, entry = "7i2", value = link_1), value_i2 = link_1, entry_i1 = ('ARROW', host = self, entry = "7i1", value = value_m1), value_i1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "7o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "19/3/1999"; author = "Alexei A. Morozov"; title = "A0: JAM-MAKING"; name = "JAM-MAKING"; number = 0; model; x = 26.20667; y = 15.79944; container; con = ('REPORT', title = "A0: JAM-MAKING", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2). component(box_3). component(box_4). component(box_5). component(box_6). component(box_7):-!. "1i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "3i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "2i2"{|REST}:-!, entry_i4 ? 'message'{|REST}. "2m1"{|REST}:-!, entry_m4 ? 'message'{|REST}. "7m1"{|REST}:-!, entry_m5 ? 'message'{|REST}. "1o1"{|REST}:-!, box_3 << "i1"{|REST}. "3i1"{|REST}:-!, box_1 << "o1"{|REST}. "3o1"{|REST}:-!, box_4 << "i1"{|REST}. "4i1"{|REST}:-!, box_3 << "o1"{|REST}. "4o1"{|REST}:-!, box_5 << "i1"{|REST}, box_7 << "i1"{|REST}. "2o1"{|REST}:-!, box_7 << "i2"{|REST}. "7i2"{|REST}:-!, box_2 << "o1"{|REST}. "5o1"{|REST}:-!, box_7 << "i1"{|REST}. "7o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "5i1"{|REST}:-!, box_4 << "o1"{|REST}. "4m1"{|REST}:-!, entry_m3 ? 'message'{|REST}. "2m3"{|REST}:-!, entry_m3 ? 'message'{|REST}. "7i1"{|REST}:-!, entry_m1 ? 'message'{|REST}, box_5 << "o1"{|REST}, box_4 << "o1"{|REST}. "2m2"{|REST}:-!, entry_m1 ? 'message'{|REST}. "2i1"{|REST}:-!, entry_i3 ? 'message'{|REST}. "3i3"{|REST}:-!, entry_i3 ? 'message'{|REST}. "3m1"{|REST}:-!, entry_m3 ? 'message'{|REST}. "3m2"{|REST}:-!, entry_m1 ? 'message'{|REST}. "i1"{|REST}:-!, box_1 << "i1"{|REST}. "i2"{|REST}:-!, box_3 << "i2"{|REST}. "i3"{|REST}:-!, box_2 << "i1"{|REST}, box_3 << "i3"{|REST}. "i4"{|REST}:-!, box_2 << "i2"{|REST}. "m4"{|REST}:-!, box_2 << "m1"{|REST}. "m3"{|REST}:-!, box_4 << "m1"{|REST}, box_2 << "m3"{|REST}, box_3 << "m1"{|REST}. "m1"{|REST}:-!, box_7 << "i1"{|REST}, box_2 << "m2"{|REST}, box_3 << "m2"{|REST}. "m5"{|REST}:-!, box_7 << "m1"{|REST}. "o1"{|REST}:-!, box_7 << "o1"{|REST}. P("1i1",REST*):-!, entry_i1 ? P(REST*). P("3i2",REST*):-!, entry_i2 ? P(REST*). P("2i2",REST*):-!, entry_i4 ? P(REST*). P("2m1",REST*):-!, entry_m4 ? P(REST*). P("7m1",REST*):-!, entry_m5 ? P(REST*). P("1o1",REST*):-!, box_3 << P("i1",REST*). P("3i1",REST*):-!, box_1 << P("o1",REST*). P("3o1",REST*):-!, box_4 << P("i1",REST*). P("4i1",REST*):-!, box_3 << P("o1",REST*). P("4o1",REST*):-!, box_5 << P("i1",REST*), box_7 << P("i1",REST*). P("2o1",REST*):-!, box_7 << P("i2",REST*). P("7i2",REST*):-!, box_2 << P("o1",REST*). P("5o1",REST*):-!, box_7 << P("i1",REST*). P("7o1",REST*):-!, entry_o1 ? P(REST*). P("5i1",REST*):-!, box_4 << P("o1",REST*). P("4m1",REST*):-!, entry_m3 ? P(REST*). P("2m3",REST*):-!, entry_m3 ? P(REST*). P("7i1",REST*):-!, entry_m1 ? P(REST*), box_5 << P("o1",REST*), box_4 << P("o1",REST*). P("2m2",REST*):-!, entry_m1 ? P(REST*). P("2i1",REST*):-!, entry_i3 ? P(REST*). P("3i3",REST*):-!, entry_i3 ? P(REST*). P("3m1",REST*):-!, entry_m3 ? P(REST*). P("3m2",REST*):-!, entry_m1 ? P(REST*). P("i1",REST*):-!, box_1 << P("i1",REST*). P("i2",REST*):-!, box_3 << P("i2",REST*). P("i3",REST*):-!, box_2 << P("i1",REST*), box_3 << P("i3",REST*). P("i4",REST*):-!, box_2 << P("i2",REST*). P("m4",REST*):-!, box_2 << P("m1",REST*). P("m3",REST*):-!, box_4 << P("m1",REST*), box_2 << P("m3",REST*), box_3 << P("m1",REST*). P("m1",REST*):-!, box_7 << P("i1",REST*), box_2 << P("m2",REST*), box_3 << P("m2",REST*). P("m5",REST*):-!, box_7 << P("m1",REST*). P("o1",REST*):-!, box_7 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'JAM-MAKING' specializing 'COMPOUND_BLOCK': entry_i1; value_i1; entry_i2; value_i2; entry_i3; value_i3; entry_i4; value_i4; entry_m4; value_m4; entry_m3; value_m3; entry_m1; value_m1; entry_m5; value_m5; entry_o1; value_o1; box_1; box_2; box_3; box_4; box_5; box_6; box_7; title; name; number; model; x; y; container; con; [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A2' specializing 'STERILIZE_JARS_AND_LIDS': entry_i2; value_i2; entry_i1; value_i1; entry_m1; value_m1; entry_m2; value_m2; entry_m3; value_m3; entry_o1; value_o1; link_1; link_2; link_3; link_4; box_1 = (('DIAGRAM-A21', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i2), value_i1 = value_i2, entry_m1 = ('ARROW', host = self, entry = "1m1", value = value_m1), value_m1 = value_m1, entry_m2 = ('ARROW', host = self, entry = "1m2", value = value_m2), value_m2 = value_m2, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_4), value_o1 = link_4)); box_2 = (('DIAGRAM-A22', container = self, entry_m1 = ('ARROW', host = self, entry = "2m1", value = value_m2), value_m1 = value_m2, entry_i1 = ('ARROW', host = self, entry = "2i1", value = value_i1), value_i1 = value_i1, entry_o1 = ('ARROW', host = self, entry = "2o1", value = link_3), value_o1 = link_3)); box_3 = (('DIAGRAM-A23', container = self, entry_i1 = ('ARROW', host = self, entry = "3i1", value = link_4), value_i1 = link_4, entry_i2 = ('ARROW', host = self, entry = "3i2", value = value_i1), value_i2 = value_i1, entry_m1 = ('ARROW', host = self, entry = "3m1", value = value_m2), value_m1 = value_m2, entry_o1 = ('ARROW', host = self, entry = "3o1", value = link_1), value_o1 = link_1)); box_4 = (('DIAGRAM-A24', container = self, entry_m1 = ('ARROW', host = self, entry = "4m1", value = link_3), value_m1 = link_3, entry_i1 = ('ARROW', host = self, entry = "4i1", value = link_4), value_i1 = link_4, entry_o1 = ('ARROW', host = self, entry = "4o1", value = link_2), value_o1 = link_2)); box_5 = (('DIAGRAM-A25', container = self, entry_i1 = ('ARROW', host = self, entry = "5i1", value = link_1), value_i1 = link_1, entry_i2 = ('ARROW', host = self, entry = "5i2", value = link_2), value_i2 = link_2, entry_o1 = ('ARROW', host = self, entry = "5o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "19/3/1999"; title = "A2: Sterilize jars and lids"; name = "Sterilize jars and lids"; number = 2; model; x = 14.43251; y = 13.54224; container; con = ('REPORT', title = "A2: STERILIZE_JARS_AND_LIDS", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2). component(box_3). component(box_4). component(box_5):-!. "1i1"{|REST}:-!, entry_i2 ? 'message'{|REST}. "1m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "1m2"{|REST}:-!, entry_m2 ? 'message'{|REST}, entry_m3 ? 'message'{|REST}. "1o1"{|REST}:-!, box_3 << "i1"{|REST}, box_4 << "i1"{|REST}. "3o1"{|REST}:-!, box_5 << "i1"{|REST}. "5i1"{|REST}:-!, box_3 << "o1"{|REST}. "4o1"{|REST}:-!, box_5 << "i2"{|REST}. "5i2"{|REST}:-!, box_4 << "o1"{|REST}. "2o1"{|REST}:-!, box_4 << "m1"{|REST}. "4m1"{|REST}:-!, box_2 << "o1"{|REST}. "5o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "3i1"{|REST}:-!, box_1 << "o1"{|REST}. "3i2"{|REST}:-!, entry_i1 ? 'message'{|REST}. "2m1"{|REST}:-!, entry_m3 ? 'message'{|REST}. "2i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "4i1"{|REST}:-!, box_1 << "o1"{|REST}. "3m1"{|REST}:-!, entry_m3 ? 'message'{|REST}. "i2"{|REST}:-!, box_1 << "i1"{|REST}. "i1"{|REST}:-!, box_3 << "i2"{|REST}, box_2 << "i1"{|REST}. "m1"{|REST}:-!, box_1 << "m1"{|REST}. "m2"{|REST}:-!, box_1 << "m2"{|REST}. "m3"{|REST}:-!, box_1 << "m2"{|REST}, box_2 << "m1"{|REST}, box_3 << "m1"{|REST}. "o1"{|REST}:-!, box_5 << "o1"{|REST}. P("1i1",REST*):-!, entry_i2 ? P(REST*). P("1m1",REST*):-!, entry_m1 ? P(REST*). P("1m2",REST*):-!, entry_m2 ? P(REST*), entry_m3 ? P(REST*). P("1o1",REST*):-!, box_3 << P("i1",REST*), box_4 << P("i1",REST*). P("3o1",REST*):-!, box_5 << P("i1",REST*). P("5i1",REST*):-!, box_3 << P("o1",REST*). P("4o1",REST*):-!, box_5 << P("i2",REST*). P("5i2",REST*):-!, box_4 << P("o1",REST*). P("2o1",REST*):-!, box_4 << P("m1",REST*). P("4m1",REST*):-!, box_2 << P("o1",REST*). P("5o1",REST*):-!, entry_o1 ? P(REST*). P("3i1",REST*):-!, box_1 << P("o1",REST*). P("3i2",REST*):-!, entry_i1 ? P(REST*). P("2m1",REST*):-!, entry_m3 ? P(REST*). P("2i1",REST*):-!, entry_i1 ? P(REST*). P("4i1",REST*):-!, box_1 << P("o1",REST*). P("3m1",REST*):-!, entry_m3 ? P(REST*). P("i2",REST*):-!, box_1 << P("i1",REST*). P("i1",REST*):-!, box_3 << P("i2",REST*), box_2 << P("i1",REST*). P("m1",REST*):-!, box_1 << P("m1",REST*). P("m2",REST*):-!, box_1 << P("m2",REST*). P("m3",REST*):-!, box_1 << P("m2",REST*), box_2 << P("m1",REST*), box_3 << P("m1",REST*). P("o1",REST*):-!, box_5 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'STERILIZE_JARS_AND_LIDS' specializing 'COMPOUND_BLOCK': entry_i2; value_i2; entry_i1; value_i1; entry_m1; value_m1; entry_m2; value_m2; entry_m3; value_m3; entry_o1; value_o1; box_1; box_2; box_3; box_4; box_5; title; name; number; model; x; y; container; con; [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A4' specializing 'BOIL_BERRIES_AND_FRUITS_WITH_SUGAR': entry_i1; value_i1; entry_m1; value_m1; entry_o1; value_o1; box_1 = (('DIAGRAM-A41', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i1), value_i1 = value_i1, entry_m1 = ('ARROW', host = self, entry = "1m1", value = value_m1), value_m1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "1o1", value = value_o1), value_o1 = value_o1)); box_2 = (('DIAGRAM-A42', container = self, entry_m1 = ('ARROW', host = self, entry = "2m1", value = value_m1), value_m1 = value_m1, entry_i1 = ('ARROW', host = self, entry = "2i1", value = value_i1), value_i1 = value_i1, entry_o1 = ('ARROW', host = self, entry = "2o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "27/1/2003"; creation_date = "19/3/1999"; title = "A4: Boil berries and fruits with sugar"; name = "Boil berries and fruits with sugar"; number = 4; model; x = 35.32248; y = 12.03768; container; con = ('REPORT', title = "A4: BOIL_BERRIES_AND_FRUITS_WITH_SUGAR", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2):-!. "1o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "2o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "1i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "2m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "1m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "2i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "i1"{|REST}:-!, box_1 << "i1"{|REST}, box_2 << "i1"{|REST}. "m1"{|REST}:-!, box_2 << "m1"{|REST}, box_1 << "m1"{|REST}. "o1"{|REST}:-!, box_1 << "o1"{|REST}, box_2 << "o1"{|REST}. P("1o1",REST*):-!, entry_o1 ? P(REST*). P("2o1",REST*):-!, entry_o1 ? P(REST*). P("1i1",REST*):-!, entry_i1 ? P(REST*). P("2m1",REST*):-!, entry_m1 ? P(REST*). P("1m1",REST*):-!, entry_m1 ? P(REST*). P("2i1",REST*):-!, entry_i1 ? P(REST*). P("i1",REST*):-!, box_1 << P("i1",REST*), box_2 << P("i1",REST*). P("m1",REST*):-!, box_2 << P("m1",REST*), box_1 << P("m1",REST*). P("o1",REST*):-!, box_1 << P("o1",REST*), box_2 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'BOIL_BERRIES_AND_FRUITS_WITH_SUGAR' specializing 'COMPOUND_BLOCK': entry_i1; value_i1; entry_m1; value_m1; entry_o1; value_o1; box_1; box_2; title; name; number; model; x; y; container; con; [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A41' specializing 'BOILING_CYCLE_FOR_HARD_BERRIES_AND_FRUITS': entry_i1; value_i1; entry_m1; value_m1; entry_o1; value_o1; link_1; link_2; link_3; box_1 = (('DIAGRAM-A411', container = self, entry_i2 = ('ARROW', host = self, entry = "1i2", value = value_i1), value_i2 = value_i1, entry_m1 = ('ARROW', host = self, entry = "1m1", value = value_m1), value_m1 = value_m1, entry_i1 = ('ARROW', host = self, entry = "1i1", value = link_1), value_i1 = link_1, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_3), value_o1 = link_3, entry_o2 = ('ARROW', host = self, entry = "1o2", value = link_2), value_o2 = link_2)); box_2 = (('DIAGRAM-A412', container = self, entry_i1 = ('ARROW', host = self, entry = "2i1", value = link_3), value_i1 = link_3, entry_o1 = ('ARROW', host = self, entry = "2o1", value = link_1), value_o1 = link_1)); box_3 = (('DIAGRAM-A413', container = self, entry_i1 = ('ARROW', host = self, entry = "3i1", value = link_2), value_i1 = link_2, entry_o1 = ('ARROW', host = self, entry = "3o1", value = link_1), value_o1 = link_1, entry_o2 = ('ARROW', host = self, entry = "3o2", value = value_o1), value_o2 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "2/4/1999"; title = "A41: Boiling cycle for hard berries and fruits"; name = "Boiling cycle for hard berries and fruits"; number = 1; model; x = 22.02915; y = 10.34472; container; con = ('REPORT', title = "A41: BOILING_CYCLE_FOR_HARD_BERRIES_AND_FRUITS", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2). component(box_3):-!. "1i2"{|REST}:-!, entry_i1 ? 'message'{|REST}. "1m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "1o1"{|REST}:-!, box_2 << "i1"{|REST}. "2i1"{|REST}:-!, box_1 << "o1"{|REST}. "1o2"{|REST}:-!, box_3 << "i1"{|REST}. "3i1"{|REST}:-!, box_1 << "o2"{|REST}. "2o1"{|REST}:-!, box_1 << "i1"{|REST}. "3o1"{|REST}:-!, box_1 << "i1"{|REST}. "3o2"{|REST}:-!, entry_o1 ? 'message'{|REST}. "1i1"{|REST}:-!, box_2 << "o1"{|REST}, box_3 << "o1"{|REST}. "i1"{|REST}:-!, box_1 << "i2"{|REST}. "m1"{|REST}:-!, box_1 << "m1"{|REST}. "o1"{|REST}:-!, box_3 << "o2"{|REST}. P("1i2",REST*):-!, entry_i1 ? P(REST*). P("1m1",REST*):-!, entry_m1 ? P(REST*). P("1o1",REST*):-!, box_2 << P("i1",REST*). P("2i1",REST*):-!, box_1 << P("o1",REST*). P("1o2",REST*):-!, box_3 << P("i1",REST*). P("3i1",REST*):-!, box_1 << P("o2",REST*). P("2o1",REST*):-!, box_1 << P("i1",REST*). P("3o1",REST*):-!, box_1 << P("i1",REST*). P("3o2",REST*):-!, entry_o1 ? P(REST*). P("1i1",REST*):-!, box_2 << P("o1",REST*), box_3 << P("o1",REST*). P("i1",REST*):-!, box_1 << P("i2",REST*). P("m1",REST*):-!, box_1 << P("m1",REST*). P("o1",REST*):-!, box_3 << P("o2",REST*). ] ------------------------------------------------------------------------ class 'DIAGRAM-A3' specializing 'PREPARE_BERRIES_AND_FRUITS': entry_i1; value_i1; entry_i2; value_i2; entry_i3; value_i3; entry_m2; value_m2; entry_m1; value_m1; entry_o1; value_o1; link_1; box_1 = (('DIAGRAM-A31', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i1), value_i1 = value_i1, entry_m1 = ('ARROW', host = self, entry = "1m1", value = value_m2), value_m1 = value_m2, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_1), value_o1 = link_1)); box_2 = (('DIAGRAM-A32', container = self, entry_i2 = ('ARROW', host = self, entry = "2i2", value = value_i2), value_i2 = value_i2, entry_i3 = ('ARROW', host = self, entry = "2i3", value = value_i3), value_i3 = value_i3, entry_m1 = ('ARROW', host = self, entry = "2m1", value = value_m1), value_m1 = value_m1, entry_i1 = ('ARROW', host = self, entry = "2i1", value = link_1), value_i1 = link_1, entry_o1 = ('ARROW', host = self, entry = "2o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "2/4/1999"; title = "A3: Prepare berries and fruits"; name = "Prepare berries and fruits"; number = 3; model; x = 23.92752; y = 7.71168; container; con = ('REPORT', title = "A3: PREPARE_BERRIES_AND_FRUITS", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2):-!. "1i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "2i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "2i3"{|REST}:-!, entry_i3 ? 'message'{|REST}. "1m1"{|REST}:-!, entry_m2 ? 'message'{|REST}. "2m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "1o1"{|REST}:-!, box_2 << "i1"{|REST}. "2i1"{|REST}:-!, box_1 << "o1"{|REST}. "2o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "i1"{|REST}:-!, box_1 << "i1"{|REST}. "i2"{|REST}:-!, box_2 << "i2"{|REST}. "i3"{|REST}:-!, box_2 << "i3"{|REST}. "m2"{|REST}:-!, box_1 << "m1"{|REST}. "m1"{|REST}:-!, box_2 << "m1"{|REST}. "o1"{|REST}:-!, box_2 << "o1"{|REST}. P("1i1",REST*):-!, entry_i1 ? P(REST*). P("2i2",REST*):-!, entry_i2 ? P(REST*). P("2i3",REST*):-!, entry_i3 ? P(REST*). P("1m1",REST*):-!, entry_m2 ? P(REST*). P("2m1",REST*):-!, entry_m1 ? P(REST*). P("1o1",REST*):-!, box_2 << P("i1",REST*). P("2i1",REST*):-!, box_1 << P("o1",REST*). P("2o1",REST*):-!, entry_o1 ? P(REST*). P("i1",REST*):-!, box_1 << P("i1",REST*). P("i2",REST*):-!, box_2 << P("i2",REST*). P("i3",REST*):-!, box_2 << P("i3",REST*). P("m2",REST*):-!, box_1 << P("m1",REST*). P("m1",REST*):-!, box_2 << P("m1",REST*). P("o1",REST*):-!, box_2 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'PREPARE_BERRIES_AND_FRUITS' specializing 'COMPOUND_BLOCK': entry_i1; value_i1; entry_i2; value_i2; entry_i3; value_i3; entry_m2; value_m2; entry_m1; value_m1; entry_o1; value_o1; box_1; box_2; title; name; number; model; x; y; container; con; [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A32' specializing 'PREPARE_SUGAR_MIXTURE': entry_i1; value_i1; entry_i2; value_i2; entry_i3; value_i3; entry_m1; value_m1; entry_o1; value_o1; box_1 = (('DIAGRAM-A321', container = self, entry_m1 = ('ARROW', host = self, entry = "1m1", value = value_m1), value_m1 = value_m1, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i1), value_i1 = value_i1, entry_i2 = ('ARROW', host = self, entry = "1i2", value = value_i2), value_i2 = value_i2, entry_i3 = ('ARROW', host = self, entry = "1i3", value = value_o1), value_i3 = value_o1, entry_o1 = ('ARROW', host = self, entry = "1o1", value = value_o1), value_o1 = value_o1)); box_2 = (('DIAGRAM-A322', container = self, entry_i1 = ('ARROW', host = self, entry = "2i1", value = value_i1), value_i1 = value_i1, entry_i2 = ('ARROW', host = self, entry = "2i2", value = value_i2), value_i2 = value_i2, entry_i3 = ('ARROW', host = self, entry = "2i3", value = value_o1), value_i3 = value_o1, entry_o1 = ('ARROW', host = self, entry = "2o1", value = value_o1), value_o1 = value_o1)); box_3 = (('DIAGRAM-A323', container = self, entry_i2 = ('ARROW', host = self, entry = "3i2", value = value_i2), value_i2 = value_i2, entry_i1 = ('ARROW', host = self, entry = "3i1", value = value_i1), value_i1 = value_i1, entry_o1 = ('ARROW', host = self, entry = "3o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "2/4/1999"; title = "A32: Prepare sugar mixture"; name = "Prepare sugar mixture"; number = 2; model; x = 42.53834; y = 17.49216; container; con = ('REPORT', title = "A32: PREPARE_SUGAR_MIXTURE", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2). component(box_3):-!. "1m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "1o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "2o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "3o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "1i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "1i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "1i3"{|REST}:-!, entry_i3 ? 'message'{|REST}. "2i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "2i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "2i3"{|REST}:-!, entry_i3 ? 'message'{|REST}. "3i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "3i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "i1"{|REST}:-!, box_1 << "i1"{|REST}, box_2 << "i1"{|REST}, box_3 << "i1"{|REST}. "i2"{|REST}:-!, box_1 << "i2"{|REST}, box_2 << "i2"{|REST}, box_3 << "i2"{|REST}. "i3"{|REST}:-!, box_1 << "i3"{|REST}, entry_o1 ? 'message'{|REST}, box_2 << "i3"{|REST}. "m1"{|REST}:-!, box_1 << "m1"{|REST}. "o1"{|REST}:-!, box_3 << "o1"{|REST}, entry_i3 ? 'message'{|REST}, box_1 << "o1"{|REST}, box_2 << "o1"{|REST}. P("1m1",REST*):-!, entry_m1 ? P(REST*). P("1o1",REST*):-!, entry_o1 ? P(REST*). P("2o1",REST*):-!, entry_o1 ? P(REST*). P("3o1",REST*):-!, entry_o1 ? P(REST*). P("1i1",REST*):-!, entry_i1 ? P(REST*). P("1i2",REST*):-!, entry_i2 ? P(REST*). P("1i3",REST*):-!, entry_i3 ? P(REST*). P("2i1",REST*):-!, entry_i1 ? P(REST*). P("2i2",REST*):-!, entry_i2 ? P(REST*). P("2i3",REST*):-!, entry_i3 ? P(REST*). P("3i2",REST*):-!, entry_i2 ? P(REST*). P("3i1",REST*):-!, entry_i1 ? P(REST*). P("i1",REST*):-!, box_1 << P("i1",REST*), box_2 << P("i1",REST*), box_3 << P("i1",REST*). P("i2",REST*):-!, box_1 << P("i2",REST*), box_2 << P("i2",REST*), box_3 << P("i2",REST*). P("i3",REST*):-!, box_1 << P("i3",REST*), entry_o1 ? P(REST*), box_2 << P("i3",REST*). P("m1",REST*):-!, box_1 << P("m1",REST*). P("o1",REST*):-!, box_3 << P("o1",REST*), entry_i3 ? P(REST*), box_1 << P("o1",REST*), box_2 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'PREPARE_SUGAR_MIXTURE' specializing 'COMPOUND_BLOCK': entry_i1; value_i1; entry_i2; value_i2; entry_i3; value_i3; entry_m1; value_m1; entry_o1; value_o1; box_1; box_2; box_3; title; name; number; model; x; y; container; con; [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A321' specializing 'PREPARE_SOME_MIXTURE_OF_HARD_BERRIES_AND_SUGAR': entry_i3; value_i3; entry_i1; value_i1; entry_i2; value_i2; entry_m1; value_m1; entry_o1; value_o1; link_1; link_2; link_3; box_1 = (('DIAGRAM-A3211', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i3), value_i1 = value_i3, entry_m1 = ('ARROW', host = self, entry = "1m1", value = value_m1), value_m1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_3), value_o1 = link_3)); box_2 = (('DIAGRAM-A3212', container = self, entry_i2 = ('ARROW', host = self, entry = "2i2", value = value_i2), value_i2 = value_i2, entry_i1 = ('ARROW', host = self, entry = "2i1", value = value_i3), value_i1 = value_i3, entry_m1 = ('ARROW', host = self, entry = "2m1", value = value_m1), value_m1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "2o1", value = link_2), value_o1 = link_2)); box_3 = (('DIAGRAM-A3213', container = self, entry_i2 = ('ARROW', host = self, entry = "3i2", value = value_i1), value_i2 = value_i1, entry_i1 = ('ARROW', host = self, entry = "3i1", value = link_3), value_i1 = link_3, entry_m1 = ('ARROW', host = self, entry = "3m1", value = value_m1), value_m1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "3o1", value = link_1), value_o1 = link_1)); box_4 = (('DIAGRAM-A3214', container = self, entry_i1 = ('ARROW', host = self, entry = "4i1", value = link_1), value_i1 = link_1, entry_i2 = ('ARROW', host = self, entry = "4i2", value = link_2), value_i2 = link_2, entry_o1 = ('ARROW', host = self, entry = "4o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "2/4/1999"; title = "A321: Prepare some mixture of hard berries and sugar"; name = "Prepare some mixture of hard berries and sugar"; number = 1; model; x = 20.12999; y = 7.8996; container; con = ('REPORT', title = "A321: PREPARE_SOME_MIXTURE_OF_HARD_BERRIES_AND_SUGAR", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2). component(box_3). component(box_4):-!. "3i2"{|REST}:-!, entry_i1 ? 'message'{|REST}. "2i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "1o1"{|REST}:-!, box_3 << "i1"{|REST}. "3i1"{|REST}:-!, box_1 << "o1"{|REST}. "3o1"{|REST}:-!, box_4 << "i1"{|REST}. "4i1"{|REST}:-!, box_3 << "o1"{|REST}. "2o1"{|REST}:-!, box_4 << "i2"{|REST}. "4i2"{|REST}:-!, box_2 << "o1"{|REST}. "4o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "1i1"{|REST}:-!, entry_i3 ? 'message'{|REST}. "1m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "3m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "2i1"{|REST}:-!, entry_i3 ? 'message'{|REST}. "2m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "i3"{|REST}:-!, box_1 << "i1"{|REST}, box_2 << "i1"{|REST}. "i1"{|REST}:-!, box_3 << "i2"{|REST}. "i2"{|REST}:-!, box_2 << "i2"{|REST}. "m1"{|REST}:-!, box_3 << "m1"{|REST}, box_1 << "m1"{|REST}, box_2 << "m1"{|REST}. "o1"{|REST}:-!, box_4 << "o1"{|REST}. P("3i2",REST*):-!, entry_i1 ? P(REST*). P("2i2",REST*):-!, entry_i2 ? P(REST*). P("1o1",REST*):-!, box_3 << P("i1",REST*). P("3i1",REST*):-!, box_1 << P("o1",REST*). P("3o1",REST*):-!, box_4 << P("i1",REST*). P("4i1",REST*):-!, box_3 << P("o1",REST*). P("2o1",REST*):-!, box_4 << P("i2",REST*). P("4i2",REST*):-!, box_2 << P("o1",REST*). P("4o1",REST*):-!, entry_o1 ? P(REST*). P("1i1",REST*):-!, entry_i3 ? P(REST*). P("1m1",REST*):-!, entry_m1 ? P(REST*). P("3m1",REST*):-!, entry_m1 ? P(REST*). P("2i1",REST*):-!, entry_i3 ? P(REST*). P("2m1",REST*):-!, entry_m1 ? P(REST*). P("i3",REST*):-!, box_1 << P("i1",REST*), box_2 << P("i1",REST*). P("i1",REST*):-!, box_3 << P("i2",REST*). P("i2",REST*):-!, box_2 << P("i2",REST*). P("m1",REST*):-!, box_3 << P("m1",REST*), box_1 << P("m1",REST*), box_2 << P("m1",REST*). P("o1",REST*):-!, box_4 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'DIAGRAM-A322' specializing 'PREPARE_SOME_MIXTURE_OF_LARGE_FRUITS_AND_SUGAR': entry_i1; value_i1; entry_i2; value_i2; entry_i3; value_i3; entry_o1; value_o1; link_1; link_2; link_3; box_1 = (('DIAGRAM-A3221', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i1), value_i1 = value_i1, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_3), value_o1 = link_3)); box_2 = (('DIAGRAM-A3222', container = self, entry_i2 = ('ARROW', host = self, entry = "2i2", value = value_i2), value_i2 = value_i2, entry_i1 = ('ARROW', host = self, entry = "2i1", value = link_3), value_i1 = link_3, entry_o1 = ('ARROW', host = self, entry = "2o1", value = link_2), value_o1 = link_2)); box_3 = (('DIAGRAM-A3223', container = self, entry_i1 = ('ARROW', host = self, entry = "3i1", value = link_2), value_i1 = link_2, entry_o1 = ('ARROW', host = self, entry = "3o1", value = link_1), value_o1 = link_1)); box_4 = (('DIAGRAM-A3224', container = self, entry_i2 = ('ARROW', host = self, entry = "4i2", value = value_i3), value_i2 = value_i3, entry_i1 = ('ARROW', host = self, entry = "4i1", value = link_1), value_i1 = link_1, entry_o1 = ('ARROW', host = self, entry = "4o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "2/4/1999"; title = "A322: Prepare some mixture of large fruits and sugar"; name = "Prepare some mixture of large fruits and sugar"; number = 2; model; x = 33.80252; y = 13.7304; container; con = ('REPORT', title = "A322: PREPARE_SOME_MIXTURE_OF_LARGE_FRUITS_AND_SUGAR", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2). component(box_3). component(box_4):-!. "1i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "2i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "4i2"{|REST}:-!, entry_i3 ? 'message'{|REST}. "1o1"{|REST}:-!, box_2 << "i1"{|REST}. "2i1"{|REST}:-!, box_1 << "o1"{|REST}. "2o1"{|REST}:-!, box_3 << "i1"{|REST}. "3i1"{|REST}:-!, box_2 << "o1"{|REST}. "3o1"{|REST}:-!, box_4 << "i1"{|REST}. "4i1"{|REST}:-!, box_3 << "o1"{|REST}. "4o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "i1"{|REST}:-!, box_1 << "i1"{|REST}. "i2"{|REST}:-!, box_2 << "i2"{|REST}. "i3"{|REST}:-!, box_4 << "i2"{|REST}. "o1"{|REST}:-!, box_4 << "o1"{|REST}. P("1i1",REST*):-!, entry_i1 ? P(REST*). P("2i2",REST*):-!, entry_i2 ? P(REST*). P("4i2",REST*):-!, entry_i3 ? P(REST*). P("1o1",REST*):-!, box_2 << P("i1",REST*). P("2i1",REST*):-!, box_1 << P("o1",REST*). P("2o1",REST*):-!, box_3 << P("i1",REST*). P("3i1",REST*):-!, box_2 << P("o1",REST*). P("3o1",REST*):-!, box_4 << P("i1",REST*). P("4i1",REST*):-!, box_3 << P("o1",REST*). P("4o1",REST*):-!, entry_o1 ? P(REST*). P("i1",REST*):-!, box_1 << P("i1",REST*). P("i2",REST*):-!, box_2 << P("i2",REST*). P("i3",REST*):-!, box_4 << P("i2",REST*). P("o1",REST*):-!, box_4 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'DIAGRAM-A323' specializing 'PREPARE_SOME_MIXTURE_OF_SOFT_BERRIES_AND_SUGAR': entry_i1; value_i1; entry_i2; value_i2; entry_o1; value_o1; link_1; box_1 = (('DIAGRAM-A3231', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i1), value_i1 = value_i1, entry_i2 = ('ARROW', host = self, entry = "1i2", value = value_i2), value_i2 = value_i2, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_1), value_o1 = link_1)); box_2 = (('DIAGRAM-A3232', container = self, entry_i1 = ('ARROW', host = self, entry = "2i1", value = link_1), value_i1 = link_1, entry_o1 = ('ARROW', host = self, entry = "2o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "2/4/1999"; title = "A323: Prepare some mixture of soft berries and sugar"; name = "Prepare some mixture of soft berries and sugar"; number = 3; model; x = 42.91833; y = 19.18488; container; con = ('REPORT', title = "A323: PREPARE_SOME_MIXTURE_OF_SOFT_BERRIES_AND_SUGAR", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2):-!. "1i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "1i2"{|REST}:-!, entry_i2 ? 'message'{|REST}. "1o1"{|REST}:-!, box_2 << "i1"{|REST}. "2i1"{|REST}:-!, box_1 << "o1"{|REST}. "2o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "i1"{|REST}:-!, box_1 << "i1"{|REST}. "i2"{|REST}:-!, box_1 << "i2"{|REST}. "o1"{|REST}:-!, box_2 << "o1"{|REST}. P("1i1",REST*):-!, entry_i1 ? P(REST*). P("1i2",REST*):-!, entry_i2 ? P(REST*). P("1o1",REST*):-!, box_2 << P("i1",REST*). P("2i1",REST*):-!, box_1 << P("o1",REST*). P("2o1",REST*):-!, entry_o1 ? P(REST*). P("i1",REST*):-!, box_1 << P("i1",REST*). P("i2",REST*):-!, box_1 << P("i2",REST*). P("o1",REST*):-!, box_2 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'DIAGRAM-A42' specializing 'BOILING_CYCLE_FOR_SOFT_BERRIES_AND_FRUITS': entry_i1; value_i1; entry_m1; value_m1; entry_o1; value_o1; link_1; link_2; box_1 = (('DIAGRAM-A421', container = self, entry_i1 = ('ARROW', host = self, entry = "1i1", value = value_i1), value_i1 = value_i1, entry_m1 = ('ARROW', host = self, entry = "1m1", value = value_m1), value_m1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "1o1", value = link_2), value_o1 = link_2)); box_2 = (('DIAGRAM-A422', container = self, entry_i1 = ('ARROW', host = self, entry = "2i1", value = link_2), value_i1 = link_2, entry_o1 = ('ARROW', host = self, entry = "2o1", value = value_o1), value_o1 = value_o1, entry_o2 = ('ARROW', host = self, entry = "2o2", value = link_1), value_o2 = link_1)); box_3 = (('DIAGRAM-A423', container = self, entry_i1 = ('ARROW', host = self, entry = "3i1", value = link_1), value_i1 = link_1, entry_m1 = ('ARROW', host = self, entry = "3m1", value = value_m1), value_m1 = value_m1, entry_o1 = ('ARROW', host = self, entry = "3o1", value = value_o1), value_o1 = value_o1)); status = "PUBLICATION"; revision_date = "28/1/2003"; creation_date = "2/4/1999"; title = "A42: Boiling cycle for soft berries and fruits"; name = "Boiling cycle for soft berries and fruits"; number = 2; model; x = 46.33666; y = 16.73976; container; con = ('REPORT', title = "A42: BOILING_CYCLE_FOR_SOFT_BERRIES_AND_FRUITS", x = x, y = y, width = 37, height = 9); [ -- component(box_1). component(box_2). component(box_3):-!. "1i1"{|REST}:-!, entry_i1 ? 'message'{|REST}. "1o1"{|REST}:-!, box_2 << "i1"{|REST}. "2i1"{|REST}:-!, box_1 << "o1"{|REST}. "2o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "2o2"{|REST}:-!, box_3 << "i1"{|REST}. "3i1"{|REST}:-!, box_2 << "o2"{|REST}. "3o1"{|REST}:-!, entry_o1 ? 'message'{|REST}. "1m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "3m1"{|REST}:-!, entry_m1 ? 'message'{|REST}. "i1"{|REST}:-!, box_1 << "i1"{|REST}. "m1"{|REST}:-!, box_1 << "m1"{|REST}, box_3 << "m1"{|REST}. "o1"{|REST}:-!, box_2 << "o1"{|REST}, box_3 << "o1"{|REST}. P("1i1",REST*):-!, entry_i1 ? P(REST*). P("1o1",REST*):-!, box_2 << P("i1",REST*). P("2i1",REST*):-!, box_1 << P("o1",REST*). P("2o1",REST*):-!, entry_o1 ? P(REST*). P("2o2",REST*):-!, box_3 << P("i1",REST*). P("3i1",REST*):-!, box_2 << P("o2",REST*). P("3o1",REST*):-!, entry_o1 ? P(REST*). P("1m1",REST*):-!, entry_m1 ? P(REST*). P("3m1",REST*):-!, entry_m1 ? P(REST*). P("i1",REST*):-!, box_1 << P("i1",REST*). P("m1",REST*):-!, box_1 << P("m1",REST*), box_3 << P("m1",REST*). P("o1",REST*):-!, box_2 << P("o1",REST*), box_3 << P("o1",REST*). ] ------------------------------------------------------------------------ class 'DIAGRAM-A1' specializing 'CHOOSE_BERRIES_AND_FRUITS': entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A1: Choose berries and fruits"; name = "Choose berries and fruits"; number = 1; model; x = 9.11502; y = 3.94992; container; con = ('REPORT', title = "A1: CHOOSE_BERRIES_AND_FRUITS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A5' specializing 'COOL_JAM': entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A5: Cool jam"; name = "Cool jam"; number = 5; model; x = 48.99501; y = 15.98736; container; con = ('REPORT', title = "A5: COOL_JAM", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A6' specializing 'ANALYSIS_OF_MODEL:_WHAT_KITCHEN_UTENSILS_ARE_WE_NEED?': title = "A6: Analysis of model: What kitchen utensils are we need?"; name = "Analysis of model: What kitchen utensils are we need?"; number = 6; model; x = 56.97085; y = 5.45448; container; con = ('REPORT', title = "A6: ANALYSIS_OF_MODEL:_WHAT_KITCHEN_UTENSILS_ARE_WE_NEED?", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A7' specializing 'POUR_JAM_INTO_JARS': entry_m1; value_m1; entry_i2; value_i2; entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A7: Pour jam into jars"; name = "Pour jam into jars"; number = 7; model; x = 64.1875; y = 20.31336; container; con = ('REPORT', title = "A7: POUR_JAM_INTO_JARS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A21' specializing 'WASH_UP_JARS_AND_LIDS': entry_i1; value_i1; entry_m1; value_m1; entry_m2; value_m2; entry_o1; protecting: value_o1; title = "A21: Wash up jars and lids"; name = "Wash up jars and lids"; number = 1; model; x = 9.49501; y = 6.58296; container; con = ('REPORT', title = "A21: WASH_UP_JARS_AND_LIDS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A22' specializing 'BOIL_SOME_WATER_IN_A_KETTLE': entry_m1; value_m1; entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A22: Boil some water in a kettle"; name = "Boil some water in a kettle"; number = 2; model; x = 22.78834; y = 18.0564; container; con = ('REPORT', title = "A22: BOIL_SOME_WATER_IN_A_KETTLE", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A23' specializing 'CLEANSE_LIDS_BY_BOILING_WATER': entry_i1; value_i1; entry_i2; value_i2; entry_m1; value_m1; entry_o1; protecting: value_o1; title = "A23: Cleanse lids by boiling water"; name = "Cleanse lids by boiling water"; number = 3; model; x = 34.18251; y = 10.53288; container; con = ('REPORT', title = "A23: CLEANSE_LIDS_BY_BOILING_WATER", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A24' specializing 'CLEANSE_JAM-JARS_BY_BOILED_WATER': entry_m1; value_m1; entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A24: Cleanse jam-jars by boiled water"; name = "Cleanse jam-jars by boiled water"; number = 4; model; x = 42.91833; y = 15.42312; container; con = ('REPORT', title = "A24: CLEANSE_JAM-JARS_BY_BOILED_WATER", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A25' specializing 'DRY_JAM-JARS_AND_LIDS': entry_i1; value_i1; entry_i2; value_i2; entry_o1; protecting: value_o1; title = "A25: Dry jam-jars and lids"; name = "Dry jam-jars and lids"; number = 5; model; x = 60.76917; y = 19.93728; container; con = ('REPORT', title = "A25: DRY_JAM-JARS_AND_LIDS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A411' specializing 'HEAT_THE_MIXTURE': entry_i2; value_i2; entry_m1; value_m1; entry_i1; value_i1; entry_o1; protecting: value_o1; entry_o2; protecting: value_o2; title = "A411: Heat the mixture"; name = "Heat the mixture"; number = 1; model; x = 12.91334; y = 7.33536; container; con = ('REPORT', title = "A411: HEAT_THE_MIXTURE", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A412' specializing 'SUSPEND_THE_PROCESS': entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A412: Suspend the process"; name = "Suspend the process"; number = 2; model; x = 39.5; y = 13.54224; container; con = ('REPORT', title = "A412: SUSPEND_THE_PROCESS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A413' specializing 'CHECK_IF_JAM_IS_READY': entry_i1; value_i1; entry_o1; protecting: value_o1; entry_o2; protecting: value_o2; title = "A413: Check if jam is ready"; name = "Check if jam is ready"; number = 3; model; x = 47.85583; y = 19.18488; container; con = ('REPORT', title = "A413: CHECK_IF_JAM_IS_READY", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A31' specializing 'WASH_BERRIES_AND_FRUITS': entry_i1; value_i1; entry_m1; value_m1; entry_o1; protecting: value_o1; title = "A31: Wash berries and fruits"; name = "Wash berries and fruits"; number = 1; model; x = 18.23083; y = 10.1568; container; con = ('REPORT', title = "A31: WASH_BERRIES_AND_FRUITS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3211' specializing 'BOIL_SOME_WATER_IN_THE_SAUCEPAN': entry_i1; value_i1; entry_m1; value_m1; entry_o1; protecting: value_o1; title = "A3211: Boil some water in the saucepan"; name = "Boil some water in the saucepan"; number = 1; model; x = 10.25499; y = 6.77112; container; con = ('REPORT', title = "A3211: BOIL_SOME_WATER_IN_THE_SAUCEPAN", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3212' specializing 'PREPARE_SOME_SYRUP': entry_i2; value_i2; entry_i1; value_i1; entry_m1; value_m1; entry_o1; protecting: value_o1; title = "A3212: Prepare some syrup"; name = "Prepare some syrup"; number = 2; model; x = 19.75; y = 17.304; container; con = ('REPORT', title = "A3212: PREPARE_SOME_SYRUP", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3213' specializing 'BLANCH_BERRIES': entry_i2; value_i2; entry_i1; value_i1; entry_m1; value_m1; entry_o1; protecting: value_o1; title = "A3213: Blanch berries"; name = "Blanch berries"; number = 3; model; x = 32.28335; y = 11.28528; container; con = ('REPORT', title = "A3213: BLANCH_BERRIES", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3214' specializing 'PUT_BERRIES_IN_SYRUP': entry_i1; value_i1; entry_i2; value_i2; entry_o1; protecting: value_o1; title = "A3214: Put berries in syrup"; name = "Put berries in syrup"; number = 4; model; x = 55.83167; y = 19.18488; container; con = ('REPORT', title = "A3214: PUT_BERRIES_IN_SYRUP", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3221' specializing 'CUT_FRUITS_INTO_LOBULES': entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A3221: Cut fruits into lobules"; name = "Cut fruits into lobules"; number = 1; model; x = 10.25499; y = 6.77112; container; con = ('REPORT', title = "A3221: CUT_FRUITS_INTO_LOBULES", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3222' specializing 'SPRINKLE_WITH_SUGAR': entry_i2; value_i2; entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A3222: Sprinkle with sugar"; name = "Sprinkle with sugar"; number = 2; model; x = 23.92752; y = 11.09712; container; con = ('REPORT', title = "A3222: SPRINKLE_WITH_SUGAR", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3223' specializing 'SUSPEND_THE_PROCESS_FOR_6-8_HOURS': entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A3223: Suspend the process for 6-8 hours"; name = "Suspend the process for 6-8 hours"; number = 3; model; x = 38.36082; y = 16.17552; container; con = ('REPORT', title = "A3223: SUSPEND_THE_PROCESS_FOR_6-8_HOURS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3224' specializing 'ADD_SOME_WATER_IN_THE_MIXTURE': entry_i2; value_i2; entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A3224: Add some water in the mixture"; name = "Add some water in the mixture"; number = 4; model; x = 54.69249; y = 20.31336; container; con = ('REPORT', title = "A3224: ADD_SOME_WATER_IN_THE_MIXTURE", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3231' specializing 'SPRINKLE_WITH_SUGAR': entry_i1; value_i1; entry_i2; value_i2; entry_o1; protecting: value_o1; title = "A3231: Sprinkle with sugar"; name = "Sprinkle with sugar"; number = 1; model; x = 15.95168; y = 9.96864; container; con = ('REPORT', title = "A3231: SPRINKLE_WITH_SUGAR", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A3232' specializing 'SUSPEND_THE_PROCESS_FOR_6-8_HOURS': entry_i1; value_i1; entry_o1; protecting: value_o1; title = "A3232: Suspend the process for 6-8 hours"; name = "Suspend the process for 6-8 hours"; number = 2; model; x = 45.57668; y = 17.49216; container; con = ('REPORT', title = "A3232: SUSPEND_THE_PROCESS_FOR_6-8_HOURS", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A421' specializing 'MAIN_PHASE_OF_BOILING': entry_i1; value_i1; entry_m1; value_m1; entry_o1; protecting: value_o1; title = "A421: Main phase of boiling"; name = "Main phase of boiling"; number = 1; model; x = 12.15415; y = 7.8996; container; con = ('REPORT', title = "A421: MAIN_PHASE_OF_BOILING", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A422' specializing 'CHECK_IF_JAM_IS_READY': entry_i1; value_i1; entry_o1; protecting: value_o1; entry_o2; protecting: value_o2; title = "A422: Check if jam is ready"; name = "Check if jam is ready"; number = 2; model; x = 31.14417; y = 12.79008; container; con = ('REPORT', title = "A422: CHECK_IF_JAM_IS_READY", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'DIAGRAM-A423' specializing 'SUPPLEMENTARY_PHASE_OF_BOILING': entry_i1; value_i1; entry_m1; value_m1; entry_o1; protecting: value_o1; title = "A423: Supplementary phase of boiling"; name = "Supplementary phase of boiling"; number = 3; model; x = 50.89417; y = 18.62064; container; con = ('REPORT', title = "A423: SUPPLEMENTARY_PHASE_OF_BOILING", x = x, y = y, width = 37, height = 9); [ ] ------------------------------------------------------------------------ class 'ARROW' specializing 'ALPHA': host; entry; value; [ -- goal:-!. 'link'{|REST}:-!, value == REST. 'message'{|REST}:-!, host << {0:entry|REST}. P(REST*):- host << P(entry,REST*). ] ------------------------------------------------------------------------ class 'DUMMY': con = ('CONSOLE'); [ -- goal. _{sender:NAME|_}:- con ? writeln("Syntax error: dummy link with ",NAME), fail. ] ------------------------------------------------------------------------ |