Raw session log. Continues c4; fresh atwl redesign, not a translation.
8 turns (4 user · 4 assistant) json raw log
You have received a document titled Workflow Library: Titles and Summaries. This document contains natural-language summaries of 53 visual analytics workflows drawn from the published research literature. Each summary describes the analytical goal, the workflow structure, and the methodological approach of a specific published workflow. The summaries were extracted from a public workflow library curated by our research group.
Please read the summaries carefully before we proceed. In the next message I will describe a specific visual analytics design task. Your job will be to design an analytical workflow that addresses the task, drawing on the workflows in the library where relevant. The library is a resource — you may consult it to identify workflow structures, analytical strategies, or methodological approaches that could inform your recommendation for the target task. You are not obliged to use the library workflows, and you may combine elements from multiple workflows, adapt them, or design new steps as the task requires.
Please describe your recommended workflow in natural language, in sufficient detail that a research analyst could use it as a design template. Where you draw on specific library workflows, please cite them by name so the analyst can trace the sources of your recommendation.
Before we proceed, could you briefly confirm that you have absorbed the library, and let me know if you have any questions before the task is described? Please reply in English only.
I need to confirm that we’re using English only. Should I mention that there might not be any questions, possibly referring to document 53? It seems like counting isn’t necessary here. I’m leaning towards keeping things concise to aid clarity. Let's ensure everything is straightforward without unnecessary complexity. I want to make sure I’m doing this right to be helpful!
I have absorbed the workflow library and its range of analytical strategies, including temporal, spatial, network, event-sequence, cohort, simulation, embedding, and explainable-ML workflows.
I will use relevant workflows as design references and cite them by name where applicable. I have no questions at this stage; please describe the visual analytics design task.
A public health team in Vastopolis, a metropolitan area of about two million residents, has observed a sharp increase in flu-like illnesses over the past few days, with several deaths believed to be associated with the current outbreak. The team wants to understand where the outbreak started and how the infection is being transmitted (person-to-person, airborne, waterborne, or something else) so that emergency management resources can be deployed appropriately.
The available data consists of: geolocated microblog messages posted from mobile devices over a period of several days, each with a timestamp, GPS coordinates, and text content; a map of the metropolitan area showing highways, hospitals, landmarks, and water bodies; population statistics for 13 city zones; and daily weather observations including wind speed and direction.
The analyst will need to inspect intermediate results visually and use domain knowledge to interpret patterns and make judgements at each stage.
Design an analytical workflow for this problem.
I need to think through different transmission modes. For point sources, there’s a rapid initial spread that might be influenced by water sources and their boundaries, whereas airborne transmission is more about wind and weather affecting how plumes move. Person-to-person spread focuses on crowded areas, but simple connectivity doesn’t prove much.
I should also address bias in hospitals and ensure I’m building strong signals from symptom reports versus confirmed cases, considering temporal onset and geolocation. I’ll outline some data steps for processing this information effectively.
Analyzing transmission and clustering
I’m looking at a significant places approach to identify high-density clusters, particularly focusing on early onset episodes. I want to explore five origin hypotheses to locate the earliest persistent clusters and consider travel constraints that may not accurately represent movement.
For causal transmission hypotheses, I think about creating candidate predictors based on population density, distance to sources, highway access, and water proximity. I'll also look into partition regression and compare different statistical models, using public tweets as a proxy for data.
Clarifying documentation needs
I need to make sure there are no false facts in the library, which seems to have 53, but some are irrelevant. I think the analyst should inspect intermediate results visually, especially highlighting decision gates. I want to write clearly in natural language with headings and maybe a table to organize thoughts. I'll make sure to use titles for citations, and I prefer to bold names for emphasis. It's important for the summary to be concise.
Recommended workflow: outbreak-origin and transmission-hypothesis analysis
Important limitation: microblog data are a proxy for illness and public concern, not confirmed cases. This workflow should identify and rank operational hypotheses for deployment, not claim a definitive epidemiological cause. Confirm findings with clinical surveillance, environmental sampling, and field investigation.
1. Prepare trusted spatiotemporal signals
-
Clean the posts - Remove duplicates, obvious bots, repost cascades, and posts with unreliable coordinates or timestamps. - Retain uncertainty flags for low GPS accuracy, ambiguous text, and potentially automated accounts. - Aggregate data into several spatial resolutions: city zones for population-normalized reporting, plus a fine grid or adaptive hexagons for local hotspot detection. - Use several temporal bins, such as 1-, 3-, and 6-hour intervals, to check that conclusions do not depend on one bin size.
-
Classify message content with analyst review - Create categories such as:
- self-reported flu-like symptoms;
- reports about another ill person;
- death or severe-illness reports;
- healthcare-seeking or hospital mentions;
- concern, news, or misinformation;
- references to locations, events, water, ventilation, or travel.
- Begin with keyword rules and a topic model, then have public-health analysts inspect representative messages and correct misleading terms, sarcasm, news reposts, and non-flu conditions.
- Use the iterative pattern from Human-Steered Topic Modelling: inspect topics and documents, merge or split categories, adjust terms, retrain, and review the changed results.
- Extract named places, landmarks, hospitals, and organizations from text and verify them in context, following the evidence-grounding approach of Jigsaw.
-
Construct outbreak indicators - For each spatial unit and time bin, calculate:
- high-confidence symptom-post count;
- symptom-post rate per population;
- symptom posts as a share of all local posts, to reduce bias from variation in platform activity;
- severe/death-associated post counts, kept separate from symptom counts;
- uncertainty intervals reflecting classification confidence and low message volume.
- Treat hospital mentions primarily as a possible care-seeking/reporting effect, not immediate evidence that hospitals are infection sources.
Visual checkpoint: Show linked maps, temporal heatmaps, zone time series, and sampled original posts. The analyst should confirm that apparent peaks represent plausible illness reports rather than news amplification or a single viral post.
2. Detect the first sustained outbreak locations
-
Map onset and excess activity - Visualize symptom intensity over time as an animated map and space–time cube. - For each cell or zone, estimate its onset time: the first time when symptom activity becomes elevated and remains elevated for a defined duration. - Show both raw counts and normalized rates. Dense central areas may have more posts but not necessarily higher illness prevalence.
-
Identify persistent spatiotemporal clusters - Extract high-confidence symptom events and apply density-based clustering in space and time. - Require a cluster to be persistent across adjacent time bins and supported by multiple independent accounts where possible. - Adapt the logic of From Movement Tracks through Events to Places: identify meaningful event concentrations first, then turn recurring concentrations into candidate outbreak places rather than relying only on predefined city zones.
-
Rank candidate origin areas - Rank clusters by:
- earliest sustained onset;
- intensity after normalization;
- persistence;
- evidence that later hotspots emerge after the candidate;
- robustness across text-classification thresholds and spatial/temporal resolutions.
- Display temporal expansion contours from each candidate area and inspect nearby landmarks, water bodies, highway access, and hospitals.
Decision rule: distinguish the origin of the observed social-media signal from the true infection origin. A hospital-area cluster may be the first visible signal because sick people seek care there, even if transmission began elsewhere.
3. Build explicit competing transmission hypotheses
Create a small set of testable hypotheses rather than searching for one pattern without a comparison baseline.
| Hypothesis | Expected observable pattern | Main visual and analytical tests | Operational implication if supported |
|---|---|---|---|
| Person-to-person spread | Serial local growth; neighboring zones rise after earlier hotspots; spread may follow dense population and major travel corridors | Compare lagged symptom rates among adjacent zones and highway-connected zones; inspect spatial waves and residual maps | Deploy testing, clinical outreach, public messaging, and crowd-reduction measures in expanding hotspot zones |
| Airborne or aerosol transport | New cases occur preferentially downwind of a candidate source; direction changes with wind changes; distance and wind strength matter | Overlay wind vectors and downwind exposure plumes on onset maps; compare upwind and downwind zones at plausible lags | Inspect candidate emission sites, ventilation systems, industrial sites, and enclosed venues; issue targeted exposure guidance |
| Waterborne exposure | Elevated activity near the same water body, catchment, distribution area, or downstream corridor; less dependence on wind or road adjacency | Compare zones by proximity to water bodies and—if available—water-service boundaries; inspect local text references | Collect water samples, inspect treatment and distribution infrastructure, consider targeted boil-water or avoidance guidance |
| Common event or point source | Abrupt, near-simultaneous onset among people associated with one place or event; limited serial spatial progression initially | Inspect landmark/event mentions, early temporal synchrony, and co-occurring place references | Investigate venue, event, food source, workplace, or institution; identify and notify exposed groups |
| Reporting or media artifact | Sharp message volume without corresponding self-reported symptoms, spatial consistency, or persistence | Compare symptom reports with news/concern posts and total posting volume; inspect source accounts | Avoid misallocating emergency resources based on social-media amplification |
4. Test the hypotheses with linked visual models
For each zone and time period, construct explanatory variables:
- prior symptom intensity in the same zone;
- prior intensity in adjacent or highway-connected zones;
- distance from candidate origin locations;
- downwind exposure, using wind direction converted to the direction of air transport;
- wind speed;
- distance to or relationship with water bodies;
- population and total microblog activity;
- proximity to hospitals and landmarks, as potential reporting confounders.
Fit several transparent spatiotemporal models, for example count or rate models with alternative transmission terms:
- Contact-propagation model: local prior rate plus lagged neighboring/highway-connected rates.
- Airborne model: source strength plus downwind alignment, wind speed, distance, and lag.
- Water-exposure model: water proximity or service-area term, adjusted for population and posting activity.
- Mixed model: combines plausible mechanisms, but penalizes unnecessary complexity.
Use the residual-driven process from Partition-based Regression Modelling: - inspect how symptom rates vary against each candidate factor; - fit an initial model; - map and plot its residuals; - add a factor only when residual structure suggests a meaningful unexplained pattern; - compare models using held-out periods or locations, not only in-sample fit.
Use the grouping-and-residual logic of Spatio-temporal Analysis and Modelling to: - cluster zones with similar outbreak trajectories; - map those groups; - determine whether trajectory groups align with wind exposure, water proximity, or road-connected spatial propagation; - inspect whether residual hotspots remain after accounting for each proposed mechanism.
For wind-related claims, compare multiple periods with different wind direction. A genuine airborne pattern should move or strengthen in the new downwind direction. The time–lag calibration concepts from Detecting Stable Cross-Impact Patterns in Bivariate Time Series can help visually inspect whether wind changes consistently precede changes in downwind symptom activity.
Visual checkpoint: For every model, show: - observed versus predicted zone-time rates; - a map of residuals; - uncertainty/confidence intervals; - example messages and locations underlying key anomalies.
A model that predicts well but leaves concentrated residual hotspots is insufficient; those hotspots may reveal another source, a reporting bias, or a mixed transmission mechanism.
5. Investigate candidate sources in detail
For the top-ranked origin candidates:
- Select the earliest local cluster and inspect all associated messages in temporal order.
- Review referenced landmarks, facilities, events, workplaces, water locations, and travel mentions.
- Compare early candidate areas with matched areas that had similar population and posting volume but did not develop high symptom activity.
- Trace later hotspots backward: - Did they arise after nearby hotspots? - Were they downwind at the relevant time? - Do they share a water feature or service boundary? - Are they connected by highways or major mobility corridors?
- Record each judgement, supporting evidence, contradictory evidence, and confidence level.
If user identifiers and multiple posts per user become available, derive anonymized aggregate origin–destination flows. At that point, the spatial- and temporal-aggregation strategy of MobilityGraphs can help assess whether mobility flows plausibly explain the observed zone-to-zone progression. Without user linkage, do not infer person-level movement or contact chains from individual posts.
6. Produce an emergency-management dashboard and update loop
Deliver four linked outputs:
- Current risk map: population-normalized symptom activity, severe-report signal, uncertainty, and emerging hotspots.
- Origin candidates panel: ranked locations with onset time, evidence, contradictory evidence, and sensitivity results.
- Transmission evidence panel: comparative support for person-to-person, airborne, waterborne, point-source, and mixed explanations.
- Resource-priority map: zones prioritized by current intensity, growth rate, vulnerable population count, proximity to hospitals, and uncertainty.
Re-run the workflow as new posts and weather observations arrive. Preserve an analysis log recording text-model changes, thresholds, cluster settings, selected hypotheses, and analyst interpretations.
Essential external data to request immediately
The current data can generate strong leads, but these additional data are needed to validate them:
- de-identified confirmed-case line lists, including symptom onset date and approximate residence or exposure area;
- emergency-department visits, lab test positivity, ambulance calls, and death records;
- water distribution, sewer, treatment, and sampling data;
- higher-resolution wind and air-quality observations;
- major-event, school, workplace, and transit information;
- anonymized aggregate mobility data, if legally and ethically available.
The recommended decision posture is therefore: deploy resources to high-confidence, rapidly growing hotspots immediately; investigate the leading transmission hypotheses in parallel; and update interventions as clinical and environmental evidence confirms or rejects the social-media-derived patterns.
Make a list of papers from which you have taken relevant approaches.
I need to compile a list of papers that discuss relevant approaches from prior workflows. It's important to include correct citations, but I should only name some of them. I’ll highlight relevant ones like Human-Steered Topic Modeling, Jigsaw, Partition-based methods, and Detecting Stable Cross-Impact. There might be others too, but it seems I need to focus on clarity. I'll also consider creating a concise table to illustrate the relationships among these approaches.
The relevant workflow-library papers I drew on were:
| Paper / workflow | Relevant approach used in the recommended outbreak workflow |
|---|---|
| Human-Steered Topic Modelling — Choo et al. (2013), UTOPIAN: User-Driven Topic Modeling Based on Interactive Nonnegative Matrix Factorization | Iteratively classify and refine microblog topics with analyst input; inspect documents, correct misleading terms, merge/split themes, and retrain. |
| Jigsaw: Supporting Investigative Analysis through Interactive Visualization — Stasko et al. (2008) | Extract and validate entities such as places, hospitals, landmarks, organizations, and dates from posts; keep links to original text for evidential inspection. |
| From Movement Tracks through Events to Places — Andrienko et al. (2011) | Identify significant locations through density-based clustering of repeated spatial/temporal events, then analyze their timing and spatial recurrence. Adapted here to symptom-report hotspots rather than movement events. |
| Spatio-temporal Analysis and Modelling — Andrienko & Andrienko (2013) | Aggregate observations into spatial time series; group areas with similar temporal behavior; model temporal patterns; inspect spatial and temporal residuals to refine explanations. |
| Partition-Based Regression Modelling — Mühlbacher & Piringer (2013) | Build interpretable explanatory models incrementally, inspect feature relationships visually, then use residual patterns to identify missing factors or interactions. |
| Detecting Stable Cross-Impact Patterns in Bivariate Time Series — Andrienko et al. (2026) | Examine lagged relationships between a possible driver and later outcomes. Suggested for assessing whether changes in wind conditions consistently precede changes in downwind symptom-report activity. |
| MobilityGraphs: Visual Analysis of Mass Mobility Dynamics via Spatio-Temporal Graphs and Clustering — von Landesberger et al. (2016) | Suggested as an optional extension if anonymized aggregate mobility flows become available, to assess whether mobility between areas explains the apparent progression of outbreak activity. |
These papers informed the workflow structure; the epidemiological transmission hypotheses and validation requirements were designed specifically for the Vastopolis scenario.
Thank you. I am now uploading the ATWL specification and one example workflow expressed in ATWL. Having designed this workflow in natural language, please now design it again using ATWL — not as a translation of what you wrote above, but as a fresh design decision at each point: where ATWL's constructs (loops, specification artifacts, actor designations, assess/generate-knowledge transforms) suggest a better-structured way to organise a step than your original natural-language description did, please use them, even where that means departing substantially from your original phase structure.
Please do not treat fidelity to your original description as a goal in itself. The aim is the best workflow design you can produce in ATWL for this task, informed by having already thought about the problem, not a record of your earlier reasoning.
I need to output ATWL, acknowledging that the input documents are understood, and there’s no need for questions since the task is clear. It's crucial to maintain proper language and syntax while developing a fresh design. I think about creating a workflow with two loops: one for signal validation and content classification, and the other for hypothesis competition. The inputs will involve posts, weather maps, and spatial zones. I’ll ensure the code is clear and follows specifications. It needs to be properly structured and concise.
Designing Post Workflow
I'm considering how to use D_posts with elementary embeds for space and time, including text, coordinates, and timestamps, maybe along with post metadata. For context, I think about D_zones with static regions mapped for population. D_city_features might help with map layers. D_weather observations will also be relevant. I need to iterate processes carefully in my signal curation loop to extract D_health_posts and define outputs carefully, incorporating model updates for better classification. Overall, I want to streamline the content interpretation for clarity and refinement.
Articulating the Review Process
I'm looking at how to articulate the D_review_sample and consider defining it based on human selection and labeling. I need to think about a knowledge structure for K_content_review that supports the labeling process. Human-generated labels can help transform intent into knowledge, and it's possible that I can generate knowledge labels from original posts in a visual loop. I can utilize methods to characterize the classifier and filter to define symptom signals while contextualizing these symptoms on a zone map.
Assessing signal adequacy
I’m considering assessing the base signal's adequacy and whether to ask for conditional data. However, I think we might not need that due to knowledge limitations. Instead, I should focus on formulating something that leads to hypotheses. I need to identify patterns and produce abstract outputs while examining candidate clusters and onset features. It seems essential to track the output of artifact features tied to time zones.
Evaluating assessment strategies
I need to think about cross-validation and sensitivity assessments, focusing on outputs like T_assess for K_mech quality and S config. It’s important to point out that "support does not establish causality" during this assessment. I also want to check if the current evidence is sufficient. If it isn’t, I may generate knowledge on operational priorities, while keeping resource allocation cautious and suggesting field sampling recommendations. Ultimately, I aim to capture any uncertainties.
workflow vastopolis-outbreak-source-and-transmission-analysis
template: build-model (content classification) ->
loop(characterise -> define-unit -> contextualise -> visualise ->
assess -> build-model (refine classification)) ->
define-unit (spatiotemporal aggregation) -> characterise ->
contextualise -> visualise -> abstract -> generate-knowledge ->
characterise (mechanism predictors) -> build-model ->
loop(characterise (model application) -> visualise -> abstract ->
assess -> build-model (refine competing hypotheses)) ->
characterise (deployment priority) -> visualise ->
generate-knowledge
description: "Human-centred outbreak analysis workflow that uses geolocated
microblog posts as uncertain syndromic signals to identify candidate onset
locations, compare plausible transmission mechanisms, and formulate
evidence-qualified emergency-response priorities."
# ============================================================================
# INPUTS AND EXTERNAL KNOWLEDGE
# ============================================================================
artifact D_posts : entities
origin: given
internal structure: elementary
embedment: {space, time}
features:
- id: f_timestamp
value structure: atomic
value type: temporal
description: "Timestamp of the mobile-device post"
- id: f_location
value structure: atomic
value type: spatial
description: "GPS coordinate associated with the post"
- id: f_text
value structure: atomic
value type: text
description: "Microblog message text"
- id: f_account_reference
value structure: atomic
value type: reference
description: "Pseudonymised source-account reference, where available"
description: "Geolocated microblog posts collected during the outbreak period"
artifact D_zones : entities
origin: given
internal structure: region
embedment: space
features:
- id: f_population
value structure: atomic
value type: numeric
description: "Resident population in the city zone"
- id: f_zone_name
value structure: atomic
value type: categorical
description: "Zone identifier or name"
description: "Thirteen metropolitan zones with boundaries and population statistics"
artifact D_city_features : entities
origin: given
internal structure: elementary
embedment: space
features:
- id: f_feature_type
value structure: atomic
value type: categorical
description: "Highway, hospital, landmark, water body, or other mapped feature"
- id: f_geometry
value structure: atomic
value type: spatial
description: "Geographic geometry of the mapped feature"
description: "Reference map features for interpretation of possible transmission routes"
artifact D_weather : entities
origin: given
internal structure: elementary
embedment: time
features:
- id: f_wind_speed
value structure: atomic
value type: numeric
description: "Observed wind speed"
- id: f_wind_direction
value structure: atomic
value type: numeric
description: "Observed wind direction, converted to air-transport direction"
description: "Daily weather observations for the metropolitan area"
artifact K_epidemiology_priors : knowledge(D_posts, D_weather, D_city_features)
origin: given
representation form: "interpretive rules and expectations"
description: "Public-health knowledge describing plausible signatures of
person-to-person, airborne, waterborne, and common-source transmission,
including plausible delay ranges and known reporting biases"
artifact K_signal_limitations : knowledge(D_posts)
origin: given
representation form: "caveats and constraints"
description: "Microblog reports are not confirmed infections; they can reflect
news amplification, concern, care-seeking, duplicated content, unequal
platform use, and inaccurate location or time information"
artifact S_content_initial : specification
origin: given
representation form: "classification configuration"
description: "Initial symptom vocabulary, exclusion terms, confidence threshold,
duplicate and bot filtering rules, language handling, and privacy constraints"
artifact S_aggregation : specification
origin: given
representation form: "aggregation settings"
description: "Candidate temporal resolutions, spatial assignment rules,
population normalisation method, and minimum-support thresholds for
zone-time outbreak indicators"
# ============================================================================
# STEP 1: CREATE AND REFINE A TRUSTED SYNDROMIC SIGNAL
# ============================================================================
transform T_build_content_model :
intent: build-model
manner: "train weakly supervised text classifier"
input: D_posts, K_epidemiology_priors, S_content_initial
output: M_content_classifier_initial
actor: hybrid
description: "Construct an initial classifier that distinguishes likely
self-reported flu-like symptoms, reports about others, severe illness or
death, care-seeking, general concern, news reposting, and irrelevant posts"
artifact M_content_classifier_initial : model(D_posts, K_epidemiology_priors)
model type: "text classification model"
representation form: "hybrid keyword, entity-extraction, and statistical text model"
description: "Initial model assigning health-evidence categories and confidence
scores to microblog posts"
assign:
M_content_classifier := M_content_classifier_initial
S_content := S_content_initial
loop L_signal_refinement:
purpose: "Create a credible, interpretable symptom-report signal before making
spatial or causal inferences"
until: "The analyst judges that retained symptom reports are sufficiently
credible, representative, and distinct from media or concern amplification
for outbreak exploration"
body:
transform T_screen_posts :
intent: characterise
manner: "classify and score health-related text"
input: D_posts, M_content_classifier, S_content
output: F_health_evidence
actor: machine
description: "Assign each post a health-evidence category, symptom severity,
self-report likelihood, geographic and temporal reliability, and
classification confidence"
artifact F_health_evidence : feature(D_posts)
value structure: vector
value type: {categorical, ordinal, numeric}
representation form: "health-evidence category and confidence vector"
description: "Per-post symptom, severity, reporting-role, reliability, and
confidence descriptors"
transform T_select_symptom_signal :
intent: define-unit
manner: "filter high-confidence syndromic reports"
input: D_posts, F_health_evidence, S_content
output: D_symptom_signals
actor: machine
description: "Retain credible, non-duplicated posts indicating flu-like
symptoms or severe illness while preserving confidence and source-diversity
information"
artifact D_symptom_signals : entities
internal structure: elementary
embedment: {space, time}
features:
- id: f_signal_category
value structure: atomic
value type: categorical
description: "Symptom, severe illness, death-associated, or care-seeking signal"
- id: f_confidence
value structure: atomic
value type: numeric
description: "Confidence that the post represents a relevant health signal"
description: "Filtered microblog posts used as uncertain syndromic evidence"
transform T_contextualise_signal :
intent: contextualise
manner: "map-and-time placement"
input: D_symptom_signals, D_zones
output: A_signal_map
actor: machine
description: "Place symptom signals in their geographic zones while retaining
timestamps for temporal filtering and inspection"
artifact A_signal_map : arrangement(D_symptom_signals)
context: D_zones
principle: "GPS coordinate assigned to containing zone; timestamps retained"
description: "Geographic placement of candidate symptom reports in city zones"
transform T_visualise_signal_quality :
intent: visualise
manner: "coordinated evidence inspection"
input: A_signal_map, D_symptom_signals, F_health_evidence, D_city_features
output: V_signal_quality
actor: machine
description: "Show a linked map, timeline, category distributions, confidence
distributions, source diversity indicators, and original post text for review"
artifact V_signal_quality : visualisation(A_signal_map, D_symptom_signals,
F_health_evidence, D_city_features)
layout: "linked metropolitan map, temporal histogram, category panels, and text table"
form: "coloured points, time-series marks, bars, and selectable text records"
encoding: "map position from A_signal_map; colour from signal category;
size or opacity from confidence; linked text shows original evidence"
description: "Interactive display for detecting misclassification, duplicated
news activity, implausible coordinates, and geographically concentrated
reporting artifacts"
transform T_assess_signal_quality :
intent: assess
manner: "evaluate evidence credibility and interpretability"
input: V_signal_quality, D_symptom_signals, K_signal_limitations
output: K_signal_quality, S_content_revised
actor: human
description: "Judge whether the retained signal plausibly represents illness
reports rather than reporting artifacts; identify ambiguous terms,
excluded categories, suspect accounts, and inappropriate thresholds"
artifact K_signal_quality : knowledge(D_symptom_signals, V_signal_quality)
representation form: "quality judgment"
description: "Assessment of whether the symptom-report signal is credible
enough for outbreak analysis and which errors remain important"
artifact S_content_revised : specification
representation form: "revised classification configuration"
description: "Updated vocabulary, exclusions, confidence thresholds, source
filters, and review priorities derived from signal-quality assessment"
if K_signal_quality indicates signal refinement needed:
then:
transform T_refine_content_model :
intent: build-model
manner: "interactive classifier refinement"
input: D_posts, M_content_classifier, K_signal_quality, S_content_revised
output: M_content_classifier_revised
actor: hybrid
description: "Revise the text-classification model using analyst-reviewed
examples, corrected category definitions, and revised filtering rules"
artifact M_content_classifier_revised : model(D_posts, K_signal_quality)
model type: "refined text classification model"
representation form: "updated hybrid keyword, entity-extraction, and statistical model"
description: "Improved health-evidence classifier aligned with reviewed posts"
assign:
M_content_classifier := M_content_classifier_revised
S_content := S_content_revised
else:
exit loop L_signal_refinement
end loop L_signal_refinement
# ============================================================================
# STEP 2: CONSTRUCT POPULATION-AWARE SPATIOTEMPORAL OUTBREAK INDICATORS
# ============================================================================
transform T_define_zone_time_units :
intent: define-unit
manner: "spatiotemporal aggregation"
input: D_symptom_signals, D_zones, D_weather, S_aggregation
output: D_zone_time
actor: machine
description: "Aggregate validated symptom signals into multiple candidate
zone-time units, associating each unit with its population, weather
observation, and supporting message evidence"
artifact D_zone_time : entities
internal structure: episode
embedment: {space, time}
features:
- id: f_zone_reference
value structure: atomic
value type: reference
description: "Reference to the represented city zone"
- id: f_time_interval
value structure: atomic
value type: temporal
description: "Analysis time bin"
- id: f_population
value structure: atomic
value type: numeric
description: "Population of the represented zone"
description: "Zone-time episodes containing symptom-report observations and
matched weather context"
transform T_characterise_outbreak_indicators :
intent: characterise
manner: "population-normalised syndromic summarisation"
input: D_zone_time, D_posts, D_symptom_signals, S_aggregation
output: F_outbreak_indicators
actor: machine
description: "Compute symptom-report count, rate per population, share of local
posting activity, severe-report count, independent-source support, growth rate,
and uncertainty indicators for each zone-time unit"
artifact F_outbreak_indicators : feature(D_zone_time)
value structure: vector
value type: numeric
representation form: "multivariate time series per zone"
description: "Population-aware and platform-activity-aware outbreak indicators,
including uncertainty due to sparse or low-confidence reports"
transform T_create_outbreak_lattice :
intent: contextualise
manner: "space-time lattice construction"
input: D_zone_time, D_zones
output: D_outbreak_lattice, A_outbreak_lattice
actor: machine
description: "Create a map-time reference lattice with a position for every
zone and analysis interval, including intervals with low or no signal"
artifact D_outbreak_lattice : entities
internal structure: elementary
embedment: {space, time}
features:
- id: f_zone_reference
value structure: atomic
value type: reference
description: "Zone represented by the lattice position"
- id: f_time_interval
value structure: atomic
value type: temporal
description: "Time interval represented by the lattice position"
description: "Complete zone-by-time context for comparing outbreak evolution"
artifact A_outbreak_lattice : arrangement(D_zone_time)
context: D_outbreak_lattice
principle: "zone identity and time interval"
description: "Placement of each aggregated outbreak unit in the corresponding
zone-time lattice position"
transform T_visualise_outbreak_evolution :
intent: visualise
manner: "linked animated map and temporal profile display"
input: A_outbreak_lattice, F_outbreak_indicators, D_city_features
output: V_outbreak_evolution
actor: machine
description: "Display outbreak intensity, uncertainty, and growth through time
on a metropolitan map, linked to zone-rate trajectories and severe-report views"
artifact V_outbreak_evolution : visualisation(A_outbreak_lattice,
F_outbreak_indicators, D_city_features)
layout: "animated metropolitan map linked to aligned zone time series"
form: "coloured zone marks, uncertainty overlays, lines, and event markers"
encoding: "zone-time position from A_outbreak_lattice; colour from symptom rate;
saturation from uncertainty; lines show rate and growth; map overlays show
hospitals, highways, landmarks, and water bodies"
description: "Visual basis for distinguishing early sustained activity from
isolated posts, high population density, and care-seeking concentration"
# ============================================================================
# STEP 3: IDENTIFY CANDIDATE ONSET LOCATIONS AND FORMULATE TESTABLE HYPOTHESES
# ============================================================================
transform T_identify_onset_patterns :
intent: abstract
manner: "find persistent spatiotemporal clusters and onset order"
input: D_zone_time, F_outbreak_indicators, V_outbreak_evolution
output: P_outbreak_patterns, F_onset_characteristics
actor: hybrid
description: "Identify sustained excess-activity clusters, their onset order,
persistence, spatial expansion, and sensitivity to aggregation resolution"
artifact P_outbreak_patterns : pattern(D_zone_time, F_outbreak_indicators)
representation form: "ranked spatiotemporal cluster descriptions"
description: "Candidate outbreak clusters characterised by onset time,
persistence, intensity, spatial extent, and apparent expansion direction"
artifact F_onset_characteristics : feature(D_zone_time)
value structure: vector
value type: {temporal, numeric, ordinal}
description: "Onset time, persistence score, local excess score, and
candidate-origin ranking components for each zone-time unit"
transform T_formulate_hypotheses :
intent: generate-knowledge
manner: "formulate competing epidemiological hypotheses"
input: P_outbreak_patterns, F_onset_characteristics, V_outbreak_evolution,
K_epidemiology_priors, K_signal_limitations
output: K_candidate_origins, S_hypotheses_initial
actor: human
description: "Interpret early sustained clusters as candidate observed-signal
origins, distinguish them from likely infection sources, and define competing
person-to-person, airborne, waterborne, common-source, reporting-artifact,
and mixed-mechanism hypotheses"
artifact K_candidate_origins : knowledge(P_outbreak_patterns,
F_onset_characteristics, V_outbreak_evolution)
representation form: "ranked evidence statements"
description: "Ranked candidate origin areas with supporting and contradictory
evidence; explicitly distinguishes earliest observed reporting signal from
a confirmed epidemiological source"
artifact S_hypotheses_initial : specification
representation form: "competing-model configuration"
description: "Candidate sources, plausible time lags, spatial scales, exposure
definitions, confounder controls, model comparison criteria, and sensitivity
scenarios for competing transmission hypotheses"
assign:
S_hypotheses := S_hypotheses_initial
# ============================================================================
# STEP 4: COMPARE TRANSMISSION EXPLANATIONS THROUGH MODEL AND RESIDUAL ANALYSIS
# ============================================================================
transform T_characterise_mechanism_predictors :
intent: characterise
manner: "derive spatiotemporal exposure and connectivity predictors"
input: D_zone_time, D_weather, D_zones, D_city_features, K_candidate_origins,
S_hypotheses
output: F_mechanism_predictors
actor: machine
description: "Compute lagged local and neighbouring symptom activity,
highway-connected exposure, candidate-source distance, downwind alignment,
wind speed, water proximity, population, hospital proximity, and local
posting-activity controls"
artifact F_mechanism_predictors : feature(D_zone_time)
value structure: vector
value type: numeric
representation form: "lagged spatial-exposure predictor vector"
description: "Predictors representing contact propagation, wind-related
transport, water-related exposure, common-source timing, and reporting
confounders for each zone-time unit"
transform T_build_mechanism_models :
intent: build-model
manner: "fit competing explanatory spatiotemporal models"
input: D_zone_time, F_outbreak_indicators, F_mechanism_predictors,
S_hypotheses
output: M_mechanism_models_initial
actor: machine
description: "Fit comparable models for contact propagation, airborne transport,
water-associated exposure, common-source exposure, reporting artifact, and
selected mixed mechanisms, using held-out periods or locations where possible"
artifact M_mechanism_models_initial : model(F_outbreak_indicators,
F_mechanism_predictors)
model type: "competing spatiotemporal count and rate models"
representation form: "set of regularised lagged regression models with uncertainty estimates"
description: "Alternative explanatory models predicting syndromic outbreak
indicators under different transmission mechanisms"
assign:
M_mechanism_models := M_mechanism_models_initial
loop L_mechanism_evaluation:
purpose: "Test whether proposed transmission mechanisms explain observed
outbreak spread robustly enough to guide emergency action"
until: "Leading explanations are interpretable, robust across reasonable
sensitivity settings, and their remaining uncertainty is explicit"
body:
transform T_apply_mechanism_models :
intent: characterise
manner: "predict, compare, and calculate residuals"
input: D_zone_time, F_outbreak_indicators, F_mechanism_predictors,
M_mechanism_models
output: F_mechanism_results
actor: machine
description: "Generate predictions, residuals, uncertainty estimates,
held-out performance measures, and comparative evidence scores for
each transmission hypothesis"
artifact F_mechanism_results : feature(D_zone_time)
value structure: vector
value type: numeric
representation form: "per-hypothesis predictions, residuals, and uncertainty"
description: "Observed-versus-predicted outbreak indicators and local
unexplained activity for each competing mechanism"
transform T_visualise_mechanism_evidence :
intent: visualise
manner: "comparative model and residual display"
input: A_outbreak_lattice, F_outbreak_indicators, F_mechanism_predictors,
F_mechanism_results, D_city_features, D_weather
output: V_mechanism_evidence
actor: machine
description: "Show linked maps of observed activity, predictions, and
residuals; downwind and water-exposure overlays; lag plots; and
held-out model-comparison summaries"
artifact V_mechanism_evidence : visualisation(A_outbreak_lattice,
F_outbreak_indicators, F_mechanism_predictors, F_mechanism_results,
D_city_features, D_weather)
layout: "coordinated map-time views, residual maps, lag plots, and model score panels"
form: "coloured zone marks, wind vectors, exposure overlays, lines, and bars"
encoding: "map and time positions from A_outbreak_lattice; colour shows
observed rate, predicted rate, or residual; arrows show wind transport;
panels compare model performance and uncertainty"
description: "Interactive evidence display for checking whether spatial and
temporal patterns support a transmission mechanism rather than a
coincidental association"
transform T_abstract_mechanism_patterns :
intent: abstract
manner: "interpret explanatory and residual structures"
input: V_mechanism_evidence, F_mechanism_results, K_epidemiology_priors
output: P_mechanism_patterns
actor: hybrid
description: "Identify patterns such as serial local propagation,
repeatable downwind association, shared water-body association,
near-simultaneous point-source onset, or persistent unexplained residuals"
artifact P_mechanism_patterns : pattern(F_mechanism_results,
V_mechanism_evidence)
representation form: "mechanism-evidence descriptions"
description: "Observed explanatory structures and residual anomalies relevant
to the competing transmission hypotheses"
transform T_assess_mechanism_evidence :
intent: assess
manner: "evaluate robustness, confounding, and actionability"
input: M_mechanism_models, F_mechanism_results, P_mechanism_patterns,
V_mechanism_evidence, K_signal_limitations
output: K_mechanism_quality, S_hypotheses_revised
actor: hybrid
description: "Assess predictive performance, residual structure, sensitivity
to time and spatial resolution, plausibility of lag assumptions, reporting
confounding, and whether model evidence is adequate for operational use"
artifact K_mechanism_quality : knowledge(M_mechanism_models,
F_mechanism_results, P_mechanism_patterns)
representation form: "quality judgment and uncertainty assessment"
description: "Assessment of which explanations are supported, weak, or
indistinguishable; whether candidate sources or model assumptions require
revision; and whether social-media evidence can support the intended action"
artifact S_hypotheses_revised : specification
representation form: "revised competing-model configuration"
description: "Updated candidate-source set, lag windows, controls, spatial
scale, exposure definitions, and model-selection choices based on
robustness and residual assessment"
if K_mechanism_quality indicates hypothesis or model revision needed:
then:
transform T_refine_mechanism_models :
intent: build-model
manner: "refit revised competing explanatory models"
input: D_zone_time, F_outbreak_indicators, F_mechanism_predictors,
M_mechanism_models, K_mechanism_quality, S_hypotheses_revised
output: M_mechanism_models_revised
actor: hybrid
description: "Refit or replace competing models after revising candidate
sources, lag assumptions, controls, or included mechanisms"
artifact M_mechanism_models_revised : model(F_outbreak_indicators,
F_mechanism_predictors)
model type: "refined competing spatiotemporal models"
representation form: "revised regularised lagged regression model set"
description: "Updated competing models designed to address identified
confounding, residual anomalies, or hypothesis deficiencies"
assign:
S_hypotheses := S_hypotheses_revised
M_mechanism_models := M_mechanism_models_revised
else:
exit loop L_mechanism_evaluation
end loop L_mechanism_evaluation
# ============================================================================
# STEP 5: TURN EVIDENCE INTO QUALIFIED EMERGENCY-RESPONSE PRIORITIES
# ============================================================================
transform T_characterise_deployment_priority :
intent: characterise
manner: "risk and uncertainty prioritisation"
input: D_zone_time, F_outbreak_indicators, F_onset_characteristics,
F_mechanism_results, K_mechanism_quality, D_zones, D_city_features
output: F_deployment_priority
actor: hybrid
description: "Calculate zone-time deployment priorities using current outbreak
intensity, growth, severe-report signal, population exposure, hospital context,
model-supported spread risk, unexplained residual risk, and uncertainty"
artifact F_deployment_priority : feature(D_zone_time)
value structure: vector
value type: {numeric, ordinal}
representation form: "priority score with contributing factors"
description: "Emergency-response priority, confidence, and rationale for each
zone-time unit; uncertainty increases the priority for surveillance and
validation rather than implying a confirmed mechanism"
transform T_visualise_decision_support :
intent: visualise
manner: "operational dashboard"
input: A_outbreak_lattice, F_outbreak_indicators, F_mechanism_results,
F_deployment_priority, K_candidate_origins, D_city_features
output: V_decision_support
actor: machine
description: "Provide an operational map of current hotspots, growth, candidate
sources, mechanism evidence, uncertainty, and recommended investigation areas"
artifact V_decision_support : visualisation(A_outbreak_lattice,
F_outbreak_indicators, F_mechanism_results, F_deployment_priority,
K_candidate_origins, D_city_features)
layout: "linked current-risk map, temporal trend panel, source ranking, and evidence panel"
form: "priority-coloured zones, uncertainty hatching, trend lines, and ranked annotations"
encoding: "zone-time placement from A_outbreak_lattice; colour from deployment
priority; hatching from uncertainty; annotations identify candidate origins
and leading supported mechanisms"
description: "Decision-support display for assigning surveillance, clinical,
environmental-investigation, and communication resources"
transform T_formulate_operational_findings :
intent: generate-knowledge
manner: "formulate evidence-qualified recommendations"
input: K_candidate_origins, P_mechanism_patterns, K_mechanism_quality,
F_deployment_priority, V_decision_support, K_signal_limitations
output: K_operational_findings
actor: human
description: "State leading origin and transmission hypotheses with confidence
and contradictory evidence; rank deployment zones; and specify confirmatory
actions such as clinical surveillance, environmental sampling, facility
inspection, and targeted public communication"
artifact K_operational_findings : knowledge(K_candidate_origins,
P_mechanism_patterns, K_mechanism_quality, F_deployment_priority)
representation form: "ranked recommendations with evidence and uncertainty"
description: "Emergency-management recommendations that distinguish immediate
hotspot response from mechanism-specific investigation, explicitly avoid
treating microblog evidence as confirmation of outbreak origin or cause"