Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Data export - metadata?

First - I really am loving JATOS. It's made my life trying to organize and run experiments online so much easier. There are a few "wish list" features I'd love to see that would help considerably. The first is to be able to export the metadata that JATOS has for each experiment stage. JATOS keeps track of things like when each phase began, ended, duration, exit codes, etc. and we can see that in the JATOS interface just fine. But, I can't see any way to export it. If that could be included in the data that comes out when we do an Export Results, we'd have a consistent way of knowing this.

Take, as an example of the problem, a researcher running several tasks in subjects and they run the whole experiment multiple times. Said researcher might have not done an awesome job at exporting date stamps into the results field all the time and is now trying to reconstruct exact timelines. In the big exported text files, subjects come out in reverse chronological order but within a subject, things are in chronological order. If there were issues, there's no consistent way of knowing this in the exported data. None of this is impossible to work with, but if the export results included not only the data you posted but also JATOS_StartTime, JATOS_EndTime, etc. external programs could nicely have access to what is currently tied to the web interface.

(A second wish-list item is for a more convenient way of accessing parameters. Right now, I may pass in variables via URL, studyJson, componentJson, etc. and have to check each possible location manually. This one, though, I'll likely just write myself.)


Craig

Comments

  • Hi Craig!

    Nice to hear you like JATOS. And thank you for your feedback and feature wishes. We really need this type of feedback to learn what people need in JATOS.

    Now to your main wish: exporting meta data. JATOS does have the possibility to export meta data already: there is a button for it in every result page: http://www.jatos.org/Manage-Results.html#export-metadata-jatos-version--331. But I have to admit this was added in a hurry and it can be improved. Right now it just exports the meta data in its own file. And the actual result data are exported into another file. The ordering in both files is the same, that means you can map line 1 of the meta data to the result data in line 1 etc. Although this probably fulfills your needs it would be nice to have both meta and result data exported to one file, e.g. in JSON format:

    { 0: { "metaData": ..., "resultData": ...}, 1: ... }

    This is already on the feature list we want to implement in the future.

    Then for your second wish:

    A second wish-list item is for a more convenient way of accessing parameters. Right now, I may pass in variables via URL, studyJson, componentJson, etc. and have to check each possible location manually. This one, though, I'll likely just write myself.

    Here I'm a bit lost and I don't understand what you'd like to have. Is it some kind of unified way of accessing URL query parameters, studyJsonInput, componentJsonInput, and batchJsonInput? But what if they have the same parameter names? They would overwrite each other. Can you explain more?

    Best,

    Kristian

  • Yea - the linking is the key in that you're 100% sure they're tied and such. In addition, the basic metadata export there is at the level of entire experiment rather than at the level of each component. But, it's nonetheless a good thing to have and if I at least make sure to embed the worker-ID (rather than the ID that comes in via the URL in our system), I'll have that to decode.

    The second bit is perhaps unique to my setup. I've got various tasks that get run in an experiment and I use a setup.html main page to define the counter-balancing, conditions, etc. for an individual run. Let's take a simple example -- should the participant respond via keyboard or buttons? It'd be a shame to really have two separate programs for this simple difference, so I have a mytask.html that runs the task in either way, checking for some resp variable's value. What can set that? Well, it'll have a default, but it might be nice at the top level of an experiment to define this behavior, or at least the default. So, in the Properties for the experiment I might have "resp": "buttons" or some such thing and then I'd find it in jatos.studyJsonInput. But, of course, we like flexibility and might want to run some tasks with buttons and some with keyboard responses or to even run it both ways in one experiment. So, maybe we have two components of the same study that point to the same mytask.html file and in their Properties, we might have a "resp": "buttons" in there and access it via jatos.componentJsonInput. Then again, based on what someone did in the experiment, we might want to change this, so we'd set something in our nice "share across components" spot of jatos.StudySessionData. Heck, while we're here, I get things passed in from our experiment system as URL variables, so maybe we also check jatos.urlQueryParameters.

    Upshot - the flexibility of being able to specify parameters at many levels is great, but it does mean that as I try to future-proof code and set it up to be flexible to let people nicely configure experiments with task-code, I end up doing a lot of checking each one by one like:

      var myparam='';
      if (typeof jatos.studySessionData['myparam'] !== 'undefined') {
        myparam=jatos.studySessionData['myparam'];
      }
      if (jatos.componentJsonInput && typeof jatos.componentJsonInput['myparam'] !== 'undefined') {
        myparam=jatos.componentJsonInput['myparam'];
      }
    ...
    
  • It seems like you expect your study to be used by others and you try to anticipate where they would set input parameters. Usually people program a study for themselves or their team and don't try to make it fool-proof - they just try to get it to work :).

    But do you have an idea in how to change the many different inputs into a more unified input that you can use to query all at once. I mean I could provide some function that takes a parameter name and then looks one after another in the different inputs and returns the value of the first match. But somehow I suspect people would get confused about where their parameter actually come from (especially if you have parameters with the same name in different inputs). E.g. we have a parameter 'foo' in the studyJsonInput and the componentJsonInput: which one is read out? We could define a priority here: urlQueryParameters would have the highest prio, then componentJsonInput, then studyJsonInput, then batchJsonInput. I would leave out the three sessions (study, batch, group) since they have a slightly different purpose (inter-study or inter-component communication) and are writeable. What do you think?

Sign In or Register to comment.

agen judi bola , sportbook, casino, togel, number game, singapore, tangkas, basket, slot, poker, dominoqq, agen bola. Semua permainan bisa dimainkan hanya dengan 1 ID. minimal deposit 50.000 ,- bonus cashback hingga 10% , diskon togel hingga 66% bisa bermain di android dan IOS kapanpun dan dimana pun. poker , bandarq , aduq, domino qq , dominobet. Semua permainan bisa dimainkan hanya dengan 1 ID. minimal deposit 10.000 ,- bonus turnover 0.5% dan bonus referral 20%. Bonus - bonus yang dihadirkan bisa terbilang cukup tinggi dan memuaskan, anda hanya perlu memasang pada situs yang memberikan bursa pasaran terbaik yaitu http://45.77.173.118/ Bola168. Situs penyedia segala jenis permainan poker online kini semakin banyak ditemukan di Internet, salah satunya TahunQQ merupakan situs Agen Judi Domino66 Dan BandarQ Terpercaya yang mampu memberikan banyak provit bagi bettornya. Permainan Yang Di Sediakan Dewi365 Juga sangat banyak Dan menarik dan Peluang untuk memenangkan Taruhan Judi online ini juga sangat mudah . Mainkan Segera Taruhan Sportbook anda bersama Agen Judi Bola Bersama Dewi365 Kemenangan Anda Berapa pun akan Terbayarkan. Tersedia 9 macam permainan seru yang bisa kamu mainkan hanya di dalam 1 ID saja. Permainan seru yang tersedia seperti Poker, Domino QQ Dan juga BandarQ Online. Semuanya tersedia lengkap hanya di ABGQQ. Situs ABGQQ sangat mudah dimenangkan, kamu juga akan mendapatkan mega bonus dan setiap pemain berhak mendapatkan cashback mingguan. ABGQQ juga telah diakui sebagai Bandar Domino Online yang menjamin sistem FAIR PLAY disetiap permainan yang bisa dimainkan dengan deposit minimal hanya Rp.25.000. DEWI365 adalah Bandar Judi Bola Terpercaya & resmi dan terpercaya di indonesia. Situs judi bola ini menyediakan fasilitas bagi anda untuk dapat bermain memainkan permainan judi bola. Didalam situs ini memiliki berbagai permainan taruhan bola terlengkap seperti Sbobet, yang membuat DEWI365 menjadi situs judi bola terbaik dan terpercaya di Indonesia. Tentunya sebagai situs yang bertugas sebagai Bandar Poker Online pastinya akan berusaha untuk menjaga semua informasi dan keamanan yang terdapat di POKERQQ13. Kotakqq adalah situs Judi Poker Online Terpercayayang menyediakan 9 jenis permainan sakong online, dominoqq, domino99, bandarq, bandar ceme, aduq, poker online, bandar poker, balak66, perang baccarat, dan capsa susun. Dengan minimal deposit withdraw 15.000 Anda sudah bisa memainkan semua permaina pkv games di situs kami. Jackpot besar,Win rate tinggi, Fair play, PKV Games