Środowisko informacyjne oparte na zasadach Open Data

Środowisko informacyjne oparte na zasadach Open Data

Proponowane środowisko informacyjne jest rodzajem zdecentralizowanej sieci społecznej. W przeciwieństwie do wielu istniejących rozwiązań, to środowisko ma szereg przydatnych właściwości oprócz decentralizacji i zostało oparte na dość prostych i standardowych rozwiązaniach technicznych (email, json, pliki tekstowe i trochę technologii blockchain). Dzięki temu każdy, kto ma podstawowe umiejętności programistyczne, może tworzyć swoje własne usługi w tym środowisku.

Uniwersalny identyfikator

W każdym środowisku online identyfikatory użytkowników i obiektów są jednym z kluczowych elementów systemu.

W tym przypadku jako identyfikator użytkownika występuje email, który już faktycznie stał się powszechnie akceptowanym identyfikatorem do autoryzacji na stronach i w innych usługach (jaber, openId).

Faktycznie identyfikator użytkownika w tym środowisku online to para login+domain, która dla wygody zapisywana jest w znany większości sposób. Jednocześnie dla większej decentralizacji każdy użytkownik powinien mieć własną domenę. Co jest bliskie zasadom indywebu, gdzie jako identyfikator użytkownika używana jest domena. W naszym przypadku użytkownik dodaje do swojej domeny nickname, co pozwala na tworzenie kilku kont na jednej domenie (na przykład dla przyjaciół) i czyni system adresacji bardziej elastycznym.

Taki format identyfikatora użytkownika nie jest związany z żadną siecią. Jeśli użytkownik umieszcza swoje dane w sieci TOR, można używać domen w strefie .onion; jeśli to sieć z systemem DNS na blockchainie, to domeny w strefie typu .bit. Ostatecznie format adresacji użytkowników i ich danych nie zależy od sieci, przez którą są przesyłane (wszędzie wykorzystywana jest para login+domain). Dla chętnych, aby używać adresów bitcoin/ethereum jako identyfikatorów, system można dostosować do używania pseudo-emaili w formie xaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain

Adresacja obiektów

To środowisko online faktycznie jest zbiorem obiektów, które są opisane w ustrukturyzowany sposób, łatwy do przetwarzania przez maszyny, odnoszą się do innych obiektów i są przypisane do określonego użytkownika (email) lub projektu/organizacji (domena).

W rolach identyfikatorów obiektów używane są urn w przestrzeni nazw urn:opendata. Na przykład, profil użytkownika ma adres w postaci:

urn:opendata:profile:user@domain.com

Komentarz użytkownika ma adres w postaci:

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

gdzie 08adbed93413782682fd25da77bd93c99dfd0548 — losowy hash sha-1, który pełni rolę id obiektu, a user@domain.com — właściciel tego obiektu.

Zasada publikacji danych użytkowników

Mając pod kontrolą swoją domenę, użytkownik może dostatecznie łatwo publikować swoje dane i treści. A w przeciwieństwie do indiebeba, nie trzeba tworzyć strony z dokumentami html, w których zawarte są dane semantyczne.

Na przykład, podstawowe informacje o użytkowniku są umieszczane w pliku datarobots.txt, który znajduje się pod adresem w postaci

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

I ma treść tego formatu:

Obiekt: użytkownik
Usługi-włączone: 55334.ru,newethnos.ru
Etnos: newethnos
Delegowane-tokeny: http://55334.ru/konstantin@55334.ru/delegete.txt

Oznacza to w rzeczywistości — to zbiór linii z danymi w formacie klucz->wartość, których sparsowanie jest prostą sprawą dla każdego z podstawową wiedzą programistyczną. A dane można edytować wedle uznania przy użyciu zwykłego notatnika.

Bardziej złożone dane (profil, komentarz, post itp.), mające swój urn — są zwracane w postaci obiektu JSON przez standardowe API (http://opendatahub.org/api_1.0?lang=ru), które może znajdować się zarówno na domenie użytkownika, jak i na stronie trzeciej, której użytkownik zlecił przechowywanie, publikowanie i edytowanie swoich danych (w linii Services-Enabled pliku datarobots.txt). O takich zewnętrznych serwisach — pisano poniżej.

Prosta ontologia i JSON

Ontologia środowiska komunikacyjnego jest stosunkowo prosta w porównaniu z ontologiami branżowych baz wiedzy. Ponieważ w środowisku komunikacyjnym istnieje stosunkowo niewielki zestaw standardowych obiektów (post, komentarz, polubienie, profil, recenzja) z stosunkowo niewielkim zestawem właściwości.

Dlatego do opisu obiektów w takim środowisku wystarczy używać JSON zamiast bardziej złożonego w strukturze i rozparsowywaniu XML (ważne jest, aby pamiętać o potrzebie niskiego progu dostępu i skalowalności).

Aby uzyskać obiekt o znanym urn — należy skontaktować się z domeną użytkownika lub zewnętrznymi serwisami, którym użytkownik zlecił zarządzanie swoimi danymi.

W tym środowisku online każda domena, na której istnieje usługa online, ma również swój plik datarobots.txt umieszczony pod adresem w formacie example.com/datarobots.txt z podobną zawartością:

Obiekt: usługa
API: http://newethnos.ru/api
Wersja API: http://opendatahub.org/api_1.0

Z którego możemy się dowiedzieć, że dane o obiekcie można uzyskać pod adresem w formacie:

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

Obiekt JSON ma taką strukturę:

{
    "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": "samochody, koty, kino",
        "mental_cards": {
            "no_alcohol@main": 8,
            "data_accumulation@main": 8,
            "open_data@main": 8
        }
    }
}

