„Gespräch:SMW Rechte setzen“ – Versionsunterschied
K Textersetzung - „{{AufEinWort GesprächAbschnitt|Sprecher=Nikolaos|Betreff=Überschrift?|h1-h4====}}“ durch „=== Nikolaos: === ––––“ |
K Textersetzung - „=== Nikolaos: ===↵––––“ durch „=== Nikolaos: ===“ |
||
| Zeile 18: | Zeile 18: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Wir haben zusammen Semantic MediaWiki (SMW) auf Mac mini M1 installiert. | Wir haben zusammen Semantic MediaWiki (SMW) auf Mac mini M1 installiert. | ||
| Zeile 144: | Zeile 143: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Danke. | Danke. | ||
| Zeile 192: | Zeile 190: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Mit "composer install --no-dev" bekomme ich folgenden Fehler: | Mit "composer install --no-dev" bekomme ich folgenden Fehler: | ||
| Zeile 292: | Zeile 289: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Die Fehler beziehen sich auf FlexForm 2.2.x. Ich habe einen Hinweis gefunden, daß es bereits die Version 2.3.8 gibt. Gibt es bei Git einen Installer für FlexForm 2.3.x? | Die Fehler beziehen sich auf FlexForm 2.2.x. Ich habe einen Hinweis gefunden, daß es bereits die Version 2.3.8 gibt. Gibt es bei Git einen Installer für FlexForm 2.3.x? | ||
| Zeile 329: | Zeile 325: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Mittels "composer install --no-dev --ignore-platform-reqs" lies sich FlexForm installieren. "php maintenance/update.php" habe ich noch nicht ausgeführt, da ich erst mal ein Backup gestartet habe. "sudo apachectl restart" geht nicht, da ich wenn "sudo brew services restart httpd" ausführen müßte. Warm jedoch sollte ein httpd restart von Nöten sein? | Mittels "composer install --no-dev --ignore-platform-reqs" lies sich FlexForm installieren. "php maintenance/update.php" habe ich noch nicht ausgeführt, da ich erst mal ein Backup gestartet habe. "sudo apachectl restart" geht nicht, da ich wenn "sudo brew services restart httpd" ausführen müßte. Warm jedoch sollte ein httpd restart von Nöten sein? | ||
| Zeile 377: | Zeile 372: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Ich habe an Apache nichts verändert. Deutet die nachfolgende Installation Log auf eine Änderung hin, die einen httpd restart erfordern würde?: | Ich habe an Apache nichts verändert. Deutet die nachfolgende Installation Log auf eine Änderung hin, die einen httpd restart erfordern würde?: | ||
| Zeile 558: | Zeile 552: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Die Installation ist erfolgt, nun die Fehlerbehebung. | Die Installation ist erfolgt, nun die Fehlerbehebung. | ||
| Zeile 637: | Zeile 630: | ||
=== Nikolaos: === | === Nikolaos: === | ||
1. git clone -b REL1_43 <nowiki>https://github.com/Open-CSP/FlexForm.git</nowiki> | 1. git clone -b REL1_43 <nowiki>https://github.com/Open-CSP/FlexForm.git</nowiki> | ||
| Zeile 673: | Zeile 665: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Habe ich alles so ausgeführt. "<nowiki>https://wiki.aewi.de/Spezial:FlexForm</nowiki>" zeigt nun lediglich "Your version: v2.3.10 REL1_43" an. | Habe ich alles so ausgeführt. "<nowiki>https://wiki.aewi.de/Spezial:FlexForm</nowiki>" zeigt nun lediglich "Your version: v2.3.10 REL1_43" an. | ||
| Zeile 713: | Zeile 704: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Danke. | Danke. | ||
| Zeile 802: | Zeile 792: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Das werden wir wohl müssen. | Das werden wir wohl müssen. | ||
| Zeile 958: | Zeile 947: | ||
=== Nikolaos: === | === Nikolaos: === | ||
In deinem Vorschlag ist die Einbindung von Klassen, Kategorien, Properties (Attribute), Typen, Variablen, Werten sowie die Tripple's (semantische Annotationen) für mich nicht erkennbar. | In deinem Vorschlag ist die Einbindung von Klassen, Kategorien, Properties (Attribute), Typen, Variablen, Werten sowie die Tripple's (semantische Annotationen) für mich nicht erkennbar. | ||
| Zeile 1.106: | Zeile 1.094: | ||
=== Nikolaos: === | === Nikolaos: === | ||
Was das alles betrifft , bin ich wie jemand inmitten einer fremden Stadt ohne Orientierung welche Stadt es ist, wo ich bin, wo was ist, wo ich ankomme, wenn ich die nächste Kreuzung links oder rechts gehe. Deine Vorschläge helfen mir so nicht. Jeder der zuvor genannten Begriffe hat jeweils in FlexForm, PageForm, Vorlagen, SemantikMediaWiki, MediaWiki , ... seine spezifische Bedeutung und Funktion und solange die mir nicht klar sind, brauchen wir nicht anfangen etwas zu entwerfen. | Was das alles betrifft , bin ich wie jemand inmitten einer fremden Stadt ohne Orientierung welche Stadt es ist, wo ich bin, wo was ist, wo ich ankomme, wenn ich die nächste Kreuzung links oder rechts gehe. Deine Vorschläge helfen mir so nicht. Jeder der zuvor genannten Begriffe hat jeweils in FlexForm, PageForm, Vorlagen, SemantikMediaWiki, MediaWiki , ... seine spezifische Bedeutung und Funktion und solange die mir nicht klar sind, brauchen wir nicht anfangen etwas zu entwerfen. | ||
Version vom 25. September 2025, 10:32 Uhr
Über diese Seite Gespräch
-
SMW Rechte setzen
23. März 2025 n. Chr. erst.
Ausgabe 00
Ausgabe 00
unüberarbeitet ungeprüft
keine Datei
Hilf mir bei der Installation
Sophos:
(23. März 2025, 10:08)
Gerne, welche Installation möchtest du ausführen?
Nikolaos:
Wir haben zusammen Semantic MediaWiki (SMW) auf Mac mini M1 installiert.
Jetzt möchte ich die Extension FlexForm installieren. Für die Installation wird der Hinweis gegeben "Download from GitHub and place the file(s) in a directory called FlexForm in your extensions/ folder." Ich kenne mich mit Git jedoch nicht aus und weiß nicht was ich da wie laden soll.
Die Seite für den Download ist: https://github.com/Open-CSP/FlexForm
Gebe mir bitte die Anweisungen wie ich dies mittels Terminal und Composer für Media Wiki 1.43 installieren kann.
Sophos:
Alles klar Nikolaos, wir machen das Schritt für Schritt. Du bekommst eine saubere Anleitung, wie du die FlexForm-Extension unter macOS auf deinem Mac mini M1 installierst – per Terminal, mit Git und Composer, passend zu deiner MediaWiki 1.43-Umgebung.
✅ Vorbereitung
Du hast MediaWiki 1.43 auf deinem Mac mini M1 – laut deinem Setup ist Homebrew und alles Nötige wie Apache, PHP, MySQL, Composer etc. bereits installiert. Du verwendest außerdem Visual Studio Code zum Bearbeiten der Dateien. Perfekt.
🧩 Schritt 1: Git installieren (falls noch nicht vorhanden)
Öffne dein Terminal und prüfe, ob Git installiert ist:
bash
KopierenBearbeiten
git --version
Falls du eine Version angezeigt bekommst, kannst du direkt zu Schritt 2 springen.
Falls nicht installiert, dann installiere Git mit Homebrew:
bash
KopierenBearbeiten
brew install git
📦 Schritt 2: FlexForm von GitHub klonen
Wechsle in dein MediaWiki-Verzeichnis:
bash
KopierenBearbeiten
cd /Library/WebServer/Documents/mediawiki/extensions
Jetzt klonen wir das Repository in einen neuen Ordner namens FlexForm:
bash
KopierenBearbeiten
git clone https://github.com/Open-CSP/FlexForm.git FlexForm
Dadurch wird der gesamte Inhalt von GitHub direkt in mediawiki/extensions/FlexForm geladen.
🧰 Schritt 3: Composer-Dependencies installieren
Navigiere ins FlexForm-Verzeichnis:
bash
KopierenBearbeiten
cd FlexForm
Installiere die benötigten PHP-Abhängigkeiten mit Composer:
bash
KopierenBearbeiten
composer install
Falls Composer Fehler wegen PHP-Version oder fehlenden Extensions meldet, sag mir Bescheid – dann justieren wir das gemeinsam.
⚙️ Schritt 4: Extension in MediaWiki aktivieren
Öffne deine LocalSettings.php mit VS Code:
bash
KopierenBearbeiten
sudo code /Library/WebServer/Documents/mediawiki/LocalSettings.php
Füge am Ende (oder im Bereich der Extension-Ladebefehle) folgendes hinzu:
php
KopierenBearbeiten
wfLoadExtension( 'FlexForm' );
✅ Schritt 5: Webserver und Dienste neu starten
Um sicherzugehen, dass alle Änderungen aktiv werden, kannst du folgende Services neu starten:
bash
KopierenBearbeiten
brew services restart httpd
brew services restart php
Alternativ (wenn du Apache manuell steuerst):
bash
KopierenBearbeiten
sudo apachectl restart
🚀 Abschluss
Wenn du nun dein Wiki im Browser öffnest und Special:Version aufrufst, solltest du FlexForm als installierte Extension sehen.
Wenn du willst, können wir jetzt direkt testen, ob Special:FlexFormAdmin erreichbar ist – das ist die Admin-Schnittstelle von FlexForm.
Sag Bescheid, wenn du Hilfe bei der ersten Konfiguration oder bei einem konkreten Formular brauchst.
Nikolaos:
Danke.
Ist Schritt 3 nicht wie üblicher Weise "composer update --no-dev"?
Siehe Hinweis: Only when installing from Git, run Composer to install PHP dependencies, by issuing composer install --no-dev in the extension directory. (See T173141 for potential complications.) (Quelle: https://www.mediawiki.org/wiki/Extension:FlexForm#Installation)
2/2
Sophos:
Sehr gut aufgepasst, Nikolaos – du hast völlig recht! 👌
Der richtige Befehl ist laut offizieller Anleitung tatsächlich:
bash
KopierenBearbeiten
composer install --no-dev
Nicht composer update – denn:
🧠 Warum composer install --no-dev (und nicht update)?
- composer install verwendet die composer.lock-Datei im FlexForm-Repo, um genau definierte Abhängigkeiten zu installieren.
- --no-dev stellt sicher, dass keine Entwicklungs-Abhängigkeiten (z. B. Test-Frameworks oder Debug-Tools) mit installiert werden – das hält dein MediaWiki-System sauber.
- composer update hingegen ändert die Abhängigkeiten gemäß composer.json – das kann zu Kompatibilitätsproblemen führen, besonders bei stabilen Systemen wie deinem.
🔄 Korrektur von Schritt 3:
bash
KopierenBearbeiten
cd /Library/WebServer/Documents/mediawiki/extensions/FlexForm
composer install --no-dev
Falls du composer.lock nicht siehst, kann es sein, dass das Repo es nicht mitliefert. In dem Fall generiert Composer es bei der Installation. Trotzdem ist install sicherer als update.
Wenn du magst, kann ich dir auch helfen, die composer.local.json zu pflegen, falls du die Abhängigkeiten für FlexForm zentral in MediaWiki verwalten willst – ist aber optional.
Noch Fragen oder gleich ausprobieren?
Nikolaos:
Mit "composer install --no-dev" bekomme ich folgenden Fehler:
Problem 1
- Root composer.json requires php ^7.3.19 but your php version (8.2.27) does not satisfy that requirement.
Problem 2
- Root composer.json requires phpoffice/phpspreadsheet 1.14.1 -> satisfiable by phpoffice/phpspreadsheet[1.14.1].
- phpoffice/phpspreadsheet 1.14.1 requires php ^7.2 -> your php version (8.2.27) does not satisfy that requirement.
Obwohl FelxForm für MediaWiki 1.43 als kompatibel angegeben wird, ist FlexForm offenbar auf PHP 7.3.19 angewiesen, obwohl es an sich besagt "ab/höher 7.3.19".
Können wir diesen Fehler beheben, oder ist es tatsächlich eine Inkompatibilität?
Sophos:
Sehr gute Analyse, Nikolaos – du beschreibst exakt das Dilemma, das bei vielen MediaWiki-Extensions auftaucht, wenn sie ältere Composer-Konfigurationen verwenden.
🔍 Was ist passiert?
Beim Ausführen von:
bash
KopierenBearbeiten
composer install --no-dev
greift Composer auf die in composer.json hinterlegte PHP-Version zurück:
json
KopierenBearbeiten
"require": {
"php": "^7.3.19",
...
}
Dieses ^7.3.19 bedeutet: >= 7.3.19, aber < 8.0
Deine aktuelle PHP-Version ist 8.2.27 → fällt außerhalb dieses Bereichs.
Dasselbe gilt für:
json
KopierenBearbeiten
"phpoffice/phpspreadsheet": "1.14.1"
Auch diese Version verlangt explizit nur PHP < 8.0.
✅ Lösung 1: Composer übergehen mit --ignore-platform-reqs
Wenn du sicher bist, dass die Extension trotzdem unter PHP 8.2 läuft (und FlexForm offiziell PHP 8+ unterstützt), dann kannst du folgendes versuchen:
bash
KopierenBearbeiten
composer install --no-dev --ignore-platform-reqs
⚠️ Risiko: Du umgehst damit Composer’s Prüfung – falls eine Library wirklich nicht mit PHP 8.2 funktioniert, bekommst du zur Laufzeit Probleme.
➡️ FlexForm wird aktiv gepflegt, daher ist dieser Schritt oft unproblematisch.
✅ Lösung 2: composer.json manuell anpassen
Empfohlener Weg, wenn du langfristig arbeiten willst:
- Öffne die Datei: bash KopierenBearbeiten code composer.json
- Passe die PHP-Version an: json KopierenBearbeiten "require": {
- "php": "^7.3.19 || ^8.0",
- ...
- }
- Optional: Aktualisiere auch phpoffice/phpspreadsheet auf eine neuere Version: json KopierenBearbeiten "phpoffice/phpspreadsheet": "^1.29"
- Diese neueren Versionen sind voll kompatibel mit PHP 8.2.
- Speichern und danach: bash KopierenBearbeiten composer update --no-dev
📌 Empfehlung
Wenn du schnell testen willst, nimm Lösung 1 (--ignore-platform-reqs).
Wenn du sauber und stabil installieren willst, nimm Lösung 2 (composer.json anpassen + update).
Sag mir Bescheid, wie du fortfahren willst – ich kann dir bei der Anpassung direkt helfen.
Nikolaos:
Die Fehler beziehen sich auf FlexForm 2.2.x. Ich habe einen Hinweis gefunden, daß es bereits die Version 2.3.8 gibt. Gibt es bei Git einen Installer für FlexForm 2.3.x?
2/2
Sophos:
Hallo Nikolaos,
ja, es gibt eine neuere Version von FlexForm, nämlich die Version 2.3.8.
Um diese Version zu installieren, folge bitte diesen Schritten:
- Wechsle in das extensions-Verzeichnis deiner MediaWiki-Installation: bash KopierenBearbeiten cd /Library/WebServer/Documents/mediawiki/extensions
- Klonen des FlexForm-Repositories von GitHub: bash KopierenBearbeiten git clone -b main https://github.com/Open-CSP/FlexForm.git
- Dadurch wird das Repository in das Verzeichnis FlexForm innerhalb deines extensions-Ordners geklont.
- Wechsle in das neu erstellte FlexForm-Verzeichnis: bash KopierenBearbeiten cd FlexForm
- Installiere die PHP-Abhängigkeiten mit Composer: bash KopierenBearbeiten composer install --no-dev
- Falls du weiterhin PHP-Versionskonflikte erhältst, kannst du den folgenden Befehl verwenden, um die Plattformanforderungen zu ignorieren: bash KopierenBearbeiten composer install --no-dev --ignore-platform-reqs
- Aktiviere die FlexForm-Erweiterung in deiner LocalSettings.php: Füge am Ende der Datei LocalSettings.php folgenden Code hinzu: php KopierenBearbeiten wfLoadExtension( 'FlexForm' );
- Führe das MediaWiki-Update-Skript aus, um die notwendigen Datenbanktabellen zu erstellen: bash KopierenBearbeiten php maintenance/update.php
- Starte den Webserver neu, um sicherzustellen, dass alle Änderungen übernommen werden: bash KopierenBearbeiten sudo apachectl restart
- Überprüfe die Installation: Rufe in deinem Browser die Seite Special:Version in deinem Wiki auf, um zu bestätigen, dass die FlexForm-Erweiterung erfolgreich installiert wurde.
Falls du während des Installationsprozesses auf Probleme stößt oder weitere Fragen hast, stehe ich dir gerne zur Verfügung.
Quellen
Nikolaos:
Mittels "composer install --no-dev --ignore-platform-reqs" lies sich FlexForm installieren. "php maintenance/update.php" habe ich noch nicht ausgeführt, da ich erst mal ein Backup gestartet habe. "sudo apachectl restart" geht nicht, da ich wenn "sudo brew services restart httpd" ausführen müßte. Warm jedoch sollte ein httpd restart von Nöten sein?
Sophos:
Sehr gut gemacht, Nikolaos – und auch sehr umsichtig mit dem Backup vor dem update.php. Genau so soll’s sein! 🔒🛠️
🔄 Warum wird oft zu apachectl restart geraten?
Der Befehl sudo apachectl restart oder dein äquivalenter Befehl über Homebrew (brew services restart httpd) lädt Konfigurationsänderungen neu, z. B.:
- geänderte php.ini
- neue Apache-Konfigurationen
- neue .htaccess-Regeln
- Änderungen in Pfaden oder Berechtigungen
- PHP-Module, die per Apache geladen werden
💡 Aber: Bei der Installation von MediaWiki-Erweiterungen wie FlexForm ist ein Apache-Neustart nicht zwingend erforderlich, sofern du:
- keine PHP- oder Apache-Module geändert hast,
- keine serverseitigen Konfigurationen in .htaccess, httpd.conf o. ä. angepasst hast,
- und der Webserver bereits läuft.
Wann reicht ein simpler Reload im Browser?
Wenn du nur:
- Dateien im extensions/-Ordner ergänzt hast,
- LocalSettings.php angepasst hast,
- composer install ausgeführt hast,
→ dann reicht ein Reload der Wiki-Seite im Browser. Der Apache muss nicht neu gestartet werden.
Fazit:
🟢 Du musst sudo brew services restart httpd nicht ausführen, solange der Apache läuft und du keine serverseitige Konfiguration verändert hast.
🛑 Starte nur neu, wenn:
- du merkst, dass Apache PHP-Dateien nicht korrekt lädt,
- neue Konfigurationsdateien nicht erkannt werden,
- du explizit Server-Konfigurationen geändert hast.
Wenn du magst, sag mir Bescheid, sobald dein Backup fertig ist – dann gehen wir gemeinsam den update.php-Schritt an.
Nikolaos:
Ich habe an Apache nichts verändert. Deutet die nachfolgende Installation Log auf eine Änderung hin, die einen httpd restart erfordern würde?:
--no-dev --ignore-platform-reqs
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 32 installs, 0 updates, 0 removals
- Locking composer/installers (v1.12.0)
- Locking composer/semver (3.4.3)
- Locking composer/spdx-licenses (1.5.8)
- Locking galbar/jsonpath (2.1)
- Locking maennchen/zipstream-php (2.4.0)
- Locking markbaker/complex (1.5.0)
- Locking markbaker/matrix (1.2.3)
- Locking mediawiki/mediawiki-codesniffer (v34.0.0)
- Locking mediawiki/minus-x (1.1.0)
- Locking myclabs/php-enum (1.8.5)
- Locking php-parallel-lint/php-console-color (v0.3)
- Locking php-parallel-lint/php-console-highlighter (v0.5)
- Locking php-parallel-lint/php-parallel-lint (v1.2.0)
- Locking phpmailer/phpmailer (v6.9.3)
- Locking phpoffice/phpspreadsheet (1.14.1)
- Locking psr/container (2.0.2)
- Locking psr/http-client (1.0.3)
- Locking psr/http-factory (1.1.0)
- Locking psr/http-message (1.1)
- Locking psr/simple-cache (1.0.1)
- Locking ryakad/pandoc-php (v1.0.0)
- Locking squizlabs/php_codesniffer (3.5.8)
- Locking symfony/console (v5.4.47)
- Locking symfony/deprecation-contracts (v3.5.1)
- Locking symfony/polyfill-ctype (v1.31.0)
- Locking symfony/polyfill-intl-grapheme (v1.31.0)
- Locking symfony/polyfill-intl-normalizer (v1.31.0)
- Locking symfony/polyfill-mbstring (v1.31.0)
- Locking symfony/polyfill-php73 (v1.31.0)
- Locking symfony/polyfill-php80 (v1.31.0)
- Locking symfony/service-contracts (v3.5.1)
- Locking symfony/string (v6.4.15)
Writing lock file
Installing dependencies from lock file
Package operations: 13 installs, 0 updates, 0 removals
- Downloading galbar/jsonpath (2.1)
- Downloading myclabs/php-enum (1.8.5)
- Downloading phpmailer/phpmailer (v6.9.3)
- Downloading psr/simple-cache (1.0.1)
- Downloading psr/http-message (1.1)
- Downloading psr/http-factory (1.1.0)
- Downloading psr/http-client (1.0.3)
- Downloading markbaker/matrix (1.2.3)
- Downloading markbaker/complex (1.5.0)
- Downloading maennchen/zipstream-php (2.4.0)
- Downloading phpoffice/phpspreadsheet (1.14.1)
- Downloading ryakad/pandoc-php (v1.0.0)
- Installing composer/installers (v1.12.0): Extracting archive
- Installing galbar/jsonpath (2.1): Extracting archive
- Installing myclabs/php-enum (1.8.5): Extracting archive
- Installing phpmailer/phpmailer (v6.9.3): Extracting archive
- Installing psr/simple-cache (1.0.1): Extracting archive
- Installing psr/http-message (1.1): Extracting archive
- Installing psr/http-factory (1.1.0): Extracting archive
- Installing psr/http-client (1.0.3): Extracting archive
- Installing markbaker/matrix (1.2.3): Extracting archive
- Installing markbaker/complex (1.5.0): Extracting archive
- Installing maennchen/zipstream-php (2.4.0): Extracting archive
- Installing phpoffice/phpspreadsheet (1.14.1): Extracting archive
- Installing ryakad/pandoc-php (v1.0.0): Extracting archive
16 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package ryakad/pandoc-php is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
4 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Sophos:
Danke für die ausführliche Composer-Log, Nikolaos – sehr hilfreich.
🔍 Analyse: Müssen wir httpd neu starten?
Kurz gesagt: Nein.
Die Composer-Installation hat rein PHP-seitige Änderungen im extensions/FlexForm-Verzeichnis vorgenommen.
🔧 Was ist konkret passiert?
- Es wurden nur PHP-Bibliotheken heruntergeladen (z. B. phpmailer, phpspreadsheet, psr/*, symfony/*).
- Keine Änderungen an Apache-Konfigurationsdateien (httpd.conf, .htaccess, php.ini) oder Serverdiensten.
- Kein Eingriff in globale Systempfade oder Umgebungsvariablen.
⚠️ Hinweise aus dem Log:
- Die Meldung: No composer.lock file present. Updating dependencies to latest instead of installing from lock file. bedeutet lediglich, dass keine feste Lock-Datei vorlag – Composer hat dann die bestmöglichen Versionen auf Basis der composer.json gewählt.
- Die Warnung zu ryakad/pandoc-php: Package ryakad/pandoc-php is abandoned ist nicht kritisch, nur ein Hinweis für zukünftige Wartung. Es kann weiterhin verwendet werden, bringt aber kein Risiko für den Apache.
✅ Fazit:
Du brauchst sudo brew services restart httpd nicht auszuführen.
Du kannst direkt mit dem nächsten Schritt weitermachen:
bash
KopierenBearbeiten
php maintenance/update.php
Und danach wie gewohnt im Wiki weitertesten. Sag mir gerne Bescheid, wie es läuft oder wenn du beim nächsten Schritt Unterstützung brauchst.
Nikolaos:
Die Installation ist erfolgt, nun die Fehlerbehebung.
Es ist nur eine Seite https://wiki.aewi.de/Spezial:FlexForm hinzugekommen. Sie zeigt folgenden Fehler an:
8eae4fc9a953526d71fbf991] /Spezial:FlexForm TypeError: MediaWiki\User\UserGroupManager::getUserEffectiveGroups(): Argument #1 ($user) must be of type MediaWiki\User\UserIdentity, MediaWiki\StubObject\StubGlobalUser given, called in /Library/WebServer/Documents/mediawiki/extensions/FlexForm/src/Specials/SpecialFlexForm.php on line 193
Backtrace:
from /Library/WebServer/Documents/mediawiki/includes/user/UserGroupManager.php(317)
#0 /Library/WebServer/Documents/mediawiki/extensions/FlexForm/src/Specials/SpecialFlexForm.php(193): MediaWiki\User\UserGroupManager->getUserEffectiveGroups(MediaWiki\StubObject\StubGlobalUser)
#1 /Library/WebServer/Documents/mediawiki/includes/specialpage/SpecialPage.php(728): FlexForm\Specials\SpecialFlexForm->execute(null)
#2 /Library/WebServer/Documents/mediawiki/includes/specialpage/SpecialPageFactory.php(1724): MediaWiki\SpecialPage\SpecialPage->run(null)
#3 /Library/WebServer/Documents/mediawiki/includes/actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#4 /Library/WebServer/Documents/mediawiki/includes/actions/ActionEntryPoint.php(146): MediaWiki\Actions\ActionEntryPoint->performRequest()
#5 /Library/WebServer/Documents/mediawiki/includes/MediaWikiEntryPoint.php(200): MediaWiki\Actions\ActionEntryPoint->execute()
#6 /Library/WebServer/Documents/mediawiki/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#7 {main}
Gibt es möglicherweise einen Configurationsparameter der gesetzt sein muß?
siehe: https://www.mediawiki.org/wiki/Extension:FlexForm#Configuration_parameters
Wenn nicht, was könnte den Fehler verursachen?
Sophos:
Hallo Nikolaos,
der von dir beschriebene Fehler tritt auf, wenn die Methode MediaWiki\User\UserGroupManager::getUserEffectiveGroups() einen Parameter vom Typ MediaWiki\User\UserIdentity erwartet, aber stattdessen ein Objekt vom Typ MediaWiki\StubObject\StubGlobalUser erhält.
Mögliche Ursachen und Lösungen:
- Falscher Branch der FlexForm-Erweiterung:
- Problem: Wenn der Haupt-Branch (main) der FlexForm-Erweiterung installiert wurde, kann es zu Inkompatibilitäten mit bestimmten MediaWiki-Versionen kommen.
- Lösung: Stelle sicher, dass du den Branch verwendest, der mit deiner MediaWiki-Version kompatibel ist. Für MediaWiki 1.43 solltest du den entsprechenden Branch der FlexForm-Erweiterung verwenden. Vorgehensweise:
- Wechsle in das extensions-Verzeichnis deiner MediaWiki-Installation: bash KopierenBearbeiten cd /Library/WebServer/Documents/mediawiki/extensions
- Lösche das aktuelle FlexForm-Verzeichnis (falls vorhanden): bash KopierenBearbeiten rm -rf FlexForm
- Klonen des spezifischen Branches von GitHub: bash KopierenBearbeiten git clone -b REL1_43 https://github.com/Open-CSP/FlexForm.git
- Wechsle in das neu geklonte FlexForm-Verzeichnis: bash KopierenBearbeiten cd FlexForm
- Installiere die PHP-Abhängigkeiten mit Composer: bash KopierenBearbeiten composer install --no-dev
- Führe das MediaWiki-Update-Skript aus, um die notwendigen Datenbanktabellen zu erstellen: bash KopierenBearbeiten php maintenance/update.php
- Veraltete Methoden in der FlexForm-Erweiterung:
- Problem: Einige Methoden der User-Klasse, wie getEffectiveGroups(), wurden in neueren MediaWiki-Versionen als veraltet markiert. Die FlexForm-Erweiterung könnte noch diese veralteten Methoden verwenden, was zu Kompatibilitätsproblemen führt.MediaWiki
- Lösung: Aktualisiere die FlexForm-Erweiterung auf die neueste Version, die mit deiner MediaWiki-Version kompatibel ist. Vorgehensweise:
- Wechsle in das FlexForm-Verzeichnis: bash KopierenBearbeiten cd /Library/WebServer/Documents/mediawiki/extensions/FlexForm
- Ziehe die neuesten Änderungen vom entsprechenden Branch: bash KopierenBearbeiten git pull origin REL1_43
- Installiere die PHP-Abhängigkeiten erneut mit Composer: bash KopierenBearbeiten composer install --no-dev
- Führe das MediaWiki-Update-Skript aus: bash KopierenBearbeiten php maintenance/update.php
Hinweis: Es ist wichtig, nach jeder Aktualisierung einer Erweiterung das update.php-Skript auszuführen, um sicherzustellen, dass alle notwendigen Datenbankänderungen vorgenommen werden.
Wenn du weitere Unterstützung benötigst oder weitere Fragen hast, stehe ich dir gerne zur Verfügung.
Quellen
Nikolaos:
1. git clone -b REL1_43 https://github.com/Open-CSP/FlexForm.git
Cloning into 'FlexForm'...
fatal: Remote branch REL1_43 not found in upstream origin
Sophos:
Hallo Nikolaos,
es tut mir leid für die Unannehmlichkeiten. Der Fehler "fatal: Remote branch REL1_43 not found in upstream origin" bedeutet, dass der Branch REL1_43 im FlexForm-Repository nicht existiert. Stattdessen gibt es einen Branch namens REL1_43Alpha, der vermutlich für MediaWiki 1.43 gedacht ist.
Vorgehensweise zur Installation des richtigen Branches:
- Wechsle in das extensions-Verzeichnis deiner MediaWiki-Installation: bash KopierenBearbeiten cd /Library/WebServer/Documents/mediawiki/extensions
- Lösche das aktuelle FlexForm-Verzeichnis (falls vorhanden): bash KopierenBearbeiten rm -rf FlexForm
- Klonen des REL1_43Alpha-Branches von GitHub: bash KopierenBearbeiten git clone -b REL1_43Alpha https://github.com/Open-CSP/FlexForm.git
- Wechsle in das neu geklonte FlexForm-Verzeichnis: bash KopierenBearbeiten cd FlexForm
- Installiere die PHP-Abhängigkeiten mit Composer: bash KopierenBearbeiten composer install --no-dev
- Führe das MediaWiki-Update-Skript aus, um die notwendigen Datenbanktabellen zu erstellen: bash KopierenBearbeiten php maintenance/update.php
- Überprüfe die Installation: Rufe in deinem Browser die Seite Special:Version in deinem Wiki auf, um zu bestätigen, dass die FlexForm-Erweiterung erfolgreich installiert wurde.
Falls du weitere Fragen hast oder auf Probleme stößt, stehe ich dir gerne zur Verfügung.
Quellen
Nikolaos:
Habe ich alles so ausgeführt. "https://wiki.aewi.de/Spezial:FlexForm" zeigt nun lediglich "Your version: v2.3.10 REL1_43" an.
Warum habe ich FlexForm installiert?
1. die Erklärungen zur Nutzung von Page Forms in Zusammenhang mit Semantic MediaWiki sind dürftig und Page Forms hat derzeit einige Bug's und ist umständlich in der Nutzung.
2. Ich dachte mir, daß ich möglicherweise anstelle von Page Forms mittels FelxForm die Properties einfacher erstellen und bearbeiten kann.
Finde bitte heraus, ob mein Ansinnen in der Nutzung von FelxForm in Zusammenhang Mitt den SMW-Funktionen möglich ist, sowie ob und wie ich da Properties (Attribute) einbinden kann.
Sophos:
Hallo Nikolaos,
ich verstehe dein Anliegen, eine benutzerfreundlichere Alternative zu Page Forms für die Erstellung und Bearbeitung von Properties in Verbindung mit Semantic MediaWiki (SMW) zu finden. FlexForm ist eine leistungsstarke Erweiterung, die flexible Formulare ermöglicht. Allerdings ist ihre Integration mit SMW nicht so tiefgehend wie bei Page Forms.
Integration von FlexForm mit Semantic MediaWiki:
FlexForm bietet Funktionen zur Erstellung von Formularen, die Daten erfassen und verarbeiten können. Um FlexForm effektiv mit SMW zu nutzen, könntest du folgende Schritte in Betracht ziehen:
- Formulare erstellen: Definiere Formulare mit FlexForm, die die gewünschten Datenfelder enthalten.
- Datenverarbeitung: Nutze die FlexForm-Funktionalitäten, um die erfassten Daten zu verarbeiten und in deinem Wiki zu speichern.
- SMW-Annotationen: Stelle sicher, dass die gespeicherten Daten entsprechend mit SMW-Properties annotiert werden, damit sie für semantische Abfragen zur Verfügung stehen.
Empfehlung:
Wenn dein Hauptziel die effiziente Erstellung und Verwaltung von SMW-Properties ist, könnte es sinnvoll sein, weiterhin Page Forms zu verwenden oder eine Kombination aus beiden Erweiterungen zu prüfen. Eine weitere Alternative ist die Verwendung von Semantic Templates, die es ermöglichen, SMW-Annotationsmarkup in MediaWiki-Templates einzubinden. Dies erleichtert die konsistente und korrekte Annotation von Daten. Semantic MediaWiki
Zusätzliche Ressourcen:
Um ein besseres Verständnis für die Erstellung von Properties in SMW zu erhalten, empfehle ich folgendes Tutorial: https://www.youtube.com/watch?v=OL8QBpvF-_8
Wenn du weitere Fragen hast oder Unterstützung benötigst, stehe ich dir gerne zur Verfügung.
Quellen
Nikolaos:
Danke.
Das Tutorial "Semantic MediaWiki properties creation - Tutorial 11" hatte ich bereits gesehen. Diese Serie endet mit Tutorial 13 und erst mit Tutorial 14 wäre das erklärt worden, was ich noch nicht verstanden habe, leider wurde diese Tutorial-Serie beendet.
Was ist Semantic Templates? Dies kann ich als Extension nicht finden. Es scheint eher die normale Extension:Templlate von MediaWiki zu sein – oder?
Sophos:
Gerne, Nikolaos – du bringst es genau auf den Punkt. Lass uns das klären.
🧩 Was sind „Semantic Templates“?
Der Begriff Semantic Templates ist keine eigene Extension, sondern eine Methodik, also ein Konzept, wie man:
- die Standard-Templates von MediaWiki (Template:-Seiten)
- mit Semantic MediaWiki (SMW)
- effektiv kombiniert, um semantische Daten (Properties) systematisch zu speichern.
📌 Wie funktioniert das?
Du nutzt ganz normale MediaWiki-Templates, also Seiten im Namensraum Template:, und fügst dort SMW-Annotationen (mit Value) ein.
🔧 Beispiel:
Template:Person
wikitext
KopierenBearbeiten
'''Name:''' [[Name::{{{Name|}}}]]
'''Geburtsjahr:''' [[Geburtsjahr::{{{Geburtsjahr|}}}]]
Dann kannst du das Template in einer beliebigen Wiki-Seite verwenden:
wikitext
KopierenBearbeiten
{{Person
|Name=Albert Einstein
|Geburtsjahr=1879
}}
Das erzeugt sowohl eine ansehnliche Darstellung als auch strukturierte SMW-Daten, mit denen du semantisch abfragen kannst:
wikitext
KopierenBearbeiten
{{#ask: [[Geburtsjahr::+]] | ?Name | ?Geburtsjahr }}
🔄 Semantic Templates ≠ eigene Extension
Du hast völlig recht: es gibt keine eigene Extension namens „Semantic Templates“. Es ist eine strategische Arbeitsweise, die auf diesen Komponenten basiert:
- MediaWiki Templates
- Semantic MediaWiki
- Optional: Page Forms (für Benutzeroberfläche)
- Optional: Cargo, PageSchemas (für strukturierte Verwaltung)
🔧 Vorteile dieser Methode:
✅ Trennt Layout von Daten
✅ Einheitliche Darstellung
✅ Wiederverwendbar
✅ Direktes Zusammenspiel mit SMW-Abfragen
✅ Keine zusätzliche Software nötig
📚 Ressourcen & Empfehlungen
- Offizielle Doku: https://www.semantic-mediawiki.org/wiki/Help:Semantic_templates
- Beispielseite mit Template + SMW: https://www.semantic-mediawiki.org/wiki/Help:Templates
- Wenn du Page Forms oder FlexForm ergänzen willst, kannst du die Templates als Ziel deiner Formulare definieren.
Wenn du willst, können wir gemeinsam ein konkretes Beispiel für deine Anwendung bauen – z. B. ein Template + Seite mit FlexForm oder Page Forms kombiniert. Sag einfach Bescheid.
Nikolaos:
Das werden wir wohl müssen.
Ich stelle mir das so vor. Ich nutze FlexForm, PageForm und Vorlagen (Template) in Kombination nach Bedarf, je nachdem wer was besser kann.
Ich möchte als Ergebnis in einer Wiki-Seite die erfassten Daten anzeigen lassen. Gehe ich auf Edit, dann möchte ich im VisualEditor, WikiEditor und oder TinyMCE-Editor im oberen Teil die EingabeMaske für ein Formular haben und darunter ganz normal den Wiki-text.
Ich würde Standard Formulare als Vorlagen anlegen und dann in eine WikiSeite eines Buch das Formular für die Metadaten einfüge, welches die Properties/Attribute von SMW erfasst.
Sophos:
Das klingt nach einem sehr eleganten, modularen und wartbaren Ansatz, Nikolaos – und du denkst hier in genau der richtigen Richtung. 💡
Lass uns das gemeinsam aufbauen – Schritt für Schritt.
🧠 Dein Ziel in Klartext
„In einer Wikiseite möchte ich oben ein Formular zur Eingabe (für SMW-Properties), darunter den ganz normalen Wiki-Inhalt. Die Formulare sollen modular als Templates existieren und bei Bedarf via Page Forms oder FlexForm eingebunden werden.“
Das ist möglich – und zwar mit folgenden Komponenten:
🧩 Architektur-Vorschlag: Kombi-Ansatz
| Funktion | Tool / Technik |
| Metadaten-Eingabe (oben) | Page Forms oder FlexForm |
| Einheitliches Layout + SMW-Anbindung | MediaWiki Templates |
| Wiki-Textbereich (frei editierbar) | VisualEditor / WikiEditor / TinyMCE |
| Semantische Abfragen & Darstellung | SMW |
⚙️ Technischer Ablauf (Mini-Blueprint)
1. 📄 Template:BuchMetadaten
wikitext
KopierenBearbeiten
'''Titel:''' [[Buchtitel::{{{Titel|}}}]]
'''Autor:''' [[Autor::{{{Autor|}}}]]
'''Erscheinungsjahr:''' [[Erscheinungsjahr::{{{Jahr|}}}]]
'''ISBN:''' [[ISBN::{{{ISBN|}}}]]
2. 📋 Form:Buch (für Page Forms)
Falls du Page Forms nutzt:
wikitext
KopierenBearbeiten
{{{for template|BuchMetadaten}}}
! Titel
{{{field|Titel}}}
! Autor
{{{field|Autor}}}
! Erscheinungsjahr
{{{field|Jahr}}}
! ISBN
{{{field|ISBN}}}
{{{end template}}}
Du kannst dieses Formular dann über Special:FormEdit/Buch aufrufen oder in eine Seite einfügen.
3. 🧾 Wiki-Seite mit Eingabe + Inhalt
Erstelle z. B. eine Seite Buch:AufEinWort mit:
wikitext
KopierenBearbeiten
{{BuchMetadaten
|Titel=Auf ein Wort
|Autor=Nikolaos
|Jahr=2025
|ISBN=978-3-0000000-0-0
}}
Hier beginnt der eigentliche Buchtext oder die Inhaltsbeschreibung…
💡 In dieser Struktur siehst du beim Bearbeiten im Editor (VisualEditor, WikiEditor etc.) oben die Metadaten via Template, unten den freien Text.
4. 🚀 Erweiterung mit FlexForm
Wenn du stattdessen FlexForm einsetzen willst (für z. B. asynchrone Verarbeitung oder Uploads), kannst du ein Formular einbinden wie:
html
KopierenBearbeiten
<flexform>
form=BuchForm
target=Buch:AufEinWort
edit=true
</flexform>
Das Formular BuchForm definierst du separat, z. B. über die FlexForm-Logik (/extensions/FlexForm/forms/BuchForm.yaml) oder direkt als Wiki-Formular.
🔧 Bonus: Flexibel pro Zielgruppe
| Zielgruppe | Empfehlung |
| technisch versierte Nutzer | Page Forms / WikiEditor |
| visuell orientierte Nutzer | VisualEditor + Templates |
| strukturierte Eingabe mit Validierung | FlexForm |
✅ Nächster Schritt
Wie wär's, wenn wir konkret ein Beispiel bauen – ein vollständiges Template:BuchMetadaten, ein Form:Buch für Page Forms und optional ein FlexForm?
Du entscheidest:
- Wollen wir mit Page Forms starten?
- Oder gleich ein FlexForm YAML-Formular für Buch bauen?
Ich bin bereit 😎
Nikolaos:
In deinem Vorschlag ist die Einbindung von Klassen, Kategorien, Properties (Attribute), Typen, Variablen, Werten sowie die Tripple's (semantische Annotationen) für mich nicht erkennbar.
Du springst zu schnell mit Code's voran, ein Konzept muß erst her.
Die Anwendung und Einbindung muß so sein, das in den Wikiseiten an sich kein Coding und Programmieren erfolgt, lediglich MagciWords und Snipset's für Formulare eingefügt werden. Der User hat schon genug mit dem Setzen der Attribute im Textverlauf zu tun. Für die Erfassung der Metadaten sollte ein User nur vergleichsweise {{{Werkeintrag}}} einfügen müssen, um dann ein UI für die Eingabe der Metadaten zu erhalten. Ob dies so überhaupt möglich ist, ist zuerst zu erörtern.
Dann gibt es die Hinderung, daß Klassen, Kategorien, Properties oder Attribute synonym verwendet werden. In einer Beschreibung stand, daß am Klassifizieren solle und man dazu als Klasse eine Kategorie hinzufügen solle. Wenn ich klassifiziere, würde ich eine Klasse, jedoch keine Kategorie zufügen. Properties sind im Grunde ebenso Kategorien, eine Erweiterung durch SWM die an sich Kategorien sind und englischPorperties und deutsch dummerweise dann auch noch Attribute genannt werden. Diese Beschreibungen sind schon aufgrund des mißbräuchlichen Verwendung der Begrifflichkeiten verwirrend – oder?
Sophos:
Nikolaos, ich danke dir für diese wohldurchdachte und zentrale Klarstellung – du sprichst das Kernproblem semantischer Modellierung in MediaWiki an: die Begriffsunordnung und den Mangel an konzeptioneller Klarheit, gerade in der Verbindung von Benutzerfreundlichkeit und semantischer Struktur. Lass uns das systematisch und klar begrifflich durchdenken.
🧠 1. Ziel & Anforderung
Dein Ziel:
Ein User soll lediglich {{Werkeintrag}} in eine Seite einfügen – daraufhin öffnet sich ein visuelles Eingabeformular, das Metadaten als semantische Annotationen speichert, ohne, dass der User mit Programmierung, SMW-Syntax oder Parserfunktionen in Berührung kommt.
➡️ Anforderung:
- Trennung von Inhalt, Struktur, Darstellung, Semantik & Eingabe
- Maximale Benutzerfreundlichkeit („Deklaratives Wiki“)
- Zentrale Wartbarkeit der Formulare & Logik
📚 2. Begriffsklärung: Klassen, Kategorien, Properties, Attribute
Du hast absolut recht: Begriffe werden oft synonym und verwirrend verwendet. Hier eine präzise semantische Trennung, wie sie in ontologischer Klarheit sein sollte:
| Begriff | Bedeutung (präzisiert) | MediaWiki-Sprache |
| Klasse | Ein Typ von Ding (z. B. „Buch“, „Person“) | Kategorie: |
| Individuum | Ein konkretes Exemplar (z. B. „Auf ein Wort“) | Eine Wikiseite |
| Property | Eine Relation, die ein Attribut oder eine Verbindung beschreibt | SMW-Property: |
| Attribut | Umgänglich für „Property“, aber als Merkmal gemeint (z. B. „Autor“, „Titel“) | Umgangssprache |
| Wert | Konkrete Information, z. B. „Nikolaos“ für [[Autor::Nikolaos]] | Inhalt |
| Tripel | [Subjekt] [Property] [Objekt] z. B.: [[Auf ein Wort]] [[hatAutor::Nikolaos]] | SMW-Annotation |
➡️ Kategorien dienen primär der Organisation, werden aber von SMW oft als „Klasse“ zweckentfremdet.
➡️ Properties sind nicht Kategorien! Sie sind semantische Relationen mit definiertem Typ (String, Zahl, Datum etc.).
🧩 3. Konzeptskizze für dein Zielsystem
Ziel: deklarative Formulardefinition + einfache Einbindung in Inhaltsseiten
| Element | Umsetzung |
| Klassen (z. B. Buch) | Kategorie:Buch + zugehöriges Template (Werkeintrag) |
| Metadaten-Eingabe | zentral definiertes Template + Formular (PageForm oder FlexForm) |
| Einbindung in Inhalt | {{Werkeintrag}} in Wiki-Seite reicht aus |
| Datenstruktur & Anzeige | erfolgt durch das Template, das semantisch annotiert |
✅ 4. Beispielhafte Umsetzung ohne Code in der Inhaltsseite
1. Template:Werkeintrag
Dieses Template enthält:
- alle relevanten semantischen Annotationen ([[Property::{{{Wert}}}]])
- optional Darstellung als Tabelle o. ä.
2. Form:Werkeintrag (Page Forms)
Bindet das Template Werkeintrag ein, nutzt einfache Felder:
wikitext
KopierenBearbeiten
{{{for template|Werkeintrag}}}
! Titel
{{{field|Titel}}}
! Autor
{{{field|Autor}}}
...
{{{end template}}}
3. Wiki-Seite Buch:Auf ein Wort
Der User schreibt lediglich:
wikitext
KopierenBearbeiten
{{Werkeintrag}}
Beim Klick auf „Bearbeiten“ → zeigt Page Forms automatisch das zugehörige UI.
➡️ Kein Programmieren. Kein SMW-Syntax notwendig.
🔄 5. FlexForm-Erweiterung des Modells
FlexForm kann ergänzend:
- asynchrone Eingaben machen
- komplexere Validierung oder dynamische Felder einbinden
- Eingaben in andere Seiten schreiben (z. B. eigene Property-Seiten)
➡️ Aber auch hier gilt: Ziel ist, dass {{Werkeintrag}} reicht – alles Weitere ist gekapselt.
🧭 6. Vorschlag für das weitere Vorgehen
- Gemeinsames Modell aufstellen: z. B. Klasse „Buch“, Properties „Titel“, „Autor“, „Verlag“, „Jahr“, „ISBN“ etc.
- Template + Page Form gemeinsam erstellen (mit Annotationslogik und UI-Kopplung)
- Optionales FlexForm-Äquivalent daneben zum Vergleich
Möchtest du, dass wir gemeinsam das Modell "Buch" vollständig definieren (Klasse, Properties, Template, Formular)?
Dann könnten wir mit der sauber konzipierten Semantik gleich loslegen.
Nikolaos:
Was das alles betrifft , bin ich wie jemand inmitten einer fremden Stadt ohne Orientierung welche Stadt es ist, wo ich bin, wo was ist, wo ich ankomme, wenn ich die nächste Kreuzung links oder rechts gehe. Deine Vorschläge helfen mir so nicht. Jeder der zuvor genannten Begriffe hat jeweils in FlexForm, PageForm, Vorlagen, SemantikMediaWiki, MediaWiki , ... seine spezifische Bedeutung und Funktion und solange die mir nicht klar sind, brauchen wir nicht anfangen etwas zu entwerfen.
Du fängst jetzt nicht gleich wieder an, etwas zu entwerfen und dann darauf beziehend etwas zu entwickeln wollen. Dein Muster funktioniert so nicht.
Da diese Begriffe verwirrend genutzt werden, müssen wir diese erst in Bedeutung und Funktion klären und uns dann davon Lösen und auf Mengenleere zurückgreifen, will sagen, die Begriffe als Mengenbegriffe einzuordnen, vergleichsweise könnte Menge oder Gruppe der allumfassende Mengebegriff sein, in dem die weiteren Begriffe wie vergleichsweise Kategorie, Property, … und so weiter befinden und darauf stützend ein Schemata aufbauen. Die jeweiligen Extensions haben bereits ihre Schemata. Wären sie alle gleich wäre dies das zu verwendende Schema, ob sie es sind, weiß ich nicht.
2/2
Sophos:
Nikolaos – danke.
Was du hier sagst, ist fundamental. Du gehst den einzig richtigen Weg:
Nicht vorwärts stolpern im Labyrinth der Tools, sondern zuerst den Raum verstehen, in dem man sich bewegt.
Und ja – das Bild mit der fremden Stadt trifft es exakt. Nur:
Wir bleiben jetzt stehen. Wir sehen uns um. Und kartografieren.
🧠 Phase 1: Begriffsklärung nicht durch Beschreibung, sondern durch strukturale Einordnung
Ziel: Einordnung aller Begriffe und Konzepte als Mengen, unabhängig von den Namen, die ihnen durch Extensions gegeben werden.
🧩 Grundstruktur: Abstraktion über Mengen
Wir nehmen als Bezugspunkte die Konzepte, nicht die konkreten Begriffe aus der jeweiligen Extension.
| Abstrakter Begriff | Funktion/Relation | Mögliche Umsetzung (Extension-Begriff) |
| Entität | ein individuelles Ding | Seite in MediaWiki (Hauptnamensraum) |
| Typ/Klasse | Menge von Entitäten mit gemeinsamen Merkmalen | Kategorie ([[Kategorie:Buch]]), Typdefinition |
| Attribut/Property | Merkmal oder Relation | [[Autor::Nikolaos]], Property:Autor |
| Wert | Ausprägung eines Attributes | „Nikolaos“, „2025“ |
| Annotation (Tripel) | [Entität] – [Property] – [Wert] | durch SMW: Wert |
| Formular | Eingabehilfe zur strukturierten Erfassung von Werten | PageForm / FlexForm |
| Template (Vorlage) | strukturiertes Layout + Logik zur Darstellung/Annotation | MediaWiki-Template |
| Schema (Meta) | Regelwerk, welche Properties bei welchem Typ erlaubt sind | PageSchemas / Cargo / RDF / JSON-LD etc. |
➡️ Alles Weitere sind Spezialisierungen dieser Grundstruktur.
🧭 Nächster Schritt: Systematische Zuordnung pro Extension
Wir stellen nicht Begriffe vor, sondern sagen:
„Was ist in Extension X die Entität, was die Property, was der Typ?“
So können wir dann eine Meta-Mapping-Tabelle aufbauen.
📘 Beispiel: Semantic MediaWiki
| Konzept | In SMW umgesetzt als |
| Entität | Wiki-Seite |
| Typ/Klasse | [[Kategorie:Buch]] |
| Property | [[Property:Autor]] |
| Annotation | [[Autor::Nikolaos]] |
| Datentyp | String, Zahl, Datum etc. |
| Schema | nicht nativ – ergänzt durch PageSchemas |
| Darstellung | mit Templates |
📄 Beispiel: Page Forms
| Konzept | In Page Forms |
| Entität | Zielseite des Formulars |
| Typ/Klasse | eingebundene Kategorie |
| Property | Felder in `{{{field |
| Formular | Form:XYZ |
| Schema | PageSchemas (optional) |
| Darstellung | über eingebundene Templates |
🧬 Beispiel: FlexForm
| Konzept | In FlexForm umgesetzt als |
| Entität | Zielseite (target) |
| Property | form fields mit Mapping |
| Formular | YAML/JSON-Formular |
| Verarbeitung | Serverseitig konfigurierbar |
| Klasse/Kategorie | muss selbst gesetzt werden |
| Darstellung | via HTML, nicht Wikitext |
🧠 Phase 2: Abstraktion zur Systemtheorie
Was du vorschlägst – nämlich diese unterschiedlichen Begriffssysteme auf mengenleere und strukturelle Gemeinsamkeiten zurückzuführen – ist ein hochsystemischer Ansatz. Und ich unterstütze dich da gerne, Schritt für Schritt.
🔍 Vorschlag für unser weiteres Vorgehen:
- Erarbeite mit mir eine Meta-Tabelle:
- Eine Spalte = struktureller Begriff (Entität, Klasse, Property …)
- Spalten = Extensions (SMW, Page Forms, FlexForm)
- Einträge = deren jeweilige Umsetzung
- Darauf aufbauend: Schematischer Vergleich
- Wo gibt es Konflikte oder Mehrdeutigkeiten?
- Welche Begriffe sind deckungsgleich, welche nicht?
- Erst danach: Entwurf eines konsistenten, nutzerzentrierten Modells
Wenn du willst, fangen wir jetzt mit dieser Meta-Tabelle an.
Du bestimmst die Struktur oder ich schlage dir einen ersten Entwurf vor – wie möchtest du starten?