diff --git a/thesis/4-Edit-Filters.tex b/thesis/4-Edit-Filters.tex index da3ea721f073d7909acefc7ab23f1a223bac6a1e..d1e8e0528865855aad7a190a330d4d2cd6042c7b 100644 --- a/thesis/4-Edit-Filters.tex +++ b/thesis/4-Edit-Filters.tex @@ -89,49 +89,22 @@ and actions to take when the filter is triggered. At the end, from a technical perspective, Wikipedia's edit filters are a MediaWiki plugin that allows every edit (and some other editor's actions) to be checked against a speficied regular expression pattern before it is published. -Every time a filter is triggered, the action that triggered it as well as further data such as the user who triggered the filter, their IP address, and a diff of the edit (if it was an edit), a timestamp, the title of the page the user was looking at, etc. are logged. +The extension introduces following database tables where all data generated by it is stored: \emph{abuse\_filter}, \emph{abuse\_filter\_log}, \emph{abuse\_filter\_action} and \emph{abuse\_filter\_history}~\cite{gerrit-abusefilter}. +\emph{abuse\_filter} contains detailed information about every filter. +\emph{abuse\_filter\_action} ... %TODO: Find out what this table is for! +Every filter update is recorded in \emph{abuse\_filter\_history}. +And every time a filter is triggered, the action that triggered it as well as further data such as the user who triggered the filter, their IP address, and a diff of the edit (if it was an edit), a timestamp, the title of the page the user was looking at, etc. are logged in \emph{abuse\_filter\_log}. + Most frequently, edit filters are triggered upon new edits, there are however further editor's actions that can trip an edit filter. -As of June 30th 2019, these include: `edit', `move', `delete', `createaccount', `autocreateaccount', `upload', `stashupload'\footnote{See l. 181 in \url{https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/AbuseFilter/+/refs/heads/master/includes/special/SpecialAbuseLog.php}}. +As of June 30th 2019, these include: \emph{edit}, \emph{move}, \emph{delete}, \emph{createaccount}, \emph{autocreateaccount}, \emph{upload}, \emph{stashupload}\footnote{See line 181 in \url{https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/AbuseFilter/+/refs/heads/master/includes/special/SpecialAbuseLog.php}}. %TODO explain what the actions are, especially the less obvious ones such as `autocreateaccount' -Historically, further editor's actions such as `feedback', `gatheredit' and `moodbar' could trigger an edit filter. +Historically, further editor's actions such as \emph{feedback}, \emph{gatheredit} and \emph{moodbar} could trigger an edit filter. These are in the meantime deprecated. %TODO explain why? I have the guess that these are not available in the software anymore (generally, not only for the edit filters) -When a filter is triggered, beside logging this, a further filter action may be invoked as well. +When a filter is triggered, beside logging the event in the \emph{abuse\_filter\_log} table, a further filter action may be invoked as well. The plugin defines following possible filter actions: `tag', `throttle', `warn', `blockautopromote', `block', `degroup', `rangeblock', `disallow'. (l.2808 in \url{https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/AbuseFilter/+/refs/heads/master/includes/AbuseFilter.php}) %TODO verify that none of the actions are deprecated; I have my doubts that for instance `revoking auto-promoted groups' may not be available anymore -%TODO explain what each action means - -The documentation page of the extension is here: \url{https://www.mediawiki.org/wiki/Extension:AbuseFilter} -and the code is hosted on gerrit, Wikimedia's git repository hosting service of choice: \url{https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/AbuseFilter/+/refs/heads/master}. - -The rules format can be viewed under \url{https://www.mediawiki.org/wiki/Extension:AbuseFilter/Rules_format}. - -Data generated by the extension in stored in following database tables: \emph{abuse\_filter}, \emph{abuse\_filter\_log}, \emph{abuse\_filter\_action} and \emph{abuse\_filter\_history}~\cite{gerrit-abusefilter}. - -Following new user permissions are introduced by the abuse filter plugin: -\begin{itemize} - \item `abusefilter-modify': Modify abuse filters - \item `abusefilter-view': View abuse filters - \item `abusefilter-log': View the abuse log - \item `abusefilter-log-detail': View detailed abuse log entries - \item `abusefilter-private': View private data in the abuse log - \item `abusefilter-modify-restricted': Modify abuse filters with restricted actions - \item `abusefilter-modify-global': Create or modify global abuse filters - \item `abusefilter-revert': Revert all changes by a given abuse filter - \item `abusefilter-view-private': View abuse filters marked as private - \item `abusefilter-log-private': View log entries of abuse filters marked as private - \item `abusefilter-hide-log': Hide entries in the abuse log - \item `abusefilter-hidden-log': View hidden abuse log entries - \item `abusefilter-private-log': View the AbuseFilter private details access log -\end{itemize} - -%******************** - -There are several actions by editors that may trigger an edit filter. -Editing is the most common of them, but there are also filters targetting account creation, deletions, moving pages or uploading content, as elaborated in section~\ref{sec:mediawiki-ext}. - -When an edit filter's regex pattern matches an editor's action, an entry is created in the \emph{abuse\_filter\_log} table and an additional filter action (or actions) may be invoked. The documentation of the AbuseFilter extension provides us a complete list of the possible edit filter actions~\cite{Mediawiki:AbuseFilterActions}: \begin{itemize} \item Logging: ``All filter matches are logged in the abuse log. This cannot be turned off.'' @@ -146,7 +119,6 @@ The documentation of the AbuseFilter extension provides us a complete list of th \item Range-blocking: ``Somewhat of a "nuclear option", the entire /16 range from which the rule was triggered will be blocked for 1 week.'' \item Tagging: ``The edit or change can be 'tagged' with a particular tag, which will be shown on Recent Changes, contributions, logs, new pages, history, and everywhere else. These tags are styleable, so you can have items with a certain tag appear in a different colour or similar.'' \end{itemize} -%TODO shouldn't this be part of the MediaWiki Extension section? Range-blocking, blocking, removing from priviledged groups and revoking autopromoted groups haven't been used on the EN Wikipedia in recent years. %TODO: why? look for talk page archives around the last time they were used. Maybe there was a particular incident; nothing concerning autopromote in the EdiFilter talk page around 2012 To be more precise, the last time a filter action other than ``log only'', ``tag'', ``warn'' or ``disallow'' was triggered on the EN Wikipedia was in 2012. %TODO Refer to data analysis @@ -172,6 +144,30 @@ https://www.mediawiki.org/w/index.php?title=Article_feedback/Version_5&oldid=258 Guidelines specifically call for careful use of ``disallow''. Only severe cases for which ``substantially all good-faith editors would agree are undesirable'' or specific cases for which consensus has been reached should be disallowed~\cite{Wikipedia:EditFilter}. +The documentation page of the extension is here: \url{https://www.mediawiki.org/wiki/Extension:AbuseFilter} \\ +and the code is hosted on gerrit, Wikimedia's git repository hosting service of choice:\\ +\url{https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/AbuseFilter/+/refs/heads/master}. + +The rules format can be viewed under \url{https://www.mediawiki.org/wiki/Extension:AbuseFilter/Rules_format}. + +Following new user permissions are introduced by the abuse filter plugin: +\begin{itemize} + \item `abusefilter-modify': Modify abuse filters + \item `abusefilter-view': View abuse filters + \item `abusefilter-log': View the abuse log + \item `abusefilter-log-detail': View detailed abuse log entries + \item `abusefilter-private': View private data in the abuse log + \item `abusefilter-modify-restricted': Modify abuse filters with restricted actions + \item `abusefilter-modify-global': Create or modify global abuse filters + \item `abusefilter-revert': Revert all changes by a given abuse filter + \item `abusefilter-view-private': View abuse filters marked as private + \item `abusefilter-log-private': View log entries of abuse filters marked as private + \item `abusefilter-hide-log': Hide entries in the abuse log + \item `abusefilter-hidden-log': View hidden abuse log entries + \item `abusefilter-private-log': View the AbuseFilter private details access log +\end{itemize} + + %************************************************************************ \section{History}