Reply Page 2 of 2:  < 1  2
Kelly
Developer

 Join Date: Dec 2007 Posts: 59
 additional requirements for dynamic experiment behavior means additional rules :), Posted January 15th, 2015 #11
Hello! I am so glad to hear that the mouse-click fix was successful.

Also, I am relieved to hear that you plan to start the experiment with a phase that shows only 3 squares. I was really struggling to memorize the random sequences of 16!

With your latest question about limiting the sequence, we have come full circle. Back in October, I foreshadowed: "In order to fulfill the rest of the requirements you listed, we would simply add more rules to the experiment."

(Sidenote: Your experiment has an ambitious amount of logic involved. I hope you will find that the SuperLab 5 Manual is your ally.)

Here is what you need now:
1. Create a new counter parameter for tallying.
2. Create another new counter for "current maximum length."
3. The initial value of the tally is 0, the initial value for "current maximum length" can be something like 3.
4. Create a trial rule that is only used by the list-trial that displays the "matrixN.bmp" files. Call this rule something like "tally the images."
5. The rule for tallying simply increments the tally parameter by 1 each time, unconditionally.
6. Create a second rule that is also only used by the "matrixN.bmp" list-trial. This rule checks whether the tallying counter has exceeded the "current maximum length." If so, then exit this block.

Here is what the second rule should look like:

If you make sure that "current maximum length" has an initial value of 3, and you follow the above-listed steps, then you will observe that the sequence is now a short random sequence each time.

However, there is still the matter of when to increase "current maximum length" from 3 to 4, or to 5, 10, or anything else.

It is up to you to choose what type of rule to create that takes charge of incrementing that length. It is up to you to determine the criteria for that rule.

Because your experiment is fairly intricate, you might want to spend an hour building some throwaway practice experiments, simply to gain greater familiarity and dexterity with using Counter Parameters and Trial Rules. I recommend this (for practice), since your current experiment already contains over a dozen rules (mostly for managing the interactive number labels on the grid).

As you venture further into the techniques of creating rules, I also recommend that you regularly enable the "save collected data" checkbox when doing test-runs of the experiment. This is helpful because all the counter parameters appear in the data, and (by perusing the data) you can get a better sense for how the counters change value over the course of the experiment.
EWright280
Junior Member

 Join Date: Oct 2014 Posts: 10
 Posted January 22nd, 2015 #12
Thank you for your help in making this task adaptive and select in the square presentation portion.

I have one additional question that should be the last of the troubleshooting:

Previously, I followed the demo with Square Recall Matrix logic we previously discussed and we worked through some fine-tuned adaptations. Now that we have secured the understanding of the logic, I have noticed one minor setback when constructing my blocks.

The overall task should feature 12 Experimental Trials (3 trials each of 3, 4, 5, and 6 square presentations where one square is presented, then a symmetry image, then another square, etc. until the desired number of squares have been shown). When the square stimuli and background stimuli are shown, the recall page is presented and when a participant exits the recall page, it takes them to their feedback (which is currently being placeheld but will soon show feedback to the number of squares correctly recalled and the number of symmetry images correctly determined as well as, ideally, a running percentage of number of symmetry correct). My issue, however, is that once the participant clicks out of that feedback slide, he/she is taken directly back to the recall matrix, rather than progressing to the next sequence of stimuli.

My question is as follows:

-How may I adjust my rules to progress the participant to the next block of trials? Whenever I adjust my number of trials desired and/or flag of trials completed to reflect that the number of trials (1) is completed, it still takes me back to the recall page. Alternatively, it does not seem to be possible to force my feedback slide to move to the next block with the rules set in place.

As always, thank you for your patience.

Emily
Attached Files
Kelly
Developer

 Join Date: Dec 2007 Posts: 59
 Posted January 26th, 2015 #13
Hi Emily,

Thank you for exercising such painstaking care in describing the goals of this experiment.

I understand that the current question is strictly pertaining to making the experiment proceed through all blocks (and not get stuck in the recall matrix).

Nonetheless, I can pinpoint at least four additional as-yet-unmet design goals based on your summary. They are:
• (A) experimental trials that increase difficulty through: 3-series, 4-series, 5-series, 6-series levels of difficulty
• (B) alternating between: one square, one symm-image, one square, one symm-image, etc
• (C) dynamically computing how many squares are correctly recalled
• (D) dynamically computing how many symmetry judgements were made correctly

Item (A) will be solved whenever you choose and implement your strategy for incrementing "Current Maximum Length" (as discussed in my prior post).

