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





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



通用标识符



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



在这种情况下,电子邮件充当用户标识符,实际上已经成为公认的站点和其他服务(jaber,openId)上的授权标识符。



实际上,此在线环境中的用户ID是登录名+域对,为方便起见,以最熟悉的形式编写。而且,为了更大的分散性,期望每个用户具有他们自己的域。这接近于个人的原则,其中域用作用户标识符。在我们的案例中,用户在其域中添加了一个昵称,从而允许在一个域上创建多个帐户(例如,对于朋友),并使寻址系统更加灵活。



此用户ID格式不与任何网络绑定。如果用户将其数据放置在TOR网络中,则可以使用.onion区域中的域,如果它是在区块链上具有DNS系统的网络,则可以使用.bit区域中的域。结果,用户及其数据的寻址格式不取决于用户通过其传输的网络(登录+域捆绑在各处使用)。对于那些希望使用比特币/以太坊地址作为标识符的人,可以将系统修改为使用伪电子邮件地址,例如xaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain



对象寻址



这个在线环境实际上是一组对象,这些对象以结构化的机器可读形式描述,指的是其他对象,并绑定到特定的用户(电子邮件)或项目/组织(域)。



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



urn:opendata:profile:user@domain.com


用户的评论具有以下形式的地址:



urn:opendata:comment:user@domain.com:08adbed93413782682fd25da77bd93c99dfd0548


其中08adbed93413782682fd25da77bd93c99dfd0548是一个随机的sha-1哈希,用作对象ID,而user@domain.com是该对象的所有者。



发布用户数据的原理



通过控制他的域,用户可以轻松地发布他的数据和内容。而且与indibeb不同,这不需要使用嵌入了语义数据的html页面创建站点。



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



http://55334.ru/konstantin@55334.ru/datarobots.txt


它具有以下格式的内容:



Object: user
Services-Enabled: 55334.ru,newethnos.ru
Ethnos: newethnos
Delegate-Tokens: http://55334.ru/konstantin@55334.ru/delegete.txt


也就是说,实际上,它是一组字符串,其数据格式为key-> value,对于任何具有基本编程知识的人来说,这都是一项容易的任务。然后,您可以根据需要通过常规记事本编辑数据。



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



简单的本体和JSON



与行业知识库的本体相比,通信环境的本体相对简单。由于在通信环境中,具有相对较少的属性集的相对较少的标准对象集(帖子,评论,喜欢,个人资料,评论)。



因此,要在这样的环境中描述对象,使用JSON代替XML就足够了,因为XML在结构和解析上更加复杂(重要的是不要忘记需要较低的进入阈值和可伸缩性)。



要使用我们已知的the来获取对象,您需要引用用户的域,或引用用户已将其数据管理委派给的第三方服务。



在此在线环境中,在线服务所在的每个域在位于类似example.com/datarobots.txt之类的地址上也具有其自己的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 : konstantin@55334.ru JSON对象具有以下结构:



{
    "urn": "urn:opendata:profile:expample@55334.ru",
    "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": {
            "example1@domain.com": "1",
            "example2@domain.com": "0.5",
            "example3@domain.com": "0.7"
        },
        "interests_tags": "cars,cats,cinema",
        "mental_cards": {
            "no_alcohol@main": 8,
            "data_accumulation@main": 8,
            "open_data@main": 8
        }
    }
}


服务架构



需要第三方服务来简化最终用户发布和检索数据的过程。



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



除了允许用户发布/编辑数据的服务之外,在线环境中还提供了许多其他服务,这些服务执行相对复杂的任务,这些任务在最终用户节点上实现时非常麻烦。



这种服务的一种类型是数据中心(以opendatahub.org/ru为例),它充当一种Web存档,收集所有公共机器可读的用户数据并通过API提供对它们的访问。



在这种开放的,分散的在线环境中,服务的存在大大降低了用户的进入门槛,因为无需安装和配置您自己的节点。同时,用户保留对其数据的控制权(您随时可以更改将数据发布委派给的服务或创建自己的节点)。



如果用户根本不希望拥有自己的数据,并且他没有自己的域或不熟悉该域,则默认情况下,opendatahub.org将管理其数据。



全部由谁承担?



几乎所有这些权力下放项目的主要问题也许是不可能将其货币化到足以稳定发展和支持的水平。



Donate +令牌用于支付此在线环境中的开发和营销成本。



用户对内部项目/服务所做的所有捐赠都是公开的,机器可读的并与电子邮件绑定。例如,在计算Intranet社会等级并将其发布在用户页面上时,这使您可以考虑它们。当捐赠不再匿名时,实际上用户不会捐赠,而是“放弃”以支持通用信息环境。就像人们为了拒绝拒绝的人而以适当的态度为修复公共场所而奔波。



除捐款外,为了筹集资金,还使用了限量发行的代币(400,000),该代币将记入向主要基金捐款的每个人(民族发生)。



令牌的附加功能



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



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



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



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



创建的社交社区在出现更好的技术解决方案时,其成员具有自己的通用标识符(电子邮件和自己的域)和结构化数据(具有URN地址,本体和JSON对象),可以将所有这些数据传输到另一个在线环境中,同时保持形成的链接(评分,评分)和内容。



这篇文章描述了自组织网络社区的要素之一,除了分散的在线环境外,它还包括许多离线区域,这些区域增加了在线环境的利益,并且是在很大程度上决定其功能的“客户”。但是这些已经是与IT和技术没有直接关系的其他文章的主题。



All Articles