diff --git a/article/literature.bib b/article/literature.bib index b6c4129521f2450883f660f6f4f7dfd4af2f331b..d1317f7c978f09a9f819a46cf56de21017c4d784 100644 --- a/article/literature.bib +++ b/article/literature.bib @@ -29,6 +29,15 @@ publisher = {Basic Books} } +@misc{Mediawiki:AbuseFilterActions, + key = "Mediawiki", + author = {}, + title = {Abuse Filter Extension Actions}, + year = 2019, + note = {Retreived March 13, 2019 from + \url{https://www.mediawiki.org/wiki/Extension:AbuseFilter/Actions}} +} + @misc{phabricator, key = "Phabricator", author = {Phabricator Collaboration Platform}, @@ -56,6 +65,15 @@ \url{https://en.wikipedia.org/wiki/Wikipedia:Edit_filter}} } +@misc{Wikipedia:EditFilterFalsePositives, + key = "Wikipedia Edit Filter Report False Positives", + author = {}, + title = {}, + year = 2019, + note = {Retreived March 13, 2019 from + \url{https://en.wikipedia.org/wiki/Wikipedia:Edit_filter/False_positives}} +} + @misc{Wikipedia:EditFilterInstructions, key = "Wikipedia Instructions for Introducing a New Edit Filter", author = {}, diff --git a/article/proceedings.tex b/article/proceedings.tex index 0d6419e1862a1119bc0965b47d4330ad0fd1d774..e9c33040c7f8fa5ebcd098f464528da1d5f29403 100644 --- a/article/proceedings.tex +++ b/article/proceedings.tex @@ -552,7 +552,7 @@ Data generated by the extension in stored in following database tables: \emph{ab //maybe move to governance? The best practice way for introducing a new filter is described under \url{https://en.wikipedia.org/wiki/Wikipedia:Edit_filter/Instructions}. -According to the page, following steps should be implemented: +According to the page, these steps should be followed: \begin{itemize} \item read the docs: \url{https://www.mediawiki.org/wiki/Extension:AbuseFilter/Rules_format} \item test with debugging tools: \url{https://en.wikipedia.org/wiki/Special:AbuseFilter/tools} (visible only for users who are already in the edit filter managers user group) @@ -565,34 +565,51 @@ According to the page, following steps should be implemented: Performance/efficiency seem to be fairly important for the edit filter system; on multiple occasions, there are notes on recommended order of operations, so that the filter evaluates as resource sparing as possible~\cite{Wikipedia:EditFilterInstructions} or invitations to consider whether an edit filter is the most suitable mechanism for solving a particular issue at all~\cite{Wikipedia:EditFilter},~\cite{Wikipedia:EditFilterRequested}. -\begin{comment} -tips on controlling efficiency/order of operations -lazy evaluation: when 1st negative condition is met, filter terminates execution -"You should always order your filters so that the condition that will knock out the largest number of edits is first. Usually this is a user groups or a user editcount check; in general, the last condition should be the regex that is actually looking for the sort of vandalism you're targeting. " +\subsection{What happens when a filter gets triggered?} -\url{https://en.wikipedia.org/wiki/Special:AbuseFilter} -there seems to be a batch testing interface: \url{https://en.wikipedia.org/wiki/Special:AbuseFilter/test} -however, it says: "For security reasons, only users with the right to view private abuse filters or modify filters may use this interface." -so, you should already be aproved as a filter manager in order to test? -shouldn't all filter editors be able to test?? +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. %TODO src? other than entries from the abuse_filter_log table? -same goes for the debugging tools: \url{https://en.wikipedia.org/wiki/Special:AbuseFilter/tools} -\end{comment} +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 action (or actions) may be invoked. +The documentation of the Abuse Filter 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.'' + \item Warning: ``The user is warned that their edit may not be appreciated, and is given the opportunity to submit it again. You may specify a specific system message containing the warning to display.'' A link to the false positives page~\cite{Wikipedia:EditFilterFalsePositives} is also provided. + \item Throttling: ``The filter will only match if a rate limit is tripped. You can specify the number of actions to allow, the period of time in which these actions must occur, and how those actions are grouped. + The groupings are which sets of people should have aggregate (shared) throttles. That is, if you type "user", then the same user must match the filter a certain number of times in a certain period of time. You may also combine groups with commas to specify that throttle matches sharing all criteria will be aggregated. For example, using "ip,page", X filter matches in Y seconds from the same IP address to the same page will be required to trip the remainder of the actions.'' + (So this is something like, do this and that if a user edits a particular page X times for a Y period of time. In this sense: throttling always has to be paired with another action?) + \item Disallowing: ``Actions matching the filter will be prevented, and a descriptive error message will be shown.'' The editor is provided the opportunity to report a false positive + \item Revoking auto-promoted groups: ``Actions matching the filter will cause the user in question to be barred from receiving any extra groups from \$wgAutopromote for a period ranging from 3 to 7 days (random). This can be restored at the debug tools page.'' + \item Blocking: ``Users matching the filter will be blocked indefinitely, with a descriptive block summary indicating the rule that was triggered.'' + \item Removing from privileged groups: ``Users matching the filter will be removed from all privileged groups (sysop, bureaucrat, etc). A descriptive summary will be used, detailing the rule that was triggered.'' + \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} +It is not uncommon, that the action(s) a particular filter triggers change over time. +As of the guidelines for introducing new filters, every filter should be enabled in ``log only'' mode at the beginning. +When it was deemed that the filter actually acts as desired, usually additional actions are switched on~\cite{Wikipedia:EditFilterInstructions}. +Sometimes, when a wave of particularly persistent vandalism arises, a filter is temporarily set to ``warn'' or ``disallow'' and the actions are removed again as soon as the filter is not tripped very frequently anymore. %TODO src? other than data? -\subsection{What happens when a filter gets triggered?} +Range-blocking, blocking, removing from priviledged groups and revoking autopromoted groups haven't been used on the EN Wikipedia for the last year %TODO: check how long! too grave? +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}. + +\begin{comment} \url{https://en.wikipedia.org/wiki/Wikipedia:Edit_filter} What do filters do?/What actions they trigger (vgl DEF) in order of graveness: - disallow -- editor is informed, if their edit is being disallowed and offered the option to report a false positive; "It is also possible to have a user's autoconfirmed status revoked if a user trips the filter." caution to use it seldomly and after a thorough discussion on what is a undesirable edit +\url{https://en.wikipedia.org/wiki/Wikipedia:Edit_filter} +Edit filters should only be set to disallow to prevent edits that substantially all good-faith editors would agree are undesirable, or where a clear consensus has been reached that a specific type of edit should not be allowed. Any doubts regarding setting a filter to disallow should be discussed with other edit filter managers. - warn -- editor is informed that their edit may be problematic and given the option to save or abort the edit (and in report the false positive trigerred by the filter) - add a tag - "edit is tagged for review by patrollers." -- TODO who are patrollers? are there some in lang versions other than EN? "Patrols are a specialized type of WikiProject used in the English Wikipedia to watch over a class of pages and take any appropriate actions. Most patrol actions are performed by individual Wikipedians, but some are performed by bots—computer programs or preprogrammed scripts that make automated edits without a need for real time human decision-making. " https://en.wikipedia.org/wiki/Wikipedia:Patrols - log the edit - "In this case, the edit is merely added to the AbuseLog. When testing new filters, this is the suggested setting to use." -- "throttle"? (mentioned somewhere else) +- "throttle" - \url{https://tools.wmflabs.org/ptwikis/Filters:enwiki::102&11:102&11} mentions "block" as a possible action in the legend 9 different actions possible according to the extension docu (are users whose edits tripped the filters notified for all of them?) @@ -609,15 +626,9 @@ The groupings are which sets of people should have aggregate (shared) throttles. 2.7 Removing from privileged groups: Users matching the filter will be removed from all privileged groups (sysop, bureaucrat, etc). A descriptive summary will be used, detailing the rule that was triggered. 2.8 Range-blocking:Somewhat of a "nuclear option", the entire /16 range from which the rule was triggered will be blocked for 1 week. 2.9 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{comment} -Note: Frequently, what action a particular filter triggers changes over time. -Usually, all filters start as "log only", and when deemed that they do what they are intended to do, additional actions are added. -Sometimes, when a wave of particularly persistent vandalism arises, a filter is temporarily set to "warn" or "disallow" and the actions are removed again as soon as the filter is no tripped very frequently anymore. - -\url{https://en.wikipedia.org/wiki/Wikipedia:Edit_filter} -Edit filters should only be set to disallow to prevent edits that substantially all good-faith editors would agree are undesirable, or where a clear consensus has been reached that a specific type of edit should not be allowed. Any doubts regarding setting a filter to disallow should be discussed with other edit filter managers. - \subsection{what happens afterwards}