Item (B) should be a simple matter of linking a symm-image event to the *trial* named "Square Practice Presentation".

Caution: I must warn you that item (C) might be impossible. If it is possible, it will require you to create so many new parameters and rules that it takes up a great deal of your time and becomes very unwieldy to debug/proofread.

Item (D), while similar to (C), is actually much simpler. The symmetry judgement is a YES/NO answer, whereas the recall response is a series. SuperLab records the participant's response series in the datafile (such as: square-8, square-3, square-15), and you can therefore readily score the correctness when you analyze the completed datafile. However, there is no built-in "series of three" or "series of four" response type that you can use for on-the-fly feedback.

You might remember (from back in October), I mentioned that "keyboard strings" are another option for memory experiments in SuperLab. (see this post: http://community.cedrus.com/showthre...=6741#post6741 ) On that post, I uploaded the "rudimentary_simon_says_demo.zip" experiment package. The "Simon Says" demo indeed *does* successfully provide on-the-fly feedback about a "series of four" response. However, this is a "trick" that is facilitated by using keyboard strings for input. Your current experiment seems pretty solidly based on mouse input (which doesn't provide the same "trick" as keyboard strings).

Now back to the easy part!

Here is a quick video walkthrough showing the two simple changes that are needed to avoid getting stuck in the recall matrix:

http://screencast.com/t/VVqWoyx8zf

It all boils down to the rule "Recall Sessions Are Done". That rule has the job of deciding when we quit repeating the recall matrix. The condition it tests is whether "Total Recall Sessions Desired" have been fulfilled. For you, it sounds like you need to set "Total Recall Sessions Desired" to 12. For the sake of the short video screencast, i set it to 3. The action triggered by this rule needs to force us into a later block. The rough-draft version of this rule only presents an event, which is not sufficient to cause a definitive exit from the block. You can see in the screencast that I deleted that old action and used a new action to jump ahead to block "Symmetry Practice".

If the edits that I demonstrate in the screencast still are not quite what you had in mind, then feel free to adapt as needed.
EWright280
Junior Member

 Join Date: Oct 2014 Posts: 10
 Posted February 6th, 2015 #14
Greetings,

We are so close to concluding the programming to this task; however, there are a couple issues regarding our trial construction that my colleagues and I cannot seem to figure out.

Previously, I misunderstood the adaptivity of the task. I believed that the task was adaptive based on subject performance; however, I reviewed the literature and found that the task is naturally adaptive by constructing a series of trials that are progressively hard. Beyond the practice, participants must complete 12 trials total (3 of 3 squares, 3 of 4 squares, 3 of 5 squares, and 3 of 6 squares to recall) that follow the single square-symmetry-single square pattern with the recall measure at the end).

Attached is the experimental package for the task. Currently, there are two major issues that must be addressed for successful construction of the trials:

1) The most obvious is the unintended looping at the end of the "Both Practice" Recall Matrix. Upon the completion of the recall, it should continue to simple feedback, then the practice conclusion instructions before the real trials; however, it seems to revert back to the "Symmetry Practice" portion of the task, which follows the first Recall Matrix from which the Both Practice Matrix was initially copied. I have changed the order, so that it should move sequentially, but I'm wondering if, by copying earlier blocks/trials/events, Superlab is confusing it with the earlier Matrix order; however, I am uncertain that this is simply the issue, if you consider the following point #2.

2) The "Both Practice" Recall Matrix has been copied verbatim from the previous recall matrix, as far as the logic is consider (excluding areas in which it would cause the very same loop that is somehow present); however, it is currently non-interactive, which it does affect the overall flow of the experiment may also contribute to the looping of the trials that follow.

As always, we appreciate your help. These trials are tricky due to the complexity and interwoven nature of the stimuli preceding the recall matrix, so we are desperate for a place to start.

Thank you immensely,

Emily
Attached Files
Kelly
Developer

 Join Date: Dec 2007 Posts: 59
 Posted February 13th, 2015 #15
There might be more problems than what I am about to describe, but this is what I have been able to determine so far.

The block "Square Practice Recall" uses four rules.

The block "Both Practice Recall" happens to use those *exact* same four rules.

This is bound to cause trouble, because two of those rules contain actions that specify proceeding to a *specific* block. The rules direct the experiment to go to block "Feedback" in some circumstances ("Feedback" with no suffix, as opposed to other copied-and-numbered blocks that start with that same word). The other rule directs the experiment to go to "Square Practice Presentation".

