إدارة المعرفة الشخصية12 دقائق للقراءة

Obsidian Dataview: الدليل الشامل للوحات التحكم والاستعلامات الديناميكية (2026)

دليل شامل لعام 2026 لإضافة Obsidian Dataview: استعلامات TABLE وLIST وTASK، الحقول المضمنة، WHERE/SORT/GROUP BY، ولوحات تحكم جاهزة للمهام والمشاريع.

Obsidian Dataview: الدليل الشامل للوحات التحكم والاستعلامات الديناميكية (2026)

Obsidian Dataview: الدليل الشامل للوحات التحكم والاستعلامات الديناميكية (2026)

القوة الحقيقية لـ Obsidian لا تكمن في الملاحظات التي تكتبها — بل فيما يحدث عندما تبدأ تلك الملاحظات بالتحدث مع بعضها البعض. إضافة Dataview هي المفتاح الذي يقلب هذه المعادلة. فهي تحول خزانتك (vault) من مجموعة من ملفات ماركداون الاستاتيكية إلى قاعدة بيانات حية يمكنك الاستعلام عنها وتصنيفها وتلخيصها عند الطلب. أضف وسماً لملاحظة، وحدد تاريخ استحقاق، وضبط حالة المشروع، وستقوم Dataview بتجميع تلك المعلومات في جداول وقوائم ولوحات تحكم تتحدث تلقائياً في كل مرة تقوم فيها بتغيير أي شيء.

إذا سبق لك التمرير عبر عشرات المجلدات بحثاً عن “جميع مشاريعي النشطة” أو “كل مهمة ما زلت مديناً بها لشخص ما”، فأنت تفهم بالفعل المشكلة التي تحلها Dataview. بدلاً من صيانة ملاحظات الفهرس يدوياً، تكتب استعلاماً قصيراً مرة واحدة وتترك الإضافة تبقيه محدثاً إلى الأبد. سجل قراءتك، لوحة مهامك، مراجعتك الأسبوعية — كل ذلك يمكن أن يصبح آلياً.

إليك ما سنغطيه: ما هي Dataview حقاً، وكيفية تثبيتها، وكيفية إضافة البيانات الوصفية التي تقرؤها، وأنواع الاستعلامات الأربعة، وكيفية اختيار مصادرك وتصفيتها، والاستعلامات المضمنة، ولوحتي تحكم كاملتين جاهزتين للنسخ واللصق، وقائمة تحقق لاستكشاف الأخطاء وإصلاحها عندما يرفض الاستعلام بعناد إرجاع أي شيء. بحلول النهاية، ستكون قادراً على بناء لوحات التحكم الخاصة بك — أو تجاوز DQL تماماً وترك قالب جاهز يقوم بذلك نيابة عنك.

ما هي Obsidian Dataview ولماذا تعتبر مهمة؟

Dataview هي فهرس حي لخزانتك ولغة استعلام تقرأ البيانات الوصفية في ملاحظاتك وتعرضها كجداول أو قوائم أو لوحات مهام أو تقويمات. أنت لا تنقل أي بيانات ولا تكررها. أنت تصف ما تريده — “كل ملاحظة في Projects مسمومة بـ active، مرتبة حسب تاريخ الاستحقاق” — وتبني Dataview العرض، وتنعشه تلقائياً مع تغير خزانتك.

هذا أمر بالغ الأهمية لأن الفهارس اليدوية تتلف في اللحظة التي تنشئها فيها. فالملاحظة المكتوبة يدوياً “المشاريع النشطة” تصبح قديمة في المرة القادمة التي تنهي فيها مشروعاً. لكن استعلام Dataview لا يقدم أبداً. وتتضاعف الفائدة مع نمو خزانتك: فالاستعلام نفسه المكون من ثلاثة أسطر والذي يعرض مشروعين اليوم سيعرض عشرين مشروعاً في العام المقبل، دون أي جهد إضافي منك.

فكر في كل ملاحظة كصف في قاعدة بيانات وكل خاصية كعمود. تتيح لك Dataview طرح أسئلة على قاعدة البيانات تلك بصياغة واضحة ومقروءة. هذا هو الرفيق الطبيعي لعادات الربط الجيدة — إذا كنت ما زلت تبني تلك العادات، فإن دليلنا الشامل لربط ملاحظاتك يتكامل بشكل مثالي مع ما ستتعلمه هنا، لأنه كلما أشارت ملاحظاتك إلى بعضها البعض، كلما توفر لـ Dataview مواد أكثر للعمل عليها.

كيف تقوم بتثبيت وتمكين Dataview؟

يمكنك تثبيت Dataview من خلال لوحة الإضافات المجتمعية في Obsidian في أقل من دقيقة. إليك التسلسل الدقيق:

  1. افتح الإعدادات → الإضافات المجتمعية (Settings → Community Plugins).
  2. إذا رأيت “الوضع المقيد” (Restricted mode) مفعلاً، قم بإيقافه (هذا يسمح بتشغيل الإضافات المجتمعية).
  3. انقر على تصفح (Browse)، ثم ابحث عن Dataview.
  4. انقر على تثبيت (Install)، ثم تمكين (Enable).

بمجرد التمكين، تبدأ Dataview في فهرسة خزانتك في الخلفية. في الخزانة الصغيرة، يكون هذا فورياً؛ وفي الخزانة الكبيرة، قد يستغرق الأمر بضع ثوانٍ في المرة الأولى.

بعد ذلك، افتح إعدادات الإضافة وتحقق من مفتاحي التبديل اللذين يطلقان العنان لإمكانياتها الكاملة:

  • تمكين الاستعلامات المضمنة (Enable Inline Queries) — يتيح لك إظهار قيمة واحدة في منتصف الجملة (سنغطيه لاحقاً).
  • تمكين استعلامات JavaScript (Enable JavaScript Queries) — مطلوب فقط إذا كنت تخطط لاستخدام DataviewJS لمنطق مخصص متقدم. اتركه معطلاً إذا كنت تبدأ للتو.

نصيحة: لا تحتاج إلى “إعادة بناء” أي شيء يدوياً. تقوم Dataview بإعادة الفهرسة تلقائياً أثناء تحرير الملاحظات وإنشائها وحذفها. الاستثناء الوحيد يتم تغطيته في قسم استكشاف الأخطاء وإصلاحها بالقرب من النهاية.

كيف تضيف البيانات الوصفية: خواص Frontmatter مقابل الحقول المضمنة؟

تقرأ Dataview نوعين من البيانات الوصفية: YAML frontmatter (يسميها Obsidian الخواص / Properties) والحقول المضمنة المكتوبة في متن الملاحظة. يكتسب كلاهما أعدة قابلة للاستعلام؛ وأنت تختار بناءً على المكان الذي تعيش فيه البيانات بشكل طبيعي.

تقع Frontmatter (الخواص) في الجزء العلوي المباشر من الملاحظة بين سطرين --- وهي الأفضل للبيانات الهيكلية على مستوى الملاحظة:

---
status: active
due: 2026-07-15
priority: 1
tags: [project, client]
---

تتيح لك الحقول المضمنة تسجيل البيانات في منتصف الملاحظة باستخدام نقطتين مزدوجتين. استخدم key:: value في سطر خاص بها، أو [key:: value] لتضمين حقل داخل جملة:

Project kicked off today.
status:: in-progress
Budget is [budget:: 4500] for this quarter.

يتم استنتاج أنواع الحقول تلقائياً: نص، رقم، تاريخ (بنسق ISO مثل 2026-07-15)، قائمة (tags: [a, b])، ورابط ([[ملاحظة ما]]). بالإضافة إلى كل ما تضيفه، تأتي كل ملاحظة بحقول مدمجة file.* يمكنك الاستعلام عنها دون تعريف أي شيء:

الحقل المدمج ما يعيده
file.name اسم ملف الملاحظة
file.link رابط قابل للنقر إلى الملاحظة
file.ctime / file.mtime وقت الإنشاء / التعديل الأخير
file.tags جميع الوسوم في الملاحظة
file.inlinks / file.outlinks الملاحظات المرتبطة داخلياً / خارجياً
file.folder مسار المجلد

حقل file.inlinks هذا هو قوة خارقة هادئة — يتيح لك بناء عروض تعتمد كلياً على كيفية اتصال ملاحظاتك، ولهذا السبب تؤدي عادات الربط المتعمدة إلى نتائج باهرة.

ما هي أنواع الاستعلامات الأربعة: TABLE وLIST وTASK وCALENDAR؟

توفر Dataview أربعة أنواع من الاستعلامات، وينتج كل منها شكلاً مختلفاً من المخرجات. تكتبها داخل كتلة كود موسومة بـ dataview.

LIST هو الأبسط — قائمة نقطية من الملاحظات:

LIST
FROM "Projects"
WHERE status = "active"

TABLE هو حصان العمل اليومي، حيث يضيف أعمدة لأي حقل تسميه:

TABLE status, due, file.mtime AS "Last Edited"
FROM "Projects"
SORT due ASC

يستخرج TASK عناصر خانات الاختيار الفردية (- [ ]) من ملاحظاتك، وتكون مجمعة حسب الملاحظة التي تعيش فيها — وهو مثالي لعرض المهام على مستوى الخزانة بأكملها:

TASK
WHERE !completed

يرسم CALENDAR الملاحظات على شبكة شهرية باستخدام حقل تاريخ تختاره، وهو أمر مفيد لتصور الاجتماعات أو المواعيد النهائية:

CALENDAR due
FROM "Projects"

استعن بـ LIST وTABLE لكل شيء تقريباً، وTASK عندما تريد تجميع خانات الاختيار عبر الملاحظات، وCALENDAR عندما يعرض عرض التقويم القائم على التواريخ القصة بشكل أفضل من الصفوف. إذا كانت إدارة المهام هي هدفك الرئيسي، فإن دليلنا الشامل لإدارة المهام في Obsidian يوضح كيفية توافق أنواع الاستعلام هذه مع سير عمل حقيقي.

كيف تختار مصادرك باستخدام FROM؟

تخبر جملة FROM إضافة Dataview بالملاحظات التي يجب مراعاتها، ويمكنك استهداف المجلدات أو الوسوم أو الروابط. إذا قمت بضبط هذا بشكل صحيح، فستظل استعلاماتك سريعة ومحددة.

  • حسب المجلد: FROM "Projects" (ضع المسار دائماً بين اقتباسين؛ استخدم "Areas/Health" للمجلدات الفرعية).
  • حسب الوسم: FROM #active (بدون اقتباسات على الوسوم).
  • حسب الرابط الوارد: FROM [[Project Alpha]] يجد كل ملاحظة ترتبط بتلك الملاحظة.
  • حسب الرابط الصادر: FROM outgoing([[Project Alpha]]) يجد الملاحظات التي يشار إليها من Alpha.

اجمع بين المصادر باستخدام AND وOR واستبعد باستخدام علامة الناقص. هذا هو النمط الأكثر فائدة عملياً — اسحب مجلداً، وضيّق النطاق حسب الوسم، واستبعد القوالب:

TABLE status, due
FROM "Projects" AND #active AND -"Templates"
SORT due ASC

يقرأ هذا الاستعلام كل شيء في مجلد Projects الموسوم بـ #active مع استبعاد أي شيء في مجلد Templates.

ملاحظة: تحديد النطاق باستخدام FROM ليس مجرد ترتيب — بل هو عادة أداء. فالاستعلام الذي يبدأ بـ FROM "Projects" يفحص ذلك المجلد فقط، بينما يفحص الاستعلام الذي لا يحتوي على FROM خزانتك بأكملها في كل تحديث.

كيف تقوم بتصفية النتائج وترتيبها وتجميعها؟

بمجرد اختيار مصدرك، تساهم WHERE وSORT وGROUP BY في تشكيل المخرجات. هذه هي الجمل التي ستضبطها في أغلب الأحيان.

تقوم WHERE بتصفية الصفوف باستخدام المقارنات والدوال:

  • المقارنات: WHERE priority >= 2، WHERE status = "active"، WHERE due < date(today).
  • الدوال: contains(file.name, "2026")، length(tags) > 0 ورقع التواريخ مثل due <= date(today) + dur(7 days).

تقوم SORT بترتيب النتائج: SORT due ASC أو SORT file.mtime DESC. وتحدد LIMIT العدد الأقصى: LIMIT 10.

تقوم GROUP BY بتجميع النتائج تحت قيمة مشتركة — تجميع المهام حسب الحالة، الملاحظات حسب المجلد، أو القراءات حسب المؤلف:

TABLE rows.file.link AS "Projects"
FROM "Projects"
GROUP BY status

