From 734c7ed35a5340845d19dca46f92858ae8e22f6d Mon Sep 17 00:00:00 2001 From: joerglohrer <joerglohrer@no-reply@ci-mail.de> Date: Fri, 31 Jan 2025 05:35:58 +0000 Subject: [PATCH] =?UTF-8?q?=C3=B6ffentlichkeitsarbeit/readme.md=20aktualis?= =?UTF-8?q?iert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- öffentlichkeitsarbeit/readme.md | 192 ++++++++++++++++--------------- 1 file changed, 101 insertions(+), 91 deletions(-) diff --git a/öffentlichkeitsarbeit/readme.md b/öffentlichkeitsarbeit/readme.md index 032aa47..b798f5b 100644 --- a/öffentlichkeitsarbeit/readme.md +++ b/öffentlichkeitsarbeit/readme.md @@ -1,109 +1,119 @@ -# JSON-Datenstruktur für Social-Media-Profile und Organisationen - -## Übersicht -Diese JSON-Datei speichert Social-Media-Profile von Personen und Organisationen, einschließlich ihrer Verknüpfungen mit Communities oder Labels wie **relilab** und **relimentar**. Zusätzlich ermöglicht die Struktur eine mehrfache Zuordnung von Personen zu Organisationen sowie Beziehungen zwischen Organisationen. - ---- - -## Datenstruktur - -### Personen (`persons`) -- **`name`** *(String)* – Name der Person -- **`profiles`** *(Array)* – Liste der Social-Media-Accounts der Person - - **`platform`** *(String)* – Plattform (z.B. Twitter, Instagram, LinkedIn) - - **`handle`** *(String)* – Benutzername/Handle auf der Plattform - - **`mentionSyntax`** *(String)* – Syntax für Erwähnungen (`@handle` oder ID) - - **`profileLink`** *(String)* – Direktlink zum Profil - - **`category`** *(String)* – Einstufung (z.B. VIP, Bildung, BNE) - - **`firstSeen`** *(String, ISO-Zeitformat)* – Zeitpunkt der Ersterfassung - - **`lastUpdated`** *(String, ISO-Zeitformat)* – Letzte Aktualisierung - - **`organizationIds`** *(Array)* – Liste der zugehörigen Organisationen anhand ihrer `orgId` - -### Organisationen (`organizations`) -- **`orgId`** *(String)* – Eindeutige Abkürzung für die Organisation -- **`orgName`** *(String)* – Vollständiger Name der Organisation -- **`handles`** *(Array)* – Social-Media-Profile der Organisation - - **`platform`** *(String)* – Plattform (z.B. Twitter, LinkedIn) - - **`handle`** *(String)* – Benutzername/Handle der Organisation - - **`mentionSyntax`** *(String)* – Erwähnungs-Syntax (`@handle` oder ID) - - **`profileLink`** *(String)* – Direktlink zum Profil -- **`relatedOrgs`** *(Array, optional)* – Liste verwandter Organisationen anhand ihrer `orgId` - -### Beispielhafte JSON-Struktur -```json { - "persons": [ + "_usage_instructions": "JSON erlaubt keine klassischen Kommentarzeilen. Daher werden hier spezielle Schlüssel wie _comment_platform verwendet, um Felder zu erläutern. Um dieses JSON zu verwenden, kannst du das Feld persons durchlaufen und jede Person hat ein profiles-Array mit den entsprechenden Social-Media-Angaben. Die Felder platform, handle, mentionSyntax, profileLink etc. enthalten alle relevanten Informationen zu einem Account.", + "_comment_performance": "Die Kommentar-Felder steigern die Dateigröße minimal, haben aber auf normalem Datenumfang kaum Auswirkung auf die Performance. In einer fertigen Anwendung können diese _comment_-Felder entfernt werden, falls sie nicht mehr benötigt werden.", + + "_comment_organizations": "Enthält eine Liste aller Organisationen, Communities oder Labels (z.B. relilab, relimentar). Jede Organisation hat eine orgId, orgName und optionale relatedOrgs, um Verknüpfungen mit anderen Organisationen herzustellen.", + "organizations": [ { - "name": "Jörg Lohrer", - "profiles": [ + "orgId": "meineFirma", + "orgName": "MeineFirma GmbH", + "handles": [ { - "platform": "Mastodon", - "handle": "joerglohrer", - "mentionSyntax": "@joerglohrer", - "profileLink": "https://reliverse.social/@joerglohrer", - "category": "Bildung", - "firstSeen": "2025-02-01T09:00:00", - "lastUpdated": "2025-02-10T14:00:00", - "organizationIds": ["comenius", "relilab"] + "platform": "Twitter", + "handle": "meinefirma", + "mentionSyntax": "@meinefirma", + "profileLink": "https://twitter.com/meinefirma" + }, + { + "platform": "LinkedIn", + "handle": "firma-linkedin", + "mentionSyntax": "@firma-linkedin", + "profileLink": "https://www.linkedin.com/company/meinefirma/" } ] - } - ], - "organizations": [ + }, { "orgId": "comenius", "orgName": "Comenius-Institut", "relatedOrgs": ["relilab"], "handles": [ { - "platform": "Mastodon", + "platform": "Twitter", "handle": "ComeniusInst", "mentionSyntax": "@ComeniusInst", - "profileLink": "https://reliverse.social/ComeniusInst" + "profileLink": "https://twitter.com/ComeniusInst" + }, + { + "platform": "LinkedIn", + "handle": "comenius-institut", + "mentionSyntax": "@comenius-institut", + "profileLink": "https://www.linkedin.com/company/comenius-institut/" + } + ] + }, + { + "orgId": "relilab", + "orgName": "Relilab Community", + "relatedOrgs": ["comenius"], + "handles": [ + { + "platform": "Twitter", + "handle": "relilab", + "mentionSyntax": "@relilab", + "profileLink": "https://twitter.com/relilab" + } + ] + }, + { + "orgId": "relimentar", + "orgName": "Relimentar Community", + "handles": [ + { + "platform": "Instagram", + "handle": "relimentar", + "mentionSyntax": "@relimentar", + "profileLink": "https://instagram.com/relimentar" + } + ] + } + ], + + "persons": [ + { + "name": "Max Mustermann", + "categories": ["Kooperationspartner"], + "affiliatedInstitutions": ["meineFirma"], + "profiles": [ + { + "platform": "Twitter", + "handle": "max_muster", + "mentionSyntax": "@max_muster", + "profileLink": "https://twitter.com/max_muster", + "firstSeen": "2025-01-01T10:00:00", + "lastUpdated": "2025-01-15T09:30:00" + }, + { + "platform": "Instagram", + "handle": "max_gram", + "mentionSyntax": "@max_gram", + "profileLink": "https://instagram.com/max_gram", + "firstSeen": "2025-01-05T15:30:00", + "lastUpdated": "2025-01-20T08:45:00" + } + ] + }, + { + "name": "Jörg Lohrer", + "categories": ["Bildung", "BNE"], + "affiliatedInstitutions": ["comenius", "relilab"], + "profiles": [ + { + "platform": "Twitter", + "handle": "joerglohrer", + "mentionSyntax": "@joerglohrer", + "profileLink": "https://twitter.com/joerglohrer", + "firstSeen": "2025-02-01T09:00:00", + "lastUpdated": "2025-02-10T14:00:00" + }, + { + "platform": "LinkedIn", + "handle": "joerg-lohrer-9876", + "mentionSyntax": "@joerg-lohrer-9876", + "profileLink": "https://www.linkedin.com/in/joerg-lohrer/", + "firstSeen": "2025-02-02T10:30:00", + "lastUpdated": "2025-02-10T14:00:00" } ] } ] } -``` - ---- - -## Nutzung - -### 1. **Abruf der Social-Media-Profile einer Person** -**Filtere nach `name` oder einem bestimmten `handle`**, um zu sehen, welche Plattformen eine Person nutzt. - -### 2. **Organisationen einer Person ermitteln** -**Nutze das Feld `organizationIds`**, um alle zugehörigen Organisationen zu einer Person nachzuschlagen. - -### 3. **Verknüpfte Organisationen abrufen** -Über das Feld **`relatedOrgs`** kann man nachsehen, mit welchen anderen Organisationen eine Organisation kooperiert. - -### 4. **Automatisierte API-Integration** -Da die Datei in JSON-Format vorliegt, kann sie über **JavaScript (Node.js, fetch)** oder **Python (`json`-Modul)** verarbeitet werden. - -#### Beispiel (JavaScript): -```js -fetch('https://raw.githubusercontent.com/user/repository/main/social_profiles.json') - .then(response => response.json()) - .then(data => console.log(data.persons)); -``` - -#### Beispiel (Python): -```python -import json -import requests - -data = requests.get("https://raw.githubusercontent.com/user/repository/main/social_profiles.json").json() -print(data["persons"]) -``` - ---- - -## Erweiterungsmöglichkeiten -- **Weitere Kategorien** wie „Dozenten“, „Referenten“, „Netzwerkpartner“ -- **Mehrere Rollen innerhalb einer Organisation** (z.B. „Mitarbeiter“, „Community-Manager“) -- **Erweiterung um Aktivitätsdaten** (z.B. letzter Tweet, letzte Veranstaltung) - -Diese JSON-Struktur ist flexibel erweiterbar und für verschiedene Anwendungsfälle anpassbar.