Environnement d'information basé sur les principes de l'Open Data





L'environnement d'information proposé est une sorte de réseau social décentralisé. Mais contrairement à de nombreuses solutions existantes, cet environnement possède un certain nombre de propriétés utiles en plus de la décentralisation et est créé sur la base de solutions techniques assez simples et standards (email, json, fichiers texte et une petite blockchain). Cela permet à toute personne ayant des connaissances de base en programmation de créer ses propres services pour cet environnement.



Identifiant générique



Dans tout environnement en ligne, les identifiants d'utilisateur et d'objet sont l'un des éléments clés du système.



Dans ce cas, l'email agit comme un identifiant d'utilisateur, qui est en fait devenu un identifiant généralement accepté pour l'autorisation sur les sites et autres services (jaber, openId).



En fait, l'ID utilisateur dans cet environnement en ligne est la paire login + domaine, qui, pour plus de commodité, est écrite sous la forme la plus familière. De plus, pour une plus grande décentralisation, il est souhaitable que chaque utilisateur dispose de son propre domaine. Ce qui est proche des principes de l'individu, où un domaine est utilisé comme identifiant d'utilisateur. Dans notre cas, un utilisateur ajoute un pseudo à son domaine, ce qui permet de créer plusieurs comptes sur un même domaine (pour les amis, par exemple) et rend le système d'adressage plus flexible.



Ce format d'ID utilisateur n'est lié à aucun réseau. Si l'utilisateur place ses données dans le réseau TOR, vous pouvez utiliser des domaines dans la zone .onion, s'il s'agit d'un réseau avec un système DNS sur la blockchain, puis des domaines dans la zone .bit. De ce fait, le format d'adressage des utilisateurs et de leurs données ne dépend pas du réseau par lequel ils sont transmis (le bundle login + domaine est utilisé partout). Pour ceux qui souhaitent utiliser l'adresse bitcoin / ethereum comme identifiant, le système peut être modifié pour utiliser des pseudo adresses e-mail commexaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain



Adressage d'objets



Cet environnement en ligne est en fait un ensemble d'objets qui sont décrits sous une forme structurée lisible par machine, font référence à d'autres objets et sont liés à un utilisateur (e-mail) ou un projet / une organisation (domaine) spécifique.



L'urn dans l'espace de noms urn: opendata est utilisé comme identificateur d'objet. Par exemple, un profil utilisateur a une adresse de la forme:



urn:opendata:profile:user@domain.com


Le commentaire de l'utilisateur a une adresse de la forme:



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


où 08adbed93413782682fd25da77bd93c99dfd0548 est un hachage sha-1 aléatoire qui agit comme un identifiant d'objet, et user@domain.com est le propriétaire de cet objet.



Principe de publication des données utilisateur



Avec son domaine sous contrôle, un utilisateur peut facilement publier ses données et son contenu. Et contrairement à indibeb, cela ne nécessite pas de créer un site avec des pages html dans lesquelles des données sémantiques sont intégrées.



Par exemple, les informations de base sur un utilisateur se trouvent dans le fichier datarobots.txt situé à une adresse comme



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


Et il a un contenu de ce format:



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


En fait, il s'agit d'un ensemble de chaînes avec des données de la forme clé-> valeur, ce qui est une tâche facile à analyser pour toute personne ayant des connaissances de base en programmation. Et vous pouvez modifier les données, si vous le souhaitez, via un bloc-notes ordinaire.



Les données plus complexes (profil, commentaire, publication, etc.) qui ont leur propre urne sont renvoyées en tant qu'objet JSON à l'aide de l'API standard (http://opendatahub.org/api_1.0?lang=ru), qui peut être localisée comme sur le domaine de l'utilisateur et sur un site tiers auquel l'utilisateur a délégué le stockage, la publication et l'édition de ses données (dans la ligne Services-Enabled du fichier datarobots.txt). Ces services tiers sont décrits ci-dessous.



Ontologie simple et JSON



L'ontologie de l'environnement de communication est relativement simple par rapport à l'ontologie des bases de connaissances de l'industrie. Étant donné que dans l'environnement de communication, il existe un ensemble relativement petit d'objets standard (publication, commentaire, type, profil, avis) avec un ensemble relativement petit de propriétés.



Par conséquent, pour décrire des objets dans un tel environnement, il suffit d'utiliser JSON au lieu de XML, qui est plus complexe en structure et en analyse (il est important de ne pas oublier la nécessité d'un seuil d'entrée et d'une évolutivité bas).



Pour obtenir un objet avec l'urne que nous connaissons, vous devez vous référer au domaine de l'utilisateur, ou à des services tiers auxquels l'utilisateur a délégué la gestion de ses données.



