Starting the Web Interface
Launch the web interface:You can also use the aliases
just web or just ui to start the interface.Interface Overview
The web interface consists of several main sections:Home Page
The home page (/) displays:
- Entity count cards for each type (People, Events, Locations, Organizations)
- Quick navigation to browse each entity type
- Domain selector dropdown (if multiple domains configured)
Entity List Pages
Each entity type has a dedicated list page:/people- Browse all people/organizations- Browse all organizations/locations- Browse all locations/events- Browse all events
Entity Detail Pages
Detailed views for individual entities:/people/{name}- Person profile and articles/organizations/{name}- Organization details/locations/{name}- Location information/events/{title}- Event details
Browsing Entities
People Page
The People page shows all extracted individuals with: Filter Panel (left sidebar):- Search: Filter by name
- Type filters: Filter by person type (detainee, lawyer, journalist, etc.)
- Tag filters: Filter by profile tags (civil_rights, intelligence, medical, etc.)
- Person name (clickable link to detail page)
- Type badge showing person category
- Tag badges showing additional classifications
- Article count
Organizations Page
Similar layout with organization-specific filters: Filter Panel:- Search: Filter by organization name
- Type filters: military, intelligence, legal, humanitarian, etc.
- Organization name and type
- Aliases (alternative names/acronyms)
- Article count
Locations Page
Filter Panel:- Search: Filter by location name
- Type filters: detention_facility, military_base, country, city, etc.
- Location name and type
- Article count
Events Page
Filter Panel:- Search: Filter by event title
- Type filters: detention, legal, military_operation, policy_change, etc.
- Tag filters: Filter by event tags
- Event title and date
- Type and tag badges
- Article count
Entity Detail Pages
Clicking any entity opens a detailed view with:Header Section
- Breadcrumb: Back link to entity list
- Entity name/title: Main heading
- Type badge: Entity category
- Version selector: View historical profile versions (if enabled)
Profile Section
Aliases:- Alternative names and acronyms
- Automatically extracted variants
- Defense Department
- DoD
- Pentagon
- Additional categorizations beyond the main type
- Multiple tags can be assigned to one entity
- civil_rights
- activist
- legal
- Narrative description synthesized from source articles
- Includes citations to source articles
- Written in paragraph form (not bullet points)
- Shows extraction confidence (High, Medium, Low)
- Based on source quality and consistency
Articles Section
List of source articles that mention this entity:- Article title (clickable link)
- Publication date
- Source URL
- Short excerpt showing entity mention
Multi-Domain Support
Domain Selector
If you have multiple research domains configured, a domain selector appears in the top-right corner of every page. Single domain: Shows domain name as a label Multiple domains: Shows dropdown to switch between domains Switching domains:- Click the domain dropdown
- Select a different domain
- Page reloads with the selected domain’s entities
?domain=guantanamo).
Domain-Specific Data
Each domain has its own:- Entity types and categories
- Extraction results
- Configuration settings
Filtering and Search
Text Search
Enter a search term in the search box to filter by name/title:- Case-insensitive partial matching
- Filters as you type
- Works across all entity attributes
Type Filters
Click type filter chips to show only entities of specific types:- Multiple types can be selected (OR logic)
- Active filters shown with highlighted styling
- Click again to deselect
Tag Filters
(Available for People and Events) Click tag filter chips to filter by profile tags:- Multiple tags can be selected (OR logic)
- Entity must have at least one selected tag
- Combines with type and search filters
Combined Filtering
All filters work together:- Search + Type + Tags = Show entities matching ALL criteria
- Multiple selections within a filter type use OR logic
- Filters across types use AND logic
Profile Versioning
If profile versioning is enabled (ENABLE_PROFILE_VERSIONING = True), entity detail pages show a version selector.
Version Selector Dropdown
Select from available profile versions:- v3 (current) - Most recent version
- v2 - Previous version with timestamp
- v1 - Initial version
- Profile text at that point in time
- Articles that were included
- Tags assigned in that version
Version Comparison
Compare how an entity’s profile evolved:- Open entity detail page
- Use version selector to view different versions
- Observe changes in profile text, tags, and article citations
- Tracking how understanding evolved
- Verifying profile accuracy
- Understanding source coverage over time
Design and Styling
The interface uses the “Archival Elegance” design system: Typography:- Headings: Crimson Pro (serif)
- Body: IBM Plex Sans (sans-serif)
- Primary: Warm teal-slate (#2c5f7c)
- Accent: Amber (#c97b3a)
- Neutral: Soft cream and warm grays
- Fixed-width filter panel (220px)
- Flexible content area
- Responsive spacing and typography
Technical Details
FastHTML Framework
The web interface is built with FastHTML, a Python framework for building web applications: Route Structure (src/frontend/routes/):
src/frontend/data_access.py):
src/frontend/components.py):
AliasesDisplay: Shows alternative namesTagsDisplay: Renders tag badgesConfidenceBadge: Shows confidence levelProfileVersionSelector: Version dropdown
Data Flow
- User navigates to entity page
- Route handler loads domain configuration
- Data access layer reads Parquet files
- Filters are applied to entity list
- Components render HTML
- Browser displays page
Customization
Custom Styling
Editsrc/frontend/static/styles.css to customize appearance:
Adding Routes
Add new routes insrc/frontend/routes/:
Custom Components
Add components insrc/frontend/components.py:
Troubleshooting
Port Already in Use
Error:Address already in use: 5001
Solution: Kill the existing process or change the port:
No Entities Showing
Problem: Entity list pages are empty Solutions:- Verify entities were extracted:
ls data/your_domain/entities/ - Check Parquet files exist and contain data
- Verify domain parameter matches directory name
- Check console for errors
Filters Not Working
Problem: Filters don’t affect entity list Solutions:- Check browser console for JavaScript errors
- Verify filter parameters in URL
- Ensure entity types match category definitions
- Clear browser cache
Profile Not Displaying
Problem: Entity detail page missing profile text Solutions:- Verify entity has profile data in Parquet file
- Check profile generation was enabled during processing
- Ensure Markdown rendering is working
- Look for errors in server logs
Next Steps
Processing Articles
Extract more entities to browse
Creating Domains
Configure additional research domains
Configuration
Customize interface and processing settings
Data Format
Understand the underlying data structure