File size: 8,197 Bytes
732765a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<svg width="750" height="500" xmlns="http://www.w3.org/2000/svg" font-family="sans-serif" font-size="10">
    <title>OV Inverse Trace - Conflict Node Attribution Residue Map</title>

    <style>
        .map-bg { fill: #f4f4f4; }
        .axis-label { font-weight: bold; text-anchor: middle; }
        .node-label { text-anchor: middle; dominant-baseline: central; }
        .conflict-label { font-weight: bold; text-anchor: end; dominant-baseline: central; }
        .glyph { font-size: 16px; text-anchor: middle; dominant-baseline: central; }
        .annotation { font-size: 9px; text-anchor: middle; fill: #4a4a4a; font-style: italic; }
        .symbolic-annotation { font-size: 9px; text-anchor: start; fill: #800080; font-weight: bold; }
        .trace-line { stroke: #6c757d; stroke-width: 1.5; marker-start: url(#arrowhead-rev); fill: none; } /* marker-start for reverse */
        .residue-line { stroke: #ff7b00; stroke-width: 1; marker-start: url(#arrowhead-res); fill: none; stroke-dasharray: 2, 2; }
        .grid-line { stroke: #e0e0e0; stroke-width: 0.5; }
        .interaction-glyph { fill: #003049; /* Dark blue for interaction */ }
        .node-glyph { fill: #d62828; /* Red for nodes/conflicts */ }
        .residue-value { opacity: 0.7; /* Base opacity for residue */ }
    </style>

    <defs>
        <marker id="arrowhead-rev" markerWidth="6" markerHeight="4" refX="5" refY="2" orient="auto">
            <polygon points="6 0, 0 2, 6 4" fill="#6c757d" />
        </marker>
        <marker id="arrowhead-res" markerWidth="5" markerHeight="3.5" refX="4" refY="1.75" orient="auto">
            <polygon points="5 0, 0 1.75, 5 3.5" fill="#ff7b00" />
        </marker>
        <symbol id="glyph-interaction" viewBox="-10 -10 20 20">
             <text class="glyph interaction-glyph" x="0" y="0">β‡Œ</text> </symbol>
        <symbol id="glyph-node" viewBox="-10 -10 20 20">
             <text class="glyph node-glyph" x="0" y="0">🜏</text> </symbol>
    </defs>

    <rect width="100%" height="100%" fill="#ffffff"/>

    <g transform="translate(100, 70)">
        <rect width="600" height="380" class="map-bg"/>

        <text x="300" y="-35" class="axis-label">Upstream Attribution Sources (Inverse Trace)</text>
        <text x="-65" y="190" class="axis-label" transform="rotate(-90, -65, 190)">OV Conflict Nodes</text>

        <text x="75" y="-15" class="node-label">Layer N (OV)</text>
        <text x="225" y="-15" class="node-label">Layer N-1 (K/V)</text>
        <text x="375" y="-15" class="node-label">Layer N-2 (Q/K)</text>
        <text x="525" y="-15" class="node-label">Layer N-x (Source)</text>

        <g id="rows">
            <g id="conflict-A" transform="translate(0, 63.33)">
                <text x="-15" y="0" class="conflict-label">Conflict A</text>
                <line x1="0" y1="0" x2="600" y2="0" class="grid-line"/>
                <text x="5" y="15" class="symbolic-annotation">[Symbolic: Polarity Inversion]</text>
            </g>
            <g id="conflict-B" transform="translate(0, 190)">
                <text x="-15" y="0" class="conflict-label">Conflict B</text>
                <line x1="0" y1="0" x2="600" y2="0" class="grid-line"/>
                 <text x="5" y="15" class="symbolic-annotation">[Symbolic: Semantic Ambiguity]</text>
            </g>
            <g id="conflict-C" transform="translate(0, 316.67)">
                <text x="-15" y="0" class="conflict-label">Conflict C</text>
                <line x1="0" y1="0" x2="600" y2="0" class="grid-line"/>
                 <text x="5" y="15" class="symbolic-annotation">[Symbolic: Context Mismatch]</text>
            </g>
        </g>
         <line x1="0" y1="380" x2="600" y2="380" class="grid-line"/> <g id="columns">
             <line x1="0" y1="0" x2="0" y2="380" class="grid-line"/>
             <line x1="150" y1="0" x2="150" y2="380" class="grid-line"/>
             <line x1="300" y1="0" x2="300" y2="380" class="grid-line"/>
             <line x1="450" y1="0" x2="450" y2="380" class="grid-line"/>
             <line x1="600" y1="0" x2="600" y2="380" class="grid-line"/>
        </g>

        <g id="inverse-trace-data">
            <g transform="translate(0, 63.33)">
                <use href="#glyph-node" x="75" y="0"/>
                <text x="75" y="15" class="annotation">(OV Conflict)</text>
                <path d="M 60 0 C 30 0, 255 -10, 240 -10" class="trace-line"/>
                <use href="#glyph-interaction" x="225" y="-10"/>
                 <path d="M 65 -5 C 100 -15, 180 -25, 215 -25" class="residue-line"/> <use href="#glyph-node" x="225" y="-25" class="residue-value"/>
                <path d="M 210 -10 C 180 -10, 405 5, 390 5" class="trace-line"/>
                <use href="#glyph-interaction" x="375" y="5"/>
                <path d="M 215 -25 C 250 -30, 330 -10, 365 -10" class="residue-line"/> <use href="#glyph-node" x="375" y="-10" class="residue-value"/>
                <path d="M 360 5 C 330 5, 555 0, 540 0" class="trace-line"/>
                <use href="#glyph-node" x="525" y="0"/>
                 <text x="525" y="15" class="annotation">(Source A1)</text>
            </g>

            <g transform="translate(0, 190)">
                <use href="#glyph-node" x="75" y="0"/>
                 <text x="75" y="15" class="annotation">(OV Conflict)</text>
                <path d="M 60 0 C 30 0, 255 -15, 240 -15" class="trace-line"/>
                <use href="#glyph-interaction" x="225" y="-15"/>
                <path d="M 60 0 C 30 0, 255 15, 240 15" class="trace-line"/>
                <use href="#glyph-interaction" x="225" y="15"/>
                 <path d="M 65 -5 C 100 -20, 180 -25, 215 -25" class="residue-line"/> <use href="#glyph-node" x="225" y="-25" class="residue-value"/>
                <path d="M 210 -15 C 180 -15, 405 0, 390 0" class="trace-line"/>
                <path d="M 210 15 C 180 15, 405 0, 390 0" class="trace-line"/>
                <use href="#glyph-interaction" x="375" y="0"/>
                 <text x="375" y="15" class="annotation">(Merge)</text>
                <path d="M 360 0 C 330 0, 555 0, 540 0" class="trace-line"/>
                <use href="#glyph-node" x="525" y="0"/>
                <text x="525" y="15" class="annotation">(Source B1)</text>
            </g>

             <g transform="translate(0, 316.67)">
                 <use href="#glyph-node" x="75" y="0"/>
                 <text x="75" y="15" class="annotation">(OV Conflict)</text>
                 <path d="M 60 0 C 0 0, 300 -10, 390 -10" class="trace-line" style="stroke-dasharray: 5, 5;"/>
                <use href="#glyph-interaction" x="375" y="-10"/>
                 <text x="375" y="-22" class="annotation">(Weak Link)</text>
                 <path d="M 60 0 C 30 0, 255 10, 240 10" class="trace-line" style="stroke-width: 2.5;"/>
                 <use href="#glyph-interaction" x="225" y="10" style="font-size: 20px;"/>
                 <path d="M 65 5 C 100 -5, 180 -15, 215 -15" class="residue-line" style="stroke-width: 2;"/> <use href="#glyph-node" x="225" y="-15" class="residue-value" style="opacity: 1;"/>
                 <path d="M 210 10 C 180 10, 555 5, 540 5" class="trace-line" style="stroke-width: 2.5;"/>
                 <use href="#glyph-node" x="525" y="5"/>
                 <text x="525" y="20" class="annotation">(Source C1)</text>
            </g>
        </g>

    </g>

    <g transform="translate(100, 465)">
        <text x="0" y="10" font-weight="bold">Legend:</text>
        <use href="#glyph-node" x="70" y="10"/>
        <text x="85" y="12">🜏: Node (OV Conflict / Source / Residue Anchor)</text>
        <use href="#glyph-interaction" x="350" y="10"/>
        <text x="365" y="12">β‡Œ: Interaction Point (Inverse Trace)</text>

        <g transform="translate(0, 15)">
            <line x1="70" y1="10" x2="100" y2="10" class="trace-line"/>
            <text x="105" y="12">Inverse Attribution Trace</text>
            <line x1="280" y1="10" x2="310" y2="10" class="residue-line"/>
            <text x="315" y="12">Attribution Residue Path</text>
             <text x="480" y="12" class="symbolic-annotation">[Symbolic Annotation]</text>
        </g>
    </g>
</svg>