MediaWiki

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
MediaWiki
MediaWiki logo

English Wikipedia screenshot.png

Dezvoltator Wikimedia, Brion Vibber (director de versiuni)
Versiune inițială 25 January 2002
Scris în PHP
Sistem de operare Diverse
Platformă Multiplă
Tip Wiki
Licență licența Publică Generală GNU
Site web en mediawiki.org

MediaWiki este o aplicație software de tip wiki, bazată pe web, folosită în toate proiectele Fundației Wikimedia, la toate wikipediile găzduite de Wikia, și la multe alte aplicații de tip wikipedia, chiar foarte mari și populare.[1] Inițial, softul a fost dezvoltat pentru a fi folosit la enciclopedia liberă Wikipedia. Astăzi este folosit și de diverse companii pentru managementul cunoștințelor interne și ca sistem de management al conținutului. De notat că Novell îl folosește la câteva din serverele sale web cu trafic mare.[2]

Softul MediaWiki este scris în limbajul PHP și poate fi folosit împreună cu sistemele de gestiune a bazelor de date relaționale MySQL sau PostgreSQL. Softul MediaWiki este distribuit sub licența Publică Generală GNU, în timp ce documentația este disponibilă parțial sub licența GFDL și parțial este în domeniul public, fiind software liber.

Istoric[modificare | modificare sursă]

Softul a fost scris inițial pentru Wikipedia de Lee Daniel Crocker, pe baza unei interfețe de utilizator proiectată de Magnus Manske, un programator și student de la Universitatea din Köln. La început Wikipedia a folosit un mic motor wiki numit UseModWiki scris în Perl. Ulterior, Wikipedia a trecut la limbajul PHP, care oferea mai multe posibilități, primul script în acest limbaj fiind scris de Magnus Manske, tot de la Universitatea din Köln.

Brion Vibber în 2008

Crocker a rescris softul pentru MySQL, care este mai flexibil. Ulterior, Brion Vibber, coordonatorul tehnic al Wikimedia[3] preia rolul de director de versiuni și principal programator.[4][5]

După prima versiune a lui Manske, softul a fost cunoscut ca „scriptul PHP”, „faza a II-a”, „faza a III-a”, „noul cod de bază” — dar nu avea un nume al său. La anunțul Wikimedia din 20 iunie 2003, Daniel Mayer a sugerat denumirea de „MediaWiki” ca antimetabolă a lui „Wikimedia”,[6] iar numele a început să fie folosit din august 2003. Datorită similarității cu „Wikimedia” (care ea însăși este asemănătoare cu „Wikipedia”) numele a generat numeroase confuzii. Cu toate astea, „MediaWiki” a devenit un brand, în iunie 2008 Google furnizând peste 74 de milioane de rezultate.

Logo-ul produsului a fost creat de Erik Möller pe baza unei fotografii făcute de Florence Nibart-Devouard, și a fost propus la concursul internațional pentru un nou logo inițiat de Wikipedia în vara anului 2003.[7] Logo-ul s-a clasat pe locul al treilea, și a fost ales pentru a reprezenta MediaWiki, în timp ce logo-ul clasat pe locul al doilea a fost destinat pentru Wikimedia, iar cel clasat pe primul loc pentru Wikipedia însăși.[8] Cele două paranteze drepte care încadrează imaginea florii soarelui simbolizează sintaxa MediaWiki pentru realizarea legăturilor spre alte pagini ale Wikipediei.

Culoare Semnificație
Roșu Versiune veche, care nu mai este susținută
Galben Versiune veche, dar susținută
Verde Versiune curentă
Albastru Versiune viitoare

Istoricul versiunilor[modificare | modificare sursă]

Tabelul conține istoricul versiunilor MediaWiki. Cea mai nouă versiune este la Test Wikipedia, găzduită la http://test.wikipedia.org/ iar versiunea curentă este 1.13alpha.[9]


Numărul versiunii Dată Legături Modificări semnificative
1.1 8 decembrie 2003 Note privind versiunea
  • Nouă sintaxă a tabelelor wiki.
  • Mesaje configurabile de utilizator prin „MediaWiki namespace”.
  • Exportul paginilor sursă și opțional a istoricului în format XML.
  • "Magic words" – instrucțiuni de prelucrare și variabile speciale.
