Інформаційне середовище на принципах Open Data

Інформаційне середовище на принципах Open Data

Запропоноване інформаційне середовище є своєрідною децентралізованою соціальною мережею. Але на відміну від багатьох існуючих рішень - це середовище має ряд корисних властивостей крім децентралізації і створена на базі досить простих і стандартних технічних рішень (email, json, текстові файли і трохи блокчейна). Що дозволяє будь-кому з базовими знаннями програмування створювати свої послуги для даного середовища.

Універсальний ідентифікатор

У будь-якому онлайн середовищі ідентифікатори користувачів та об'єктів є одним з ключових елементів системи.

В даному випадку як ідентифікатор користувача виступає email, який вже фактично став загальноприйнятим ідентифікатором для авторизації на сайтах та інших сервісах (jaber, openId).

Фактично ідентифікатор користувача в даному онлайн середовищі – це пара login+domain, яка для зручності записується у звичному для більшості вигляді. Для більшої децентралізації кожному користувачеві бажано мати свій домен. Що близько принципам індивеба, де як ідентифікатор користувача використовується домен. У нашому випадку до свого домену користувач додає нікнейм, що дозволяє створювати кілька акаунтів на одному домені (для друзів, наприклад) і робить систему адресації більш гнучкою.

Такий формат ідентифікатора користувача не прив'язаний до мережі. Якщо користувач розміщує свої дані в мережі TOR - то можна використовувати домени в зоні .onion, якщо це мережа з DNS системою на блокчейні - то домени в зоні типу .bit. У результаті формат адресації користувачів та їх даних не залежить від мережі, через яку вони передаються (скрізь використовується зв'язка login+domain). Для бажаючих використати як ідентифікатор bitcoin/ethereum адресу можна доопрацювати систему під використання псевдо email адрес виду [email protected]

Адресація об'єктів

Дане онлайн середовище фактично є набором об'єктів, які описані у структурованому машиночитаному вигляді, посилаються на інші об'єкти та прив'язані до певного користувача (email'у) або проекту/організації (домену).

Як ідентифікатори об'єктів використовуються urn у просторі імен urn:opendata. Наприклад, профайл користувача має адресу виду:

urn:opendata:profile:[email protected]

Коментар користувача має адресу виду:

urn:opendata:comment:[email protected]:08adbed93413782682fd25da77bd93c99dfd0548

де 08adbed93413782682fd25da77bd93c99dfd0548 - випадковий sha-1 хеш, що виступає в ролі id об'єкта, а [захищено електронною поштою] - Власник даного об'єкта.

Принцип публікації даних користувача

Маючи під керуванням свій домен користувач може досить просто публікувати свої дані та контент. І на відміну від індибеба, для цього не потрібно створювати сайт з HTML сторінками, в яких вбудовані семантичні дані.

Наприклад, базова інформація про користувача розміщується у файлі datarobots.txt, що знаходиться за адресою виду

http://55334.ru/[email protected]/datarobots.txt

І має зміст такого формату:

Object: user
Services-Enabled: 55334.ru,newethnos.ru
Ethnos: newethnos
Delegate-Tokens: http://55334.ru/[email protected]/delegete.txt

Тобто фактично — це набір рядків із даними виду ключ->значення, спарсити які — просте завдання для будь-якої людини з базовими знаннями програмування. А редагувати дані за бажання можна через звичайний блокнот.

Більш складні дані (профайл, коментар, пост і т. д.), що мають свій urn - віддаються у вигляді JSON об'єкта за стандартним API (http://opendatahub.org/api_1.0?lang=ua), яке може бути як на домені користувача, так і на сторонньому сайті, на якому користувач делегував зберігання, публікацію та редагування своїх даних (у рядку Services-Enabled файлу datarobots.txt). Про подібні сторонні сервіси — написано нижче.

Проста онтологія та JSON

Онтологія комунікаційного середовища є відносно простою, порівняно з онтологіями галузевих баз знань. Так як у комунікаційному середовищі існує відносно невеликий набір стандартних об'єктів (пост, коментар, лайк, профайл, відгук) із відносно невеликим набором властивостей.

Тому для опису об'єктів у такому середовищі достатньо використовувати JSON замість складнішого за структурою та парсингом XML (важливо не забувати про необхідність низького порогу входу та масштабованість).

Для отримання об'єкта з відомим нам urn необхідно звернутися до домену користувача, або стороннім сервісам, яким користувач делегував керування його даними.

У даному онлайн середовищі кожен домен, на якому існує онлайн-сервіс, також має свій datarobots.txt, розміщений за адресою виду example.com/datarobots.txt з подібним змістом:

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

