@zh-xx/antu 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +11 -0
  3. package/THIRD-PARTY-NOTICES.md +739 -0
  4. package/assets/viewer.html +1503 -0
  5. package/bin/antu-mcp.mjs +1549 -0
  6. package/bin/antu.mjs +1494 -0
  7. package/examples/agent/fact/1-minimal.en.json +57 -0
  8. package/examples/agent/fact/1-minimal.zh-CN.json +29 -0
  9. package/examples/agent/fact/2-single-actor.en.json +66 -0
  10. package/examples/agent/fact/2-single-actor.zh-CN.json +28 -0
  11. package/examples/agent/fact/3-groups.en.json +34 -0
  12. package/examples/agent/fact/3-groups.zh-CN.json +34 -0
  13. package/examples/agent/fact/4-views.en.json +44 -0
  14. package/examples/agent/fact/4-views.zh-CN.json +44 -0
  15. package/examples/agent/fact/5-duration.en.json +28 -0
  16. package/examples/agent/fact/5-duration.zh-CN.json +28 -0
  17. package/examples/agent/fact/6-sources.en.json +30 -0
  18. package/examples/agent/fact/6-sources.zh-CN.json +30 -0
  19. package/examples/agent/fact/7-undated.en.json +34 -0
  20. package/examples/agent/fact/7-undated.zh-CN.json +34 -0
  21. package/examples/agent/justification/1-minimal.en.json +83 -0
  22. package/examples/agent/justification/1-minimal.zh-CN.json +83 -0
  23. package/examples/agent/justification/2-against-and-rejected.en.json +82 -0
  24. package/examples/agent/justification/2-against-and-rejected.zh-CN.json +82 -0
  25. package/examples/agent/justification/3-issues.en.json +107 -0
  26. package/examples/agent/justification/3-issues.zh-CN.json +107 -0
  27. package/examples/agent/justification/4-shared-fact.en.json +111 -0
  28. package/examples/agent/justification/4-shared-fact.zh-CN.json +111 -0
  29. package/examples/agent/justification/5-sources.en.json +97 -0
  30. package/examples/agent/justification/5-sources.zh-CN.json +97 -0
  31. package/examples/agent/justification/6-all-or-any.en.json +98 -0
  32. package/examples/agent/justification/6-all-or-any.zh-CN.json +98 -0
  33. package/examples/agent/procedure/1-minimal.en.json +15 -0
  34. package/examples/agent/procedure/1-minimal.zh-CN.json +15 -0
  35. package/examples/agent/procedure/2-decision.en.json +17 -0
  36. package/examples/agent/procedure/2-decision.zh-CN.json +17 -0
  37. package/examples/agent/procedure/3-branches.en.json +22 -0
  38. package/examples/agent/procedure/3-branches.zh-CN.json +22 -0
  39. package/examples/agent/procedure/4-stages.en.json +34 -0
  40. package/examples/agent/procedure/4-stages.zh-CN.json +34 -0
  41. package/examples/agent/procedure/5-inferred-spine.en.json +21 -0
  42. package/examples/agent/procedure/5-inferred-spine.zh-CN.json +21 -0
  43. package/examples/agent/procedure/6-merged-edges.en.json +19 -0
  44. package/examples/agent/procedure/6-merged-edges.zh-CN.json +19 -0
  45. package/examples/agent/procedure/7-rules.en.json +30 -0
  46. package/examples/agent/procedure/7-rules.zh-CN.json +30 -0
  47. package/examples/agent/relationship/1-minimal.en.json +28 -0
  48. package/examples/agent/relationship/1-minimal.zh-CN.json +28 -0
  49. package/examples/agent/relationship/2-equity.en.json +59 -0
  50. package/examples/agent/relationship/2-equity.zh-CN.json +59 -0
  51. package/examples/agent/relationship/3-guarantee.en.json +51 -0
  52. package/examples/agent/relationship/3-guarantee.zh-CN.json +51 -0
  53. package/examples/agent/relationship/4-groups.en.json +68 -0
  54. package/examples/agent/relationship/4-groups.zh-CN.json +68 -0
  55. package/examples/agent/relationship/5-kinship.en.json +69 -0
  56. package/examples/agent/relationship/5-kinship.zh-CN.json +69 -0
  57. package/examples/fact/fang-yuan-loan-and-conflict.en.json +330 -0
  58. package/examples/fact/fang-yuan-loan-and-conflict.zh-CN.json +237 -0
  59. package/examples/fact/gym-membership-face-scan.en.json +181 -0
  60. package/examples/fact/gym-membership-face-scan.zh-CN.json +181 -0
  61. package/examples/fact/lin-fang-v-zhao-lei-private-lending.en.json +122 -0
  62. package/examples/fact/lin-fang-v-zhao-lei-private-lending.zh-CN.json +122 -0
  63. package/examples/fact/marketplace-platform-liability.en.json +192 -0
  64. package/examples/fact/marketplace-platform-liability.zh-CN.json +192 -0
  65. package/examples/fact/neighbour-corridor-charging.en.json +201 -0
  66. package/examples/fact/neighbour-corridor-charging.zh-CN.json +201 -0
  67. package/examples/fact/sample-construction-payment.en.json +220 -0
  68. package/examples/fact/sample-construction-payment.zh-CN.json +139 -0
  69. package/examples/fact/sample-four-parties-four-slots.en.json +202 -0
  70. package/examples/fact/sample-four-parties-four-slots.zh-CN.json +121 -0
  71. package/examples/fact/sample-no-groups.en.json +100 -0
  72. package/examples/fact/sample-no-groups.zh-CN.json +100 -0
  73. package/examples/fact/sample-three-slots.en.json +102 -0
  74. package/examples/fact/sample-three-slots.zh-CN.json +102 -0
  75. package/examples/fact/sample-two-actors-one-side.en.json +143 -0
  76. package/examples/fact/sample-two-actors-one-side.zh-CN.json +143 -0
  77. package/examples/fact/sample-two-parties-each-side.en.json +183 -0
  78. package/examples/fact/sample-two-parties-each-side.zh-CN.json +183 -0
  79. package/examples/justification/fang-yuan-defense-excess.en.json +636 -0
  80. package/examples/justification/fang-yuan-defense-excess.zh-CN.json +636 -0
  81. package/examples/justification/neighbour-corridor-liability.en.json +571 -0
  82. package/examples/justification/neighbour-corridor-liability.zh-CN.json +571 -0
  83. package/examples/procedure/01-software-development-contract.en.json +290 -0
  84. package/examples/procedure/01-software-development-contract.zh-CN.json +290 -0
  85. package/examples/procedure/02-purchase-contract.en.json +46 -0
  86. package/examples/procedure/02-purchase-contract.zh-CN.json +46 -0
  87. package/examples/procedure/03-labour-outsourcing-contract.en.json +251 -0
  88. package/examples/procedure/03-labour-outsourcing-contract.zh-CN.json +251 -0
  89. package/examples/procedure/04-non-disclosure-agreement.en.json +79 -0
  90. package/examples/procedure/04-non-disclosure-agreement.zh-CN.json +79 -0
  91. package/examples/procedure/05-premises-lease.en.json +344 -0
  92. package/examples/procedure/05-premises-lease.zh-CN.json +344 -0
  93. package/examples/procedure/06-epc-general-contract.en.json +375 -0
  94. package/examples/procedure/06-epc-general-contract.zh-CN.json +375 -0
  95. package/examples/procedure/07-share-acquisition-agreement.en.json +368 -0
  96. package/examples/procedure/07-share-acquisition-agreement.zh-CN.json +368 -0
  97. package/examples/raw//351/207/207/350/264/255/345/220/210/345/220/214-PO-2026-088.md +31 -0
  98. package/examples/raw//357/274/2102031/357/274/211/347/244/272/345/210/221/345/210/2353/345/217/267-/350/231/232/346/236/204/347/275/221/347/273/234/345/225/206/345/237/216/346/241/210-/344/270/200/345/256/241.md +36 -0
  99. package/examples/raw//357/274/2102031/357/274/211/347/244/272/346/260/221/345/210/2351/345/217/267-/346/260/221/351/227/264/345/200/237/350/264/267/346/241/210-/344/270/200/345/256/241.md +31 -0
  100. package/examples/raw//357/274/2102031/357/274/211/347/244/272/346/260/221/345/210/2352/345/217/267-/345/201/245/350/272/253/346/210/277/345/210/267/350/204/270/345/205/245/345/234/272/346/241/210-/344/270/200/345/256/241.md +40 -0
  101. package/examples/raw//357/274/2102031/357/274/211/347/244/272/346/260/221/347/273/2101/345/217/267-/346/245/274/351/201/223/345/205/205/347/224/265/345/212/235/351/230/273/346/241/210-/344/272/214/345/256/241.md +38 -0
  102. package/examples/raw//357/274/2102032/357/274/211/347/244/272/345/210/221/347/273/2101/345/217/267-/346/226/271/350/277/234/346/241/210-/344/272/214/345/256/241.md +49 -0
  103. package/examples/relationship/fang-yuan-parties.en.json +226 -0
  104. package/examples/relationship/fang-yuan-parties.zh-CN.json +226 -0
  105. package/examples/relationship/lin-fang-v-zhao-lei-parties.en.json +140 -0
  106. package/examples/relationship/lin-fang-v-zhao-lei-parties.zh-CN.json +140 -0
  107. package/examples/relationship/marketplace-parties.en.json +259 -0
  108. package/examples/relationship/marketplace-parties.zh-CN.json +259 -0
  109. package/examples/relationship/sample-group-guarantee.en.json +138 -0
  110. package/examples/relationship/sample-group-guarantee.zh-CN.json +138 -0
  111. package/examples/relationship/sample-loan-guarantee.en.json +122 -0
  112. package/examples/relationship/sample-loan-guarantee.zh-CN.json +122 -0
  113. package/package.json +35 -0
  114. package/server.json +20 -0
  115. package/spec/agent/fact/guide.md +114 -0
  116. package/spec/agent/justification/guide.md +100 -0
  117. package/spec/agent/procedure/guide.md +109 -0
  118. package/spec/agent/relationship/guide.md +92 -0
