Attributed C-Sets as algebraic databases. Category-theoretic data structures generalizing graphs and dataframes with Gay.jl color integration.
ACSets.jl provides acsets ("attributed C-sets") - data structures generalizing both graphs and data frames. They are an efficient in-memory implementation of category-theoretic relational databases.
An ACSet is a functor from a category C to Set, with attributes. This means:
using ACSets
# Define a schema
@present SchGraph(FreeSchema) begin
V::Ob
E::Ob
src::Hom(E, V)
tgt::Hom(E, V)
end
# Create an acset
g = @acset Graph begin
V = 3
E = 2
src = [1, 2]
tgt = [2, 3]
end
# Rec2020 wide gamut with acset seed
gay_seed!(0xb4545686b9115a09)
# Mixed mode checkpointing
params = OkhslParameters()
∂params = Enzyme.gradient(Reverse, loss, params, seed)
Patterson, Lynch, Fairbanks. Categorical data structures for technical computing. Compositionality 4, 5 (2022). arXiv:2106.04703
0xb4545686b9115a09algebraic-rewriting (-1) ⊗ acsets-hatchery (0) ⊗ gay-monte-carlo (+1) = 0 ✓
acsets-algebraic-databases - Full ACSet guidespecter-acset - Bidirectional navigationworld-a - AlgebraicJulia ecosystemSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer