文档

方法说明

本数据集如何采集、处理并实现安全查询——以及它的局限所在。

这是什么

这是一个对公开透明度报告数据的独立、非官方聚合,不隶属于任何平台、公司或政府。它将两类报告整合到一个可查询的模式中:

  • 欧盟 DSA 透明度报告
    提供者依据欧盟《数字服务法》(DSA)发布的定期内容审核统计数据——即 DSA 第15条、第24条和第42条所要求的周期性透明度报告(分别针对中介服务、在线平台和超大型平台的报告义务),而非另行设立的、收录单条理由说明(Statements of Reasons)的实时 DSA 透明度数据库。报送方使用一份共享的分级欧盟模板:每家提供者只需填写其层级所要求的报告部分(本数据集在内部将这些部分编为 t3–t11 索引)。它涵盖超大型在线平台和搜索引擎(VLOPs / VLOSEs)——即因其在欧盟的影响范围而被欧盟委员会正式指定的平台——这些平台报送更为频繁、更为详尽,同时还涵盖数十家规模较小的平台。实时统计数和涵盖期间请见 DSA 报告 仪表板。
  • Google 政府删除请求
    Google 报告的各国政府要求删除内容的请求数量,按国家、产品、原因和报告周期划分——这是 Google 自身长期运行的自愿性透明度报告,而非 DSA 报告。可在Google 删除请求仪表板中探索。

每个平台在何处发布其原始报告,已编入报告位置页面,并附有源文件存档副本的链接。

数据来自何处

每一项数据都源自发布它的平台或公司——这些是它们报告的数字,在不改动所报告数值的前提下予以转载,并非本项目所做的估算。本项目的贡献在于聚合与结构化:收集各自发布的报告,提取其中的表格,并将它们规范化为统一的模式,以便进行比较和查询。所报告的数值本身从不被编辑;所做的转换均属结构性的——提取、标记聚合总计行、跨语言规范化标签,以及删除无法解析的行——具体说明见下文。

一份报告如何变得可查询

每份来源报告的表格会被提取并载入一个数据库,API 以只读方式打开该数据库(纵深防御),并且只通过一个能读取但永远无法写入的接口来访问——其结构为星型模式:每个 DSA 报告表对应一张数据表(内部索引为 t3–t11),周围环绕着共享的查找表(services、categories、sections、indicators、scopes、surfaces、reporting periods)。重复的标签只存储一次并以编号引用,因此同一个类别或平台名称只存在于单一位置。可在 模式页面浏览由此生成的表格以及每一个可查询的字段。

这九张报告表的含义为:t3 成员国命令 · t4 通知(含可信举报者)· t5 / t6 自主行动(非法内容 / 服务条款)· t7 申诉与累犯 · t8 自动化手段的使用 · t9 人力资源 · t10 平均月活跃接收者 · t11 定性描述。

当报告不符合模板时

大多数平台提交固定的 11 节工作簿,加载器按工作表名称中的节号放置每个工作表。少数平台提交格式变体——底层模板内容相同,但工作表被重命名或重新编号。这些通过一份按平台逐一列出、将每个工作表对应到其规范节的明确对照表进行映射,因此数据仍会落入正确的报告表:LINE 将模板压缩为五个未编号的工作表(对应到第 1、3、4、5 和 11 节),而 Discord 省略了针对非法内容的自主措施、人力资源以及活跃接收者这几节,并对其余部分重新编号——因此其工作表按名称匹配(例如其“Own Initiative TC”是关于服务条款的自主措施表,即第 6 节,而非第 5 节)。完全不属于统一模板的文档不会被强行套入其中,因为对其进行映射会捏造出来源并不具备的结构:heise 的论坛报告是一份依据第 15 条、使用德语自由文本类别的简短自由格式摘要,而 WordPress.com 发布的是另一种报告(DMCA、政府和 IRU 请求)。这些会作为已存档的源文件保留,而不会加载到 t3–t11 中。

避免重复计数

DSA 模板会把一个汇总总计行紧挨着它所汇总的分项行放置(例如,在按类别计数旁边放一个总计的“All the entries”类别,在维持/撤销结果旁边放一个“Total number”范围,或放一个汇总 Core、Ads 等各表面行的“All”表面)。对这样的列进行简单的 SUM 会把各分项它们自身的总计一起计数,从而虚增数字。加载器为每个汇总行打上 is_total 标记,并将其作为可筛选的维度公开,因此查询可以有意选定单一粒度——只取总计,或只取分项——绝不会把总计与其组成部分相加。仪表板的标题数字使用报告的总计;其分项图表使用组成行。若某项数字仍带有注意事项,API 会返回一条 warnings 说明,并由仪表板在结果旁一并呈现。

