README.md

# Browsex

A semantic, local-first web browser that accumulates knowledge over time.

## Vision

Traditional browsers treat pages as ephemeral documents. Browsex treats pages as **sources of claims about the world**.

Each visit:
- Extracts semantic assertions (JSON-LD, RDFa, Microdata)
- Records their provenance
- Links them to previously seen entities
- Adds them permanently to a growing local knowledge graph

Over time, the browser becomes a personal semantic index of the web — a research memory and substrate for agentic reasoning.

## Technology Stack

- **Elixir / BEAM** — concurrency, supervision, long-lived memory
- **Elixir Desktop** — cross-platform packaging (Windows, macOS, Linux)
- **Phoenix LiveView** — reactive UI and semantic side panels
- **Embedded WebView** — real web rendering engine
- **RDF.ex** — canonical RDF data model
- **Jido** — agentic workflows and reasoning

## Architecture Highlights

### RDF as Primary Model

All semantic data is stored as normalized RDF quads `(graph, subject, predicate, object)`. Named graphs provide first-class provenance tracking, enabling selective forgetting, trust weighting, and conflict analysis.

### Semantic Enrichment

When pages lack embedded RDF, the browser can:
- Extract visible text and identify candidate entities (NER)
- Resolve entities against knowledge bases (Wikidata, MusicBrainz, DBpedia)
- Fetch and display RDF for matched entities
- Optionally highlight detected entities in page content

### CRDT-Based Sync

Knowledge graphs use conflict-free replicated data types:
- **OR-Set** for shared graphs (add-wins, safe collaboration)
- **LWW** for private graphs (last-write-wins, simple editing)

Operations stored in a Merkle-DAG for distributed sync.

## Status

This project is in the research and design phase. See `notes/research/` for specifications:

| Document | Description |
|----------|-------------|
| `rdf-first-browser.md` | High-level vision and architecture |
| `design-principles.md` | Normative architectural principles |
| `ui-specification.md` | UI component and interaction design |
| `rdf-graph-crdt-specification.md` | CRDT model for distributed sync |

## License

MIT — see [LICENSE.md](LICENSE.md)