Architektura usługowa

Zewnętrzne usługi są niezbędne do uproszczenia procesu publikacji i wyszukiwania danych przez końcowych użytkowników.

Wcześniej wspomniano o jednym z rodzajów usług, które pomagają użytkownikowi publikować jego dane w sieci. Może istnieć wiele podobnych usług, z których każda zapewnia użytkownikowi wygodny interfejs do edytowania różnych rodzajów danych (forum, blog, pytania-odpowiedzi itd.). Jeśli jednak użytkownik nie ufa zewnętrznym usługom, może zainstalować na swojej domenie skrypt usługi do pracy z danymi lub opracować go samodzielnie.

Oprócz usług umożliwiających użytkownikom publikowanie/edytowanie danych — w środowisku online przewidziano szereg innych usług, wykonujących stosunkowo złożone zadania, które są dość problematyczne do zrealizowania na węzłach końcowych użytkowników.

Jednym z takich rodzajów usług są huby danych ( opendatahub.org/ru — przykład), pełniące rolę swoistego archiwum internetowego, które gromadzi wszystkie publiczne dane maszynowo czytelne użytkowników i udostępnia do nich dostęp za pomocą API.

Obecność usług w takim otwartym, zdecentralizowanym środowisku online znacznie obniża próg wejścia dla użytkowników, ponieważ nie ma potrzeby instalowania i konfigurowania własnego węzła. Jednocześnie użytkownik zachowuje kontrolę nad swoimi danymi (w każdej chwili można zmienić usługę, której zlecono publikację danych lub stworzyć własny węzeł).

Jeśli użytkownik w ogóle nie interesuje się posiadaniem swoich danych i nie ma swojego domeny ani nikogo znajomego z domeną, to domyślnie danymi zarządza opendatahub.org.

Kto za to płaci?

Największym problemem prawie wszystkich podobnych zdecentralizowanych projektów jest niemożność ich monetyzacji na poziomie wystarczającym dla stabilnego rozwoju i wsparcia.

Do pokrycia kosztów rozwoju i marketingu w tej przestrzeni online wykorzystywane są darowizny + tokeny.

Wszystkie darowizny, które użytkownicy przekazują wewnętrznym projektom/usługom, są publicznie dostępne, maszynowo czytelne i powiązane z e-mailem. Pozwala to uwzględnić je na przykład przy obliczaniu wewnętrznego społecznego rankingu i publikować na stronach użytkowników. Gdy darowizny przestają być anonimowe, to tak naprawdę użytkownicy nie darują, ale „wpłacają” na wsparcie wspólnego środowiska informacyjnego. Podobnie jak ludzie składają się na remont miejsc wspólnego użytku z odpowiednim podejściem do tych osób, które odmówiły złożenia się.

Oprócz darowizn, do pozyskiwania funduszy wykorzystywane są tokeny emitowane w ograniczonej ilości (400.000), które są przyznawane wszystkim, którzy przekazują darowizny do głównego funduszu (ethnogenesis).

Dodatkowe funkcje tokenów

Każdy token jest „kluczem” do dostępu do tej przestrzeni online. Oznacza to, że korzystać z usług i być częścią przestrzeni online można tylko posiadając przynajmniej 1 token, który jest powiązany z e-mailem.

Tokeny są dobrym filtrem spamowym ze względu na swoją ograniczoną liczbę. Im więcej użytkowników w systemie, tym trudniej zdobyć token i tym bardziej kosztowne jest tworzenie botów.

Ludzie, ich dane i więzi społeczne są ważniejsze od technologii.

Opisana przestrzeń online jest technicznie stosunkowo prymitywnym rozwiązaniem. Ale ważniejsze w niej są nie tyle technologie, co ludzie i tworzone w jej obrębie więzi społeczne oraz dane (treści).

Tworząca się społeczność, której uczestnicy mają swoje uniwersalne identyfikatory (email i swoją domenę) oraz zorganizowane dane (z adresami URN, ontologią i obiektami JSON) może, przy pojawieniu się lepszego rozwiązania technicznego, przenieść wszystkie te dane do innego środowiska online, jednocześnie zachowując ustalone połączenia (rankingi, oceny) i treść.

W tym poście opisano jeden z elementów samoorganizującej się sieciowej społeczności, która oprócz zdecentralizowanego środowiska online obejmuje szereg kierunków offline, które zwiększają korzyści z online i są „klientami”, w dużej mierze określającymi jej funkcjonalność. Ale to już tematy na inne artykuły, które nie mają bezpośredniego związku z IT i technologią.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster