Updated the bicorder to permit a shortform based on analysis

This commit is contained in:
Nathan Schneider
2025-11-25 13:15:41 -05:00
parent 7be67c9eb5
commit 3a55d3dbb9
2 changed files with 58 additions and 40 deletions

View File

@@ -14,6 +14,8 @@ The bicorder consists of three components:
* `diagnostic` composed of sets of gradients that measure the analyst's interpretation of the protocol * `diagnostic` composed of sets of gradients that measure the analyst's interpretation of the protocol
* `analysis` that interprets the diagnostic data * `analysis` that interprets the diagnostic data
A `shortform` option is available for a version of the bicorder that uses a smaller number of gradients. These are the gradients that, according to the [`analysis/`](analysis/), are the most salient and predictive of the values of other gradients.
### Metadata ### Metadata
There are several pieces of information that provide metadata about a given reading with the bicorder. More details about the data formats for each input are provided in `bicorder.schema.json`. There are several pieces of information that provide metadata about a given reading with the bicorder. More details about the data formats for each input are provided in `bicorder.schema.json`.
@@ -22,6 +24,7 @@ There are several pieces of information that provide metadata about a given read
* `analyst`: Name or other identifier of the analyst conducting the diagnostic * `analyst`: Name or other identifier of the analyst conducting the diagnostic
* `standpoint`: Describe, even at some length, the relationship between the analyst and the protocol, including any relevant context that could affect the diagnostic readings * `standpoint`: Describe, even at some length, the relationship between the analyst and the protocol, including any relevant context that could affect the diagnostic readings
* `timestamp`: A timestamp for when the reading occurred * `timestamp`: A timestamp for when the reading occurred
* `shortform`: Indicates whether the diagnostic was conducted using the abbreviated list of gradients
### Diagnostic ### Diagnostic
@@ -29,7 +32,11 @@ To carry out the diagnostic, the analyst should consider the protocol from the p
This is inevitably an interpretive exercise, but do your best to identify the most accurate `value`, with `1` being closest to `term_left` and `9` being closest to `term_right`. This is inevitably an interpretive exercise, but do your best to identify the most accurate `value`, with `1` being closest to `term_left` and `9` being closest to `term_right`.
Choosing a `value` in the middle, such as `5`, can mean "a bit of both" or "neither." Choosing a `value` in the middle, such as `5`, can mean "a bit of both." Leaving the gradient `value` as `null` means "not applicable."
There is a `notes` field for the analyst to add additional context or explanation.
The `shortform` boolean indicates whether this gradient is included in the abbreviated version of the bicorder.
### Analysis ### Analysis
@@ -72,11 +79,7 @@ To mark a gradient in a particular place, it is represented with a `#` like this
### Human-usable web app ### Human-usable web app
* Create an online tool for reporting a protocol A progressive web app (PWA) for using the bicorder is located in [`bicorder-app/`](bicorder-app).
- Web app for fun that can be used with a mobile phone
- Include tooltips for descriptions
- Auto-analyze
- Enable it to produce a JSON printout
## Synthetic data analysis ## Synthetic data analysis
@@ -87,15 +90,6 @@ See [`analysis/`](analysis/) for complete documentation and materials.
<!--- <!---
## To do
* Try data analysis
* Continue iterating on the bicorder design
* Develop the web app in a way that is tightly bound to the canonical JSON and schema
* Fill out citations
* Create script to output a book-friendly chart, utilizing ascii_bicorder but also adding descriptions and footnoted citations
* Deploy to git.medlab.host
### Gradient citations ### Gradient citations
- implicit / explicit - implicit / explicit

View File

