C7
Designed by GPT-5.6-Terra. Fresh ATWL redesign from the model's own C4 prose design (continuing that chat), explicitly not a translation. ↓ download raw .atwl
Workflow header & template
workflow dynamic-vis-community-analysis
template: loop(define-unit → assess) →
loop(define-unit (time-windowing) → define-unit (network construction) →
characterise → build-model → define-unit (overlapping communities) →
characterise → define-unit (community corpora) → build-model →
characterise → contextualise → visualise → abstract → assess) →
define-unit (community lineages) → characterise → abstract →
visualise →
loop(define-unit (event selection) → visualise →
generate-knowledge → assess) →
generate-knowledge
description: "Human-in-the-loop workflow for identifying, validating, and
interpreting evolving overlapping research communities in IEEE VIS
co-authorship data, including stable cores, leaders, topical foci,
membership overlap, and lineage events."
Inputs And Initial Analytic Control
artifact D_papers_raw : entities
origin: given
internal structure: elementary
embedment: time
features:
- id: f_paper_id
value structure: atomic
value type: reference
description: "Unique paper record identifier"
- id: f_year
value structure: atomic
value type: temporal
description: "Publication year, 1990--2024"
- id: f_venue
value structure: atomic
value type: categorical
description: "VIS, InfoVis, VAST, or SciVis venue"
- id: f_authors
value structure: list
value type: reference
description: "DBLP-disambiguated author identifiers, retaining raw names"
- id: f_title_abstract_keywords
value structure: vector
value type: text
description: "Paper title, abstract, and author keywords"
- id: f_citation_count
value structure: atomic
value type: numeric
description: "Available citation count for the paper"
description: "IEEE VIS-family paper records containing authorship, bibliographic,
textual, and citation information."
artifact K_research_questions : knowledge(D_papers_raw)
origin: given
representation form: "analytic questions and interpretation criteria"
description: "Questions concerning the number, stability, leadership,
topical foci, overlap, and merge/split/dissolution history of
collaboration communities."
artifact S_curation : specification
origin: given
representation form: "data-quality rules"
description: "Rules for duplicate-paper handling, DBLP identifier checks,
author-list validation, missing-text treatment, and retention of raw
author strings for inspection."
artifact S_analysis_design_initial : specification
origin: given
representation form: "configuration schema"
description: "Initial choices for rolling temporal-window width and stride,
fractional co-authorship weighting, weak-tie treatment, overlapping
community method and resolution range, temporal smoothing, robustness
tests, topic-model configuration, and event-matching thresholds."
artifact S_event_review_initial : specification
origin: given
representation form: "review priorities"
description: "Criteria for selecting lineage events for detailed review,
prioritising high-impact, structurally uncertain, or topically important
merges, splits, reorientations, and dissolutions."
assign:
D_papers_current := D_papers_raw
S_analysis_design := S_analysis_design_initial
S_event_review := S_event_review_initial
Data Curation Loop
loop L_data_curation:
purpose: "Create an auditable paper corpus with reliable author identities
and usable textual metadata."
until: "Paper records, author identities, and retained text are adequate
for longitudinal collaboration and topic analysis."
body:
transform T_curate_papers :
intent: define-unit
manner: "validate, deduplicate, and normalise publication records"
input: D_papers_current, S_curation
output: D_papers_curated
actor: hybrid
description: "Resolve duplicate or incomplete records; validate DBLP
author identifiers against raw names; retain provenance for exclusions;
and normalise textual fields without removing meaningful domain terms."
artifact D_papers_curated : entities
internal structure: elementary
embedment: time
features:
- id: f_author_ids
value structure: list
value type: reference
description: "Validated DBLP author identifiers"
- id: f_text
value structure: vector
value type: text
description: "Cleaned title, abstract, and keyword text"
- id: f_venue
value structure: atomic
value type: categorical
description: "Publication venue"
- id: f_citation_count
value structure: atomic
value type: numeric
description: "Citation count retained for impact summaries"
description: "Curated VIS-family papers suitable for collaboration,
topical, and temporal analysis."
transform T_assess_curation :
intent: assess
manner: "audit data completeness and identity reliability"
input: D_papers_curated, S_curation, K_research_questions
output: K_curation_quality
actor: hybrid
description: "Inspect missing metadata, anomalous author teams,
suspicious name--identifier mappings, and venue/year coverage."
artifact K_curation_quality : knowledge(D_papers_curated)
representation form: "quality judgment"
description: "Assessment of whether the curated corpus is sufficiently
complete, identity-consistent, and temporally representative."
assign:
D_papers_current := D_papers_curated
if K_curation_quality indicates unresolved data problems:
then:
continue
else:
exit loop L_data_curation
end loop L_data_curation
Community Discovery, Topic Characterisation, And Design-Refinement Loop
loop L_community_design:
purpose: "Develop a robust and interpretable representation of evolving,
overlapping collaboration communities and their research foci."
until: "Community structure is robust across reasonable alternatives,
temporally coherent, topically interpretable, and adequate for the
research questions."
body:
transform T_define_time_windows :
intent: define-unit
manner: "overlapping rolling time-window partitioning"
input: D_papers_current, S_analysis_design
output: D_time_windows
actor: hybrid
description: "Create annual and rolling analysis windows according to
the current design, allowing the analyst to balance temporal detail
against community stability."
artifact D_time_windows : entities
internal structure: elementary
embedment: time
features:
- id: f_window_extent
value structure: atomic
value type: temporal
description: "Start year, end year, and duration of each window"
description: "Temporally ordered publication windows used to construct
dynamic collaboration networks."
transform T_construct_collaboration_networks :
intent: define-unit
manner: "author aggregation and time-windowed co-authorship construction"
input: D_papers_current, D_time_windows, S_analysis_design
output: D_author_windows, D_collaboration_networks
actor: machine
description: "Create author-by-window analysis units and one weighted
co-authorship network per time window; retain links to contributing
papers and apply fractional contribution rules for multi-author papers."
artifact D_author_windows : entities
internal structure: elementary
embedment: {set, time}
features:
- id: f_author_id
value structure: atomic
value type: reference
description: "DBLP author identifier"
- id: f_window_id
value structure: atomic
value type: reference
description: "Temporal window identifier"
- id: f_contributing_papers
value structure: list
value type: reference
description: "Papers written by the author in this window"
description: "Author presences indexed by researcher and analysis window."
artifact D_collaboration_networks : entities
internal structure: formation
embedment: time
features:
- id: f_window_id
value structure: atomic
value type: reference
description: "Temporal window represented by the network snapshot"
description: "Time-indexed weighted co-authorship network snapshots."
transform T_characterise_collaboration :
intent: characterise
manner: "compute weighted network and author-activity descriptors"
input: D_collaboration_networks, D_author_windows, D_papers_current,
S_analysis_design
output: F_collaboration_relations, F_author_activity
actor: machine
description: "Compute fractional co-authorship weights, repeated-tie
statistics, publication and citation summaries, local connectivity,
and brokerage descriptors."
artifact F_collaboration_relations : feature(D_collaboration_networks)
value structure: relational configuration
value type: numeric
representation form: "weighted undirected co-authorship graphs"
description: "Collaboration edges and weights for every temporal network."
artifact F_author_activity : feature(D_author_windows)
value structure: vector
value type: numeric
description: "Publication volume, citation summary, collaboration strength,
repeated-collaborator count, and network-centrality descriptors."
transform T_fit_community_model :
intent: build-model
manner: "fit dynamic overlapping community model"
input: D_collaboration_networks, F_collaboration_relations,
F_author_activity, S_analysis_design
output: M_community_model
actor: machine
description: "Fit an overlapping, temporally regularised community model
at the selected resolution; estimate probabilistic or weighted
membership rather than forcing each author into one community."
artifact M_community_model : model(D_collaboration_networks,
F_collaboration_relations)
model type: "dynamic overlapping community model"
representation form: "time-indexed membership-weight matrices and
community-interaction parameters"
description: "Model of evolving co-authorship communities with
multi-community author affiliation."
transform T_define_candidate_communities :
intent: define-unit
manner: "extract overlapping communities from membership model"
input: D_author_windows, M_community_model, S_analysis_design
output: D_candidate_communities, F_author_membership
actor: machine
description: "Create candidate community instances for each time window
and assign each author-window a membership weight in zero, one, or
multiple communities."
artifact D_candidate_communities : entities
internal structure: group/cluster
embedment: time
features:
- id: f_window_id
value structure: atomic
value type: reference
description: "Window in which the community instance is active"
- id: f_members
value structure: list
value type: reference
description: "Author-window members with non-zero affiliation"
description: "Candidate overlapping collaboration communities in each
temporal window."
artifact F_author_membership : feature(D_author_windows)
value structure: matrix
value type: numeric
representation form: "author-window by community membership-weight matrix"
description: "Weighted affiliations supporting simultaneous membership
in multiple communities."
transform T_characterise_candidate_evolution :
intent: characterise
manner: "match adjacent communities by core, membership, and topical proxy"
input: D_candidate_communities, F_author_membership,
F_collaboration_relations, S_analysis_design
output: F_candidate_lineage
actor: machine
description: "Estimate candidate continuation links between communities
in adjacent windows, giving greater weight to persistent high-membership
authors than to transient peripheral members."
artifact F_candidate_lineage : feature(D_candidate_communities)
value structure: relational configuration
value type: numeric
representation form: "directed weighted links between adjacent time windows"
description: "Candidate predecessor--successor relations among community
instances."
transform T_define_community_corpora :
intent: define-unit
manner: "fractional paper allocation by community membership"
input: D_papers_current, D_candidate_communities, F_author_membership,
S_analysis_design
output: D_community_corpora
actor: machine
description: "Create a document corpus for each community-window pair.
Papers with authors spanning multiple communities are fractionally
represented while retaining links to their complete author teams."
artifact D_community_corpora : entities
internal structure: group/cluster
embedment: time
features:
- id: f_papers
value structure: list
value type: reference
description: "Papers contributing to the community corpus"
- id: f_fractional_contribution
value structure: vector
value type: numeric
description: "Community-specific paper contribution weights"
description: "Time-indexed weighted paper corpora associated with
candidate communities."
transform T_fit_topic_model :
intent: build-model
manner: "fit interpretable topic model"
input: D_community_corpora, S_analysis_design
output: M_topic_model
actor: hybrid
description: "Fit a topic model to titles, abstracts, and keywords using
analyst-controlled preprocessing, topic granularity, and domain-term
constraints."
artifact M_topic_model : model(D_community_corpora)
model type: "topic model"
representation form: "interpretable document-topic and topic-term matrices"
description: "Model of research foci expressed in community-associated
paper corpora."
transform T_characterise_research_foci :
intent: characterise
manner: "infer topic mixtures and representative papers"
input: D_candidate_communities, D_community_corpora, M_topic_model
output: F_topic_focus, F_representative_papers
actor: machine
description: "Associate each community with topic prevalence, salient
terms, temporal topic trajectories, and representative papers."
artifact F_topic_focus : feature(D_candidate_communities)
value structure: matrix
value type: numeric
representation form: "community-window by topic prevalence matrix"
description: "Research-focus mixture for each candidate community over time."
artifact F_representative_papers : feature(D_candidate_communities)
value structure: list
value type: reference
description: "High-contribution papers supporting each community topic
interpretation."
transform T_contextualise_candidate_lineages :
intent: contextualise
manner: "time-aligned lineage layout"
input: D_candidate_communities, F_candidate_lineage, F_topic_focus
output: D_lineage_canvas, A_candidate_lineages
actor: machine
description: "Create a time-aligned layout in which community instances
occupy temporal lanes and candidate lineage links are visually traceable."
artifact D_lineage_canvas : entities
internal structure: elementary
features:
- id: f_layout_dimensions
value structure: atomic
value type: numeric
description: "Two layout dimensions: time and community lane"
description: "Computed reference space for community-lineage display."
artifact A_candidate_lineages : arrangement(D_candidate_communities)
context: D_lineage_canvas
principle: "time-aligned placement with lineage-aware lane ordering"
description: "Arrangement of community instances for inspecting
continuity, branching, merging, and topical change."
transform T_visualise_candidates :
intent: visualise
manner: "coordinated community-evolution dashboard"
input: A_candidate_lineages, D_collaboration_networks,
D_candidate_communities, F_author_membership,
F_candidate_lineage, F_topic_focus, F_representative_papers,
F_author_activity
output: V_candidate_dashboard
actor: machine
description: "Provide linked lineage, overlap, network, author-history,
topic-timeline, and paper-inspection views for interactive analysis."
artifact V_candidate_dashboard : visualisation(A_candidate_lineages,
D_collaboration_networks, F_author_membership, F_topic_focus)
layout: "coordinated lineage timeline, overlap matrix, NodeTrix-style
selected-network view, author membership ribbons, and topic heatmap"
form: "bands, links, matrices, node-link marks, timelines, and text lists"
encoding: "band width shows community size or publication volume; links
show lineage strength; membership weight controls opacity; topic
prevalence controls colour; selected authors and papers are linked
across all views"
description: "Interactive evidence display for judging community
boundaries, overlap, temporal persistence, and research foci."
transform T_abstract_candidate_patterns :
intent: abstract
manner: "perception-and-interpretation of community structure"
input: V_candidate_dashboard, D_candidate_communities,
F_author_membership, F_candidate_lineage, F_topic_focus
output: P_candidate_structure
actor: human
description: "Identify tentative stable cores, boundary spanners,
suspicious fragmentation, potential lineage events, and meaningful
topic labels from the coordinated views."
artifact P_candidate_structure : pattern(D_candidate_communities,
F_author_membership, F_topic_focus)
representation form: "annotated candidate communities and topical labels"
description: "Analyst interpretations of candidate community structure,
overlap, and research-focus regularities."
transform T_assess_candidate_design :
intent: assess
manner: "evaluate robustness, temporal coherence, and interpretability"
input: V_candidate_dashboard, M_community_model, M_topic_model,
P_candidate_structure, K_research_questions, S_analysis_design
output: K_candidate_quality, S_analysis_design_r
actor: hybrid
description: "Compare parameter and resampling alternatives; assess
community cohesion, stability, overlap plausibility, topic coherence,
and whether apparent events are supported by underlying papers."
artifact K_candidate_quality : knowledge(D_candidate_communities,
M_community_model, M_topic_model)
representation form: "quality judgment"
description: "Assessment of whether candidate communities and topics are
robust, interpretable, and sufficient for substantive analysis."
artifact S_analysis_design_r : specification
representation form: "revised configuration schema"
description: "Updated choices for temporal aggregation, edge weighting,
community resolution, smoothing, topic granularity, and lineage
thresholds based on the assessment."
if K_candidate_quality indicates refinement needed:
then:
assign:
S_analysis_design := S_analysis_design_r
else:
exit loop L_community_design
end loop L_community_design
Establish Final Community Lineages, Roles, And Evolution Events
transform T_define_community_lineages :
intent: define-unit
manner: "assemble temporally linked community instances into lineages"
input: D_candidate_communities, F_candidate_lineage, K_candidate_quality,
S_analysis_design
output: D_community_lineages, F_lineage_membership
actor: hybrid
description: "Confirm continuation relations and form distinct community
lineages across 1990--2024, preserving uncertainty where multiple
predecessors or successors remain plausible."
artifact D_community_lineages : entities
internal structure: sequence
embedment: set
features:
- id: f_lineage_instances
value structure: list
value type: reference
description: "Ordered community instances belonging to the lineage"
- id: f_lifetime
value structure: atomic
value type: temporal
description: "First and last active analysis windows"
description: "Longitudinal community identities composed of ordered
community instances."
artifact F_lineage_membership : feature(D_candidate_communities)
value structure: atomic
value type: reference
description: "Lineage identifier assigned to each community instance."
transform T_characterise_roles_and_overlap :
intent: characterise
manner: "compute persistence, leadership, brokerage, and overlap profiles"
input: D_author_windows, D_community_lineages, F_author_membership,
F_author_activity, F_collaboration_relations, F_lineage_membership
output: F_core_persistence, F_leadership, F_author_roles,
F_community_overlap
actor: machine
description: "Identify stable-core membership from sustained high affiliation
and repeated internal ties; score leadership from within-community
contribution and brokerage; quantify overlap and author mobility."
artifact F_core_persistence : feature(D_author_windows)
value structure: atomic
value type: numeric
description: "Persistence score for stable-core participation in a lineage."
artifact F_leadership : feature(D_author_windows)
value structure: atomic
value type: numeric
description: "Leadership score combining internal collaboration strength,
sustained contribution, publication activity, and brokerage."
artifact F_author_roles : feature(D_author_windows)
value structure: list
value type: categorical
description: "Roles such as stable core, leader, peripheral contributor,
and boundary spanner; multiple roles may apply across communities."
artifact F_community_overlap : feature(D_candidate_communities)
value structure: matrix
value type: numeric
representation form: "time-indexed pairwise overlap matrix"
description: "Shared-member and weighted-membership overlap between
communities in each time window."
transform T_abstract_evolution_events :
intent: abstract
manner: "classify community lineage events"
input: D_community_lineages, F_candidate_lineage, F_lineage_membership,
F_author_membership, F_core_persistence, F_topic_focus
output: P_evolution_events
actor: hybrid
description: "Identify and label continuations, growth, contraction, births,
dissolutions, temporary disappearances, mergers, splits, and topical
reorientations; distinguish candidate events from robust events."
artifact P_evolution_events : pattern(D_community_lineages,
F_candidate_lineage, F_topic_focus)
representation form: "time-stamped event records with confidence annotations"
description: "Structural and topical evolution events in the VIS research
community."
transform T_visualise_final_structure :
intent: visualise
manner: "interactive community-history dashboard"
input: D_community_lineages, D_candidate_communities,
F_author_membership, F_core_persistence, F_leadership,
F_author_roles, F_community_overlap, F_topic_focus,
F_representative_papers, P_evolution_events
output: V_community_history
actor: machine
description: "Present final community lineages and enable drill-down from
high-level evolution patterns to authors, collaborations, papers, and
topical evidence."
artifact V_community_history : visualisation(D_community_lineages,
F_author_roles, F_community_overlap, F_topic_focus, P_evolution_events)
layout: "linked community lineage view, role-ranked author table, overlap
matrix, membership ribbons, topic evolution heatmap, and event detail panel"
form: "bands, flow links, matrices, ranked lists, timelines, and paper cards"
encoding: "lineage bands encode active membership or publication volume;
core and leader scores control author ranking; event markers encode type
and confidence; topics encode colour and relative area"
description: "Final visual workspace for answering community-structure and
evolution questions with traceable evidence."
Event-Focused Interpretation Loop
artifact K_event_log_initial : knowledge(P_evolution_events)
origin: given
representation form: "annotated evidence log"
description: "Initially empty or externally supplied record of prior
interpretations, uncertainties, and domain context for evolution events."
assign:
K_event_log := K_event_log_initial
loop L_event_interpretation:
purpose: "Develop evidence-backed explanations for consequential or
uncertain community evolution events."
until: "All salient events have been reviewed to a level appropriate for
the research questions, and remaining uncertainty is explicitly recorded."
body:
transform T_select_events_for_review :
intent: define-unit
manner: "filter and prioritise event instances"
input: P_evolution_events, S_event_review, K_event_log
output: D_events_for_review
actor: human
description: "Select the next merge, split, dissolution, reorientation,
or uncertain lineage event for investigation."
artifact D_events_for_review : entities
internal structure: elementary
embedment: time
features:
- id: f_event_type
value structure: atomic
value type: categorical
description: "Evolution-event category"
- id: f_event_confidence
value structure: atomic
value type: numeric
description: "Confidence in the event classification"
description: "Selected event instances requiring detailed interpretation."
transform T_visualise_event_evidence :
intent: visualise
manner: "before-and-after comparative evidence display"
input: D_events_for_review, V_community_history,
F_core_persistence, F_leadership, F_author_membership,
F_topic_focus, F_representative_papers, F_author_activity
output: V_event_evidence
actor: machine
description: "Compare predecessor and successor cores, entrants and
leavers, collaboration structure, topic trajectories, representative
papers, venue composition, and citation impact around each event."
artifact V_event_evidence : visualisation(D_events_for_review,
F_author_membership, F_topic_focus, F_representative_papers)
layout: "aligned pre-event and post-event views with linked paper evidence"
form: "community matrices, author flows, topic comparisons, and paper lists"
encoding: "membership and core scores identify retained and changing
members; topic proportions compare research foci; selected papers
provide textual evidence"
description: "Evidence workspace for interpreting why a structural
community event may have occurred."
transform T_formulate_event_interpretations :
intent: generate-knowledge
manner: "formulate qualified explanatory hypotheses"
input: D_events_for_review, V_event_evidence, K_event_log,
K_research_questions
output: K_event_log_r
actor: human
description: "Record evidence-backed, non-causal interpretations such as
topical divergence, new cross-group collaboration, researcher mobility,
venue shifts, or sparse-data artifacts; retain alternative explanations."
artifact K_event_log_r : knowledge(D_events_for_review, V_event_evidence)
representation form: "annotated hypotheses with evidence and uncertainty"
description: "Cumulative interpretations of reviewed evolution events,
including supporting papers, structural evidence, and unresolved issues."
transform T_assess_event_evidence :
intent: assess
manner: "judge explanatory sufficiency and prioritise further review"
input: K_event_log_r, V_event_evidence, S_event_review
output: K_event_evidence_quality, S_event_review_r
actor: human
description: "Assess whether each interpretation is sufficiently supported,
whether alternative time windows or parameter settings should be checked,
and which event should be reviewed next."
artifact K_event_evidence_quality : knowledge(K_event_log_r)
representation form: "quality judgment"
description: "Judgment of evidential sufficiency, remaining uncertainty,
and whether further event analysis is required."
artifact S_event_review_r : specification
representation form: "revised review priorities"
description: "Updated event-selection priorities and evidence requirements."
assign:
K_event_log := K_event_log_r
if K_event_evidence_quality indicates further event review needed:
then:
assign:
S_event_review := S_event_review_r
else:
exit loop L_event_interpretation
end loop L_event_interpretation
Synthesis
transform T_synthesise_findings :
intent: generate-knowledge
manner: "formulate-statements and comparative community profiles"
input: V_community_history, D_community_lineages, F_core_persistence,
F_leadership, F_author_roles, F_community_overlap, F_topic_focus,
P_evolution_events, K_event_log, K_candidate_quality
output: K_community_findings
actor: human
description: "Produce a traceable account of the number of communities and
lineages, stable cores and leaders, research foci and their evolution,
membership overlap, and evidence-qualified merge, split, reorientation,
and dissolution interpretations."
artifact K_community_findings : knowledge(D_community_lineages,
P_evolution_events, F_topic_focus)
representation form: "community profiles, longitudinal findings, and
uncertainty-qualified conclusions"
description: "Final analytical findings about the intellectual structure
and evolution of the IEEE VIS research community."