Claude Code Plugins

Community-maintained marketplace

Feedback

acsets-hatchery

@plurigrid/asi
0
0

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

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name acsets-hatchery
description Attributed C-Sets as algebraic databases. Category-theoretic data structures generalizing graphs and dataframes with Gay.jl color integration.
version 1.0.0

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