مدیاویکی یک نرمافزار ویکی رایگان و منبع باز است که در ابتدا توسط Magnus Manske برای استفاده در ویکیپدیا در 25 ژانویه 2002 توسعه یافت و توسط لی دانیل کراکر بهبود یافت ، [5] [6] پس از آن توسعه توسط بنیاد ویکیمدیا هماهنگ شد . چندین وبسایت میزبان ویکی در سراسر اینترنت و همچنین اکثر وبسایتهایی که توسط بنیاد ویکیمدیا میزبانی میشوند، از جمله ویکیپدیا، ویکیواژه ، ویکیمدیا کامانز ، ویکیگفتار ، متا ویکی و ویکیداده را تأمین میکند که بخش بزرگی از الزامات مجموعهای را برای نرمافزار تعریف میکنند. [7] مدیاویکی به زبان برنامه نویسی PHP نوشته شده است و تمام محتوای متنی را در یک پایگاه داده ذخیره می کند . این نرم افزار برای مدیریت کارآمد پروژه های بزرگ بهینه شده است که می توانند ترابایت محتوا و صدها هزار بازدید در ثانیه داشته باشند. [7] [8] از آنجایی که ویکیپدیا یکی از بزرگترین و پربازدیدترین وبسایتهای جهان است، دستیابی به مقیاسپذیری از طریق لایههای متعدد ذخیرهسازی و تکثیر پایگاه داده یکی از دغدغههای اصلی توسعهدهندگان بوده است. یکی دیگر از جنبه های مهم مدیاویکی بین المللی شدن آن است. رابط آن به بیش از 400 زبان در دسترس است. [9] این نرم افزار دارای بیش از 1000 تنظیمات پیکربندی [10] و بیش از 1800 پسوند برای امکان افزودن یا تغییر ویژگی های مختلف در دسترس است. [11] مدیاویکی علاوه بر استفاده در سایتهای ویکیمدیا، بهعنوان یک سیستم مدیریت دانش و مدیریت محتوا در وبسایتهایی مانند Fandom ، wikiHow و تأسیسات داخلی اصلی مانند Intellipedia و Diplopedia استفاده شده است .
مدیاویکی رایگان و منبع باز است و تحت شرایط مجوز عمومی عمومی گنو نسخه 2 یا هر نسخه بعدی توزیع می شود. اسناد آن، واقع در وبسایت رسمی آن در www.mediawiki.org، تحت مجوز Creative Commons BY-SA 4.0 و تا حدی در مالکیت عمومی منتشر شده است . [12] به طور خاص، راهنماها و سایر محتواها در MediaWiki.org دارای مجوز Creative Commons هستند ، در حالی که مجموعه صفحات راهنما که قرار است آزادانه در نصبهای جدید ویکی کپی شوند و/یا با نرمافزار MediaWiki توزیع شوند، مالکیت عمومی است. این کار برای از بین بردن مشکلات قانونی ناشی از ورود صفحات راهنما به ویکی ها با مجوزهایی که با مجوز Creative Commons ناسازگار هستند، انجام شد. [13] توسعه مدیاویکی به طور کلی استفاده از قالبهای رسانهای منبع باز را ترجیح داده است . [14]
مدیاویکی دارای یک جامعه داوطلب فعال برای توسعه و نگهداری است. به کاربرانی که با ارسال وصلهها به پروژه کمک کردهاند ، عموماً در صورت درخواست، اجازه داده میشود تا ویرایشهای مربوط به مخزن Git / Gerrit پروژه را انجام دهند . [15] همچنین برنامه نویسان حقوق بگیری وجود دارند که در درجه اول پروژه هایی را برای بنیاد ویکی مدیا توسعه می دهند . توسعه دهندگان مدیاویکی با تسهیل انتساب مربیان به دانش آموزانی که مایل به کار بر روی پروژه های اصلی و افزونه مدیاویکی هستند، در تابستان کد گوگل شرکت می کنند. [16] در طول سال قبل از نوامبر 2012، حدود دویست توسعهدهنده وجود داشت که تغییراتی را در هسته یا برنامههای افزودنی MediaWiki انجام داده بودند. [17] نسخههای اصلی مدیاویکی تقریباً هر شش ماه یک بار با گرفتن عکسهای فوری از شاخه توسعه تولید میشوند که به طور مداوم در حالت قابل اجرا نگهداری میشود. [18] نسخههای جزئی ، یا انتشار نقطهای ، در صورت نیاز برای تصحیح اشکالات (به ویژه مشکلات امنیتی) صادر میشوند . مدیاویکی بر اساس یک مدل توسعه پیوسته یکپارچه توسعه یافته است ، که در آن تغییرات نرم افزاری به طور منظم به سایت های ویکی مدیا منتقل می شوند. [18] مدیاویکی همچنین دارای یک ردیاب اشکال عمومی به نام phabricator.wikimedia.org است که Phabricator را اجرا می کند . این سایت همچنین برای درخواست های ویژگی و بهبود استفاده می شود .
هنگامی که ویکیپدیا در ژانویه 2001 راهاندازی شد، بر روی یک سیستم نرمافزاری ویکی موجود، UseModWiki اجرا میشد . UseModWiki به زبان برنامه نویسی Perl نوشته شده است و تمام صفحات ویکی را در فایل های متنی ( txt . ) ذخیره می کند. این نرم افزار به زودی ثابت کرد که هم از نظر عملکرد و هم عملکرد محدود است. در اواسط سال 2001، مگنوس مانسک - توسعهدهنده و دانشجوی دانشگاه کلن ، و همچنین ویرایشگر ویکیپدیا- شروع به کار بر روی نرمافزار جدیدی کرد که جایگزین UseModWiki میشد که بهطور خاص برای استفاده توسط ویکیپدیا طراحی شده بود. این نرم افزار به زبان برنامه نویسی PHP نوشته شده است و تمامی اطلاعات آن را در پایگاه داده MySQL ذخیره می کند . نرم افزار جدید تا 24 آگوست 2001 تا حد زیادی توسعه یافت و کمی بعد یک ویکی آزمایشی برای آن ایجاد شد.
اولین پیادهسازی کامل این نرمافزار، متا ویکیپدیای جدید در 9 نوامبر 2001 بود. تمایل به پیادهسازی فوری آن در ویکیپدیای انگلیسی زبان وجود داشت. [19] با این حال، Manske در مورد هر گونه اشکال احتمالی که به وب سایت نوپا در طول دوره امتحانات نهایی که باید بلافاصله قبل از کریسمس تکمیل می کرد، نگران بود . [20] این منجر به تأخیر در راه اندازی ویکی پدیای انگلیسی زبان تا 25 ژانویه 2002 شد. سپس این نرم افزار به تدریج در تمام سایت های ویکی پدیا زبان آن زمان مستقر شد. این نرمافزار بهعنوان «اسکریپت PHP» و «فاز دوم» نامیده میشود، با نام «فاز اول» که بهطور عطف به ماسبق به استفاده از UseModWiki داده میشود.
افزایش استفاده به زودی باعث بروز مشکلات بارگذاری مجدد شد و کمی بعد، بازنویسی دیگری از نرم افزار آغاز شد. این بار توسط لی دانیل کروکر انجام شد که به "فاز III" معروف شد. این نرمافزار جدید همچنین به زبان PHP، با باطن MySQL نوشته شده است، و رابط اصلی نرمافزار فاز II را حفظ میکند، اما با قابلیتهای اضافهشده مقیاسپذیری گستردهتر . نرم افزار "فاز III" در جولای 2002 در ویکی پدیا راه اندازی شد.
بنیاد ویکیمدیا در 20 ژوئن 2003 اعلام شد. در ژوئیه، دانیل مایر، مشارکتکننده ویکیپدیا، نام «MediaWiki» را برای این نرمافزار بهعنوان بازی در «ویکیمدیا» پیشنهاد کرد. [21] نام مدیاویکی به تدریج در اوت 2003 شروع شد. این نام به دلیل شباهت (عمدی) آن با نام "ویکی مدیا" (که خود شبیه به "ویکی پدیا" است) اغلب باعث سردرگمی شده است. [22]
لوگوی قدیمی محصول توسط اریک مولر ، با استفاده از یک عکس گل گرفته شده توسط فلورانس نیبارت-دووار ، ایجاد شد و در اصل به مسابقه لوگوی لوگوی جدید ویکیپدیا، که از 20 جولای تا 27 اوت 2003 برگزار شد، ارسال شد. [23] [24 ] ] این لوگو در جایگاه سوم قرار گرفت و به جای ویکیپدیا، نشاندهنده مدیاویکی بود و لوگوی رتبه دوم برای بنیاد ویکیمدیا استفاده شد. [25] پرانتزهای مربع دوتایی ( [[ ]] ) نماد نحوی است که مدیاویکی برای ایجاد پیوندها به سایر صفحات ویکی استفاده می کند. در حالی که گل آفتابگردان نشان دهنده تنوع مطالب در ویکی پدیا، رشد مداوم آن و طبیعت بیابانی است. [26]
بعدابروک ویبر ، مدیر فنی بنیاد ویکی مدیا ، [27] نقش مدیر انتشار را بر عهده گرفت . [28] [29]
نقاط عطف اصلی در توسعه مدیاویکی عبارتند از: سیستم طبقه بندی (2004); توابع تجزیه کننده ، (2006); تجدید نظرهای پرچمدار , (2008); [30] " ResourceLoader "، یک سیستم تحویل برای CSS و جاوا اسکریپت (2011). [31] و VisualEditor ، یک پلت فرم ویرایش "آنچه می بینید همان چیزی است که به دست می آورید" ( WYSIWYG ) (2013). [32]
مسابقه طراحی لوگوی جدید در 22 ژوئن 2020 آغاز شد، زیرا لوگوی قدیمی یک تصویر بیت مپ بود و دارای "جزئیات بالا" بود که منجر به مشکلاتی در هنگام رندر در وضوح بالا و پایین می شد. پس از دو دور رایگیری، لوگوی جدید و فعلی مدیاویکی که توسط Serhio Magpie طراحی شده بود، در 24 اکتبر 2020 انتخاب شد و در تاریخ 1 آوریل 2021 رسما تصویب شد. [33]
اولین نسخه مدیاویکی، 1.1، در دسامبر 2003 منتشر شد.
معروف ترین کاربرد مدیاویکی در ویکی پدیا و تا حدی دیگر پروژه های بنیاد ویکی مدیا بوده است. Fandom ، یک سرویس میزبانی ویکی که قبلاً ویکیا نامیده می شد، در مدیاویکی اجرا می شود. ویکیهای عمومی دیگری که در مدیاویکی اجرا میشوند عبارتند از wikiHow و SNPedia . ویکی لیکس به عنوان یک سایت مبتنی بر مدیاویکی شروع شد، اما دیگر ویکی نیست.
تعدادی از دایرهالمعارفهای جایگزین ویکی ویکیپدیا در مدیاویکی اجرا میشوند، از جمله Citizendium ، Metapedia ، Scholarpedia و Conservapedia . MediaWiki همچنین توسط تعداد زیادی از شرکتها از جمله Novell و Intel به صورت داخلی استفاده میشود . [34] [35]
کاربردهای قابل توجه MediaWiki در داخل دولت ها عبارتند از Intellipedia ، مورد استفاده توسط جامعه اطلاعاتی ایالات متحده ، Diplopedia ، مورد استفاده توسط وزارت امور خارجه ایالات متحده ، و milWiki، بخشی از milSuite که توسط وزارت دفاع ایالات متحده استفاده می شود . آژانسهای سازمان ملل متحد مانند برنامه توسعه سازمان ملل متحد و اینستراو تصمیم گرفتند ویکیهای خود را با استفاده از مدیاویکی پیادهسازی کنند، زیرا «این نرمافزار ویکیپدیا را اجرا میکند و بنابراین تضمین میشود که کاملاً آزمایش شود، در آینده به خوبی توسعه خواهد یافت، و تکنسینهای آینده در این زمینهها توسعه خواهند یافت. ویکیها بیشتر از هر نرمافزار ویکی دیگری در معرض مدیاویکی قرار خواهند گرفت." [36]
بنیاد نرم افزار آزاد از مدیاویکی برای پیاده سازی سایت LibrePlanet استفاده می کند . [37]
MediaWiki مجموعه ای از ویژگی های اصلی غنی و مکانیزمی برای پیوست کردن برنامه های افزودنی برای ارائه عملکرد اضافی ارائه می دهد.
به دلیل تاکید شدید بر چندزبانگی در پروژه های ویکی مدیا، بین المللی سازی و بومی سازی مورد توجه توسعه دهندگان قرار گرفته است. رابط کاربری به طور کامل یا جزئی به بیش از 400 زبان در translatewiki.net ترجمه شده است ، [9] و می تواند توسط مدیران سایت سفارشی شود (کل رابط از طریق ویکی قابل ویرایش است).
چندین برنامه افزودنی، به ویژه آنهایی که در بسته برنامه افزودنی زبان مدیاویکی گردآوری شده اند، برای تقویت بیشتر چندزبانگی و بین المللی شدن مدیاویکی طراحی شده اند.
نصب مدیاویکی مستلزم آن است که کاربر دارای امتیازات مدیریتی روی سروری باشد که هم PHP و هم نوع سازگار از پایگاه داده SQL را اجرا می کند. برخی از کاربران دریافتند که راهاندازی یک میزبان مجازی مفید است اگر اکثر سایتهای شخصی تحت چارچوبی اجرا شوند (مانند Zope یا Ruby on Rails ) که تا حد زیادی با MediaWiki ناسازگار است. [38] میزبانی ابری می تواند نیاز به استقرار سرور جدید را برطرف کند. [39]
یک اسکریپت PHP نصب از طریق یک مرورگر وب برای مقداردهی اولیه تنظیمات ویکی قابل دسترسی است. کاربر را وادار میکند تا حداقل مجموعهای از پارامترهای مورد نیاز را داشته باشد و تغییرات بیشتر، مانند فعال کردن آپلود، [40] افزودن لوگوی سایت، [41] و نصب برنامههای افزودنی را با تغییر تنظیمات پیکربندی موجود در فایلی به نام انجام میدهد LocalSettings.php
. [42] برخی از جنبه های مدیاویکی را می توان از طریق صفحات خاص یا با ویرایش صفحات خاص پیکربندی کرد. به عنوان مثال، فیلترهای سوء استفاده را می توان از طریق یک صفحه خاص پیکربندی کرد، [43] و ابزارهای خاصی را می توان با ایجاد صفحات جاوا اسکریپت در فضای نام MediaWiki اضافه کرد. [44] انجمن مدیاویکی یک راهنمای نصب جامع منتشر می کند. [45]
یکی از اولین تفاوتهای میان MediaWiki (و نسخه قبلی آن، UseModWiki ) و سایر موتورهای ویکی، استفاده از « پیوندهای رایگان » به جای CamelCase بود . زمانی که مدیاویکی ایجاد شد، برای ویکیها معمول بود که به متنی مانند «WorldWideWeb» برای ایجاد پیوند به صفحهای در مورد وب جهانی نیاز داشته باشند . از سوی دیگر، پیوندها در مدیاویکی توسط کلمات اطراف با دو براکت مربع ایجاد میشوند و هر فاصله بین آنها دست نخورده باقی میماند، به عنوان مثال [[World Wide Web]]
. این تغییر به منظور ایجاد یک دایره المعارف منطقی بود، جایی که دقت در عناوین مهم است.
مدیاویکی از یک نشانه گذاری ویکی سبک و قابل توسعه [46] استفاده می کند که برای استفاده و یادگیری آسان تر از HTML طراحی شده است . ابزارهایی برای تبدیل محتوا مانند جداول بین نشانه گذاری مدیاویکی و HTML وجود دارد. [47] تلاشهایی برای ایجاد یک مشخصه نشانهگذاری مدیاویکی انجام شده است، اما به نظر میرسد که توافق نظر حاصل شده است که ویکیکد به قوانین گرامری حساس به زمینه نیاز دارد . [48] [49] مقایسه جانبی زیر تفاوت بین نشانه گذاری ویکی و HTML را نشان می دهد:
(نقل قول بالا از ماجراهای آلیس در سرزمین عجایب نوشته لوئیس کارول )
ابزارهای پیشفرض ویرایش صفحه مدیاویکی تا حدودی چالشبرانگیز برای یادگیری توصیف شدهاند. [50] یک نظرسنجی از دانش آموزانی که برای استفاده از ویکی مبتنی بر MediaWiki تعیین شده بودند، نشان داد که وقتی از آنها یک سوال باز در مورد مشکلات اصلی ویکی پرسیده شد، 24٪ به مشکلات فنی در قالببندی اشاره کردند، به عنوان مثال «نمیتوانم بفهمم چگونه میتوان یک نمی توانم بفهمم که چگونه یک پیوند را با کلمات نشان دهم. [51]
برای آسانتر کردن ویرایش صفحات طولانی، مدیاویکی امکان ویرایش زیربخشی از یک صفحه (همانطور که با سربرگ آن مشخص میشود) را میدهد. یک کاربر ثبت نام شده همچنین می تواند نشان دهد که ویرایش جزئی است یا خیر. تصحیح املا، دستور زبان یا نقطه گذاری نمونه هایی از ویرایش های جزئی هستند، در حالی که افزودن پاراگراف های متن جدید نمونه ای از ویرایش های غیر جزئی است.
گاهی اوقات زمانی که یک کاربر در حال ویرایش است، کاربر دوم ویرایش را در همان قسمت از صفحه ذخیره می کند. سپس، هنگامی که اولین کاربر سعی می کند صفحه را ذخیره کند، یک تضاد ویرایش رخ می دهد. سپس به کاربر دوم فرصتی داده می شود تا محتوای خود را در صفحه ادغام کند، همانطور که اکنون پس از ذخیره صفحه کاربر اول وجود دارد.
رابط کاربری مدیاویکی به زبان های مختلف بومی سازی شده است. همچنین میتوان زبانی برای خود محتوای ویکی تنظیم کرد تا در سرصفحه HTTP "Content-Language" و ویژگی HTML "lang" ارسال شود .
مدیاویکی دارای یک وب API قابل توسعه ( رابط برنامه نویسی کاربردی ) است که دسترسی مستقیم و سطح بالا به داده های موجود در پایگاه داده های مدیاویکی را فراهم می کند. برنامه های مشتری می توانند از API برای ورود به سیستم، دریافت داده ها و ارسال تغییرات استفاده کنند. API از کلاینت های نازک جاوا اسکریپت مبتنی بر وب و برنامه های کاربردی کاربر نهایی (مانند ابزارهای مبارزه با خرابکاران) پشتیبانی می کند. API را می توان توسط باطن یک وب سایت دیگر دسترسی داشت. [52] یک کتابخانه گسترده ربات پایتون ، Pywikibot ، [53] و یک ابزار نیمه خودکار محبوب به نام AutoWikiBrowser ، همچنین با API رابط دارد. [54] API از طریق URLهایی مانند . در این مورد، پرس و جو از ویکی پدیا برای اطلاعات مربوط به 10 ویرایش آخر سایت می خواهد. یکی از مزایای درک شده API استقلال زبان آن است. به اتصالات HTTP از مشتریان گوش می دهد و می تواند پاسخی را در قالب های مختلف مانند XML ، PHP سریال یا JSON ارسال کند . [55] کد مشتری برای ارائه لایه های انتزاعی به API توسعه یافته است . [56]https://en.wikipedia.org/w/api.php?action=query&list=recentchanges
مدیاویکی از محتوای غنی تولید شده از طریق نحو تخصصی پشتیبانی می کند. به عنوان مثال، این نرم افزار با پشتیبانی اختیاری برای رندر فرمول های ریاضی با استفاده از LaTeX و یک تجزیه کننده ویژه نوشته شده در OCaml ارائه می شود . عملکردهای مشابه برای سایر محتواها، از جدول زمانی گرافیکی تا ترسیم ریاضی و نمرات موسیقی گرفته تا هیروگلیف های مصری ، از طریق برنامه های افزودنی در دسترس است.
این نرم افزار در برخورد با طیف گسترده ای از فایل های رسانه ای آپلود شده قدرتمندتر شده است. غنیترین عملکرد آن در حوزه تصاویر است، جایی که گالریهای تصویر و تصاویر کوچک را میتوان با سهولت نسبی تولید کرد. همچنین از فراداده Exif پشتیبانی می شود . استفاده از مدیاویکی برای اجرای Wikimedia Commons ، یکی از بزرگترین آرشیوهای رسانه محتوای رایگان ، نیاز به عملکرد بیشتر در این زمینه را برانگیخته است.
برای ویرایش WYSIWYG، VisualEditor برای استفاده در MediaWiki در دسترس است که فرآیند ویرایش را برای ویرایشگران ساده میکند و از MediaWiki 1.35 به صورت بستهبندی شده است. [57] پسوندهای دیگری برای مدیریت ویرایش WYSIWYG در درجات مختلف وجود دارد. [58]
یکی از ویژگیهای مدیاویکی برای کمک به ردیابی ویرایشها، ویژگی تغییرات اخیر است که فهرستی از ویرایشهای اخیر ویکی را ارائه میکند. این فهرست حاوی اطلاعات اولیه در مورد آن ویرایشها مانند کاربر ویرایشکننده، خلاصه ویرایش، صفحه ویرایش شده، و همچنین هر برچسبی است (مثلاً " وندالیسم احتمالی ") [59] که توسط فیلترهای سوء استفاده قابل تنظیم و سایر برنامههای افزودنی برای کمک به مبارزه با موارد غیر مفید اضافه شده است. ویرایش ها [60] در ویکیهای فعالتر، ویرایشهای زیادی انجام میشود که ردیابی تغییرات اخیر بهصورت دستی دشوار است. نرم افزار ضد خرابکاری، از جمله ابزارهای به کمک کاربر، [61] گاهی اوقات در چنین ویکی هایی برای پردازش موارد تغییرات اخیر استفاده می شود. بار سرور را می توان با ارسال یک فید پیوسته از تغییرات اخیر به یک کانال IRC که این ابزارها می توانند نظارت کنند، کاهش داد و نیاز آنها به ارسال درخواست برای فید تغییرات اخیر تازه شده به API را از بین برد. [62] [63]
یکی دیگر از ابزارهای مهم فهرست پیگیری است. هر کاربر وارد شده دارای یک لیست پیگیری است که کاربر می تواند هر صفحه ای را که می خواهد به آن اضافه کند. هنگامی که ویرایشی در یکی از آن صفحات انجام می شود، دفعه بعد که بازخوانی می شود، خلاصه ای از آن ویرایش در فهرست پیگیری ظاهر می شود. [64] همانند صفحه تغییرات اخیر، ویرایشهای اخیر که در فهرست پیگیری ظاهر میشوند حاوی پیوندهای قابل کلیک برای بررسی آسان تاریخچه مقاله و تغییرات خاص ایجاد شده هستند.
همچنین قابلیت بررسی تمامی ویرایش های انجام شده توسط هر کاربر خاص وجود دارد. به این ترتیب، اگر ویرایشی مشکلدار تشخیص داده شود، میتوان سایر ویرایشهای کاربر را برای مشکل بررسی کرد.
مدیاویکی به شخص اجازه می دهد تا به نسخه های خاصی از مقالات پیوند دهد. این برای جامعه علمی مفید بوده است، زیرا داوران متخصص می توانند مقالات را تجزیه و تحلیل کنند، آنها را بهبود بخشند و پیوندهایی به نسخه قابل اعتماد آن مقاله ارائه دهند. [65]
پیمایش از طریق ویکی عمدتاً از طریق ویکی پیوندهای داخلی انجام می شود. ویکیپیوندهای مدیاویکی تشخیص وجود صفحه را پیادهسازی میکنند، که در آن پیوند در صورتی که صفحه هدف در ویکی محلی وجود داشته باشد آبی و اگر وجود نداشته باشد قرمز است. اگر کاربر روی یک پیوند قرمز کلیک کند، از او خواسته می شود تا مقاله ای با آن عنوان ایجاد کند. تشخیص وجود صفحه این امکان را برای کاربران ایجاد میکند که مقالات «ویکیشده» را ایجاد کنند - یعنی مقالاتی که حاوی پیوندهایی به موضوعات مرتبط دیگر هستند - بدون اینکه آن مقالات دیگر هنوز موجود باشند.
پیوندهای اینترویکی تقریباً مانند فضاهای نام عمل می کنند. مجموعه ای از پیشوندهای بین ویکی را می توان به گونه ای پیکربندی کرد که به عنوان مثال، عنوان صفحه ای را ایجاد کند تا wikiquote:Jimbo Wales
کاربر را به مقاله Jimbo Wales در ویکی نقل قول هدایت کند . [66] برخلاف ویکیپیوندهای داخلی، پیوندهای بین ویکی فاقد قابلیت تشخیص وجود صفحه هستند، و بر این اساس، هیچ راهی برای تشخیص خرابی پیوند بین ویکی آبی وجود ندارد.
پیوندهای بین زبانی پیوندهای ناوبری کوچکی هستند که در نوار کناری در اکثر پوستههای مدیاویکی نشان داده میشوند و مقالهای را با مقالات مرتبط به زبانهای دیگر در همان خانواده ویکی مرتبط میکنند. این میتواند جوامع خاص زبان را با یک زمینه بزرگتر، با همه ویکیها در یک سرور یا هر کدام در سرور خود، فراهم کند. [67]
قبلاً ویکیپدیا از پیوندهای بینزبانی برای پیوند دادن یک مقاله به مقالههای دیگر در همین موضوع در ویرایشهای دیگر ویکیپدیا استفاده میکرد. این با راه اندازی ویکی داده جایگزین شد. [68]
برگه های صفحه در بالای صفحات نمایش داده می شوند. این برگه ها به کاربران اجازه می دهد تا اقداماتی را انجام دهند یا صفحاتی را که مربوط به صفحه فعلی هستند مشاهده کنند. اقدامات پیش فرض موجود شامل مشاهده، ویرایش و بحث در مورد صفحه فعلی است. برگه های خاص نمایش داده شده به این بستگی دارد که آیا کاربر به ویکی وارد شده است یا خیر و آیا کاربر دارای امتیازات sysop در ویکی است یا خیر. به عنوان مثال، امکان جابجایی یک صفحه یا افزودن آن به فهرست تماشای افراد معمولاً محدود به کاربرانی است که وارد سیستم شده اند. مدیر سایت می تواند با استفاده از جاوا اسکریپت یا نصب برنامه های افزودنی، برگه ها را اضافه یا حذف کند. [69]
هر صفحه دارای یک صفحه تاریخچه مرتبط است که از آن کاربر می تواند به هر نسخه از صفحه که تا کنون وجود داشته است دسترسی داشته باشد و بین دو نسخه به انتخاب خود تفاوت ایجاد کند. مشارکتهای کاربران نه تنها در اینجا، بلکه از طریق گزینه «مشارکتهای کاربر» در نوار کناری نمایش داده میشوند. در مقالهای در سال 2004، کارل چالبورن و ترزا ریمان خاطرنشان کردند که «در حالی که این ویژگی ممکن است انحراف جزئی از روحیه مشارکتی و «بیخود» پاکدوستان ویکی باشد، میتواند برای مربیانی که نیاز به ارزیابی مشارکت و مشارکت دارند بسیار مفید باشد. از تک تک کاربران دانشجو." [70]
مدیاویکی ویژگیهای بسیاری را فراتر از لینکها برای ساختاردهی محتوا فراهم میکند. یکی از اولین ویژگی های این چنینی فضاهای نام است . یکی از اولین مشکلات ویکیپدیا، جداسازی محتوای دایرهالمعارفی از صفحات مربوط به تعمیر و نگهداری و بحثهای جمعی، و همچنین صفحات شخصی درباره ویراستاران دایرهالمعارف بود. فضاهای نام پیشوندهایی قبل از عنوان صفحه (مانند " User:
" یا " Talk:
") هستند که به عنوان توصیف کننده برای هدف صفحه عمل می کنند و به چندین صفحه با عملکردهای مختلف اجازه می دهند تحت عنوان یکسان وجود داشته باشند. به عنوان مثال، صفحه ای با عنوان " [[The Terminator]]
"، در فضای نام پیش فرض، می تواند فیلم 1984 با بازی آرنولد شوارتزنگر را توصیف کند ، در حالی که صفحه ای با عنوان " [[User:The Terminator]]
" می تواند نمایه ای باشد که کاربری را توصیف می کند که این نام را به عنوان نام مستعار انتخاب می کند. معمولاً، هر فضای نام دارای یک Talk:
فضای نام مرتبط است که می تواند برای بحث در مورد محتوای آن، مانند " User talk:
" یا " Template talk:
" استفاده شود. هدف از داشتن صفحات بحث این است که اجازه دهیم محتوا از بحث پیرامون محتوا جدا شود. [71] [72]
فضاهای نام را می توان به عنوان پوشه هایی مشاهده کرد که انواع مختلف اطلاعات یا عملکرد را از هم جدا می کنند. فضای نام سفارشی می تواند توسط مدیران سایت اضافه شود. 16 فضای نام به طور پیش فرض برای محتوا وجود دارد، با 2 فضای نام شبه برای Special:
صفحات ایجاد شده به صورت پویا و پیوندهای فایل های رسانه ای استفاده می شود. هر فضای نام در مدیاویکی شماره گذاری می شود: فضاهای نام صفحه محتوا دارای اعداد زوج و فضاهای نام صفحه بحث مرتبط با آنها دارای اعداد فرد هستند. [73]
کاربران می توانند با افزودن یک یا چند تگ دسته به متن محتوا، دسته بندی های جدیدی ایجاد کرده و صفحات و فایل هایی را به آن دسته ها اضافه کنند. افزودن این برچسب ها پیوندهایی را در پایین صفحه ایجاد می کند که خواننده را به لیست تمام صفحات آن دسته می برد و مرور مقالات مرتبط را آسان می کند. [74] استفاده از طبقه بندی برای سازماندهی محتوا به عنوان ترکیبی از موارد زیر توصیف شده است:
علاوه بر فضاهای نام، محتوا را می توان با استفاده از صفحات فرعی سفارش داد . این ویژگی ساده، خردههای خودکار الگو را [[Page title/Subpage title]]
از صفحه بعد از اسلش (در این مورد، "عنوان زیر صفحه") تا صفحه قبل از اسلش (در این مورد، "عنوان صفحه") فراهم میکند.
اگر این ویژگی فعال باشد، کاربران میتوانند شیتهای سبک خود را سفارشی کنند و جاوا اسکریپت سمت سرویس گیرنده را پیکربندی کنند تا با هر مشاهده صفحه اجرا شود. در ویکیپدیا، این امر منجر به ایجاد تعداد زیادی ابزار و کمکهای اضافی از طریق ویکی شده و بین کاربران به اشتراک گذاشته شده است. به عنوان مثال، پنجرههای ناوبری یک ابزار جاوا اسکریپت سفارشی است که پیشنمایش مقالات را هنگامی که کاربر روی پیوندها میچرخد، نشان میدهد و همچنین میانبرهایی را برای کارهای معمول تعمیر و نگهداری فراهم میکند. [76]
کل رابط کاربری مدیاویکی را می توان از طریق خود ویکی توسط کاربرانی که مجوزهای لازم را دارند (که معمولاً «مدیران» نامیده می شوند) ویرایش کرد. این کار از طریق یک فضای نام خاص با پیشوند "MediaWiki:" انجام می شود، جایی که هر عنوان صفحه یک پیام رابط کاربری خاص را مشخص می کند. با استفاده از یک افزونه، [77] همچنین این امکان برای کاربر وجود دارد که اسکریپتهای شخصی ایجاد کند، و با تغییر دادن گزینههای مناسب در صفحه تنظیمات کاربر، انتخاب کند که آیا اسکریپتهای خاص در سرتاسر سایت باید برای آنها اعمال شوند یا خیر.
فضای نام "MediaWiki:" در ابتدا برای ایجاد بلوک های متنی سفارشی نیز استفاده می شد که می توانستند به صورت پویا در صفحات دیگر با استفاده از یک نحو خاص بارگذاری شوند. این محتوا بعداً به فضای نام خود، "Template:" منتقل شد.
قالبها بلوکهای متنی هستند که هر زمان که آن صفحه درخواست شود، میتوانند به صورت پویا در صفحه دیگری بارگذاری شوند. این الگو یک پیوند ویژه در دو براکت فرفری است (به عنوان مثال " {{Disputed|date=October 2018}}
")، که الگو را (در این مورد در Template:Disputed قرار دارد ) فرا می خواند تا به جای فراخوانی الگو بارگیری شود.
الگوها اسناد ساختار یافته ای هستند که شامل جفت های ویژگی-مقدار هستند . آنها با پارامترهایی تعریف می شوند که وقتی در صفحه مقاله قرار می گیرند، مقادیری به آنها اختصاص می یابد . نام پارامتر با علامت تساوی از مقدار جدا می شود . دستهای از الگوها که به عنوان جعبه اطلاعات شناخته میشوند در ویکیپدیا برای جمعآوری و ارائه زیرمجموعهای از اطلاعات درباره موضوع آن، معمولاً در بالا (نمای تلفن همراه) یا گوشه بالا سمت راست (نمای دسکتاپ) سند استفاده میشوند.
یک روش مرتبط، به نام جایگزینی قالب (که با افزودن subst:
در ابتدای پیوند الگو نامیده می شود) محتویات قالب را در صفحه هدف وارد می کند (مانند عملیات کپی و چسباندن )، به جای بارگیری محتوای قالب به صورت پویا هر زمان که صفحه بارگذاری می شود. . این می تواند منجر به ناهماهنگی هنگام استفاده از الگوها شود، اما ممکن است در موارد خاص مفید باشد و در بیشتر موارد به منابع سرور کمتری نیاز دارد (مقدار واقعی صرفه جویی می تواند بسته به پیکربندی ویکی و پیچیدگی الگو متفاوت باشد).
قالب ها کاربردهای مختلفی پیدا کرده اند. الگوها به کاربران امکان میدهند طرحبندیهای جدول پیچیدهای ایجاد کنند که به طور مداوم در چندین صفحه مورد استفاده قرار میگیرد و تنها محتوای جداول با استفاده از پارامترهای الگو درج میشود. الگوها اغلب برای شناسایی مشکلات یک مقاله ویکیپدیا با قرار دادن یک الگو در مقاله استفاده میشوند. سپس این الگو یک کادر گرافیکی را نشان می دهد که محتوای مقاله مورد مناقشه است یا نیاز به توجه دیگری دارد و همچنین آن را دسته بندی می کند تا مقالاتی با این ماهیت پیدا شوند. همچنین از الگوها در صفحات کاربر برای ارسال پیامهای استاندارد به کاربران برای خوشامدگویی به سایت استفاده میشود، [78] به آنها جوایزی برای مشارکتهای برجسته میدهند، [79] [80] به آنها هشدار میدهند زمانی که رفتارشان نامناسب تلقی میشود، [81] به آنها اطلاع میدهند وقتی که از ویرایش مسدود شده اند، [82] و غیره.
مدیاویکی انعطاف پذیری را در ایجاد و تعریف گروه های کاربری ارائه می دهد. به عنوان مثال، ایجاد یک گروه "نینجا" دلخواه امکان پذیر است که می تواند کاربران را مسدود کرده و صفحات را حذف کند، و ویرایش های آن به طور پیش فرض در گزارش تغییرات اخیر پنهان می شود. همچنین می توان گروهی از کاربران «تأیید شده خودکار» را راه اندازی کرد که پس از انجام تعداد معینی ویرایش و انتظار برای چند روز، عضو آن ها می شود. [83] برخی از گروه هایی که به طور پیش فرض فعال هستند، بوروکرات ها و sysops هستند. بوروکرات ها این قدرت را دارند که حقوق سایر کاربران را تغییر دهند. Sysops قدرت محافظت از صفحه و حذف و مسدود کردن کاربران از ویرایش را دارد. کنترلهای موجود مدیاویکی روی حقوق ویرایش برای انتشار و نگهداری اسناد مهم مانند کتابچه راهنمای روشهای عملیاتی استاندارد در بیمارستان کافی تلقی شده است. [84]
وقتی صفحه ای فقط از محتوای بی فایده تشکیل شده باشد، راه های مختلفی برای حذف آن محتوا وجود دارد. ساده ترین راه، در دسترس همه کاربران، خالی کردن صفحه است. با این حال، این با تشخیص وجود صفحه تداخل دارد، مگر اینکه پسوندی نصب شده باشد تا صفحات خالی را طوری رفتار کند که گویی وجود ندارند. [85] خالی کردن محتوا نیز از طریق صفحه تاریخچه قابل دسترسی است، نتیجه ای که در حالی که به طور بالقوه شفافیت را با اجازه دادن به غیر sysops برای بررسی آسان تصمیم حذف محتوا برای مناسب بودن افزایش می دهد، ممکن است در برخی موارد غیرقابل قبول یا حتی غیرقانونی باشد [86] . گزینه دیگر این است که sysop صفحه را حذف کند و در نتیجه از مشاهده آن توسط غیر sysops جلوگیری کند. سطح دیگری از حذف، به نام RevisionDelete، می تواند توسط یک گروه (به عنوان مثال "Oversighters") برای جلوگیری از مشاهده صفحه توسط افراد غیر عضو آن گروه استفاده شود. [87] همچنین میتوان با استفاده از پسوندهای خاص، محتوا را از هر یک از کانالهای معمولی در ویکی حذف کرد، [88] یا حتی ویرایشها را به طور کامل از پایگاه داده حذف کرد. [89]
مدیاویکی دارای مجموعه ای اساسی از ویژگی های مربوط به محدود کردن دسترسی است، اما طراحی اصلی و مداوم آن توسط عملکردهایی هدایت می شود که عمدتاً به محتوا مربوط می شود، نه جداسازی محتوا. در نتیجه، با حداقل استثناها (مرتبط با ابزارهای خاص و صفحات "ویژه" مربوط به آنها)، کنترل دسترسی به صفحه هرگز در توسعه هسته اولویت بالایی نداشته است و توسعه دهندگان اعلام کرده اند که کاربرانی که به دسترسی کاربر ایمن و کنترل های مجوز نیاز دارند، نباید به آنها تکیه کنند. مدیاویکی، زیرا هرگز برای چنین موقعیت هایی طراحی نشده است. به عنوان مثال، ایجاد یک ویکی که در آن فقط کاربران خاصی بتوانند برخی از صفحات را بخوانند و به آنها دسترسی داشته باشند، بسیار دشوار است. [90] در اینجا، موتورهای ویکی مانند Foswiki ، MoinMoin و Confluence با پشتیبانی از مکانیسمهای امنیتی پیشرفته مانند لیستهای کنترل دسترسی ، انعطافپذیری بیشتری را ارائه میکنند .
پایگاه کد مدیاویکی حاوی قلابهای مختلفی است که از توابع پاسخ به تماس برای افزودن کد PHP اضافی به روشی قابل توسعه استفاده میکنند . این به توسعه دهندگان اجازه می دهد تا بدون نیاز به تغییر هسته یا ارسال کد خود برای بررسی، برنامه های افزودنی بنویسند. نصب یک برنامه افزودنی معمولاً شامل افزودن یک خط به فایل پیکربندی است، اگرچه در برخی موارد تغییرات اضافی مانند بهروزرسانی پایگاه داده یا وصلههای اصلی لازم است.
پنج نقطه برنامه افزودنی اصلی ایجاد شد تا به توسعه دهندگان اجازه دهد تا ویژگی ها و قابلیت هایی را به مدیاویکی اضافه کنند. هر بار که یک رویداد خاص اتفاق می افتد، قلاب ها اجرا می شوند. به عنوان مثال، ArticleSaveComplete
قلاب پس از پردازش درخواست مقاله ذخیره رخ می دهد. [91] این را می توان به عنوان مثال، توسط یک برنامه افزودنی استفاده کرد که هر زمان که ویرایش صفحه ای از کاربران جدید یا ناشناس در ویکی انجام شود، به کاربران انتخابی اطلاع می دهد. [92] برچسبهای جدیدی را میتوان برای پردازش دادهها با برچسبهای باز و بسته ( <newtag>...</newtag>
) ایجاد کرد. [93] توابع تجزیه کننده را می توان برای ایجاد یک فرمان جدید ( {{#if:...|...|...}}
) استفاده کرد. [94] صفحات ویژه جدیدی را می توان برای انجام یک عملکرد خاص ایجاد کرد. این صفحات به صورت پویا تولید می شوند. به عنوان مثال، یک صفحه خاص ممکن است تمام صفحاتی را که دارای یک یا چند پیوند به یک سایت خارجی هستند نشان دهد یا ممکن است فرمی ایجاد کند که بازخورد ارسالی کاربر را ارائه می دهد. [95] پوستهها به کاربران اجازه میدهند ظاهر و احساس مدیاویکی را سفارشی کنند. [96] یک نقطه پسوند جزئی اجازه استفاده از Amazon S3 را برای میزبانی فایلهای تصویری میدهد. [97]
مدیاویکی را می توان از طریق برنامه های افزودنی آن برای اهداف مختلف پیشرفته تر و مفیدتر ساخت. این پسوندها از نظر پیچیدگی بسیار متفاوت هستند.
بنیاد ویکیمدیا یک سرور Git را راهاندازی میکند که در آن بسیاری از افزونهها مخزن خود را میزبانی میکنند. اکثر آنها همچنین دارای یک صفحه اسناد در وب سایت مدیاویکی هستند.
بررسی کد مدیاویکی خود از لحاظ تاریخی از طریق یک پسوند مدیاویکی تسهیل شده است. [98] از مارس 2012، این کار از طریق Gerrit انجام شده است .
از نسخه 1.16، مدیاویکی از کتابخانه jQuery استفاده می کند . [99]
در میان محبوبترین افزونهها، پسوند تابع تجزیهکننده، ParserFunctions است که به محتوای مختلف اجازه میدهد بر اساس نتیجه عبارات شرطی ارائه شود . [100] این دستورات شرطی می توانند توابعی مانند ارزیابی خالی بودن یک پارامتر، مقایسه رشته ها، ارزیابی عبارات ریاضی، و برگرداندن یکی از دو مقدار بسته به وجود صفحه انجام دهند. این به عنوان جایگزینی برای یک الگوی معروف ناکارآمد به نام {{Qif}} طراحی شده است. [101] شیندلر تاریخچه پسوند ParserFunctions را به شرح زیر بازگو می کند: [30]
در سال 2006 برخی از ویکیپدیاها دریافتند که از طریق تعامل پیچیده و پیچیده ویژگیهای الگو و CSS میتوانند متن ویکی شرطی ایجاد کنند، یعنی متنی که اگر پارامتر الگو دارای مقدار خاصی باشد، نمایش داده میشود. این شامل تماس های مکرر قالب ها در قالب ها بود که عملکرد کل سیستم را مختل می کرد. توسعه دهندگان با این انتخاب مواجه شدند که یا با شناسایی چنین استفاده ای، گسترش یک ویژگی بدیهی دلخواه را ممنوع کنند و صریحاً آن را در نرم افزار ممنوع کنند یا یک جایگزین کارآمد ارائه دهند. دومی توسط تیم استارلینگ، که معرفی توابع تجزیه کننده، متن ویکی که توابع پیاده سازی شده در نرم افزار زیربنایی را فراخوانی می کند، اعلام کرد. در ابتدا، فقط متن شرطی و محاسبه عبارات ساده ریاضی پیادهسازی میشد، اما این در حال حاضر امکانات ویراستاران ویکی را به شدت افزایش میداد. با گذشت زمان توابع تجزیه کننده بیشتری معرفی شدند، در نهایت منجر به چارچوبی شد که به نوشتن ساده توابع افزودنی اجازه می داد تا عملکردهای دلخواه، مانند خدمات کدگذاری جغرافیایی یا ویجت ها را اضافه کند. این بار توسعهدهندگان به وضوح به تقاضای جامعه واکنش نشان میدادند، و مجبور شدند یا با راهحل مسئلهای که جامعه داشت (یعنی متن مشروط) مبارزه کنند، یا یک پیادهسازی فنی بهبودیافته برای جایگزینی رویه قبلی و دستیابی به کلی بهتر ارائه کنند. عملکرد
پسوند توابع تجزیه کننده دیگر، StringFunctions، برای ارزیابی طول رشته، موقعیت رشته و غیره ایجاد شد. جوامع ویکیمدیا، با ایجاد راهحلهای ناخوشایند برای انجام همان عملکرد، [102] برای فعال شدن آن در پروژههایشان فریاد زدند. [103] بسیاری از قابلیتهای آن در نهایت در برنامه افزودنی ParserFunctions ادغام شد، [104] هرچند بهطور پیشفرض غیرفعال شد و با هشدار تیم استارلینگ همراه بود مبنی بر اینکه فعال کردن توابع رشتهای به کاربران اجازه میدهد تجزیهکنندههای خود را در زشتترین و ناکارآمدترین برنامهنویسی پیادهسازی کنند. زبان شناخته شده برای انسان: ویکی متن مدیاویکی با ParserFunctions." [105]
از سال 2012 یک برنامه افزودنی به نام Scribunto وجود دارد که امکان ایجاد "ماژول" - صفحات ویکی که به زبان اسکریپت نویسی Lua نوشته شده اند - وجود دارد که می توانند در قالب ها و صفحات استاندارد ویکی اجرا شوند. Scribunto از سال 2013 در ویکیپدیا و سایر سایتهای ویکیمدیا نصب شده است و بهشدت در آن سایتها استفاده میشود. کد Scribunto به طور قابل توجهی سریعتر از کد ویکی متن مربوطه با استفاده از ParserFunctions اجرا می شود. [106]
یکی دیگر از پسوندهای بسیار محبوب، پسوند استنادی است که با استفاده از منابع درون خطی، پاورقی ها را قادر می سازد به صفحات اضافه شوند. [107] با این حال، این پسوند به دلیل سخت بودن استفاده و الزام کاربر به حفظ نحو پیچیده مورد انتقاد قرار گرفته است. ابزاری به نام RefToolbar تلاش میکند تا ایجاد نقل قول با استفاده از الگوهای رایج را آسانتر کند. MediaWiki دارای برخی پسوندها است که برای دانشگاه بسیار مناسب هستند، مانند پسوندهای ریاضی [108] و پسوندی که به مولکول ها اجازه می دهد تا به صورت سه بعدی ارائه شوند . [109]
یک پسوند ابزارک عمومی وجود دارد که به مدیاویکی اجازه می دهد تقریباً با هر چیزی یکپارچه شود. نمونههای دیگر از برنامههای افزودنی که میتوانند ویکی را بهبود بخشند، پسوندهای پیشنهادی دستهبندی [110] و برنامههای افزودنی برای گنجاندن فیلمهای فلش ، [111] ویدیوهای YouTube، [112] و فیدهای RSS هستند . [113] متوید ، سایتی که فیلمهای ویدئویی جلسات مجلس سنا و مجلس نمایندگان ایالات متحده را بایگانی میکند ، با استفاده از کد گسترش مدیاویکی به حوزه نویسندگی ویدیویی مشترک ایجاد شد. [114]
رباتهای هرزنامه زیادی وجود دارند که وب را برای نصب MediaWiki جستجو میکنند و پیوند هرزنامه را به آنها اضافه میکنند، علیرغم این واقعیت که MediaWiki از ویژگی nofollow برای جلوگیری از چنین تلاشهایی برای بهینهسازی موتور جستجو استفاده میکند . [115] بخشی از مشکل این است که ناشرهای شخص ثالث، مانند mirrors ، ممکن است به طور مستقل تگ nofollow را در وب سایت های خود پیاده سازی نکنند، بنابراین بازاریابان همچنان می توانند با قرار دادن پیوندها در صفحات زمانی که آن ورودی ها در وب سایت های شخص ثالث ظاهر می شوند، از امتیاز صفحه رنک بهره مند شوند. [116] پسوندهای ضد هرزنامه برای مبارزه با این مشکل با معرفی CAPTCHA ، [117] قرار دادن URL های خاص در لیست سیاه ، [118] و اجازه حذف انبوه صفحاتی که اخیراً توسط یک کاربر خاص اضافه شده است، ایجاد شده است . [119]
مدیاویکی با جستجوی متنی استاندارد از پیش نصب شده است. برنامههای افزودنی وجود دارند که به MediaWiki اجازه میدهند از موتورهای جستجوی شخص ثالث پیچیدهتر، از جمله Elasticsearch (که از سال 2014 در ویکیپدیا استفاده میشود)، Lucene [120] و Sphinx استفاده کند . [121]
افزونههای مدیاویکی مختلفی نیز ایجاد شدهاند تا امکان جستجوی پیچیدهتر و وجهی را هم در دادههای وارد شده در ویکی و هم در ابردادههایی مانند تاریخچه ویرایش صفحات فراهم کنند. [122] [123] مدیاویکی معنایی یکی از این پسوندها است. [124] [125]
مدیاویکی می تواند از سیستم مدیریت پایگاه داده رابطه ای MySQL / MariaDB ، PostgreSQL یا SQLite استفاده کند . پشتیبانی از Oracle Database و Microsoft SQL Server از زمان MediaWiki 1.34 حذف شده است. [126] یک پایگاه داده مدیاویکی حاوی چندین ده جدول است ، از جمله جدولی که شامل عناوین صفحه، شناسه های صفحه و سایر ابرداده ها می باشد. [127] و جدولی که هر بار که ویرایش انجام می شود یک ردیف جدید به آن اضافه می شود که شامل شناسه صفحه، خلاصه متنی مختصری از تغییر انجام شده، نام کاربری ویرایشگر مقاله (یا آدرس IP آن در مورد یک کاربر ثبت نشده) و یک مهر زمانی. [128] [129]page
revision
در یک دوره 4 و نیم ساله قبل از سال 2008، پایگاه داده مدیاویکی دارای 170 نسخه طرحواره بود . [130] احتمالاً بزرگترین تغییر طرحواره در سال 2005 با MediaWiki 1.5 انجام شد، زمانی که ذخیره سازی فراداده از محتوا جدا شد تا انعطاف پذیری عملکرد را بهبود بخشد. زمانی که این ارتقا در ویکی پدیا اعمال شد، سایت برای ویرایش قفل شد و طرحواره در عرض 22 ساعت به نسخه جدید تبدیل شد. برخی از پیشنهادهای بهبود نرمافزار، مانند پیشنهادی برای اجازه دادن به بخشهایی از مقالات برای تماشا از طریق فهرست پیگیری، رد شدهاند، زیرا تغییرات لازم در طرحواره مستلزم خرابی بیش از حد ویکیپدیا است. [131]
از آنجایی که برای اجرای یکی از پرترافیک ترین سایت ها در وب استفاده می شود، ویکی پدیا، عملکرد و مقیاس پذیری مدیاویکی بسیار بهینه شده است. [29] مدیاویکی از Squid ، تکثیر پایگاه داده با بار متوازن ، کش سمت سرویس گیرنده، حافظه پنهان یا حافظه پنهان مبتنی بر جدول برای پردازش نتایج پرس و جو، یک حافظه پنهان فایل استاتیک ساده، عملیات کاهش یافته، فشرده سازی بازبینی، و صف کار پشتیبانی می کند. برای عملیات پایگاه داده توسعه دهندگان مدیاویکی سعی کرده اند نرم افزار را با اجتناب از الگوریتم های گران قیمت، پرس و جوهای پایگاه داده و غیره، ذخیره کردن هر نتیجه ای که گران است و دارای محل مرجع زمانی است، و تمرکز بر نقاط داغ در کد از طریق نمایه سازی، بهینه سازی کنند . [132]
کد مدیاویکی به گونه ای طراحی شده است که امکان نوشتن داده ها در یک پایگاه داده خواندنی-نوشتنی و خواندن از پایگاه های داده فقط خواندنی را فراهم می کند، اگرچه اگر پایگاه داده های فقط خواندنی هنوز به روز نباشند، پایگاه داده خواندن-نوشتن می تواند برای برخی عملیات خواندن استفاده شود. . ابردادهها ، مانند تاریخچه بازنگری مقاله، روابط مقاله (پیوندها، دستهها و غیره)، حسابهای کاربری و تنظیمات را میتوان در پایگاههای داده اصلی ذخیره کرد و در حافظه پنهان ذخیره کرد. متن ویرایش واقعی، که به ندرت مورد استفاده قرار می گیرد، می تواند به عنوان حباب های ضمیمه در حافظه خارجی ذخیره شود. این نرم افزار برای بهره برداری از مزارع ویکی در مقیاس بزرگ مانند ویکی مدیا که تا اوت 2011 حدود 800 ویکی داشت، مناسب است. با این حال، MediaWiki فاقد رابط کاربری گرافیکی داخلی برای مدیریت چنین نصب هایی است.
شواهد تجربی نشان میدهد که بیشتر ویرایشها در پایگاههای داده مدیاویکی فقط کمی با ویرایشهای قبلی متفاوت هستند. بنابراین، بازبینیهای بعدی یک مقاله را میتوان به هم پیوست و سپس فشرده کرد و به نسبت فشردهسازی دادههای بسیار بالایی تا 100 برابر دست یافت. [132]
برای اطلاعات بیشتر در مورد معماری، مانند نحوه ذخیره ویکی متن و مونتاژ یک صفحه، به پیوندهای خارجی مراجعه کنید.
تجزیه کننده به عنوان استاندارد بالفعل برای نحو مدیاویکی عمل می کند، زیرا هیچ نحو رسمی تعریف نشده است. به دلیل عدم وجود تعریف رسمی، ایجاد ویرایشگرهای WYSIWYG برای MediaWiki دشوار بوده است، اگرچه چندین پسوند WYSIWYG از جمله VisualEditor محبوب وجود دارد .
مدیاویکی برای جایگزینی مناسب برای تالار گفتمان آنلاین اختصاصی یا نرم افزار وبلاگ نویسی طراحی نشده است، [133] اگرچه افزونه هایی وجود دارد که هر دوی آنها را مجاز می کند. [134] [135]
مرتکب اشتباهات معینی برای کاربران جدید مدیاویکی، مانند فراموش کردن امضای پستها با چهار تایلد (~~~~)، [136] یا وارد کردن دستی یک امضای متن ساده، [137] به دلیل ناآشنایی با ویژگیهای خاص درگیر، معمول است. ارتباط در صفحات بحث مدیاویکی از سوی دیگر، فرمت این صفحات بحث به عنوان یک نقطه قوت توسط یکی از مربیان ذکر شده است، که اظهار داشت که قابلیتهای دقیق تری را برای بحث نسبت به انجمنهای گفتگوی رشتهای سنتی فراهم میکند. برای مثال، به جای «پاسخ دادن» به کل یک پیام، شرکتکننده در یک بحث میتواند در هر کلمهای از صفحه اصلی، پیوندی به یک صفحه ویکی جدید ایجاد کند. از آنجایی که محتوا از طریق صفحه ویکی هایپرپیوند شده به جای یک سری پیام های پاسخ در یک انجمن گفتگوی رشته ای سنتی، قابل پیگیری است. با این حال، به جز در موارد معدودی، دانشجویان از این قابلیت استفاده نمیکردند، احتمالاً به دلیل آشنایی آنها با سبک بحث خطی سنتی و فقدان راهنمایی در مورد چگونگی ایجاد محتوای بیشتر « غنیتر از پیوند ». [138]
MediaWiki به طور پیشفرض از ایجاد اسناد مونتاژ شده پویا یا صفحاتی که دادههای صفحات دیگر را جمعآوری میکنند پشتیبانی کمی دارد. برخی تحقیقات در مورد فعال کردن چنین ویژگی هایی به طور مستقیم در مدیاویکی انجام شده است. [139] پسوند Semantic MediaWiki این ویژگی ها را فراهم می کند. در ویکیپدیا استفاده نمیشود، اما در بیش از ۱۶۰۰ نصب دیگر مدیاویکی استفاده میشود. [140] مخزن ویکیبیس و مشتری مخزن ویکیبیس به ترتیب در ویکیداده و ویکیپدیا پیادهسازی میشوند و تا حدی ویژگیهای وب معنایی و پیوند دادههای ذخیرهشده مرکزی به جعبههای اطلاعات در مقالات مختلف ویکیپدیا را فراهم میکنند.
ارتقاء مدیاویکی معمولاً کاملاً خودکار است و نیازی به تغییر در محتوای سایت یا برنامهنویسی الگو ندارد. از لحاظ تاریخی هنگام ارتقا از نسخههای قدیمیتر با مشکلاتی مواجه شدهاند. [141]
توسعه دهندگان مدیاویکی استانداردهای امنیتی را هم برای کد اصلی و هم برای برنامه های افزودنی وضع کرده اند. [142] پرس و جوهای SQL و خروجی HTML معمولاً از طریق توابع wrapper انجام می شوند که اعتبارسنجی، فرار، فیلتر کردن برای جلوگیری از اسکریپت نویسی بین سایتی و تزریق SQL را انجام می دهند . [143] بسیاری از مسائل امنیتی پس از انتشار نسخه مدیاویکی باید اصلاح شوند، [144] و بر این اساس MediaWiki.org بیان می کند، "مهم ترین گام امنیتی که می توانید بردارید این است که نرم افزار خود را به روز نگه دارید" با اشتراک در اعلامیه لیست پستی و نصب به روز رسانی های امنیتی که اعلام شده است. [145]
توسعه دهندگان مدیاویکی در سرتاسر جهان پراکنده هستند، البته اکثریت آنها در ایالات متحده و اروپاست. جلسات حضوری و جلسات برنامه نویسی برای توسعه دهندگان مدیاویکی از سال 2004 یک یا چند بار در سال برگزار شده است. [146]
پشتیبانی از کاربران مدیاویکی شامل موارد زیر است:
کاربران نرمافزار همکاری آنلاین با عملکردها و طرحبندی مدیاویکی به دلیل استفاده مشخص از آن در ویکیپدیا آشنا هستند. یک مرور کلی در سال 2006 از نرمافزار اجتماعی در دانشگاه مشاهده کرد که "در مقایسه با سایر ویکیها، مدیاویکی نیز از نظر زیبایی شناختی نسبتاً خوشایند است، هرچند ساده، و دارای منوی جانبی و صفحه سبک به راحتی سفارشیسازی میشود ." [150] با این حال، در یک ارزیابی در سال 2006، Confluence به دلیل API بسیار قابل استفاده و توانایی در پشتیبانی بهتر از چندین ویکی، محصولی برتر در نظر گرفته شد. [109]
مطالعه ای در سال 2009 در دانشگاه هنگ کنگ TWiki را با MediaWiki مقایسه کرد . نویسندگان خاطرنشان کردند که TWiki به عنوان یک ابزار مشارکتی برای توسعه مقالات آموزشی و پروژه های فنی در نظر گرفته شده است، در حالی که بیشترین استفاده مدیاویکی در ویکی پدیا است. اگرچه هر دو پلتفرم امکان بحث و ردیابی پیشرفت را میدهند، اما TWiki یک بخش «گزارش» دارد که مدیاویکی فاقد آن است. دانش آموزان مدیاویکی را آسان تر و لذت بخش تر از TWiki می دانستند. هنگامی که از آنها پرسیده شد که آیا استفاده از مدیاویکی را برای پروژه گروهی دوره مدیریت دانش توصیه می کنند ، 15 نفر از 16 پاسخ دهنده ترجیح خود را برای مدیاویکی بیان کردند که با قطعیت کامل پاسخ هایی مانند "البته"، "حتما" را ارائه می دهند. [151] TWiki و MediaWiki هر دو دارای معماری پلاگین انعطاف پذیر هستند. [152]
مطالعهای در سال 2009 که تجربه دانشآموزان از MediaWiki را با Google Docs مقایسه کرد ، نشان داد که دانشآموزان رتبه بسیار بالاتری را در طرحبندی کاربرپسند به آن دادهاند. [153]
مطالعهای در سال 2021 که توسط مؤسسه مهندسی هستهای برزیل انجام شد، یک سیستم مدیریت دانش مبتنی بر MediaWiki را با دو سیستم دیگر که به ترتیب مبتنی بر DSpace و Open Journal Systems بودند ، مقایسه کرد. [154] سهولت استفاده را به عنوان مزیت سیستم مبتنی بر مدیاویکی برجسته کرد، و اشاره کرد که از آنجایی که بنیاد ویکیمدیا مدیاویکی را برای سایتی با هدف عموم مردم (ویکیپدیا) توسعه میداد، «رابط کاربری آن طوری طراحی شده بود که کاربر بیشتر باشد. از ابتدا بسیار دوستانه است، و در طول مدت طولانی بازخورد زیادی از کاربران دریافت کرده است، برخلاف تمرکز DSpace و OJS بر روی مخاطبان خاص. [154]
488 زبان (غیر از زبان هایی که پشتیبانی می شوند اما ترجمه ندارند)