smithery/plurigrid

acsets-hatchery

Attributed C-Sets as algebraic databases. Category-theoretic data structures generalizing graphs and dataframes with Gay.jl color integration.

Installation

$ npx skills add smithery/plurigrid --skill acsets-hatchery

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/plurigrid · top by installs.

npx skills add smithery/plurigrid

Browse all from smithery/plurigrid

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

More metadata
trit
0
color
#E146A8

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,639 B
  • docs SUMMARY.md 165 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

ACSets Hatchery

Overview

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.

Core Features

  • Acset schemas - Category-theoretic data structure definitions
  • Acsets - Instances of schemas (like database rows)
  • Tabular columns - Efficient columnar storage
  • Serialization - JSON/binary format support

What Are ACSets?

An ACSet is a functor from a category C to Set, with attributes. This means:

  • Objects become tables
  • Morphisms become foreign keys
  • Attributes add data types to objects

Usage

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

Extensions

  • Catlab.jl - Homomorphisms, limits/colimits, functorial data migration
  • AlgebraicRewriting.jl - DPO/SPO/SqPO rewriting for acsets

Learning Resources

  1. Graphs and C-sets I - What is a graph?
  2. Graphs and C-sets II - Half-edges and rotation systems
  3. Graphs and C-sets III - Reflexive graphs and homomorphisms
  4. Graphs and C-sets IV - Propositional logic of subgraphs

Gay.jl Integration

# Rec2020 wide gamut with acset seed
gay_seed!(0xb4545686b9115a09)

# Mixed mode checkpointing
params = OkhslParameters()
∂params = Enzyme.gradient(Reverse, loss, params, seed)

Citation

Patterson, Lynch, Fairbanks. Categorical data structures for technical computing. Compositionality 4, 5 (2022). arXiv:2106.04703

Repository

  • Source: plurigrid/ACSets.jl (fork of AlgebraicJulia/ACSets.jl)
  • Seed: 0xb4545686b9115a09
  • Index: 494/1055
  • Color: #204677

GF(3) Triad

algebraic-rewriting (-1) ⊗ acsets-hatchery (0) ⊗ gay-monte-carlo (+1) = 0 ✓

Related Skills

  • acsets-algebraic-databases - Full ACSet guide
  • specter-acset - Bidirectional navigation
  • world-a - AlgebraicJulia ecosystem