基于开放数据原则的信息环境

基于开放数据原则的信息环境

所提出的信息环境是一种去中心化的社交网络。 但与许多现有解决方案不同的是,除了去中心化之外,该环境还具有许多有用的属性,并且是在相当简单和标准的技术解决方案(电子邮件、json、文本文件和一点区块链)的基础上创建的。 这使得任何具有基本编程知识的人都可以为此环境创建自己的服务。

通用ID

在任何在线环境中,用户和对象标识符是系统的关键元素之一。

在这种情况下,用户标识符是电子邮件,它实际上已成为网站和其他服务上授权的普遍接受的标识符(jaber、openId)。

事实上,给定在线环境中的用户标识符是登录名+域对,为了方便起见,以大多数人熟悉的形式编写。 同时,为了更大程度的去中心化,建议每个用户拥有自己的域。 这接近 indieweb 的原则,其中使用域作为用户标识符。 在我们的例子中,用户向他的域添加了一个昵称,这允许他在一个域上创建多个帐户(例如,为朋友),并使寻址系统更加灵活。

此用户 ID 格式不依赖于任何网络。 如果用户将其数据放在 TOR 网络上,那么他可以使用 .onion 区域中的域;如果这是在区块链上具有 DNS 系统的网络,则可以使用 .bit 区域中的域。 因此,寻址用户及其数据的格式不依赖于传输它们的网络(到处都使用登录+域组合)。 对于那些想要使用比特币/以太坊地址作为标识符的人,您可以修改系统以使用以下形式的伪电子邮件地址 [email protected]

寻址对象

该在线环境实际上是一组以结构化、机器可读形式描述的对象,引用其他对象并与特定用户(电子邮件)或项目/组织(域)相关联。

urn:opendata 命名空间中的 urn 用作对象标识符。 例如,用户个人资料的地址如下:

urn:opendata:profile:[email protected]

用户评论的地址如下:

urn:opendata:comment:[email protected]:08adbed93413782682fd25da77bd93c99dfd0548

其中 08adbed93413782682fd25da77bd93c99dfd0548 是充当对象 ID 的随机 sha-1 哈希,并且 [电子邮件保护] — 该对象的所有者。

用户数据发布原理

控制自己的域后,用户可以轻松发布他的数据和内容。 与 indiebeb 不同的是,这不需要创建带有内置语义数据的 html 页面的网站。

例如,有关用户的基本信息位于文件 datarobots.txt 中,该文件位于以下地址

http://55334.ru/[email protected]/datarobots.txt

它有这样的内容:

Object: user
Services-Enabled: 55334.ru,newethnos.ru
Ethnos: newethnos
Delegate-Tokens: http://55334.ru/[email protected]/delegete.txt

也就是说,实际上它是一组具有键->值形式的数据的字符串,对于任何具有基本编程知识的人来说,解析这都是一个简单的任务。 如果您愿意,您可以使用常规记事本编辑数据。