1.2 24 martie 2004 Note privind versiunea
  • Program de instalare experimental bazat pe web.
  • Redimensionare imagini și generator de imagini miniatură.
  • Bară de unelte de editare pentru învățarea sintaxei wiki.
  • Managementul drepturilor utilizatorului în wiki.
1.3 11 august, 2004 Note privind versiunea
  • Un nou aspect, bazat pe CSS (aspect „MonoBook”) și o mai bună conformare la standarde.
  • Formate cu parametri.
  • Categorii.
  • Tratarea automată a conflictelor de editare unde este posibil.
  • Instalare îmbunătățită.
1.4 20 martie 2005 Note privind versiunea, Suportul lingvistic
  • Alegerea limbii interfeței de către utilizator.
  • Performanțe semnificativ îmbunătățite.
  • Suport pentru comprimarea versiunilor vechi ale articolelor, pentru a economisi spațiul de stocare.
  • Galerii de imagini, lista imaginilor trimise recent.
  • Suport pentru rasterizarea SVG (necesita o unealtă externă).
1.5
(versiune nouă, compatibilă MySQL 3)
5 octombrie 2005 Note privind versiunea, Suportul lingvistic
  • Reconsiderarea bazei de date, prin decuplarea stocării textului de urmărirea modificărilor, având ca rezultat:
    • Mărirea performanțelor la unele operații.
    • Permalink la toate modificările.
    • Suport pentru stocarea masivelor de date în afara bazei de date.
  • Suport pentru notificarea modificărilor prin e-mail.
  • Conținutul paginilor codat în UTF-8.
1.6
(versiune nouă, compatibilă PHP 4)
5 aprilie 2006 Note privind versiunea, Suportul lingvistic
  • Separarea formularului de creare cont de cel de autentificare.
  • Formular nou, mai complet, pentru protejarea/deprotejarea paginilor.
  • „Coadă de sarcini" pentru actualizări în background.
  • Urmărirea îmbunătățită a folosirii formatelor.
  • Urmărirea folosirii legăturilor externe pentru măsuri sistematice anti-spam.
  • Parametrii formatelor pot avea valori prestabilite.
1.7 7 iulie 2006 Note privind versiunea, Suportul lingvistic
  • MediaWiki 1.7 necesită PHP 5 (recomandat 5.1). PHP 4 nu mai este susținut.
  • Restaurarea fișierelor șterse.
1.8 10 octombrie 2006 Note privind versiunea, Suportul lingvistic
  • Suport complet pentru backendul bazelor de date în PostgreSQL (8.1 sau mai nou)
  • Suport pentru miniaturizare în DjVu și navigare în pagini multiple.
  • Diverse îmbunătățiri privind blocarea; acesta putând fi aplicată și utilizatorilor neînregistrați, pe IP (un IP anume, nu plajă).
  • Trimiterea fișierelor din situri (URL) publice este posibilă dacă opțiunea este activată.
1.9 10 ianuarie 2007 Note privind versiunea, Suportul lingvistic
  • Utilitatea de „anulare” a modificărilor.
  • Diverse îmbunătățiri privind blocarea și cache-ul paginilor speciale.
  • Tabele cu coloane care pot fi sortate
  • Adăugarea unui contor de editări ale utilizatorului în baza de date cu utilizatorii.
  • Afișarea numărului de octeți modificați în listele de urmărire și în „schimbări recente”.
  • Localizarea (traducerea) numelor „paginilor speciale”, astfel ca legăturile (URL) spre ele să fie mai inteligibile în limbi diferite de limba engleză.
1.10 9 mai 2007 Note privind versiunea, Suportul lingvistic
  • Utilitatea de „protejare în cascadă”
  • Unelte, moduri de utilizare ale lor și moduri de acces îmbunătățite (ex.: arată „cele mai” pagini).
  • Diverse îmbunătățiri privind blocarea și cache-ul paginilor speciale.
  • Suport pentru IPv6.
1.11 10 septembrie 2007 Note privind versiunea, Suportul lingvistic
  • Adăugare $wgAddGroups și $wgRemoveGroups, care permit individualizarea drepturilor grupurilor.
  • Punerea la punct a urmăririi paginilor prin AJAX și activarea sa implicită.
