Minotaur Architecture Implementation

Advanced Compiler-Compiler Platform

Minotaur Architecture Implementation

Overview

This document describes the correct architecture implementation for Minotaur, focusing on:

Architecture Components

1. CognitiveGraph Visualization System

Core Models (src/Minotaur.Core/Models/Visualization/)

Services (src/Minotaur.Core/Services/Visualization/)

Controllers (src/Minotaur.Core/Controllers/Visualization/)

Blazor Components (src/Minotaur.UI.Blazor/Components/Shared/)

JavaScript (src/Minotaur.UI.Blazor/wwwroot/js/)

Tests (src/Minotaur.Tests/Visualization/)

2. Grammar Editor System

Core Models (src/Minotaur.Core/Models/Grammar/)

Blazor Components (src/Minotaur.UI.Blazor/Components/GrammarEditor/)

3. Plugin Management System

Core Models (src/Minotaur.Core/Models/Plugins/)

Blazor Components (src/Minotaur.UI.Blazor/Components/PluginManager/)

Key Design Decisions

1. Preserving Ambiguity

Problem: Traditional AST visualizers force a single unambiguous tree, but Minotaur needs to support evolving languages where ambiguity is a feature.

Solution:

2. Direct CognitiveGraph Integration

Problem: Need to visualize CognitiveGraph without losing information.

Solution:

3. Interactive Exploration

Problem: Users need to understand and navigate ambiguity.

Solution:

4. Grammar Editor Architecture

Problem: Need a flexible editor for defining grammars.

Solution:

5. Plugin System

Problem: Need extensibility for different languages and features.

Solution:

File Structure

Minotaur/
├── src/
│   ├── Minotaur.Core/
│   │   ├── Models/
│   │   │   ├── Visualization/
│   │   │   │   └── GraphData.cs
│   │   │   ├── Grammar/
│   │   │   │   ├── TokenDefinition.cs
│   │   │   │   ├── RuleDefinition.cs
│   │   │   │   └── GrammarDefinition.cs
│   │   │   └── Plugins/
│   │   │       └── PluginInfo.cs
│   │   ├── Services/
│   │   │   └── Visualization/
│   │   │       └── ICognitiveGraphVisualizer.cs
│   │   └── Controllers/
│   │       └── Visualization/
│   │           └── VisualizationController.cs
│   │
│   ├── Minotaur.UI.Blazor/
│   │   ├── Components/
│   │   │   ├── Shared/
│   │   │   │   └── CognitiveGraphVisualizer.razor
│   │   │   ├── GrammarEditor/
│   │   │   │   ├── TokenEditor.razor
│   │   │   │   ├── RuleEditor.razor
│   │   │   │   ├── GrammarPreview.razor
│   │   │   │   └── TestPanel.razor
│   │   │   └── PluginManager/
│   │   │       ├── PluginGallery.razor
│   │   │       ├── InstalledPlugins.razor
│   │   │       └── PluginDetails.razor
│   │   └── wwwroot/
│   │       └── js/
│   │           └── cognitiveGraphVisualization.js
│   │
│   └── Minotaur.Tests/
│       └── Visualization/
│           ├── CognitiveGraphVisualizerTests.cs
│           ├── VisualizationControllerTests.cs
│           └── GraphDataModelTests.cs

Integration Points

CognitiveGraph Integration

The visualization system directly uses CognitiveGraph’s native types:

Blazor/JavaScript Interop

Testing Strategy

  1. Unit Tests: Test individual components in isolation
  2. Integration Tests: Test component interactions
  3. Visual Tests: Manual verification of rendering
  4. End-to-End Tests: Full user workflows

Future Enhancements

  1. Performance Optimization: Large graph handling
  2. Advanced Layouts: Hierarchical, tree, circular layouts
  3. 3D Visualization: WebGL-based 3D graph
  4. Collaboration: Real-time shared visualization
  5. Export: SVG, PNG, PDF export
  6. Animation: Smooth transitions between interpretations

Conclusion

This architecture provides:

The implementation correctly handles the unique requirements of Minotaur: