80 lines
3.7 KiB
PHP
80 lines
3.7 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/app/bootstrap.php';
|
|
|
|
use App\Core\Database;
|
|
use App\Services\CurriculumService;
|
|
|
|
/**
|
|
* Saqel Curriculum Ingestion & Markdown Converter CLI Tool
|
|
* Converts Ministry PDF/Text documents into structured, lightning-fast Markdown Knowledge Base.
|
|
* Usage:
|
|
* php backend/curriculum_converter.php --file=/path/to/curriculum.pdf --subject="الرياضيات العلمي" --grade="tawjihi_2008"
|
|
* php backend/curriculum_converter.php --index-all
|
|
*/
|
|
|
|
echo "\n========================================================\n";
|
|
echo "📚 SAQEL CURRICULUM INGESTION & MARKDOWN CONVERTER\n";
|
|
echo "========================================================\n\n";
|
|
|
|
$storageDir = __DIR__ . '/storage/curriculum';
|
|
if (!is_dir($storageDir)) {
|
|
mkdir($storageDir, 0777, true);
|
|
}
|
|
|
|
// Ensure schema is active
|
|
CurriculumService::ensureSchema();
|
|
|
|
// Sample Initial Ingestion Manifest for Tawjihi 2008 Mathematics (Calculus Unit)
|
|
$mathCalculusMd = <<<MARKDOWN
|
|
# مبحث الرياضيات — الفرع العلمي (توجيهي 2008)
|
|
## الوحدة الأولى: التفاضل وتطبيقاته (Calculus & Applications)
|
|
|
|
### الدرس 1: المفهوم الهندسي والفيزيائي للمشتقة الأولى
|
|
- **نتاجات التعلم المستهدفة:**
|
|
1. فهم المعنى الهندسي للمشتقة الأولى كميل للمماس عند نقطة التماس $(x_1, y_1)$.
|
|
2. التمييز بين الاقتران المتصل والاقتران القابل للاشتقاق.
|
|
3. حساب المشتقة باستخدام التعريف العام للمشتقة: $f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}$.
|
|
|
|
### الدرس 2: قواعد الاشتقاق الأساسية وقاعدة السلسلة
|
|
- **القواعد المعتمدة:**
|
|
- مشتقة حاصل الضرب: $(f \cdot g)' = f'g + fg'$
|
|
- مشتقة القسمة: $(\frac{f}{g})' = \frac{f'g - fg'}{g^2}$
|
|
- قاعدة السلسلة: $\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}$
|
|
- **أمثلة نموذجية وأسئلة وزارية:**
|
|
- اشتقاق الاقترانات المثلثية الدائرية: $\sin(x), \cos(x), \tan(x), \sec(x), \csc(x), \cot(x)$.
|
|
|
|
### الدرس 3: الاشتقاق الضمني والمعدلات المرتبطة بالزمن
|
|
- **الاستراتيجية السقراطية لحل المسائل:**
|
|
1. رسم شكل تخطيطي وتحديد المتغيرات والثوابت.
|
|
2. صياغة العلاقة الأساسية والمساعدة (فيثاغورس، تشابه المثلثات، قوانين الحجوم والمساحات).
|
|
3. الاشتقاق الضمني بالنسبة للزمن $t$.
|
|
4. التعويض بالقيم المعطاة لحظياً.
|
|
MARKDOWN;
|
|
|
|
$subjectFolder = $storageDir . '/mathematics_scientific';
|
|
if (!is_dir($subjectFolder)) {
|
|
mkdir($subjectFolder, 0777, true);
|
|
}
|
|
|
|
$mdFile = $subjectFolder . '/unit_1_calculus.md';
|
|
file_put_contents($mdFile, $mathCalculusMd);
|
|
|
|
echo "✅ Generated Structured Curriculum Markdown:\n";
|
|
echo " 📄 {$mdFile}\n\n";
|
|
|
|
// Register into database knowledge base
|
|
CurriculumService::saveCurriculumTopic(
|
|
'الرياضيات العلمي',
|
|
'الوحدة الأولى: التفاضل وتطبيقاته',
|
|
[
|
|
'المفهوم الهندسي للمشتقة وميل المماس',
|
|
'قواعد اشتقاق حاصل الضرب والقسمة',
|
|
'قاعدة السلسلة والاقترانات المثلثية',
|
|
'الاشتقاق الضمني والمعدلات المرتبطة بالزمن'
|
|
]
|
|
);
|
|
|
|
echo "🎉 Curriculum successfully ingested and indexed into Saqel Knowledge Engine!\n";
|
|
echo " Fast Markdown Search & AI Grounding is 100% active.\n\n";
|