User:COIBot

COIBot is a bot that tries to track edits that are made by users who may have a conflict of interest ('COI', see Conflict of interest, m:Terms of use, Spam and Best practices for editors with close associations).

COIBot tries to associate a users' username (or IP) with the material that they are editing:
 * Username similar to the name of the page the user is editing
 * Username similar to the external links a user is adding
 * user-IP (in case of IP users) in close range proximity of IP of domain (external link) a user is adding (IP of the domain as reported at time of addition by a DNS server).

Moreover, COIBot will track edits which it has been instructed to follow (e.g. certain username patterns or external link patterns).

COIBot also works closely together with LiWa3, an off-wiki bot that tracks all link additions (in content areas of Wikipedia) across the whole of WikiMedia (~830 wikis). LiWa3 will detect links that are only added by IPs, only added by one single user, that are redirect sites, or which have been reported to one of the spam-related noticeboards, and report them to COIBot.

COIBot has access to the database of link additions created by LiWa3, and can save reports on data retrieved from that database:
 * Reports all external link additions:
 * on a certain domain;
 * on domains hosted on one server-IP (server-IP as reported by a DNS server at time of addition).
 * Reports on all edits of a certain user/IP-editor:
 * all link additions that have been performed by a certain user/IP (e.g. collect all domains spammed by a certain spammer);
 * report all edits where COIBot perceived significant connection between username / user-IP and page edited / domain added.

What is watched
COIBot is at the moment listening and reporting to the IRC channels ([ircs://irc.libera.chat:6697 IRC on libera.chat]):
 * #wikipedia-en-spam - all coi and link addition reports (reads the English link-addition feed from here)
 * #wikimedia-swmt - all non-english reports.
 * #wikimedia-swmt-spam - all non-en.wikipedia specific coi and link addition reports (reads the non-English link addition feed from here).
 * #wikipedia-spam-t - main command channel, certain en-specific reports
 * #wikipedia-spam-stats - used for some statistics and commands

On IRC on wikimedia.org COIBot listens standard to ~830 wikis.

COIBot here watches for page edits. Channels can be added or removed while COIBot is running.

What is reported, and where
All edits pertaining this wikipedia are reported here, everything gets reported to COIBot's account on meta.wikipedia.org. Specific user and link-reports are saved on both wikipedia, and contain in both cases all reports.

Whitelist
Items on the whitelist make COIBot ignore the complete edit, so when the link 'example' <-> 'example.com' would be on the whitelist, COIBot would not report when user 'example' would add 'example.com' to a page (which would normally result in an overlap of 70%, well above the threshold). Users can also be whitelisted completely, which will result in them never being reported. Complete whitelisting of links will still result in them being reported, but such links will never be automonitored (see monitor list, below).

Please understand that whitelisting means that your username is whitelisted on all monitored wikis, which also means that while you have not a conflict of interest on this wiki, another user on another wiki may have a conflict of interest. It may therefore be undesirable to whitelist certain usernames.

'''If you believe your name is wrongly on a report, please a) remove yourself from the reports (preferably using and -tags, providing a clear edit summary, and notify Dirk Beetstra or a regular on Wikipedia talk:WikiProject Spam to request whitelisting. Please note that the link-reports (under WikiProject Spam/LinkReports) are generated automatically by COIBot, and may be regenerated before whitelisting.'''

Blacklist
Coibot has a table where usernames are linked to keywords. This gives the possibility to check whether certain accounts e.g. add a certain url (when a suspected or known conflict of interest exists). For example the blacklist rule 'COIBot' <-> 'example' would result in the following two results when user COIBot would add the link 'www.example.com': The second case has a ratio higher than the threshold, and COIBot would be reported.
 * TEST: en:User:COIBot/en:Special:Contributions/COIBot scores 0% (U->T) and 0% (T-U) (ratio 0%) on string example.com
 * TEST: en:User:COIBot/en:Special:Contributions/COIBot scores 100% (U->T) and 70% (T-U) (ratio 70%) on string example.com

The reverse is also checked, so 'example.com' can be linked to the keyword 'COI' or to IP-ranges, which makes it possible to find sock-puppets or check for additions by certain IP ranges.

Monitor list
COIBot records additions of URLs on the monitorlist, except when the user is whitelisted or when a user is already reported via the blacklist or via overlap between username and domain-name. This functionality is used to find IP-ranges or sock-puppet accounts that add certain domains, but where the full scope of the involved accounts is not (yet) clear. This function may result in numerous 'false positives' for domains which are, besides being spammed or pushed by certain accounts, also used as e.g. references.

Addition of a link that has a large overlap with the username of the user that is adding the link will result in the link being added to the monitorlist automatically. COIBot also monitors WT:WPSPAM, WT:SBL and WP:COIN for reported links, as well as the spam blacklists on the wikipedia it is monitoring.

All items on the monitor list are interpreted as a regular expression.

When your name appears on the reports for a monitored link, then it does not mean you have a conflict of interest, or that you were spamming, but that there may (have) be(en) issues with that particular link or that there is an accidental overlap (see ). More information (monitoring or blacklisting reasons) can be found in the header of the specific reports on that link (see WikiProject Spam/LinkReports for a list of generated link reports).

Reports

 * WikiProject Spam/COIReports - reports on suspected cases of a Conflict of Interest
 * WikiProject Spam/LinkReports - reports on suspected links (also automatically updated).
 * WikiProject Spam/UserReports - reports on suspected users.
 * WikiProject Spam/PageReports - reports on suspected pages.

The lower list in the COIBot reports now have after each link four numbers between brackets (e.g. "www.example.com (0, 0, 0, 0)"):
 * numbers in the reports


 * 1) first number, how many links did this user add (is the same after each link)
 * 2) second number, how many times did this link get added to wikipedia (for as far as the linkwatcher database goes back)
 * 3) third number, how many times did this user add this link
 * 4) fourth number, to how many different wikipedia did this user add this link.

If the third number or the fourth number are high with respect to the first or the second, then that means that the user has at least a preference for using that link. Be careful with other statistics from these numbers (e.g. good user who adds a lot of links). If there are more statistics that would be useful, please notify me, and I will have a look if I can get the info out of the database and report it. This data is available in real-time on IRC.

Poking
When adding LinkSummary, UserSummary and/or IPSummary templates to WT:WPSPAM, WT:SBL, WT:SWL and User:COIBot/Poke (the latter for privileged editors) COIBot will generate linkreports for the domains, and userreports for users and IPs.

Interpretation
Care should be taken when interpreting the data that is provided by COIBot. The bot has a mechanism which matches username against domain added or page edited, reporting significant overlap (its standard setting is to report all cases with more than 25% overlap). At the current state it can be seen from the reports that more than 95% of the reported cases are 'correct' in terms of 'username indeed has a huge overlap with the pagename/url'.

Some points of attention:

1. Editors with short usernames editing articles with short names easily exceed the 25% threshold since single characters have a high weight in short names:
 *  TEST: en:User:zxv/en:Special:Contributions/zxv scores 90% (U->T) and 60% (T-U) (ratio 54%) on string zyxwv

2. An overlap does not necessarily mean that the editor has a conflict of interest. Example:
 *  TEST: en:User:chocolatefan/en:Special:Contributions/chocolatefan scores 75% (U->T) and 47.36% (T-U) (ratio 35.52%) on string chocolate_chip_cookie


 * Of course a ChocolateFan does not have a conflict of interest when adding important information to chocolate chip cookies.

Therefore, all results should be, and will be, manually checked against the policies and guidelines. When wrong reports occur too often, these combinations can be whitelisted.

Software
The bot is written in Perl, originally based on the code of AntiSpamBot (though the overlap is now only the basic IRC-read and mediawiki-edit mechanism). It uses perlwikipedia, a module to read/write MediaWiki pages. A recent example of the code can be found on m:User:COIBot/COIBot.