Introducing an Interoperability Standard
for Qualitative Data:
The Reproducible Open Coding Kit (ROCK)
Szilvia Zörgő
Oct. 15, 2025
System’s/component’s ability to work with
or use (part of) another system
Open science goal:�Meaningfully interlinked network of contextualized data
Machine-readability
Qualitative data
Challenges for qualitative data
Push-back, critical issues:
Context
De-identification
Aggregation
Reuse
Lack of open-source infrastructure & tools
Isolation, (in)visibility, compatibility issues
Overreliance on proprietary software
Exporting coded data or analyses
Collaboration & inclusivity
Access after license expiration
Sharing (even within a research team)
(non-numerical, non-categorical)
Contextualization of data
Cultivation of FLOSS ecosystem
Machine-readability
Open standard
Standard
Set of guidelines…
So hardware & software can work together (compatibility) and exchange data (interoperability)
Agreed way of doing things
Concepts (what exists)
Definitions (what they mean)
Conventions (how to specify concepts)
Gjalt-Jorn Peters
Szilvia Zörgő
The Reproducible Open Coding Kit (ROCK)
(Anno 2018)
Human- and machine-readable, open standard for qualitative data
Plain text files
Plain text files
Collaboration, inclusivity, FLOSS
Specialized software (software agnostic)
Plain text files
Non-textual data requires “transcription”
Main phases in qualitative research
Collect data
Code data
Identify themes
Disseminate results
Main phases in qualitative research
Collect data
Code data
Identify themes
Disseminate results
Working with qualitative data
Data providers (cases)
Codes (development, scheme, type)
Coding (+segmentation)
Sources (files)
Case A
Case B
Case C
Attributes (e.g., socdem., setting)
Focus group 1
Case A: male, 23
Case B: female, 35
Case C: male, 31
FG1
FG2
FG3
---
ROCK_attributes:
-
cid: “case_A"
age: "23"
sex: “male"
-
cid: “case_B"
age: “35"
sex: “female"
---
[[cid= case_A]]
[[uid=7q0xb29c]] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[uid=7q0xb29f]] Maecenas at faucibus justo.
[[uid=7q0xb29g]] Nam facilisis id magna non facilisis.
[[uid=7q0xb29j]] Vivamus ullamcorper ligula magna, non blandit imperdiet in.
[[uid=7q0xb29k]] Sed felis sem, euismod et tincidunt quis, venenatis vel tellus.
[[uid=7q0xb29l]] Fusce non nisl tristique, ultricies augue eget, aliquet nisi.
[[uid=7q0xb29m]] Sed elementum turpis eu tempus tincidunt.
[[uid=7q0xb29n]] Donec vel quam vel eros elementum ullamcorper non sed velit.
---<<SectionBreak>>---
[[uid=7q0xb29p]] Suspendisse in finibus tortor, vehicula volutpat nulla.
[[uid=7q0xb29q]] Sed vestibulum, mauris vitae faucibus malesuada, et vehicula nisi nulla eget arcu.
[[uid=7q0xb29r]] Donec nulla elit, cursus in mauris vitae, iaculis finibus ligula.
[[uid=7q0xb29s]] Sed sit amet ante elementum, hendrerit mauris id, euismod orci.
[[uid=7q0xb29y]] Praesent tellus felis, consectetur cursus risus ac, tempus sollicitudin lacus.
[[uid=7q0xb2b0]] Duis viverra laoreet purus vitae venenatis.
---<<SectionBreak>>---
[[uid=7q0xb2b1]] Ut viverra nulla dolor, consectetur commodo augue fermentum ac.
[[uid=7q0xb2b4]] Nunc tempus vestibulum tortor, vitae sollicitudin nulla ultricies et. [[uid=7q0xb2b8]] Mauris in lorem, id tempor elit.
Source
Plain text file;
≤1 utterances
Utterance
Line of data -> \n;
Chars, sentences, ¶, mins
ROCK conventions
How we specify things…
---
ROCK_attributes:
-
cid: “case_A"
age: "23"
sex: “male"
-
cid: “case_B"
age: “35"
sex: “female"
---
[[cid= case_A]]
[[uid=7q0xb29c]] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[uid=7q0xb29f]] Maecenas at faucibus justo.
[[uid=7q0xb29g]] Nam facilisis id magna non facilisis.
[[uid=7q0xb29j]] Vivamus ullamcorper ligula magna, non blandit imperdiet in.
[[uid=7q0xb29k]] Sed felis sem, euismod et tincidunt quis, venenatis vel tellus.
[[uid=7q0xb29l]] Fusce non nisl tristique, ultricies augue eget, aliquet nisi.
[[uid=7q0xb29m]] Sed elementum turpis eu tempus tincidunt.
[[uid=7q0xb29n]] Donec vel quam vel eros elementum ullamcorper non sed velit.
---<<SectionBreak>>---
[[uid=7q0xb29p]] Suspendisse in finibus tortor, vehicula volutpat nulla.
[[uid=7q0xb29q]] Sed vestibulum, mauris vitae faucibus malesuada, et vehicula nisi nulla eget arcu.
[[uid=7q0xb29r]] Donec nulla elit, cursus in mauris vitae, iaculis finibus ligula.
[[uid=7q0xb29s]] Sed sit amet ante elementum, hendrerit mauris id, euismod orci.
[[uid=7q0xb29y]] Praesent tellus felis, consectetur cursus risus ac, tempus sollicitudin lacus.
[[uid=7q0xb2b0]] Duis viverra laoreet purus vitae venenatis.
---<<SectionBreak>>---
[[uid=7q0xb2b1]] Ut viverra nulla dolor, consectetur commodo augue fermentum ac.
[[uid=7q0xb2b4]] Nunc tempus vestibulum tortor, vitae sollicitudin nulla ultricies et. [[uid=7q0xb2b8]] Mauris in lorem, id tempor elit.
Source
Plain text file;
≤1 utterances
Utterance
Line of data -> \n;
Chars, sentences, ¶, mins
ROCK conventions
Case attributes
Can be for any class
(e.g., data collection, researcher)
---
ROCK_attributes:
-
cid: “case_A"
age: "23"
sex: “male"
-
cid: “case_B"
age: “35"
sex: “female"
---
[[cid= case_A]]
[[uid=7q0xb29c]] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[uid=7q0xb29f]] Maecenas at faucibus justo.
[[uid=7q0xb29g]] Nam facilisis id magna non facilisis.
[[uid=7q0xb29j]] Vivamus ullamcorper ligula magna, non blandit imperdiet in.
[[uid=7q0xb29k]] Sed felis sem, euismod et tincidunt quis, venenatis vel tellus.
[[uid=7q0xb29l]] Fusce non nisl tristique, ultricies augue eget, aliquet nisi.
[[uid=7q0xb29m]] Sed elementum turpis eu tempus tincidunt.
[[uid=7q0xb29n]] Donec vel quam vel eros elementum ullamcorper non sed velit.
---<<SectionBreak>>---
[[uid=7q0xb29p]] Suspendisse in finibus tortor, vehicula volutpat nulla.
[[uid=7q0xb29q]] Sed vestibulum, mauris vitae faucibus malesuada, et vehicula nisi nulla eget arcu.
[[uid=7q0xb29r]] Donec nulla elit, cursus in mauris vitae, iaculis finibus ligula.
[[uid=7q0xb29s]] Sed sit amet ante elementum, hendrerit mauris id, euismod orci.
[[uid=7q0xb29y]] Praesent tellus felis, consectetur cursus risus ac, tempus sollicitudin lacus.
[[uid=7q0xb2b0]] Duis viverra laoreet purus vitae venenatis.
---<<SectionBreak>>---
[[uid=7q0xb2b1]] Ut viverra nulla dolor, consectetur commodo augue fermentum ac.
[[uid=7q0xb2b4]] Nunc tempus vestibulum tortor, vitae sollicitudin nulla ultricies et. [[uid=7q0xb2b8]] Mauris in lorem, id tempor elit.
Source
Plain text file;
≤1 utterances
Utterance
Line of data -> \n;
Chars, sentences, ¶, mins
ROCK conventions
Case attributes
Can be for any class
(e.g., data collection, researcher)
Utterance identifier
Unique (date/time-based);
Refer to any line
---
ROCK_attributes:
-
cid: “case_A"
age: "23"
sex: “male"
-
cid: “case_B"
age: “35"
sex: “female"
---
[[cid= case_A]]
[[uid=7q0xb29c]] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[uid=7q0xb29f]] Maecenas at faucibus justo.
[[uid=7q0xb29g]] Nam facilisis id magna non facilisis.
[[uid=7q0xb29j]] Vivamus ullamcorper ligula magna, non blandit imperdiet in.
[[uid=7q0xb29k]] Sed felis sem, euismod et tincidunt quis, venenatis vel tellus.
[[uid=7q0xb29l]] Fusce non nisl tristique, ultricies augue eget, aliquet nisi.
[[uid=7q0xb29m]] Sed elementum turpis eu tempus tincidunt.
[[uid=7q0xb29n]] Donec vel quam vel eros elementum ullamcorper non sed velit.
---<<SectionBreak>>---
[[uid=7q0xb29p]] Suspendisse in finibus tortor, vehicula volutpat nulla.
[[uid=7q0xb29q]] Sed vestibulum, mauris vitae faucibus malesuada, et vehicula nisi nulla eget arcu.
[[uid=7q0xb29r]] Donec nulla elit, cursus in mauris vitae, iaculis finibus ligula.
[[uid=7q0xb29s]] Sed sit amet ante elementum, hendrerit mauris id, euismod orci.
[[uid=7q0xb29y]] Praesent tellus felis, consectetur cursus risus ac, tempus sollicitudin lacus.
[[uid=7q0xb2b0]] Duis viverra laoreet purus vitae venenatis.
---<<SectionBreak>>---
[[uid=7q0xb2b1]] Ut viverra nulla dolor, consectetur commodo augue fermentum ac.
[[uid=7q0xb2b4]] Nunc tempus vestibulum tortor, vitae sollicitudin nulla ultricies et. [[uid=7q0xb2b8]] Mauris in lorem, id tempor elit.
Source
Plain text file;
≤1 utterances
Utterance
Line of data -> \n;
Chars, sentences, ¶, mins
ROCK conventions
Case attributes
Can be for any class
(e.g., data collection, researcher)
Utterance identifier
Unique (date/time-based);
Refer to any line
Case identifier
Until another cid is specified
data assigned same case
---
ROCK_attributes:
-
cid: “case_A"
age: "23"
sex: “male"
-
cid: “case_B"
age: “35"
sex: “female"
---
[[cid= case_A]]
[[uid=7q0xb29c]] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[uid=7q0xb29f]] Maecenas at faucibus justo.
[[uid=7q0xb29g]] Nam facilisis id magna non facilisis.
[[uid=7q0xb29j]] Vivamus ullamcorper ligula magna, non blandit imperdiet in.
[[uid=7q0xb29k]] Sed felis sem, euismod et tincidunt quis, venenatis vel tellus.
[[uid=7q0xb29l]] Fusce non nisl tristique, ultricies augue eget, aliquet nisi.
[[uid=7q0xb29m]] Sed elementum turpis eu tempus tincidunt.
[[uid=7q0xb29n]] Donec vel quam vel eros elementum ullamcorper non sed velit.
---<<SectionBreak>>---
[[uid=7q0xb29p]] Suspendisse in finibus tortor, vehicula volutpat nulla.
[[uid=7q0xb29q]] Sed vestibulum, mauris vitae faucibus malesuada, et vehicula nisi nulla eget arcu.
[[uid=7q0xb29r]] Donec nulla elit, cursus in mauris vitae, iaculis finibus ligula.
[[uid=7q0xb29s]] Sed sit amet ante elementum, hendrerit mauris id, euismod orci.
[[uid=7q0xb29y]] Praesent tellus felis, consectetur cursus risus ac, tempus sollicitudin lacus.
[[uid=7q0xb2b0]] Duis viverra laoreet purus vitae venenatis.
---<<SectionBreak>>---
[[uid=7q0xb2b1]] Ut viverra nulla dolor, consectetur commodo augue fermentum ac.
[[uid=7q0xb2b4]] Nunc tempus vestibulum tortor, vitae sollicitudin nulla ultricies et. [[uid=7q0xb2b8]] Mauris in lorem, id tempor elit.
Source
Plain text file;
≤1 utterances
Utterance
Line of data -> \n;
Chars, sentences, ¶, mins
Case identifier
Until another cid is specified
data assigned same case
Section break
Can be multiple in parallel
(e.g., topic, turn-of-talk, pause)
Case attributes
Can be for any class
(e.g., data collection, researcher)
ROCK conventions
Utterance identifier
Unique (date/time-based);
Refer to any line
---
ROCK_attributes:
-
cid: “case_A"
age: "23"
sex: “male"
-
cid: “case_B"
age: “35"
sex: “female"
---
[[cid= case_A]]
[[uid=7q0xb29c]] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[[uid=7q0xb29f]] Maecenas at faucibus justo.
[[uid=7q0xb29g]] Nam facilisis id magna non facilisis. [[CodeD]]
[[uid=7q0xb29j]] Vivamus ullamcorper ligula magna, non blandit imperdiet in. [[CodeD]] [[CodeB]]
[[uid=7q0xb29k]] Sed felis sem, euismod et tincidunt quis, venenatis vel tellus.
[[uid=7q0xb29l]] Fusce non nisl tristique, ultricies augue eget, aliquet nisi.
[[uid=7q0xb29m]] Sed elementum turpis eu tempus tincidunt. [[CodeB]] [[CodeD]]
[[uid=7q0xb29n]] Donec vel quam vel eros elementum ullamcorper non sed velit.
---<<SectionBreak>>---
[[uid=7q0xb29p]] Suspendisse in finibus tortor, vehicula volutpat nulla. [[Parent>Child]]
[[uid=7q0xb29q]] Sed vestibulum, mauris vitae faucibus malesuada, et vehicula nisi nulla eget arcu.
[[uid=7q0xb29r]] Donec nulla elit, cursus in mauris vitae, iaculis finibus ligula. [[CodeA]]
[[uid=7q0xb29s]] Sed sit amet ante elementum, hendrerit mauris id, euismod orci.
[[uid=7q0xb29y]] Praesent tellus felis, consectetur cursus risus ac, tempus sollicitudin lacus.
[[uid=7q0xb2b0]] Duis viverra laoreet purus vitae venenatis. [[intensity||moderate]]
---<<SectionBreak>>---
[[uid=7q0xb2b1]] Ut viverra nulla dolor, consectetur commodo augue fermentum ac.
[[uid=7q0xb2b4]] Nunc tempus vestibulum tortor, vitae sollicitudin nulla ultricies et. [[CodeC]]
[[uid=7q0xb2b8]] Mauris in lorem, id tempor elit. [[originatingCode->receivingCode||edgeType]]
Source
Plain text file;
≤1 utterances
Utterance
Line of data -> \n;
Chars, sentences, ¶, mins
Case identifier
Until another cid is specified
data assigned same case
Section break
Can be multiple in parallel
(e.g., topic, turn-of-talk, pause)
Case attributes
Can be for any class
(e.g., data collection, researcher)
ROCK conventions
Utterance identifier
Unique (date/time-based);
Refer to any line
Coding:
One or more codes appended to an utterance
Flat
No/uniform relationship
[[happy]]
[[sad]]
Hierarchical
Parent – child relationship
[[support>emotional]]
[[support>physical]]
Supported code types
Network
Various types of relationships
[[Whole->Part||structural]]
[[Event01->Event02||temporal]]
Code values
Intensity, frequency, magnitude, etc.
[[age||43]]
[[intensity||moderate]]
[[originatingCode->receivingCode||edgeType]]
The ROCK standard is implemented in:
- the R package {rock}
- a suite of apps
Why employ a standard?
Standard
Software
[[cid= case_A]]
[[uid=7q0xb29c]]
---<<SectionBreak>>---
[[CodeD]]
[[Parent>Child]]
The ROCK standard is implemented in:
- the R package {rock}
- a suite of apps
Why employ a standard?
Standard
Software
[[cid= case_A]]
[[uid=7q0xb29c]]
---<<SectionBreak>>---
[[CodeD]]
[[Parent>Child]]
The R package {rock}
Over 100 functions
(Anno 2019)
Unique identifiers per line
To refer to any line in a dataset
For merging sources (e.g., multiple coders or iterations)
Add UIDs
Merge sources
Multiple coders or iterations
Add UIDs
Merged document with all codes
Merge sources
Inspect coded fragments
With x lines of context
Add UIDs
De- and re-contextualization
Merge sources
Inspect coded fragments
Inspect code tree & attributes
Add UIDs
Merge sources
Inspect coded fragments
Inspect code tree & attributes
Recode functions
Merge
Split
Rename
Add child
Move to another parent
Add UIDs
Parent A
Child
Child
Parent B
Child
Child
Child
Merge sources
Inspect coded fragments
Inspect code tree & attributes
Recode functions
Merge
Split
Rename
Add child
Move to another parent
Add UIDs
Emotional support
Reflecting
Physical support
Financial
Logistical
Practical
Listening
Merge sources
Inspect coded fragments
Inspect code tree & attributes
Recode functions
Merge
Split
Rename
Add child
Move to another parent
Add UIDs
Emotional support
Reflecting
Physical support
Financial
Logistical
Practical
Listening
Merge sources
Inspect coded fragments
Inspect code tree & attributes
Recode functions
Merge
Split
Rename
Add child
Move to another parent
Add UIDs
Emotional support
Listening
Reflecting
Physical support
Financial
Logistical
Practical
Caring
Merge sources
Inspect coded fragments
Inspect code tree & attributes
Recode functions
Merge
Split
Rename
Add child
Move to another parent
Add UIDs
Emotional support
Listening
Reflecting
Physical support
Financial
Logistical
Practical
Caring
Merge sources
Add UIDs
Inspect coded fragments
Inspect code tree & attributes
Recode functions
Visualizations
Case attributes
Segmentation & Data
Codes
Qualitative Data Table
Qualitative/Unified Exploration of State Transitions (QUEST)
Epistemic Network Analysis (ENA)
The ROCK standard is implemented in:
- the R package {rock}
- a suite of apps
Why employ a standard?
Standard
Software
[[cid= case_A]]
[[uid=7q0xb29c]]
---<<SectionBreak>>---
[[CodeD]]
[[Parent>Child]]
Original iROCK
Coding & Segmentation GUIs
Cultivating the FLOSS ecosystem
REFI-QDA
ROCK
Rotterdam Exchange Format Initiative: By 8 proprietary companies; Export to XML format; Open exchange standard; Not human-readable or fully interoperable
{qualchemy}
Cultivating the FLOSS ecosystem
Contextualization of data
Cultivation of FLOSS ecosystem
Machine-readability
Open standard
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Questions (e.g.):
Sample?
Data collection?
RQs?
Concepts?
Research site(s)?
Codebook?
How to contextualize data better?
Dataset attributes
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Concepts
Codebook
Data collection instrument
Retain pluriformity, epistemic diversity
Ensure conceptual clarity
“Beliefs”
“Creative repurposing”
“Democracy”
Interview guide
Field journal template
Observation protocol
Code label (human-readable)
Code ID (machine-readable)
Definition (elaborate)
Examples (from data)
Data provision
Field site(s)
Cases
Attributes
Language
Dataset attributes
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Concepts
Codebook
Data collection instrument
Interview guide
Field journal template
Observation protocol
Code label (human-readable)
Code ID (machine-readable)
Definition (elaborate)
Examples (from data)
Data provision
Field site(s)
Cases
Attributes
Language
Rich metadata
[[uid=7q0xb29c]]
[[CodeD]]
[[Parent>Child]]
[[cid= case_A]]
Retain pluriformity, epistemic diversity
Ensure conceptual clarity
“Beliefs”
“Creative repurposing”
“Democracy”
Partial automation:�Details of data provision
Coding scheme
Case attributes
Dataset attributes
Files
Creators
Abstract
Date
DOI
Categorization
Licensing
Concepts
Codebook
Data collection instrument
Interview guide
Field journal template
Observation protocol
Code label (human-readable)
Code ID (machine-readable)
Definition (elaborate)
Examples (from data)
Data provision
Field site(s)
Cases
Attributes
Language
Rich metadata
Storage
Univocal reference
[[uid=7q0xb29c]]
[[CodeD]]
[[Parent>Child]]
[[cid= case_A]]
Retain pluriformity, epistemic diversity
Ensure conceptual clarity
“Beliefs”
“Creative repurposing”
“Democracy”
Public repository
Codebook
Interview guide
Constructs
Metadata
Dataset attributes
Concepts
Instrument
Codebook
Data provision
Etc.
Rich metadata
Storage
Univocal reference
Rich metadata
Storage
Univocal reference
Codebook
UpcyClin_Codebook_2025_gjt37jk
Interview guide
UpcyClin_IntGuide_2025_pt345sd
Question #5
UpcyClin_GuideQ5_2025_vt6387td
Code: Reorganization
UpcyClin_Code_2025_xv7531rr
“Creative repurposing”
UpcyClin_Concept_2025_gh195iz
Connected Open Machine-readable Meaningful Science (COMMS)
Linked system of community-owned repos with automatic persistent ID generation
The ROCK standard
Cultivation of FLOSS ecosystem
Partial automation of metadata specification
Upcycled Clinic
Rich metadata template providing better contextualization of qualitative datasets
rock.science
www.szilviazorgo.com/fair
Introducing an Interoperability Standard
for Qualitative Data:
The Reproducible Open Coding Kit (ROCK)
Szilvia Zörgő
Oct. 15, 2025
Thank you for your attention!
s.zorgo@maastrichtuniversity.nl