1.12 20 martie 2008 Note privind versiunea, Suportul lingvistic
  • Mari pași în internaționalizare și localizare, multe traduceri, noi traduceri pentru 1.12, „versiune specială” localizabilă, suport pentru limbile ebraică, calendar thailandez și iranian.
  • Nou preprocesor de prelucrare
  • Interfață îmbunătățită și generalizată pentru drepturile utilizatorului.
1.13 1.13 a început în februarie 2008 Note privind versiunea, Suportul lingvistic
  • „Pagini speciale” noi: FileDuplicateSearch, ListGroupRights
  • Reprogramarea paginilor Special:UserRights și Special:SpecialPages
  • O procedură mai prietenoasă pentru utilizatorii care fac clic pe o legătură roșie, dar nu pot edita.
  • Caseta de căutare din bara MonoBook poate fi mutată sus adăugând codul * SEARCH în MediaWiki:Sidebar
  • Repararea automată a dublei redirectări în urma mutării unei pagini.
1.14 22 februarie, 2009 Note privind versiunea, Suportul lingvistic
  • Admite licență prind drepturile de autor sub formă de text (alta decât Creative Commons sau GFDL)
  • Imaginile se pot lega de un titlu sau de un URL oarecare
  • Indexarea motorului de căutare se poate face după pagină
  • Suport CSS îmbunătățit pentru echipamente mobile
  • Pagina de istoric permite selecția după dată
  • La imagini, istoricul încărcărilor afișează miniaturi ale fiecărei versiuni
1.15 10 iunie 2009 Note privind versiunea, Suportul lingvistic
  • Permite redenumirea fișierelor
  • Cuvinte cheie noi {{GENDER:||}}, {{NUMBEROFACTIVEUSERS}} și {{REVISIONUSER}}
1.16 28 iulie 2010 Note privind versiunea, Suportul lingvistic
  • Noua interfață Vector
  • Includerea anunțurilor RSS/Atom în lista de pagini urmărite
  • Posibilitatea de a bloca utilizatorii să trimită mesaje prin Special:Emailuser
1.17 1.17 a început în februarie 2010 Note privind versiunea, Suportul lingvistic
  • Utilitate de instalare nouă
  • Încărcător de resurse
1.18 1.18 a început în decembrie 2010 Note privind versiunea, Suportul lingvistic

Utilități de bază[modificare | modificare sursă]

Interfaţa de editare a MediaWiki 1.7, prezentând bara de unelte de editare şi câteva exemple de sintaxă wiki.

MediaWiki pune la dispoziție un set bogat de extensii pentru utilități adiționale și un mecanism de adăugare a lor.

În contextul multilingvismului, în proiectele Wikimedia programatorii au acordat o atenție sporită problemelor de internaționalizare și localizare. Interfața utilizatorului a fost tradusă în peste 100 de limbi (v. și statistici cu traducerile și multilingvismul MediaWiki), și poate fi configurată în continuare de administratorii sitului (întreaga interfață este editabilă prin wiki).

Deoarece Wikipedia este unul dintre cele mai mari situri web din lume, asigurarea posibilității de dezvoltare a fost de asemenea o prioritate pentru programatori. În acest scop s-a folosit un sistem multistrat pentru cache și replicarea bazelor de date. O mare parte a cerințelor către MediaWiki provine de la Wikipedia și alte proiecte ale Wikimedia.

Una dintre cele mai vechi diferențe între MediaWiki (și predecesorul său UseModWiki) și alte motoare wiki a fost folosirea de „legături libere” (engleză free links)[10] față de metoda CamelCase[11] De exemplu, inițial, pentru a crea o legătură spre pagina World Wide Web se scria „WorldWideWeb”, însă actual legăturile în MediaWiki se fac prin încadrarea textului de legat cu paranteze drepte duble, menținând spațiile dintre cuvinte, de exemplu [[World Wide Web]]. Această modificare a fost necesară pentru scopul creării unei enciclopedii, unde acuratețea titlurilor era foarte importantă.

Pentru a ușura editarea articolelor lungi, MediaWiki permite modificarea secțiunilor din pagină, la nivelul subtitlurilor.

