Reproduction Kit for the Paper "The Right Cut: Interaction Data Slicing and its Effects on Keyboard Interaction Metrics"

{"This":[0,782,826,871],"is":[1,396,433,440,447,502,686,873],"the":[2,6,27,46,55,60,64,97,103,109,114,124,130,137,142,149,151,165,179,183,187,192,198,203,208,213,217,222,233,239,242,252,257,261,266,275,279,288,292,298,302,308,312,321,325,331,335,341,348,369,384,392,398,402,417,422,426,430,441,444,465,492,498,506,508,513,518,522,535,540,544,548,566,576,581,589,593,598,615,619,641,662,672,676,696,701,736,739,754,766,769,775,785,788,797,817,832,835,857,861,868,877,885,888,906,910,919,924],"reproduction":[3,31,176,209,299,332,445],"kit":[4,32,177,210,446],"for":[5,45,101,128,168,246,272,425,462,497,526,530,600,643,778,834,876,887],"paper":[7,28,115,143,204,245,642],"\\"The":[8],"Right":[9],"Cut:":[10],"Interaction":[11,19],"Data":[12,229],"Slicing":[13],"and":[14,40,63,79,106,111,134,139,195,200,226,248,282,315,364,373,379,388,401,405,411,528,580,606,628,634,660,679,749,914,937,952],"its":[15],"Effects":[16],"on":[17,362,377,565,816,856,905,945],"Keyboard":[18],"Metrics\\".":[20],"For":[21,468,670],"understanding":[22,471],"this":[23,175,305,338],"readme,":[24],"please":[25],"consult":[26],"first.":[29],"The":[30,34,42,414,646,692,725,771,921],"contains:":[33],"raw":[35],"DUX":[36,61,104,399,499,514,549,878],"dataset":[37,49,68,105,133,240,550,658],"(folders":[38],"DUX_Dataset/DUX_autoquestdata":[39],"DUX_Dataset/DUX_imotionsdata)":[41],"processing":[43],"script":[44,258,495],"Buffalo":[47,66,131],"keystroke":[48,67,132,235],"(folder":[50],"Buffalo_Dataset)":[51],"A":[52],"version":[53],"of":[54,113,141,182,202,221,232,286,304,319,337,416,464,472,547,575,626,656,664,695,790,819,863,912,923,931,956],"AutoQUEST":[56,158,225,342,395,450,474,476,501,745],"Software":[57],"to":[58,72,107,135,159,190,196,264,269,291,324,481,504,585,640,688,764,796,840,859,908,934],"parse":[59,512],"data":[62,99,126,162,167,194,267,400,404,432,546,579,591,595,737,740,858,907],"converted":[65],"as":[69,71,94,96,121,123,164,207,551,611,630,632,746],"well":[70,95,122,631],"calculate":[73,160],"interaction":[74,515,578,590,892],"metrics":[75,98,125,161,166,193,407,431,466,599,811,836,889],"using":[76,408,700,744],"different":[77,409],"slicers":[78,410],"slicing":[80,412],"parameters":[81],"(source":[82],"in":[83,88,174,178,251,260,268,278,311,421,436,731,753,768,793,801,822,846,867,895,918,964],"folder":[84,117,145,253,262,280,293,303,313,326,336,350,423,438,617,741,802,847,896],"autoquest-source,":[85],"compiled":[86],"binaries":[87],"zip":[89],"file":[90,276,309,372,387,613],"autoquest-distribution-0.2.5-SNAPSHOT-bin-Windows-amd64.zip)":[91],"Jupyter":[92,119,188,668,673,708],"Notebooks":[93,120,669],"used":[100,127],"analysing":[102,129],"generate":[108,136,197],"figures":[110,138,201,214,752],"results":[112,140,199,415],"(in":[116,144],"DUX_Dataset/Jupyter_metricanalysis)":[118],"Buffalo_Dataset/Jupyter_metricanalysis)":[146],"To":[147],"execute":[148],"reproduction,":[150],"following":[152,702,776],"steps":[153],"must":[154],"be":[155,487,729,943,962],"performed:":[156],"Run":[157,224,667],"(optional,":[163],"both":[169,779],"datasets":[170],"are":[171,419,555,563,623],"already":[172,211,434],"included":[173],"Jupyter_metricanalysis/data":[180],"folders":[181,677],"respective":[184,427],"datasets)":[185],"Execute":[186],"notebooks":[189,697,727,773,925],"analyse":[191],"(partially":[205],"optional":[206],"includes":[212],"but":[215,455,542,650],"not":[216,452,961],"other":[218],"relevant":[219],"conclusions":[220],"paper)":[223,534],"Calculate":[227],"Metrics":[228],"In":[230,494,757,804,849,898],"case":[231,442],"Bufallo":[234],"dataset,":[236],"first":[237],"retrieve":[238],"from":[241,738],"authors":[243],"(see":[244],"reference)":[247],"store":[249],"it":[250,454,806,851,900],"Buffalo_Dataset/UB_keystroke_dataset.":[254],"Afterwards,":[255],"run":[256,963],"convert_to_autoquest.py":[259],"Buffalo_Dataset":[263],"transform":[265],"something":[270],"readable":[271],"AutoQUEST.":[273],"Adapt":[274,307],"autoquest_script_calculate_metrics.txt":[277,310,647],"DUX_Dataset/":[281],"replace":[283,316],"any":[284,317,732],"occurrence":[285,318],"with":[287,320,457,527,543,592,633,651,948],"absolute":[289,322],"path":[290,323],"into":[294,327,347,489,614,681],"which":[295,328],"you":[296,329],"extracted":[297,330,349],"kit,":[300,333],"i.e.,":[301,334,517],"readme":[306,339],"Buffalo_Dataset/":[314],"Extract":[340],"distribution":[343],"package":[344,690,703],"autoquest-distribution-0.2.5-SNAPSHOT-bin-Windows-amd64.zip":[345],"Change":[346],"autoquest-distribution-0.2.5-SNAPSHOT-bin-Windows-amd64\\\\autoquest-distribution-0.2.5-SNAPSHOT":[351],"Call":[352],"java":[353],"-Xms20480m":[354],"-Xmx20480m":[355],"--add-opens=java.base/java.lang=ALL-UNNAMED":[356],"-jar":[357],"autoquest-runner-0.2.5-SNAPSHOT-Windows-amd64.jar":[358],"-ui":[359],"swt":[360],"Click":[361,376],"File":[363,367,378,382],"Exec":[365,380],"Batch":[366,381],"Select":[368,383],"adapted":[370,385],"DUX_Dataset/autoquest_script_calculate_metrics.txt":[371],"hit":[374,389],"OK":[375,390],"Buffalo_Dataset/autoquest_script_calculate_metrics.txt":[386],"With":[391],"last":[393,620],"commands,":[394],"parsing":[397],"buffalo":[403],"calculates":[406,597],"parameters.":[413],"process":[418,482],"stored":[420],"Jupyter_metricanalysis\\\\data":[424],"dataset.":[428,879],"If":[429],"located":[435],"that":[437,560],"(as":[439],"if":[443],"freshly":[448],"downloaded),":[449],"will":[451],"overwrite":[453],"fail":[456,969],"a":[458,469,572,601,612,682,794,813,823,928,946],"corresponding":[459],"error":[460],"message":[461],"each":[463],"files.":[467],"better":[470],"what":[473],"does":[475],"has":[477],"many":[478,809],"build-in":[479],"commands":[480,485,511,538],"data.":[483,637,666],"These":[484],"can":[486,728,926],"combined":[488],"scripts":[490],"like":[491],"autoquest_script_calculate_metrics.txt.":[493],"provided":[496],"data,":[500,516],"instructed":[503],"do":[505,539,774],"following:":[507],"two":[509,536],"parseDirHTML":[510,653],"events":[519,792,821],"caused":[520],"by":[521],"user":[523,553,582,838,842,864,913],"interactions":[524,554,562],"(once":[525],"once":[529],"without":[531,635,661],"trigger;":[532],"see":[533],"parseDirIMotions":[537],"same":[541],"emotion":[545,594,665],"recorded":[552,577],"sometimes":[556],"messy,":[557],"correctKeyInteractionTargets":[558],"ensures":[559,571],"key":[561,791,820,891],"always":[564],"correct":[567],"text":[568],"field":[569],"timeSyncIMotions":[570],"time":[573,932],"alignment":[574],"emotions":[583],"belonging":[584],"them":[586],"annotateEmotions":[587],"combines":[588],"exportMetrics":[596],"specific":[602,843,865,916],"slicer":[603,627],"(e.g.,":[604,608],"TIME)":[605],"parameter":[607,629],"3000":[609],"ms)":[610],"given":[616],"Of":[618],"command,":[621],"there":[622],"diverse":[624,751,761],"combinations":[625],"trigger":[636],"Please":[638],"refer":[639],"more":[644,652,657],"details.":[645],"looks":[648],"similar":[649],"command":[654],"because":[655],"parts":[659],"alighment":[663],"running":[671,970],"Notebooks,":[674],"copy":[675],"DUX_Dataset/Jupyter_metricanalysis":[678],"Buffalo_Dataset/Jupyter_metricanalysis":[680],"jupyter":[683],"workspace.":[684],"It":[685,880],"important":[687],"consider":[689],"versions.":[691],"genuine":[693],"execution":[694,922],"was":[698],"done":[699],"versions:":[704],"Python":[705],"(version":[706,710,713],"3.11.9)":[707],"Lab":[709],"4.4.4)":[711],"statsmodels":[712],"0.14.5)":[714],"numpy":[715],"(1.26.2)":[716],"pandas":[717],"(2.3.1)":[718],"seaborn":[719],"(0.13.2)":[720],"pyplot":[721],"(3.10.7)":[722],"scipy":[723],"(1.16.2)":[724],"Jupyiter":[726],"executed":[730,944],"order.":[733],"They":[734,940],"read":[735],"(potentially":[742],"created":[743],"described":[747],"before)":[748],"produce":[750],"figs":[755],"folder.":[756],"addition,":[758,805,850,899],"they":[759,959,967],"provide":[760],"output":[762],"messages":[763],"reflect":[765],"statements":[767],"paper.":[770],"individual":[772],"(similar":[777],"datasets):":[780],"MetricVsKeyEventCountInSliceAnalysis:":[781],"notebook":[783,827,872],"creates":[784,828,881],"plots":[786,830,883],"mapping":[787],"number":[789,818],"slice":[795],"metric":[798],"values":[799],"(stored":[800,845,894],"figs/MetricsVsKeyEventCountInSliceAnalysis).":[803],"analyses":[807],"how":[808],"keyboard":[810],"have":[812],"linear":[814],"dependency":[815],"slice.":[824],"VarianceCausedByUserSession_Keyboard:":[825],"box":[829,882],"showing":[831,884],"measurements":[833,886],"per":[837,890],"sessions":[839],"identify":[841],"effects":[844,866,917],"figs/VarianceCausedByUserSession).":[848],"aligns":[852,901],"Linear":[853,902],"Mixed":[854,903],"Models":[855,904],"assess":[860,909],"existence":[862,911],"measurements.":[869,920],"VarianceCausedByKeyInteractionTarget:":[870],"only":[874,942],"available":[875],"target":[893],"figs/VarianceCausedByTask).":[897],"task":[915],"utilize":[927],"severe":[929],"amount":[930],"(up":[933],"24":[935],"hours)":[936],"computing":[938],"resources.":[939],"should":[941,960],"PC":[947],"high":[949],"CPU":[950],"power":[951],"at":[953],"least":[954],"32GB":[955],"RAM.":[957],"Furthermore,":[958],"parallel.":[965],"Otherwise,":[966],"may":[968],"through.":[971]}