@@ -1,7 +1,7 @@
{ {
"name": "Protocol Bicorder", "name": "Protocol Bicorder",
"schema": "bicorder.schema.json", "schema": "bicorder.schema.json",
"version": "1.1.0", "version": "1.2.0",
"description": "A diagnostic tool for the study of protocols", "description": "A diagnostic tool for the study of protocols",
"author": "Nathan Schneider", "author": "Nathan Schneider",
"date_modified": "2025-11-21", "date_modified": "2025-11-21",
@@ -10,7 +10,8 @@
"protocol": null, "protocol": null,
"analyst": null, "analyst": null,
"standpoint": null, "standpoint": null,
"timestamp": null "timestamp": null,
"shortform": false
}, },
"diagnostic": [ "diagnostic": [
@@ -24,7 +25,8 @@
"term_right": "implicit", "term_right": "implicit",
"term_right_description": "The design is not stated explicitly but is learned by participants in another way", "term_right_description": "The design is not stated explicitly but is learned by participants in another way",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "precise", "term_left": "precise",
@@ -32,7 +34,8 @@
"term_right": "interpretive", "term_right": "interpretive",
"term_right_description": "The design is ambiguous, allowing participants a wide range of interpretation", "term_right_description": "The design is ambiguous, allowing participants a wide range of interpretation",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "institutional", "term_left": "institutional",
@@ -40,7 +43,8 @@
"term_right": "vernacular", "term_right": "vernacular",
"term_right_description": "Design occurs through evolving, peer-to-peer community interactions in order to suit participant-defined goals", "term_right_description": "Design occurs through evolving, peer-to-peer community interactions in order to suit participant-defined goals",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "documenting", "term_left": "documenting",
@@ -48,7 +52,8 @@
"term_right": "enabling", "term_right": "enabling",
"term_right_description": "The primary purpose is to enable activity that might not happen otherwise", "term_right_description": "The primary purpose is to enable activity that might not happen otherwise",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "static", "term_left": "static",
@@ -56,7 +61,8 @@
"term_right": "malleable", "term_right": "malleable",
"term_right_description": "Designed to be changed by participants according to evolving needs", "term_right_description": "Designed to be changed by participants according to evolving needs",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "technical", "term_left": "technical",
@@ -64,7 +70,8 @@
"term_right": "social", "term_right": "social",
"term_right_description": "Primarily concerned with interactions among people or groups", "term_right_description": "Primarily concerned with interactions among people or groups",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "universal", "term_left": "universal",
@@ -72,7 +79,8 @@
"term_right": "particular", "term_right": "particular",
"term_right_description": "Addressed to a specific community", "term_right_description": "Addressed to a specific community",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "durable", "term_left": "durable",
@@ -80,7 +88,8 @@
"term_right": "ephemeral", "term_right": "ephemeral",
"term_right_description": "Designed to vanish when no longer needed", "term_right_description": "Designed to vanish when no longer needed",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
} }
] ]
}, },
@@ -94,7 +103,8 @@
"term_right": "micro", "term_right": "micro",
"term_right_description": "Operates at small scales with few participants or narrow scope", "term_right_description": "Operates at small scales with few participants or narrow scope",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "sovereign", "term_left": "sovereign",
@@ -102,7 +112,8 @@
"term_right": "subsidiary", "term_right": "subsidiary",
"term_right_description": "An operating logic under the control of a particular entity", "term_right_description": "An operating logic under the control of a particular entity",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "self-enforcing", "term_left": "self-enforcing",
@@ -110,7 +121,8 @@
"term_right": "enforced", "term_right": "enforced",
"term_right_description": "Rules require external enforcement by authorities or institutions", "term_right_description": "Rules require external enforcement by authorities or institutions",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "abstract", "term_left": "abstract",
@@ -118,7 +130,8 @@
"term_right": "embodied", "term_right": "embodied",
"term_right_description": "Participants learn the protocol by physically practicing it", "term_right_description": "Participants learn the protocol by physically practicing it",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "obligatory", "term_left": "obligatory",
@@ -126,7 +139,8 @@
"term_right": "voluntary", "term_right": "voluntary",
"term_right_description": "Participation in the protocol is optional and not coerced", "term_right_description": "Participation in the protocol is optional and not coerced",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "flocking", "term_left": "flocking",
@@ -134,7 +148,8 @@
"term_right": "swarming", "term_right": "swarming",
"term_right_description": "Coordination occurs through distributed interactions without central direction", "term_right_description": "Coordination occurs through distributed interactions without central direction",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "defensible", "term_left": "defensible",
@@ -142,7 +157,8 @@
"term_right": "exposed", "term_right": "exposed",
"term_right_description": "Weak boundaries and vulnerable to external influence", "term_right_description": "Weak boundaries and vulnerable to external influence",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "exclusive", "term_left": "exclusive",
@@ -150,7 +166,8 @@
"term_right": "non-exclusive", "term_right": "non-exclusive",
"term_right_description": "Does not exclude the use of any other protocols", "term_right_description": "Does not exclude the use of any other protocols",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
} }
] ]
}, },
@@ -164,7 +181,8 @@
"term_right": "insufficient", "term_right": "insufficient",
"term_right_description": "Does not, on its own, adequately meet the needs and goals of participants", "term_right_description": "Does not, on its own, adequately meet the needs and goals of participants",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "crystallized", "term_left": "crystallized",
@@ -172,7 +190,8 @@
"term_right": "contested", "term_right": "contested",
"term_right_description": "Content and meaning are disputed or under debate", "term_right_description": "Content and meaning are disputed or under debate",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "trust-evading", "term_left": "trust-evading",
@@ -180,7 +199,8 @@
"term_right": "trust-inducing", "term_right": "trust-inducing",
"term_right_description": "Relies on or cultivates trust among participants", "term_right_description": "Relies on or cultivates trust among participants",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "predictable", "term_left": "predictable",
@@ -188,7 +208,8 @@
"term_right": "emergent", "term_right": "emergent",
"term_right_description": "Produces unexpected or novel outcomes", "term_right_description": "Produces unexpected or novel outcomes",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "exclusion", "term_left": "exclusion",
@@ -196,7 +217,8 @@
"term_right": "inclusion", "term_right": "inclusion",
"term_right_description": "The protocol reduces barriers and includes diverse participants", "term_right_description": "The protocol reduces barriers and includes diverse participants",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": true
}, },
{ {
"term_left": "Kafka", "term_left": "Kafka",
@@ -204,7 +226,8 @@
"term_right": "Whitehead", "term_right": "Whitehead",
"term_right_description": "Enables participants to carry out desired activities with less work or thought", "term_right_description": "Enables participants to carry out desired activities with less work or thought",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
}, },
{ {
"term_left": "dead", "term_left": "dead",
@@ -212,7 +235,8 @@
"term_right": "alive", "term_right": "alive",
"term_right_description": "Actively utilized by relevant participants", "term_right_description": "Actively utilized by relevant participants",
"value": null, "value": null,
"notes": null "notes": null,
"shortform": false
} }
] ]
} }