Entorno informático basado en principios de Open Data

Entorno informático basado en principios de Open Data

El entorno informativo propuesto es una especie de red social descentralizada. Sin embargo, a diferencia de muchas soluciones existentes, este entorno cuenta con una serie de propiedades útiles además de la descentralización y se basa en soluciones técnicas bastante simples y estándar (email, json, archivos de texto y un poco de blockchain). Esto permite a cualquier persona con conocimientos básicos de programación crear sus propios servicios para este entorno.

Identificador universal

En cualquier entorno en línea, los identificadores de usuarios y objetos son uno de los elementos clave del sistema.

En este caso, el identificador del usuario es el email, que ya se ha convertido en un identificador común para la autorización en sitios y otros servicios (jaber, openId).

De hecho, el identificador del usuario en este entorno en línea es un par login+dominio, que se escribe en un formato conveniente para la mayoría. A su vez, para mayor descentralización, se recomienda que cada usuario tenga su propio dominio. Esto se aproxima a los principios de indieweb, donde se utiliza el dominio como identificador del usuario. En nuestro caso, el usuario añade su apodo a su dominio, lo que permite crear varias cuentas en un mismo dominio (para amigos, por ejemplo) y hace que el sistema de direccionamiento sea más flexible.

Este formato de identificador de usuario no está vinculado a ninguna red. Si el usuario publica sus datos en la red TOR, se pueden utilizar dominios en la zona .onion; si es una red con sistema DNS en blockchain, entonces dominios en la zona tipo .bit. En resumen, el formato de direccionamiento de los usuarios y sus datos no depende de la red a través de la cual se transmiten (se utiliza en todas partes el vínculo login+dominio). Para aquellos que deseen usar como identificador una dirección bitcoin/ethereum, se puede adaptar el sistema para utilizar direcciones de emails pseudónimos del tipo xaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain

Direccionamiento de objetos

Este entorno en línea es, de hecho, un conjunto de objetos que están descritos en un formato estructurado y legible por máquina, se refieren a otros objetos y están vinculados a un usuario determinado (email) o a un proyecto/organización (dominio).

Se utilizan identificadores de objetos urn en el espacio de nombres urn:opendata. Por ejemplo, el perfil de usuario tiene una dirección de este tipo:

urn:opendata:profile:user@domain.com

El comentario del usuario tiene una dirección de este tipo:

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

donde 08adbed93413782682fd25da77bd93c99dfd0548 es un hash sha-1 aleatorio que actúa como id del objeto, y user@domain.com es el propietario de dicho objeto.

El principio de publicación de datos del usuario

Al tener su propio dominio, el usuario puede publicar fácilmente sus datos y contenido. A diferencia de indiebeb, para esto no es necesario crear un sitio web con páginas HTML que contengan datos semánticos.

Por ejemplo, la información básica del usuario se coloca en el archivo datarobots.txt, que se encuentra en una dirección de este tipo

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

Y tiene un contenido de este formato:

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

Es decir, en realidad, es un conjunto de líneas con datos del tipo clave->valor, que es fácil de analizar para cualquier persona con conocimientos básicos de programación. Y se pueden editar los datos si se desea a través de un bloc de notas común.

