MediaWiki
De la Wikipedia, enciclopedia liberă
| Întreţinere: | Wikimedia, Brion Vibber (director de versiuni) |
|---|---|
| Versiune iniţială: | 25 January 2002 |
| Scris în: | PHP |
| SO: | Diverse |
| Platformă: | Multiplă |
| Tip: | Wiki |
| Licenţă: | licenţa Publică Generală GNU |
| Disponibil în română: | |
| Website: | 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.
Cuprins |
[modifică] Istoric
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.
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 |
[modifică] Istoricul versiunilor
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 |
|
| 1.2 | 24 martie 2004 | Note privind versiunea |
|
| 1.3 | 11 august, 2004 | Note privind versiunea |
|
| 1.4 | 20 martie 2005 | Note privind versiunea, Suportul lingvistic |
|
| 1.5 (versiune nouă, compatibilă MySQL 3) |
5 octombrie 2005 | Note privind versiunea, Suportul lingvistic |
|
| 1.6 (versiune nouă, compatibilă PHP 4) |
5 aprilie 2006 | Note privind versiunea, Suportul lingvistic |
|
| 1.7 | 7 iulie 2006 | Note privind versiunea, Suportul lingvistic |
|
| 1.8 | 10 octombrie 2006 | Note privind versiunea, Suportul lingvistic |
|
| 1.9 | 10 ianuarie 2007 | Note privind versiunea, Suportul lingvistic |
|
| 1.10 | 9 mai 2007 | Note privind versiunea, Suportul lingvistic |
|
| 1.11 | 10 septembrie 2007 | Note privind versiunea, Suportul lingvistic |
|
| 1.12 | 20 martie 2008 | Note privind versiunea, Suportul lingvistic |
|
| 1.13 | 1.13 a început în februarie 2008 | Note privind versiunea, Suportul lingvistic |
|
| 1.14 | 1.14 a început în iulie 2008 | Note privind versiunea, Suportul lingvistic |
(Încă nimic) |
[modifică] Utilităţi de bază
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.
[modifică] Conţinut bogat
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.
[modifică] Structurare
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]
[modifică] Configurare
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.
[modifică] Extensii
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.
- MediaWiki Users - Forumul neoficial de suport al MediaWiki
- Mediawiki.org - Matricea extensiilor la mediawiki.org
- Leerwiki - Extensii Mediawiki (în limba olandeză)
- MediaWiki Extensii @ Googlecode
[modifică] Acces şi grupuri
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.
[modifică] Performanţe
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.
[modifică] Limitări
Î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.
[modifică] Note
- ^ en WikiStats by S23 - List of largest wikis.
- ^ Ex.: http://developer.novell.com/ ; http://en.opensuse.org/ ; http://www.ifolder.com/
- ^ en David Weinberger (2007). Everything Is Miscellaneous: The Power of the New Digital Disorder, 99, Times Books. ISBN 0805080430.
- ^ en MediaWiki history. MediaWiki website. Accesat la data de 2007-07-19.
- ^ en Wikipedia and MediaWiki. Presentation MediaWiki development (video). Accesat la data de 2008-01-30.
- ^ en Mayer, Daniel. Phase IV, Wikibooks.org/.com and WikimediaFoundation.org/.com (was Wikis and uniformity). Wikipedia-L mailing list archives.
- ^ en Wikimedia contributors (2007-01-10). International logo contest/results. Meta-wiki. Wikimedia Foundation. Accesat la data de 2007-03-14.
- ^ en Wikimedia contributors (2007-01-17). Historical/Logo history. Meta-wiki. Wikimedia]Foundation. Accesat la data de 2007-03-14.
- ^ en Test Wikipedia's About page
- ^ Sintaxa actuală, cu paranteze drepte duble.
- ^ Capitalizarea unor litere, care astfel semnalau legătura, de exemplu PageMaker, PlayStation.
- ^ en Compară arborele categoriilor lui Erik Zachte generat pentru categoriile Wikipedia.
- ^ en "Lupin". Wikipedia:Tools/Navigation popups.
- ^ en "Cacycle". wikEd.
- ^ Software pentru servere proxy pentru cache,
- ^ Distribuirea pe hardware multiple utilizate în paralel.
- ^ Un sistem de memorie cache distribuită
- ^ en Lista de discuţii Wikitext-L
- ^ en Proiectul specificaţiilor de marcare (mediawiki.org)
[modifică] Legături externe
- en Pagina oficială MediaWiki, cu huburi pentru utilizatori, administratori de sistem şi programatori.
- en MediaWiki la Meta-Wiki, situl meta al Wikimedia.
- #mediawiki la freenode.