З якого ми можемо дізнатися, що отримати дані про об'єкт можна за адресою виду:

http://newethnos.ru/api?urn=urn:opendata:profile:[захищено електронною поштою]

JSON об'єкт має таку структуру:

{
    "urn": "urn:opendata:profile:[email protected]",
    "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": {
            "[email protected]": "1",
            "[email protected]": "0.5",
            "[email protected]": "0.7"
        },
        "interests_tags": "cars,cats,cinema",
        "mental_cards": {
            "no_alcohol@main": 8,
            "data_accumulation@main": 8,
            "open_data@main": 8
        }
    }
}

Сервісна архітектура

Сторонні послуги необхідні спрощення процесу публікації та пошуку даних кінцевими користувачами.

Вище був згаданий один із видів сервісів, які допомагають користувачеві публікувати його дані в мережі. Можливе існування безлічі подібних сервісів, кожен з яких надає користувачеві зручний інтерфейс для редагування одного з видів даних (форум, блог, питання-відповідь тощо). Якщо користувач не довіряє стороннім сервісам, то він може встановити на свій домен скрипт сервісу по роботі з даними або розробити його самостійно.

Крім сервісів, що дозволяють користувачам публікувати/редагувати дані — в онлайн-середовищі передбачено низку інших сервісів, які виконують відносно складні завдання, які досить проблематично реалізувати на вузлах кінцевих користувачів.

Одним із видів таких сервісів є хаби даних ( opendatahub.org/ua - Приклад ), що виконують роль свого роду веб архіву, який збирає всі публічні машиночитані дані користувачів і надає до них доступ по API.

Наявність сервісів у такому відкритому децентралізованому онлайн середовищі суттєво знижує поріг входу для користувачів, оскільки відсутня потреба в установці та налаштуванні власного вузла. В той же час у користувача залишається контроль над своїми даними (у будь-який момент можна змінити сервіс, якому делегована публікація даних або створити свій вузол).

Якщо ж користувачеві взагалі не цікаве володіння своїми даними і він не має свого домену або знайомого з доменом, то за умовчанням його даними керує opendatahub.org.

За чий рахунок це все?

Мабуть, головна проблема практично всіх подібних децентралізованих проектів — це неможливість їхньої монетизації на рівні, достатньому для стабільного розвитку та підтримки.

Для покриття витрат на розробку та маркетинг у даному онлайн середовищі використовуються donate+tokens.

Усі пожертвування, які користувачі вносять внутрішнім проектам/сервісам, є загальнодоступними, машиночитаними та прив'язані до email. Що дозволяє враховувати їх, наприклад, при обчисленні внутрішньомережевого соціального рейтингу та публікувати на сторінках користувачів. Коли пожертвування перестають бути анонімними, то фактично користувачі не жертвують, а "скидаються" на підтримку спільного інформаційного середовища. Також, як люди, скидаються на ремонт місць загального користування з відповідним ставленням до тих людей, які відмовилися скинутися.

Крім пожертвувань, для залучення коштів використовуються токени емітовані в обмеженій кількості (400.000), які нараховуються всім, хто вносить пожертвування в основний фонд (ethnogenesis).

Додаткові функції токенів

Кожен токен є "ключом" для доступу в дане онлайн середовище. Тобто користуватися сервісами і бути частиною онлайн середовища можна тільки за наявності хоча б одного токена, який прив'язується до email.

Токени є гарним спам-фільтром через свою обмеженість. Чим більше в системі користувачів – тим складніше отримати токен і тим більше затратно створювати ботів.

Люди, їхні дані та соціальні зв'язки — важливіші за технології

Описане онлайн середовище є технічно відносно примітивним рішенням. Але важливішим у ній є не так технології, скільки люди і створювані всередині середовища соціальні зв'язки та дані (контент).

Соціальна спільність, що створюється, учасники якої мають свої універсальні ідентифікатори (email і свій домен) і структуровані дані (з URN адресами, онтологією та JSON об'єктами) при появі кращого технічного рішення — може перенести всі ці дані в інше онлайн середовище, зберігши при цьому сформовані зв'язки (рейтинги, оцінки) та контент.

У даному пості описаний один з елементів мережевої самоорганізованої спільності, яка крім децентралізованого онлайн середовища включає ряд оффлайн напрямків, які збільшують користь від онлайн середовища і є "замовниками", багато в чому визначальними її функціонал. Але це вже теми для інших статей, які не мають прямого відношення до IT та технологій.

Джерело: habr.com

Додати коментар або відгук