Again, remember that you currently have your "Both Practice" block using this rule -- a rule that directs the experiment to go to "Square Practice Presentation." I do not think you ever intend to proceed from the "Both" section back to the "Square Practice" section. If you do not intend that, then you need to unlink the "Both" block from these rules. (Then you probably need to devise appropriate rules for that block.)

When you copy and paste a block, you also copy its "links" to which rules the block will trigger. Note that these are "links" to rules -- rules themselves are never copied.

Likewise, when you copy a trial, you copy "links" for what trial rules will be triggered by the trial.

Let me know if that is enough information to get you back on track, or whether you would like me to take another look next week (and perhaps take a look at a newer attachment you might have by then).
EWright280
Junior Member

 Join Date: Oct 2014 Posts: 10
 Posted February 18th, 2015 #16
Thank you for your fast reply, as always. Your guidance was very helpful in getting me back on track. In the experimental package I have attached, you can see that the first 6 trials have been created. There are two noticeable issues that must be ironed out in order to finally complete the task, as creating the trials themselves have been more or less a breeze so far (although some amendments may need to be made in order to fix the issues I am about to describe).

1) The feedback screen "Thank you for your participation" seems to play twice following the Recall Matrix (the "Both" Practice Trial seems to be the best trial to display this error). This seems to be due it playing once through our established Recall Block Rules, and again as the Feedback Block plays following the Wait for Click Trial; however, if I were to remove the rule and have only the Feedback Block play sequentially after the Wait for Click portion, the task does not progress to the next trial. Is there a way around this issue?

2) When I copied the Trials pertaining to the Recall matrix (Recall Matrix, Labels, Wait for Click, etc., I have seen that despite the identical logic from the practice matrix from which is was copied, the matrix in Both and Trial 1-6 skip forward to the feedback screen upon initial click into the matrix; however, when playing the block by itself, the matrix is fully interactive as intended and progresses forward as anticipated. Is this due to the position of the Rules Reset Trial? I am unsure of what could be causing this issue outside of the Recall Block, which seems to work perfectly, indicating that it is not an issue of the matrix's rules of the trials within the selected block.

As always, thank you for your continued patience and support.

Emily
Attached Files
 Automated Symmetry Span.zip (1.20 MB, 0 views)
EWright280
Junior Member

 Join Date: Oct 2014 Posts: 10
 Posted February 24th, 2015 #17
Here is the updated experimental package for the task, with all trials completed and more descriptive item titles. I hope the added detail helps.
Attached Files
Kelly
Developer

 Join Date: Dec 2007 Posts: 59
 Posted March 5th, 2015 #18
Sorry to keep you waiting. Both (1) and (2) turn out to have relatively simple answers -- or rather, answers that are easy to explain, at least. So that's good!

(1) It seems like in your latest copy of the experiment, somebody already figured out how to prevent the "Thank you" slide from appearing twice in a row. In an older copy of the experiment, the problem was that a Trial Rule (in the Trial Editor) named "If All Completed" contained two actions, and one of the actions was to present "Thank you." I would have recommended simply deleting that action (but keeping the rest of the rule as-is). However, it seems like in the latest copy, somebody did that! Which is great. Congratulations on solving that.

(2) Here is the reason why the recall matrix wants to "give up" right away (in all but the first appearance of the matrix): it "gives up" because nothing is ever setting the parameter "Count Recall Session" back to zero. Making sure this counter goes back to zero just prior to each new recall session will fix the problem. Why? Answer: because all the block rules with names like "Recall Sessions Are Done..." are examining that counter, treating it like a flag to signal an exit from the recall matrix. Thankfully, there is a very easy one-step fix for this. In the trial editor, go to the rule named "Reset Parameter (Part 2)" and add a new action to the list of actions. The new action is "Reset: Count Recall Session".

There is a general technique that I find helpful for problems like (2). Save the data when you run the experiment, and then examine the columns in the datafile that track the parameters. If you notice that a parameter "gets stuck", then that might tell you where to begin investigating. In the present example, when I looked at the data column for "Count Recall Session", I noticed that it went from 0 to 1 just as the practice matrix block ended, and then the value stayed stuck at 1 from that point onward.

(Of course, not all "stuck" values will be wrong. Sometimes you can have an experiment that is designed to stop manipulating a counter at some known point in the experiment.)

Also, once you notice something is "stuck", you have to consider your particular experiment to know whether resetting the counter to 0 is the proper fix, or whether we perhaps need to "unstick" the value by incrementing it even higher and keep it counting upwards.

Hopefully learning to read the parameter columns in the output can lead to insights for many future experiments.
 Reply « Previous Thread - SuperLab 4 Support - Next Thread » Page 2 of 2:  < 1  2