Ambiente informativo basato sui principi Open Data

Ambiente informativo basato sui principi Open Data

L'ambiente informativo proposto è una sorta di rete sociale decentralizzata. A differenza di molte soluzioni esistenti, questo ambiente ha una serie di proprietà utili oltre alla decentralizzazione ed è creato sulla base di soluzioni tecniche piuttosto semplici e standard (email, json, file di testo e un po' di blockchain). Questo consente a chiunque abbia conoscenze di programmazione di base di creare i propri servizi per questo ambiente.

Identificatore universale

In qualsiasi ambiente online, gli identificatori degli utenti e degli oggetti sono uno degli elementi chiave del sistema.

In questo caso, come identificatore dell'utente viene utilizzata l'email, che è ormai diventata un identificatore comunemente accettato per l'autenticazione su siti e altri servizi (jaber, openId).

Fondamentalmente, l'identificatore dell'utente in questo ambiente online è una coppia login+domain, che per comodità viene scritta nella forma abituale per la maggior parte delle persone. Inoltre, per una maggiore decentralizzazione è auspicabile che ogni utente abbia il proprio dominio. Questo è in linea con i principi dell'indieweb, dove il dominio è utilizzato come identificatore utente. Nel nostro caso, l'utente aggiunge un nickname al proprio dominio, il che consente di creare più account su un unico dominio (ad esempio, per amici) e rende il sistema di indirizzamento più flessibile.

Questo formato di identificatore utente non è legato a nessuna rete specifica. Se un utente carica i propri dati nella rete TOR, è possibile utilizzare i domini nella zona .onion; se si tratta di una rete con un sistema DNS su blockchain, si possono usare domini di tipo .bit. Di conseguenza, il formato di indirizzamento degli utenti e dei loro dati non dipende dalla rete attraverso cui vengono trasmessi (si utilizza sempre la combinazione login+domain). Per chi desidera utilizzare come identificatore un indirizzo bitcoin/ethereum, il sistema può essere adattato all'uso di pseudonimi di tipo email xaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain

Indirizzamento degli oggetti

Questo ambiente online è fondamentalmente un insieme di oggetti, descritti in modo strutturato e leggibile dalle macchine, che rimandano ad altri oggetti e sono legati a un determinato utente (email) o progetto/organizzazione (dominio).

Quali identificatori degli oggetti vengono utilizzati urn nello spazio dei nomi urn:opendata. Ad esempio, il profilo dell'utente ha un indirizzo del tipo:

urn:opendata:profile:user@domain.com

Il commento dell'utente ha un indirizzo del tipo:

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

dove 08adbed93413782682fd25da77bd93c99dfd0548 è un hash sha-1 casuale, che funge da id dell'oggetto, e user@domain.com è il proprietario di questo oggetto.

Il principio di pubblicazione dei dati degli utenti

Avendo sotto il proprio dominio, l'utente può pubblicare abbastanza facilmente i propri dati e contenuti. E a differenza di indiebeba, non è necessario creare un sito con pagine html integrate di dati semantici.

Ad esempio, le informazioni di base sull'utente sono collocate nel file datarobots.txt, che si trova all'indirizzo del tipo

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

E ha un contenuto di questo formato:

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

Quindi, in effetti, si tratta di un insieme di righe con dati del tipo chiave->valore, che è un compito semplice da analizzare per chiunque abbia nozioni di programmazione di base. E modificare i dati, se desiderato, può essere fatto tramite un semplice blocco note.

Dati più complessi (profilo, commento, post, ecc.) con il proprio urn vengono restituiti sotto forma di oggetto JSON tramite l'API standard (http://opendatahub.org/api_1.0?lang=ru), che può trovarsi sia sul dominio dell'utente, sia su un sito terzo, a cui l'utente ha delegato l'archiviazione, pubblicazione e modifica dei propri dati (nella riga Services-Enabled del file datarobots.txt). Di tali servizi terzi è scritto di seguito.

Una semplice ontologia e JSON

L'ontologia dell'ambiente comunicativo è relativamente semplice, rispetto alle ontologie dei database del settore. Poiché nell'ambiente della comunicazione esiste un insieme relativamente ridotto di oggetti standard (post, commento, like, profilo, recensione) con un insieme relativamente ridotto di proprietà.

Pertanto, per descrivere oggetti in tale ambiente è sufficiente utilizzare JSON invece di XML, che è più complesso nella struttura e nell'analisi (è importante non dimenticare la necessità di una bassa barriera d'ingresso e scalabilità).

Per ottenere un oggetto con un urn a noi noto, è necessario contattare il dominio dell'utente o servizi terzi a cui l'utente ha delegato la gestione dei propri dati.

