مع الإصدار القادم من Open edX ، Maple ، يسعد فريق edX بمشاركة جزء من التكنولوجيا التي كانوا يستخدمونها داخليًا لفترة من الوقت. تسمى هذه الأداة CourseGraph ، وهي متاحة الآن كجزء غير مدعوم من devstack و Maple. يسمح لك CourseGraph بالإجابة على الأسئلة التي قد تكون لديك حول محتوى جميع الدورات التدريبية في المثيل بشكل إجمالي ، مثل عدد ومواقع XBlocks المحددة والأسئلة المتعلقة بهيكل الدورات التدريبية والأسئلة المتعلقة بالامتحانات ، و اكثر!

في edX ، يقتصر استخدام CourseGraph على فرق دعم العملاء والهندسة. تجد هذه الفرق أنه من المفيد أن تكون قادرًا على الإجابة على الأسئلة التي تتم الإجابة عليها من خلال الإحصاءات الإجمالية ؛ غالبًا ما يكون فريق دعم الشركاء بشكل خاص قادرًا على المساعدة في تصحيح مشكلات المعلم في Studio باستخدام استعلام XBlock. يحصل فريق الهندسة على نظرة ثاقبة لجميع أنواع المشكلات المحتملة - مثل معرفة أماكن وجود "الكتل المعزولة" (الكتل التي لا يمكن الوصول إليها من جذر الدورة التدريبية عن طريق الأطفال).

ما هو CourseGraph؟

CourseGraph هو تمثيل رسومي لمحتوى الدورة التدريبية للمثيل الخاص بك بتنسيق neo4j، قاعدة بيانات رسوم بيانية شائعة ؛ CourseGraph هو ليس وقت التشغيل API. تتمثل ميزة تمثيل بيانات الدورة التدريبية في نموذج الرسم البياني في أنها تتيح لك كتابة استفسارات واسعة حول كل من محتوى الدورة التدريبية وهيكلها. يفترض استخدام CourseGraph أن لديك إلمامًا أساسيًا بنموذج بيانات الدورة التدريبية ، وأن الدورات التدريبية عبارة عن رسوم بيانية ، غالبًا عبارة عن أشجار ، حيث تكون كل عقدة عبارة عن XBlock.

فماذا؟

هل كان لديك من قبل أسئلة مثل:

  • قد تتساءل فرق الدورة التدريبية (وغيرهم!) ...
    • أين توجد جميع مكونات الفيديو في المقرر الدراسي الخاص بي؟ ما هي كل عناوينهم ومعرفاتهم؟
    • ما هي وحدات ORA (تقييم الاستجابة المفتوحة) التي تحتوي على تواريخ خاطئة؟ (قد تمنع التواريخ التي تم تكوينها بشكل خاطئ المتعلمين من الوصول إلى الواجب)
    • ما هي أنواع الكتل (مثل المشكلة أو ORA) التي أستخدمها في المقرر الدراسي الخاص بي ، وما مدى تكرار استخدام هذه الكتل؟
  • قد يتساءل المطورون / مشغلو الموقع / فرق الدعم ...
    • كم عدد الدورات التدريبية التي يتم تشغيلها حاليًا والتي تستخدم نوعًا معينًا من الكتلة؟
    • من أين توجد جميع مقاطع الفيديو الخاصة بالمؤسسة وما مصدر الفيديو / عنوان URL الذي يتم تقديمها منه؟
    • ما هي الدورات التدريبية التي تستخدم مكونات LTI ، وأي منها تم تصنيفها؟

في الوقت الحالي ، من الصعب حقًا الإجابة على هذه الأسئلة ، نظرًا للطريقة التي يتم بها تخزين بيانات الدورة التدريبية في Mongo. تم تحسين Split Mongo ، وهي الواجهة الخلفية لجميع الدورات التدريبية تقريبًا ، لتحميل دورة فردية في وقت واحد ، وليس للاستفسارات العامة عبر هياكل الدورة التدريبية المتعددة. تتطلب إعادة بناء الهيكل الشبيه بالرسم البياني لكل دورة قدرًا كبيرًا من المعالجة خارج استعلام مونغو الخالص. الميزة الأخرى لاستخدام neo4j هي ​​أنه يأتي مع متخيل نتيجة استعلام مدمج ، بحيث يمكنك رؤية هياكل الرسم البياني لأجزاء من الدورات التدريبية. 

يحسب الاستعلام التالي عدد مشاكل jsinput عبر مثيل Open edX الخاص بك:

MATCH 

(دورة) - [: PARENT_OF *] -> (ع: مشكلة) 