Authors

Institutions

Publication Details

Journal
Zenodo (CERN European Organization for Nuclear Research)
Published
2026-09-09
DOI
https://doi.org/10.5281/zenodo.22672730
Primary Topic
User Authentication and Security Systems
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
article

Reproduction Kit for the Paper "The Right Cut: Interaction Data Slicing and its Effects on Keyboard Interaction Metrics"

Patrick Harms, Carina Bieber
Zenodo (CERN European Organization for Nuclear Research)
User Authentication and Security Systems
article

Reproduction Kit for the Paper "The Right Cut: Interaction Data Slicing and its Effects on Keyboard Interaction Metrics"

Patrick Harms, Carina Bieber
article en

Abstract

This is the reproduction kit for the paper "The Right Cut: Interaction Data Slicing and its Effects on Keyboard Interaction Metrics". For understanding this readme, please consult the paper first. The reproduction kit contains: The raw DUX dataset (folders DUX_Dataset/DUX_autoquestdata and DUX_Dataset/DUX_imotionsdata) The processing script for the Buffalo keystroke dataset (folder Buffalo_Dataset) A version of the AutoQUEST Software to parse the DUX data and the converted Buffalo keystroke dataset as well as to calculate interaction metrics using different slicers and slicing parameters (source in folder autoquest-source, compiled binaries in zip file autoquest-distribution-0.2.5-SNAPSHOT-bin-Windows-amd64.zip) Jupyter Notebooks as well as the metrics data used for analysing the DUX dataset and to generate the figures and results of the paper (in folder DUX_Dataset/Jupyter_metricanalysis) Jupyter Notebooks as well as the metrics data used for analysing the Buffalo keystroke dataset and to generate the figures and results of the paper (in folder Buffalo_Dataset/Jupyter_metricanalysis) To execute the reproduction, the following steps must be performed: Run AutoQUEST to calculate metrics data (optional, as the metrics data for both datasets are already included in this reproduction kit in the Jupyter_metricanalysis/data folders of the respective datasets) Execute the Jupyter notebooks to analyse the metrics data and to generate the results and figures of the paper (partially optional as the reproduction kit already includes the figures but not the other relevant conclusions of the paper) Run AutoQUEST and Calculate Metrics Data In case of the Bufallo keystroke dataset, first retrieve the dataset from the authors (see paper for reference) and store it in the folder Buffalo_Dataset/UB_keystroke_dataset. Afterwards, run the script convert_to_autoquest.py in the folder Buffalo_Dataset to transform the data in to something readable for AutoQUEST. Adapt the file autoquest_script_calculate_metrics.txt in the folder DUX_Dataset/ and replace any occurrence of with the absolute path to the folder into which you extracted the reproduction kit, i.e., the folder of this readme Adapt the file autoquest_script_calculate_metrics.txt in the folder Buffalo_Dataset/ and replace any occurrence of with the absolute path to the folder into which you extracted the reproduction kit, i.e., the folder of this readme Extract the AutoQUEST distribution package autoquest-distribution-0.2.5-SNAPSHOT-bin-Windows-amd64.zip Change into the extracted folder autoquest-distribution-0.2.5-SNAPSHOT-bin-Windows-amd64\autoquest-distribution-0.2.5-SNAPSHOT Call java -Xms20480m -Xmx20480m --add-opens=java.base/java.lang=ALL-UNNAMED -jar autoquest-runner-0.2.5-SNAPSHOT-Windows-amd64.jar -ui swt Click on File and Exec Batch File Select the adapted DUX_Dataset/autoquest_script_calculate_metrics.txt file and hit OK Click on File and Exec Batch File Select the adapted Buffalo_Dataset/autoquest_script_calculate_metrics.txt file and hit OK With the last commands, AutoQUEST is parsing the DUX data and the buffalo data and calculates metrics using different slicers and slicing parameters. The results of the process are stored in the folder Jupyter_metricanalysis\data for the respective dataset. If the metrics data is already located in that folder (as is the case if the reproduction kit is freshly downloaded), AutoQUEST will not overwrite it but fail with a corresponding error message for each of the metrics files. For a better understanding of what AutoQUEST does AutoQUEST has many build-in commands to process data. These commands can be combined into scripts like the autoquest_script_calculate_metrics.txt. In script provided for the DUX data, AutoQUEST is instructed to do the following: the two parseDirHTML commands parse the DUX interaction data, i.e., the events caused by the user interactions (once for with and once for without trigger; see paper) the two parseDirIMotions commands do the same but with the emotion data of the DUX dataset as recorded user interactions are sometimes messy, correctKeyInteractionTargets ensures that key interactions are always on the correct text field timeSyncIMotions ensures a time alignment of the recorded interaction data and the user emotions belonging to them annotateEmotions combines the interaction data with the emotion data exportMetrics calculates the metrics for a specific slicer (e.g., TIME) and parameter (e.g., 3000 ms) as a file into the given folder Of the last command, there are diverse combinations of slicer and parameter as well as with and without trigger data. Please refer to the paper for more details. The autoquest_script_calculate_metrics.txt looks similar but with more parseDirHTML command because of more dataset parts and without the alighment of emotion data. Run Jupyter Notebooks For running the Jupyter Notebooks, copy the folders DUX_Dataset/Jupyter_metricanalysis and Buffalo_Dataset/Jupyter_metricanalysis into a jupyter workspace. It is important to consider package versions. The genuine execution of the notebooks was done using the following package versions: Python (version 3.11.9) Jupyter Lab (version 4.4.4) statsmodels (version 0.14.5) numpy (1.26.2) pandas (2.3.1) seaborn (0.13.2) pyplot (3.10.7) scipy (1.16.2) The Jupyiter notebooks can be executed in any order. They read the data from the data folder (potentially created using AutoQUEST as described before) and produce diverse figures in the figs folder. In addition, they provide diverse output messages to reflect the statements in the paper. The individual notebooks do the following (similar for both datasets): MetricVsKeyEventCountInSliceAnalysis: This notebook creates the plots mapping the number of key events in a slice to the metric values (stored in folder figs/MetricsVsKeyEventCountInSliceAnalysis). In addition, it analyses how many keyboard metrics have a linear dependency on the number of key events in a slice. VarianceCausedByUserSession_Keyboard: This notebook creates box plots showing the measurements for the metrics per user sessions to identify user specific effects (stored in folder figs/VarianceCausedByUserSession). In addition, it aligns Linear Mixed Models on the data to assess the existence of user specific effects in the measurements. VarianceCausedByKeyInteractionTarget: This notebook is only available for the DUX dataset. It creates box plots showing the measurements for the metrics per key interaction target (stored in folder figs/VarianceCausedByTask). In addition, it aligns Linear Mixed Models on the data to assess the existence of user and task specific effects in the measurements. The execution of the notebooks can utilize a severe amount of time (up to 24 hours) and computing resources. They should only be executed on a PC with high CPU power and at least 32GB of RAM. Furthermore, they should not be run in parallel. Otherwise, they may fail running through.

Zenodo (CERN European Organization for Nuclear Research)
Georg Simon Ohm University of Applied Sciences Nuremberg (DE), University of Göttingen (DE)
Openalex Percentile: Top 3%
User Authentication and Security Systems
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.