更复杂的数据(个人资料、评论、帖子等)有自己的 urn,使用标准 API (http://opendatahub.org/api_1.0?lang=ru) 作为 JSON 对象发送,这可以位于用户的域以及用户委托存储、发布和编辑其数据的第三方网站上(在 datarobots.txt 文件的 Services-Enabled 行中)。 此类第三方服务如下所述。

简单本体和 JSON

与行业知识库的本体相比,通信环境的本体相对简单。 由于在通信环境中存在相对较小的一组标准对象(帖子、评论、点赞、个人资料、评论)以及相对较小的属性集。

因此,在这样的环境下描述对象,使用 JSON 就足够了,而不是使用结构和解析更加复杂的 XML(重要的是不要忘记需要较低的入门门槛和可扩展性)。

要获取具有已知 urn 的对象,我们需要联系用户的域或用户已委托管理其数据的第三方服务。

在此在线环境中,存在在线服务的每个域也有自己的 datarobots.txt,位于 example.com/datarobots.txt 等地址,具有类似的内容:

Object: service
Api: http://newethnos.ru/api
Api-Version: http://opendatahub.org/api_1.0

从中我们可以了解到,我们可以获取有关地址处的对象的数据,例如:

http://newethnos.ru/api?urn=urn:opendata:profile:[电子邮件保护]

JSON 对象具有以下结构:

{
    "urn": "urn:opendata:profile:[email protected]",
    "status": 1,
    "message": "Ok",
    "timestamp": 1596429631,
    "service": "example.com",
    "data": {
        "name": "John",
        "surname": "Gald",
        "gender": "male",
        "city": "Moscow",
        "img": "http://domain.com/image.jpg",
        "birthtime": 332467200,
        "community_friends": {
            "[email protected]": "1",
            "[email protected]": "0.5",
            "[email protected]": "0.7"
        },
        "interests_tags": "cars,cats,cinema",
        "mental_cards": {
            "no_alcohol@main": 8,
            "data_accumulation@main": 8,
            "open_data@main": 8
        }
    }
}

服务架构

第三方服务对于简化最终用户发布和搜索数据的过程是必要的。

上面提到的是帮助用户在网络上发布其数据的服务类型之一。 可能有许多类似的服务,每个服务都为用户提供了一个方便的界面来编辑一种类型的数据(论坛、博客、问答等)。 如果用户不信任第三方服务,那么他可以在自己的域上安装数据服务脚本或自己开发。

除了允许用户发布/编辑数据的服务之外,在线环境还提供了许多其他服务,这些服务执行相对复杂的任务,而这些任务在最终用户节点上实现起来相当困难。

此类服务的一种类型是数据中心( opendatahub.org/en - 示例),充当一种网络存档,收集所有公共机器可读用户数据并通过 API 提供对其的访问。

在这样一个开放、去中心化的在线环境中提供服务,大大降低了用户的进入门槛,因为无需安装和配置自己的节点。 同时,用户仍然可以控制他的数据(他可以随时更改数据发布所委托的服务或创建自己的节点)。

如果用户对拥有自己的数据根本不感兴趣,并且没有自己的域或熟悉该域的人,那么默认情况下,他的数据由 opendatahub.org 管理。

这一切的代价是谁的?

也许几乎所有此类去中心化项目的主要问题是无法将其货币化到足以稳定发展和支持的水平。

捐赠 + 代币用于支付此在线环境中的开发和营销成本。

用户对内部项目/服务的所有捐赠都是公开的、机器可读的并链接到电子邮件。 这使得它们可以被考虑在内,例如,在计算在线社交评级并在用户页面上发布时。 当捐款不再是匿名时,实际上用户不再捐款,而是“捐款”以支持一般信息环境。 就像人们捐钱修理公共区域一样,以适当的态度对待那些拒绝捐钱的人。

除了捐款之外,为了筹集资金,还使用了限量发行的代币(400.000 个),这些代币奖励给所有向主要基金(民族起源)捐款的人。

额外的代币功能

每个令牌都是访问此在线环境的“钥匙”。 也就是说,只有当您拥有至少 1 个与电子邮件绑定的令牌时,您才可以使用服务并成为在线环境的一部分。

由于其有限的性质,令牌是一个很好的垃圾邮件过滤器。 系统中的用户越多,获得代币就越困难,创建机器人的成本也越高。

人、他们的数据和社交关系比技术更重要

所描述的在线环境在技术上是一个相对原始的解决方案。 但其中更重要的并不是技术,而是人以及环境中创建的社会联系和数据(内容)。

创建的社交社区,其成员拥有自己的通用标识符(电子邮件和自己的域名)和结构化数据(具有URN地址、本体和JSON对象),当出现更好的技术解决方案时,可以将所有这些数据转移到另一个在线环境,同时保持已形成的联系(收视率、收视率)和内容。

这篇文章描述了网络自组织社区的要素之一,除了去中心化的在线环境之外,还包括许多线下区域,这些区域增加了在线环境的好处,并且是在很大程度上决定其功能的“客户”。 但这些是与 IT 和技术不直接相关的其他文章的主题。

来源: habr.com

添加评论