WHERE 

p البيانات 

يحتوي على 

"jsinput"

عودة

    عد (ع) كرقم

وإرجاع النتيجة التالية (31026):

يمكنك أيضًا رؤية البيانات بشكل مرئي ، عندما تكون نتيجة الاستعلام عبارة عن عقد. هذا الاستعلام مطابق للاستعلام السابق باستثناء أننا نرجع * ونقصر النتيجة على 50 عنصرًا. يتم عرض العقد ووالد العلاقات في الرسم البياني. يؤدي التمرير فوق العقدة إلى عرض السمات المعينة على تلك العقدة في الشريط السفلي.

ما هي بنية البيانات؟

Neo4j هي ​​قاعدة بيانات رسوم بيانية ، وبالتالي ، مثل الرسم البياني ، لديها نوعان من أنواع البيانات الأساسية: العقد والحواف. في حالة CourseGraph ، العقد هي XBlocks: كتل الدورة التدريبية ، والمشاكل ، والعمودية ، و htmls ، إلخ. تتوافق السمات الموجودة على تلك العقدة مع الحقول الموجودة في XBlock. بالإضافة إلى ذلك ، تحتوي كل عقدة على سمات course_key و org و course و run و edited_on والموقع التي تم تعيينها عليها أيضًا.

تمثل الحواف كيفية ارتباط العقد. هناك نوعان من العلاقات بين الكتل: "PARENT_OF" ، الذي يربط الكتلة بطفلها ، و "PRECeases" ، التي تربط الكتلة بأشقائها. لذلك قد يكون العمود الرأسي عبارة عن كتلة فيديو PARENT_OF ؛ في تسلسل من عمودين ، فإن العمود الرأسي الأول سوف "يستبق" الثاني.

كيف أكتب استفسارات ضدها؟

يستخدم Neo4j لغة الاستعلام الخاصة به ، سايفر. إنه مشابه لـ SQL ، لذلك لن يستغرق الأمر وقتًا طويلاً للحصول على تعليق. الدفع هذا المرجع مفيد للحصول على نصائح مفيدة! في edX ، لاحظنا باستمرار الاستفسارات المفيدة ؛ انظر إلى ما توصلنا إليه - وأضف ما يخصك! - على ال صفحة مجموعة استعلام CourseGraph.

إليك استعلام أكثر تعقيدًا ، يمر عبر دورة تدريبية على المثيل الخاص بك (هنا ، الدورة التدريبية "DemoX" edx.org) ، ويخرج جميع XBlocks المرئية للمتعلم من نوع "مشكلة" في الدورة التدريبية ، مع توضيح اسم العرض الخاص بها ، اسم القطاع الذي يحتوي عليه ، ووقت آخر تعديل له:

MATCH

    (ج: دورة) - [: PARENT_OF *] -> (v: عمودي) - [: PARENT_OF *] -> (n: عنصر)

WHERE

    c.course_key = 'course-v1: edX + DemoX.1 + 2T2019'

    و

    n.block_type = "مشكلة"

    و

    n.visible_to_staff_only = خطأ

عودة  

    n.block_type ،

    n.display_name ،

    v.display_name as unit_location،

    n.eded_on

ترتيب حسب

  n.eded_on ؛

إليك أول 16 نتيجة ، من 17 كما هو مذكور في السطر الأخير:

كيف يمكنني نشر وتشغيل CourseGraph؟

سيتضمن إصدار جوزة الطيب (المتوقع في يونيو 2022) أ البرنامج المساعد CourseGraph للمعلم! تحقق من البرنامج المساعد README لمعرفة كيف سيتمكن مشغلو Nutmeg من تثبيت وتهيئة وتشغيل CourseGraph بسهولة كجزء من عملية نشر Open edX التي يديرها المعلم. (بالنسبة لمثيلات Open edX التي تشغل إصدارًا أقدم من Nutmeg ، لا توجد طريقة موصى بها رسميًا لنشر CourseGraph.)

اعتبارًا من Nutmeg ، يكون المكون الإضافي في حالة "Beta" ، ويبحث المشرفون عليه بنشاط عن المستخدمين الذين يرغبون في تجربته في إعداد الإنتاج وتقديم الملاحظات. لطرح الأسئلة أو الإبلاغ عن الأخطاء أو مشاركة خبراتك مع CourseGraph ، يرجى فتح إصدار GitHub في مستودع البرنامج التعليمي المساهم.

نأمل أن تكون هذه الأداة مفيدة لك!

 إجمالي المشاهدات 969