在使用 Mastodon 之前,我先看了看它的文档,发现它的理念跟 SoLiD(缩写自Social Linked Data,意为社交互联数据)很像,以为它是基于 SoLiD 协议做的工程实践,后面发现它是基于 ActivityPub 协议实现的,这让我有点好奇,ActivityPub 究竟与 SoLiD 有什么关系。

先简单介绍一下 SoLiD ,它是由大名鼎鼎的 Tim bernerts-lee 领导的分布式网络平台项目,它存在的意义跟 ActivityPub 所做的事情比较像,就是让每个人拥有自己数据的所有权,当然在这一点上,SoLiD 做得更加彻底一些。

在 SoLiD 协议中,每个用户拥有一个 Pod ,大家可以理解为一个「网盘」,这个「网盘」里存着用户所有的数据,比如「个人介绍」、「联系方式」、「信用卡信息」、「聊天记录」、「社交网络关系」等等。这些数据是如何产生并与互联网中的应用和其他用户进行交互的呢?要了解这个问题,需要明白一个应用是怎么获取到你的信息,并让你也能触达到其他人的信息的。

这里我们拿微博举例。假如微博是基于 SoLiD 协议开发的,那么在你登录微博时,它会让通过网页链接你的 Pod ,并声明哪些需要你授权哪一类数据(在微博中,很明显,你的博文、评论和好友关系需要被授权)。通过你的授权后,你就可以进入到微博的时间线了,它会向你展示你好友 Pod 里的博文、评论数据。当你发微博时,你不再是为微博服务器贡献数据,而是向你的 Pod 里写入一条数据,微博服务器不再存储任何和你个人相关的东西。假如你还想用你的隐私数据赚些钱花也可以,你可以授权微博使用你的信息,为你做定制化广告或推送内容,因为它使用了你的数据,所以你可以要求微博付费给你。

举微博的例子意在说明,SoLiD 协议会让用户的数据跟网络应用完全分开,并通过一种叫 RDF 的东西与网络中的服务、用户进行互联。

这是一个美好的愿景,很显然目前 SoLiD 协议的进展并不顺利,一是目前的科技寡头完全没有理由把自己辛辛苦苦搏出来的数据霸权让渡给每一个劳苦大众;二是 SoLiD 本身应用的技术过于复杂,学习曲线陡峭,目前为止还没有特别好的工程实践出现在大众的视野。

说回 Mastodon ,我在搭建 Mastodon 实例的时候看了它的文档,当时就在思考,假如 Mastodon 是基于 SoLiD 协议开发的,那么用户就完全不用考虑在不同实例间迁移账号的问题了,因为数据始终在用户手中。我作为一个普通开发者,当然不认为这个点子只有我能想到,于是我去 SoLiD 社区和 ActivityPub 社区转了一圈儿,果然发现国外的大神开发者们已经在讨论如何让 Solid 和 ActivityPub 兼容并互相促进了。

令人惊喜的是 ActivityPub 传输数据的格式是 JSON-LD ,这里的 LD 就是 SoLiD 中的 Lid ,也就是 Linked Data ,世界上不可能有这么巧的事嘛!一查资料,果不其然, JSON-LD 其实是 RDF( Linked Data 的数据结构 )的一种实现,只不过它的结构更适用于 Web 应用间的数据传输。

在我看来,SoLiD 和 ActivityPub 之间并没有本质区别。ActivityPub 是 SoLiD 的子集,两者都是基于 Linked Data。只不过它们的目的不一样,ActivityPub 的目的是将 Twitter 分布式化,而 SoLid 的目的是将整个互联网的交互方式分布式化。

真希望自己能有看到 SoLiD 成为主流的一天,让自己成为自己,而不是谁的数据奴隶。

Follow

@DOCACOLA 还可以这样,听起来是非常美好的事情。

· · Web · 0 · 0 · 0
Sign in to participate in the conversation
alive.bar

你好,欢迎使用 alive.bar 社交媒体实例。 alive.bar 仅仅是一个服务器位于美国的网站,它使用了「长毛象(Mastodon)」服务。