Conținut bogat[modificare | modificare sursă]

Imaginile pot fi aranjate în galerii, o utilitate intens folosită în arhiva Wikimedia Commons.

MediaWiki oferă suport pentru conținut bogat generat prin sintaxă specializată. De exemplu, softul asigură suport pentru afișarea formulelor matematice scrise în LaTeX și un procesor special scris în OCaml. Utilități similare, cum sunt trasarea graficelor, reprezentarea notelor muzicale, reprezentarea hieroglifelor, sunt disponibile ca extensii, îmbunătățind estetica paginilor.

După cum sugerează numele de MediaWiki, softul poate trata diferite fișiere multimedia trimise. Cea mai puternică utilitate este în domeniul imaginilor, unde se pot crea cu ușurință galerii de miniaturi. Există de asemenea suport pentru metadata din formatele Exif. Utilizarea MediaWiki pentru Wikimedia Commons, una dintre cele mai mari arhive de fișiere multimedia libere necesită dezvoltarea în continuare a utilităților în domeniu.

Actual, MediaWiki nu oferă suport nativ pentru editări de tip WYSIWYG, însă oferă o bară de unelte grafică care facilitează procesul de învățare a sintaxei wiki. De asemenea, are o interfață simplă pentru folosirea transparentă a aplicațiilor externe pentru trimiterea fișierelor și editarea paginilor.

Structurare[modificare | modificare sursă]

MediaWiki oferă și alte utilități în afară de legăturile dintre pagini pentru structurarea conținutului. Una dintre cele mai vechi este spațiile de nume. Una din problemele Wikipedia a fost separarea conținutului enciclopedic de cel al discuțiilor, respectiv al paginilor de utilizator. Spațiile de nume au prefixe înainte de titlu (ca „Utilizator:” sau „Discuție:”) care permite unei pagini să existe sub același nume, dar cu scopuri diferite, în funcție de prefix. De exemplu, pagina „[[Fernandel]]” se referă la actorul Fernandel, în timp ce pagina „[[Utilizator:Fernandel]]” este pagina utilizatorului cu acest pseudonim. De asemenea, fiecare pagină are asociată o pagină de „Discuție:”, în care conținutul paginii propriu-zise poate fi discutat.

Spațiile de nume pot fi considerate ca niște „dosare” care separă diferite tipuri de informații. Se pot adăuga noi spații, însă actual în wiki numărul acestor spații este destul de redus.

În afară de spațiile de nume, paginile pot fi structurate și ca „subpagini”. Această utilitate oferă prin sintaxa [[Titlul paginii/Titlul subpaginii]] o legătură (engleză backlink) dinspre pagina dinainte de slash (aici, „Titlul paginii”).

MediaWiki oferă suport pentru categorii create de utilizatori. Acestea sunt similare cu etichetele folosite în aplicațiile web, dar având o structură ierarhică și fiind descriptive. În wikipediile mari, ca Wikipedia, s-au creat ierarhii complexe, fără a exista vreo concepție prealabilă.[12]

Configurare[modificare | modificare sursă]

Utilizatorii pot configura partea de JavaScript care este executată în fiecare pagină. Există o serie de unelte JavaScript pe care utilizatorul le poate „instala”, şi unealta „popup de navigare” care arată o mică previzualizare a articolului când se trece cu mausul peste o legătură spre titlul său.

Dacă utilitatea este activată, utilizatorii își pot personaliza foile de stil și pot configura partea client de JavaScript pentru a fi executată la afișarea paginilor. Asta a permis ca pe Wikipedia să apară un mare număr de unelte și ajutoare dezvoltate prin wiki, schimbate între utilizatori. Astfel, popupul de navigare Lupin este o unealtă JavaScript care arată o mică previzualizare a articolului când se trece cu mausul peste o legătură spre titlul său și oferă comenzi rapide spre funcțiile de întreținere apelate frecvent.[13] Alt exemplu este wikEd, un puternic editor de texte integrat MediaWiki care scoate în evidență sintaxa și are funcția de căutare-înlocuire.[14]

