[ Back ]
type Client_Range is integer;
Num_Clients : Client_Range is 3;
type Diagram_ID is integer;


type Response_Type is enum Node_Added, NodeID_Inactive, New_GraphID,
	List_Of_Titles, List_Of_Objects, Edge_Added,
	Node_Updated, Node_Moved, EdgeID_Inactive, 
        Add_To_InBox end;

type post_statement_referencing_online_info is interface
action out 
  record_pointer_to_online_info(i:integer),
  post_info_as_formal_statement(i:integer);
end;

type formal_discussion is interface
action out 
  post_formal_statement_from_scratch(i:integer),
  post_on_line_reference_statement(i:integer),
  relate_formal_statement_to_discussion(i:integer),
  revise_formal_statement(i:integer),
  retract_formal_statement(i:integer),
  retract_formal_relationship(i:integer);
service PSROI : post_statement_referencing_online_info;
end;

type housekeeping is interface
action out 
  reposition_statement_object(i:integer);
end;

type contribute_to_discussion is interface
action out 
  informal_discussion(i:integer);
service FD : formal_discussion;
service H : housekeeping;
end;

type ask_for_advice_on_formal_discussion is interface
action out 
  unspecified_request_for_help(i:integer),
  focus_on_particular_elements(i:integer),
  focus_on_particular_questions(i:integer);
end;

-- In the following service, all actions are generated by the user
-- (intended to be observed by the concepts-of-operation).

type User_Interface_Layer is interface
action out 
  start_java(i:integer),
  start_browser(i:integer),
  pose_discussion_topic(i:integer),
  join_discussion_session_1(i:integer),
  join_discussion_session_2(D : Diagram_ID; i:integer),
  browse_information(i:integer),
  make_notes(i:integer),
  summarize_discussion(i:integer);
service CD : contribute_to_discussion;
service AAFD : ask_for_advice_on_formal_discussion;
end;

--------------------------------------------

type inquiry_diagram_ADT is interface
action out 
  start_belvedere(i:integer),
  reference_this(i:integer),
  new_inquiry_diagram(i:integer),
  list_inquiry_diagram(i:integer),
  open_inquiry_diagram(D : Diagram_ID; i:integer),
  add_node(i:integer),
  add_edge(i:integer),
  update_node(i:integer),
  move_node(i:integer),
  delete_node(i:integer),
  delete_edge(i:integer),
  exit_diagram(i:integer);
end;

type information_search is interface
action out 
  start_netscape(i:integer),
  get_URL(i:integer);
end;

type advice_services is interface
action out 
  request_advice(i:integer);
end;

-- In the following service, all actions are generated by the 
-- concepts-of-operation (intended to be observed by (1) the
-- abstract-implementation).

type Concepts_of_Operation_Layer is interface
service IDA : inquiry_diagram_ADT;
service I_S : information_search;
service AS : advice_services;
action out 
  user_modeling_services(i:integer);
end;
  
-----------------------------------------------------

-- In the following service, actions are generated by the 
-- abstract-implementation and passed back to the 
-- concepts-of-operation and then to the user.

type Pass_Back is interface
action out
   HTMLPage(i:integer), 
   Advice(i:integer), 
   Response(r:response_type; i:integer),
   WebStartup(i:integer), 
   JavaStartup(i:integer);
end;

-----------------------------------------------------
-----------------------------------------------------

type user_interface is interface
service UIL : User_Interface_Layer;
service COL : dual Concepts_Of_Operation_Layer;
service PB : dual Pass_Back;
behavior
web_pages : var integer := 0;
max_pages : integer is 1;
default_id : integer is 99;
begin
  start ||>
     UIL.start_java();;

  PB.JavaStartup() ||>
     UIL.join_discussion_session_1();;

  PB.Response(List_Of_Titles) ||>
     UIL.join_discussion_session_2(23);;

  PB.Response(List_Of_Objects) ||>
     UIL.start_browser();;

  PB.WebStartup() ||>
     UIL.browse_information();;

  PB.HTMLPage() ||>
     if $web_pages < max_pages then 
        web_pages := $web_pages + 1;
        UIL.CD.FD.PSROI.record_pointer_to_online_info(default_id);
        UIL.browse_information(default_id);
     else
        UIL.CD.FD.PSROI.post_info_as_formal_statement(default_id);
     end if;;

  PB.Response(Node_Added) ||>
     UIL.CD.FD.relate_formal_statement_to_discussion();;

  PB.Response(Edge_Added) ||>
     UIL.AAFD.unspecified_request_for_help();;

  PB.Advice() ||>
     UIL.CD.FD.revise_formal_statement();;

-- PB.Response(Node_Updated) ||>

-- UIL events not yet used follow:
/*
    UIL.pose_discussion_topic() ||
    UIL.make_notes() ||
    UIL.CD.FD.post_formal_statement_from_scratch() ||
    UIL.CD.FD.retract_formal_statement() ||
    UIL.CD.FD.retract_formal_relationship() ||
    UIL.CD.H.reposition_statement_object() ||
    UIL.CD.informal_discussion() ||
    UIL.AAFD.focus_on_particular_elements() ||
        -- user first highlights advice-constraining elements 
    UIL.AAFD.focus_on_particular_questions() ||
    UIL.summarize_discussion();;
*/
end user_interface;

type concepts_of_operation_interface is interface
service UIL : dual User_Interface_Layer;
service COL : Concepts_Of_Operation_Layer;
service PB_IN : dual Pass_Back;
service PB_OUT : Pass_Back; 
behavior
begin
  UIL.start_java() ||> COL.IDA.start_belvedere();;
  UIL.start_browser() ||> COL.I_S.start_netscape();;

  UIL.pose_discussion_topic() ||>
    COL.IDA.new_inquiry_diagram();;

  UIL.join_discussion_session_1() ||>
    COL.IDA.list_inquiry_diagram();;

  (?D in Diagram_ID) UIL.join_discussion_session_2(?D) ||>
    COL.IDA.open_inquiry_diagram(?D);;

  UIL.browse_information() ||>
    COL.I_S.get_URL();;

  UIL.CD.FD.PSROI.record_pointer_to_online_info() ||>
    COL.IDA.reference_this();; 

  UIL.CD.FD.post_formal_statement_from_scratch() OR
  UIL.CD.FD.PSROI.post_info_as_formal_statement() ||>
    COL.IDA.add_node();;

  UIL.CD.FD.relate_formal_statement_to_discussion() ||>
    COL.IDA.add_edge();;

  UIL.CD.FD.revise_formal_statement() ||>
    COL.IDA.update_node();;

  UIL.CD.FD.retract_formal_statement() ||>
    COL.IDA.delete_node();;

  UIL.CD.FD.retract_formal_relationship() ||>
    COL.IDA.delete_edge();;

  UIL.CD.H.reposition_statement_object() ||>
    COL.IDA.move_node();;

  UIL.AAFD.unspecified_request_for_help() ||>
    COL.AS.request_advice();; 

  PB_IN.HTMLPage() ||> PB_OUT.HTMLPage();; 
  PB_IN.Advice() ||> PB_OUT.Advice();; 
  (?R in Response_Type)PB_IN.Response(?R) ||>
     PB_OUT.Response(?R);;
  PB_IN.WebStartup() ||> PB_OUT.WebStartup();; 
  PB_IN.JavaStartup() ||> PB_OUT.JavaStartup();; 

end concepts_of_operation_interface;



[ Back ]

© 1996 TRW Inc. All rights reserved.