In questo ambiente online, ogni dominio su cui esiste un servizio online ha anche il proprio datarobots.txt posizionato all'indirizzo del tipo example.com/datarobots.txt con il seguente contenuto:

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

Da cui possiamo apprendere che è possibile ottenere dati sull'oggetto all'indirizzo del tipo:

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

L'oggetto JSON ha questa struttura:

{
    "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": "auto,gatti,cinema",
        "mental_cards": {
            "no_alcohol@main": 8,
            "data_accumulation@main": 8,
            "open_data@main": 8
        }
    }
}

Architettura di servizio

I servizi di terze parti sono necessari per semplificare il processo di pubblicazione e ricerca di dati da parte degli utenti finali.

È stato menzionato sopra uno dei tipi di servizi che aiutano l'utente a pubblicare i propri dati online. Possono esistere molti servizi simili, ognuno dei quali fornisce all'utente un'interfaccia comoda per modificare uno dei tipi di dati (forum, blog, domande e risposte, ecc.). Se l'utente non si fida dei servizi di terze parti, può installare uno script di servizio per la gestione dei dati sul proprio dominio o svilupparlo autonomamente.

Oltre ai servizi che permettono agli utenti di pubblicare/modificare dati, esiste una serie di altri servizi nell'ambiente online che svolgono compiti relativamente complessi, piuttosto difficili da realizzare sui nodi degli utenti finali.

Uno di questi tipi di servizi sono i data hub ( opendatahub.org/ru — esempio), che svolgono la funzione di una sorta di archivio web, raccogliendo tutti i dati pubblici leggibili dalle macchine degli utenti e fornendo accesso a essi tramite API.

La presenza di servizi in un ambiente online aperto e decentralizzato riduce significativamente la barriera d'ingresso per gli utenti, poiché non è necessaria l'installazione e la configurazione di un nodo proprio. Allo stesso tempo, l'utente mantiene il controllo sui propri dati (in qualsiasi momento può cambiare il servizio a cui è delegata la pubblicazione dei dati o creare il proprio nodo).

Se un utente non è affatto interessato a controllare i propri dati e non possiede un proprio dominio o non conosce qualcuno che lo abbia, per impostazione predefinita i suoi dati sono gestiti da opendatahub.org.

A spese di chi è tutto ciò?

Probabilmente il principale problema di quasi tutti i progetti decentralizzati simili è l'impossibilità di monetizzarli a un livello sufficiente per uno sviluppo e un supporto stabile.

Per coprire i costi di sviluppo e marketing, in questo ambiente online si utilizzano donazioni + token.

Tutte le donazioni che gli utenti effettuano verso progetti/servizi interni sono pubbliche, leggibili dalle macchine e associate a un'email. Ciò consente di tenerle in considerazione, ad esempio, nel calcolo del punteggio sociale interno e di pubblicarle sulle pagine degli utenti. Quando le donazioni smettono di essere anonime, in effetti gli utenti non donano, ma contribuiscono al supporto dell'ambiente informativo comune. Proprio come le persone contribuiscono alla manutenzione degli spazi comuni, mostrando un atteggiamento verso coloro che si sono rifiutati di contribuire.

Oltre alle donazioni, per raccogliere fondi si utilizzano token emessi in numero limitato (400.000), che vengono assegnati a tutti coloro che effettuano donazioni al fondo principale (ethnogenesis).

Funzioni aggiuntive dei token

Ogni token è una "chiave" per l'accesso a questo ambiente online. Ciò significa che per utilizzare i servizi e far parte dell'ambiente online è necessario possedere almeno 1 token, che è associato a un'email.

I token fungono da efficace filtro anti-spam a causa della loro limitatezza. Più utenti ci sono nel sistema, più difficile diventa ottenere un token e più costoso è creare bot.

Le persone, i loro dati e le relazioni sociali sono più importanti delle tecnologie

L'ambiente online descritto è tecnicamente una soluzione relativamente primitiva. Ma ciò che è più importante non sono tanto le tecnologie, quanto le persone e le relazioni sociali e i dati (contenuti) che vengono creati all'interno dell'ambiente.

La comunità sociale creata, i cui partecipanti hanno i propri identificatori universali (email e dominio) e dati strutturati (con indirizzi URN, ontologia e oggetti JSON), una volta disponibile una soluzione tecnica migliore, può trasferire tutti questi dati in un altro ambiente online, mantenendo le relazioni formate (valutazioni, punteggi) e il contenuto.

In questo post viene descritto uno degli elementi della comunità autoorganizzata in rete, che oltre all'ambiente online decentralizzato include una serie di direzioni offline che aumentano l'utilità dell'ambiente online e sono i “committenti” che, in larga misura, ne definiscono le funzionalità. Ma questi sono già temi per altri articoli, che non hanno un rapporto diretto con IT e tecnologie.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster