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
* `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
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
* `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
* `shortform`: Indicates whether the diagnostic was conducted using the abbreviated list of gradients
### 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`.
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
@@ -72,11 +79,7 @@ To mark a gradient in a particular place, it is represented with a `#` like this
### Human-usable web app
* Create an online tool for reporting a protocol
- 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
A progressive web app (PWA) for using the bicorder is located in [`bicorder-app/`](bicorder-app).
## 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
- implicit / explicit

View File

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