Toată interfața utilizator a MediaWiki poate fi editată de utilizatori chiar prin wiki, dacă au permisiunile cerute (de „administrator”). Asta se face în spațiul de nume special, cu prefixul „MediaWiki:”, în care fiecare pagină conține un anumit mesaj din interfața utilizator. Spațiul de nume „MediaWiki:” a fost folosit la început și pentru crearea blocurilor de text ale utilizatorului, care să fie încărcate dinamic în alte pagini folosind o sintaxă specială. Acestea însă mai târziu au fost mutate în propriul lor spațiu de nume „Format:”.

Formatele sunt blocuri de text care sunt încărcate dinamic în alte pagini când acest lucru este cerut. Sintaxa pentru apelarea formatelor este pur și simplu o legătură, plasată între perechi de acolade, de exemplu „{{wikizare}}”, care în acest caz apelează formatul Format:wikizare acolo unde este pusă legătura. Formatele permit parametri, astfel că unele părți din text pot fi înlocuite cu texte adecvate fiecărui caz particular. O altă metodă, numită substituție în format, apelată adăugând subst: la începutul formatului inserează conținutul formatului în pagina respectivă la fel ca copy/paste în loc să încarce formatul în mod dinamic la încărcarea paginii. Asta, deși face ca formatele să nu fie folosite în mod unitar, are uneori avantaje și poate reduce încărcarea serverelor.

Formatele se folosesc în diferite scopuri, ca:

  • Etichete care semnalează diferite probleme ale unui articol (ex.: PDVN, lipsă categorizare etc).
  • Crearea tabelelor, care pot fi complexe, tabele folosite în mai multe pagini, în care aspectul este păstrat și se schimbă doar conținutul, prin parametri.
  • Mesaje standard către utilizatori (ex.: avertismente, blocări).

În MediaWiki interfața utilizator este în diverse limbi. Se poate defini și un limbaj pentru însuși conținutul wiki, care să fie trimis ca parametru „Content-Language” în antetul HTTP și ca atribut „lang” în HTML.

Codul MediaWiki permite apelul (engleză callback) diferitelor subprograme care extind posibilitățile. Asta permite programatorilor să scrie extensii fără a modifica nucleul și fără să trebuiască să trimită codul (programul) lor la WikiMedia pentru a fi inclus. Instalarea unei extensii se face de obicei prin simpla adăugare a unei linii într-un fișier de configurare. Totuși, uneori este nevoie și de manevre suplimentare, ca actualizarea unei baze de date.

Extensii[modificare | modificare sursă]

MediaWiki se dezvoltă constant și datorită extensiilor sale își găsește aplicabilitatea în noi domenii. Multe dintre extensii sunt simple scripturi care permit încorporarea de conținut ca de exemplu din Adobe Flash sau formulare HTML. Altele, ca Semantic MediaWiki, dezvoltă sintaxa wiki, permițând adăugarea relațiilor structurate și a atributelor la paginile (v. semantic web). Exemple de extensii care îmbunătățesc wiki sunt:

  • Extensii de evaluare
  • Extensii care sugerează categorii
  • Includere RSS feed
  • Includere Flash
  • Includere YouTube

Wikimedia Foundation dispune de servere cu Subversion unde sunt găzduite diverse extensii, a căror listă se poate găsi pe situl MediaWiki. Există și alte situri care se ocupă cu dezvoltarea sau asigură suportul extensiilor.

Acces și grupuri[modificare | modificare sursă]

MediaWiki oferă un set de utilități pentru restricționarea accesului și definirea grupurilor de utilizatori, însă chestiunile de acces ale paginilor nu sunt o prioritate. De exemplu, deocamdată nu se pot defini permisiuni de acces în funcție de spațiile de nume. Motoare wiki ca TWiki, MoinMoin și WikkaWiki sunt mai flexibile cu privire la mecanismele de securitate avansate ca Access Control List.

Performanțe[modificare | modificare sursă]

Deoarece MediaWiki este folosit pe unul dintre siturile cu cel mai mare trafic de pe Internet, Wikipedia, optimizarea performanțelor și posibilităților sale de dezvoltare sunt foarte importante. MediaWiki oferă suport pentru Squid cache[15] replicarea bazelor de date în sistem load balancing,[16] cache la client, memcached[17] sau cache pe bază de tabele pentru procese solicitate des, și cozi de așteptare la operațiunile asupra bazelor de date.

