Aruuz Nigar — Conceptual Overview
This document is intended as a conceptual introduction for advanced users and developers.
Purpose and Scope
- Provide a systematic way to analyze the meter of Urdu poetry
- Make classical arūz concepts accessible through computation
- Serve both as a learning aid and an analytical tool
- Focus on correctness, explainability, and openness rather than speed or polish
What Aruuz Nigar Does
- Accepts Urdu poetic text as input
- Infers possible taqti patterns for each line
- Matches inferred patterns against known bahrs
- Identifies one dominant meter across related lines when possible
- Preserves ambiguity instead of forcing a single interpretation
What Aruuz Nigar Does Not Do
- It does not “correct” poetry or judge poetic quality
- It does not assume a single universally correct taqti
- It does not attempt free-verse scansion
- It does not replace human understanding of arūz
Core Concepts
Aruuz as a Rule-Based System
- Urdu arūz follows structured prosodic rules
- These rules admit flexibility and context-dependent variation
- Aruuz Nigar encodes rules explicitly rather than statistically
- Heuristics are used only where rules permit ambiguity
Words, Syllables, and Taqti
- Words are the smallest meaningful scansion units
- Each word may admit multiple syllabic interpretations
- Taqti represents syllable length as symbolic codes
- Word-level ambiguity is expected and preserved
Meters (Bahr) and Feet (Rukn)
- A bahr is a structured pattern of feet
- Each foot represents a fixed rhythmic sequence
- Meters may admit multiple structural variants
- Matching is based on pattern compatibility, not exact string equality
How the System Thinks
Determinism and Heuristics
- Given the same input, the engine produces the same results
- Dictionary lookups are preferred where available
- Heuristics are applied only when lexical certainty is unavailable
- All heuristic decisions are traceable and explainable
Ambiguity as a First-Class Outcome
- Multiple valid scans may coexist
- Ambiguity reflects real pronunciation and prosodic variation
- Suppressing ambiguity too early leads to incorrect results
- Resolution is deferred to higher analytical levels
Over-Generation and Later Pruning
- The system deliberately generates more possibilities than needed
- Invalid paths are eliminated during meter matching
- Remaining candidates are scored and compared
- Only implausible interpretations are discarded, not uncertain ones
Levels of Analysis
Word-Level Analysis
- Assigns one or more scansion codes to each word
- Uses dictionary data, morphology, and heuristics
- Produces the highest degree of ambiguity
Line-Level Analysis
- Combines word-level codes into complete rhythmic paths
- Applies contextual prosodic rules between words
- Matches complete paths against meter definitions
- Produces multiple possible meters per line if applicable
Multi-Line (Sher) Resolution
- Assumes classical consistency of meter across related lines
- Scores meter compatibility across lines
- Selects the most consistent meter as dominant
- Retains per-line detail even after resolution
Interpreting Results
Multiple Valid Scans
- Multiple outputs do not imply error
- They reflect genuine alternative readings
- Human judgment remains essential in interpretation
Dominant Bahr Selection
- Dominance is a scoring-based decision
- It reflects consistency, not absolute correctness
- Alternate meters are discarded only after comparison
When and Why Results May Differ from Expectation
- Differences may arise from pronunciation assumptions
- Dialectal or poetic license can affect scansion
- Some classical ambiguities have no single resolution
- The system favors explainability over concealment
Intended Users
Poets and Advanced Readers
- To explore how lines fit classical meters
- To understand why a line scans in a particular way
- To study alternative readings and edge cases
Developers and Researchers
- To study computational modeling of arūz
- To extend or experiment with scansion logic
- To use the engine in non-UI contexts
Where to Go Next
Pipeline Overview
- For a stage-by-stage conceptual walkthrough of the process
Engine Execution Flow
- For class- and phase-level understanding of the core engine
Deep Internal Data Flow
- For function-level tracing and contributor-oriented detail