Ambiente de informação com princípios de Open Data

Ambiente de informação com princípios de Open Data

O ambiente de informação proposto é uma espécie de rede social descentralizada. Mas, ao contrário de muitas soluções existentes, este ambiente possui uma série de propriedades úteis além da descentralização e é baseado em soluções técnicas bastante simples e padrão (email, json, arquivos de texto e um pouco de blockchain). Isso permite que qualquer pessoa com conhecimentos básicos de programação crie seus próprios serviços para este ambiente.

Identificador Universal

Em qualquer ambiente online, os identificadores de usuários e objetos são um dos elementos-chave do sistema.

Neste caso, o identificador do usuário é o email, que já se tornou um identificador amplamente aceito para autenticação em sites e outros serviços (jaber, openId).

De fato, o identificador do usuário neste ambiente online é um par login+domínio, que para maior conveniência é registrado de forma familiar para a maioria. Nesse contexto, para maior descentralização, cada usuário deve ter seu próprio domínio. Isso está próximo dos princípios do indieweb, onde o domínio é usado como identificador do usuário. No nosso caso, o usuário adiciona um nickname ao seu domínio, permitindo a criação de várias contas em um mesmo domínio (para amigos, por exemplo) e tornando o sistema de endereçamento mais flexível.

Esse formato de identificador de usuário não está vinculado a nenhuma rede específica. Se um usuário colocar seus dados na rede TOR, pode-se usar domínios na zona .onion; se for uma rede com um sistema DNS em blockchain, então domínios em zonas como .bit. Assim, o formato de endereçamento de usuários e seus dados não depende da rede pela qual são transmitidos (onde quer que seja, usa-se a combinação login+domínio). Para aqueles que desejam usar o endereço de bitcoin/ethereum como identificador, o sistema pode ser adaptado para usar endereços de email pseudônimos do tipo xaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain

Endereçamento de Objetos

Este ambiente online é, de fato, um conjunto de objetos descritos em um formato estruturado e legível por máquinas, que fazem referência a outros objetos e estão vinculados a um determinado usuário (email) ou projeto/organização (domínio).

Os identificadores de objetos utilizam urn no namespace urn:opendata. Por exemplo, o perfil do usuário tem um endereço no formato:

urn:opendata:profile:user@domain.com

O comentário do usuário tem um endereço no formato:

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

onde 08adbed93413782682fd25da77bd93c99dfd0548 — é um hash sha-1 aleatório, atuando como o id do objeto, e user@domain.com — é o dono deste objeto.

Princípios de publicação de dados dos usuários

Gerenciando seu próprio domínio, o usuário pode publicar seus dados e conteúdo de forma bastante simples. E ao contrário do IndieWeb, não é necessário criar um site com páginas HTML embutidas com dados semânticos.

Por exemplo, as informações básicas sobre o usuário são armazenadas em um arquivo datarobots.txt, que está em um endereço no formato

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

E tem um conteúdo no seguinte formato:

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

Ou seja, na prática, é um conjunto de linhas com dados no formato chave->valor, que pode ser facilmente analisado por qualquer pessoa com conhecimentos básicos de programação. Além disso, os dados podem ser editados, se desejado, por meio de um simples editor de texto.

Dados mais complexos (perfil, comentário, post, etc.), que têm seu próprio urn — são retornados como um objeto JSON por uma API padrão (http://opendatahub.org/api_1.0?lang=ru), que pode estar hospedada tanto no domínio do usuário quanto em um site externo ao qual o usuário delegou o armazenamento, publicação e edição de seus dados (na linha Services-Enabled do arquivo datarobots.txt). Serviços externos semelhantes são discutidos abaixo.

Ontologia simples e JSON

A ontologia do ambiente de comunicação é relativamente simples, em comparação com as ontologias de bancos de dados setoriais. Como no ambiente de comunicação existe um conjunto relativamente pequeno de objetos padrão (post, comentário, like, perfil, avaliação) com um conjunto relativamente pequeno de propriedades.

Portanto, para descrever objetos em tal ambiente, é suficiente usar JSON em vez de XML, que é mais complexo em termos de estrutura e análise (é importante não esquecer a necessidade de um baixo limite de entrada e escalabilidade).

Para obter um objeto com o urn que conhecemos — é necessário acessar o domínio do usuário ou serviços externos aos quais o usuário delegou a gestão de seus dados.

Neste ambiente online, cada domínio que hospeda um serviço online também possui seu próprio datarobots.txt, que pode ser encontrado no endereço example.com/datarobots.txt, contendo o seguinte:

Objeto: serviço
Api: http://newethnos.ru/api
Api-Version: http://opendatahub.org/api_1.0

A partir do qual podemos saber que os dados sobre o objeto podem ser obtidos no endereço:

http://newethnos.ru/api?urn=urn:opendata:profile:konstantin@55334.ru

O objeto JSON tem a seguinte estrutura:

{
    "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
        }
    }
}

