Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords

active active-inference active-inference-notation inference
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: ActiveInferenceInstitute
  • License: other
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 103 MB
Statistics
  • Stars: 14
  • Watchers: 3
  • Forks: 3
  • Open Issues: 1
  • Releases: 1
Topics
active active-inference active-inference-notation inference
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Security Support

README.md

GeneralizedNotationNotation (GNN)

[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](./LICENSE.md) [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/) [![Active Inference](https://img.shields.io/badge/Active%20Inference-Research-brightgreen.svg)](https://activeinference.org/) [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.7803328-blue.svg)](https://doi.org/10.5281/zenodo.7803328) [![Pipeline Steps](https://img.shields.io/badge/Pipeline%20Steps-24-blue.svg)](#%EF%B8%8F-processing-pipeline) [![Mermaid Diagrams](https://img.shields.io/badge/Mermaid%20Diagrams-4-green.svg)](#-key-features) [![Documentation](https://img.shields.io/badge/Documentation-Comprehensive-success.svg)](#-documentation) **A standardized text-based language for Active Inference generative models** [🚀 Quick Start](#-quick-start) • [📖 Documentation](#-documentation) • [🎯 Examples](#-examples) • [🛠️ Tools](#%EF%B8%8F-tools-and-utilities) • [🤝 Contributing](#-contributing)

📋 Table of Contents


🌟 Overview

Generalized Notation Notation (GNN) is a text-based language designed to standardize the representation and communication of Active Inference generative models. It aims to enhance clarity, reproducibility, and interoperability in the field of Active Inference and cognitive modeling.

📚 Initial Publication

Smékal, J., & Friedman, D. A. (2023). Generalized Notation Notation for Active Inference Models. Active Inference Journal.
📖 DOI: 10.5281/zenodo.7803328
📁 Archive: zenodo.org/records/7803328

🎯 Core Design Principles

GNN provides a structured and standardized way to describe complex cognitive models. It is designed to be:

  • 🧑‍💻 Human-readable: Easy to understand and use for researchers from diverse backgrounds
  • 🤖 Machine-parsable: Can be processed by software tools for analysis, visualization, and code generation
  • 🔄 Interoperable: Facilitates the exchange and reuse of models across different platforms and research groups
  • 🔬 Reproducible: Enables precise replication of model specifications

GNN addresses the challenge of communicating Active Inference models, which are often described using a mix of natural language, mathematical equations, diagrams, and code. By offering a unified notation, GNN aims to streamline collaboration, improve model understanding, and accelerate research.


🎯 Motivation and Goals

🚫 Current Challenges

The primary motivation behind GNN is to overcome the limitations arising from the lack of a standardized notation for Active Inference models. This fragmentation can lead to difficulties in:

  • 💬 Effective Communication: Making complex models hard to explain and understand
  • 🔄 Reproducibility: Hindering the ability to replicate research findings
  • ⚙️ Consistent Implementation: Leading to variations when translating models into code
  • 📊 Systematic Comparison: Making it challenging to compare different models

🎯 Our Goals

The goals of GNN are to:

  • ✅ Facilitate clear communication and understanding of Active Inference models
  • ✅ Promote collaboration among researchers
  • ✅ Enable the development of tools for model validation, visualization, and automated code generation
  • ✅ Support the creation of a shared repository of Active Inference models
  • ✅ Bridge the gap between theoretical concepts and practical implementations

✨ Key Features

🎭 The Triple Play Approach

GNN supports three complementary modalities for model representation, known as the "Triple Play":

```mermaid graph LR subgraph "🎭 Triple Play Approach" A["📝 Text-Based Models
• GNN Markdown files
• Human-readable syntax
• Mathematical notation
• Natural language descriptions"]

    B["📊 Graphical Models<br/>• Factor graphs<br/>• Network visualizations<br/>• Dependency diagrams<br/>• Interactive visualizations"]

    C["⚙️ Executable Models<br/>• PyMDP simulations<br/>• RxInfer.jl implementations<br/>• JAX computations<br/>• DisCoPy diagrams"]
end

A -->|Parse & Extract| B
A -->|Generate Code| C
B -->|Validate Structure| C
C -->|Simulate & Test| A
B -->|Visual Feedback| A
C -->|Results Analysis| B

style A fill:#e8f5e8,stroke:#4caf50
style B fill:#e3f2fd,stroke:#2196f3
style C fill:#fff3e0,stroke:#ff9800

```

  1. 📝 Text-Based Models: GNN files are plain text and can be rendered into mathematical notation, pseudocode, or natural language descriptions. This forms the core representation.

  2. 📊 Graphical Models: The structure defined in GNN (variables and their connections) can be visualized as graphical models (e.g., factor graphs), clarifying dependencies and model architecture.

  3. ⚙️ Executable Cognitive Models: GNN specifications can serve as a high-level blueprint or pseudocode for implementing executable simulations in various programming environments. This ensures consistency and aids in the translation from theory to practice.

📋 Structured File Format

GNN defines a specific file structure, typically using Markdown, to organize model components. This includes sections for:

  • 🏷️ Model metadata (name, version, annotations)
  • 🌐 State space (variable definitions)
  • 🔗 Connections (relationships between variables)
  • ⚙️ Initial parameterization
  • 📐 Equations
  • ⏰ Time settings (for dynamic models)
  • 🧠 Mapping to Active Inference Ontology terms

🏗️ Project Architecture

```mermaid graph TB subgraph "🏗️ GNN Project Architecture" subgraph "📁 Source Code (src/)" A[⚙️ Pipeline Scripts
0template.py → 22mcp.py] B[🧠 Core Modules
gnn/, render/, llm/] C[🔧 Utilities
utils/, pipeline/] D[🧪 Testing
tests/] end

    subgraph "📚 Documentation (doc/)"
        E[📖 Core Docs<br/>gnn/, syntax, examples]
        F[🎯 Specialized<br/>pymdp/, rxinfer/, mcp/]
        G[🧩 Applications<br/>cognitive_phenomena/]
    end

    subgraph "🎯 Outputs (output/)"
        H[📊 Reports<br/>Type checking, analysis]
        I[🎨 Visualizations<br/>Graphs, matrices]
        J[💻 Generated Code<br/>PyMDP, RxInfer]
        K[🌐 Static Site<br/>HTML summaries]
    end
end

A --> H
B --> I
B --> J
E --> A
F --> B
G --> B

style A fill:#e3f2fd
style B fill:#f3e5f5
style E fill:#e8f5e8
style H fill:#fff3e0

```

📁 Directory Structure

📂 src/ Directory Structure The `src/` directory contains the 24-step pipeline scripts (`0_template.py` → `23_report.py`), their corresponding modules, and shared infrastructure. See `DOCS.md` and `doc/pipeline/README.md` for the full step-by-step mapping. ``` src/ ├── 📜 Pipeline Scripts (0-23) │ ├── 0_template.py … 23_report.py # Thin orchestrators (0–23) ├── 🧠 Core Modules │ ├── gnn/ render/ execute/ llm/ visualization/ export/ type_checker/ ontology/ mcp/ │ ├── setup/ tests/ website/ audio/ analysis/ integration/ security/ research/ report/ ├── 🔧 Infrastructure: utils/ pipeline/ └── 🗂️ Orchestrator: main.py ```
📂 doc/ Directory Structure The `doc/` directory contains all supplementary documentation, including conceptual explanations, syntax guides, and examples. ``` doc/ ├── 📖 Core Documentation │ ├── gnn/ # GNN specifications │ ├── quickstart.md # Getting started guide │ ├── SETUP.md # Installation instructions │ └── README.md # Documentation overview ├── 🎯 Domain Applications │ ├── cognitive_phenomena/ # Cognitive modeling examples │ ├── pymdp/ # PyMDP integration │ ├── rxinfer/ # RxInfer.jl integration │ └── templates/ # Model templates ├── 🛠️ Technical Integration │ ├── mcp/ # Model Context Protocol │ ├── llm/ # LLM integration │ ├── discopy/ # DisCoPy categorical diagrams │ └── sympy/ # SymPy mathematical processing └── 📚 Resources ├── troubleshooting/ # Common issues & solutions ├── testing/ # Testing documentation └── security/ # Security guidelines ```

⚙️ Processing Pipeline

The GNN processing pipeline consists of 24 comprehensive steps (0-23), each handling a specific aspect of model processing from parsing to final report generation. The pipeline follows a thin orchestrator pattern where numbered scripts orchestrate execution while delegating core functionality to modular components.

```mermaid flowchart TD A["🚀 Start Pipeline"] --> B["0️⃣ Template Init
src/template/"] B --> C["1️⃣ Setup & Dependencies
src/setup/"] C --> D["2️⃣ Tests
src/tests/"] D --> E["3️⃣ GNN Discovery & Parsing
src/gnn/"] E --> F["4️⃣ Model Registry
src/modelregistry/"] F --> G["5️⃣ Type Checking
src/type
checker/"] G --> H["6️⃣ Validation
src/validation/"] H --> I["7️⃣ Export
src/export/"] I --> J["8️⃣ Visualization
src/visualization/"] J --> K["9️⃣ Advanced Viz
src/advancedvisualization/"] K --> L["1️⃣0️⃣ Ontology
src/ontology/"] L --> M["1️⃣1️⃣ Rendering
src/render/"] M --> N["1️⃣2️⃣ Execution
src/execute/"] N --> O["1️⃣3️⃣ LLM Analysis
src/llm/"] O --> P["1️⃣4️⃣ ML Integration
src/ml
integration/"] P --> Q["1️⃣5️⃣ Audio
src/audio/"] Q --> R["1️⃣6️⃣ Analysis
src/analysis/"] R --> S["1️⃣7️⃣ Integration
src/integration/"] S --> T["1️⃣8️⃣ Security
src/security/"] T --> U["1️⃣9️⃣ Research
src/research/"] U --> V["2️⃣0️⃣ Website
src/website/"] V --> W["2️⃣1️⃣ Report
src/report/"] W --> X["2️⃣2️⃣ MCP
src/mcp/"] X --> Y["✅ Complete"]

style A fill:#e1f5fe
style G fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style Y fill:#e8f5e8,stroke:#4caf50

```

🎯 GNN Processing Workflow

```mermaid flowchart TD subgraph "🧠 GNN Processing Workflow" A["📄 GNN File Input
.md format"] --> B["🔍 Discovery & Parsing
Extract sections"] B --> C["✅ Type Checking
Validate syntax & structure"] C --> D["📊 Multi-Format Export
JSON, XML, GraphML, Pickle"]

    C --> E["🎨 Visualization<br/>Generate graphs & matrices"]
    C --> F["🔄 Code Generation<br/>PyMDP, RxInfer & ActiveInference.jl templates"]

    F --> G["▶️ Simulation Execution<br/>Run generated code"]
    E --> H["🧠 LLM Analysis<br/>AI-powered insights"]

    D --> I["📚 Ontology Mapping<br/>Active Inference terms"]
    G --> J["📈 Results Analysis<br/>Performance metrics"]
    H --> K["🎵 Audio Generation<br/>SAPF, Pedalboard backends"]

    I --> L["🌐 Site Generation<br/>Static HTML reports"]
    J --> L
    K --> M["📊 Report Generation<br/>Comprehensive analysis"]

    L --> M
    M --> N["✨ Complete Analysis<br/>Multi-modal outputs"]
end

style A fill:#e1f5fe,stroke:#0277bd
style C fill:#fff3e0,stroke:#f57c00
style L fill:#e8f5e8,stroke:#388e3c

```

🏗️ Pipeline Architecture: Three-Tier Pattern

The pipeline follows a three-tier architectural pattern for maintainability and modularity:

main.py → Numbered Scripts (Thin Orchestrators) → Modular Scripts in Folders

🏛️ Architectural Components

  1. Main Pipeline Orchestrator (src/main.py): Central coordinator that executes numbered scripts in sequence
  2. Thin Orchestrators (src/0_template.py, src/1_setup.py, etc.): Minimal scripts that delegate to modules
  3. Modular Scripts (src/template/, src/setup/, etc.): Core functionality implementation

📋 Current Status

✅ Compliant Scripts (7/23): - src/0_template.pysrc/template/ - src/1_setup.pysrc/setup/ - src/6_validation.pysrc/validation/ - src/7_export.pysrc/export/ - src/8_visualization.pysrc/visualization/ - src/10_ontology.pysrc/ontology/ - src/11_render.pysrc/render/

🔄 Pending Refactoring (16/23): - src/2_tests.pysrc/tests/ (8 functions) - src/3_gnn.pysrc/gnn/ (1 function) - src/4_model_registry.pysrc/model_registry/ (3 functions) - src/5_type_checker.pysrc/type_checker/ (4 functions) - src/9_advanced_viz.pysrc/advanced_visualization/ (10 functions) - src/12_execute.pysrc/execute/ (14 functions) - And 10 more scripts...

📁 Example Structure

src/ ├── main.py # Main pipeline orchestrator ├── 0_template.py # Thin orchestrator - imports from template/ ├── template/ # Modular template implementation │ ├── __init__.py # Module exports and initialization │ ├── processor.py # Core template processing logic │ └── mcp.py # Model Context Protocol integration └── tests/ └── test_template_integration.py # Tests for template module

📚 Documentation

For comprehensive architectural documentation, see: - src/template/README.md: Reference implementation and pattern documentation - ARCHITECTURE.md: Complete architectural guide

🚀 Running the Pipeline

Navigate to the project's root directory and execute:

bash python src/main.py [options]

🛠️ Key Pipeline Options

| Option | Description | Default | |--------|-------------|---------| | --target-dir DIR | Target directory for GNN files | src/gnn/examples | | --output-dir DIR | Directory to save outputs | output/ | | --recursive | Recursively process directories | True | | --skip-steps LIST | Skip specific steps (e.g., "1,7") | None | | --only-steps LIST | Run only specific steps | None | | --verbose | Enable detailed logging | False | | --strict | Enable strict type checking | False | | --estimate-resources | Estimate computational resources | True |

📋 View All Pipeline Options ```bash python src/main.py --help ``` **Additional specialized options:** - `--ontology-terms-file FILE`: Path to ontology terms file - `--llm-tasks LIST`: Comma-separated LLM tasks - `--llm-timeout`: LLM processing timeout - `--pipeline-summary-file FILE`: Pipeline summary report path - `--site-html-filename NAME`: Generated HTML site filename - `--duration`: Audio duration for audio generation (default: 30.0) - `--audio-backend`: Audio backend to use (auto, sapf, pedalboard, default: auto) - `--recreate-uv-env`: Recreate UV environment - `--dev`: Install development dependencies

🛠️ Tools and Utilities

The GNN ecosystem includes several sophisticated tools to aid in model development, validation, and understanding. These tools are primarily invoked through the src/main.py pipeline script.

✅ Type Checker and Resource Estimator

The GNN Type Checker (pipeline step 4) helps validate GNN files and estimates computational resources.

🎯 Quick Usage

```bash

Run only type checker

python src/main.py --only-steps 4 --target-dir path/to/gnn_files

Include resource estimation

python src/main.py --only-steps 4 --estimate-resources --target-dir path/to/gnn_files

Run full pipeline

python src/main.py --target-dir path/to/gnn_files ```

📊 Features

  • ✅ Validation of required sections and structure
  • 🔍 Type checking of variables and dimensions
  • 🔗 Verification of connections and references
  • 📋 Detailed error reports with suggestions for fixes
  • 💾 Resource usage estimation and optimization recommendations

📁 Output Structure

When executed, the type checker writes to output/5_type_checker_output/:

output/5_type_checker_output/ ├── type_check_results.json ├── type_check_summary.json └── global_type_analysis.json

🎨 Visualization

GNN files can be visualized to create comprehensive graphical representations of models (pipeline step 6).

🎯 Usage

```bash

Generate visualizations

python src/main.py --only-steps 6 --target-dir path/to/gnn_file.md ```

🖼️ Visualization Types

  • 📊 Network Graphs: Model structure and dependencies
  • 🎨 Matrix Heatmaps: A, B, C, D matrix visualizations
  • 🧠 Ontology Diagrams: Active Inference relationship maps
  • 📈 Performance Plots: Resource usage and timing analysis

🎮 Interactive GUI Interfaces

GNN provides three distinct interactive GUI interfaces for visual model construction and editing (pipeline step 22).

🎯 GUI Overview

| GUI | Focus | Port | Key Features | |---------|-----------|----------|------------------| | GUI 1 | Form-based Constructor | :7860 | Step-by-step model building, component management | | GUI 2 | Visual Matrix Editor | :7861 | Real-time heatmaps, interactive matrix editing | | GUI 3 | Design Studio | :7862 | State space design, ontology editing, low-dependency |

🚀 Quick Launch

```bash

Launch all GUIs (recommended)

python src/22gui.py --target-dir input/gnnfiles --output-dir output --gui-mode all --interactive-mode --verbose

Launch specific GUI

python src/22gui.py --gui-mode gui3 --interactive-mode --verbose # Design Studio only

Launch via main pipeline

python src/main.py --only-steps 22 --verbose ```

🏗️ GUI Details

🔧 GUI 1: Form-based Constructor (http://localhost:7860) - Interactive two-pane editor for systematic GNN model construction - Component management (observation/hidden/action/policy variables)
- State space entry management with live validation - Synchronized plaintext GNN markdown editor

📊 GUI 2: Visual Matrix Editor (http://localhost:7861) - Real-time matrix heatmap visualizations with Plotly - Interactive DataFrame editing with +/- dimension controls - Vector bar chart displays for C & D vectors - Live matrix statistics (min, max, mean, sum) - Auto-update functionality and matrix validation

🎨 GUI 3: State Space Design Studio (http://localhost:7862) - Visual state space architecture designer with SVG diagrams - Ontology term editor for Active Inference concept mapping - Interactive connection graph interface (D>s, s-A, A-o format) - Parameter tuning controls (states, observations, actions, horizons) - Real-time GNN export and preview with low-dependency approach

📁 GUI Output Structure

output/22_gui_output/ ├── gui_1_output/ # Form-based constructor outputs │ ├── constructed_model_gui_1.md │ └── gui_status.json ├── gui_2_output/ # Visual matrix editor outputs │ ├── visual_model_gui_2.md │ └── visual_matrices.json ├── gui_3_output/ # Design studio outputs │ ├── designed_model_gui_3.md │ └── design_analysis.json └── gui_processing_summary.json


🚀 Quick Start

New to GNN? Choose your learning path:

🎯 Choose Your Journey

📚 Need guidance choosing?Complete Learning Paths Guide

🛠️ Direct Installation (if you know what you want)

1️⃣ Prerequisites

Ensure you have Python 3.9+ installed:

bash python --version # Should show 3.9 or higher

2️⃣ Clone Repository

bash git clone https://github.com/ActiveInferenceInstitute/GeneralizedNotationNotation.git cd GeneralizedNotationNotation

3️⃣ Setup Environment

Run the setup pipeline step to configure dependencies:

bash python src/main.py --only-steps 1 --dev

This will: - ✅ Create and configure virtual environment - 📦 Install all required dependencies - 🧪 Install development dependencies (with --dev) - ✅ Validate system requirements

4️⃣ Run Your First Pipeline (using uv)

Use uv to run the pipeline inside the managed project environment:

bash uv sync # ensure dependencies from pyproject.toml are installed uv run python src/main.py -- --target-dir src/gnn/examples --verbose

You can also run individual commands under uv (recommended):

bash uv run pytest # run tests inside uv-managed venv uv run python -m pytest

5️⃣ Explore Results

Check the generated outputs in the output/ directory. The static site is under the numbered website folder:

```bash ls -la output/ open output/20websiteoutput/website/index.html # macOS

or

xdg-open output/20websiteoutput/website/index.html # Linux ```

🆘 Need Help?

🔍 Common Issues & Solutions **🐍 Python Version Issues** ```bash # Check Python version python --version # If < 3.8, install Python 3.8+ from python.org ``` **📦 Dependency Issues** ```bash # Force reinstall dependencies uv run python src/main.py --only-steps 2 --recreate-uv-env --dev ``` **🔧 Pipeline Failures** ```bash # Run with verbose logging python src/main.py --verbose # Check specific step python src/main.py --only-steps 4 --verbose ``` **💾 Disk Space Issues** ```bash # Check available space df -h # Clean output directory rm -rf output/* ```

🔗 Get Support: - 📖 Documentation: See Documentation section below - 🐛 Known Issues: Check troubleshooting guide - 💬 Community: Open an issue on GitHub - 🚀 Quick Fix: Try python src/main.py --only-steps 2 --dev first


📖 Documentation

Comprehensive documentation is organized in the doc/ directory. Here are the key resources:

📚 Core Documentation

| Document | Description | |----------|-------------| | GNN Overview | High-level introduction to GNN | | Syntax Guide | Detailed GNN syntax specification | | File Structure | GNN file organization guide | | Quick Start Tutorial | Step-by-step beginner guide | | Comprehensive Project Docs | Full architecture, pipeline, and dataflow diagrams | | Architecture Guide | Implementation-oriented architecture and extension patterns | | Machine-Readable Indices | API index and generator |

🎯 Specialized Guides

| Topic | Documentation | |-------|---------------| | 🧠 Active Inference | About GNN | | 🤖 LLM Integration | LLM & Neurosymbolic AI | | 📊 Implementation | Implementation Guide | | 🛠️ Tools | Tools & Resources | | 📄 Research Paper | Academic Paper Details |

🎯 Integration Guides

| Platform | Documentation | |----------|---------------| | 🐍 PyMDP | PyMDP Integration | | 🔬 RxInfer.jl | RxInfer Integration | | 🧠 ActiveInference.jl | ActiveInference.jl Integration | | 📡 MCP | Model Context Protocol | | 🧮 SymPy | Mathematical Processing | | 🔄 DisCoPy | Categorical Diagrams |

🧩 Application Examples

| Domain | Examples | |--------|----------| | 🧠 Cognitive Phenomena | Cognitive Models | | 🎯 Templates | Model Templates | | 📋 Configuration | Configuration Examples |


🎯 Examples

Explore practical GNN implementations and use cases:

📂 Example Files Location

🔥 Featured Examples

| Example | Description | Location | |---------|-------------|----------| | 🎯 PyMDP POMDP Agent | Complete POMDP implementation | src/gnn/examples/actinf_pomdp_agent.md | | 🔬 RxInfer Hidden Markov Model | Probabilistic sequence modeling | doc/archive/rxinfer_hidden_markov_model.md | | 🧠 ActiveInference.jl Examples | Julia-based Active Inference models | doc/activeinference_jl/actinf_jl_src/ | | 🤝 Multi-Agent System | Collaborative agent modeling | doc/archive/rxinfer_multiagent_gnn.md |

🧠 Cognitive Phenomena Examples

| Phenomenon | Model | Documentation | |------------|-------|---------------| | 🎯 Attention | Attention mechanisms | doc/cognitive_phenomena/attention/ | | 🧠 Consciousness | Global workspace theory | doc/cognitive_phenomena/consciousness/ | | 💪 Cognitive Effort | Effort and control | doc/cognitive_phenomena/effort/ | | ❤️ Emotion & Affect | Interoceptive emotion | doc/cognitive_phenomena/emotion_affect/ | | 🎮 Executive Control | Task switching | doc/cognitive_phenomena/executive_control/ |

🏃‍♂️ Running Examples

```bash

Process all examples

python src/main.py --target-dir src/gnn/examples

Process specific example

python src/main.py --target-dir src/gnn/examples/actinfpomdpagent.md

Process with full analysis

python src/main.py --target-dir src/gnn/examples --estimate-resources --verbose ```

⚡ Power User Tips

🚀 Advanced Usage Patterns **🔥 Quick Commands** ```bash # Full pipeline with all features python src/main.py --verbose --estimate-resources --dev # Type check only (fastest validation) python src/main.py --only-steps 4 --strict # Visualization only (quick preview) python src/main.py --only-steps 6 # Complete analysis for single file python src/main.py --target-dir path/to/file.md --verbose ``` **🎯 Pipeline Optimization** ```bash # Skip time-consuming steps for quick iteration python src/main.py --skip-steps "11,12,13" # Focus on core processing python src/main.py --only-steps "1,4,5,6" # Development workflow python src/main.py --only-steps "2,3" --dev ``` **📊 Output Management** ```bash # Custom output directory python src/main.py -o /path/to/custom/output # Timestamped outputs python src/main.py -o "output/run_$(date +%Y%m%d_%H%M%S)" ```

🤝 Contributing

GNN is an evolving standard, and contributions are welcome! Here's how you can get involved:

🎯 Ways to Contribute

  • 🐛 Report Issues: Found a bug? Open an issue
  • 💡 Suggest Features: Have ideas? Start a discussion
  • 📝 Improve Documentation: Help make our docs better
  • 🧪 Add Examples: Share your GNN models
  • 🔧 Code Contributions: Submit pull requests

📋 Contribution Guidelines

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. ✅ Test your changes thoroughly
  4. 📝 Document your changes
  5. 💾 Commit with clear messages (git commit -m 'Add amazing feature')
  6. 📤 Push to your branch (git push origin feature/amazing-feature)
  7. 🔄 Submit a Pull Request

🛡️ Code of Conduct

Please read our Code of Conduct to understand the standards we maintain for our community.

📞 Getting Help

🙌 Recognition

All contributors will be recognized in our contributors list and release notes.


📄 License

This project is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). See LICENSE.md for full terms.

📋 License Summary

  • Attribution required
  • Adaptation/Redistribution permitted under the same license
  • Private use permitted
  • Commercial use not permitted without explicit permission
  • Include license and changes notice in redistributions

🔗 External Resources & Links

🌐 Active Inference Community

🛠️ Technical Resources

--- **Built by the Active Inference community** [⬆️ Back to top](#generalizednotationnotation-gnn)

Owner

  • Name: Active Inference Institute
  • Login: ActiveInferenceInstitute
  • Kind: user
  • Location: Online
  • Company: Active Inference Institute

http://activeinference.org/

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Friedman"
    given-names: "Daniel Ari"
    orcid: "0000-0001-6232-9096"
    affiliation: "Active Inference Institute"
  - name: "The GeneralizedNotationNotation Community Contributors"
    # This entry acknowledges all contributors. Individual contributors can be listed above if desired.

title: "GeneralizedNotationNotation (GNN)"
version: 1.1.0 # Current stable release
date-released: 2025-07-16

abstract: |
  Generalized Notation Notation (GNN) is a text-based language designed to standardize the representation and communication of Active Inference generative models. It aims to enhance clarity, reproducibility, and interoperability in the field of Active Inference and cognitive modeling. GNN provides a structured way to describe complex models, making them human-readable and machine-parsable. It supports a "Triple Play" approach: text-based models, graphical model visualizations, and a blueprint for executable cognitive models.

keywords:
  - "active inference"
  - "generative models"
  - "cognitive modeling"
  - "notation system"
  - "reproducibility"
  - "computational neuroscience"
  - "bayesian inference"
  - "notation system"
  - "standards"
  - "gnn"
  - "python"

license: CC-BY-NC-SA-4.0

repository-code: "https://github.com/ActiveInferenceInstitute/GeneralizedNotationNotation"
url: "https://activeinference.institute/" # General URL for the institute

references:
  - type: article
    authors:
      - family-names: "Smékal"
        given-names: "Jakub"
        # orcid: "0000-0003-4989-4968"
      - family-names: "Friedman"
        given-names: "Daniel Ari"
        # orcid: "0000-0001-6232-9096"
    title: "Generalized Notation Notation for Active Inference Models"
    journal: "Active Inference Journal"
    year: 2023
    doi: "10.5281/zenodo.7803328"
    url: "https://zenodo.org/records/7803328"
    notes: "Initial publication describing the GNN framework."

GitHub Events

Total
  • Issues event: 1
  • Watch event: 9
  • Member event: 2
  • Push event: 131
  • Fork event: 2
  • Create event: 3
Last Year
  • Issues event: 1
  • Watch event: 9
  • Member event: 2
  • Push event: 131
  • Fork event: 2
  • Create event: 3