برای انجام این دو منظور، نرمافزار از ابزارها و فنونی بهره میبرد که در این مقاله به صورت خلاصه معرفی شدهاند. مخاطبان این مقاله افرادی هستند که با پژوهیار آشنایی داشته و علاقهمند به اطلاعات فنی مربوط به ساختار این نرمافزار هستند. با وجود این، در بعضی قسمتها توضیحات مختصری درباره قابلیتهای پژوهیار نیز ارائه شده است.
معرفی
پروژه تولید نرمافزار مدیریت منابع قابل استفاده توسط کاربران فارسیزبان، از ابتدای سال 89 آغاز شد. در فاز اول، نرمافزارهای منبع باز متعددی مانند: جامپر، (2) جبرف،(3) بیبوس (4) و رفدبیبی (5) بررسی شدند. نرمافزار اندنوت(6) نیز، به عنوان پرکاربردترین نرمافزار مدیریت منابع در ایران، بررسی شد. نتیجهای که از مطالعه اولیه به دست آمد، این بود که در نرمافزارهای جدید مدیریت منبع، برخی امکانات مورد نیاز محققان، مانند: ذخیره صفحات وب یا پیدیاف،(7) یادداشتبرداری، دستهبندی و برچسب زدن به محتوا، امکان کار گروهی و... نیز مورد توجه قرار گرفتهاند. در نهایت، نرمافزار زوترو، به عنوان کاملترین نرمافزار مدیریت مراجع منبعباز که امکانات مدیریت اطلاعات را نیز فراهم میکرد، به عنوان پایهای برای توسعه نرمافزار انتخاب شد.
در مراحل بعدی پروژه، اصلاحات مورد نیاز بر روی این نرمافزار منبعباز انجام شد. ترجمه رابط کاربری به زبان فارسی، امکان درج استناد و کتابنامه در سه زبان فارسی، عربی و انگلیسی در نرمافزار ورد (8) و نیز در قالب زنگام، (9) یادداشتنویسی فارسی، تاریخ شمسی، جستجوی فارسی، امکان دریافت اطلاعات از وبگاههای فارسی، امکان درونبرد از قالب مارک ایران، امکان تهیه نسخه پشتیبان از کتابخانه و روزآمدسازی نرمافزار و اجزای آن از کارساز(10) داخلی، از جمله امکاناتی هستند که تا کنون به نرمافزار افزوده شدهاند. برای انجام تحقیق گروهی و استفاده از یک کتابخانه روی چندین رایانه، به یک کارساز همزمانسازی (11) نیاز است که راهاندازی آن در حال انجام است و در نسخههای بعدی نرمافزار قابل استفاده خواهد بود.
ادامه این مقاله، در سه بخش تنظیم شده است؛ در بخش اول، نسخههای فعلی و نسخههای برنامهریزیشده برای آینده معرفی گردیدهاند. ساختار نرمافزار، در بخش دوم شرح داده شده است و در بخش سوم، ابزارهای مورد استفاده در روند توسعه نرمافزار، معرفی شدهاند.
نسخههای پژوهیار
1. نسخه افزونه فایرفاکس
این نسخه، فعلاً تنها نسخه موجود پژوهیار است. برای استفاده از این نسخه، ابتدا باید مرورگر فایرفاکس را نصب کرد و سپس پژوهیار را به عنوان یک افزونه روی فایرفاکس اجرا نمود. دسترسی همزمان به صفحات وب و کتابخانه پژوهیار، از مزایای این نسخه است. با استفاده از این نسخه، محققانی که وقت بسیاری را صرف مرور وب میکنند، بدون نیاز به باز کردن برنامهای مستقل، توانایی مدیریت اطلاعات مفید را خواهند داشت.
2. نسخه رومیزی
این نسخه که از جهت کد منبع، عیناً مشابه با نسخه افزونه است، بدون نیاز به مرورگر قابل اجرا است. با توجه به اینکه هزاران افزونه مفید و کارآمد برای فایرفاکس تهیه شده است، شرکت تولیدکننده فایرفاکس، بهتازگی نرمافزاری به نام زولرانر (12) را ارائه کرده است که میتواند یک یا چند افزونه فایرفاکس را به صورت نرمافزارهای مستقل اجرا کند. نسخه رومیزی پژوهیار، از این ابزار بهره میبرد.
نسخه رومیزی همچنان قابلیت دریافت اطلاعات از وب و پایگاههای کتابخانهای را دارا است؛ ولی کاربر مجبور به استفاده از مرورگر فایرفاکس نخواهد بود و میتواند از مرورگرهای: گوگل کروم، (13) اپرا (14) یا سافاری (15) نیز استفاده کند.
3. نسخه موبایل
نسخه تحت اندروید پژوهیار، در آینده عرضه خواهد شد. کاربرد این نسخه، مشاهده و ویرایش کتابخانه پژوهیار با استفاده از سیستم عامل اندروید (16) خواهد بود. همزمانسازی اطلاعات بین موبایل و رایانه، با استفاده از کارساز پژوهیار انجام خواهد شد.
4. نسخه تحت وب
در حال حاضر، چندین تولیدکننده استناد و کتابنامه وجود دارند که به صورت تحت وب به کاربران خدمت ارائه میکنند.(17) طرز کار این پایگاهها به این صورت است که مشخصات مرجع مورد نظر و شیوهنامه انتخابی را از کاربر دریافت کرده و استناد یا کتابنامه متناظر را تولید میکنند. پژوهیار برای تولید استنادها، از ماژولی به نام سایتپروس(18) بهره میبرد که در برخی نرمافزارهای دیگر هم مورد استفاده است. این ماژول، به چندین زبان از جمله پیاچپی و پایتون (19) که زبانهای سمت کارساز هستند نیز نوشته شده است. در نتیجه، نسبتاً بهسادگی میتوان نسخه تحت وب پژوهیار را نیز عرضه کرد.
ساختار پژوهیار
1. کد منبع
بخش اعظم پژوهیار با استفاده از زول (20) و عمدتاً جاوااسکریپت (21) نوشته شده است. زول، نوعی زبان نشانهگذاری (22) شبیه به زنگام است که برای توصیف رابط کاربری به کار میرود؛ مثلاً خط زیر یک دکمه را به رابط کاربری اضافه میکند:
<button label="جستجو" oncommand="PajoohyarAdvancedSearch.search()"/>
چون پژوهیار به صورت یک افزونه در فایرفاکس نصب میشود، جاوااسکریپت به کار رفته در آن، محدودیتهای معمول را ندارد و بهسادگی میتواند با فایلهای موجود در سیستم و سایر نرمافزارها مثل ورد، ارتباط برقرار کند.
بخش عمدهای از افزونه ورد پژوهیار نیز با جاوااسکریپت نوشته شده است. این بخش، قسمتی است که پنجرههای گفتگو را نمایش میدهد و یا استنادها و کتابنامه را میسازد. بخش دیگری از این افزونه، با استفاده از زبان سیشارپ (23) نوشته شده و توسط ویژوال استودیو، (24) ویرایش و ترجمه (25) میشود. این بخش از کد، ارتباط با متن در حال ویرایش را برقرار میکند؛ مثلاً پیدا کردن محل استنادها یا انتخاب فونت (26) و اندازه مناسب. در نهایت، بخش کوچکی از این افزونه به زبان ویژوالبیسیک (27) نوشته شده است که با پیدا کردن پنجره فایرفاکس و تبادل اطلاعات با آن، ارتباط بین دکمههای تعریف شده در ورد و پژوهیار را برقرار میکند.
کد منبع، شیوهها و مترجمهای پیشفرض، ماژولهای جانبی و... همه در یک فایل فشرده با قالب ایکسپیآی (28) که در واقع، عیناً یکسان با قالب مشهور زیپ (29) است، قرار میگیرند و به کاربر عرضه میشود؛ توضیح اینکه از دید فایرفاکس، مجموعه پژوهیار متشکل از دو افزونه است؛ یکی افزونه اصلی پژوهیار و دیگری افزونه ورد پژوهیار. با مشاهده فهرست افزونهها در فایرفاکس، این دو افزونه قابل مشاهده هستند. هر کدام از این افزونهها، فایل ایکسپیآی خاص خود را دارند. با وجود این، دو فایل مزبور مجدداً فشرده شده و در قالب یک فایل ارائه میشوند.
2. ذخیره دادهها
پژوهیار، از اسکیولایت (30) به عنوان بانک اطلاعاتی بهره میبرد. اسکیولایت، یک کتابخانه نرمافزاری است که بانکهای اطلاعاتی مورد نیاز نرمافزار را بدون احتیاج به کارساز وب و به صورت داخلی در اختیار قرار میدهد[1]. همه اطلاعات موجود در کتابخانه پژوهیار، به جز پیوستها، در بانک اطلاعاتی ذخیره میشوند، از قبیل: مشخصات نویسندگان، مشخصات آیتم، برچسبها، آیتمهای مرتبط، یادداشتها، حاشیهنویسیها و بخشهای علامتگذاری شده. (31) ساختار بانک اطلاعاتی پژوهیار، جالب توجه و آموزنده است. با استفاده از نمایشگرهای بانک اطلاعاتی مانند [2] میتوان این ساختار را مطالعه کرد.
پژوهیار علاوه بر ذخیره مشخصات یک صفحه وب، میتواند محتویات کامل آن صفحه شامل متن و تصاویر را نیز ذخیره کند. یا در مورد مقالات، پژوهیار میتواند علاوه بر مشخصات و فرادادههای مقاله، متن کامل مقاله را نیز در قالب پیدیاف، پیوست کند. معمولاً حجم این پیوستها زیاد است. در نتیجه، به جای ذخیره در بانک اطلاعاتی، نرمافزار یک پوشه با نام تصادفی میسازد و محتویات صفحه وب یا هر پیوست دیگر را در آن قرار میدهد. سپس مسیر این پوشه در بانک اطلاعاتی ذخیره میشود.
3. نمایهسازی
قابلیت جستجوی پژوهیار، بسیار قوی و فراگیر است. در زمانی که عبارتی برای جستجو وارد میشود، علاوه بر مشخصات اثر، برچسبها و یادداشتها که در بانک اطلاعاتی ذخیره شدهاند، متن صفحات وب ذخیرهشده و متن فایلهای پیدیاف پیوست نیز جستجو میشود. با توجه به حجم بالای این پیوستها، نرمافزار برای بالا بردن سرعت جستجو، از نمایهسازی (32) استفاده میکند؛ به این صورت که کلمات موجود در مثلاً یک فایل پیدیاف، تشخیص داده شده و در بانک اطلاعاتی ذخیره میشوند. یک کلمه ممکن است در چند فایل تکرار شده باشد. در این حالت، به ازای هر فایل، یک رکورد در بانک اطلاعاتی افزوده خواهد شد که کلمه نمایهشده را به فایل حاوی آن کلمه، مرتبط میکند. استخراج کلمات از صفحات وب، بهسادگی انجامپذیر است. برای تشخیص کلمات در فایلهای پیدیاف، نرمافزار از دو ابزار (33) ویژه بهره میبرد.
4. ویرایشگر یادداشت و خط زمان
پژوهیار، از ماژولی به نام تاینیامسیای (34) برای ویرایش یادداشتها استفاده میکند. این ویرایشگر، از نوع چاپنما (35) است. با این حال، امکان ویرایش مستقیم کد زنگام هم در آن وجود دارد. دارا بودن دکمه راست به چپ، استفاده از این ماژول برای یادداشتنویسی دوزبانه را امکانپذیر کرده است.
ماژول دیگری که تقریباً بدون هیچ تغییری در پژوهیار گنجانده شده است، تایملاین (36) نام دارد. کاربرد این ماژول، ایجاد یک نمای گرافیکی از آیتمهای موجود در کتابخانه با توجه به زمان است؛ مثلاً میتوان آیتمها را بسته به زمانی که به کتابخانه افزوده شدهاند، مشاهده کرد. کاربرد تحت وب ماژول خط زمان مورد استفاده در پژوهیار در[3] قابل دیدن است.
5. شیوهها
برای توصیف شیوههای استناددهی، پژوهیار از زبانی به نام «زبان شیوه استناد» (37) بهره میبرد. این زبان که با نام مخفف سی.اس.ال شناخته میشود، برای ساخت شیوههای استناددهی جدید قابل استفاده است. در ذیل نمونهای از این زبان مشاهده میشود که مربوط به شیوه شیکاگو نویسنده-تاریخ است. توجه به قسمتهای پررنگشده نشان میدهد که در این شیوه، ابتدا نام نویسنده و بعد از یک فاصله، تاریخ انتشار در استناد درج میشود. شماره صفحه یا جلد نیز، با یک ویرگول بعد از این دو مورد ظاهر خواهد شد.
<group delimiter=", ">
<group delimiter=" ">
<text macro="contributors-short"/>
<text macro="date"/>
</group>
<text macro="point-locators"/>
</group>
در این زبان، ساختار استناد و ساختار کتابنامه به صورت جداگانه تعریف میشوند. در هر دو مورد، برای زبانهای مختلف، ساختارهای متفاوت قابل تعریف است. البته در اغلب موارد، بین استنادهای انگلیسی و فارسی یا عربی، تفاوت چندانی وجود ندارد؛ بهخصوص با توجه به اینکه جهت متن، زبان اعداد و نشانههای سجاوندی و... مستقل از شیوه مورد استفاده، بسته به زبان تصحیح میشوند. با وجود این، در برخی موارد، لازم است برای استنادهای هر زبان ساختاری مجزا در فایل سی.اس.ال، تعریف شود؛ به عنوان مثالی برای یکی از این موارد، درج شماره ویرایش اثر قابل طرح است: در زبان انگلیسی، ابتدا شماره ویرایش و بعد کلمه "edition" ذکر میشود. در حالی که در زبان فارسی، ابتدا کلمه "ویرایش" و سپس شماره ویرایش نوشته میشود مثل "ویرایش دوم". بنابراین، ساختار فایل سی.اس.ال مربوطه شبیه به کد زیر خواهد بود:
Fa:
<group delimiter=" ">
<text term="edition" form="long" suffix=" "/>
<number variable="edition" form="numeric"/>
</group>
En:
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short" suffix="."/>
</group>
کاربرد زبان سی.اس.ال در حال افزایش است. این زبان، علاوه بر پژوهیار، در چند محصول دیگر مانند مندلی (38) و کوئیکر (39) نیز استفاده شده و به چندین زبان برنامهنویسی مختلف در دسترس است. ماژولهایی برای سیستمهای مدیریت محتوا (40) مانند وردپرس (41) و دروپال (42) نیز تولید شده است که از این زبان برای توصیف شیوهنامهها بهره میبرند.
6. مترجمها
در صورت نصب پژوهیار، پس از یافتن کتابها یا مقالاتی در پایگاههایی مانند پایگاه کتابخانه ملی ایران، امکان ذخیره خودکار مشخصات اثر در کتابخانه پژوهیار وجود دارد. در واقع پژوهیار، متن هر صفحهای از این پایگاهها را که در داخل مرورگر باز شود، تجزیه و تحلیل میکند و در صورتی که مشخصات اثری را بیابد، به کاربر امکان ذخیره آن را خواهد داد. این کار توسط قطعات نسبتاً کوچکی از کد به نام مترجمها انجام میشود. هر مترجم، دو قسمت اصلی دارد؛ یک قسمت، صفحه را بررسی میکند تا نوع آیتم قابل ذخیره (کتاب، مقاله، پایاننامه و...) مشخص شود و آیکن متناسب به کاربر نمایش داده شود. قسمت دوم، اطلاعات اثر را از صفحه بیرون میکشد و در کتابخانه ذخیره میکند.
به جز پایگاههایی که از استانداردهای استناددهی خاصی (43) استفاده میکنند، برای بقیه آنها باید مترجم مناسب تهیه شود و به نرمافزار افزوده شود. فعلاً برای پژوهیار، 7 مترجم تهیه شده است. البته برخی مترجمها مثل مترجم سیمرغ، از تعداد بسیاری پایگاه مشابه پشتیبانی میکنند.
7. زبانهای رابط کاربری
در حال حاضر، در پژوهیار سه زبان فارسی، انگلیسی و عربی برای رابط کاربری قابل انتخاب هستند. افزودن زبانهای جدید به پژوهیار در قالب چند فایل مستقل و بهسادگی قابل انجام است. در واقع، عباراتی که باید در محلهای مختلف رابط کاربری نمایش داده شوند، با اسامی خاصی در کد منبع مشخص شده و در فایلهای محلیسازی، (44) بسته به زبان مورد نظر تعریف میشوند. در فهرست ذیل نمونهای از قالب این فایلها مشاهده میشود.
Locale/fa:
general.close= بستن
general.nextStep= مرحله بعد
general.all= همه
...
Locale/en:
general.close= Close
general.nextStep= Next step
general.all= All
...
Locale/ar:
general.close= إغلاق
general.nextStep= المرحلة التالیة
general.all= تحدید الکل
8. کد سمت کارساز
در سمت کارساز، پژوهیار به 4 سرویسدهنده نیاز دارد. اولین کد مورد نیاز در سمت کارساز، چند فایل با قالبهای ویژه برای روزآمدسازی خود پژوهیار و افزونه ورد آن هستند. هر بار که نسخه جدیدی از پژوهیار ارائه میشود، فایلهای ایکسپیآی جدید مربوط به افزونه اصلی و افزونه ورد در کارساز، بارگذاری میشوند. دو فایل کوچک با قالب آردیاف (45) نیز در کارساز قرار داده میشوند. نسخههای نصبشده پژوهیار، در فواصل زمانی مشخص، مثلاً هر 24 ساعت یک بار، این فایلهای کوچک را بررسی میکنند. در صورتی که نگارش ثبتشده در این فایلها، جدیدتر از نگارش پژوهیار نصب شده باشد، روزآمدسازی به صورت خودکار با بارگیری (46) فایلهای ایکسپیآی، از نشانیای که در این فایلها ذکر شده است، انجام میشود. برای تضمین امنیت نسخههای جدید، این دو فایل به صورت رمزنگاریشده در کارساز قرار داده میشوند. این بخش از کد، در حال حاضر پیادهسازی شده و فعال است.
بخش دیگری از کد که در کارساز قرار میگیرد، قسمتی است که روزآمدسازی شیوهها و مترجمها را بر عهده دارد. نسخههای نصبشده پژوهیار در فواصل زمانی قابل تنظیم یا هر زمان که کاربر تصمیم بگیرد، با کارساز روزآمدسازی مترجمها ارتباط برقرار میکنند. اطلاعاتی که ارسال میشود، شامل نسخه نرمافزار و زمان آخرین روزآمدسازی است. در صورتی که بعد از آخرین روزآمدسازی نسخه نصبشده، تغییری در یکی از فایلها مترجم یا شیوهنامه ایجاد گردیده باشد، یا مورد جدیدی به این فایلها افزوده شده باشد، تغییرات در قالب یک فایل ایکسامال، (47) به کارخواه (48) فرستاده خواهد شد. این بخش از کد نیز در حال حاضر قابل استفاده است.
بخش سوم کد سمت کارساز، قسمتی است که گزارشهای خطا را از نسخههای نصبشده دریافت میکند. در صورت بروز خطای پیشبینینشده در زمان استفاده از پژوهیار، گزارش خطایی تولید میشود که کاربر میتواند آن را همراه با نام و ایمیل خود به کارساز پژوهیار ارسال کند. این گزارش که ممکن است حاوی توضیحاتی از طرف کاربر باشد. همچنین پیامهای خطای تولیدشده توسط نرمافزار را نیز در بردارد. در سمت کارساز این گزارشها در بانک اطلاعاتی ذخیره میشوند. نیروهای پشتیبانی با استفاده از واسط کاربری طراحیشده، امکان بررسی این گزارشها و انجام اصلاحات مورد نیاز را خواهند داشت. این قسمت نیز هماکنون فعال و مورد استفاده است.
بزرگترین و مهمترین بخش کد سمت کارساز، قسمتی است که وظیفه همزمانسازی چند کارخواه با کارساز و در نتیجه با هم را بر عهده دارد. کاربرد این امکان زمانی است که یک کاربر، از پژوهیار در چند رایانه مختلف استفاده کند. با استفاده از همزمانسازی، کاربر امکان خواهد یافت که از یک کتابخانه واحد بر روی هر تعداد رایانه استفاده کند و تغییرات را از یک کارخواه به کارخواه دیگر بهآسانی و بدون نیاز به کپی کردن اطلاعات، منتقل کند. مزیت بزرگ دیگری که این بخش از کد ارائه میکند، امکان دسترسی به کتابخانههای گروهی است. با استفاده از این نوع کتابخانهها، گروههای پژوهشی قادر به تبادل اطلاعات، یادداشتها و مراجع خواهند بود. سطح دسترسی هر فرد، از طرف مؤسس گروه قابل تعیین است.
این بخش از کد به زبان پیاچپی نوشته شده و به یک کارساز اختصاصی برای اجرا نیاز دارد. در حالت پیشفرض، کد مورد بحث، تنها امکان همزمانسازی فرادادهها و یادداشتها را ارائه میکند و برای همزمانسازی همه اطلاعات شامل فایلهای پیوست، چند مرحله تکمیلی مورد نیاز است. این بخش، هنوز در حال پیادهسازی است و در آینده مورد بهرهبرداری قرار خواهد گرفت.
ابزارهای مورد استفاده
1. نرمافزار پیگیری خطاها
در این پروژه، برای برنامهریزی توسعه نرمافزارها و نیز پیگیری و رفع خطاها از نرمافزار پیگیری خطاهای مانتیس (49) استفاده شده است. ارتباط دوطرفه بین گزارشکنندگان خطا و توسعهدهندگان، اولویتبندی خطاها و امکانات مورد نظر، امکان تعریف نسخههای متعدد و مشاهده درصد پیشرفت در هر نسخه و امکان تخصیص وظایف به توسعهدهندگان متعدد، از جمله امکانات این نرمافزار هستند[4]. برنامهریزی و مدیریت تهیه مستندات پژوهیار نیز در قالب پروژهای مجزا در این نرمافزار تعریف شده و پیگیری میشود. این نرمافزار منبعباز که به زبان پیاچپی (50) نوشته شده است، در نشانی www.pajoohyar.ir/issues نصب و راهاندازی شده است. راهاندازی سریع، دارا بودن همه امکانات مورد نیاز و بهرهگیری آسان، حتی توسط اعضای غیر فنی گروه، از نقاط قوت این نرمافزار هستند.
2. نرمافزار مدیریت کد منبع
در این پروژه برای نگهداری تاریخچه تغییرات و امکان همکاری چند نفره، از نرمافزار مدیریت کد منبع گیت (51) استفاده میشود. مزیت عمده نرمافزار گیت بر بعضی سیستمهای دیگر مدیریت کد منبع، ذخیره تمام تاریخچه تغییرات در سمت کاربر و در نتیجه، وابستگی کمتر به کارساز مرکزی است[5].
پی نوشت ها:
منابع: