Wikiquote/Table and Wikirank/Details: Difference between pages

From Meta, a Wikimedia project coordination wiki
(Difference between pages)
Content deleted Content added
EmausBot (talk | contribs)
Bot: table update
 
→‎Prior art: comparison with existing list projects
 
Line 1:
This page considers [[Wikirank]] proposal in more detail from various angles.
 
==Prior art==
Wikirank differs from [[:Category:Proposed projects - lists|previously proposed lists]] in two ways. Firstly, Wikirank assumes that lists are already easily obtained by querying Wikidata. Wikidata actually has a whole query namespace reserved for lists, just waiting for [https://phabricator.wikimedia.org/T67626 T67626] to be completed. Wikirank instead focuses on filtering out insignificant items in these lists. Wikidata lists can be sorted too, but all factual sort keys (e.g. sorting things by size) are only trying to approximate desired sorting by relevance to the reader. Wikirank aims to collect and use popularity data, which is a direct ''measurement'' of relevance to the average reader. Secondly, Wikirank encourages frequent personalization of lists while showing these personalized lists under the same searchable URL as public lists, which considerably improves usefulness and usability of lists while at the same time encouraging contribution to the public list.
 
The concept is not new by any measure. Just about every Web 2.0 site allows users to vote on just about everything. Toplists make up a significant portion of web content. Websites like [https://alternativeto.net/ alternativeto.net] turn every list item into its own list, sidestepping pitfalls of ontology. It's about time for WMF to introduce its own voting solution that is aligned with Wikimedia movement's principles and goals and integrated with other Wikimedia projects.
<noinclude>{{Wikiquotes|This page in other languages}}</noinclude>
 
<noinclude>{{Wikiquote/Table/en/Header}}</noinclude>
==Minimal version==
|- style="text-align: right;"
Sections below describe Wikirank in detail, but most of the functionality is not required immediately. This section describes minimal functional version of the project.
| 1
 
| [[w:English language|English]]
The main requirement is a new MediaWiki extension that adds support for vote data. Its simplest implementation saves private lists in relational database and uses SQL queries to compute public lists. There's no voting history, timestamps, or IP address data. No special privacy measures. No spam filters either. The site can start as English-only. Pages initially contain only page title and the list itself. List items initially show only item name and popularity. Private lists work from the beginning, but they cannot be shared. Login is required. Minimal version just ranks existing Wikidata Q-items without creating any new items. Sorting by popularity is complemented with secondary sort key to compensate for low vote count.
| class="plainlinksneverexpand" | [{{fullurl:en:English_language}} English]
 
| [//en.wikiquote.org/wiki/ en]
Estimated cost of the minimal version is under 100 man-hours.
| [//en.wikiquote.org/wiki/Special:Statistics?action=raw '''39828 ''']
 
| 180648
==Relationship with Wikidata==
| [//en.wikiquote.org/wiki/Special:Recentchanges 2970351]
Every Wikirank page contains a list. Every list has a topic, which is identified by Wikidata Q-item. Every list item is also identified by Wikidata Q-item. Using Wikidata Q-items is the key to Wikirank's ability to merge private lists of its contributors into popularity-sorted public lists. Presence of list item in the list is interpreted as "instance of" relationship, i.e. list topics are classes in Wikidata parlance while individual list items are their instances. This "instance of" relationship does not have to be recorded in Wikidata. Wikirank just expects list items to have properties compatible with list topic. Users are able to add any item to any private list, but public lists will usually filter out incompatible list items.
| [//en.wikiquote.org/wiki/Special:Listadmins 14]
 
| [//en.wikiquote.org/wiki/Special:Listusers 3096730]
Wikidata usually does not have classes like "GMail alternative" or "2020 sci-fi movie". If such lists are created in Wikirank, corresponding class Q-items will be created in Wikidata. There is however no need to manually add "instance of" statements to their potential instances. Class "2020 sci-fi movie" would just declare that it is "subset of" "science fiction film (Q471839)" and that it has "publication date" "2020". All Q-items in Wikidata with compatible properties are automatically accepted by Wikirank as possible list items.
| [//en.wikiquote.org/wiki/Special:ActiveUsers 453]
 
| [//en.wikiquote.org/wiki/Special:FileList 0]
==Site and page structure==
|- style="text-align: right;"
TODO: UI mocks
| 2
 
| [[w:Italian language|Italian]]
Every list is a page. Page URL references Q-item of the list topic (e.g. <code>www.domain.org/wiki/Q12345</code>), so that the URL remains the same regardless of selected language. Page title is a natural language label for the list. Page content is normal wikitext, but it is mostly generated by templates and Lua scripts that exist for every kind of list. The following describes default page layout. Page starts with short summary of list's topic, usually formatted as property-value table. Most space on the page is dedicated to the list. List items are sorted by votes. If votes are scarce, secondary sort key may be used. Every list item has three columns. First column contains vote count, voting buttons, and other Wikirank features. Second column contains summary of the list item, usually formatted as property-value table. Third column contains optional image.
| class="plainlinksneverexpand" | [{{fullurl:it:Lingua_italiana}} Italiano]
 
| [//it.wikiquote.org/wiki/ it]
There is no manually added free-form content, because it would make the site language-specific. All information is retrieved from Wikidata and automatically translated using Wikidata language information (lexemes and item labels/descriptions). If there is any free-form text, it must come from Wikidata, for example item title and quotations. Wikirank may synthesize short text from Wikidata statements using techniques similar to Abstract Wikipedia. Additional information may be obtained from Wikipedia and other sources linked from topic and item summaries. Some content, for example Wikipedia links, may be automatically selected to match current language.
| [//it.wikiquote.org/wiki/Special:Statistics?action=raw '''39775 ''']
 
| 169914
List pages may offer several views of the same list. It should be possible to switch between at least two layouts: the above described 3-column layout and plain table view. Table view places vote count and buttons in one of the columns. Further alternative views may include temporal and geographic segments. Subtopics and related topics should generally have their own pages, but current page can link to them prominently.
| [//it.wikiquote.org/wiki/Special:Recentchanges 1154228]
 
| [//it.wikiquote.org/wiki/Special:Listadmins 11]
Upvoting an item moves the item to the top and visually marks it as upvoted. Downvoting an item moves the item to the bottom or completely hides it. Upvoted items are sorted among themselves using public vote count, but there is a way to override that order. Search widget at the end of the list allows users to easily find new items and add them to the list. Some pages may also include a form to add new list item by creating formulaic Q-item in Wikidata. The form shows a list of similar items in order to discourage users from creating duplicate Q-items.
| [//it.wikiquote.org/wiki/Special:Listusers 85954]
 
| [//it.wikiquote.org/wiki/Special:ActiveUsers 94]
Besides list pages, there are item pages and category pages. Item pages, which are linked from list items, contain longer summary, links to lists featuring the item or related to the item (e.g. alternatives), links to sister projects, and additional useful links. Category pages are really just special list pages with list items pointing to other lists. Category pages allow voting on their list items, i.e. other list pages, but they also visually mark and bring to top lists, in which the user has casted a vote. This makes it easier to find one's private lists. There is one all-encompassing category containing all lists. This top-level category can be used by users to find all of their private lists.
| [//it.wikiquote.org/wiki/Special:FileList 295]
 
|- style="text-align: right;"
Users can publish their private lists under special URL, e.g. <code>www.domain.org/share/6fR3tZhSHPp1tnUjY6ko</code>. This URL is secret, which allows users to provide access only to people who know the URL. Unsharing the list and sharing it again generates new URL. This allows users to revoke access to their private list. Shared lists may be optionally frozen, so that they do not change after publishing even as user's private list continues to change.
| 3
 
| [[w:Polish language|Polish]]
==Notability==
| class="plainlinksneverexpand" | [{{fullurl:pl:Język_polski}} Polski]
Wikirank will generally allow creating lists of anything that already meets [[d:Wikidata:Notability|Wikidata notability policy]]. Quantitative surveys are generally useful for everything, even abstract concepts and unremarkable objects. While voting on such things as exoplanets seems useless at first, these votes are actually likely to point to exoplanets that are in some way interesting. Similar argument can be made about most other topics. There will be only a few exceptions, for example adding people as items in defamatory lists. Wikirank will tend to extend beyond current Wikidata scope, which is largely defined by what Wikipedia considers notable. This is because, in a sense, Wikirank is a way to discover notable items and to separate notable items from uninteresting ones. It is therefore natural that a large fraction of items in Wikirank lists will not be considered notable by other projects.
| [//pl.wikiquote.org/wiki/ pl]
 
| [//pl.wikiquote.org/wiki/Special:Statistics?action=raw '''24636 ''']
==Data quality==
| 51985
Wikirank will not attempt to censor "wrong" choices. The idea is to reflect public opinion even if public at large is wrong about something. Clarifying notice may be placed above lists that have high risk of misinterpretation. List items may show additional properties pulled from Wikidata that complement Wikirank's popularity data.
| [//pl.wikiquote.org/wiki/Special:Recentchanges 523432]
 
| [//pl.wikiquote.org/wiki/Special:Listadmins 8]
All data added to Wikidata in the course of editing Wikirank pages still has to be factually correct and meet Wikidata policies.
| [//pl.wikiquote.org/wiki/Special:Listusers 49212]
 
| [//pl.wikiquote.org/wiki/Special:ActiveUsers 90]
Little attention is paid to which item is ranked #1. Wikirank only aims to separate serious contenders from uninteresting alternatives. Precise order near the top of the list is not important. Users are expected to review the highest ranking items and make their own choices.
| [//pl.wikiquote.org/wiki/Special:FileList 1]
 
|- style="text-align: right;"
==Collaboration model==
| 4
The usual collaboration model on wikis is that everyone edits the same content and disputes are resolved via discussion. Wikirank collaboration model is more subtle. Everyone has their own version of every list, but list items preferred by other contributors are shown underneath user's private list, sorted by popularity, which encourages users to add popular items to their own list. In order to keep their private list clean and useful, users are most likely to upvote unreasonably unpopular items buried near the bottom of the public list and downvote unreasonably popular items that they consider to be clutter. This creates self-regulating system that converges toward interests of the majority while still allowing minority users to adjust the list to their liking.
| [[w:Russian language|Russian]]
 
| class="plainlinksneverexpand" | [{{fullurl:ru:Русский_язык}} Русский]
Wikirank should be home to several kinds of contributors, sorted here by amount of time invested:
| [//ru.wikiquote.org/wiki/ ru]
 
| [//ru.wikiquote.org/wiki/Special:Statistics?action=raw '''13968 ''']
* Supporters do not build lists. They just drop random upvotes here and there to show support.
| 37777
* Curators build private lists, mostly by upvoting. They find or create new items to add and cast the first vote for these items.
| [//ru.wikiquote.org/wiki/Special:Recentchanges 363405]
* Editors create new lists and make other structural changes to the site as well as non-trivial edits in Wikidata.
| [//ru.wikiquote.org/wiki/Special:Listadmins 7]
* Developers create templates, Lua scripts, and special lists, which mostly define new list types.
| [//ru.wikiquote.org/wiki/Special:Listusers 92369]
 
| [//ru.wikiquote.org/wiki/Special:ActiveUsers 65]
Login is optional, because supporters don't need it. Curators who use the site only temporarily, for example to build a list for immediate use, don't need login either.
| [//ru.wikiquote.org/wiki/Special:FileList 0]
 
|- style="text-align: right;"
==Technical details==
| 5
TODO: MediaWiki extensions, querying and data downloads, integration with sister projects
| [[w:Czech language|Czech]]
 
| class="plainlinksneverexpand" | [{{fullurl:cs:Čeština}} Čeština]
===Schema===
| [//cs.wikiquote.org/wiki/ cs]
Wikirank vote would have the following structure:
| [//cs.wikiquote.org/wiki/Special:Statistics?action=raw '''10554 ''']
 
| 14430
username class instance timestamp IP action
| [//cs.wikiquote.org/wiki/Special:Recentchanges 119331]
 
| [//cs.wikiquote.org/wiki/Special:Listadmins 3]
For example:
| [//cs.wikiquote.org/wiki/Special:Listusers 15834]
 
| [//cs.wikiquote.org/wiki/Special:ActiveUsers 32]
WikirankUser7 Q123 Q456 20210704112564 1.2.3.4 upvote
| [//cs.wikiquote.org/wiki/Special:FileList 1]
 
|- style="text-align: right;"
Fields:
| 6
* username - who cast the vote, username (logged in users) or cookie (logged out users)
| [[w:Persian language|Persian]]
* class - Wikidata Q-item identifying the whole list
| class="plainlinksneverexpand" | [{{fullurl:fa:فارسی}} فارسی]
* instance - Wikidata Q-item identifying single list item
| [//fa.wikiquote.org/wiki/ fa]
* timestamp - time when the vote was cast
| [//fa.wikiquote.org/wiki/Special:Statistics?action=raw '''8806 ''']
* IP - IP address, from which the vote was cast
| 30406
* action - one of: upvote, downvote, withdraw vote
| [//fa.wikiquote.org/wiki/Special:Recentchanges 160875]
 
| [//fa.wikiquote.org/wiki/Special:Listadmins 4]
Timestamps and IP addresses allow for interesting list views (regional segments, trending) and they also help fight spam. Users can opt out from IP address storage, in which case the IP address will be anonymized (last bits zeroed). Doing so will slightly increase chance that the vote will be filtered by spam filters.
| [//fa.wikiquote.org/wiki/Special:Listusers 24814]
 
| [//fa.wikiquote.org/wiki/Special:ActiveUsers 29]
Vote data is private and visible only to the user. Wikirank will expose it only in aggregate form:
| [//fa.wikiquote.org/wiki/Special:FileList 39]
 
|- style="text-align: right;"
class instance upvotes downvotes filtered
| 7
 
| [[w:German language|German]]
For example:
| class="plainlinksneverexpand" | [{{fullurl:de:Deutsche_Sprache}} Deutsch]
 
| [//de.wikiquote.org/wiki/ de]
Q123 Q456 1070 60 145
| [//de.wikiquote.org/wiki/Special:Statistics?action=raw '''7866 ''']
 
| 20149
If the user changes their mind several times, their upvote/downvote is of course counted only once. The ''filtered'' field counts users whose votes have been filtered out by spam filters. Where needed, this aggregate data will be also available segmented by time and/or region.
| [//de.wikiquote.org/wiki/Special:Recentchanges 515652]
 
| [//de.wikiquote.org/wiki/Special:Listadmins 6]
===Performance===
| [//de.wikiquote.org/wiki/Special:Listusers 59318]
Assuming the site grows very popular and amasses one trillion votes, votes will take up a few dozen terrabytes. With spam and indexing overhead, up to a petabyte of storage might be consumed. Most data will be historical and inert. Active data will be much smaller. Ingestion rate of up to 100,000 votes/second can be handled by current hardware and suitable data layout. Query cost should be negligible with suitable data layout and caching.
| [//de.wikiquote.org/wiki/Special:ActiveUsers 35]
 
| [//de.wikiquote.org/wiki/Special:FileList 17]
==Privacy==
|- style="text-align: right;"
Existing voting systems usually do not offer any guarantees of privacy. Social networks either publish the whole list of voters or at least reveal which friends (connected users) voted for the item. Votes are used to target advertising and they are thus indirectly revealed to advertisers. Wikirank sets higher standard of privacy by never showing private lists to anyone other than the user.
| 8
 
| [[w:Portuguese language|Portuguese]]
Wikimedia servers already store some private data in the form of password hashes and IP addresses. Wikirank is different in that most of its data will be private. This is essential for the project to function, because private lists will end up containing sensitive information, e.g. drug lists, medical condition lists, lists related to intimate life. Leaks of this data would erode trust and undermine the project. High standards of privacy protection and data security are therefore essential to the success of the project.
| class="plainlinksneverexpand" | [{{fullurl:pt:Língua_portuguesa}} Português]
 
| [//pt.wikiquote.org/wiki/ pt]
But before considering data protection, let's first consider why is the data needed in the first place. Why cannot Wikirank perform spam filtering at the moment of voting and then just store vote statistics? If preventing duplicate votes is a concern, why cannot Wikirank use one of the anonymizing counters that perform lossy hashing of IP addresses and/or user names? The reason Wikirank needs to keep detailed vote data is that Wikirank is a curated list service, not just the usual "like" or "thumbs up" service. You cannot curate a list if you cannot see it. You cannot see the list if it is not recorded in database in full detail. Wikirank might offer anonymized vote casting in the future, but its core function will always be to collect full curated lists.
| [//pt.wikiquote.org/wiki/Special:Statistics?action=raw '''7552 ''']
 
| 28753
Users would be of course given control over their personal data. Wikirank would allow users to examine, download, and delete their private data or any part of it. Secure and caution-encouraging procedure would allow migration of private data to another service upon user's request. Option to minimize data collection would be also provided. This would cause Wikirank to anonymize IP addresses (by zeroing the least significant bits) and timestamps (by rounding) and to keep only current state of private lists. This option would come with a few downsides: loss of undo and versioning functionality, removal of one's historical votes from older time segments, and slightly higher chance that one's votes would be flagged by spam filters. Some aspects of this opt-out functionality would be also activated automatically where required by privacy laws.
| [//pt.wikiquote.org/wiki/Special:Recentchanges 175021]
 
| [//pt.wikiquote.org/wiki/Special:Listadmins 3]
Protecting private data for several decades is challenging. Servers and processes touching raw Wikirank data would have to meet security standards that are not needed in other Wikimedia projects. Developers and administrators would not have access to private lists. Site administrators would be only able to examine summary statistics when flagging suspicious votes. Spam filters would have full access to raw data, but they would run in isolated environment, unable to communicate with outside world.
| [//pt.wikiquote.org/wiki/Special:Listusers 34550]
 
| [//pt.wikiquote.org/wiki/Special:ActiveUsers 38]
Private lists of logged out users are tied to browser cookie rather than IP address. Besides being a good match for user's expectations of site behavior, this prevents accidental leaks of private lists when user's IP address is rotated by their ISP.
| [//pt.wikiquote.org/wiki/Special:FileList 19]
 
|- style="text-align: right;"
Since the first votes on a list tend to be correlated with public activities like creating the list page, its Q-item, and Q-items for all list items, the first vote for most items can be deanonymized. This is particularly problematic on fringe lists with naturally low vote count. Wikirank will use two mechanism to protect users against such deanonymization. Firstly, counting of new votes will be randomly delayed for long enough to make it unclear who casted the vote. Secondly, Wikirank will by default hide vote count of list items with too few votes (say, less than 3). Users will be asked for permission before their vote is shown on such items. It is expected that people interested in curation more than privacy will grant the permission. Minimum vote count will be randomized a bit to prevent active deanonymization by casting fake votes.
| 9
 
| [[w:French language|French]]
==Spam filters==
| class="plainlinksneverexpand" | [{{fullurl:fr:Français}} Français]
Early versions of Wikirank will run without spam filter, because the initial site will not be popular enough to attract spammers. Spam filters should be developed in response to actual spamming strategies observed in practice. This section provides some hints on how such spam filters might work.
| [//fr.wikiquote.org/wiki/ fr]
 
| [//fr.wikiquote.org/wiki/Special:Statistics?action=raw '''7149 ''']
Spam filters work on user level, not vote level, because single user is either a spammer or regular user. Decisions about individual users however cannot be made, because privacy protection means nobody can look at user's private lists. Users are instead automatically scored using a number of trust signals and votes from users below some trust threshold are ignored. Trust signals, positive and negative, include:
| 29139
 
| [//fr.wikiquote.org/wiki/Special:Recentchanges 326183]
* casting a suspicious vote (see below)
| [//fr.wikiquote.org/wiki/Special:Listadmins 7]
* activities other than voting (editing, activities on sister projects)
| [//fr.wikiquote.org/wiki/Special:Listusers 65037]
* passive technical signals: User-Agent, presence of cookies, etc.
| [//fr.wikiquote.org/wiki/Special:ActiveUsers 57]
* passing or failing an occasional CAPTCHA (only when trust is low)
| [//fr.wikiquote.org/wiki/Special:FileList 0]
* voting patterns similar to other users with high/low trust
|- style="text-align: right;"
 
| 10
Votes can be flagged as suspicious, but this is not done individually per vote. Administrators can instead review suspicious activity, especially temporal and spatial spikes, and flag entire sets of votes as suspicious.
| [[w:Ukrainian language|Ukrainian]]
 
| class="plainlinksneverexpand" | [{{fullurl:uk:Українська_мова}} Українська]
Since no signal is reliable, only total trust score matters. Scoring model is trained on hard signals (CAPTCHA, non-trivial edits, bot User-Agent, known fraud cases).
| [//uk.wikiquote.org/wiki/ uk]
 
| [//uk.wikiquote.org/wiki/Special:Statistics?action=raw '''7070 ''']
Bugs and flaws in spam filters do not cause permanent damage. All filtering scores are periodically recalculated in order to reflect improvements in spam filter logic. Some information may be discarded for privacy reasons. Such information loss events should leave behind a flag, so that spam filters know that some data is missing.
| 32268
| [//uk.wikiquote.org/wiki/Special:Recentchanges 111779]
| [//uk.wikiquote.org/wiki/Special:Listadmins 6]
| [//uk.wikiquote.org/wiki/Special:Listusers 14544]
| [//uk.wikiquote.org/wiki/Special:ActiveUsers 23]
| [//uk.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 11
| [[w:Estonian language|Estonian]]
| class="plainlinksneverexpand" | [{{fullurl:et:Eesti_keel}} Eesti]
| [//et.wikiquote.org/wiki/ et]
| [//et.wikiquote.org/wiki/Special:Statistics?action=raw '''6907 ''']
| 11707
| [//et.wikiquote.org/wiki/Special:Recentchanges 66046]
| [//et.wikiquote.org/wiki/Special:Listadmins 3]
| [//et.wikiquote.org/wiki/Special:Listusers 3309]
| [//et.wikiquote.org/wiki/Special:ActiveUsers 15]
| [//et.wikiquote.org/wiki/Special:FileList 3]
|- style="text-align: right;"
| 12
| [[w:Spanish language|Spanish]]
| class="plainlinksneverexpand" | [{{fullurl:es:Idioma_español}} Español]
| [//es.wikiquote.org/wiki/ es]
| [//es.wikiquote.org/wiki/Special:Statistics?action=raw '''6592 ''']
| 30158
| [//es.wikiquote.org/wiki/Special:Recentchanges 441052]
| [//es.wikiquote.org/wiki/Special:Listadmins 6]
| [//es.wikiquote.org/wiki/Special:Listusers 83987]
| [//es.wikiquote.org/wiki/Special:ActiveUsers 46]
| [//es.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 13
| [[w:Hebrew language|Hebrew]]
| class="plainlinksneverexpand" | [{{fullurl:he:עברית}} עברית]
| [//he.wikiquote.org/wiki/ he]
| [//he.wikiquote.org/wiki/Special:Statistics?action=raw '''5557 ''']
| 14360
| [//he.wikiquote.org/wiki/Special:Recentchanges 172512]
| [//he.wikiquote.org/wiki/Special:Listadmins 4]
| [//he.wikiquote.org/wiki/Special:Listusers 20376]
| [//he.wikiquote.org/wiki/Special:ActiveUsers 45]
| [//he.wikiquote.org/wiki/Special:FileList 447]
|- style="text-align: right;"
| 14
| [[w:Slovak language|Slovak]]
| class="plainlinksneverexpand" | [{{fullurl:sk:Slovenčina}} Slovenčina]
| [//sk.wikiquote.org/wiki/ sk]
| [//sk.wikiquote.org/wiki/Special:Statistics?action=raw '''4498 ''']
| 7403
| [//sk.wikiquote.org/wiki/Special:Recentchanges 91709]
| [//sk.wikiquote.org/wiki/Special:Listadmins 3]
| [//sk.wikiquote.org/wiki/Special:Listusers 6813]
| [//sk.wikiquote.org/wiki/Special:ActiveUsers 10]
| [//sk.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 15
| [[w:Turkish language|Turkish]]
| class="plainlinksneverexpand" | [{{fullurl:tr:Türkçe}} Türkçe]
| [//tr.wikiquote.org/wiki/ tr]
| [//tr.wikiquote.org/wiki/Special:Statistics?action=raw '''4372 ''']
| 22035
| [//tr.wikiquote.org/wiki/Special:Recentchanges 180124]
| [//tr.wikiquote.org/wiki/Special:Listadmins 4]
| [//tr.wikiquote.org/wiki/Special:Listusers 28743]
| [//tr.wikiquote.org/wiki/Special:ActiveUsers 36]
| [//tr.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 16
| [[w:Bosnian language|Bosnian]]
| class="plainlinksneverexpand" | [{{fullurl:bs:Bosanski_jezik}} Bosanski]
| [//bs.wikiquote.org/wiki/ bs]
| [//bs.wikiquote.org/wiki/Special:Statistics?action=raw '''4160 ''']
| 8103
| [//bs.wikiquote.org/wiki/Special:Recentchanges 59796]
| [//bs.wikiquote.org/wiki/Special:Listadmins 2]
| [//bs.wikiquote.org/wiki/Special:Listusers 7514]
| [//bs.wikiquote.org/wiki/Special:ActiveUsers 6]
| [//bs.wikiquote.org/wiki/Special:FileList 286]
|- style="text-align: right;"
| 17
| [[w:Catalan language|Catalan]]
| class="plainlinksneverexpand" | [{{fullurl:ca:Català}} Català]
| [//ca.wikiquote.org/wiki/ ca]
| [//ca.wikiquote.org/wiki/Special:Statistics?action=raw '''3768 ''']
| 11917
| [//ca.wikiquote.org/wiki/Special:Recentchanges 132097]
| [//ca.wikiquote.org/wiki/Special:Listadmins 4]
| [//ca.wikiquote.org/wiki/Special:Listusers 10088]
| [//ca.wikiquote.org/wiki/Special:ActiveUsers 12]
| [//ca.wikiquote.org/wiki/Special:FileList 8]
|- style="text-align: right;"
| 18
| [[w:Finnish language|Finnish]]
| class="plainlinksneverexpand" | [{{fullurl:fi:Suomen_kieli}} Suomi]
| [//fi.wikiquote.org/wiki/ fi]
| [//fi.wikiquote.org/wiki/Special:Statistics?action=raw '''3402 ''']
| 6965
| [//fi.wikiquote.org/wiki/Special:Recentchanges 95777]
| [//fi.wikiquote.org/wiki/Special:Listadmins 4]
| [//fi.wikiquote.org/wiki/Special:Listusers 8002]
| [//fi.wikiquote.org/wiki/Special:ActiveUsers 13]
| [//fi.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 19
| [[w:Esperanto language|Esperanto]]
| class="plainlinksneverexpand" | [{{fullurl:eo:Esperanto}} Esperanto]
| [//eo.wikiquote.org/wiki/ eo]
| [//eo.wikiquote.org/wiki/Special:Statistics?action=raw '''3188 ''']
| 5926
| [//eo.wikiquote.org/wiki/Special:Recentchanges 37488]
| [//eo.wikiquote.org/wiki/Special:Listadmins 2]
| [//eo.wikiquote.org/wiki/Special:Listusers 4421]
| [//eo.wikiquote.org/wiki/Special:ActiveUsers 14]
| [//eo.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 20
| [[w:Azerbaijani language|Azerbaijani]]
| class="plainlinksneverexpand" | [{{fullurl:az:Azərbaycan_dili}} Azərbaycanca]
| [//az.wikiquote.org/wiki/ az]
| [//az.wikiquote.org/wiki/Special:Statistics?action=raw '''3138 ''']
| 8371
| [//az.wikiquote.org/wiki/Special:Recentchanges 101053]
| [//az.wikiquote.org/wiki/Special:Listadmins 6]
| [//az.wikiquote.org/wiki/Special:Listusers 6154]
| [//az.wikiquote.org/wiki/Special:ActiveUsers 12]
| [//az.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 21
| [[w:Slovenian language|Slovenian]]
| class="plainlinksneverexpand" | [{{fullurl:sl:Slovenščina}} Slovenščina]
| [//sl.wikiquote.org/wiki/ sl]
| [//sl.wikiquote.org/wiki/Special:Statistics?action=raw '''2886 ''']
| 7189
| [//sl.wikiquote.org/wiki/Special:Recentchanges 41515]
| [//sl.wikiquote.org/wiki/Special:Listadmins 1]
| [//sl.wikiquote.org/wiki/Special:Listusers 4602]
| [//sl.wikiquote.org/wiki/Special:ActiveUsers 9]
| [//sl.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 22
| [[w:Lithuanian language|Lithuanian]]
| class="plainlinksneverexpand" | [{{fullurl:lt:Lietuvių_kalba}} Lietuvių]
| [//lt.wikiquote.org/wiki/ lt]
| [//lt.wikiquote.org/wiki/Special:Statistics?action=raw '''2813 ''']
| 6118
| [//lt.wikiquote.org/wiki/Special:Recentchanges 76117]
| [//lt.wikiquote.org/wiki/Special:Listadmins 2]
| [//lt.wikiquote.org/wiki/Special:Listusers 4317]
| [//lt.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//lt.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 23
| [[w:Chinese language|Chinese]]
| class="plainlinksneverexpand" | [{{fullurl:zh:汉语}} 中文]
| [//zh.wikiquote.org/wiki/ zh]
| [//zh.wikiquote.org/wiki/Special:Statistics?action=raw '''2741 ''']
| 13657
| [//zh.wikiquote.org/wiki/Special:Recentchanges 122200]
| [//zh.wikiquote.org/wiki/Special:Listadmins 4]
| [//zh.wikiquote.org/wiki/Special:Listusers 45664]
| [//zh.wikiquote.org/wiki/Special:ActiveUsers 46]
| [//zh.wikiquote.org/wiki/Special:FileList 4]
|- style="text-align: right;"
| 24
| [[w:Arabic language|Arabic]]
| class="plainlinksneverexpand" | [{{fullurl:ar:لغة_عربية}} العربية]
| [//ar.wikiquote.org/wiki/ ar]
| [//ar.wikiquote.org/wiki/Special:Statistics?action=raw '''2613 ''']
| 44391
| [//ar.wikiquote.org/wiki/Special:Recentchanges 178510]
| [//ar.wikiquote.org/wiki/Special:Listadmins 4]
| [//ar.wikiquote.org/wiki/Special:Listusers 27245]
| [//ar.wikiquote.org/wiki/Special:ActiveUsers 26]
| [//ar.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 25
| [[w:Bulgarian language|Bulgarian]]
| class="plainlinksneverexpand" | [{{fullurl:bg:Български_език}} Български]
| [//bg.wikiquote.org/wiki/ bg]
| [//bg.wikiquote.org/wiki/Special:Statistics?action=raw '''2303 ''']
| 11029
| [//bg.wikiquote.org/wiki/Special:Recentchanges 87856]
| [//bg.wikiquote.org/wiki/Special:Listadmins 5]
| [//bg.wikiquote.org/wiki/Special:Listusers 9738]
| [//bg.wikiquote.org/wiki/Special:ActiveUsers 13]
| [//bg.wikiquote.org/wiki/Special:FileList 5]
|- style="text-align: right;"
| 26
| [[w:Croatian language|Croatian]]
| class="plainlinksneverexpand" | [{{fullurl:hr:Hrvatski_jezik}} Hrvatski]
| [//hr.wikiquote.org/wiki/ hr]
| [//hr.wikiquote.org/wiki/Special:Statistics?action=raw '''2085 ''']
| 3994
| [//hr.wikiquote.org/wiki/Special:Recentchanges 31061]
| [//hr.wikiquote.org/wiki/Special:Listadmins 2]
| [//hr.wikiquote.org/wiki/Special:Listusers 5021]
| [//hr.wikiquote.org/wiki/Special:ActiveUsers 8]
| [//hr.wikiquote.org/wiki/Special:FileList 4]
|- style="text-align: right;"
| 27
| [[w:Armenian language|Armenian]]
| class="plainlinksneverexpand" | [{{fullurl:hy:Հայերեն}} Հայերեն]
| [//hy.wikiquote.org/wiki/ hy]
| [//hy.wikiquote.org/wiki/Special:Statistics?action=raw '''2072 ''']
| 8822
| [//hy.wikiquote.org/wiki/Special:Recentchanges 175320]
| [//hy.wikiquote.org/wiki/Special:Listadmins 2]
| [//hy.wikiquote.org/wiki/Special:Listusers 4971]
| [//hy.wikiquote.org/wiki/Special:ActiveUsers 8]
| [//hy.wikiquote.org/wiki/Special:FileList 99]
|- style="text-align: right;"
| 28
| [[w:Greek language|Greek]]
| class="plainlinksneverexpand" | [{{fullurl:el:Ελληνική_γλώσσα}} Ελληνικά]
| [//el.wikiquote.org/wiki/ el]
| [//el.wikiquote.org/wiki/Special:Statistics?action=raw '''1829 ''']
| 3910
| [//el.wikiquote.org/wiki/Special:Recentchanges 33510]
| [//el.wikiquote.org/wiki/Special:Listadmins 1]
| [//el.wikiquote.org/wiki/Special:Listusers 7894]
| [//el.wikiquote.org/wiki/Special:ActiveUsers 9]
| [//el.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 29
| [[w:Sundanese language|Sundanese]]
| class="plainlinksneverexpand" | [{{fullurl:su:Basa_Sunda}} Basa Sunda]
| [//su.wikiquote.org/wiki/ su]
| [//su.wikiquote.org/wiki/Special:Statistics?action=raw '''1793 ''']
| 2830
| [//su.wikiquote.org/wiki/Special:Recentchanges 9889]
| [//su.wikiquote.org/wiki/Special:Listadmins 1]
| [//su.wikiquote.org/wiki/Special:Listusers 1651]
| [//su.wikiquote.org/wiki/Special:ActiveUsers 7]
| [//su.wikiquote.org/wiki/Special:FileList 9]
|- style="text-align: right;"
| 30
| [[w:Norwegian (Nynorsk) language|Norwegian (Nynorsk)]]
| class="plainlinksneverexpand" | [{{fullurl:nn:Nynorsk}} Nynorsk]
| [//nn.wikiquote.org/wiki/ nn]
| [//nn.wikiquote.org/wiki/Special:Statistics?action=raw '''1749 ''']
| 4098
| [//nn.wikiquote.org/wiki/Special:Recentchanges 18956]
| [//nn.wikiquote.org/wiki/Special:Listadmins 2]
| [//nn.wikiquote.org/wiki/Special:Listusers 2609]
| [//nn.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//nn.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 31
| [[w:Indonesian language|Indonesian]]
| class="plainlinksneverexpand" | [{{fullurl:id:Bahasa_Indonesia}} Bahasa Indonesia]
| [//id.wikiquote.org/wiki/ id]
| [//id.wikiquote.org/wiki/Special:Statistics?action=raw '''1656 ''']
| 4255
| [//id.wikiquote.org/wiki/Special:Recentchanges 30365]
| [//id.wikiquote.org/wiki/Special:Listadmins 2]
| [//id.wikiquote.org/wiki/Special:Listusers 14898]
| [//id.wikiquote.org/wiki/Special:ActiveUsers 23]
| [//id.wikiquote.org/wiki/Special:FileList 5]
|- style="text-align: right;"
| 32
| [[w:Swedish language|Swedish]]
| class="plainlinksneverexpand" | [{{fullurl:sv:Svenska}} Svenska]
| [//sv.wikiquote.org/wiki/ sv]
| [//sv.wikiquote.org/wiki/Special:Statistics?action=raw '''1379 ''']
| 3603
| [//sv.wikiquote.org/wiki/Special:Recentchanges 32228]
| [//sv.wikiquote.org/wiki/Special:Listadmins 2]
| [//sv.wikiquote.org/wiki/Special:Listusers 9248]
| [//sv.wikiquote.org/wiki/Special:ActiveUsers 10]
| [//sv.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 33
| [[w:Limburgish language|Limburgish]]
| class="plainlinksneverexpand" | [{{fullurl:li:Limburgs}} Limburgs]
| [//li.wikiquote.org/wiki/ li]
| [//li.wikiquote.org/wiki/Special:Statistics?action=raw '''1328 ''']
| 2941
| [//li.wikiquote.org/wiki/Special:Recentchanges 6477]
| [//li.wikiquote.org/wiki/Special:Listadmins 2]
| [//li.wikiquote.org/wiki/Special:Listusers 1981]
| [//li.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//li.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 34
| [[w:Hungarian language|Hungarian]]
| class="plainlinksneverexpand" | [{{fullurl:hu:Magyar_nyelv}} Magyar]
| [//hu.wikiquote.org/wiki/ hu]
| [//hu.wikiquote.org/wiki/Special:Statistics?action=raw '''1265 ''']
| 4941
| [//hu.wikiquote.org/wiki/Special:Recentchanges 52016]
| [//hu.wikiquote.org/wiki/Special:Listadmins 3]
| [//hu.wikiquote.org/wiki/Special:Listusers 11146]
| [//hu.wikiquote.org/wiki/Special:ActiveUsers 14]
| [//hu.wikiquote.org/wiki/Special:FileList 100]
|- style="text-align: right;"
| 35
| [[w:Korean language|Korean]]
| class="plainlinksneverexpand" | [{{fullurl:ko:한국어}} 한국어]
| [//ko.wikiquote.org/wiki/ ko]
| [//ko.wikiquote.org/wiki/Special:Statistics?action=raw '''1054 ''']
| 4087
| [//ko.wikiquote.org/wiki/Special:Recentchanges 30933]
| [//ko.wikiquote.org/wiki/Special:Listadmins 2]
| [//ko.wikiquote.org/wiki/Special:Listusers 5764]
| [//ko.wikiquote.org/wiki/Special:ActiveUsers 11]
| [//ko.wikiquote.org/wiki/Special:FileList 10]
|- style="text-align: right;"
| 36
| [[w:Dutch language|Dutch]]
| class="plainlinksneverexpand" | [{{fullurl:nl:Nederlands}} Nederlands]
| [//nl.wikiquote.org/wiki/ nl]
| [//nl.wikiquote.org/wiki/Special:Statistics?action=raw '''1048 ''']
| 5581
| [//nl.wikiquote.org/wiki/Special:Recentchanges 88582]
| [//nl.wikiquote.org/wiki/Special:Listadmins 4]
| [//nl.wikiquote.org/wiki/Special:Listusers 12507]
| [//nl.wikiquote.org/wiki/Special:ActiveUsers 10]
| [//nl.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 37
| [[w:Japanese language|Japanese]]
| class="plainlinksneverexpand" | [{{fullurl:ja:日本語}} 日本語]
| [//ja.wikiquote.org/wiki/ ja]
| [//ja.wikiquote.org/wiki/Special:Statistics?action=raw '''965 ''']
| 4368
| [//ja.wikiquote.org/wiki/Special:Recentchanges 35007]
| [//ja.wikiquote.org/wiki/Special:Listadmins 3]
| [//ja.wikiquote.org/wiki/Special:Listusers 17910]
| [//ja.wikiquote.org/wiki/Special:ActiveUsers 27]
| [//ja.wikiquote.org/wiki/Special:FileList 7]
|- style="text-align: right;"
| 38
| [[w:Tamil language|Tamil]]
| class="plainlinksneverexpand" | [{{fullurl:ta:தமிழ்}} தமிழ்]
| [//ta.wikiquote.org/wiki/ ta]
| [//ta.wikiquote.org/wiki/Special:Statistics?action=raw '''958 ''']
| 3871
| [//ta.wikiquote.org/wiki/Special:Recentchanges 36737]
| [//ta.wikiquote.org/wiki/Special:Listadmins 1]
| [//ta.wikiquote.org/wiki/Special:Listusers 3615]
| [//ta.wikiquote.org/wiki/Special:ActiveUsers 7]
| [//ta.wikiquote.org/wiki/Special:FileList 8]
|- style="text-align: right;"
| 39
| [[w:Latin language|Latin]]
| class="plainlinksneverexpand" | [{{fullurl:la:Lingua_Latina}} Latina]
| [//la.wikiquote.org/wiki/ la]
| [//la.wikiquote.org/wiki/Special:Statistics?action=raw '''957 ''']
| 2161
| [//la.wikiquote.org/wiki/Special:Recentchanges 13154]
| [//la.wikiquote.org/wiki/Special:Listadmins 1]
| [//la.wikiquote.org/wiki/Special:Listusers 3274]
| [//la.wikiquote.org/wiki/Special:ActiveUsers 4]
| [//la.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 40
| [[w:Sakha language|Sakha]]
| class="plainlinksneverexpand" | [{{fullurl:sah:Саха_тыла}} Саха тыла (Saxa Tyla)]
| [//sah.wikiquote.org/wiki/ sah]
| [//sah.wikiquote.org/wiki/Special:Statistics?action=raw '''924 ''']
| 1438
| [//sah.wikiquote.org/wiki/Special:Recentchanges 6984]
| [//sah.wikiquote.org/wiki/Special:Listadmins 1]
| [//sah.wikiquote.org/wiki/Special:Listusers 595]
| [//sah.wikiquote.org/wiki/Special:ActiveUsers 1]
| [//sah.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 41
| [[w:Serbian language|Serbian]]
| class="plainlinksneverexpand" | [{{fullurl:sr:Српски_језик}} Српски / Srpski]
| [//sr.wikiquote.org/wiki/ sr]
| [//sr.wikiquote.org/wiki/Special:Statistics?action=raw '''615 ''']
| 2340
| [//sr.wikiquote.org/wiki/Special:Recentchanges 27134]
| [//sr.wikiquote.org/wiki/Special:Listadmins 7]
| [//sr.wikiquote.org/wiki/Special:Listusers 4854]
| [//sr.wikiquote.org/wiki/Special:ActiveUsers 6]
| [//sr.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 42
| [[w:Simple English language|Simple English]]
| class="plainlinksneverexpand" | [{{fullurl:simple:Wikipedia:Simple_English_Wikipedia}} Simple English]
| [//simple.wikiquote.org/wiki/ simple]
| [//simple.wikiquote.org/wiki/Special:Statistics?action=raw '''588 ''']
| 5943
| [//simple.wikiquote.org/wiki/Special:Recentchanges 34192]
| [//simple.wikiquote.org/wiki/Special:Listadmins 1]
| [//simple.wikiquote.org/wiki/Special:Listusers 2691]
| [//simple.wikiquote.org/wiki/Special:ActiveUsers 2]
| [//simple.wikiquote.org/wiki/Special:FileList 5]
|- style="text-align: right;"
| 43
| [[w:Gujarati language|Gujarati]]
| class="plainlinksneverexpand" | [{{fullurl:gu:ગુજરાતી_ભાષા}} ગુજરાતી]
| [//gu.wikiquote.org/wiki/ gu]
| [//gu.wikiquote.org/wiki/Special:Statistics?action=raw '''549 ''']
| 2599
| [//gu.wikiquote.org/wiki/Special:Recentchanges 17773]
| [//gu.wikiquote.org/wiki/Special:Listadmins 1]
| [//gu.wikiquote.org/wiki/Special:Listusers 2307]
| [//gu.wikiquote.org/wiki/Special:ActiveUsers 4]
| [//gu.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 44
| [[w:Galician language|Galician]]
| class="plainlinksneverexpand" | [{{fullurl:gl:Lingua_galega}} Galego]
| [//gl.wikiquote.org/wiki/ gl]
| [//gl.wikiquote.org/wiki/Special:Statistics?action=raw '''542 ''']
| 2963
| [//gl.wikiquote.org/wiki/Special:Recentchanges 21488]
| [//gl.wikiquote.org/wiki/Special:Listadmins 1]
| [//gl.wikiquote.org/wiki/Special:Listusers 2988]
| [//gl.wikiquote.org/wiki/Special:ActiveUsers 3]
| [//gl.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 45
| [[w:Urdu language|Urdu]]
| class="plainlinksneverexpand" | [{{fullurl:ur:اردو}} اردو]
| [//ur.wikiquote.org/wiki/ ur]
| [//ur.wikiquote.org/wiki/Special:Statistics?action=raw '''499 ''']
| 2839
| [//ur.wikiquote.org/wiki/Special:Recentchanges 11302]
| [//ur.wikiquote.org/wiki/Special:Listadmins 3]
| [//ur.wikiquote.org/wiki/Special:Listusers 2295]
| [//ur.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//ur.wikiquote.org/wiki/Special:FileList 9]
|- style="text-align: right;"
| 46
| [[w:Telugu language|Telugu]]
| class="plainlinksneverexpand" | [{{fullurl:te:తెలుగు}} తెలుగు]
| [//te.wikiquote.org/wiki/ te]
| [//te.wikiquote.org/wiki/Special:Statistics?action=raw '''439 ''']
| 3409
| [//te.wikiquote.org/wiki/Special:Recentchanges 17191]
| [//te.wikiquote.org/wiki/Special:Listadmins 1]
| [//te.wikiquote.org/wiki/Special:Listusers 2404]
| [//te.wikiquote.org/wiki/Special:ActiveUsers 3]
| [//te.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 47
| [[w:Belarusian language|Belarusian]]
| class="plainlinksneverexpand" | [{{fullurl:be:Беларуская_мова}} Беларуская]
| [//be.wikiquote.org/wiki/ be]
| [//be.wikiquote.org/wiki/Special:Statistics?action=raw '''377 ''']
| 1943
| [//be.wikiquote.org/wiki/Special:Recentchanges 12261]
| [//be.wikiquote.org/wiki/Special:Listadmins 1]
| [//be.wikiquote.org/wiki/Special:Listusers 3105]
| [//be.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//be.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 48
| [[w:Welsh language|Welsh]]
| class="plainlinksneverexpand" | [{{fullurl:cy:Cymraeg}} Cymraeg]
| [//cy.wikiquote.org/wiki/ cy]
| [//cy.wikiquote.org/wiki/Special:Statistics?action=raw '''366 ''']
| 1358
| [//cy.wikiquote.org/wiki/Special:Recentchanges 8269]
| [//cy.wikiquote.org/wiki/Special:Listadmins 1]
| [//cy.wikiquote.org/wiki/Special:Listusers 2179]
| [//cy.wikiquote.org/wiki/Special:ActiveUsers 4]
| [//cy.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 49
| [[w:Norwegian (Bokmål) language|Norwegian (Bokmål)]]
| class="plainlinksneverexpand" | [{{fullurl:no:Norsk}} Norsk (Bokmål)]
| [//no.wikiquote.org/wiki/ no]
| [//no.wikiquote.org/wiki/Special:Statistics?action=raw '''337 ''']
| 2955
| [//no.wikiquote.org/wiki/Special:Recentchanges 26074]
| [//no.wikiquote.org/wiki/Special:Listadmins 2]
| [//no.wikiquote.org/wiki/Special:Listusers 4799]
| [//no.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//no.wikiquote.org/wiki/Special:FileList 3]
|- style="text-align: right;"
| 50
| [[w:Malayalam language|Malayalam]]
| class="plainlinksneverexpand" | [{{fullurl:ml:മലയാളം}} മലയാളം]
| [//ml.wikiquote.org/wiki/ ml]
| [//ml.wikiquote.org/wiki/Special:Statistics?action=raw '''316 ''']
| 3421
| [//ml.wikiquote.org/wiki/Special:Recentchanges 21370]
| [//ml.wikiquote.org/wiki/Special:Listadmins 2]
| [//ml.wikiquote.org/wiki/Special:Listusers 4651]
| [//ml.wikiquote.org/wiki/Special:ActiveUsers 4]
| [//ml.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 51
| [[w:Albanian language|Albanian]]
| class="plainlinksneverexpand" | [{{fullurl:sq:Gjuha_shqipe}} Shqip]
| [//sq.wikiquote.org/wiki/ sq]
| [//sq.wikiquote.org/wiki/Special:Statistics?action=raw '''303 ''']
| 3021
| [//sq.wikiquote.org/wiki/Special:Recentchanges 23379]
| [//sq.wikiquote.org/wiki/Special:Listadmins 2]
| [//sq.wikiquote.org/wiki/Special:Listusers 2420]
| [//sq.wikiquote.org/wiki/Special:ActiveUsers 4]
| [//sq.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 52
| [[w:Vietnamese language|Vietnamese]]
| class="plainlinksneverexpand" | [{{fullurl:vi:Tiếng_Việt}} Tiếng Việt]
| [//vi.wikiquote.org/wiki/ vi]
| [//vi.wikiquote.org/wiki/Special:Statistics?action=raw '''272 ''']
| 3660
| [//vi.wikiquote.org/wiki/Special:Recentchanges 52551]
| [//vi.wikiquote.org/wiki/Special:Listadmins 1]
| [//vi.wikiquote.org/wiki/Special:Listusers 11128]
| [//vi.wikiquote.org/wiki/Special:ActiveUsers 17]
| [//vi.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 53
| [[w:Thai language|Thai]]
| class="plainlinksneverexpand" | [{{fullurl:th:ภาษาไทย}} ไทย]
| [//th.wikiquote.org/wiki/ th]
| [//th.wikiquote.org/wiki/Special:Statistics?action=raw '''266 ''']
| 9259
| [//th.wikiquote.org/wiki/Special:Recentchanges 43525]
| [//th.wikiquote.org/wiki/Special:Listadmins 2]
| [//th.wikiquote.org/wiki/Special:Listusers 4960]
| [//th.wikiquote.org/wiki/Special:ActiveUsers 9]
| [//th.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 54
| [[w:Kannada language|Kannada]]
| class="plainlinksneverexpand" | [{{fullurl:kn:ಕನ್ನಡ}} ಕನ್ನಡ]
| [//kn.wikiquote.org/wiki/ kn]
| [//kn.wikiquote.org/wiki/Special:Statistics?action=raw '''265 ''']
| 991
| [//kn.wikiquote.org/wiki/Special:Recentchanges 8433]
| [//kn.wikiquote.org/wiki/Special:Listadmins 1]
| [//kn.wikiquote.org/wiki/Special:Listusers 1797]
| [//kn.wikiquote.org/wiki/Special:ActiveUsers 4]
| [//kn.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 55
| [[w:Romanian language|Romanian]]
| class="plainlinksneverexpand" | [{{fullurl:ro:Limba_română}} Română]
| [//ro.wikiquote.org/wiki/ ro]
| [//ro.wikiquote.org/wiki/Special:Statistics?action=raw '''262 ''']
| 3335
| [//ro.wikiquote.org/wiki/Special:Recentchanges 22105]
| [//ro.wikiquote.org/wiki/Special:Listadmins 1]
| [//ro.wikiquote.org/wiki/Special:Listusers 5779]
| [//ro.wikiquote.org/wiki/Special:ActiveUsers 6]
| [//ro.wikiquote.org/wiki/Special:FileList 16]
|- style="text-align: right;"
| 56
| [[w:Basque language|Basque]]
| class="plainlinksneverexpand" | [{{fullurl:eu:Euskara}} Euskara]
| [//eu.wikiquote.org/wiki/ eu]
| [//eu.wikiquote.org/wiki/Special:Statistics?action=raw '''248 ''']
| 1259
| [//eu.wikiquote.org/wiki/Special:Recentchanges 11574]
| [//eu.wikiquote.org/wiki/Special:Listadmins 1]
| [//eu.wikiquote.org/wiki/Special:Listusers 2435]
| [//eu.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//eu.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 57
| [[w:Kurdish language|Kurdish]]
| class="plainlinksneverexpand" | [{{fullurl:ku:Zimanê_kurdî}} Kurdî / كوردی]
| [//ku.wikiquote.org/wiki/ ku]
| [//ku.wikiquote.org/wiki/Special:Statistics?action=raw '''247 ''']
| 1141
| [//ku.wikiquote.org/wiki/Special:Recentchanges 11693]
| [//ku.wikiquote.org/wiki/Special:Listadmins 1]
| [//ku.wikiquote.org/wiki/Special:Listusers 3295]
| [//ku.wikiquote.org/wiki/Special:ActiveUsers 6]
| [//ku.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 58
| [[w:Uzbek language|Uzbek]]
| class="plainlinksneverexpand" | [{{fullurl:uz:Oʻzbek_tili}} O‘zbek]
| [//uz.wikiquote.org/wiki/ uz]
| [//uz.wikiquote.org/wiki/Special:Statistics?action=raw '''227 ''']
| 1138
| [//uz.wikiquote.org/wiki/Special:Recentchanges 6400]
| [//uz.wikiquote.org/wiki/Special:Listadmins 1]
| [//uz.wikiquote.org/wiki/Special:Listusers 1691]
| [//uz.wikiquote.org/wiki/Special:ActiveUsers 3]
| [//uz.wikiquote.org/wiki/Special:FileList 2]
|- style="text-align: right;"
| 59
| [[w:Hindi language|Hindi]]
| class="plainlinksneverexpand" | [{{fullurl:hi:हिन्दी}} हिन्दी]
| [//hi.wikiquote.org/wiki/ hi]
| [//hi.wikiquote.org/wiki/Special:Statistics?action=raw '''214 ''']
| 3856
| [//hi.wikiquote.org/wiki/Special:Recentchanges 22421]
| [//hi.wikiquote.org/wiki/Special:Listadmins 1]
| [//hi.wikiquote.org/wiki/Special:Listusers 4069]
| [//hi.wikiquote.org/wiki/Special:ActiveUsers 12]
| [//hi.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 60
| [[w:Georgian language|Georgian]]
| class="plainlinksneverexpand" | [{{fullurl:ka:ქართული_ენა}} ქართული]
| [//ka.wikiquote.org/wiki/ ka]
| [//ka.wikiquote.org/wiki/Special:Statistics?action=raw '''165 ''']
| 4341
| [//ka.wikiquote.org/wiki/Special:Recentchanges 30823]
| [//ka.wikiquote.org/wiki/Special:Listadmins 1]
| [//ka.wikiquote.org/wiki/Special:Listusers 4347]
| [//ka.wikiquote.org/wiki/Special:ActiveUsers 5]
| [//ka.wikiquote.org/wiki/Special:FileList 25]
|- style="text-align: right;"
| 61
| [[w:Danish language|Danish]]
| class="plainlinksneverexpand" | [{{fullurl:da:Dansk_(sprog)}} Dansk]
| [//da.wikiquote.org/wiki/ da]
| [//da.wikiquote.org/wiki/Special:Statistics?action=raw '''157 ''']
| 2024
| [//da.wikiquote.org/wiki/Special:Recentchanges 18485]
| [//da.wikiquote.org/wiki/Special:Listadmins 3]
| [//da.wikiquote.org/wiki/Special:Listusers 6770]
| [//da.wikiquote.org/wiki/Special:ActiveUsers 7]
| [//da.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 62
| [[w:Sanskrit language|Sanskrit]]
| class="plainlinksneverexpand" | [{{fullurl:sa:संस्कृतम्}} संस्कृतम्]
| [//sa.wikiquote.org/wiki/ sa]
| [//sa.wikiquote.org/wiki/Special:Statistics?action=raw '''135 ''']
| 4698
| [//sa.wikiquote.org/wiki/Special:Recentchanges 17627]
| [//sa.wikiquote.org/wiki/Special:Listadmins 1]
| [//sa.wikiquote.org/wiki/Special:Listusers 1761]
| [//sa.wikiquote.org/wiki/Special:ActiveUsers 1]
| [//sa.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 63
| [[w:Icelandic language|Icelandic]]
| class="plainlinksneverexpand" | [{{fullurl:is:Íslenska}} Íslenska]
| [//is.wikiquote.org/wiki/ is]
| [//is.wikiquote.org/wiki/Special:Statistics?action=raw '''133 ''']
| 1274
| [//is.wikiquote.org/wiki/Special:Recentchanges 12540]
| [//is.wikiquote.org/wiki/Special:Listadmins 2]
| [//is.wikiquote.org/wiki/Special:Listusers 2209]
| [//is.wikiquote.org/wiki/Special:ActiveUsers 3]
| [//is.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 64
| [[w:Breton language|Breton]]
| class="plainlinksneverexpand" | [{{fullurl:br:Brezhoneg}} Brezhoneg]
| [//br.wikiquote.org/wiki/ br]
| [//br.wikiquote.org/wiki/Special:Statistics?action=raw '''48 ''']
| 905
| [//br.wikiquote.org/wiki/Special:Recentchanges 4713]
| [//br.wikiquote.org/wiki/Special:Listadmins 1]
| [//br.wikiquote.org/wiki/Special:Listusers 1765]
| [//br.wikiquote.org/wiki/Special:ActiveUsers 3]
| [//br.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 65
| [[w:Marathi language|Marathi]]
| class="plainlinksneverexpand" | [{{fullurl:mr:मराठी_भाषा}} मराठी]
| [//mr.wikiquote.org/wiki/ mr]
| [//mr.wikiquote.org/wiki/Special:Statistics?action=raw '''42 ''']
| 893
| [//mr.wikiquote.org/wiki/Special:Recentchanges 8259]
| [//mr.wikiquote.org/wiki/Special:Listadmins 1]
| [//mr.wikiquote.org/wiki/Special:Listusers 2033]
| [//mr.wikiquote.org/wiki/Special:ActiveUsers 4]
| [//mr.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 66
| [[w:Afrikaans language|Afrikaans]]
| class="plainlinksneverexpand" | [{{fullurl:af:Afrikaans}} Afrikaans]
| [//af.wikiquote.org/wiki/ af]
| [//af.wikiquote.org/wiki/Special:Statistics?action=raw '''34 ''']
| 1282
| [//af.wikiquote.org/wiki/Special:Recentchanges 9961]
| [//af.wikiquote.org/wiki/Special:Listadmins 1]
| [//af.wikiquote.org/wiki/Special:Listusers 2601]
| [//af.wikiquote.org/wiki/Special:ActiveUsers 7]
| [//af.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 67
| [[w:Asturian language|Asturian]]
| class="plainlinksneverexpand" | [{{fullurl:ast:Asturianu}} Asturianu]
| [//ast.wikiquote.org/wiki/ ast]
| [//ast.wikiquote.org/wiki/Special:Statistics?action=raw '''15 ''']
| 299
| [//ast.wikiquote.org/wiki/Special:Recentchanges 4931]
| [//ast.wikiquote.org/wiki/Special:Listadmins 1]
| [//ast.wikiquote.org/wiki/Special:Listusers 644]
| [//ast.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//ast.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 68
| [[w:Anglo-Saxon language|Anglo-Saxon]]
| class="plainlinksneverexpand" | [{{fullurl:ang:Englisc_sprǣc}} Englisc]
| [//ang.wikiquote.org/wiki/ ang]
| [//ang.wikiquote.org/wiki/Special:Statistics?action=raw '''13 ''']
| 514
| [//ang.wikiquote.org/wiki/Special:Recentchanges 5026]
| [//ang.wikiquote.org/wiki/Special:Listadmins 1]
| [//ang.wikiquote.org/wiki/Special:Listusers 863]
| [//ang.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//ang.wikiquote.org/wiki/Special:FileList 1]
|- style="text-align: right;"
| 69
| [[w:Luxembourgish language|Luxembourgish]]
| class="plainlinksneverexpand" | [{{fullurl:lb:Lëtzebuergesch}} Lëtzebuergesch]
| [//lb.wikiquote.org/wiki/ lb]
| [//lb.wikiquote.org/wiki/Special:Statistics?action=raw '''10 ''']
| 337
| [//lb.wikiquote.org/wiki/Special:Recentchanges 5089]
| [//lb.wikiquote.org/wiki/Special:Listadmins 1]
| [//lb.wikiquote.org/wiki/Special:Listusers 649]
| [//lb.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//lb.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 70
| [[w:Min Nan language|Min Nan]]
| class="plainlinksneverexpand" | [{{fullurl:zh-min-nan:Bân-lâm-gú}} Bân-lâm-gú]
| [//zh-min-nan.wikiquote.org/wiki/ zh-min-nan]
| [//zh-min-nan.wikiquote.org/wiki/Special:Statistics?action=raw '''6 ''']
| 438
| [//zh-min-nan.wikiquote.org/wiki/Special:Recentchanges 6322]
| [//zh-min-nan.wikiquote.org/wiki/Special:Listadmins 1]
| [//zh-min-nan.wikiquote.org/wiki/Special:Listusers 797]
| [//zh-min-nan.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//zh-min-nan.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 71
| [[w:Amharic language|Amharic]]
| class="plainlinksneverexpand" | [{{fullurl:am:አማርኛ}} አማርኛ]
| [//am.wikiquote.org/wiki/ am]
| [//am.wikiquote.org/wiki/Special:Statistics?action=raw '''2 ''']
| 413
| [//am.wikiquote.org/wiki/Special:Recentchanges 5020]
| [//am.wikiquote.org/wiki/Special:Listadmins 1]
| [//am.wikiquote.org/wiki/Special:Listusers 990]
| [//am.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//am.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 72
| [[w:Corsican language|Corsican]]
| class="plainlinksneverexpand" | [{{fullurl:co:Lingua_corsa}} Corsu]
| [//co.wikiquote.org/wiki/ co]
| [//co.wikiquote.org/wiki/Special:Statistics?action=raw '''2 ''']
| 209
| [//co.wikiquote.org/wiki/Special:Recentchanges 3820]
| [//co.wikiquote.org/wiki/Special:Listadmins 1]
| [//co.wikiquote.org/wiki/Special:Listusers 539]
| [//co.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//co.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 73
| [[w:Irish language|Irish]]
| class="plainlinksneverexpand" | [{{fullurl:ga:An_Ghaeilge}} Gaeilge]
| [//ga.wikiquote.org/wiki/ ga]
| [//ga.wikiquote.org/wiki/Special:Statistics?action=raw '''1 ''']
| 84
| [//ga.wikiquote.org/wiki/Special:Recentchanges 5021]
| [//ga.wikiquote.org/wiki/Special:Listadmins 1]
| [//ga.wikiquote.org/wiki/Special:Listusers 399]
| [//ga.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//ga.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 74
| [[w:Kazakh language|Kazakh]]
| class="plainlinksneverexpand" | [{{fullurl:kk:Қазақ_тілі}} Қазақша]
| [//kk.wikiquote.org/wiki/ kk]
| [//kk.wikiquote.org/wiki/Special:Statistics?action=raw '''1 ''']
| 138
| [//kk.wikiquote.org/wiki/Special:Recentchanges 2563]
| [//kk.wikiquote.org/wiki/Special:Listadmins 1]
| [//kk.wikiquote.org/wiki/Special:Listusers 459]
| [//kk.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//kk.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 75
| [[w:Kirghiz language|Kirghiz]]
| class="plainlinksneverexpand" | [{{fullurl:ky:Кыргыз_тили}} Кыргызча]
| [//ky.wikiquote.org/wiki/ ky]
| [//ky.wikiquote.org/wiki/Special:Statistics?action=raw '''1 ''']
| 470
| [//ky.wikiquote.org/wiki/Special:Recentchanges 3808]
| [//ky.wikiquote.org/wiki/Special:Listadmins 1]
| [//ky.wikiquote.org/wiki/Special:Listusers 1604]
| [//ky.wikiquote.org/wiki/Special:ActiveUsers 2]
| [//ky.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 76
| [[w:Wolof language|Wolof]]
| class="plainlinksneverexpand" | [{{fullurl:wo:Wolof_(làkk)}} Wolof]
| [//wo.wikiquote.org/wiki/ wo]
| [//wo.wikiquote.org/wiki/Special:Statistics?action=raw '''1 ''']
| 518
| [//wo.wikiquote.org/wiki/Special:Recentchanges 5471]
| [//wo.wikiquote.org/wiki/Special:Listadmins 2]
| [//wo.wikiquote.org/wiki/Special:Listusers 1411]
| [//wo.wikiquote.org/wiki/Special:ActiveUsers 3]
| [//wo.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 77
| [[w:Bambara language|Bambara]]
| class="plainlinksneverexpand" | [{{fullurl:bm:Bamanankan}} Bamanankan]
| [//bm.wikiquote.org/wiki/ bm]
| [//bm.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 57
| [//bm.wikiquote.org/wiki/Special:Recentchanges 3091]
| [//bm.wikiquote.org/wiki/Special:Listadmins 1]
| [//bm.wikiquote.org/wiki/Special:Listusers 405]
| [//bm.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//bm.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 78
| [[w:Cree language|Cree]]
| class="plainlinksneverexpand" | [{{fullurl:cr:ᐃᔨᔨᐤ_ᐊᔨᒧᐎᓐ'}} Nehiyaw]
| [//cr.wikiquote.org/wiki/ cr]
| [//cr.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 55
| [//cr.wikiquote.org/wiki/Special:Recentchanges 3380]
| [//cr.wikiquote.org/wiki/Special:Listadmins 1]
| [//cr.wikiquote.org/wiki/Special:Listusers 353]
| [//cr.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//cr.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 79
| [[w:Kanuri language|Kanuri]]
| class="plainlinksneverexpand" | [{{fullurl:kr:}} Kanuri]
| [//kr.wikiquote.org/wiki/ kr]
| [//kr.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 26
| [//kr.wikiquote.org/wiki/Special:Recentchanges 3236]
| [//kr.wikiquote.org/wiki/Special:Listadmins 1]
| [//kr.wikiquote.org/wiki/Special:Listusers 324]
| [//kr.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//kr.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 80
| [[w:Kashmiri language|Kashmiri]]
| class="plainlinksneverexpand" | [{{fullurl:ks:کٲشِر_زَبان}} कश्मीरी / كشميري]
| [//ks.wikiquote.org/wiki/ ks]
| [//ks.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 52
| [//ks.wikiquote.org/wiki/Special:Recentchanges 4230]
| [//ks.wikiquote.org/wiki/Special:Listadmins 1]
| [//ks.wikiquote.org/wiki/Special:Listusers 357]
| [//ks.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//ks.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 81
| [[w:Cornish language|Cornish]]
| class="plainlinksneverexpand" | [{{fullurl:kw:Kernowek}} Kernowek/Karnuack]
| [//kw.wikiquote.org/wiki/ kw]
| [//kw.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 53
| [//kw.wikiquote.org/wiki/Special:Recentchanges 4184]
| [//kw.wikiquote.org/wiki/Special:Listadmins 1]
| [//kw.wikiquote.org/wiki/Special:Listusers 349]
| [//kw.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//kw.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 82
| [[w:Nauruan language|Nauruan]]
| class="plainlinksneverexpand" | [{{fullurl:na:Dorerin_Naoero}} dorerin Naoero]
| [//na.wikiquote.org/wiki/ na]
| [//na.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 48
| [//na.wikiquote.org/wiki/Special:Recentchanges 4297]
| [//na.wikiquote.org/wiki/Special:Listadmins 1]
| [//na.wikiquote.org/wiki/Special:Listusers 336]
| [//na.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//na.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 83
| [[w:Low Saxon language|Low Saxon]]
| class="plainlinksneverexpand" | [{{fullurl:nds:Plattdüütsch}} Plattdüütsch]
| [//nds.wikiquote.org/wiki/ nds]
| [//nds.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 31
| [//nds.wikiquote.org/wiki/Special:Recentchanges 2993]
| [//nds.wikiquote.org/wiki/Special:Listadmins 1]
| [//nds.wikiquote.org/wiki/Special:Listusers 342]
| [//nds.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//nds.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 84
| [[w:Quechua language|Quechua]]
| class="plainlinksneverexpand" | [{{fullurl:qu:Qhichwa_simi}} Runa Simi]
| [//qu.wikiquote.org/wiki/ qu]
| [//qu.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 32
| [//qu.wikiquote.org/wiki/Special:Recentchanges 4677]
| [//qu.wikiquote.org/wiki/Special:Listadmins 1]
| [//qu.wikiquote.org/wiki/Special:Listusers 322]
| [//qu.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//qu.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 85
| [[w:Turkmen language|Turkmen]]
| class="plainlinksneverexpand" | [{{fullurl:tk:Türkmen_dili}} Türkmen]
| [//tk.wikiquote.org/wiki/ tk]
| [//tk.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 67
| [//tk.wikiquote.org/wiki/Special:Recentchanges 3382]
| [//tk.wikiquote.org/wiki/Special:Listadmins 1]
| [//tk.wikiquote.org/wiki/Special:Listusers 391]
| [//tk.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//tk.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 86
| [[w:Tatar language|Tatar]]
| class="plainlinksneverexpand" | [{{fullurl:tt:Tatar_tele}} Tatarça / Татарча]
| [//tt.wikiquote.org/wiki/ tt]
| [//tt.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 69
| [//tt.wikiquote.org/wiki/Special:Recentchanges 4356]
| [//tt.wikiquote.org/wiki/Special:Listadmins 1]
| [//tt.wikiquote.org/wiki/Special:Listusers 371]
| [//tt.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//tt.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 87
| [[w:Uyghur language|Uyghur]]
| class="plainlinksneverexpand" | [{{fullurl:ug:Uyghur_tili}} ئۇيغۇر تىلى]
| [//ug.wikiquote.org/wiki/ ug]
| [//ug.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 66
| [//ug.wikiquote.org/wiki/Special:Recentchanges 4313]
| [//ug.wikiquote.org/wiki/Special:Listadmins 1]
| [//ug.wikiquote.org/wiki/Special:Listusers 373]
| [//ug.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//ug.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 88
| [[w:Volapük language|Volapük]]
| class="plainlinksneverexpand" | [{{fullurl:vo:Volapük_nulik}} Volapük]
| [//vo.wikiquote.org/wiki/ vo]
| [//vo.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 71
| [//vo.wikiquote.org/wiki/Special:Recentchanges 4425]
| [//vo.wikiquote.org/wiki/Special:Listadmins 1]
| [//vo.wikiquote.org/wiki/Special:Listusers 376]
| [//vo.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//vo.wikiquote.org/wiki/Special:FileList 0]
|- style="text-align: right;"
| 89
| [[w:Zhuang language|Zhuang]]
| class="plainlinksneverexpand" | [{{fullurl:za:Sawcuengh}} Cuengh]
| [//za.wikiquote.org/wiki/ za]
| [//za.wikiquote.org/wiki/Special:Statistics?action=raw '''0 ''']
| 68
| [//za.wikiquote.org/wiki/Special:Recentchanges 11815]
| [//za.wikiquote.org/wiki/Special:Listadmins 1]
| [//za.wikiquote.org/wiki/Special:Listusers 396]
| [//za.wikiquote.org/wiki/Special:ActiveUsers 0]
| [//za.wikiquote.org/wiki/Special:FileList 0]
|}
=== Grand Total ===
{| border="1" cellpadding="2" cellspacing="0" style="width:75%; background: #f9f9f9; border: 1px solid #aaaaaa; border-collapse: collapse; white-space: nowrap;"
|-
! Articles
! Total
! Edits
! Admins
! Users
! Files
|- style="text-align: right;"
|'''254,902'''
|'''942,660'''
|'''9,512,321'''
|'''217'''
|'''4,016,802'''
|'''1,456'''
|}

Revision as of 13:53, 8 July 2021

This page considers Wikirank proposal in more detail from various angles.

Prior art

Wikirank differs from previously proposed lists in two ways. Firstly, Wikirank assumes that lists are already easily obtained by querying Wikidata. Wikidata actually has a whole query namespace reserved for lists, just waiting for T67626 to be completed. Wikirank instead focuses on filtering out insignificant items in these lists. Wikidata lists can be sorted too, but all factual sort keys (e.g. sorting things by size) are only trying to approximate desired sorting by relevance to the reader. Wikirank aims to collect and use popularity data, which is a direct measurement of relevance to the average reader. Secondly, Wikirank encourages frequent personalization of lists while showing these personalized lists under the same searchable URL as public lists, which considerably improves usefulness and usability of lists while at the same time encouraging contribution to the public list.

The concept is not new by any measure. Just about every Web 2.0 site allows users to vote on just about everything. Toplists make up a significant portion of web content. Websites like alternativeto.net turn every list item into its own list, sidestepping pitfalls of ontology. It's about time for WMF to introduce its own voting solution that is aligned with Wikimedia movement's principles and goals and integrated with other Wikimedia projects.

Minimal version

Sections below describe Wikirank in detail, but most of the functionality is not required immediately. This section describes minimal functional version of the project.

The main requirement is a new MediaWiki extension that adds support for vote data. Its simplest implementation saves private lists in relational database and uses SQL queries to compute public lists. There's no voting history, timestamps, or IP address data. No special privacy measures. No spam filters either. The site can start as English-only. Pages initially contain only page title and the list itself. List items initially show only item name and popularity. Private lists work from the beginning, but they cannot be shared. Login is required. Minimal version just ranks existing Wikidata Q-items without creating any new items. Sorting by popularity is complemented with secondary sort key to compensate for low vote count.

Estimated cost of the minimal version is under 100 man-hours.

Relationship with Wikidata

Every Wikirank page contains a list. Every list has a topic, which is identified by Wikidata Q-item. Every list item is also identified by Wikidata Q-item. Using Wikidata Q-items is the key to Wikirank's ability to merge private lists of its contributors into popularity-sorted public lists. Presence of list item in the list is interpreted as "instance of" relationship, i.e. list topics are classes in Wikidata parlance while individual list items are their instances. This "instance of" relationship does not have to be recorded in Wikidata. Wikirank just expects list items to have properties compatible with list topic. Users are able to add any item to any private list, but public lists will usually filter out incompatible list items.

Wikidata usually does not have classes like "GMail alternative" or "2020 sci-fi movie". If such lists are created in Wikirank, corresponding class Q-items will be created in Wikidata. There is however no need to manually add "instance of" statements to their potential instances. Class "2020 sci-fi movie" would just declare that it is "subset of" "science fiction film (Q471839)" and that it has "publication date" "2020". All Q-items in Wikidata with compatible properties are automatically accepted by Wikirank as possible list items.

Site and page structure

TODO: UI mocks

Every list is a page. Page URL references Q-item of the list topic (e.g. www.domain.org/wiki/Q12345), so that the URL remains the same regardless of selected language. Page title is a natural language label for the list. Page content is normal wikitext, but it is mostly generated by templates and Lua scripts that exist for every kind of list. The following describes default page layout. Page starts with short summary of list's topic, usually formatted as property-value table. Most space on the page is dedicated to the list. List items are sorted by votes. If votes are scarce, secondary sort key may be used. Every list item has three columns. First column contains vote count, voting buttons, and other Wikirank features. Second column contains summary of the list item, usually formatted as property-value table. Third column contains optional image.

There is no manually added free-form content, because it would make the site language-specific. All information is retrieved from Wikidata and automatically translated using Wikidata language information (lexemes and item labels/descriptions). If there is any free-form text, it must come from Wikidata, for example item title and quotations. Wikirank may synthesize short text from Wikidata statements using techniques similar to Abstract Wikipedia. Additional information may be obtained from Wikipedia and other sources linked from topic and item summaries. Some content, for example Wikipedia links, may be automatically selected to match current language.

List pages may offer several views of the same list. It should be possible to switch between at least two layouts: the above described 3-column layout and plain table view. Table view places vote count and buttons in one of the columns. Further alternative views may include temporal and geographic segments. Subtopics and related topics should generally have their own pages, but current page can link to them prominently.

Upvoting an item moves the item to the top and visually marks it as upvoted. Downvoting an item moves the item to the bottom or completely hides it. Upvoted items are sorted among themselves using public vote count, but there is a way to override that order. Search widget at the end of the list allows users to easily find new items and add them to the list. Some pages may also include a form to add new list item by creating formulaic Q-item in Wikidata. The form shows a list of similar items in order to discourage users from creating duplicate Q-items.

Besides list pages, there are item pages and category pages. Item pages, which are linked from list items, contain longer summary, links to lists featuring the item or related to the item (e.g. alternatives), links to sister projects, and additional useful links. Category pages are really just special list pages with list items pointing to other lists. Category pages allow voting on their list items, i.e. other list pages, but they also visually mark and bring to top lists, in which the user has casted a vote. This makes it easier to find one's private lists. There is one all-encompassing category containing all lists. This top-level category can be used by users to find all of their private lists.

Users can publish their private lists under special URL, e.g. www.domain.org/share/6fR3tZhSHPp1tnUjY6ko. This URL is secret, which allows users to provide access only to people who know the URL. Unsharing the list and sharing it again generates new URL. This allows users to revoke access to their private list. Shared lists may be optionally frozen, so that they do not change after publishing even as user's private list continues to change.

Notability

Wikirank will generally allow creating lists of anything that already meets Wikidata notability policy. Quantitative surveys are generally useful for everything, even abstract concepts and unremarkable objects. While voting on such things as exoplanets seems useless at first, these votes are actually likely to point to exoplanets that are in some way interesting. Similar argument can be made about most other topics. There will be only a few exceptions, for example adding people as items in defamatory lists. Wikirank will tend to extend beyond current Wikidata scope, which is largely defined by what Wikipedia considers notable. This is because, in a sense, Wikirank is a way to discover notable items and to separate notable items from uninteresting ones. It is therefore natural that a large fraction of items in Wikirank lists will not be considered notable by other projects.

Data quality

Wikirank will not attempt to censor "wrong" choices. The idea is to reflect public opinion even if public at large is wrong about something. Clarifying notice may be placed above lists that have high risk of misinterpretation. List items may show additional properties pulled from Wikidata that complement Wikirank's popularity data.

All data added to Wikidata in the course of editing Wikirank pages still has to be factually correct and meet Wikidata policies.

Little attention is paid to which item is ranked #1. Wikirank only aims to separate serious contenders from uninteresting alternatives. Precise order near the top of the list is not important. Users are expected to review the highest ranking items and make their own choices.

Collaboration model

The usual collaboration model on wikis is that everyone edits the same content and disputes are resolved via discussion. Wikirank collaboration model is more subtle. Everyone has their own version of every list, but list items preferred by other contributors are shown underneath user's private list, sorted by popularity, which encourages users to add popular items to their own list. In order to keep their private list clean and useful, users are most likely to upvote unreasonably unpopular items buried near the bottom of the public list and downvote unreasonably popular items that they consider to be clutter. This creates self-regulating system that converges toward interests of the majority while still allowing minority users to adjust the list to their liking.

Wikirank should be home to several kinds of contributors, sorted here by amount of time invested:

  • Supporters do not build lists. They just drop random upvotes here and there to show support.
  • Curators build private lists, mostly by upvoting. They find or create new items to add and cast the first vote for these items.
  • Editors create new lists and make other structural changes to the site as well as non-trivial edits in Wikidata.
  • Developers create templates, Lua scripts, and special lists, which mostly define new list types.

Login is optional, because supporters don't need it. Curators who use the site only temporarily, for example to build a list for immediate use, don't need login either.

Technical details

TODO: MediaWiki extensions, querying and data downloads, integration with sister projects

Schema

Wikirank vote would have the following structure:

username class instance timestamp IP action

For example:

WikirankUser7 Q123 Q456 20210704112564 1.2.3.4 upvote

Fields:

  • username - who cast the vote, username (logged in users) or cookie (logged out users)
  • class - Wikidata Q-item identifying the whole list
  • instance - Wikidata Q-item identifying single list item
  • timestamp - time when the vote was cast
  • IP - IP address, from which the vote was cast
  • action - one of: upvote, downvote, withdraw vote

Timestamps and IP addresses allow for interesting list views (regional segments, trending) and they also help fight spam. Users can opt out from IP address storage, in which case the IP address will be anonymized (last bits zeroed). Doing so will slightly increase chance that the vote will be filtered by spam filters.

Vote data is private and visible only to the user. Wikirank will expose it only in aggregate form:

class instance upvotes downvotes filtered

For example:

Q123 Q456 1070 60 145

If the user changes their mind several times, their upvote/downvote is of course counted only once. The filtered field counts users whose votes have been filtered out by spam filters. Where needed, this aggregate data will be also available segmented by time and/or region.

Performance

Assuming the site grows very popular and amasses one trillion votes, votes will take up a few dozen terrabytes. With spam and indexing overhead, up to a petabyte of storage might be consumed. Most data will be historical and inert. Active data will be much smaller. Ingestion rate of up to 100,000 votes/second can be handled by current hardware and suitable data layout. Query cost should be negligible with suitable data layout and caching.

Privacy

Existing voting systems usually do not offer any guarantees of privacy. Social networks either publish the whole list of voters or at least reveal which friends (connected users) voted for the item. Votes are used to target advertising and they are thus indirectly revealed to advertisers. Wikirank sets higher standard of privacy by never showing private lists to anyone other than the user.

Wikimedia servers already store some private data in the form of password hashes and IP addresses. Wikirank is different in that most of its data will be private. This is essential for the project to function, because private lists will end up containing sensitive information, e.g. drug lists, medical condition lists, lists related to intimate life. Leaks of this data would erode trust and undermine the project. High standards of privacy protection and data security are therefore essential to the success of the project.

But before considering data protection, let's first consider why is the data needed in the first place. Why cannot Wikirank perform spam filtering at the moment of voting and then just store vote statistics? If preventing duplicate votes is a concern, why cannot Wikirank use one of the anonymizing counters that perform lossy hashing of IP addresses and/or user names? The reason Wikirank needs to keep detailed vote data is that Wikirank is a curated list service, not just the usual "like" or "thumbs up" service. You cannot curate a list if you cannot see it. You cannot see the list if it is not recorded in database in full detail. Wikirank might offer anonymized vote casting in the future, but its core function will always be to collect full curated lists.

Users would be of course given control over their personal data. Wikirank would allow users to examine, download, and delete their private data or any part of it. Secure and caution-encouraging procedure would allow migration of private data to another service upon user's request. Option to minimize data collection would be also provided. This would cause Wikirank to anonymize IP addresses (by zeroing the least significant bits) and timestamps (by rounding) and to keep only current state of private lists. This option would come with a few downsides: loss of undo and versioning functionality, removal of one's historical votes from older time segments, and slightly higher chance that one's votes would be flagged by spam filters. Some aspects of this opt-out functionality would be also activated automatically where required by privacy laws.

Protecting private data for several decades is challenging. Servers and processes touching raw Wikirank data would have to meet security standards that are not needed in other Wikimedia projects. Developers and administrators would not have access to private lists. Site administrators would be only able to examine summary statistics when flagging suspicious votes. Spam filters would have full access to raw data, but they would run in isolated environment, unable to communicate with outside world.

Private lists of logged out users are tied to browser cookie rather than IP address. Besides being a good match for user's expectations of site behavior, this prevents accidental leaks of private lists when user's IP address is rotated by their ISP.

Since the first votes on a list tend to be correlated with public activities like creating the list page, its Q-item, and Q-items for all list items, the first vote for most items can be deanonymized. This is particularly problematic on fringe lists with naturally low vote count. Wikirank will use two mechanism to protect users against such deanonymization. Firstly, counting of new votes will be randomly delayed for long enough to make it unclear who casted the vote. Secondly, Wikirank will by default hide vote count of list items with too few votes (say, less than 3). Users will be asked for permission before their vote is shown on such items. It is expected that people interested in curation more than privacy will grant the permission. Minimum vote count will be randomized a bit to prevent active deanonymization by casting fake votes.

Spam filters

Early versions of Wikirank will run without spam filter, because the initial site will not be popular enough to attract spammers. Spam filters should be developed in response to actual spamming strategies observed in practice. This section provides some hints on how such spam filters might work.

Spam filters work on user level, not vote level, because single user is either a spammer or regular user. Decisions about individual users however cannot be made, because privacy protection means nobody can look at user's private lists. Users are instead automatically scored using a number of trust signals and votes from users below some trust threshold are ignored. Trust signals, positive and negative, include:

  • casting a suspicious vote (see below)
  • activities other than voting (editing, activities on sister projects)
  • passive technical signals: User-Agent, presence of cookies, etc.
  • passing or failing an occasional CAPTCHA (only when trust is low)
  • voting patterns similar to other users with high/low trust

Votes can be flagged as suspicious, but this is not done individually per vote. Administrators can instead review suspicious activity, especially temporal and spatial spikes, and flag entire sets of votes as suspicious.

Since no signal is reliable, only total trust score matters. Scoring model is trained on hard signals (CAPTCHA, non-trivial edits, bot User-Agent, known fraud cases).

Bugs and flaws in spam filters do not cause permanent damage. All filtering scores are periodically recalculated in order to reflect improvements in spam filter logic. Some information may be discarded for privacy reasons. Such information loss events should leave behind a flag, so that spam filters know that some data is missing.