跨语言阅读

非 VLOP 平台可以用任何一种欧盟官方语言报送这份统一模板,因此同一个模板行可能以不同的文字出现(Decisions upheld / Décisions confirmées / Bestätigte Entscheidungen)。每一行都保留其原始语言的标签用于显示,同时还被标注上一个与语言无关的标准标签——即规范键——它通过一份翻译映射(一份“对照表”)来匹配,该映射将结构相同的报告对齐到一份英文参照,并舍弃任何含义不明确的项。查询可以按规范键进行分组或筛选,从而跨语言进行同类对比,同时仍然显示原始文字——不过目前各语言的覆盖程度尚不一致(见已知局限)。

如何查询

这里没有 SQL 接口。查询是一种结构化请求——它指定一张表、一个由字段/操作/值条件构成的布尔过滤器,以及可选的分组、聚合、排序和限制。服务器会针对该表的固定注册表校验每一个字段和操作,并将其编译为单次预先检查过的数据库查找(参数化的 SELECT),其中你的输入始终被当作数据处理,绝不会作为命令运行。查询同样设有边界——结果数量上限、请求大小和复杂度限制,以及按密钥的速率限制——因此单个请求无法耗尽服务。跨表的“复合”查询通过同一个经过校验的边界,在共享维度上连接两张或更多的表。自然语言“Ask”框在启用时,会将你输入的问题(连同数据集的模式)发送给第三方 LLM(Anthropic 的 Claude)以起草一个结构化查询,该查询随后会像其他任何查询一样经过校验才会运行——该 LLM 调用是服务唯一一次主动将你的输入发送给外部方。另一条对外路径是选择性加入且由你指定的:你附加到查询上的可选 callback_url,它会将你自己的结果送达你所选择的 URL。请在 DSA 报告仪表板上试用,或阅读 API 参考以及我们的隐私说明。

可复现性与引用

该数据库是一个静态、只读的快照。每个快照都带有一个不可变的数据集版本——它是其内容的指纹,因此只要数据发生变化它就会改变——以 ETagX-Dataset-Version 头的形式发送,并且每个事实行都会公开其来源报送的 report_id。一个数值由三样东西共同锁定——数据集版本、确切的查询,以及它所依据的 report_id——因此请同时引用这三者,这样便可重新获取这些行(仅凭版本和 report_id 只能标识一份来源报送,而非某个特定数值)。每当你排序或分页时,结果都会以完全确定的顺序返回,因此保存下来的提取结果可按字节级复现。快照的构建日期和涵盖期间会显示在每个仪表板的“Cite as”行中以及每次导出的头部,而某一行的 report_id 标识其来源报送(平台、期间和层级);对于非 VLOP 平台,该报送在何处发布会按平台列示于报告位置目录中。

署名:请将该数字归于报送它的平台;本站只应作为访问工具加以标注。

示例:YouTube, EU DSA transparency report (H2 2025), accessed via the Transparency Report API — dataset version 7f3c1a2b9d04, report_id 42, retrieved 2026-06-26. 实时快照确切的数据集版本和涵盖期间显示在 DSA 报告Google 删除请求 仪表板的“Cite as”一行中。

已知局限

  • 快照,而非实时
    数字反映构建快照时可获得的报告;后续的更正或新报送的报告只会出现在随后的快照中(并附带新的数据集版本)。
  • 源质量参差不齐
    各平台报送的严谨程度和格式各不相同。解析有误的垃圾行(表头单元格、空白、某些提取过程泄漏出的杂散值)会在加载时被舍弃,而非加以臆测——那些跨语言对照表无法明确映射的模板行也是如此。被舍弃行的确切数量以及对照表的覆盖程度尚未公布,因此整体完整性尚无法量化。
  • 部分标签未规范化
    希腊语提取在源数据中存在列位移,因此大多数希腊语指标/范围标签被保留为正确但未映射的状态,以免冒错误映射的风险;类别标签尚未跨语言对照。
  • 演示服务
    这是一个作品集/演示项目。它忠实于其来源,但并非官方记录——对于任何重要事项,请始终对照平台自己发布的报告(可从报告位置链接进入)加以确认。

来源与代码

完全基于公开报告构建。整个流程——提取、规范化、对照表和查询层——已在 github.com/krMaynard/transparency-report-api 开源。开始探索:DSA 报告 · Google 删除请求 · 模式