عندما يحتوي الحقل على قائمة (مثل وسوم أو مؤلفين متعددين)، استخدم FLATTEN لفكها إلى صف واحد لكل قيمة قبل التجميع — وإلا ستُعامل القائمة كتكتل واحد. إليك وصفة “الملاحظات المعدلة مؤخراً” القابلة للنسخ واللصق والتي تجمع بين عدة من هذه الجمل:

TABLE file.mtime AS "Modified"
FROM ""
SORT file.mtime DESC
LIMIT 10

واستعلام تنظيف “الملاحظات غير الموسومة”، وهو مفيد للحفاظ على خزانة مرتبة:

LIST
WHERE length(file.tags) = 0

كيف تكتب DQL مضمناً ومتى يجب استخدام DataviewJS؟

يتيح لك DQL المضمن إدراج قيمة محسبوبة واحدة مباشرة في الجملة، بدلاً من عرض كتلة كاملة. تكتبه ببادئة علامة الاقتباس المائلة وعلامة المساواة. على سبيل المثال، يطبع = this.due تاريخ استحقاق الملاحظة الحالية بشكل مضمن، ويطبع = dv.current().file.mtime وقت التعديل الأخير لهذه الملاحظة — وكلاهما يتحدث مباشرة.

هذا مثالي داخل القوالب والملاحظات اليومية: العنوان الذي يقرأ “آخر مراجعة: = this.reviewed” يظل دقيقاً دون أن تلمسه. يجب تمكين الاستعلامات المضمنة في الإعدادات (لقد قمت بضبطها أثناء التثبيت).

DataviewJS هو المستوى المتقدم. إنه يستبدل صياغة DQL المقروءة بـ JavaScript وواجهة برمجة تطبيقات dv.*، مما يمنحك حلقات وتصريحات شرطية ومنطقاً مخصصاً — على سبيل المثال، dv.pages("#book").where(p => p.rating > 4). المقابِل هو منحنى تعلم أكثر انحداراً ومفتاح استعلامات JavaScript. عاملها كخطوة تالية بعد أن ترتاح لـ DQL، وليس ك نقطة بداية. الغالبية العظمى من لوحات التحكم لا تحتاجها أبداً.

نصيحة: إذا وجدت نفسك تلجأ إلى DataviewJS للقيام بشيء بسيط، فهناك عادة طريقة DQL عادية. وفر JavaScript للعرض المخصص حقاً.

كيف تبني لوحات تحكم حقيقية للمهام والمشاريع؟

لوحة التحكم هي مجرد ملاحظة تحتوي على استعلامات متعددة تجيب معاً على “ما الذي يحتاج إلى اهتمامي؟”. إليك مثالين كاملين للنسخ واللصق يمكنك إسقاطهما في ملاحظة وتعديلهما.

التطبيق 1 — لوحة تحكم المهام. تظهر هذه اللوحة كل مهمة مفتوحة عبر خزانتك، وتعزل المهام المتأخرة، وتجمعها حسب الملف حتى تتمكن من رؤية ما يدين به كل مشروع:

TASK
WHERE !completed AND due AND due < date(today)
GROUP BY file.link

استبدل due < date(today) بـ due <= date(today) + dur(7 days) لرؤية كل شيء مستحق هذا الأسبوع بدلاً من ذلك. للتعامل الأغنى مع التواريخ والتكرار، اقرن Dataview مع إضافة Tasks: تتولى Tasks الجدولة والتكرار وواجهة خانات الاختيار الأنيقة، بينما تقوم Dataview بالتجميع والتقرير عبر الملاحظات. يغطي دليلنا النهائي لإضافة Tasks ذلك الاقتران بالكامل، ويتلاءم بدقة مع إعداد GTD إذا كانت تلك هي طريقتك.

التطبيق 2 — لوحة تحكم المشاريع. جدول واحد للمشاريع النشطة مع الحالة، والإجراء التالي، وتاريخ التعديل الأخير:

TABLE status AS "Status", next_action AS "Next Action", file.mtime AS "Last Modified"
FROM "Projects" AND -"Templates"
WHERE status != "done"
SORT file.mtime DESC

