Wiktionary Diskussion:Stimmberechtigung

Letzter Kommentar: vor 27 Tagen von Udo T. in Abschnitt SQL zur Prüfung der Stimmberechtigung

Anmeldung

Bearbeiten

Was bedeutet die Regel, dass ein Benutzer seit einem Monat angemeldet sein muss? Reicht dafür die automatische Erstellung des Benutzerkontos oder muss ein lokaler Beitrag erfolgt sein? Bsp.: Benutzer:Peter Gröbner 15:47, 20. Jan. 2014 Benutzerkonto Peter Gröbner (Diskussion | Beiträge) wurde automatisch erstellt Gilt das als Anmeldungsdatum? Oder erst der erste Beitrag hier am 06:29, 22. Aug. 2015? In letzterem Fall läge keine Stimmberechtigung für die 04:29, 7. Sep. 2015 begonnene Abstimmung zu Ref-OWID. gelbrot 17:33, 28. Sep. 2015 (MESZ)Beantworten

Danke! Mir persönlich ist es nicht wichtig, ob ich im fraglichen Fall stimmberechtigt bin, ich denke aber, die Frage sollte geklärt werden, und da bin ich gerne bereit, als Beispiel zu dienen. --Peter Gröbner (Diskussion) 18:11, 28. Sep. 2015 (MESZ)Beantworten

Meines Erachtens sollte die Regel „mindestens ein Monat seit der ersten lokalen Bearbeitung“ lauten, denn dann erst kann man von einem "Anfangen" im de-wikt sprechen, worin ich den Sinn der Regel sehen würde. Falls es keinen Einspruch gibt, ändere ich das demnächst. Die Stimme von Peter Gröbner im genannten Fall erübrigt sich ja durch die neue Abstimmung zur Ersetzung von Ref-Uni Leipzig. Grüße gelbrot 15:38, 10. Okt. 2015 (MESZ)Beantworten

Gilt die untenstehende Regelung generell bei Abstimmungen?

Bearbeiten

Vgl. diese Diskussion. Ich schlage statt des zweiten umseitigen Absatzes die Formulierung „Bei Meinungsbildern, die in Abstimmungsform geführt werden, insbesondere Adminkandidaturen und Benutzersperrungen sind die untenstehenden Regeln gültig.“ vor. --Peter -- 19:52, 17. Jan. 2017 (MEZ)Beantworten

Von Gelbrot erledigt. Danke, Peter -- 15:45, 19. Jan. 2017 (MEZ)Beantworten

Veraltete Regeln?

Bearbeiten

Sind es mittlerweile nicht mindestens 200 statt 150 Änderungen und zwei statt einem Monat? Ben Knie (Diskussion) 14:25, 15. Nov. 2023 (MEZ)Beantworten

Hallo Ben Knie, das hier ist das Wiktionary und wir haben hier unsere eigenen Regeln. Die Regeln zur Stimmberechtigung in der Wikipedia findest du unter w:Wikipedia:Stimmberechtigung. Gruß --Udo T. (Diskussion) 14:32, 15. Nov. 2023 (MEZ)Beantworten
Ah ok, ich danke dir Ben Knie (Diskussion) 16:28, 15. Nov. 2023 (MEZ)Beantworten

SQL zur Prüfung der Stimmberechtigung

Bearbeiten

Hallo Alexander,

ich habe im Quarry (siehe bitte hier) ein SQL erstellt, mit welchem man bei Zweifeln die Stimmberechtigung eines Benutzers zu einem bestimmten Zeitpunkt (i. a. der Beginn einer Abstimmung) deutlich leichter ermitteln kann.

Das SQL sieht folgendermaßen aus:

-- Geben Sie den Benutzernamen und den Zeitstempel im menschlich lesbaren Format ein
-- Bei der Uhrzeit des Zeitstempels die Uhrzeit bitte in UTC
-- Während Winterzeit also - 1 Stunde und während Sommerzeit - 2 Stunden
-- mit Dank an HyperDelulu für seine guten Vorschläge zur Verbesserung
-- 
SET @username = 'username'; -- Bitte den Benutzenamen einsetzen
SET @local_timestamp_str = '2024-12-11 11:00:00'; -- Wird nur für die Ausgabe benötigt
SET @utc_timestamp_str = '2024-12-11 10:00:00'; -- während Winterzeit 1 Stunde und während Sommerzeit 2 Stunden zurück

