A narrative path is the linear story you get by following one labeled narrative flow through distinct topic nodes.
Here’s how Christine Müller’s paper grounds and sharpens the “narrative path” idea we’ve been using: [dmx](https://dmx.ralfbarkow.ch/systems.dmx.webclient/#/topicmap/874648/topic/899529/related) * #What a narrative path is In Müller’s model, topics are nodes in a **variant graph**; edges can be **semantic dependencies**, **narrative flows**, or **variant relations**. A **narrative walk** is any sequence of nodes connected by narrative-flow edges that share the same flow reference “#”. A **narrative path** is the *simple* (no repeated nodes) version of that walk. In short: a narrative path is the linear story you get by following one labeled narrative flow through distinct topic nodes. * #Why it matters The system *produces documents by traversing narrative paths*, not just hyperlink trails. Narrative edges may carry **transitional text** (“as we now define…”) so the linearization reads coherently, something plain topic chains usually lack. Variants on content and on narrative flows let the system pick the best storyline for a given reader. * #How a path is chosen (algorithmic gist) The hybrid traversal builds a global path **P** by repeatedly grabbing the **longest narrative path** that best matches the user’s **adaptation context** Λ (an ordered set of preference constraints). The match score for a candidate path is the average of node-level weights derived from how each node’s context annotations satisfy Λ. If no narrative option fits, it falls back to a path over semantic dependencies (and, if needed, to a context-based sequencing). Listings 1–3 specify this precisely. * #How to map this to our topicmap/DMX backend 1. **Types & IDs:** Represent associations of type `narrative` with a required property `flowRef` (= Müller’s “#”) so multiple alternative flows can coexist; keep `semantic` and `variant` as separate association types. Store optional `transitionText` on `narrative` edges. 2. **Context annotations:** Put node/edge annotations as key–value sets; preserve order/priority from Λ to compute weights exactly like Müller’s `w(P)` (average over nodes). 3. **Path selection:** Given current tail node `n` of P, search for the longest simple path that: (a) follows `narrative` edges with equal `flowRef`, (b) maximizes the match score under Λ, and (c) doesn’t revisit nodes. If none starts at `n`, allow any start; if still none, compute a semantic path/topological segment as fallback. 4. **Granularity passes:** First traverse container topics (e.g., theories/sections) to lay out the chapter sequence; then, for each section, traverse constituent graphs (definitions, proofs, examples) to linearize the inner narrative—exactly the two-level iteration Müller uses. * #Practical litmus tests (for our “narrative path” concept) * **Distinctness:** Does our story route forbid node repetition? If yes, we have a path (not just a walk). * **Flow identity:** Are consecutive edges in the story tagged with the same `flowRef`? That’s a single narrative path rather than a stitched set of flows. * **Personalization:** Can we rank competing paths by Λ and pick the top-scoring path segment when extending P? That’s Müller’s selection logic. * **Coherence:** Do we render edge-level `transitionText` when crossing edges? That’s how the path produces readable narrative, not just an ordered list. If we implement those four pieces, our “narrative path” matches Müller’s formalism: a maximal, context-best, distinct-node route along a single labeled narrative flow, with variants and fallbacks ensuring both personalization and coverage.
~
MÜLLER, Christine, [no date]. From Topics to Narrative Documents. pdf
.