يعد بناء هذه اللوحات من الصفر طريقة رائعة للتعلم — ولكن إذا كنت تفضل أن تكون جاهزة وموصلة مسبقاً، فهذا هو المكان الذي يتألق فيه القالب الجاهز. يأتي Obsibrain مزوداً بلوحات تحكم مدعومة بـ Dataview للمهام والمشاريع والمراجعات اليومية/الأسبوعية المهيأة مسبقاً، حتى تحصل على الفائدة دون كتابة سطر واحد من DQL.

ما هي الأخطاء الشائعة ومزالق الأداء؟

معظم استعلامات Dataview “المعطلة” تفشل لنفس الأسباب القليلة. راجع قائمة التحقق هذه قبل افتراض أن الإضافة هي السبب.

  • صياغة الحقول المضمنة: استخدم نقطتين مزدوجتين (status:: active)، وليس واحدة. النقطة الواحدة لا تفعل شيئاً خارج frontmatter.
  • حساسية حالة الأحرف: Status وstatus حقلان مختلفان، و"Active" لن تطابق "active" في WHERE. كن متسقاً.
  • ضع مسارات المجلدات بين اقتباسين: FROM "Projects" تعمل؛ وFROM Projects تُقرأ كمصدر يشبه الوسم وتفشل.
  • الحقول المفقودة تعيد null: الاستعلام الذي يفلتر على priority يسقط بتكتم كل ملاحظة تفتقر إلى حقل priority. لهذا السبب غالباً ما تبدو النتائج غير مكتملة بدلاً من فارغة.
  • لا تخلط أنواع الحقول: إذا كان due تاريخاً في بعض الملاحظات ونصاً عادياً في ملاحظات أخرى، فستنكسر المقارنات والفرز. احفظ الحقل بنوع واحد على مستوى الخزانة.

بالنسبة للأداء في الخزانات الكبيرة، فالقاعدة هي إعطاء Dataview مسحاً أقل:

  1. حدد نطاق كل استعلام باستخدام FROM "Folder" أو FROM #tag بدلاً من FROM "".
  2. أضف LIMIT للقوائم الطويلة التي لا تقرأها بالكامل.
  3. تجنب وضع كود DataviewJS ثقيل في الملاحظات التي تفتحها باستمرار.
  4. إذا بدت النتائج قديمة بعد التعديلات، فقم بإيقاف تشغيل الإضافة وتشغيلها مجدداً في الإعدادات (أو أعد تشغيل Obsidian) لفرض إعادة الفهرسة.

ملاحظة: الاستعلام الذي لا يعيد أي شيء هو في كثير من الأحيان مشكلة بيانات وصفية (حقل مفقود، اسم مجلد مكتوب بشكل خاطئ، عدم تطابق في حالة الأحرف) وليس خطأ في Dataview. ابدأ بالحقل، وليس بالصياغة.

Dataview مقابل Obsidian Bases: أيهما يجب أن تستخدم في 2026؟

أطلقت Obsidian ميزة Bases كميزة أساسية في عام 2025، وتتداخل مع Dataview بما يكفي لجعل الاختيار يربك الوافدين الجدد. Bases عبارة عن عرض قاعدة بيانات بدون كود بأسلوب الجداول البيانات: تبني الجداول والتصفية من خلال واجهة رسومية، وهي مدمجة في Obsidian (بدون إضافة)، وتعمل بسلاسة على الهواتف. أما Dataview فهي لغة استعلام نصية: أكثر تعبيراً، وأكثر قابلية للنقل كماركداون عادي، وأفضل بكثير في سحب المهام وحساب القيم المشتقة.

استخدم Bases عندما تريد جدولاً مرئياً سريعاً بدون صياغة لتعلمها وكانت معظم أعمالك على الهاتف. واستعن بـ Dataview عندما تحتاج إلى استعلامات TASK، أو قيم مضمنة داخل النص، أو تصفية معقدة، أو لوحات تحكم تنتقل كنص عادي. يشتغل العديد من المستخدمين المتقدمين بكلتيهما — Bases لقواعد البيانات القابلة للتصفح، وDataview للتقارير وتجميع المهام. لا ينبغي الاستغناء عن أي منهما، لذا اختر بناءً على حالة الاستخدام بدلاً من الالتزام بواحدة فقط.

الأسئلة الشائعة

هل إضافة Dataview مجانية، وهل ما زالت تحظى بالصيانة وآمنة للاعتماد عليها في 2026؟ نعم. Dataview مجانية ومفتوحة المصدر وواحدة من أكثر الإضافات المجتمعية تثبيتاً في نظام Obsidian البيئي. إنها مستقرة ويُعتمد عليها على نطاق واسع. مع ذلك، فهي إضافة مجتمعية (ليست أساسية)، لذا بالنسبة للإعدادات الحيوية، من الحكمة الحفاظ على بياناتك كماركداون عادي — وهو ما تفعله Dataview تصميماً، لأنها تقرأ ملاحظاتك فقط ولا تغيرها أبداً.

ما الفرق بين Dataview وإضافة Tasks — هل أحتاج إلى كلتيهما؟ إنهما تحلان مشكلتين مختلفين وتتكاملان جيداً. تدير إضافة Tasks المهام الفردية: التواريخ، التكرار، الجدولة، وواجهة مربعات الاختيار الأنيقة. وتوفر Dataview التجميع والتقارير — لبناء الجداول والقوائم عبر خزانتك بالكامل. لإدارة المهام الجدية، يشغل معظم الناس كلتيهما، تاركين لـ Tasks دور إدارة دورة حياة المهام بينما تشغل Dataview لوحات التحكم.

لماذا لا يعمل استعلام Dataview الخاص بي أو لا يظهر أي نتائج؟ تسعون بالمائة من الأوقات تكون المشكلة في البيانات الوصفية، وليس الاستعلام. تحقق من وجود نقطة واحدة بدلاً من نقطتين في الحقول المضمنة، أو عدم تطابق حالة الأحرف (Status مقابل status)، أو مسار مجلد غير محاط باقتباس، أو حقل غير موجود أساساً في الملاحظات التي توقعتها. جملة WHERE التي تفلتر على حقل مفقود تزيل تلك الملاحظات بتكتم. أصلح الحقل أولاً، والصياغة ثانياً.

هل تبطئ Dataview برنامج Obsidian في الخزانات الكبيرة، وهل تعمل الاستعلامات على الهاتف وObsidian Publish؟ في الخزانات الكبيرة جداً، قد تتأخر الاستعلامات غير المحددة النطاق — حلها بإضافة مجلد/وسم FROM وLIMIT. تعمل الاستعلامات على الهاتف (على الرغم من أن الاستعلامات الثقيلة أبطأ على الهواتف) وتتزامن عبر الأجهزة كنص عادي لأنها تعيش داخل ملاحظاتك. لاحظ أن Dataview لا تُعرض على Obsidian Publish، لذا تعرض الصفحات المنشورة الاستعلام الخام وليس الجدول.

ابدأ صغيراً ودعه ينمو

لا تحتاج إلى إتقان كل جملة هذا الأسبوع. أضف خاصية status إلى بعض ملاحظات المشاريع، وانقش جدول المعدل مؤخراً، وشاهده وهو يمتلئ — فهذا الفوز التراكمي الفردي عادة ما يكون كافياً لجعل النظام يستقر في ذهنك. من هناك، ابْنِ لوحة مهام، ثم عرض مشاريع، ثم مراجعة أسبوعية، مع إضافة استعلام واحد في كل مرة تظهر فيها حاجة حقيقية.

وإذا كنت تحب النتائج ولكنك لا تحب الصيانة، فلست مضطراً لبناء أي شيء بنفسك. يقدم Obsibrain لوحات تحكم Dataview هذه مهيأة مسبقاً — المهام والمشاريع والمراجعات الدورية جاهزة في اليوم الأول — حتى تتمكن من قضاء وقتك في التفكير بدلاً من كتابة الاستعلامات. سواء قمت ببنائها أو إسقاطها جاهزة، فالهدف واحد: خزانة تنظم نفسها بينما تركز أنت على العمل الذي يهم.

استكشف النسخة التجريبية من Obsibrain.

اكتشف كيف يناسب Obsibrain طريقتك في العمل. احصل على خزنة العرض التجريبي عبر البريد الإلكتروني واستكشفها في Obsidian.

تشمل رسائل متابعة النسخة التجريبية والعروض. يمكنك إلغاء الاشتراك في أي وقت. سياسة الخصوصية

صُنع بـ 💙 بواسطة @pierremouchan

حقوق النشر © 2026