# 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)