con un clic
catcolab-schemas
CatColab Schemas - database schema modeling distinguishing entities (tables) from attributes (columns). Foundation for ACSets (Attributed C-Sets) and AlgebraicJulia data structures.
Menú
CatColab Schemas - database schema modeling distinguishing entities (tables) from attributes (columns). Foundation for ACSets (Attributed C-Sets) and AlgebraicJulia data structures.
Basado en la clasificación ocupacional SOC
Query and explore the 2600: The Hacker Quarterly magazine archive (1984-present) via DuckDB. Provides structured access to 168+ issues covering hacker culture, security, privacy, telephony, and digital rights without loading full content into context.
ACSets (Attributed C-Sets): Algebraic databases with Specter-style bidirectional navigation. Category-theoretic formalism for relational databases.
Attributed C-Sets as algebraic databases. Category-theoretic data structures generalizing graphs and dataframes with Gay.jl color integration.
ACSets (Attributed C-Sets): Algebraic databases with Specter-style bidirectional
Bridge active inference theory with robot control using K-Scale's JAX/MuJoCo stack. Use when connecting predictive coding to locomotion policies, mapping KL divergence minimization to RL training, applying mean field approximation to robotics state estimation, or implementing sim2real as inference about future observations.
Implement affective valence as directional derivative of interoceptive energy landscapes for AI alignment. Use when building alignment-aware RL agents, validating GF(3) conservation in reward signals, training Langevin-based policies, or analyzing fold-change detection signals in POMDP environments.
| name | catcolab-schemas |
| description | CatColab Schemas - database schema modeling distinguishing entities (tables) from attributes (columns). Foundation for ACSets (Attributed C-Sets) and AlgebraicJulia data structures. |
| version | 1.0.0 |
Trit: +1 (PLUS - generator) Color: Green (#32CD32)
Schemas in CatColab upgrade ologs by explicitly distinguishing:
This is the foundation for ACSets (Attributed C-Sets), the core data structure of AlgebraicJulia.
A schema is a profunctor or displayed category:
┌─────────────────────────────────────────────────────┐
│ SCHEMA │
├─────────────────────────────────────────────────────┤
│ Entities (Ob): │
│ Person, Company, Project │
│ │
│ AttrTypes (Data): │
│ String, Int, Date, Bool │
│ │
│ Mappings (Hom): │
│ works_at: Person → Company │
│ leads: Person → Project │
│ │
│ Attributes (Attr): │
│ name: Person → String │
│ age: Person → Int │
│ founded: Company → Date │
└─────────────────────────────────────────────────────┘
// Schema double theory in catlog
pub fn th_schema() -> DiscreteDblTheory {
let mut cat = FpCategory::new();
// Object types
cat.add_ob_generator(name("Entity"));
cat.add_ob_generator(name("AttrType"));
// Morphism types
cat.add_mor_generator(name("Mapping"), name("Entity"), name("Entity"));
cat.add_mor_generator(name("Attr"), name("Entity"), name("AttrType"));
cat.into()
}
{
"type": "ObDecl",
"name": "Person",
"theory_type": "Entity",
"description": "people in the system"
}
{
"type": "ObDecl",
"name": "String",
"theory_type": "AttrType",
"description": "text values"
}
{
"type": "MorDecl",
"name": "employer",
"dom": "Person",
"cod": "Company",
"theory_type": "Mapping",
"description": "the company this person works for"
}
{
"type": "MorDecl",
"name": "salary",
"dom": "Person",
"cod": "Int",
"theory_type": "Attr",
"description": "annual salary in dollars"
}
A CatColab schema defines the type; an ACSet is an instance:
# Schema defines structure
@present SchPerson(FreeSchema) begin
Person::Ob
Company::Ob
employer::Hom(Person, Company)
Name::AttrType
name::Attr(Person, Name)
end
# ACSet populates data
people = @acset SchPerson begin
Person = 3
Company = 2
employer = [1, 1, 2]
name = ["Alice", "Bob", "Charlie"]
end
Entities: Customer, Order, Product, Category
AttrTypes: String, Int, Float, DateTime
Mappings:
placed_by: Order → Customer
contains: Order → Product (many-to-many via junction)
in_category: Product → Category
Attributes:
email: Customer → String
total: Order → Float
price: Product → Float
name: Category → String
Entities: User, Post, Comment, Group
AttrTypes: String, DateTime, Int
Mappings:
author: Post → User
on_post: Comment → Post
member_of: User → Group
Attributes:
username: User → String
content: Post → String
timestamp: Post → DateTime
likes: Post → Int
Schemas compose via pullback and pushout:
Schema A Schema B
\ /
\ pullback /
\ /
▼ ▼
Schema A ×_C B
catcolab-ologs (-1) ⊗ topos-catcolab (0) ⊗ catcolab-schemas (+1) = 0 ✓
database-design (-1) ⊗ acsets-relational-thinking (0) ⊗ catcolab-schemas (+1) = 0 ✓
# Create schema
just catcolab-new schema "my-database"
# Generate Julia ACSet code
just catcolab-export my-database --format=julia
# Create instance (diagram)
just catcolab-instance my-database "sample-data"
# Migrate schema
just catcolab-migrate old-schema new-schema
Skill Name: catcolab-schemas Type: Database Schema Design Trit: +1 (PLUS) GF(3): Conserved via triadic composition