سير العمل متعدد المراحل
بناء سير عمل تعليق توضيحي معقد مع استبيانات وتدريب ومنطق تفرع.
سير العمل متعدد المراحل
يدعم Potato 2.0 سير عمل التعليق التوضيحي المنظّم مع مراحل متعددة متتالية تشمل الموافقة، واستبيانات ما قبل الدراسة، والتعليمات، والتدريب، والتعليق التوضيحي، والتغذية الراجعة بعد الدراسة.
المراحل المتاحة
| المرحلة | الوصف |
|---|---|
consent | جمع الموافقة المستنيرة |
prestudy | استبيانات ما قبل التعليق التوضيحي (الديموغرافيا، الفحص) |
instructions | إرشادات المهمة والمعلومات |
training | أسئلة تدريبية مع تغذية راجعة |
annotation | مهمة التعليق التوضيحي الرئيسية (مطلوبة دائماً) |
poststudy | استبيانات وتغذية راجعة بعد التعليق التوضيحي |
التهيئة الأساسية
استخدم قسم phases في إعداداتك:
phases:
consent:
enabled: true
data_file: "data/consent.json"
prestudy:
enabled: true
data_file: "data/demographics.json"
instructions:
enabled: true
content: "data/instructions.html"
training:
enabled: true
data_file: "data/training.json"
schema_name: sentiment
passing_criteria:
min_correct: 8
# annotation phase is always enabled
poststudy:
enabled: true
data_file: "data/feedback.json"أنواع أسئلة الاستبيان
تدعم مراحل الاستبيان أنواع الأسئلة التالية:
اختيار فردي (Radio)
{
"name": "experience",
"type": "radio",
"description": "How much annotation experience do you have?",
"labels": ["None", "Some (< 10 hours)", "Moderate", "Extensive"],
"required": true
}اختيار متعدد (Checkbox)
{
"name": "languages",
"type": "checkbox",
"description": "What languages do you speak fluently?",
"labels": ["English", "Spanish", "French", "German", "Chinese", "Other"]
}إدخال نصي
{
"name": "occupation",
"type": "text",
"description": "What is your occupation?",
"required": true
}إدخال رقمي
{
"name": "years_experience",
"type": "number",
"description": "Years of professional experience",
"min": 0,
"max": 50
}مقياس ليكرت
{
"name": "familiarity",
"type": "likert",
"description": "How familiar are you with this topic?",
"size": 5,
"min_label": "Not familiar",
"max_label": "Very familiar"
}قائمة منسدلة
{
"name": "country",
"type": "select",
"description": "Select your country",
"labels": ["USA", "Canada", "UK", "Germany", "France", "Other"]
}مرحلة الموافقة
اجمع الموافقة المستنيرة قبل البدء:
phases:
consent:
enabled: true
data_file: "data/consent.json"consent.json:
[
{
"name": "consent_agreement",
"type": "radio",
"description": "I have read and understood the research consent form and agree to participate.",
"labels": ["I agree", "I do not agree"],
"right_label": "I agree",
"required": true
}
]يحدد حقل right_label الإجابة المطلوبة للمتابعة.
استبيانات ما قبل الدراسة
اجمع البيانات الديموغرافية أو أسئلة الفحص:
phases:
prestudy:
enabled: true
data_file: "data/demographics.json"demographics.json:
[
{
"name": "age_range",
"type": "radio",
"description": "What is your age range?",
"labels": ["18-24", "25-34", "35-44", "45-54", "55+"],
"required": true
},
{
"name": "education",
"type": "radio",
"description": "Highest level of education completed",
"labels": ["High school", "Bachelor's degree", "Master's degree", "Doctoral degree", "Other"],
"required": true
},
{
"name": "english_native",
"type": "radio",
"description": "Is English your native language?",
"labels": ["Yes", "No"],
"required": true
}
]مرحلة التعليمات
اعرض تعليمات المهمة:
phases:
instructions:
enabled: true
content: "data/instructions.html"أو استخدم محتوى مضمّن:
phases:
instructions:
enabled: true
inline_content: |
<h2>Task Instructions</h2>
<p>In this task, you will classify the sentiment of product reviews.</p>
<ul>
<li><strong>Positive:</strong> Expresses satisfaction or praise</li>
<li><strong>Negative:</strong> Expresses dissatisfaction or criticism</li>
<li><strong>Neutral:</strong> Factual or mixed sentiment</li>
</ul>مرحلة التدريب
أسئلة تدريبية مع تغذية راجعة (راجع مرحلة التدريب للتفاصيل):
phases:
training:
enabled: true
data_file: "data/training.json"
schema_name: sentiment
passing_criteria:
min_correct: 8
total_questions: 10
show_explanations: trueاستبيانات ما بعد الدراسة
اجمع التغذية الراجعة بعد التعليق التوضيحي:
phases:
poststudy:
enabled: true
data_file: "data/feedback.json"feedback.json:
[
{
"name": "difficulty",
"type": "likert",
"description": "How difficult was this task?",
"size": 5,
"min_label": "Very easy",
"max_label": "Very difficult"
},
{
"name": "clarity",
"type": "likert",
"description": "How clear were the instructions?",
"size": 5,
"min_label": "Very unclear",
"max_label": "Very clear"
},
{
"name": "suggestions",
"type": "text",
"description": "Any suggestions for improvement?",
"textarea": true,
"required": false
}
]القوالب المدمجة
يتضمن Potato مجموعات تسميات معرّفة مسبقاً لأسئلة الاستبيان الشائعة:
| القالب | التسميات |
|---|---|
countries | قائمة الدول |
languages | اللغات الشائعة |
ethnicity | خيارات العرق |
religion | خيارات الدين |
استخدم القوالب في أسئلتك:
{
"name": "country",
"type": "select",
"description": "Select your country",
"template": "countries"
}حقول الإجابة الحرة
أضف إدخال نصي اختياري بجانب الأسئلة المنظّمة:
{
"name": "topics",
"type": "checkbox",
"description": "Which topics interest you?",
"labels": ["Technology", "Sports", "Politics", "Entertainment"],
"free_response": true,
"free_response_label": "Other (please specify)"
}عناوين الصفحات
خصّص عناوين أقسام الاستبيان:
{
"page_header": "Demographics Survey",
"questions": [
{"name": "age", "type": "radio", ...},
{"name": "gender", "type": "radio", ...}
]
}مثال كامل
task_name: "Sentiment Analysis Study"
task_dir: "."
port: 8000
# Data configuration
data_files:
- "data/reviews.json"
item_properties:
id_key: id
text_key: text
# Annotation scheme
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment of this review?"
labels:
- Positive
- Negative
- Neutral
sequential_key_binding: true
# Multi-phase workflow
phases:
consent:
enabled: true
data_file: "data/consent.json"
prestudy:
enabled: true
data_file: "data/demographics.json"
instructions:
enabled: true
content: "data/instructions.html"
training:
enabled: true
data_file: "data/training.json"
schema_name: sentiment
passing_criteria:
min_correct: 8
total_questions: 10
retries:
enabled: true
max_retries: 2
show_explanations: true
# annotation phase is always enabled
poststudy:
enabled: true
data_file: "data/feedback.json"
# Output
output_annotation_dir: "output/"
output_annotation_format: "json"
# User access
allow_all_users: trueالتهيئة القديمة
لا يزال تنسيق التهيئة القديم surveyflow مدعوماً للتوافق مع الإصدارات السابقة:
surveyflow:
enabled: true
phases:
- name: pre_survey
type: survey
questions: survey_questions.json
- name: main_annotation
type: annotationومع ذلك، نوصي بالانتقال إلى تنسيق phases الجديد للمشاريع الجديدة.
أفضل الممارسات
1. اجعل الاستبيانات مختصرة
الاستبيانات الطويلة تقلل معدلات الإكمال. ركّز على الأسئلة الأساسية فقط.
2. استخدم التدريب للمهام المعقدة
مراحل التدريب تحسّن جودة التعليق التوضيحي، خاصة للمهام الدقيقة.
3. حدد معايير نجاح معقولة
# Too strict - may exclude good annotators
passing_criteria:
require_all_correct: true
# Better - allows for learning
passing_criteria:
min_correct: 8
total_questions: 104. قدّم تعليمات واضحة
أدرج أمثلة في مرحلة التعليمات لتوضيح التوقعات.
5. اختبر سير العمل الكامل
أكمل سير العمل بالكامل بنفسك قبل النشر لاكتشاف المشكلات.
6. استخدم الحقول المطلوبة بحكمة
لا تحدد الأسئلة كمطلوبة إلا إذا كانت ضرورية - الأسئلة الاختيارية تحصل على جودة استجابة أفضل.
التكامل مع التعهيد الجماعي
لمنصات Prolific أو MTurk، هيّئ رموز الإكمال:
phases:
poststudy:
enabled: true
data_file: "data/feedback.json"
show_completion_code: true
completion_code_format: "POTATO-{user_id}-{timestamp}"راجع التعهيد الجماعي لمزيد من التفاصيل.