Skip to main content

catcolab-ologs

CatColab Ologs (Ontology Logs) - category-theoretic knowledge representation where objects are concepts and morphisms are functional relationships. Foundation for database schemas and conceptual modeling.

Informações da origem

Repositório
plurigrid/asi
Última atividade na origem
10 de junho de 2026 às 11:55
Idioma detectado do SKILL.md
inglês
Estrelas
67
Forks
12

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
3 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
catcolab-ologs
description
CatColab Ologs (Ontology Logs) - category-theoretic knowledge representation where objects are concepts and morphisms are functional relationships. Foundation for database schemas and conceptual modeling.
version
1.0.0
# CatColab Ologs: Ontology Logs **Trit**: -1 (MINUS - validator/verifier) **Color**: Cyan (#00CED1) ## Overview Ologs (Ontology Logs) are category-theoretic representations of knowledge domains, introduced by Spivak and Kent (2011). In CatColab, ologs serve as: - **Conceptual Foundations**: Objects = concepts/types, Morphisms = functional relations - **Database Ontologies**: The schema layer before populating with data - **Knowledge Graphs**: Categorical structure for reasoning about domains ## Mathematical Foundation An olog is a **category** where: - Objects represent **types** or **concepts** (e.g., "a person", "a company") - Morphisms represent **functional relationships** (e.g., "works for", "has birthday") - Commutative diagrams encode **logical constraints** ``` ┌─────────────────────────────────────────────────────┐ │ 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) │ └─────────────────────────────────────────────────────┘ ``` ## CatColab Implementation ### Object Declaration ```typescript // In CatColab notebook { "type": "ObDecl", "name": "Person", "description": "a person in the organization" } ``` ### Morphism Declaration ```typescript { "type": "MorDecl", "name": "works_for", "dom": "Person", "cod": "Company", "description": "the company that employs this person" } ``` ### Equation (Commutative Diagram) ```typescript { "type": "EqDecl", "lhs": "Person.in_dept", "rhs": "Person.works_for.employs", "description": "a person's department agrees with their company's structure" } ``` ## Double Theory Ologs in CatColab are instances of the **SimpleCategory** double theory: ```rust // 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() } ``` ## Practical Examples ### Example 1: Academic Institution ``` 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 ``` ### Example 2: Supply Chain ``` Objects: Supplier, Warehouse, Product, Customer Morphisms: supplies: Supplier → Product stores: Warehouse → Product orders: Customer → Product ships_from: Product → Warehouse ``` ## Integration with Schemas Ologs upgrade to **Schemas** by distinguishing: - **Entities** (tables with identity) - **Attributes** (columns/properties) ``` OLOG: SCHEMA: Person ──name──► String → Person (Entity) ├── id: UUID └── name: String (Attr) ``` ## GF(3) Triads ``` catcolab-ologs (-1) ⊗ topos-catcolab (0) ⊗ catcolab-schemas (+1) = 0 ✓ catcolab-ologs (-1) ⊗ acsets-relational-thinking (0) ⊗ database-design (+1) = 0 ✓ ``` ## Commands ```bash # 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 ``` ## References - Spivak & Kent (2011) "Ologs: A Categorical Framework for Knowledge Representation" - [CatColab Documentation](https://catcolab.org/help) - [RelationalThinking Book](https://toposinstitute.github.io/RelationalThinking-Book/) --- **Skill Name**: catcolab-ologs **Type**: Knowledge Representation / Ontology **Trit**: -1 (MINUS) **GF(3)**: Conserved via triadic composition
Ver no GitHub