Arquitetura de serviço

Serviços de terceiros são necessários para simplificar o processo de publicação e busca de dados pelos usuários finais.

Um dos tipos de serviços mencionados acima ajuda o usuário a publicar seus dados na web. Há a possibilidade de existir muitos serviços semelhantes, cada um oferecendo uma interface amigável para editar um tipo de dado (fórum, blog, perguntas e respostas, etc.). Se o usuário não confiar em serviços de terceiros, ele pode instalar um script de serviço para manipulação de dados em seu domínio ou desenvolvê-lo ele mesmo.

Além dos serviços que permitem aos usuários publicar/editar dados, existem vários outros serviços na esfera online que executam tarefas relativamente complexas, difíceis de implementar nos nós dos usuários finais.

Um desses serviços é o hub de dados ( opendatahub.org/ru — exemplo), atuando como uma espécie de arquivo web que coleta todos os dados públicos e legíveis por máquina dos usuários e fornece acesso a eles via API.

A presença de serviços em um ambiente online descentralizado e aberto reduz significativamente a barreira de entrada para os usuários, pois elimina a necessidade de instalação e configuração de seu próprio nó. Ao mesmo tempo, o usuário mantém o controle sobre seus dados (a qualquer momento, pode mudar o serviço ao qual delega a publicação de dados ou criar seu próprio nó).

Se o usuário não estiver interessado em ter controle sobre seus dados e não tiver um domínio próprio ou conhecimento sobre domínios, por padrão, seus dados serão gerenciados pelo opendatahub.org.

Quem está pagando por tudo isso?

Provavelmente, o principal problema de quase todos esses projetos descentralizados é a impossibilidade de monetizá-los em um nível suficiente para um desenvolvimento e suporte estáveis.

Para cobrir os custos de desenvolvimento e marketing nesse ambiente online, utilizam-se doações + tokens.

Todas as doações feitas pelos usuários para os projetos/serviços internos são públicas, legíveis por máquina e vinculadas a e-mails. Isso permite que sejam consideradas, por exemplo, no cálculo de uma pontuação social dentro da rede e publicadas nas páginas dos usuários. Quando as doações deixam de ser anônimas, os usuários na verdade não estão doando, mas sim 'contribuindo' para o suporte de um ambiente informativo comum. Assim como as pessoas contribuem para a manutenção de áreas comuns, com a devida atenção àquelas que se recusam a contribuir.

Além das doações, para arrecadar fundos são utilizados tokens emitidos em quantidade limitada (400.000), que são concedidos a todos que fazem doações para o fundo principal (ethnogenesis).

Funções adicionais dos tokens

Cada token é uma 'chave' de acesso a este ambiente online. Ou seja, é possível usar os serviços e fazer parte do ambiente online apenas tendo pelo menos 1 token, que é vinculado ao e-mail.

Os tokens funcionam como um bom filtro contra spam devido à sua limitação. Quanto mais usuários existem no sistema, mais difícil se torna obter um token e mais custoso criar bots.

As pessoas, seus dados e interações sociais são mais importantes que as tecnologias.

O ambiente online descrito é tecnicamente uma solução relativamente primitiva. Contudo, o que é mais importante não são tanto as tecnologias, mas sim as pessoas e as relações sociais e os dados (conteúdo) criados dentro desse ambiente.

A comunidade social criada, cujos participantes possuem seus identificadores universais (email e seu domínio) e dados estruturados (com endereços URN, ontologia e objetos JSON), ao encontrar uma solução técnica melhor, pode transferir todos esses dados para outro ambiente online, mantendo ao mesmo tempo as conexões formadas (classificações, avaliações) e o conteúdo.

Este post descreve um dos elementos da comunidade auto-organizada em rede, que, além do ambiente online descentralizado, inclui uma série de direções offline que aumentam a utilidade do ambiente online e atuam como 'clientes', muitas vezes definindo suas funcionalidades. Mas esses são temas para outros artigos, que não têm relação direta com TI e tecnologias.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster