From asi
Models knowledge domains with Ologs using category theory: declares objects as concepts, morphisms as functional relations, and equations as constraints. Foundations for database schemas and conceptual modeling in CatColab.
npx claudepluginhub plurigrid/asi --plugin asiThis skill uses the workspace's default tool permissions.
**Trit**: -1 (MINUS - validator/verifier)
Models database schemas distinguishing entities (tables), attributes (columns), and mappings (foreign keys). Foundation for ACSets and AlgebraicJulia data structures.
Creates validated models of entities, relationships, and constraints for database schemas (SQL/NoSQL/graph), knowledge graphs, ontologies, API data models, and taxonomies.
Builds, validates, and governs RDF/OWL ontologies and knowledge graphs using Open Ontologies MCP server with Oxigraph triple store. Use for creating, modifying, querying, or managing RDF data.
Share bugs, ideas, or general feedback.
Trit: -1 (MINUS - validator/verifier) Color: Cyan (#00CED1)
Ologs (Ontology Logs) are category-theoretic representations of knowledge domains, introduced by Spivak and Kent (2011). In CatColab, ologs serve as:
An olog is a category where:
┌─────────────────────────────────────────────────────┐
│ OLOG │
├─────────────────────────────────────────────────────┤
│ Objects: │
│ Person, Company, Date, Department │
│ │
│ Morphisms (functional): │
│ works_for: Person → Company │
│ has_birthday: Person → Date │
│ employs: Company → Department │
│ │
│ Commutative Diagram (constraint): │
│ Person ──works_for──► Company │
│ │ │ │
│ in_dept employs │
│ ▼ ▼ │
│ Dept ════════════════► Dept │
│ (must agree) │
└─────────────────────────────────────────────────────┘
// In CatColab notebook
{
"type": "ObDecl",
"name": "Person",
"description": "a person in the organization"
}
{
"type": "MorDecl",
"name": "works_for",
"dom": "Person",
"cod": "Company",
"description": "the company that employs this person"
}
{
"type": "EqDecl",
"lhs": "Person.in_dept",
"rhs": "Person.works_for.employs",
"description": "a person's department agrees with their company's structure"
}
Ologs in CatColab are instances of the SimpleCategory double theory:
// From catlog
pub fn th_category() -> DiscreteDblTheory {
let mut cat = FpCategory::new();
cat.add_ob_generator(name("Ob"));
cat.add_mor_generator(name("Hom"), name("Ob"), name("Ob"));
// Composition and identity axioms
cat.into()
}
Objects: Professor, Student, Course, Department, University
Morphisms:
teaches: Professor → Course
enrolled: Student → Course
member_of: Professor → Department
part_of: Department → University
Diagram (functorial):
Professor ──teaches──► Course
│ │
member_of offered_by
▼ ▼
Department ◄──────────── Department
Objects: Supplier, Warehouse, Product, Customer
Morphisms:
supplies: Supplier → Product
stores: Warehouse → Product
orders: Customer → Product
ships_from: Product → Warehouse
Ologs upgrade to Schemas by distinguishing:
OLOG: SCHEMA:
Person ──name──► String → Person (Entity)
├── id: UUID
└── name: String (Attr)
catcolab-ologs (-1) ⊗ topos-catcolab (0) ⊗ catcolab-schemas (+1) = 0 ✓
catcolab-ologs (-1) ⊗ acsets-relational-thinking (0) ⊗ database-design (+1) = 0 ✓
# Create new olog
just catcolab-new category "my-ontology"
# Validate olog constraints
just catcolab-validate my-ontology
# Export to JSON-LD
just catcolab-export my-ontology --format=jsonld
Skill Name: catcolab-ologs Type: Knowledge Representation / Ontology Trit: -1 (MINUS) GF(3): Conserved via triadic composition