-- Konvertieren Sie den Zeitstempel in das interne Format
SET @timestamp = DATE_FORMAT(STR_TO_DATE(@utc_timestamp_str, '%Y-%m-%d %H:%i:%s'), '%Y%m%d%H%i00');

-- Abrufen des Datums der ersten Bearbeitung
SELECT /* SLOW_OK */ NVL(MIN(r.rev_timestamp), '99991231235959')
INTO @first_edit_date
FROM revision_userindex r
where r.rev_actor = (select a.actor_id from actor_revision a
where a.actor_name = @username);

-- Prüfen, ob Anzahl der Bearbeitungen bis zum angegebenen Zeitstempel mind. 150
select /* SLOW_OK */ count(*)
INTO @edit_count
from revision_userindex r, page p
where r.rev_actor = (select a.actor_id from actor_revision a
where a.actor_name = @username)
and p.page_id = r.rev_page
and p.page_namespace = 0
and r.rev_timestamp <= @timestamp
and rownum() <= 150;

SET @is_first_edit_older_than_month = IF(@first_edit_date <= DATE_FORMAT(DATE_SUB(@timestamp, INTERVAL 1 MONTH), '%Y%m%d%H%i00'), 1, 0);

SET @first_edit_date_str = DATE_FORMAT(@first_edit_date, '%Y-%m-%d %H:%i:00');

-- Überprüfen der Bedingungen und Ausgabe der Nachricht
CASE
WHEN @edit_count > 149 AND @is_first_edit_older_than_month = 1 THEN
   SELECT CONCAT(@username, ' ist stimmberechtigt, da die erste lokale Bearbeitung am ', @first_edit_date_str , ' (UTC) erfolgte und bis zum ', @local_timestamp_str, ' > 150 Bearbeitungen im Eintragsnamensraum gemacht wurden.') as Ergebnis;
WHEN @edit_count <= 149 AND @is_first_edit_older_than_month = 1 THEN
   SELECT CONCAT(@username, ' ist nicht stimmberechtigt, weil bis zum ', @local_timestamp_str, ' weniger als 150 Änderungen im Eintragsnamensraum (', @edit_count, ') gemacht wurden.') as Ergebnis;
WHEN @edit_count > 149 AND @is_first_edit_older_than_month = 0 THEN
   SELECT CONCAT(@username, ' ist nicht stimmberechtigt, da die erste lokale Bearbeitung (', @first_edit_date_str, ') (UTC) weniger als einen Monat zurückliegt.') as Ergebnis;
WHEN @edit_count <= 149 AND @is_first_edit_older_than_month = 0 THEN
   SELECT CONCAT(@username, ' ist nicht stimmberechtigt, da die erste lokale Bearbeitung (', @first_edit_date_str, ') (UTC) weniger als einen Monat zurückliegt und weil bis zum ', @local_timestamp_str, ' weniger als 150 Änderungen im Eintragsnamensraum (', @edit_count, ') gemacht wurden..') as Ergebnis;
END CASE;

Man muss aber angemeldet sein, um das SQL ausführen zu können, aber das funktioniert bei jedem angemeldeten Benutzer über Wikimedia OAuth.

Um das SQL ändern und ausführen zu können, muss man dann nur noch oben rechts einmal auf die Schaltfläche "Fork" drücken. Dadurch wird eine temporäre Kopie meines veröffentlichten SQLs erzeugt, die der jeweilige Benutzer nun abändern und danach ausführen kann.

Man muss in dem SQL lediglich oben 'username' mit dem jeweiligen Benutzernamen ersetzen und daruter 2 x das entsprechende Datum. Einmal als lokaler Datums-Zeit-Parameter und einmal als UTC-Datum-Zeit
Anstatt 'username' muss dann also z. B. 'Udo T.' im SQL stehen.

Sollte jemals eine Abstimmung um Mitternacht (oder im Sommer nachts um 01:00 Uhr) starten, dann müsste beim UTC-Datums-Zeitparameter (@utc_timestamp_str) natürlich auch der Tag angepasst werden.

Am Ende wird das Ergbnis der Prüfung im Klartext ausgegeben, wobei zur Überprüfung auch die jeweils ermittelten Werte mit angegeben werden.

Beispiele

