هيكل الاستبيان بصيغة القيم المفصولة بعلامات جدولة
From LimeSurvey Manual
استيراد وتصدير هيكل الاستبيان بصيغة القيم المفصولة بعلامات جدولة
تم تصميم هذه الميزة لتسهيل استخدام برامج جداول البيانات مثل LibreOffice أو Excel أو Google Docs لإنشاء الاستبيانات وتحريرها. وهي تتيح إلغاء تام للاعتماد على رموز SGQA.
تدعم هذه الميزة الاستيراد من ملفات القيم المفصولة بعلامات جدولة (TSV) المشفرة بتنسيق ASCII أو UTF-8 والتي يكون امتدادها .txt.
البدء
أسهل طريقة هي أخذ استبيان موجود وتصديره بصيغة القيم المفصولة بعلامات جدولة. استخدم زر تصدير الاستبيان المعتاد، وبدلاً من اختيار صيغة .lss، اختر "Tab Separated Values format (*.txt)". سيتم حفظه كملف قيم مفصولة بعلامات جدولة بالتنسيق الصحيح (ملف يونيكود مفصول بعلامات جدولة)، مع جميع عناوين الأعمدة الصحيحة.
أي برنامج جداول بيانات يدعم القيم المفصولة بعلامات جدولة مناسب (مثل OpenOffice أو LibreOffice). يتجاهل LimeSurvey أي تنسيق داخل جدول البيانات، ولكن يمكنك إضافة بعض التنسيق إن كان ذلك يفيدك.
سيكون هناك صف واحد لكل مجموعة وسؤال وسؤال فرعي وإجابة. وهناك أيضاً صفوف لمتغيرات الاستبيان العامة وللمتغيرات الخاصة بكل لغة. ستُدرج اللغة الأساسية أولاً، تليها أي لغات ثانوية. لذلك، إذا كانت هناك عدة لغات، فسيظهر المحتوى الكامل للغة الأساسية أولاً (مثل جميع المجموعات والأسئلة والأسئلة الفرعية والإجابات). ويتبع ذلك نسخة مترجمة لكل لغة ثانوية (بنفس العدد والترتيب تماماً من الصفوف للمجموعة المترجمة).
يتم استنتاج العلاقات حسب التجاور. لذلك فإن الأسئلة التي تلي مجموعة ما تكون جزءاً من تلك المجموعة؛ والأسئلة الفرعية التي تلي سؤالاً تكون جزءاً من ذلك السؤال، والإجابات التي تلي سؤالاً تكون جزءاً من ذلك السؤال. وبالتالي، لا تحتاج إلى معرفة المعرّفات (gid وqid وsqid) لأي سؤال. سيتم احتسابها تلقائياً عند الاستيراد. في الواقع، لا تستخدم هذه الصيغة gid أو qid أو sqid (أو رموز SGQA) على الإطلاق.
نصائح
الهدف من استيراد/تصدير القيم المفصولة بعلامات جدولة هو تمكينك من تصميم استبيانك بسرعة باستخدام جدول بيانات. نتوقع أن تقوم باستيراد الجدول بشكل متكرر، والتحقق من صحته باستخدام ميزة "Show Survey Logic"، واختباره. في كل مرة تستورده، ستحصل على استبيان جديد. لذلك قد ينتهي بك الأمر بالعديد من الاستبيانات التي لم يكتمل تطويرها، ولكن لا بأس بذلك. تعوّد فقط على تتبع أحدثها، أو احذف القديم بعد استيراد الجديد. وبما أنك لا تستخدم رموز SGQA أبداً في القيم المفصولة بعلامات جدولة، فلن تحتاج إلى القلق بشأن الرموز التي يخصصها LimeSurvey للمفاتيح الأساسية للاستبيان والمجموعة والسؤال والإجابة. لذا، لا تتردد في الاستيراد والتصدير بقدر ما تشاء.
فيما يلي بعض الأمور المفيدة التي يمكنك القيام بها باستخدام هذا الأسلوب في إعداد الاستبيانات:
- استخدام نفس الإجابات لعدة أسئلة. ما عليك سوى نسخ صفوف 'A' ولصقها بعد كل سؤال ينبغي أن تكون له نفس المجموعة.
- استخدام نفس الأسئلة الفرعية لعدة أسئلة. ما عليك سوى نسخ صفوف 'SQ' ولصقها بعد كل سؤال يحتاج إليها.
- "التكرار" - استخدام نفس المجموعة عدة مرات. بعد أن تصبح المجموعة بالشكل الذي تريده، انسخها بقدر ما تحتاج. استخدم تصفية Excel لعرض صفوف 'G' فقط (للمجموعات)، واستخدم ميزة السحب في أعمدة Excel لتحديث معادلات الصلة لكل مجموعة (مثلاً، في التعداد السكاني، قد تكون الصلة الأولى "numPeople > 1"، والتالية "numPeople > 2". ستقوم ميزة السحب بتحديث الرقم تلقائياً). قم بالتصفية حسب صفوف 'Q' وتأكد من أن لكل سؤال قيمة فريدة (مثلاً، إذا سميت متغيراتك g1_q1 وg1_q2 وg1_qN، فاستخدم البحث/الاستبدال لتحويل g1 إلى g2 للمجموعة الثانية؛ وg3 للثالثة، وهكذا).
- إعادة ترتيب الأسئلة/المجموعات. ما عليك سوى إعادة ترتيب صفوف ملف جدول البيانات.
- اختبار وحدات الاستبيان. بالنسبة للاستبيانات الطويلة، قد ترغب في تقسيم الاختبار إلى وحدات. ما عليك سوى إنشاء ملفات جداول بيانات جديدة لكل وحدة، مع حذف أي صفوف لا تحتاج إليها. وهذا يجنبك الحاجة إلى إدخال الكثير من البيانات لاختبار الأقسام اللاحقة من الاستبيان.
- اختبار الأسئلة الإلزامية. الشكوى الشائعة ليست الحاجة إلى جعل العديد من الأسئلة إلزامية، بل الحاجة إلى إيقاف الميزة الإلزامية أثناء الاختبار. ما عليك سوى إنشاء جدول البيانات الرئيسي مع ضبط الإلزامي على القيم النهائية المطلوبة. ثم، لاختباره، احذف عمود "mandatory" واحفظ نسخة الاختبار من جدول البيانات. عند استيراد تلك النسخة، لن يكون أي من الأسئلة إلزامياً. بعد الانتهاء من الاختبار، استورد النسخة الرئيسية.
- ضبط القيم الافتراضية. بدلاً من استخدام الواجهة الرسومية، يمكنك إدخال أي قيم افتراضية مطلوبة في عمود default. وهذا مفيد بشكل خاص في الحالات التي لا تتيح فيها الواجهة الرسومية إدخال القيمة المطلوبة، مثل تعبيرات لضبط القيمة الافتراضية لعناصر القائمة (مثل ملء قائمة من سمة مشارك في الاستبيان).
- الترجمة. يمكنك إنشاء نسخ من جدول البيانات - نسخة لكل لغة. أدرج جميع صفوف اللغة الأساسية، ثم انسخها والصقها أسفلها، واستخدم السحب لتغيير حقل اللغة إلى اللغة المستهدفة. يمكن توزيع هذه النسخ على المترجمين، ودمجها في ملف جدول بيانات واحد عند انتهائهم.
- الضبط الجماعي لسمات الأسئلة المتقدمة. قد ترغب في أن تكون جميع معادلاتك ظاهرة في البداية (لتتمكن من رؤية قيمها أثناء جمع البيانات)، ثم تخفيها جميعاً قبل الانتقال إلى مرحلة الإنتاج. ما عليك سوى تصفية جدول البيانات حسب class = 'Q' ونوع السؤال = '*' (معادلة)، وضبط always_hide على 1 لكل سؤال من تلك الأسئلة. وبالمثل، لنفترض أنك بعد إنشاء الاستبيان قررت أي الأسئلة ينبغي أن تظهر في الإحصاءات العامة. بدلاً من تحرير كل سؤال عبر الواجهة الرسومية، قم بالتصفية حسب class = 'Q'، واضبط public_statistics = 1 لجميع الأسئلة التي ينبغي أن تكون مرئية في الإحصاءات.
- البحث والاستبدال. لنفترض أنك قررت تغيير صياغة معينة في جميع أسئلتك، يمكنك استخدام البحث والاستبدال في Excel لإجراء تلك التغييرات. وبالمثل، إذا قررت إعادة تسمية متغيراتك بشكل جماعي، يمكن أن يكون البحث والاستبدال هو الحل. وإذا كنت بحاجة إلى بحث واستبدال قائم على التعبيرات المنتظمة، فيمكنك تحديد العمود المطلوب ونسخه إلى محرر نصوص، وإجراء البحث والاستبدال، ثم لصق العمود مرة أخرى في جدول البيانات.
- الحصول على الموافقات. إذا كنت تجري بحثاً، فقد يكون لديك مجلس مراجعة مؤسسي يصر على الاطلاع على نص الأسئلة. وقد تكون هذه طريقة مريحة لمشاركته. وينطبق الأمر نفسه على المناقشات مع العميل.
- توافق الفريق. إذا كنت تحاول جعل مجموعة ما تتفق على صياغة سؤال أو مجموعة أو مظهرها، فيمكنك إنشاء نموذج أولي/تحرير جدول البيانات بسرعة، واستيراده، وعرض ما سيراه المستخدمون بالضبط على الفريق (عبر معاينة السؤال أو المجموعة). وبهذه الطريقة يمكنك الحصول على موافقة الفريق قبل مغادرتهم الغرفة بدلاً من توثيق المتطلبات وبنائها والحصول على الموافقة في اجتماعات لاحقة.
- الترقية من صيغ استبيانات أخرى. إذا كان استبيانك بصيغة XML أو Word أو غيرها، فيمكنك إنشاء عملية تحويل لربطها بهذه الصيغة. وعلى الرغم من أنه يمكنك أيضاً محاولة الربط بصيغة .lss، فإن ميزة هذه الصيغة أنها لا تتطلب منك تتبع علاقات المفاتيح الخارجية بين المجموعات والأسئلة والأسئلة الفرعية والإجابات والقيم الافتراضية.
القيود
- بحكم التصميم، تعمل هذه الميزة بشكل صحيح فقط مع الاستبيانات التي تستخدم تسمية qcode (بدلاً من SGQA). تفترض هذه الميزة أن أسماء المتغيرات (معرّفات الأسئلة) فريدة في جميع أنحاء الاستبيان. يمكن تكرار أسماء الأسئلة الفرعية، طالما أنها فريدة ضمن نطاق سؤال معين.
تنسيق الملف
عام
نستخدم نفس مجموعة عناوين الأعمدة لأغراض متعددة. تخدم الأعمدة الأربعة عشر الأولى أغراضاً مختلفة حسب نوع الكيان (مثل المجموعة أو السؤال أو الإجابة). أما الأعمدة المتبقية فهي قائمة مرتبة أبجدياً بأسماء حقول قاعدة البيانات الخاصة برموز الأسئلة المتقدمة. فيما يلي الصيغة لكل نوع من أنواع الكيانات
الأعمدة الأربعة عشر الأولى هي:
- id (New in 3.14.0 )
- related_id (New in 3.14.0 )
- class
- type/scale
- name
- relevance
- text
- help
- language
- validation
- mandatory
- other
- default
- same_default
المعلمات العامة للاستبيان
يوجد صف واحد لكل معلمة في جدول الاستبيانات.
- class => 'S'
- name => اسم حقل قاعدة البيانات
- text => القيمة
المعلمات الخاصة بلغة الاستبيان
يوجد صف واحد لكل حقل لكل لغة في جدول surveys_languagesettings. يتم تجميع جميع الإدخالات الخاصة بلغة معينة قبل إدراجها في ذلك الجدول.
- class => 'SL'
- name => اسم حقل قاعدة البيانات
- text => القيمة
- language => اللغة
المجموعات
صف مجموعة واحد لكل لغة من لغات الاستبيان (مثلاً، سيكون هناك 3 صفوف للمجموعة إذا كان الاستبيان بثلاث لغات).
- id => معرّف رقمي فريد للمجموعة، يبدأ من الرقم 1، استخدم نفس المعرّف للغات الإضافية التابعة للمجموعة الحالية
- class => 'G'
- name => group_name -- المعرّف الفريد للمجموعة
- relevance => grelevance -- معادلة الصلة على مستوى المجموعة، بدون أقواس معقوفة
- text => description -- وصف المجموعة الخاص باللغة
- language => language -- لغة المجموعة (مثل 'en')
الأسئلة
صف سؤال واحد لكل لغة من لغات الاستبيان (مثلاً، سيكون هناك 3 صفوف للسؤال إذا كان الاستبيان بثلاث لغات). يُفترض أن الأسئلة تنتمي إلى المجموعة التي تسبقها.
- id => معرّف رقمي فريد للسؤال، يبدأ من الرقم 1، استخدم نفس المعرّف للغات الإضافية التابعة للسؤال الحالي
- class => 'Q'
- type/scale => type -- نوع السؤال (عادةً حرف واحد) (مثل 'M' هو خيار متعدد)
- name => title -- اسم السؤال الفريد (جذر نظام تسمية qcode)
- relevance => relevance -- معادلة الصلة للسؤال
- text => question -- نص السؤال الخاص باللغة
- help => help -- نص المساعدة الخاص باللغة
- language => language -- لغة المجموعة (مثل 'en')
- validation => preg -- معايير التحقق من الصحة الاختيارية بالتعبير المنتظم للسؤال
- mandatory => mandatory -- 'Y' إذا كان إلزامياً
- other => other -- 'Y' إذا كان يجب أن يتوفر خيار "آخر" (لبعض أنواع الأسئلة فقط)
- default => default -- إذا تم تعيينه، تُدرج هذه القيمة في جدول defaultvalues لهذا السؤال
- same_default => same_default -- 'Y' للقيمة الصحيحة، وفي هذه الحالة تنطبق أي قيمة افتراضية معيّنة للغة الأساسية على اللغات الأخرى
الأسئلة الفرعية
صف سؤال فرعي واحد لكل لغة من لغات الاستبيان. يُفترض أن الأسئلة الفرعية تنتمي إلى السؤال الذي يسبقها.
- id => نفس المعرّف الرقمي الفريد المستخدم للأسئلة. يجب أن تستخدم الأسئلة الفرعية القيمة التالية المتاحة، ويجب أن تكون معرّفات الأسئلة والأسئلة الفرعية مختلفة (مثلاً: استخدم المعرّف 1 للسؤال والمعرّفات 2 و3 و4 للأسئلة الفرعية التابعة للسؤال 1، ويكون معرّف السؤال التالي 5، وهكذا). استخدم نفس معرّف السؤال الفرعي للغات الإضافية التابعة للأسئلة الفرعية الحالية.
- class => 'SQ'
- type/scale => scale_id -- القيمة 0 أو 1، حسب نوع السؤال (مثلاً: سؤال صفيف النص سيكون له مقياسان)
- name => title -- "اسم" السؤال الفرعي، مثل الاسم المستخدم في exclude_all_others
- relevance => relevance -- (مستقبلاً) لدعم الصلة على مستوى السؤال الفرعي
- text => question -- نص السؤال الفرعي الخاص باللغة
- help => help -- (مستقبلاً) لدعم نص المساعدة على مستوى السؤال الفرعي
- language => language -- لغة السؤال الفرعي
- validation => preg -- (مستقبلاً) لدعم التحقق من الصحة بالتعبير المنتظم على مستوى السؤال الفرعي (مثل أجزاء العنوان)
- mandatory => mandatory -- (مستقبلاً) لدعم الإلزامية على مستوى السؤال الفرعي (مثلاً: جعل عدد قليل فقط من الأسئلة الفرعية إلزامية)
- default => default -- إذا تم تعيينه، فهذه هي القيمة الافتراضية للسؤال الفرعي (تُدرج في جدول defaultvalues)
- same_default => same_default -- إذا تم تعيينه، فسيتم استخدام القيمة الافتراضية للغة الأساسية لجميع اللغات الأخرى
الإجابات
صف إجابة واحد لكل لغة من لغات الاستبيان (مثلاً: سيكون هناك 3 صفوف إجابة إذا كان الاستبيان بثلاث لغات). يُفترض أن الإجابات تنتمي إلى السؤال الذي يسبقها، وأن تكون بترتيب الفرز المطلوب.
- id => استخدم نفس معرّف السؤال الذي تنتمي إليه
- class => 'A'
- type/scale => scale_id -- القيمة 0 أو 1 (مثلاً: للمقياس المزدوج)
- name => code -- المعرّف الفريد للإجابة
- relevance => assessment_value -- عند استخدام خيار التقييم، تكون هذه قيمة التقييم للإجابة
- text => answer -- نص الإجابة الخاص باللغة
- language => language -- لغة هذه الإجابة (مثل 'en')
التقييمات
صف تقييم واحد لكل لغة من لغات الاستبيان (مثلاً: سيكون هناك 3 صفوف تقييم إذا كان الاستبيان بثلاث لغات). تُكتب التقييمات في نهاية الملف.
- id => معرّف رقمي فريد للتقييم، يبدأ من الرقم 1، استخدم نفس المعرّف للغات الإضافية التابعة للتقييم الحالي
- related_id => معرّف المجموعة التي ينتمي إليها التقييم الحالي
- class => 'AS'
- type/scale => نطاق التقييم: T-الإجمالي، G-المجموعة
- name => الاسم
- text => الرسالة
- min_num_value => الحد الأدنى
- max_num_value => الحد الأقصى
- language => language -- لغة هذه الإجابة (مثل 'en')
الحصص
صف واحد لكل حصة. تُكتب الحصص في نهاية الملف.
- id => معرّف رقمي فريد للحصة، يبدأ من الرقم 1
- class => 'QTA'
- name => اسم الحصة
- mandatory => الحد
- other => حصة العمل
- default => نشط
- same_default => تحميل رابطة تلقائي
إعدادات لغة الحصة
صف حصة واحد لكل لغة من لغات الاستبيان. يُفترض أن إعدادات لغة الحصة تنتمي إلى الحصة التي تسبقها.
- id => معرّف رقمي فريد لإعدادات لغة الحصة، يبدأ من الرقم 1. يجب أن يكون لكل صف للغات الاستبيان المختلفة معرّف مختلف
- related_id => معرّف الحصة التي ينتمي إليها هذا الإعداد
- class => 'QTALS'
- relevance => الرسالة
- text => عنوان صفحة الويب (URL)
- help => وصف عنوان صفحة الويب
- language => language -- لغة هذه الحصة (مثل 'en')
أعضاء الحصة
صف واحد لكل عضو في الحصة، وهو غير مرتبط باللغة. يجب وضع صف عضو الحصة مباشرة بعد السؤال المرتبط به. يُفترض أن أعضاء الحصة ينتمون إلى السؤال الذي يسبقهم.
- id => معرّف رقمي فريد لأعضاء الحصة، يبدأ من الرقم 1
- related_id => معرّف الحصة التي ينتمي إليها هذا العضو
- class => 'QTAM'
- name => رمز الإجابة
الشروط
صف واحد لكل شرط، وهو غير مرتبط باللغة. يجب وضع صف الشرط مباشرة بعد السؤال المرتبط به. يُفترض أن الشروط تنتمي إلى السؤال الذي يسبقها.
- id => معرّف رقمي فريد للشرط، يبدأ من الرقم 1.
- related_id => معرّف السؤال المرتبط، إن وجد
- class => 'C'
- type/scale => السيناريو
- name => اسم حقل الإجابة
- relevance => معامل المقارنة
- text => الإجابة المتوقعة