Softul corespunde pentru centre care găzduiesc numeroase wikipedii, ca Wikimedia, care în decembrie 2007 avea circa 750 de wikipedii. Totuși, MediaWiki nu are utilități native pentru gestionarea acestor centre.

Limitări[modificare | modificare sursă]

În afară de lipsa susmenționată privind WYSIWYG, documentația se găsește numai online (nu există manuale tipărite). Instalarea și utilizarea softului MediaWiki nu este intuitivă pentru utilizatorii fără experiență în domeniul computerelor.

Sintaxa de facto MediaWiki este cea a interpretorului (engleză parser) și nu este definită o sintaxă formală. Deoarece nu există o formalizare, de ex. în forma extinsă Backus–Naur (EBNF), există dificultăți inerente la crearea unui editor WYSIWYG sau la portarea sintaxei în alte limbaje. Este în lucru formalizarea gramaticii în ANTLR (ANother Tool for Language Recognition).[18][19]

În plus, nu există vreo versiune offline a MediaWiki care să permită utilizatorilor să modifice paginile în clientul lor offline, iar apoi aceste pagini să fie trimise automat la server la reconectare, într-un mod de lucru asemănător cu operațiile client-server ale Lotus Notes. De asemenea, un client offline MediaWiki ar putea fi util utilizatorilor la reținerea (backup) paginilor importante.

Note[modificare | modificare sursă]

  1. ^ en WikiStats by S23 - List of largest wikis. http://s23.org/wikistats/wikis_html.php. 
  2. ^ Ex.: http://developer.novell.com/ ; http://en.opensuse.org/ ; http://www.ifolder.com/
  3. ^ en David Weinberger (2007). Everything Is Miscellaneous: The Power of the New Digital Disorder. Times Books. pp. 99. ISBN 0-8050-8043-0 
  4. ^ en MediaWiki history”. MediaWiki website. http://meta.wikimedia.org/wiki/MediaWiki_history. Accesat la 19 iulie 2007. 
  5. ^ en Wikipedia and MediaWiki”. Presentation MediaWiki development (video). http://www.youtube.com/watch?v=DWef69ItVrU. Accesat la 30 ianuarie 2008. 
  6. ^ en Mayer, Daniel. „Phase IV, Wikibooks.org/.com and WikimediaFoundation.org/.com (was Wikis and uniformity)”. Wikipedia-L mailing list archives. http://lists.wikimedia.org/pipermail/wikipedia-l/2003-July/011021.html. 
  7. ^ en Wikimedia contributors (10 ianuarie 2007). „International logo contest/results”. Meta-wiki. Wikimedia Foundation. http://meta.wikimedia.org/w/index.php?title=International_logo_contest/Results&oldid=509000. Accesat la 14 martie 2007. 
  8. ^ en Wikimedia contributors (17 ianuarie 2007). „Historical/Logo history”. Meta-wiki. Wikimedia]Foundation. http://meta.wikimedia.org/w/index.php?title=Meta:Historical/Logo_history&oldid=513925. Accesat la 14 martie 2007. 
  9. ^ en Test Wikipedia's About page
  10. ^ Sintaxa actuală, cu paranteze drepte duble.
  11. ^ Capitalizarea unor litere, care astfel semnalau legătura, de exemplu PageMaker, PlayStation.
  12. ^ en Compară arborele categoriilor lui Erik Zachte generat pentru categoriile Wikipedia.
  13. ^ en "Lupin". „Wikipedia:Tools/Navigation popups. http://en.wikipedia.org/wiki/Wikipedia:Tools/Navigation_popups. 
  14. ^ en "Cacycle". „wikEd. http://en.wikipedia.org/wiki/User:Cacycle/wikEd. 
  15. ^ Software pentru servere proxy pentru cache,
  16. ^ Distribuirea pe hardware multiple utilizate în paralel.
  17. ^ Un sistem de memorie cache distribuită
  18. ^ en Lista de discuții Wikitext-L
  19. ^ en Proiectul specificațiilor de marcare (mediawiki.org)

Legături externe[modificare | modificare sursă]