IRW item text is reconstructed from published articles, codebooks, and supplementary materials using a largely automated pipeline with partial human review. It is provided for research purposes only. We make no guarantee that the text is accurate, complete, or correctly aligned with the item identifiers in the corresponding IRW response data; the original source document is always authoritative. Users are responsible for verifying item text against that source before drawing substantive conclusions. See Known Issues for documented discrepancies, and please get in touch if you find others.
Note also that the licenses recorded for IRW response data do not extend to the instruments themselves. Inclusion of item text here implies no license to reuse an instrument; copyright and related rights remain with the original rights holders, and users are responsible for obtaining any permissions their intended use requires.
The IRW item text resource contains full item wording for 421 tables spanning 388 distinct instruments. Items have a median length of 9 words (51 characters) and a median Flesch-Kincaid grade level of 6.4. See the Item Text Standard for a full description of the data structure.
Tables with item text
Code
plotData =transpose(plot_data)viewof search = Inputs.search(plotData, {placeholder:"Search by table or instrument…"})Inputs.table(search, {columns: ["table","instrument","mean_word","mean_character","mean_character_responses","FK_grade"],header: {table:"Table",instrument:"Instrument",mean_word:"Mean words",mean_character:"Mean characters (stem)",mean_character_responses:"Mean characters (responses)",FK_grade:"FK grade" },format: {mean_word: x => x ==null?"—": x.toFixed(1),mean_character: x => x ==null?"—": x.toFixed(1),mean_character_responses: x => x ==null?"—": x.toFixed(1),FK_grade: x => x ==null?"—": x.toFixed(1) },sort:"table"})
Item complexity
The two scatterplots show item complexity across tables. Left: mean words vs. Flesch-Kincaid grade level. Right: mean stem characters vs. mean response-option characters (tables with no response options are omitted from the right panel). Hover for table and instrument details.
Code
scatterFK = Plot.plot({grid:true,marks: [ Plot.dot(plotData, {x:"mean_word",y:"FK_grade",fill:"steelblue",fillOpacity:0.6,r:4 }), Plot.tip(plotData, Plot.pointer({x:"mean_word",y:"FK_grade",title: d =>`${d.table}\n${d.instrument}\n${d.mean_word.toFixed(1)} words · FK ${d.FK_grade!=null? d.FK_grade.toFixed(1) :"n/a"}` })) ],x: {label:"Mean words per item"},y: {label:"FK grade level"}})charData = plotData.filter(d => d.mean_character_responses!=null)scatterChar = Plot.plot({grid:true,marks: [ Plot.dot(charData, {x:"mean_character",y:"mean_character_responses",fill:"steelblue",fillOpacity:0.6,r:4 }), Plot.tip(charData, Plot.pointer({x:"mean_character",y:"mean_character_responses",title: d =>`${d.table}\n${d.instrument}\n${d.mean_character.toFixed(1)} stem chars · ${d.mean_character_responses.toFixed(1)} response chars` })) ],x: {label:"Mean characters (stem)"},y: {label:"Mean characters (responses)"}})html`<div style="display:flex;gap:1.5rem;"> <div style="flex:1">${scatterFK}</div> <div style="flex:1">${scatterChar}</div></div>`
library(irw)irw_list_itemtext_tables() # List tables that have item textitems <-irw_itemtext("gilbert_meta_49") # Fetch item text for a specific table
Code
import irwirw.list_tables_with_itemtext() # List tables that have item textitems = irw.itemtext("gilbert_meta_49") # Fetch item text for a specific table