npx claudepluginhub plurigrid/asi --plugin asiThis skill uses the workspace's default tool permissions.
**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.
Explains ACSets (Attributed C-Sets) algebraic databases in Julia using Catlab: schema defs for graphs, symmetric graphs, attributes. For categorical relational modeling.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
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 ✓
catcolab-ologs (-1) ⊗ acsets-hatchery (0) ⊗ catcolab-schemas (+1) = 0 ✓
catcolab-decapodes (-1) ⊗ acsets-hatchery (0) ⊗ catcolab-petri-nets (+1) = 0 ✓
tasks-acset (-1) ⊗ acsets-hatchery (0) ⊗ calendar-acset (+1) = 0 ✓
# Stock-flow models as ACSet instances
@acset StockFlow(SchStockFlow) begin
Stock = [:S, :I, :R]; Flow = 2
end
# Petri nets via AlgebraicPetri.jl
@acset LabelledPetriNet(SchPetri) begin
S = [:idle, :active]; T = [:start, :stop]
end
# Email threads as ACSet graph
@acset ThreadGraph(SchThread) begin
Message = 5; reply_to = [nothing, 1, 1, 2, 3]
end
# Ologs as the conceptual foundation
# Every ACSet schema IS an olog instance
acsets-algebraic-databases - Full ACSet guidespecter-acset - Bidirectional navigationworld-a - AlgebraicJulia ecosystem