Informationsumgebung auf der Grundlage von Open Data

Informationsumgebung auf der Grundlage von Open Data

Die angebotene Informationsumgebung ist eine Art dezentralisiertes soziales Netzwerk. Im Gegensatz zu vielen bestehenden Lösungen hat diese Umgebung jedoch eine Reihe nützlicher Eigenschaften über die Dezentralisierung hinaus und basiert auf relativ einfachen und standardisierten technischen Lösungen (E-Mail, JSON, Textdateien und ein wenig Blockchain). Dies ermöglicht es jedem, der über grundlegende Programmierkenntnisse verfügt, seine eigenen Dienste für diese Umgebung zu erstellen.

Universeller Identifikator

In jeder Online-Umgebung sind die Identifikatoren von Benutzern und Objekten eines der Schlüsselelemente des Systems.

In diesem Fall dient die E-Mail als Benutzeridentifikator, die mittlerweile faktisch zu einem allgemein anerkannten Identifikator für die Authentifizierung auf Websites und anderen Diensten geworden ist (jaber, OpenID).

Tatsächlich ist der Benutzeridentifikator in dieser Online-Umgebung ein Paar aus login+domain, das zur Bequemlichkeit in einer für die meisten vertrauten Form aufgezeichnet wird. Für eine größere Dezentralisierung wäre es wünschenswert, dass jeder Benutzer seine eigene Domain hat. Dies entspricht den Prinzipien des Indivweba, wo als Benutzeridentifikator die Domain verwendet wird. In unserem Fall fügt der Benutzer zu seiner Domain einen Nicknamen hinzu, was es ermöglicht, mehrere Konten auf einer Domain zu erstellen (zum Beispiel für Freunde) und das Adressierungssystem flexibler macht.

Ein solches Format des Benutzeridentifikators ist nicht an ein bestimmtes Netzwerk gebunden. Wenn ein Benutzer seine Daten im TOR-Netzwerk hostet, können Domains in der .onion-Zone verwendet werden. Handelt es sich um ein Netzwerk mit einem DNS-System auf der Blockchain, können Domains in der .bit-Zone verwendet werden. Letztendlich hängt das Adressierungsformat der Benutzer und ihrer Daten nicht vom Netzwerk ab, durch das sie übertragen werden (immer wird die Kombination login+domain verwendet). Für diejenigen, die die Bitcoin/Ethereum-Adresse als Identifikator verwenden möchten, kann das System so angepasst werden, dass es pseudo-E-Mail-Adressen vom Typ xaca1b7c8126806f672f9dbee4951527bb0f2c4e4@ethereum.blockchain

Adressierung von Objekten

Diese Online-Umgebung ist tatsächlich eine Sammlung von Objekten, die in einem strukturierten, maschinenlesbaren Format beschrieben sind, auf andere Objekte verweisen und an einen bestimmten Benutzer (E-Mail) oder ein Projekt/Organisation (Domain) gebunden sind.

Als Identifizierer von Objekten werden urn im Namensraum urn:opendata verwendet. Zum Beispiel hat das Benutzerprofil eine Adresse von folgender Art:

urn:opendata:profile:user@domain.com

Der Kommentar des Benutzers hat eine Adresse von folgender Art:

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

wobei 08adbed93413782682fd25da77bd93c99dfd0548 — ein zufälliger sha-1 Hash ist, der als Objekt-ID dient, und user@domain.com — der Eigentümer dieses Objekts ist.

Das Prinzip der Veröffentlichung von Benutzerdaten

Mit der Verwaltung seiner eigenen Domain kann der Benutzer seine Daten und Inhalte relativ einfach veröffentlichen. Im Gegensatz zu IndieWeb ist es dafür nicht notwendig, eine Website mit HTML-Seiten zu erstellen, in denen Semantische Daten eingebettet sind.

Beispielsweise werden die Grundinformationen eines Benutzers in einer Datei datarobots.txt gespeichert, die unter folgender Adresse zu finden ist:

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

Und hat den Inhalt eines solchen Formats:

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