@@ -0,0 +1,192 @@
1
+ {
2
+ "specVersion": 1,
3
+ "type": "fact",
4
+ "title": "A fictional online marketplace · Operation and the regulators' action",
5
+
6
+ "actors": [
7
+ { "id": "a-1", "name": "Yunji Mall Co.", "role": "Defendant company" },
8
+ { "id": "a-2", "name": "Regulators", "role": "Enforcement authorities" }
9
+ ],
10
+
11
+ "groups": [
12
+ { "id": "g-1", "label": "Running the platform" },
13
+ { "id": "g-2", "label": "Regulatory action" }
14
+ ],
15
+
16
+ "views": [
17
+ {
18
+ "label": "Yunji Mall Co. vs regulators",
19
+ "splitBy": "actor",
20
+ "side1": { "label": "Yunji Mall Co.", "actors": ["a-1"] },
21
+ "side2": { "label": "Regulators", "actors": ["a-2"] }
22
+ },
23
+ { "label": "Sides by nature", "splitBy": "group" }
24
+ ],
25
+
26
+ "sources": [
27
+ {
28
+ "id": "s-1",
29
+ "type": "case",
30
+ "name": "First-instance judgment in this case (fictional)",
31
+ "loc": { "caseNo": "(2031) Shi Xing Chu No. 3", "court": "Example District People's Court, Example City, Example Province" },
32
+ "quote": "As the builder, manager and operator of the mall system, Yunji Mall Co. must bear by law the duty to review and manage product information."
33
+ },
34
+ {
35
+ "id": "s-2",
36
+ "type": "document",
37
+ "name": "Administrative warning by the market regulator (fictional)",
38
+ "loc": { "file": "Administrative penalty record cited in the judgment" },
39
+ "quote": "In March 2030 the Example City Market Supervision Bureau inspected Yunji Mall Co. and, because it had set up no system for reviewing product information and put no complaint-handling measures in place, gave it an administrative warning and ordered it to put this right."
40
+ },
41
+ {
42
+ "id": "s-3",
43
+ "type": "document",
44
+ "name": "Penalty decision of the district market regulator (fictional)",
45
+ "loc": { "file": "Administrative penalty record cited in the judgment" },
46
+ "quote": "On 11 January 2031 the district market regulator found that Yunji Mall Co. had without permission sold food online where a permit is required, with goods carrying false labels, and penalised the company."
47
+ },
48
+ {
49
+ "id": "s-4",
50
+ "type": "contract",
51
+ "name": "Cooperation agreement between Yunji Mall Co. and Canglian Co. (fictional)",
52
+ "loc": { "file": "Cooperation agreement", "clause": 1 },
53
+ "quote": "Canglian Co. supplies the hardware, four servers; Yunji Mall Co. supplies the product data source and a data transmission solution that lowers outgoing bandwidth and improves the user experience, and maintains the software and its content remotely."
54
+ },
55
+ {
56
+ "id": "s-5",
57
+ "type": "evidence",
58
+ "name": "Expert opinion on the four servers (fictional)",
59
+ "loc": { "file": "Expert opinion" },
60
+ "quote": "The enforcement authority took 3,000 product pages from the servers for examination and found 2,100 of them to carry false labels."
61
+ }
62
+ ],
63
+
64
+ "slots": [
65
+ {
66
+ "events": [
67
+ {
68
+ "id": "ev-1",
69
+ "date": "2028-12-26",
70
+ "label": "Yunji Mall Co. is founded",
71
+ "summary": "Registered capital 10 million yuan",
72
+ "actorIds": ["a-1"],
73
+ "groupId": "g-1",
74
+ "detail": "A limited liability company running the Yunji Mall website and app; it held a value-added telecom licence but, up to the day of the case, no permit for selling food online.",
75
+ "sourceIds": ["s-1"]
76
+ }
77
+ ]
78
+ },
79
+ {
80
+ "events": [
81
+ {
82
+ "id": "ev-2",
83
+ "date": "2030-03",
84
+ "label": "Regulator inspects and gives an administrative warning",
85
+ "summary": "No complaint-handling measures",
86
+ "actorIds": ["a-2"],
87
+ "groupId": "g-2",
88
+ "detail": "After its inspection the Example City Market Supervision Bureau gave an administrative warning and ordered correction, then sent Yunji Mall Co. the keywords and page links of falsely labelled goods and told it to take them down.",
89
+ "sourceIds": ["s-2"]
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "events": [
95
+ {
96
+ "id": "ev-3",
97
+ "date": "2030-03-08",
98
+ "label": "The mall launches a \"patrol\" information platform",
99
+ "summary": "Compliance team works a week",
100
+ "actorIds": ["a-1"],
101
+ "groupId": "g-1",
102
+ "detail": "Yunji Mall Co. set up a compliance team for a rush of work and on 8 March put the \"patrol\" information management platform into use.",
103
+ "sourceIds": ["s-2"]
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "events": [
109
+ {
110
+ "id": "ev-4",
111
+ "date": "2030-04-26",
112
+ "label": "The mall reports 1,583 problem pages",
113
+ "summary": "After sign-off the platform is left idle",
114
+ "actorIds": ["a-1"],
115
+ "groupId": "g-1",
116
+ "detail": "By 26 April 1,583 problem pages in the \"false label\" category had been reported; after the regulator signed it off, the four members of the compliance team left or moved to other departments and work on the \"patrol\" platform was largely put aside.",
117
+ "sourceIds": ["s-2"]
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ "events": [
123
+ {
124
+ "id": "ev-5",
125
+ "date": "2030-08-05",
126
+ "label": "District regulator's on-site check finds falsely labelled goods",
127
+ "summary": "Officers show it; manager signs",
128
+ "actorIds": ["a-2"],
129
+ "groupId": "g-2",
130
+ "detail": "Officers of the district market regulator logged in to the Yunji Mall app, opened the \"recommended\" section and soon found falsely labelled goods; the mall's manager Liu signed to confirm on the spot; Yunji Mall Co. then handed in only a rectification report.",
131
+ "sourceIds": ["s-3"]
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "events": [
137
+ {
138
+ "id": "ev-6",
139
+ "date": "2030-08",
140
+ "label": "The mall and Canglian Co. put four servers into service",
141
+ "summary": "For page cache acceleration",
142
+ "actorIds": ["a-1"],
143
+ "groupId": "g-1",
144
+ "detail": "Canglian Co. supplied the four servers; Yunji Mall Co. installed the cache system software, logged in remotely with an account and password to maintain it, and was responsible for the data source and the system's content.",
145
+ "sourceIds": ["s-4"]
146
+ }
147
+ ]
148
+ },
149
+ {
150
+ "events": [
151
+ {
152
+ "id": "ev-7",
153
+ "date": "2031-01-11",
154
+ "label": "District regulator penalises the mall",
155
+ "summary": "Selling food online without permission",
156
+ "actorIds": ["a-2"],
157
+ "groupId": "g-2",
158
+ "detail": "The district market regulator found that Yunji Mall Co. had without permission sold food online where a permit is required, and that the goods carried false labels, and imposed a penalty.",
159
+ "sourceIds": ["s-3"]
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "events": [
165
+ {
166
+ "id": "ev-8",
167
+ "date": "2031-02-18",
168
+ "label": "The four servers are seized",
169
+ "summary": "2,100 pages found falsely labelled",
170
+ "actorIds": ["a-2"],
171
+ "groupId": "g-2",
172
+ "detail": "During an enforcement inspection the district authority seized four servers from Canglian Co.; the enforcement authority took 3,000 product pages for examination and found 2,100 of them falsely labelled, over seventy percent.",
173
+ "sourceIds": ["s-5"]
174
+ }
175
+ ]
176
+ },
177
+ {
178
+ "events": [
179
+ {
180
+ "id": "ev-9",
181
+ "date": "2031-03",
182
+ "label": "The mall changes its cache to fragmented storage",
183
+ "summary": "Storage changed at the manager's word",
184
+ "actorIds": ["a-1"],
185
+ "groupId": "g-1",
186
+ "detail": "To avoid regulatory checks and compliance risk, and at the word of the manager Chen, the technical department changed whole-page storage into fragments spread over several servers, each keeping only 32 MB pieces.",
187
+ "sourceIds": ["s-1"]
188
+ }
189
+ ]
190
+ }
191
+ ]
192
+ }
@@ -0,0 +1,192 @@
1
+ {
2
+ "specVersion": 1,
3
+ "type": "fact",
4
+ "title": "虚构网络商城案 · 平台经营与监管查处经过",
5
+
6
+ "actors": [
7
+ { "id": "a-1", "name": "云集商城公司", "role": "被告单位" },
8
+ { "id": "a-2", "name": "监管部门", "role": "查处机关" }
9
+ ],
10
+
11
+ "groups": [
12
+ { "id": "g-1", "label": "平台经营" },
13
+ { "id": "g-2", "label": "监管查处" }
14
+ ],
15
+
16
+ "views": [
17
+ {
18
+ "label": "云集商城公司 vs 监管部门",
19
+ "splitBy": "actor",
20
+ "side1": { "label": "云集商城公司", "actors": ["a-1"] },
21
+ "side2": { "label": "监管部门", "actors": ["a-2"] }
22
+ },
23
+ { "label": "按性质分侧", "splitBy": "group" }
24
+ ],
25
+
26
+ "sources": [
27
+ {
28
+ "id": "s-1",
29
+ "type": "case",
30
+ "name": "本案一审判决(虚构)",
31
+ "loc": { "caseNo": "(2031)示刑初3号", "court": "示例省示例市示例区人民法院" },
32
+ "quote": "云集商城公司作为商城系统的建立者、管理者、经营者,应当依法承担商品信息审核与管理义务。"
33
+ },
34
+ {
35
+ "id": "s-2",
36
+ "type": "document",
37
+ "name": "市场监管行政警告处罚(虚构)",
38
+ "loc": { "file": "判决书载明的行政处罚记录" },
39
+ "quote": "2030年3月,示例市市场监督管理局对云集商城公司进行检查,针对该公司未建立商品信息审核制度、未落实投诉处理措施等问题,给予行政警告处罚,并责令整改。"
40
+ },
41
+ {
42
+ "id": "s-3",
43
+ "type": "document",
44
+ "name": "区市场监管局行政处罚决定书(虚构)",
45
+ "loc": { "file": "判决书载明的行政处罚记录" },
46
+ "quote": "2031年1月11日,区市场监管局认定云集商城公司擅自从事需要许可的食品网络销售,所售商品含有虚假标识的内容,对云集商城公司予以行政处罚。"
47
+ },
48
+ {
49
+ "id": "s-4",
50
+ "type": "contract",
51
+ "name": "云集商城公司与仓联公司合作协议(虚构)",
52
+ "loc": { "file": "合作协议", "clause": 1 },
53
+ "quote": "由仓联公司提供硬件设备即 4 台服务器,由云集商城公司提供商品数据源以及降低网络出口带宽、提升用户体验的数据传输技术方案,负责远程对软件系统及系统内容的维护。"
54
+ },
55
+ {
56
+ "id": "s-5",
57
+ "type": "evidence",
58
+ "name": "涉案 4 台服务器鉴定意见(虚构)",
59
+ "loc": { "file": "鉴定意见" },
60
+ "quote": "执法机关从服务器里提取了 3000 条商品页面进行鉴定,认定其中带有虚假标识的页面为 2100 条。"
61
+ }
62
+ ],
63
+
64
+ "slots": [
65
+ {
66
+ "events": [
67
+ {
68
+ "id": "ev-1",
69
+ "date": "2028-12-26",
70
+ "label": "云集商城公司成立",
71
+ "summary": "注册资本 1000 万元",
72
+ "actorIds": ["a-1"],
73
+ "groupId": "g-1",
74
+ "detail": "公司性质为有限责任公司,主办云集商城网站及应用,持有增值电信业务经营许可,但至案发之日没有取得食品网络销售所需的许可。",
75
+ "sourceIds": ["s-1"]
76
+ }
77
+ ]
78
+ },
79
+ {
80
+ "events": [
81
+ {
82
+ "id": "ev-2",
83
+ "date": "2030-03",
84
+ "label": "市场监管部门检查并予行政警告",
85
+ "summary": "未落实投诉处理措施",
86
+ "actorIds": ["a-2"],
87
+ "groupId": "g-2",
88
+ "detail": "示例市市场监督管理局检查后给予行政警告处罚并责令整改,随后将虚假标识的关键词和商品页面链接发给云集商城公司,要求采取措施下架。",
89
+ "sourceIds": ["s-2"]
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "events": [
95
+ {
96
+ "id": "ev-3",
97
+ "date": "2030-03-08",
98
+ "label": "商城上线「巡检」信息管理平台",
99
+ "summary": "合规组突击整改一周",
100
+ "actorIds": ["a-1"],
101
+ "groupId": "g-1",
102
+ "detail": "云集商城公司成立合规组开展突击工作,于 3 月 8 日投入使用「巡检」信息管理平台。",
103
+ "sourceIds": ["s-2"]
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "events": [
109
+ {
110
+ "id": "ev-4",
111
+ "date": "2030-04-26",
112
+ "label": "商城报送问题页面 1583 个",
113
+ "summary": "验收合格后平台即被搁置",
114
+ "actorIds": ["a-1"],
115
+ "groupId": "g-1",
116
+ "detail": "截止 4 月 26 日共报送「虚假标识」类别的问题页面 1583 个;监管部门验收合格后,合规组原有 4 名成员或离职或调到其他部门,「巡检」平台工作基本搁置。",
117
+ "sourceIds": ["s-2"]
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ "events": [
123
+ {
124
+ "id": "ev-5",
125
+ "date": "2030-08-05",
126
+ "label": "区市场监管局现场检查发现虚假标识商品",
127
+ "summary": "执法人员当场演示并签字确认",
128
+ "actorIds": ["a-2"],
129
+ "groupId": "g-2",
130
+ "detail": "区市场监管局执法人员登录云集商城应用,进入「推荐」栏目后很快找到带虚假标识的商品,商城负责人刘某现场签字确认;云集商城公司随后仅提交了一份整改报告。",
131
+ "sourceIds": ["s-3"]
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "events": [
137
+ {
138
+ "id": "ev-6",
139
+ "date": "2030-08",
140
+ "label": "商城与仓联公司合作上线 4 台服务器",
141
+ "summary": "用于页面缓存加速",
142
+ "actorIds": ["a-1"],
143
+ "groupId": "g-1",
144
+ "detail": "仓联公司提供 4 台服务器硬件,云集商城公司安装缓存系统软件并通过账号密码远程登录维护,负责商品数据源与系统内容维护。",
145
+ "sourceIds": ["s-4"]
146
+ }
147
+ ]
148
+ },
149
+ {
150
+ "events": [
151
+ {
152
+ "id": "ev-7",
153
+ "date": "2031-01-11",
154
+ "label": "区市场监管局对商城予以行政处罚",
155
+ "summary": "认定擅自从事食品网络销售",
156
+ "actorIds": ["a-2"],
157
+ "groupId": "g-2",
158
+ "detail": "区市场监管局认定云集商城公司擅自从事需要许可的食品网络销售,且所售商品含有虚假标识的内容,予以行政处罚。",
159
+ "sourceIds": ["s-3"]
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "events": [
165
+ {
166
+ "id": "ev-8",
167
+ "date": "2031-02-18",
168
+ "label": "区监管部门查获涉案 4 台服务器",
169
+ "summary": "2100 个页面被认定带虚假标识",
170
+ "actorIds": ["a-2"],
171
+ "groupId": "g-2",
172
+ "detail": "区监管部门在行政执法检查时从仓联公司查获 4 台服务器;执法机关提取 3000 条商品页面鉴定,认定其中 2100 条带有虚假标识,占比逾七成。",
173
+ "sourceIds": ["s-5"]
174
+ }
175
+ ]
176
+ },
177
+ {
178
+ "events": [
179
+ {
180
+ "id": "ev-9",
181
+ "date": "2031-03",
182
+ "label": "商城将缓存改为碎片化存储",
183
+ "summary": "在负责人授意下调整存储方式",
184
+ "actorIds": ["a-1"],
185
+ "groupId": "g-1",
186
+ "detail": "为规避监管检查和合规风险,在负责人陈某授意下,技术部门将完整页面存储改为多台服务器碎片化存储,每台服务器仅保存 32M 大小的片段。",
187
+ "sourceIds": ["s-1"]
188
+ }
189
+ ]
190
+ }
191
+ ]
192
+ }
@@ -0,0 +1,201 @@
1
+ {
2
+ "specVersion": 1,
3
+ "type": "fact",
4
+ "title": "Qian Min v. Sun Hao, right to health · The facts (fictional: charging in a corridor)",
5
+
6
+ "actors": [
7
+ { "id": "a-1", "name": "Sun Hao", "role": "Defendant · the one who objected" },
8
+ { "id": "a-2", "name": "Qian Min", "role": "Plaintiff · the one objected to" }
9
+ ],
10
+
11
+ "groups": [
12
+ { "id": "g-1", "label": "What Sun Hao did" },
13
+ { "id": "g-2", "label": "What Qian Min did" },
14
+ { "id": "g-3", "label": "Done by both, or the objective course" }
15
+ ],
16
+
17
+ "views": [
18
+ { "label": "Sides by group", "splitBy": "group" },
19
+ { "label": "Sun Hao vs Qian Min", "splitBy": "actor",
20
+ "side1": { "label": "What Sun Hao did", "actors": ["a-1"] },
21
+ "side2": { "label": "What Qian Min did", "actors": ["a-2"] },
22
+ "axis": { "label": "Done by both, or the objective course" } },
23
+ { "label": "Sun Hao only", "splitBy": "actor",
24
+ "side1": { "label": "What Sun Hao did", "actors": ["a-1"] },
25
+ "side2": { "actors": [] },
26
+ "axis": { "label": "The rest" } },
27
+ { "label": "Time order only", "splitBy": "actor", "side1": { "actors": [] }, "side2": { "actors": [] } }
28
+ ],
29
+
30
+ "sources": [
31
+ {
32
+ "id": "s-1",
33
+ "type": "evidence",
34
+ "name": "Corridor surveillance video",
35
+ "loc": { "file": "Corridor surveillance video" },
36
+ "meta": { "evidenceNo": "(fictional, no number)", "party": "(fictional, no submitting party)" },
37
+ "quote": "At 20:14:03 on 2 June 2030 Qian Min was charging an e-bike battery in the ground-floor corridor … at 20:14:16 the two began to talk … at 20:16:24 they left the corridor"
38
+ },
39
+ {
40
+ "id": "s-2",
41
+ "type": "evidence",
42
+ "name": "Building entrance surveillance video",
43
+ "loc": { "file": "Building entrance surveillance video" },
44
+ "meta": { "evidenceNo": "(fictional, no number)", "party": "(fictional, no submitting party)" },
45
+ "quote": "At 20:18:40 the two reached the building entrance; Qian Min spoke quickly, Sun Hao evenly. At 20:19:06 they walked towards the property duty room; the charging cable was still in Qian Min's hand"
46
+ },
47
+ {
48
+ "id": "s-3",
49
+ "type": "evidence",
50
+ "name": "Property duty room doorway surveillance video",
51
+ "loc": { "file": "Duty room doorway surveillance video" },
52
+ "meta": { "evidenceNo": "(fictional, no number)", "party": "(fictional, no submitting party)" },
53
+ "quote": "Sun Hao spoke evenly throughout; the two only talked, with no pulling and no physical contact … the three videos show that the two were in contact for under five minutes"
54
+ },
55
+ {
56
+ "id": "s-4",
57
+ "type": "evidence",
58
+ "name": "Emergency record of Example City First Hospital",
59
+ "loc": { "file": "Emergency record" },
60
+ "meta": { "evidenceNo": "(fictional, no number)", "party": "(fictional, no submitting party)" },
61
+ "quote": "Ambulance called at 20:21; the crew reached the patient at 20:27"
62
+ },
63
+ {
64
+ "id": "s-5",
65
+ "type": "evidence",
66
+ "name": "Interview record of a property staff member (fictional)",
67
+ "loc": { "file": "Interview record" },
68
+ "meta": { "evidenceNo": "(fictional, no number)", "party": "(fictional, no submitting party)" },
69
+ "quote": "Two minutes later the emergency centre called and asked me to meet them at the estate gate; I took calls at 20:30 and 20:32"
70
+ },
71
+ {
72
+ "id": "s-6",
73
+ "type": "case",
74
+ "name": "Second-instance judgment in this case (fictional)",
75
+ "loc": { "caseNo": "(2031) Shi Min Zhong No. 1", "court": "Example City Intermediate People's Court, Example Province" },
76
+ "meta": { "level": "Second instance", "docType": "Judgment" },
77
+ "quote": "Sun Hao's objection did not go beyond what was needed and was a proper dissuasion … there is no legal causation between the two, and Sun Hao was not at fault"
78
+ }
79
+ ],
80
+
81
+ "slots": [
82
+ {
83
+ "events": [
84
+ {
85
+ "id": "ev-2",
86
+ "date": "2030-06-02T20:14:07",
87
+ "label": "Sun Hao enters the corridor and presses the lift button",
88
+ "groupId": "g-1",
89
+ "actorIds": ["a-1"],
90
+ "detail": "At 20:14:07 Sun Hao entered the ground-floor corridor and pressed the lift's up button",
91
+ "sourceIds": ["s-1"]
92
+ },
93
+ {
94
+ "id": "ev-1",
95
+ "date": "2030-06-02T20:14:03",
96
+ "label": "Qian Min charges a battery in the corridor",
97
+ "summary": "Socket on the ground-floor wall",
98
+ "groupId": "g-2",
99
+ "actorIds": ["a-2"],
100
+ "detail": "Qian Min was charging an e-bike battery from the wall socket in the ground-floor corridor",
101
+ "sourceIds": ["s-1"]
102
+ },
103
+ {
104
+ "id": "ev-3",
105
+ "date": "2030-06-02T20:14:16",
106
+ "dateEnd": "2030-06-02T20:16:24",
107
+ "label": "The two talk on in the corridor (the objection)",
108
+ "summary": "Under five minutes, no contact",
109
+ "groupId": "g-3",
110
+ "actorIds": ["a-1", "a-2"],
111
+ "detail": "The two began to talk and kept talking while the lift came and went, with some sharp words; at 20:16:24 they left the corridor. The three videos show they were in contact for under five minutes",
112
+ "sourceIds": ["s-1", "s-3"]
113
+ }
114
+ ]
115
+ },
116
+ {
117
+ "events": [
118
+ {
119
+ "id": "ev-4",
120
+ "date": "2030-06-02T20:18:40",
121
+ "label": "At the building entrance Qian Min speaks quickly",
122
+ "summary": "Sun Hao stays even",
123
+ "groupId": "g-3",
124
+ "actorIds": ["a-1", "a-2"],
125
+ "detail": "Qian Min spoke quickly, Sun Hao evenly",
126
+ "sourceIds": ["s-2"]
127
+ }
128
+ ]
129
+ },
130
+ {
131
+ "events": [
132
+ {
133
+ "id": "ev-5",
134
+ "date": "2030-06-02T20:19:06",
135
+ "label": "They walk to the duty room, cable still in Qian Min's hand",
136
+ "groupId": "g-3",
137
+ "actorIds": ["a-1", "a-2"],
138
+ "detail": "The two walked towards the property duty room; the charging cable was still in Qian Min's hand",
139
+ "sourceIds": ["s-2"]
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "events": [
145
+ {
146
+ "id": "ev-6",
147
+ "date": "2030-06-02T20:21",
148
+ "label": "Ambulance called",
149
+ "summary": "Called 20:21, arrived 20:27",
150
+ "groupId": "g-3",
151
+ "actorIds": [],
152
+ "detail": "The emergency record says: ambulance called at 20:21, crew reached the patient at 20:27. The judgment does not say who made the call",
153
+ "sourceIds": ["s-4", "s-5"]
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ "events": [
159
+ {
160
+ "id": "ev-7",
161
+ "date": "2030-06-02T20:23",
162
+ "approx": true,
163
+ "dateNote": "The video clock reads 20:33:55 to 20:38:56; checked against the emergency record and the interview record, the real time is about 20:23 (the video clock runs about ten minutes fast)",
164
+ "label": "Row at the duty room door, Sun Hao is led away",
165
+ "summary": "Supervisor Zhou Qiang steps in",
166
+ "groupId": "g-3",
167
+ "actorIds": ["a-1", "a-2"],
168
+ "detail": "The two went on talking at the duty room door; Qian Min's voice kept rising and she stepped towards Sun Hao several times, and property supervisor Zhou Qiang pulled them apart; Zhou Qiang led Sun Hao away and Qian Min was taken into the duty room. The property staff Zhou Qiang and Wu Mei took part in calming them (not in the actors list)",
169
+ "sourceIds": ["s-3"]
170
+ }
171
+ ]
172
+ },
173
+ {
174
+ "events": [
175
+ {
176
+ "id": "ev-8",
177
+ "date": "2030-06-02T20:27",
178
+ "label": "The ambulance crew arrives",
179
+ "groupId": "g-3",
180
+ "actorIds": [],
181
+ "detail": "The ambulance crew reached the patient",
182
+ "sourceIds": ["s-4"]
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "events": [
188
+ {
189
+ "id": "ev-9",
190
+ "date": "2030-06-02",
191
+ "label": "Qian Min has a sudden heart problem and is taken to hospital",
192
+ "summary": "The judgment gives no time of day",
193
+ "groupId": "g-2",
194
+ "actorIds": ["a-2"],
195
+ "detail": "Qian Min, still upset, had a sudden heart problem and was taken to hospital for treatment (the judgment simplifies the onset and gives no time of day, so date is exact only to the day)",
196
+ "sourceIds": ["s-6"]
197
+ }
198
+ ]
199
+ }
200
+ ]
201
+ }