关于本站公开数据提供 SQLite 下载的讨论

全站拟公开文本数据 dump,为 SQLite 格式,下载 https://sqlitebrowser.org/ 即可在本地浏览,总共有 4 个表:

导出使用的脚本:

由于有重量级門友投票反对,此事暂时搁置 :a_grinning_face_with_sweat:


本站和商业软件最大的区别之一是数据是用户完全所有的(民有、民治、民享),每个人都能在 https://xjtu.app/my/preferences/account 导出自己的全部数据(包括但不限于全部话题、回复、喜欢、书签、登陆记录)。

本站活跃度并不高,很大的原因是本来就 [1] 多少东西好聊的,聚焦于校园生活以及本校的话题被聊完了就冇乜 [2] 好聊的了。这就像情侣早期无话不说,到了后期成为夫妻以后就慢慢失去了聊天的兴趣一样。

将本站的公开数据公开有以下可能的好处:

  1. 用户可以用本地的数据库软件直接浏览原始数据,稍微懂点 Docker 的童鞋也可以在本地跑一个 Discourse 从而实现本机上的高速浏览(我在本地开发环境就曾导入过生产环境的数据),更有兴趣锻炼一下自己的技术的童鞋可以利用这个数据源开发一套别样的数据浏览乃至交互界面(如果只是浏览的话不涉及 CRUD 只需要会前端技术,哪怕不懂前端,做成静态网页放到 github.io 上也很容易,如果能支持交互的全栈软件就有点:ox:了,如果做成 P2P 的分布式软件就更 :bison:了)。

  2. 有望将现有的知识凝炼到从前年开始暴热的 ChatGPT 首当其冲的大语言模型中,2023 年 9 月数据量不太多的时候有人做过尝试(referenced below),从而做成 :egg: :egg:后最喜闻乐见的网络使用方式:客服。(用提问 prompt 代替搜索 search)
    知识图谱(Knowledge graph) 亦是一个对此有帮助的技术。
    试验:训练一个解答下交学生疑问的 Chatbot

  3. 万一各种想到或想不到的原因导致网站(可以称之为門門吗)去世,用户不失去自己的东西。从而不用在此刻惧怕丢失一切东西。

  4. 有关方面可以对数据进行研究,例如《上网的西安交通大学学生的精神状态研究》《时间/季节对网络上“打交”相关话题的流行度的影响》… …

公开数据是指全部话题和回复,至少除去了

  • 用户隐私信息(至少包括登陆记录,IP,邮箱)
  • 聊天(DM)内容(包含群聊(channel),私聊)
  • 私信(PM)内容。

公开公开数据的形式现在可以想到的是:

topic & posts > SQLite

Sam Saffron 大佬开源了现成的工具:GitHub - SamSaffron/discourse_public_import: A tool to import all public posts on discourse

风险:
提供便捷的全部公开数据下载的做法有风险,有人可以做个网站让全部数据一样,从而仿冒本站。考虑到交大門三个字以及 logo 也没申请 trademark,仿冒的话也没办法起诉 :sweat_smile:


是否反对公开本站公开数据?

  • 我反对 :raised_hand:
0 voters

  1. 粤语之“没有” ↩︎

  2. 粤语之“什么” ↩︎

2 Likes

:+1:

不反对。数据很少应该也不至于用来干坏事

1 Like

不反对,看起来都是能通过网页浏览获取的公开数据,真要有坏人自己整个爬虫也就爬出来了。

1 Like

现在纯文档 dump 完就 10M 的一个 SQLite,这下真的可以做一个离线交大門了

这个得谨慎,许多看上去无害的表存了很多隐私数据

包括且不限于 plugin_store_rows、post_search_data、push_subscriptions、topic_users、topic_views、post_timings、topic_link_clicks

全是重量级

1 Like

感谢 pangbo 大佬提醒,我目前只导出了公开类别的四个表的部分列,看了一下没啥隐私信息。

查了一下,这些表里确实有挺多信息的,这些没有必要导出。有些有 IP,有些甚至有消息的推送地址。

1 Like

plugin_store_rows 部分插件会把用户数据存这个表里,与插件有关
post_search_data search_log 会记录用户的搜索关键词记录
push_subscriptions 会记录用户推送的相关信息(可能包含认证信息)
topic_users 包含用户的书签、话题阅读时间和进度
post_timings 最重量级的一个表,记录了每个用户阅读每个 post 的时间
topic_link_clicks 记录了用户点击链接的记录

posts、topics、users 这几个表用白名单过滤一下列,感觉问题不大。另外有可能会导出被删除的内容,如果介意的话可以过滤一下 deleted_at。
likes 是从 post_actions 里过滤出来的吗,水源没有这个表

1 Like

感谢详细的解读,likes 是 post_actions 重名了个名

1 Like

真是民民又主主啊 :shuiyuan3: :grin_hugging_face:

1 Like

我们交大门一直是全过程门友民主