Interwiki integration
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. |
This page is for proposing and discussing interwiki integration ideas. These ideas seek to fix the following bugs, while also enabling more interconnection among the wikis of the wikisphere as a whole, in ways not contemplated by these bugs:
Bug | Description |
---|---|
11 | Red interwiki links -- check for page existence across wikis |
708 | Interproject links |
1066 | Cross-wiki talk page notification |
1837 | Search all wikis at once |
3525 | Cross-wiki watchlists |
3544 | Single recent changes on several MediaWikis |
9890 | Reasonably efficient interwiki transclusion |
11423 | Central database for interwiki |
14234 | Create a way to change home wiki in CentralAuth |
15607 | Implement the Interlanguage extension in Wikipedia |
16568 | Create a hub devoted to cross-wiki data exchange |
23741 | Resolve searchNs collisions on wiki farms with a shared user table |
23999 | Provide method to store API/DB information for interwiki sites |
27696 | It should be possible to see the changes to the interwiki page in the watchlist |
Create wikispaces and langspaces in central database
editCreate a central database/website as a clearinghouse for interwiki data sharing. Have local wikis retrieve data from it (e.g. for producing interwiki watchlists, recentchanges, and existence-detecting links) via the backend, and allow remote wikis to either (1) pull data from it or (2) subscribe to a service in which the clearinghouse website will periodically push updates to those remote wikis via their APIs. The shared central database will contain wikispace and langspace fields, in addition to the already-supported namespace fields, in the appropriate tables. Pages would be accessible as follows:
Wikispace | Langspace | Namespace | Page title | Result |
---|---|---|---|---|
Wikipedia | English | Portal | Geography | wikipedia:en:Portal:Geography |
Wiktionary | French | Main | Fromage | wiktionary:fr:fromage |
... | ... | ... | ... | ... |
This will enable both existence-detecting links to "absolute" addresses (e.g. http://wikimedia.org/wiki/wikipedia:en:Portal:Geography ) and (as is already the case) to "relative addresses" (e.g. http://en.wikipedia.org/Portal:Geography ). As is already the case, users would not necessarily need to type in the full page title (including wikispace and langspace); if the user is on, say, enwiki and types in Portal:Geography, the software will assume he means wikipedia:en:Portal:Geography.
Implementation
editMake necessary changes to dozens/hundreds of core and extension files. E.g. parameters will need to be added to many functions, and new variables will need to be added to many class objects. Many aspects of the user interface, including special pages and the API, will need to be revised to make use of the new fields. In the central database, add the following database fields, and implement the associated functionality to make use of them:
Table | WikiField | LangField |
---|---|---|
archive | ar_wikispace | ar_langspace |
job | job_wikispace | job_langspace |
logging | log_wikispace | log_langspace |
pagelinks | pl_wikispace | pl_langspace |
protected_titles | pt_wikispace | pt_langspace |
querycache | qc_wikispace | qc_langspace |
querycache2 | qcc_wikispace | qcc_langspace |
recentchanges | rc_wikispace | rc_langspace |
redirect | rd_wikispace | rd_langspace |
templatelinks | tl_wikispace | tl_langspace |
user_properties | up_wikispace | up_langspace |
watchlist | wl_wikispace | wl_namespace |
Advantages and disadvantages
editAdvantages
edit- Allow for integrated watchlists, integrated RecentChanges, interwiki page existence detection, etc.
- Allow one database query to be run on the entire wiki farm without the need to UNION or JOIN a bunch of different databases.
Disadvantages
edit- Could be hard to implement, requiring hundreds of changes to the core and extensions.
Rejected ideas
editThere was an idea to consolidate all local wikis' databases into one big database with different wikispaces and langspaces: "All configuration settings will need to be unified for the one big wikifarm, which might require changing some of them to arrays in order to maintain customizability of individual wikis." This idea was rejected due to performance concerns related to the difficulty/impossibility of scaling such a huge database to a multi-server system, and the probable difficulty of getting the community to accept such an extensive revision of core code.