Datos más complejos (perfil, comentario, publicación, etc.), que tienen su urn, se devuelven en forma de objeto JSON a través de la API estándar (http://opendatahub.org/api_1.0?lang=ru), que puede estar en el dominio del usuario o en otro sitio al que el usuario ha delegado el almacenamiento, publicación y edición de sus datos (en la línea Services-Enabled del archivo datarobots.txt). Sobre estos servicios externos se escribe más abajo.

Ontología simple y JSON

La ontología del entorno de comunicación es relativamente simple en comparación con las ontologías de las bases de datos de la industria. Ya que en el entorno de comunicación existe un conjunto relativamente pequeño de objetos estándar (publicación, comentario, me gusta, perfil, reseña) con un conjunto relativamente pequeño de propiedades.

Por lo tanto, para describir objetos en este entorno, es suficiente utilizar JSON en lugar de XML, que es más complicado en estructura y análisis (es importante no olvidar la necesidad de un bajo umbral de entrada y la escalabilidad).

Para obtener un objeto con un urn conocido, es necesario dirigirse al dominio del usuario, o a los servicios externos a los que el usuario ha delegado la gestión de sus datos.

En este entorno en línea, cada dominio que tiene un servicio en línea también cuenta con su propio datarobots.txt ubicado en una dirección del tipo example.com/datarobots.txt con un contenido similar a:

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

Del cual podemos saber que se puede obtener datos sobre el objeto en una dirección del tipo:

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

El objeto JSON tiene la siguiente estructura:

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

Arquitectura del servicio

Los servicios externos son necesarios para simplificar el proceso de publicación y búsqueda de datos por parte de los usuarios finales.

Se mencionó anteriormente uno de los tipos de servicios que ayudan al usuario a publicar sus datos en la red. Puede haber muchos servicios similares, cada uno de los cuales proporciona al usuario una interfaz conveniente para editar uno de los tipos de datos (foro, blog, preguntas-respuestas, etc.). Si el usuario no confía en los servicios externos, puede instalar un script del servicio para manejar datos en su dominio o desarrollarlo por sí mismo.

Además de los servicios que permiten a los usuarios publicar/editar datos, en el entorno en línea hay una serie de otros servicios que realizan tareas relativamente complejas que son bastante problemáticas de implementar en los nodos de los usuarios finales.

Uno de esos tipos de servicios son los hubs de datos ( opendatahub.org/ru — como ejemplo), que actúan como una especie de archivo web que recolecta todos los datos públicos legibles por máquina de los usuarios y proporciona acceso a ellos a través de API.

La existencia de servicios en un entorno en línea abierto y descentralizado reduce significativamente la barrera de entrada para los usuarios, ya que no es necesario instalar y configurar su propio nodo. Al mismo tiempo, el usuario mantiene el control sobre sus datos (en cualquier momento puede cambiar el servicio al que ha delegado la publicación de datos o crear su propio nodo).

Si al usuario no le interesa en absoluto poseer sus datos y no tiene su propio dominio o a alguien que conozca con dominio, por defecto sus datos son gestionados por opendatahub.org.

¿A expensas de quién es todo esto?

Quizás el principal problema de casi todos los proyectos descentralizados similares es la imposibilidad de monetizarlos a un nivel suficiente para su desarrollo y mantenimiento sostenible.

Para cubrir los costos de desarrollo y marketing en este entorno en línea se utilizan donaciones + tokens.

Todas las donaciones que los usuarios hacen a proyectos/servicios internos son públicas, legibles por máquina y están vinculadas al email. Esto permite tenerlas en cuenta, por ejemplo, al calcular la calificación social dentro de la red y publicarlas en las páginas de los usuarios. Cuando las donaciones dejan de ser anónimas, en realidad, los usuarios no donan, sino que 'aportan' para apoyar el entorno informativo común. Así como las personas contribuyen al mantenimiento de los espacios públicos, con la correspondiente actitud hacia aquellos que se han negado a contribuir.

Además de las donaciones, se utilizan tokens emitidos en cantidades limitadas (400.000) para atraer fondos, que se asignan a todos los que hacen donaciones al fondo principal (ethnogenesis).

Funciones adicionales de los tokens

Cada token es una 'clave' para acceder a este entorno en línea. Es decir, solo se puede utilizar los servicios y ser parte del entorno en línea si se posee al menos 1 token, que se vincula al email.

Los tokens son un buen filtro contra el spam debido a su limitación. Cuantos más usuarios hay en el sistema, más difícil es obtener un token y más costoso es crear bots.

Las personas, sus datos y las relaciones sociales son más importantes que la tecnología.

El entorno en línea descrito es técnicamente una solución relativamente primitiva. Pero lo que es más importante en él no son tanto las tecnologías, sino las personas y las conexiones sociales y datos (contenido) que se crean dentro del entorno.

La comunidad social creada, cuyos participantes tienen sus identificadores universales (correo electrónico y su dominio) y datos estructurados (con direcciones URN, ontología y objetos JSON), puede transferir todos estos datos a otro entorno en línea cuando aparezca una mejor solución técnica, manteniendo al mismo tiempo las conexiones formadas (calificaciones, evaluaciones) y el contenido.

En esta publicación se describe uno de los elementos de la comunidad autoorganizada en red, que además de un entorno en línea descentralizado incluye una serie de direcciones offline, que aumentan la utilidad del entorno en línea y son "clientes", en gran medida determinantes de su funcionalidad. Pero estos ya son temas para otros artículos, que no tienen relación directa con la informática y la tecnología.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster