Specification
The HGraph Language Design Specification serves as the authoritative reference for the HGraph programming language and runtime system. It enables implementation of compatible HGraph runtimes in any programming language while maintaining semantic equivalence with the reference Python implementation.
Specification Documents
- Specification Index
- Part I: Overview
- Part II: Type System
- Part III: Wiring System
- 1. Introduction
- 2. Decorators
- 3. Wiring Context
- 4. Signatures
- 5. Wiring Nodes and Ports
- 6. Type Resolution
- 7. Graph Building
- 8. Nested Graphs and Expansion
- 9. Error Handling at Wiring Time
- 10. Wiring-Time Evaluation
- 11. Special Wiring Constructs
- 12. Builder Creation
- 13. Implementation Notes
- 14. Reference Locations
- 14. Next Steps
- Part IV: Runtime System
- 1. Introduction
- 2. Lifecycle
- 3. Graph
- 4. Scheduler
- 5. Clock
- 6. Evaluation Loop
- 7. Notification System
- 8. Input/Output Binding
- 9. Active/Passive Subscriptions
- 10. Modification Tracking
- 11. Error Handling
- 12. Execution Modes
- 13. Injectable Types
- 14. Engine Configuration
- 15. Thread Safety
- 16. Implementation Notes
- 17. Reference Locations
- 17. Next Steps
- Part V: Time-Series Types
- 1. Introduction
- 2. Common Properties
- 3. TS[T] - Scalar Time-Series
- 4. TSB[Schema] - Time-Series Bundle
- 5. TSL[T, Size] - Time-Series List
- 6. TSD[K, V] - Time-Series Dictionary
- 7. TSS[T] - Time-Series Set
- 8. TSW[T, Size] - Time-Series Window
- 9. REF[T] - Time-Series Reference
- 10. Validity Semantics
- 11. Delta Value Semantics
- 12. Input/Output Architecture
- 13. Setting Values on Outputs
- 14. Delta Value Creation
- 15. REF Operations and Binding Semantics
- 16. Type Conversion
- 17. Reference Locations
- 18. Next Steps
- Part VI: Node Types
- 1. Introduction
- 2. Node Base Properties
- 3. Compute Node
- 4. Sink Node
- 5. Push Source Node
- 6. Pull Source Node
- 7. Generator
- 8. Graph
- 9. Operator
- 10. Service Infrastructure
- 11. Special Nodes
- 12. Injectable Parameters
- 13. Node Decorators
- 14. Error Handling in Nodes
- 15. Reference Locations
- 16. Next Steps
- Part VII: Operators and Standard Library
- 1. Introduction
- 2. Arithmetic Operators
- 3. Comparison Operators
- 4. Logical Operators
- 5. Flow Control
- 6. Collection Operations
- 7. Window Operations
- 8. Temporal Operations
- 9. Aggregation Functions
- 10. String Operations
- 11. Mathematical Functions
- 12. Utility Functions
- 13. Collection Constructors
- 14. Higher-Order Functions
- 15. Operator Overloading
- 16. Extending Operators
- 17. Reference Locations
- 18. Standard Library Reference Locations
- 19. Summary
- Part VIII: Advanced Concepts
- Part IX: Control Flow
- 1. Introduction
- 2. switch_ (Dynamic Graph Selection)
- 3. map_ (Multiplexed Computation)
- 4. reduce_ (Collection Aggregation)
- 5. mesh_ (Interconnected Map)
- 6. feedback (Cycle Creation)
- 7. dispatch (Runtime Type Dispatch)
- 8. nested_graph (Reference-Based Composition)
- 9. lift (Scalar to Time-Series)
- 10. Context (Time-Series Context Managers)
- 11. Input Markers
- 12. Summary Table
- 13. Reference Locations
- 14. Next Steps
- Part X: Data Sources and Record/Replay