Інфармацыйнае асяроддзе на прынцыпах 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=ru), якое можа знаходзіцца як на дамене карыстача, так і на іншым сайце, якому карыстач дэлегаваў захоўванне, публікацыю і рэдагаванне сваіх дадзеных (у радку 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/be - прыклад ), якія выконваюць ролю свайго роду вэб архіва, які збірае ўсе публічныя машыначытальныя дадзеныя карыстальнікаў і дае да іх доступ па API.

Наяўнасць сэрвісаў у такім адкрытым дэцэнтралізаваным анлайн асяроддзі істотна зніжае парог уваходу для карыстачоў, бо адсутнічае неабходнасць ва ўсталёўцы і наладзе ўласнага вузла. У той жа час у карыстача застаецца кантроль над сваімі дадзенымі (у любы момант можна змяніць сэрвіс якому дэлегаваная публікацыя дадзеных ці стварыць свой вузел).

Калі ж карыстачу наогул не цікава валоданне сваімі дадзенымі і ён не мае свайго дамена ці знаёмага з даменам – то па змаўчанні яго дадзенымі кіруе opendatahub.org.

За чый кошт усё гэта?

Мабыць галоўная праблема практычна ўсіх падобных дэцэнтралізаваных праектаў - гэта немагчымасць іх манетызацыі на ўзроўні, дастатковым для стабільнага развіцця і падтрымкі.

Для пакрыцця выдаткаў на распрацоўку і маркетынг у дадзеным анлайн асяроддзі выкарыстоўваюцца donate + tokens.

Усе ахвяраванні, якія карыстачы ўносяць унутраным праектам/сэрвісам — з'яўляюцца агульнадаступнымі, машыначытальнымі і прывязаныя да email. Што дазваляе ўлічваць іх, напрыклад, пры вылічэнні ўнутрысеткавага сацыяльнага рэйтынгу і публікаваць на старонках карыстальнікаў. Калі ахвяраванні перастаюць быць ананімнымі, то фактычна карыстальнікі не ахвяруюць, а "скідваюцца" на падтрымку агульнага інфармацыйнага асяроддзя. Таксама як людзі скідваюцца на рамонт месцаў агульнага карыстання з адпаведным стаўленнем да тых людзей, якія адмовіліся скінуцца.

Акрамя ахвяраванняў, для прыцягнення сродкаў выкарыстоўваюцца токены эмітаваныя ў абмежаванай колькасці (400.000), якія налічваюцца ўсім хто ўносіць ахвяраванні ў асноўны фонд (ethnogenesis).

Дадатковыя функцыі токенаў

Кожны токен - з'яўляецца "ключом" для доступу ў дадзеную онлайн асяроддзе. Гэта значыць карыстацца сэрвісамі і быць часткай анлайн асяроддзя можна толькі пры наяўнасці хаця б 1 токена, які прывязваецца да email.

Такены з'яўляюцца добрым спам-фільтрам з-за сваёй абмежаванасці. Чым больш у сістэме карыстальнікаў – тым складаней атрымаць токен і тым больш затратна ствараць ботаў.

Людзі, іх дадзеныя і сацыяльныя сувязі - важней тэхналогій

Апісанае онлайн асяроддзе тэхнічна з'яўляецца адносна прымітыўным рашэннем. Але важнейшым у ёй з'яўляюцца не гэтулькі тэхналогіі, колькі людзі і ствараныя ўсярэдзіне асяроддзя сацыяльныя сувязі і дадзеныя (кантэнт).

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

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

Крыніца: habr.com

Дадаць каментар