Bei meinem Benutzernamen 'Udo T.' wird nach ein paar Sekunden folgendes ausgegeben:

  • „Udo T. ist stimmberechtigt, da die erste lokale Bearbeitung am 2014-08-16 17:14:00 (UTC) erfolgte und bis zum 2024-12-11 11:00:00 > 150 Bearbeitungen im Eintragsnamensraum gemacht wurden.“

Gruß --Udo T. (Diskussion) 16:04, 11. Dez. 2024 (MEZ) --Udo T. (Diskussion) 17:21, 12. Dez. 2024 (MEZ)Beantworten

@Udo T. Danke, das Skript habe ich verbessert, damit es übersichtlicher ist. Zu Beginn des Skripts muss man nur den Benutzernamen eingeben, und der Timestamp kann in einem besser lesbaren Format eingegeben werden.
-- Benutzername und Timestamp im lesbaren Format eingeben
SET @username = 'Benutzername';  -- Der Benutzername des Nutzers
SET @timestamp_str = '2024-12-11 10:00:00';  -- Das Datum und die Uhrzeit (im lesbaren Format)

-- Umwandlung des Timestamp in das interne Format von MySQL
SET @timestamp = STR_TO_DATE(@timestamp_str, '%Y-%m-%d %H:%i:%s');  -- Konvertiert den lesbaren Zeitstempel ins interne Format

-- Abfrage des Datums der ersten Bearbeitung des Nutzers
SELECT MIN(r.rev_timestamp) 
INTO @first_edit_date
FROM revision_userindex r 
JOIN page p ON p.page_id = r.rev_page 
WHERE r.rev_actor = (SELECT a.actor_id FROM actor_revision a WHERE a.actor_name = @username)  -- Benutzer nach dem Namen suchen
AND p.page_namespace = 0;  -- Nur Hauptnamenräume (keine Diskussionsseiten)

-- Zählen der Bearbeitungen des Nutzers bis zum angegebenen Zeitstempel
SELECT COUNT(*) 
INTO @edit_count
FROM revision_userindex r 
JOIN page p ON p.page_id = r.rev_page 
WHERE r.rev_actor = (SELECT a.actor_id FROM actor_revision a WHERE a.actor_name = @username)  -- Benutzer nach dem Namen suchen
AND p.page_namespace = 0  -- Nur Hauptnamenräume
AND r.rev_timestamp <= @timestamp;  -- Nur Bearbeitungen bis zum angegebenen Zeitpunkt zählen

-- Überprüfen, ob die erste Bearbeitung mehr als einen Monat vor dem angegebenen Zeitpunkt war
SET @is_first_edit_older_than_month = IF(@first_edit_date <= DATE_SUB(@timestamp, INTERVAL 1 MONTH), 1, 0);  -- Überprüfen, ob die erste Bearbeitung älter als ein Monat ist

-- Überprüfen der Bedingungen und Ausgabe der entsprechenden Nachricht
IF @edit_count > 149 AND @is_first_edit_older_than_month = 1 THEN
    SELECT CONCAT(@username, ' ist stimmberechtigt.');  -- Der Benutzer ist stimmberechtigt
ELSE
    SELECT CONCAT(@username, ' ist nicht stimmberechtigt.');  -- Der Benutzer ist nicht stimmberechtigt
END IF;

--HyperDelulu (Diskussion) 14:22, 12. Dez. 2024 (MEZ)Beantworten

Hallo HyperDelulu,
vielen herzlichen Dank für Deinen Input. Ich bin halt einfach nicht so sehr der Fan für das sog. "schöner Wohnen", habe deine Anregungen nun aber gerne größtenteils übernommen und am Ende sogar noch leserlicher gemacht.
Allerdings waren noch ein paar Fehler drin, die ich korrigieren musste:
  • So kann die erste Bearbeitung in jedem beliebigen Namensraum erfolgt sein. Nur für die Bestimmung der 150 Bearbeitungen ist der Eintrags-Namesraum erforderlich.
  • Beim @timestamp war auch ein Formatierungsfehler, denn das Datum muss für das SQL eine einzige "lange Wurst" sein.
Außerdem "verjoine" ich lieber auf die althergebrachte Weise, da sie für mich eingängiger ist. Aber das ist Geschmackssache.
Zum Schluß habe ich auch noch die Gründe (insb. bei nicht bestehender Stimmberechtigung von Interesse) mit eingebaut.
Gruß --Udo T. (Diskussion) 17:11, 12. Dez. 2024 (MEZ)Beantworten
Zurück zur Projektseite „Stimmberechtigung“.