Dans cet environnement en ligne, chaque domaine sur lequel un service en ligne existe a également son propre datarobots.txt situé à une adresse comme example.com/datarobots.txt avec un contenu similaire:



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


D'où nous pouvons apprendre que vous pouvez obtenir des données sur un objet à une adresse de la forme:



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



objet JSON a la structure suivante:



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


Architecture de service



Des services tiers sont nécessaires pour simplifier le processus de publication et de recherche de données pour les utilisateurs finaux.



Ci-dessus, l'un des types de services a été mentionné qui aident l'utilisateur à publier ses données sur le réseau. Il peut y avoir de nombreux services de ce type, chacun offrant à l'utilisateur une interface pratique pour éditer l'un des types de données (forum, blog, question-réponse, etc.). Si l'utilisateur ne fait pas confiance aux services tiers, il peut installer un script de service pour travailler avec les données de son domaine ou le développer indépendamment.



Outre les services qui permettent aux utilisateurs de publier / modifier des données, un certain nombre d'autres services sont fournis dans l'environnement en ligne qui exécutent des tâches relativement complexes qui sont assez problématiques à mettre en œuvre sur les nœuds des utilisateurs finaux.



L'un des types de ces services sont les hubs de données ( opendatahub.org/ru en est un exemple), qui agissent comme une sorte d'archive Web qui collecte toutes les données utilisateur publiques lisibles par machine et leur donne accès via une API.



La présence de services dans un tel environnement en ligne ouvert et décentralisé réduit considérablement le seuil d'entrée pour les utilisateurs, car il n'est pas nécessaire d'installer et de configurer votre propre nœud. Dans le même temps, l'utilisateur garde le contrôle sur ses données (à tout moment, vous pouvez modifier le service auquel la publication des données est déléguée ou créer votre propre nœud).



Si l'utilisateur n'est pas du tout intéressé par la propriété de ses données et qu'il n'a pas son propre domaine ou est familier avec le domaine, alors par défaut opendatahub.org gère ses données.



Aux dépens de qui tout cela?



Le principal problème de presque tous ces projets décentralisés est peut-être l'impossibilité de les monétiser à un niveau suffisant pour un développement et un soutien stables.



Les jetons Donate + sont utilisés pour couvrir les coûts de développement et de marketing dans cet environnement en ligne.



Tous les dons que les utilisateurs font à des projets / services internes sont publics, lisibles par machine et liés au courrier électronique. Cela vous permet de les prendre en compte, par exemple, lors du calcul de la cote sociale intranet et de les publier sur les pages des utilisateurs. Lorsque les dons cessent d'être anonymes, alors en fait, les utilisateurs ne font pas de don, mais «se débarrassent» pour soutenir l'environnement commun de l'information. Tout comme les gens se lancent pour la réparation des lieux publics avec une attitude appropriée envers ceux qui ont refusé de se jeter.



En plus des dons, pour collecter des fonds, des jetons émis pour un montant limité (400 000) sont utilisés, qui sont crédités à tous ceux qui font des dons au fonds principal (ethnogenèse).



Fonctions supplémentaires des jetons



Chaque jeton est une «clé» pour accéder à cet environnement en ligne. Autrement dit, vous ne pouvez utiliser les services et faire partie de l'environnement en ligne que si vous disposez d'au moins 1 jeton, qui est lié à votre e-mail.



Les jetons sont un bon filtre anti-spam en raison de leurs limitations. Plus il y a d'utilisateurs dans le système, plus il est difficile d'obtenir un jeton et plus il est coûteux de créer des bots.



Les personnes, leurs données et leurs relations sociales sont plus importantes que la technologie



L'environnement en ligne décrit est techniquement une solution relativement primitive. Mais le plus important n'est pas tant la technologie que les personnes et les connexions sociales et les données (contenu) créées dans l'environnement.



La communauté sociale créée, dont les membres ont leurs propres identifiants universels (email et leur propre domaine) et des données structurées (avec adresses URN, ontologie et objets JSON) lorsqu'une meilleure solution technique apparaît, peut transférer toutes ces données vers un autre environnement en ligne, tout en conservant les liens formés (notes, notes) et contenu.



Cet article décrit l'un des éléments d'une communauté de réseau auto-organisée qui, en plus d'un environnement en ligne décentralisé, comprend un certain nombre de zones hors ligne qui augmentent les avantages de l'environnement en ligne et sont des «clients» qui déterminent en grande partie sa fonctionnalité. Mais ce sont déjà des sujets pour d'autres articles qui ne sont pas directement liés à l'informatique et à la technologie.



All Articles