One of the most 
            powerful features of PollMaker is the ability to define branching 
            logic. Branching logic allows you to create polls that alter their 
            behavior based on the input of a respondent. With branching logic, 
            based on one or more previous responses in the course of a poll, you 
            can skip ahead screens, launch another poll, choose to not save the 
            current respondent's data or end the current poll. As a result, you 
            can develop sophisticated polls that adapt to the input of the 
            respondent and ask only the questions that are most pertinent to 
            each individual respondent. 
             Stucture of Branching 
            Logic
            Branching logic 
            consists of a conditional statement that specifies different 
            resulting action based on whether the assertions contained within 
            the statement evaluate to true or false. The general format of 
            branching logic statements is: 
 
            
              
              
                
                  
                    
                    
                      | IF | 
                      {  [Assertion 
                        #1]  =  True (or 
                      False)  } | 
                        |  
                    
                      |   | 
                      AND/OR | 
                        |  
                    
                      |   | 
                      {  [Assertion 
                        #2]  =  True (or 
                        False)  } | 
                        |  
                    
                      | THEN |  
                    
                      |   | 
                      < Resulting Action if Conditional 
                        Statements evaluate True > |  
                    
                      | ELSE |  
                    
                      |   | 
                      < Resulting Action if Conditional 
                        Statements evaluate False > 
               |    |   
            Among its many 
            potential implementations, branching logic can be used to ask a 
            respondent for further detail about a previous answer. For example, 
            if a respondent selects travel as an answer to a question asking 
            about personal interests, branching logic specifies that this 
            respondent will be shown a poll screen asking for the places to 
            which he has travelled. On the other hand, the same branching logic 
            specifies that respondents who do not select travel as a personal 
            interest will skip this question. Therefore, respondents of this 
            poll are prevented from answering questions that do not pertain to 
            them. 
             Implementing Branching 
            Logic
            Branching logic is 
            implemented through the screen properties within an individual poll 
            screen. Within a poll screen, branching logic can be set to be 
            evaluated either immediately before the poll screen is displayed 
            during the poll or immediately after the respondent leaves the poll 
            screen during the poll. 
            Poll Designer makes the 
            formulation of branching logic simple by providing a graphical 
            interface called the Branch Logic Dialog (figure 1) for constructing 
            branching logic statements. Each tab on this dialog corresponds to a 
            different portion of the branching logic statement. 
 
              Figure 1:  Poll Designer - Branch Logic 
            Dialog 
            The poll designer uses 
            the IF... tab (figure 1) on the Branch Logic Dialog to create 
            one or more assertions to be evaluated in a branching logic 
            statement. This tab shows a list of the poll screens within the 
            current poll and allows the designer to drill down to the possible 
            answers contained on each poll screen. As a result, the poll 
            designer can select the answer to be included in each assertion and 
            whether the branching logic statement asserts that the answer was 
            selected or not selected by the respondent. Multiple assertions can 
            be combined with the keyword "AND" or "OR" (e.g. answer 1 was 
            selected by respondent OR answer 2 was selected by 
            respondent). 
            The poll designer uses 
            the THEN... tab (figure 1) on the Branch Logic Dialog to 
            specify the action that will occur if the assertion portion of the 
            branching logic statement evaluates to true and the ELSE... 
            tab (figure 1) to specify the action that will occur if the 
            assertion portion evaluates to false. Both of these tabs offer the 
            poll designer the same choices of actions:
 
  
 
            
              
              
                | Action | 
                Description |  
              
                | SAVE Poll Data and Jump to End-of-Poll 
                Screen | 
                The respondent will be taken directly to the 
                  last screen in the poll. The response data for the current 
                  respondent will be saved. |  
              
                | DUMP Poll Data and Jump to End-of-Poll 
                Screen | 
                The respondent will be taken directly to the 
                  last screen in the poll. The response data for the current 
                  respondent will be discarded. |  
              
                | Jump directly to screen ... | 
                The respondent will be taken directly to the 
                  screen specified in a list of all poll screens. |  
              
                | SET Variable X to <TRUE> or 
                <FALSE> | 
                The poll variable X (see the "Advanced 
                  Branching Logic" topic below) will be set to the value (true 
                  or false) specified by the poll designer. |  
              
                | LAUNCH Poll X | 
                Launches the sub-poll specified in the list of 
                  sub-polls (see the "Advanced Branching Logic" topic 
              below). |  
              
                | SKIP this screen and continue | 
                The poll screen within which the poll designer 
                  has created this branching logic statement will be skipped and 
                  the respondent will be shown the next screen in the 
poll. |  
              
                | DO this screen and continue | 
                The poll screen within which the poll designer 
                  has created this branching logic statement will be shown as 
                  normal. |   
            The Symbol View 
            tab (figure 1) allows the poll designer to view the branching logic 
            statement that has been created using the graphical interface on the 
            other three tabs (see the "Structure of Branching Logic" topic above 
            for the general format of branching logic statements). As the poll 
            designer becomes more comfortable with the syntax of these 
            statements, she can edit these statements directly on this tab if 
            she desires. 
             Advanced Branching Logic 
            Functionality
            Poll Designer provides 
            additional branching logic functionality beyond simply skipping poll 
            screens or ending a poll based on whether a previous answer was or 
            was not chosen by the respondent. Examples of advanced branching 
            logic capabilities include the nesting of branching logic 
            statements, the definition of poll variables and the use of 
            sub-polls. 
            Nesting Branching 
            Logic Statements Nested branching logic statements are useful 
            when you have more than two responses for which you wish to take 
            different actions. For example, suppose that in a poll you ask the 
            respondent to choose one of three choices: whether he drinks 
            Coca-Cola, Pepsi or has no preference between the two. You want to 
            ask different questions within the poll based on the respondent's 
            answer. Since branching logic statements only allow you to specify 
            actions if an assertion is true or false (e.g. drinks Coca-Cola or 
            doesn't drink Coca-Cola), you cannot create a simple statement that 
            will handle all three of these options. In order to specify actions 
            for all three cases, you must create a branching logic statement 
            within a branching logic statement. This nested branching logic 
            statement would look something like: 
 
            
              
              
                
                  
                    
                    
                      | IF { [Soft Drink?:Coca-Cola] = True 
                        } |  
                    
                      | THEN |  
                    
                      |   | 
                      <Skip to questions about 
                      Coca-Cola> |  
                    
                      | ELSE |  
                    
                      |   | 
                      EVALUATE |  
                    
                      |   | 
                        | 
                      IF { [Soft Drink?:Pepsi] = True 
                    } |  
                    
                      |   | 
                        | 
                      THEN |  
                    
                      |   | 
                        | 
                        | 
                      
                         <Skip to questions about Pepsi>  |  
                    
                      |   | 
                        | 
                      ELSE |  
                    
                      |   | 
                        | 
                        | 
                      <Skip all questions about soft drinks> |  
                    
                      |   | 
                      GO; |    |   
            The EVALUATE 
            & GO key words delineate the beginning and the end 
            respectively of a nested branching logic statement. Poll Designer 
            allows an infinite number of levels to be nested in this 
            manner. 
            Poll 
            Variables Poll variables can be defined 
            for a poll within Poll Designer. These boolean variables always have 
            a default value of false each time the poll begins, but the value of 
            poll variables can be changed in branching logic statements during 
            the course of a poll. Poll variables can be useful if you have the 
            same compound assertion that you test in several branching logic 
            statements within the poll. For example, if you test more than once 
            during your poll whether the respondent is a guest in your hotel and 
            dined at the hotel restaurant and ordered a special dish, you could 
            create a poll variable called GuestAteSpecial. You could set this variable to true or 
            false with a branching logic statement, and then each time you test 
            for this criteria, you could use the poll variable as your assertion 
            instead of recreating the entire list of conditions. As a result, 
            your poll design becomes easier to understand and 
            maintain. 
             Sub-Polls A sub-poll 
            is simply another poll that is launched by a branching logic 
            statement in the current poll. In this context, the poll that 
            launches a sub-poll is referred to as the parent poll. When the 
            evaluation of a branching logic statement in the parent poll results 
            in the launch of a sub-poll, the Polling Engine loads the sub-poll 
            into memory and continues with the current polling session. To the 
            respondent, this switch is seamless, and the parent poll and 
            sub-poll appear as a single poll. Poll Designer also allows you to 
            specify within a poll the names of any sub-polls that might be 
            launched from the poll. These sub-polls will be loaded into memory 
            when the original poll is first loaded into memory. As a result, 
            sub-polls will be launched with less delay since they already reside 
            in memory. 
            As polls grow in size 
            and complexity, the use of sub-polls allows the poll designer to 
            better organize and maintain large polls. A common use of sub-polls 
            is to provide a single poll in multiple languages. In the parent 
            poll, the respondent chooses a language preference, and then 
            branching logic launches the sub-poll that contains poll questions 
            in the desired language. 
              
            Return to Poll 
            Creation. 
 
 
  |