graph-structure-left-to-right.html 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <style>
  2. .stage {
  3. margin-top: 18px;
  4. padding: 14px;
  5. border: 1px solid #dbe3ec;
  6. border-radius: 16px;
  7. background: #f8fafc;
  8. overflow-x: auto;
  9. }
  10. .notes {
  11. display: grid;
  12. grid-template-columns: repeat(3, 1fr);
  13. gap: 12px;
  14. margin-top: 14px;
  15. }
  16. .note {
  17. padding: 12px 14px;
  18. border-radius: 12px;
  19. background: #fff;
  20. border: 1px solid #e2e8f0;
  21. color: #475569;
  22. font-size: 13px;
  23. }
  24. .note strong { color: #0f172a; }
  25. .question {
  26. margin-top: 16px;
  27. padding: 14px 16px;
  28. border-radius: 12px;
  29. background: #eff6ff;
  30. border: 1px solid #bfdbfe;
  31. color: #1e3a8a;
  32. }
  33. @media (max-width: 900px) {
  34. .notes { grid-template-columns: 1fr; }
  35. }
  36. </style>
  37. <h2>确认后的结构:从左到右阅读</h2>
  38. <p class="subtitle">树提供稳定坐标,关系线表达交织,平台需求是最终可执行输出;同一需求汇聚多种正交证据,但业务实体只保留一条。</p>
  39. <div class="stage">
  40. <svg viewBox="0 0 1160 500" width="100%" style="min-width:980px" role="img" aria-label="从左到右的树骨架关系图">
  41. <defs>
  42. <marker id="grayArrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 z" fill="#94a3b8"/></marker>
  43. <marker id="redArrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 z" fill="#ef4444"/></marker>
  44. <marker id="orangeArrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 z" fill="#f59e0b"/></marker>
  45. </defs>
  46. <g font-family="sans-serif">
  47. <text x="70" y="30" text-anchor="middle" font-size="12" fill="#64748b">稳定主题方向</text>
  48. <text x="330" y="30" text-anchor="middle" font-size="12" fill="#64748b">分类树骨架</text>
  49. <text x="625" y="30" text-anchor="middle" font-size="12" fill="#64748b">具体业务节点与关系</text>
  50. <text x="910" y="30" text-anchor="middle" font-size="12" fill="#64748b">平台需求输出</text>
  51. <text x="1082" y="30" text-anchor="middle" font-size="12" fill="#64748b">正交证据</text>
  52. </g>
  53. <!-- Main left-to-right flow -->
  54. <g fill="none" stroke="#94a3b8" stroke-width="2.2" marker-end="url(#grayArrow)">
  55. <path d="M142 244 C180 244 190 116 238 116"/>
  56. <path d="M142 244 C180 244 190 244 238 244"/>
  57. <path d="M142 244 C180 244 190 372 238 372"/>
  58. <path d="M402 116 L485 116"/>
  59. <path d="M402 244 L485 244"/>
  60. <path d="M402 372 L485 372"/>
  61. </g>
  62. <!-- Tree branches -->
  63. <g fill="none" stroke="#94a3b8" stroke-width="2">
  64. <path d="M570 116 L610 86 M570 116 L610 146"/>
  65. <path d="M570 244 L610 214 M570 244 L610 274"/>
  66. <path d="M570 372 L610 342 M570 372 L610 402"/>
  67. </g>
  68. <!-- Cross-tree semantic relationships -->
  69. <g fill="none" stroke="#ef4444" stroke-width="2.2" stroke-dasharray="7 5" marker-end="url(#redArrow)">
  70. <path d="M702 146 C735 158 730 203 702 214"/>
  71. <path d="M702 214 C755 230 755 327 702 342"/>
  72. <path d="M702 146 C790 178 793 320 702 342"/>
  73. <path d="M702 274 C746 292 746 382 702 402"/>
  74. </g>
  75. <!-- Nodes to demands -->
  76. <g fill="none" stroke="#f59e0b" stroke-width="2.4" marker-end="url(#orangeArrow)">
  77. <path d="M704 146 C770 146 779 142 822 142"/>
  78. <path d="M704 214 C762 205 782 168 822 154"/>
  79. <path d="M704 342 C775 317 778 181 822 163"/>
  80. <path d="M704 146 C772 190 778 293 822 315"/>
  81. <path d="M704 274 C770 278 780 310 822 326"/>
  82. <path d="M704 402 C765 390 779 350 822 338"/>
  83. </g>
  84. <!-- Evidence links -->
  85. <g fill="none" stroke="#8b5cf6" stroke-width="1.7" stroke-dasharray="4 4">
  86. <path d="M988 142 L1027 100"/><path d="M988 142 L1027 164"/><path d="M988 142 L1027 228"/>
  87. <path d="M988 326 L1027 292"/><path d="M988 326 L1027 356"/><path d="M988 326 L1027 420"/>
  88. </g>
  89. <!-- Stable direction -->
  90. <rect x="18" y="210" width="124" height="68" rx="16" fill="#1d4ed8"/>
  91. <text x="80" y="239" text-anchor="middle" font-family="sans-serif" font-size="15" fill="#fff">近现代历史人物</text>
  92. <text x="80" y="260" text-anchor="middle" font-family="sans-serif" font-size="15" fill="#fff">兴趣方向</text>
  93. <!-- Trees -->
  94. <g font-family="sans-serif" font-size="14" text-anchor="middle">
  95. <rect x="238" y="88" width="164" height="56" rx="14" fill="#dbeafe" stroke="#60a5fa"/><text x="320" y="121">全局树 · 人物分支</text>
  96. <rect x="238" y="216" width="164" height="56" rx="14" fill="#dcfce7" stroke="#4ade80"/><text x="320" y="249">全局树 · 事件分支</text>
  97. <rect x="238" y="344" width="164" height="56" rx="14" fill="#fae8ff" stroke="#d946ef"/><text x="320" y="377">全局树 · 表达分支</text>
  98. <rect x="485" y="91" width="85" height="50" rx="12" fill="#eff6ff" stroke="#60a5fa"/><text x="528" y="121">历史人物</text>
  99. <rect x="485" y="219" width="85" height="50" rx="12" fill="#f0fdf4" stroke="#4ade80"/><text x="528" y="249">人生事件</text>
  100. <rect x="485" y="347" width="85" height="50" rx="12" fill="#fdf4ff" stroke="#d946ef"/><text x="528" y="377">人物情感</text>
  101. </g>
  102. <!-- Concrete nodes -->
  103. <g font-family="sans-serif" font-size="13" text-anchor="middle">
  104. <rect x="610" y="66" width="94" height="40" rx="10" fill="#fff" stroke="#60a5fa"/><text x="657" y="91">毛泽东</text>
  105. <rect x="610" y="126" width="94" height="40" rx="10" fill="#fff" stroke="#60a5fa"/><text x="657" y="151">朱德</text>
  106. <rect x="610" y="194" width="94" height="40" rx="10" fill="#fff" stroke="#4ade80"/><text x="657" y="219">抗日战争</text>
  107. <rect x="610" y="254" width="94" height="40" rx="10" fill="#fff" stroke="#4ade80"/><text x="657" y="279">解放战争</text>
  108. <rect x="610" y="322" width="94" height="40" rx="10" fill="#fff" stroke="#d946ef"/><text x="657" y="347">家国情怀</text>
  109. <rect x="610" y="382" width="94" height="40" rx="10" fill="#fff" stroke="#d946ef"/><text x="657" y="407">诗词创作</text>
  110. </g>
  111. <!-- Demand nodes -->
  112. <g font-family="sans-serif" text-anchor="middle">
  113. <rect x="822" y="105" width="166" height="74" rx="14" fill="#fff7ed" stroke="#f59e0b" stroke-width="2"/>
  114. <text x="905" y="130" font-size="13" fill="#9a3412">平台需求 001</text>
  115. <text x="905" y="150" font-size="14">毛泽东的</text>
  116. <text x="905" y="168" font-size="14">战争时期经历</text>
  117. <rect x="822" y="289" width="166" height="74" rx="14" fill="#fff7ed" stroke="#f59e0b" stroke-width="2"/>
  118. <text x="905" y="314" font-size="13" fill="#9a3412">平台需求 002</text>
  119. <text x="905" y="334" font-size="14">毛泽东为何在战争中</text>
  120. <text x="905" y="352" font-size="14">持续进行诗词创作</text>
  121. </g>
  122. <!-- Evidence nodes -->
  123. <g font-family="sans-serif" font-size="11" text-anchor="middle">
  124. <rect x="1027" y="82" width="108" height="36" rx="18" fill="#ede9fe" stroke="#8b5cf6"/><text x="1081" y="104">外部热度</text>
  125. <rect x="1027" y="146" width="108" height="36" rx="18" fill="#ede9fe" stroke="#8b5cf6"/><text x="1081" y="168">平台近期缺口</text>
  126. <rect x="1027" y="210" width="108" height="36" rx="18" fill="#ede9fe" stroke="#8b5cf6"/><text x="1081" y="232">后验效果</text>
  127. <rect x="1027" y="274" width="108" height="36" rx="18" fill="#ede9fe" stroke="#8b5cf6"/><text x="1081" y="296">长期持续性</text>
  128. <rect x="1027" y="338" width="108" height="36" rx="18" fill="#ede9fe" stroke="#8b5cf6"/><text x="1081" y="360">去年同期</text>
  129. <rect x="1027" y="402" width="108" height="36" rx="18" fill="#ede9fe" stroke="#8b5cf6"/><text x="1081" y="424">真实 ROV/VOV</text>
  130. </g>
  131. <!-- Edge labels -->
  132. <g font-family="sans-serif" font-size="10" fill="#b91c1c">
  133. <text x="720" y="177">经历</text>
  134. <text x="739" y="279">引发</text>
  135. <text x="765" y="231">人物—事件—情感</text>
  136. </g>
  137. </svg>
  138. </div>
  139. <div class="notes">
  140. <div class="note"><strong>多挂靠:</strong>每条平台需求可以连接多个正式分类节点;统计去重需要时另设统计主归属。</div>
  141. <div class="note"><strong>关系线:</strong>同一需求可连接多个人物、事件、情感等节点;节点之间也保留“经历、引发、关联”等语义边。</div>
  142. <div class="note"><strong>证据合并:</strong>内外部、时间周期、供需缺口和后验结果不拆成重复需求,而是作为同一需求的独立证据。</div>
  143. </div>
  144. <div class="question">
  145. 已确认:平台需求以多挂靠表达跨分支语义,人物、战争事件、诗词创作和家国表达可以共同参与定义需求。
  146. </div>