Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-static preview with MTurk #708

Open
eranhirs opened this issue Mar 15, 2022 · 1 comment
Open

Non-static preview with MTurk #708

eranhirs opened this issue Mar 15, 2022 · 1 comment
Milestone

Comments

@eranhirs
Copy link

eranhirs commented Mar 15, 2022

Hi, I would appreciate your help again with another question I had.

In mturk, when in preview mode, you get the hitId which can be used to provide the turker with data about the specific hit.
It is a pretty common user experience to see the specific hit data, and it is also mentioned in the mturk docs:
When a Worker previews a HIT, your web page should show her everything she will need to do to complete the HIT, so she can decide whether or not to accept it. The easiest way to do this is to simply display the form as it would appear when the HIT is accepted.

It seems mephisto first registers the worker and agent before getting the task data, so it is currently impossible in preview mode to get the data when there is no assignmentId / workerId available in the url.

I understand that this use case might not be relevant for dialogue, is this a use case that mephisto should even support?
If yes, how do you imagine it? Maybe I can help make the relevant changes. Thanks!

@JackUrb
Copy link
Contributor

JackUrb commented Mar 15, 2022

This is interesting, as we dynamically associate a HITID with a the data for a Unit upon acceptance:

self.datastore.register_assignment_to_hit(

At the moment there's no clear way I can imagine changing this as one of the reasons we do this is because we allow for more complex eligibility matching that MTurk itself would allow. Thus it's only at match time that we know which data a HITID is referring to.

Implementation changes for this would touch the entire stack (CrowdProvider, Architects, the frontend Mephisto-task library, ClientIOHandler) and include needing an option to force the HITID on unit.launch to permanently pair data with an assignment, as well as exposing an endpoint for sending the data during the preview (which is currently static content served from the architect). It's a highly nontrivial task.

More possible could perhaps be the option to 'skip' a task from inside Mephisto, allowing workers to mark units that they don't want to work on and get them reassigned if there are any other options in the pool. That would still be a significant lift, but I can see it being a direct feature add for many tasks rather than a rough workaround.

@JackUrb JackUrb added this to the Mephisto X.0 milestone Jul 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants