AI Ethics Network

An interactive tool for exploring keywords, communities, and publication sources in AI ethics literature.

  • Svelte
  • D3
  • SVG
Timeline
Jun 2026 – Jul 2026
Role
Visualization design, interaction specification, and implementation
Outcome
Deployed research tool featured in the team’s manuscript draft
The keyword network of the tool, 534 AI ethics keywords colored by six thematic communities.
Section

Exploring the research network

A research team at Northeastern University London had analyzed a JSTOR corpus of AI ethics literature as a set of networks. I designed the views and interactions for exploring its 534 keywords in the browser: their neighborhoods, the thematic communities they form, and the publication sources that carry them.

Selecting a keyword, tracing a path, and switching views.
Data scope

The data is the research team’s own JSTOR corpus and network analysis, downloaded in October 2024. It does not represent all AI ethics literature, or the most recent.

The tool loads two networks: 534 keywords joined by 4,474 links, and a second network joining those keywords to 1,201 publication sources through 9,330 links. Each node carries one connection measure alongside keyword frequency and link weights. For a keyword it is degree, the number of nodes it links to; for a publication source it is total link weight, the sum of the weights on its links, sometimes called weighted degree or strength. The team’s upstream analysis also produced other centrality scores, which the tool does not load.

Choosing the views

I made seven working sketches on the real network data to explore how researchers could navigate it. The team’s feedback clarified which capabilities mattered, and I used that input to decide what needed a separate view, what belonged within a view, and what could become a display option.

Atlas: the keyword network colored by community, with faint edges.
Atlas: one network colored by community.
Orbit: the communities pulled apart into separate clusters around a circle.
Orbit: communities pulled apart.
Strata: the full network with controls for switching between three data layers.
Strata: switching between data layers.
Lattice: a monotone network in which link thickness carries co-occurrence.
Lattice: a single-color network.

Two views of the same network

I kept Network and Community as two views of the same keyword network. Network preserves the overall layout for browsing connections. Community separates the six top-level communities, each keeping its internal arrangement, to make their structure easier to inspect.

The Community view: the six top-level communities pulled apart around a circle, each a colored cluster of labeled keywords, with gray links between them.
Community, developed from Orbit: six clusters around a circle, still linked to one another.

A separate view for publication sources

I gave the keyword-to-source network its own view, Journal, because it connects two different types of entities. Within Journal, I made Rings and Columns alternative layouts of that relationship.

The view shows a ranked subset of 50 keywords, ordered by how many publication sources each links to, and 50 publication sources, ordered by total link weight. I settled on 50 by trying the layouts and judging legibility, visual density, and how the view responded in use. It is an empirical choice with no measured threshold behind it, and because the lower-ranked nodes are left out, the view is not the complete network.

The Journal view in rings: an inner ring of purple keywords and an outer ring of orange publication sources, joined by faint curved links.
Rings: keywords inside, publication sources outside.
The Journal view in columns: 50 keywords in a purple column on the left and 50 publication sources in an orange column on the right, each in rank order, joined by curved links.
Columns: the two ranked lists side by side.

A color mode instead of another view

I kept Lattice’s single-color approach as a color mode within the existing views. It changes how the network looks and introduces no new relationship or exploration task.

Additional sketches and feedback

Brian Ball, one of the principal investigators, replied in writing on June 27, 2026. He suggested combining the capabilities of Atlas, Strata, and Orbit, asked to keep Lattice, and wanted the keyword-to-source network available on its own. Organizing those into two views of one network, a separate Journal view with two layouts, and a color mode was my design response.

On the three sketches that did not carry forward, he found Nightfall’s marks and type too small, and zooming in on his screen enlarged the text more than the graphics. Territory repeated a static view that Rafael Morris had already made from the analysis. Compass struck him as interestingly different, though he was not sure it showed anything the other layouts could not.

Nightfall: a dark network in which only the anchor keywords are lit.
Nightfall: a few anchors lit on a dark network.
Territory: soft colored hulls drawn around each community on the network.
Territory: hulls drawn around communities.
Compass: each community given its own wedge of arcs around a center.
Compass: a wedge per community.

Following keywords and connections

I organized exploration into three modes: inspecting one keyword’s neighborhood, viewing two neighborhoods together, and tracing a connecting path.

Mode Selection What it reveals
ExploreOne keywordIts direct neighbors and the links to them
NeighborsTwo keywordsThe union of both neighborhoods, including neighbors they do not share
PathTwo keywordsA chain with the fewest links between them

Path is available in the Network and Community views only.

Surveillance selected: its neighbors stay in color with their labels, the rest of the network fades, and the sidebar lists its strongest links.
Selecting surveillance highlights its neighborhood.
Path mode: a line from poetry through philosophy, technology, and military to missile, drawn over the faded network, with the path listed in the sidebar.
Connecting poetry to missile reveals a shortest path.

Among equally short paths, Path picks the one whose keywords have the highest total degree. I chose degree because it is a familiar network measure, hoping the path would pass through well-connected keywords a reader is more likely to recognize, though a high degree does not guarantee that. A path does not measure semantic distance, the strongest association, or scholarly influence. Both examples demonstrate the tool and are not research findings.

How the path and its numbers are computed

A breadth-first search finds the shortest distance from the first keyword to every other. Among the links that lie on a shortest route, the tool then keeps, for each keyword, the route with the highest running sum of degree, and traces back from the second keyword. Link weight plays no part in choosing the path.

The sidebar shows each link’s weight, the number of papers the two keywords share. It also sums those weights along the path. That total is not a count of distinct papers, because the same paper can be counted on more than one link.

In the Network and Community views, node size follows keyword frequency, which also orders the sidebar lists by default. Degree in the keyword network sets which labels are shown first and breaks ties between paths of the same length. Link widths in some selected states come from the average degree of the two ends, and the resting network draws every link at one width, so a thicker line does not mean more shared papers. In the Journal view, a keyword is drawn, sized, and ordered by the number of publication sources it links to, and a publication source by its total link weight. Link weight orders the sidebar and labels the highlighted links there, and line width mainly marks what is selected. Distance on screen is not an exact measure of how strongly two nodes are related.

Stable layouts and editable figures

I chose precomputed layouts to keep node positions stable between visits and to reduce waiting and movement when the tool opens. The coordinates are saved ahead of time in the data file the tool loads, so every keyword is already in place.

To support further figure editing, I specified SVG export that preserves the current selection, highlighting, fading, and label styling. The file holds the canvas alone, without the sidebar or the rest of the page, and I tested the export on the deployed tool.

Implementation notes

The tool is a single-page Svelte application that renders to SVG and is deployed as a static site. Svelte holds the interface state: the view, the mode, and the selection. A Node script lays the network out with d3-force and saves the coordinates; in the browser, the tool only nudges overlapping nodes apart, because node size is applied after the layout is computed. The Community view reuses those coordinates, moving each community to a point on a circle, and the Journal view computes its own positions from the ring or column it is drawing.

Labels are placed in order of each node’s connection measure, and a label that would collide with one already placed is dropped. Export clones the live SVG, adds the label styles, serializes it, and downloads it named after the current view.

Research use and remaining limits

The tool is deployed, and the team’s manuscript draft, which is not yet published, introduces it in its own section with examples of exploring the network.

Search and tracing connections back to individual papers remain unfinished; the tracing needs a mapping from papers to keywords that the dataset does not include. No independent study outside the project team has yet assessed how well the tool works in use. The next step would be to watch researchers outside the team answer questions of their own with it.

Credits

Skills
  • Network visualization
  • Interaction design
  • Visual prototyping
  • Design engineering
  • Research tool design
Tools
  • Svelte
  • D3
  • SVG
Team

Visualization design and interaction specification

  • Zhuoqi Liu

Project coordination

  • Todd Linkner

Research leads

  • Brian Ball
  • Ioannis Votsis

Data preparation and network analysis

  • Rafael Morris
Note

The London team set the research needs. Todd Linkner coordinated between the two groups and worked out with me what was feasible. I defined the features and interactions, wrote part of the code, and debugged and checked the results in reviews with Todd and the London team. Claude Code generated most of the application code.