dicarlolab / mturkutils

High-throughput web-based human psychophysics
0 stars 4 forks source link

How to ensure a worker does only one trial per hit group #17

Open ardila opened 9 years ago

ardila commented 9 years ago

I can see a way one might do this, but it would involve no longer hosting the files on S3 so there could be a check against a live updating server side thing.

There is a simpler solution for my case which involves shuffling the trials using javascript. If I'm remembering correctly, max_assignments being set to 1 has been a pretty good way of ensuring one hit per worker in my experience.

@yamins81 @hahong Is there a better way to do this?

hahong commented 9 years ago

There is a simpler solution for my case which involves shuffling the trials using javascript. If I'm remembering correctly, max_assignments being set to 1 has been a pretty good way of ensuring one hit per worker in my experience.

I don't think that this achieves your goal. Based on your description, this is my understanding of your setup: you have a single html on S3 and created multiple HITs pointing to the html with max_assigments=1. This is essentially the same as publishing those HITs with multiple htmls that have different sequences. As far as I understand, max_assignments doesn't control the uniqueness of workers. It simply duplicates the HIT instead.

I can see a way one might do this, but it would involve no longer hosting the files on S3 so there could be a check against a live updating server side thing.

Agreed, and I think we cannot avoid this at this moment (without additional support from Amazon). One simple way would be: we still hold our htmls on S3 just as we've been doing so far, but setup a separate, lightweight DB that guarantees the uniqueness of workers. For example, a quick google search gave me this: http://stackoverflow.com/questions/2835915/in-mechanical-turk-how-do-you-limit-to-one-hit-per-worker