Das heißt, es handelt sich faktisch um eine Sammlung von Zeilen mit Daten des Formats Schlüssel->Wert, deren Parsing eine einfache Aufgabe für jeden ist, der grundlegende Programmierkenntnisse hat. Die Daten können bei Bedarf auch über einen einfachen Texteditor bearbeitet werden.

Komplexere Daten (Profil, Kommentar, Beitrag usw.), die ihre eigene urn haben, werden in Form eines JSON-Objekts über eine standardisierte API (http://opendatahub.org/api_1.0?lang=ru) bereitgestellt, die sowohl auf der Domain des Benutzers als auch auf einer Drittwebsite zu finden sein kann, der der Benutzer die Speicherung, Veröffentlichung und Bearbeitung seiner Daten delegiert hat (in der Zeile Services-Enabled der Datei datarobots.txt). Zu solchen externen Diensten wird weiter unten geschrieben.

Einfache Ontologie und JSON

Die Ontologie der Kommunikationsumgebung ist im Vergleich zu den Ontologien branchenspezifischer Wissensdatenbanken relativ einfach. In der Kommunikationsumgebung gibt es eine relativ kleine Anzahl standardisierter Objekte (Beitrag, Kommentar, Like, Profil, Bewertung) mit einer relativ überschaubaren Anzahl von Eigenschaften.

Aus diesem Grund genügt es, zur Beschreibung von Objekten in einer solchen Umgebung JSON anstelle des strukturell komplexeren und parsingintensiveren XML zu verwenden (wichtig ist, den niedrigen Eintrittsbarrier und die Skalierbarkeit zu berücksichtigen).

Um ein Objekt mit bekannter urn abzurufen, muss man die Domain des Benutzers oder die Drittservices ansprechen, denen der Benutzer die Verwaltung seiner Daten delegiert hat.

In dieser Online-Umgebung hat jede Domain, auf der ein Online-Dienst besteht, auch ihre eigene datarobots.txt, die unter einer Adresse wie example.com/datarobots.txt zu finden ist und einen ähnlichen Inhalt hat:

Objekt: Dienst
API: http://newethnos.ru/api
API-Version: http://opendatahub.org/api_1.0

Aus dem wir erfahren können, dass Daten über das Objekt unter einer Adresse wie folgt abgerufen werden können:

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

Das JSON-Objekt hat folgende Struktur:

{
    "urn": "urn:opendata:profile:expample@55334.ru",
    "status": 1,
    "message": "Ok",
    "timestamp": 1596429631,
    "service": "example.com",
    "data": {
        "name": "John",
        "surname": "Gald",
        "gender": "männlich",
        "city": "Moskau",
        "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": "Autos,Katzen,Kino",
        "mental_cards": {
            "no_alcohol@main": 8,
            "data_accumulation@main": 8,
            "open_data@main": 8
        }
    }
}

Service-Architektur

Drittanbieter-Dienste sind erforderlich, um den Prozess der Veröffentlichung und Suche von Daten für Endbenutzer zu vereinfachen.

Einer der Arten von Diensten, die erwähnt wurden, hilft dem Benutzer, seine Daten im Internet zu veröffentlichen. Es kann viele ähnliche Dienste geben, von denen jeder dem Benutzer eine benutzerfreundliche Schnittstelle zum Bearbeiten eines der Datentypen (Forum, Blog, Frage-Antwort usw.) bietet. Wenn der Benutzer jedoch den Drittanbieterdiensten nicht vertraut, kann er ein Skript für den Datenservice auf seiner eigenen Domain installieren oder es selbst entwickeln.

Neben den Diensten, die es Benutzern ermöglichen, Daten zu veröffentlichen/bearbeiten, gibt es in der Online-Umgebung eine Reihe anderer Dienste, die relativ komplexe Aufgaben erfüllen, die es für Endbenutzer schwierig machen würden, sie zu realisieren.

Eine Art dieser Dienste sind Daten-Hubs ( opendatahub.org/ru — Beispiel), die als eine Art Web-Archiv fungieren, das alle öffentlichen maschinenlesbaren Daten der Benutzer sammelt und über eine API darauf zugreift.

Die Verfügbarkeit von Diensten in einer solch offenen, dezentralen Online-Umgebung senkt die Eintrittsbarriere für Benutzer erheblich, da keine Notwendigkeit besteht, einen eigenen Knoten zu installieren und einzurichten. Gleichzeitig behält der Benutzer die Kontrolle über seine Daten (er kann jederzeit den Dienst wechseln, dem die Veröffentlichung der Daten anvertraut ist, oder seinen eigenen Knoten erstellen).

Wenn es dem Benutzer jedoch überhaupt nicht wichtig ist, seine Daten zu besitzen und er keine eigene Domain oder einen Bekannten mit einer Domain hat, verwaltet opendatahub.org standardmäßig seine Daten.

Auf wessen Kosten geschieht das alles?

Das vielleicht größte Problem praktisch aller ähnlichen dezentralen Projekte ist die Unmöglichkeit, sie auf einem Niveau zu monetarisieren, das für eine stabile Entwicklung und Unterstützung erforderlich ist.

Um die Kosten für Entwicklung und Marketing in diesem Online-Umfeld zu decken, werden Spenden + Token verwendet.

Alle Spenden, die Benutzer an interne Projekte/Dienste leisten, sind öffentlich zugänglich, maschinenlesbar und an die E-Mail-Adresse gebunden. Dadurch können sie beispielsweise bei der Berechnung des sozialen Rankings innerhalb des Netzwerks berücksichtigt und auf den Benutzseiten veröffentlicht werden. Wenn Spenden nicht anonym sind, spenden die Benutzer im Grunde genommen nicht, sondern "legen Geld zusammen" zur Unterstützung der gemeinsamen Informationsumgebung. So wie Menschen Geld für die Instandhaltung öffentlicher Plätze sammeln, haben sie auch ein entsprechendes Verhältnis zu den Menschen, die sich weigern, mitzuhelfen.

Neben Spenden werden zur Beschaffung von Mitteln Token verwendet, die in limitierter Anzahl (400.000) ausgegeben werden und an alle vergeben werden, die Spenden an den Hauptfonds (ethnogenesis) leisten.

Zusätzliche Funktionen der Token

Jeder Token ist ein "Schlüssel" für den Zugang zu diesem Online-Umfeld. Das bedeutet, dass man die Dienste nutzen und Teil des Online-Umfelds sein kann, nur wenn man mindestens 1 Token hat, der an die E-Mail-Adresse gebunden ist.

Token sind aufgrund ihrer Begrenzung ein guter Spam-Filter. Je mehr Nutzer im System sind, desto schwieriger wird es, einen Token zu erhalten, und desto teurer wird es, Bots zu erstellen.

Menschen, ihre Daten und sozialen Verbindungen sind wichtiger als Technologien.

Das beschriebene Online-Umfeld ist technisch gesehen eine relativ primitive Lösung. Aber wichtiger sind nicht so sehr die Technologien, sondern die Menschen und die innerhalb des Umfelds geschaffenen sozialen Verbindungen und Daten (Inhalte).

Die geschaffene soziale Gemeinschaft, deren Teilnehmer über ihre universalen Identifikatoren (E-Mail und ihre Domain) sowie strukturierte Daten (mit URN-Adressen, Ontologie und JSON-Objekten) verfügen, kann bei einem besseren technischen Lösungsansatz all diese Daten in eine andere Online-Umgebung übertragen, dabei jedoch die etablierten Verbindungen (Bewertungen, Einschätzungen) und Inhalte bewahren.

In diesem Beitrag wird ein Element der selbstorganisierten Netzgemeinschaft beschrieben, die neben der dezentralisierten Online-Umgebung auch eine Reihe von Offline-Richtungen umfasst, die den Nutzen der Online-Umgebung erhöhen und als „Auftraggeber“ fungieren, die ihren Funktionsumfang maßgeblich bestimmen. Doch das sind bereits Themen für andere Artikel, die keinen direkten Bezug zu IT und Technologien haben.

Quelle: habr.com

60GB SSD 8Gb DDR4