داتالوج
داتالوج هي لغة برمجة منطقية تصريحية . ورغم أنها تُعتبر من الناحية التركيبية مجموعة فرعية من برولوج ، إلا أن داتالوج تستخدم عمومًا نموذج تقييم تصاعدي بدلًا من نموذج التقييم التنازلي. هذا الاختلاف يُنتج سلوكًا وخصائص مختلفة تمامًا عن برولوج . غالبًا ما تُستخدم داتالوج كلغة استعلام لقواعد البيانات الاستنتاجية . وقد طُبقت داتالوج على مشاكل في تكامل البيانات ، والشبكات ، وتحليل البرامج ، وغيرها.
مثال
يتكون برنامج داتالوج من حقائق ، وهي عبارات تُعتبر صحيحة، وقواعد ، وهي قواعد تُحدد كيفية استنتاج حقائق جديدة من حقائق معروفة. على سبيل المثال، إليك حقيقتان تعنيان أن زيركس هو أحد والدي بروك، وأن بروك هي أحد والدي داموكليس :
parent ( xerces , brooke ). parent ( brooke , damocles ).تُكتب الأسماء بأحرف صغيرة لأن السلاسل النصية التي تبدأ بحرف كبير تُمثل متغيرات. إليك قاعدتان:
السلف ( X ، Y ) :- الأصل ( X ، Y ). السلف ( X ، Y ) :- الأصل ( X ، Z ), السلف ( Z ، Y ).يُقرأ الرمز :-على أنه "إذا"، وتُقرأ الفاصلة على أنها "و"، لذا فإن هذه القواعد تعني:
- يُعتبر X سلفًا لـ Y إذا كان X أحد والدي Y.
- يُعتبر X سلفًا لـ Y إذا كان X أحد والدي Z، وكان Z سلفًا لـ Y.
يُعرَّف معنى البرنامج بأنه مجموعة جميع الحقائق التي يمكن استنتاجها باستخدام الحقائق الأولية والقواعد. ويُحدد معنى هذا البرنامج بالحقائق التالية:
الأب ( زركيس ، بروك ). الأب ( بروك ، داموكليس ). السلف ( زركيس ، بروك ). السلف ( بروك ، داموكليس ). السلف ( زركيس ، داموكليس ).بعض تطبيقات Datalog لا تستنتج جميع الحقائق الممكنة، بل تجيب على الاستفسارات بدلاً من ذلك :
?- سلف ( xerces ، X ).يسأل هذا الاستعلام: من هم جميع الكائنات X التي يعتبر xerces سلفًا لها؟ في هذا المثال، سيعيد الاستعلام brooke و damocles .
مقارنة بقواعد البيانات العلائقية
ترتبط مجموعة Datalog الفرعية غير التكرارية ارتباطًا وثيقًا بلغات الاستعلام الخاصة بقواعد البيانات العلائقية ، مثل SQL . يوضح الجدول التالي العلاقة بين مفاهيم Datalog والجبر العلائقي و SQL :
| داتالوج | الجبر العلائقي | SQL |
|---|---|---|
| العلاقة | العلاقة | طاولة |
| حقيقة | مترابطة بيانية | صف |
| قاعدة | غير متوفر | عرض مادي |
| استفسار | يختار | استفسار |
بصورة أكثر رسمية، يتوافق Datalog غير المتكرر تمامًا مع اتحادات الاستعلامات الاقترانية ، أو بشكل مكافئ، الجبر العلائقي الخالي من النفي.
ترجمة تخطيطية من لغة Datalog غير التكرارية إلى لغة SQL |
|---|
s ( x , y ). t ( y ). r ( A , B ) :- s ( A , B ), t ( B ).إنشاء جدول s ( z0 نص غير فارغ ، z1 نص غير فارغ ، مفتاح أساسي ( z0 ، z1 ) ); إنشاء جدول t ( z0 نص غير فارغ مفتاح أساسي );أدخل في الجدول s القيم ( 'x' ، 'y' )؛ أدخل في الجدول t القيم ( 'y' )؛إنشاء عرض r كـ تحديد s.z0 ، s.z1 من s ، t حيث s.z1 = t.z0 ؛ |
بناء الجملة
يتكون برنامج Datalog من قائمة من القواعد ( بنود هورن ). [ 1 ] إذا كانت الثابت والمتغير مجموعتين قابلتين للعد من الثوابت والمتغيرات على التوالي، وكانت العلاقة مجموعة قابلة للعد من رموز المسندات ، فإن قواعد BNF التالية تعبر عن بنية برنامج Datalog:
< برنامج > ::= < قاعدة > < برنامج > | "" < قاعدة > ::= < ذرة > ":-" < قائمة-الذرات > "." < ذرة > ::= < علاقة > "(" < قائمة-المصطلحات > ")" < قائمة-الذرات > ::= < ذرة > | < ذرة > "," < قائمة-الذرات > | "" < مصطلح > ::= < ثابت > | < متغير > < قائمة-المصطلحات > ::= < مصطلح > | < مصطلح > "," < قائمة-المصطلحات > | "" تُعرف الذرات أيضًا بالقيم الحرفية:- . تُسمى الذرة الموجودة على يسار الرمز رأس القاعدة، بينما تُسمى الذرات الموجودة على يمينه جسم القاعدة . يجب أن يستوفي كل برنامج Datalog الشرط التالي: أن كل متغير يظهر في رأس القاعدة يظهر أيضًا في جسمها (يُسمى هذا الشرط أحيانًا بتقييد النطاق ). [ 1 ] [ 2 ]
هناك اصطلاحان شائعان لتسمية المتغيرات: كتابة المتغيرات بأحرف كبيرة، أو وضع علامة استفهام قبلها ?. [ 3 ]
لاحظ أنه وفقًا لهذا التعريف، لا يشمل Datalog النفي ولا التجميعات؛ انظر § الإضافات لمزيد من المعلومات حول هذه التركيبات.
تُسمى القواعد التي لا تحتوي على عناصر في متنها حقائق . على سبيل المثال، القاعدة التالية هي حقيقة:
r ( x ) :- .تُسمى مجموعة الحقائق قاعدة البيانات الامتدادية أو EDB لبرنامج Datalog. أما مجموعة الصفوف المحسوبة من خلال تقييم برنامج Datalog فتُسمى قاعدة البيانات القصديّة أو IDB .
سكر تركيبي
تُوسّع العديد من تطبيقات البرمجة المنطقية القواعد النحوية المذكورة أعلاه للسماح بكتابة الحقائق بدون الفاصلة :-، كما يلي:
r ( x ).كما يسمح بعضها بكتابة العلاقات الصفرية بدون أقواس، كما يلي:
p :- q .هذه مجرد اختصارات ( سكر نحوي )؛ ليس لها أي تأثير على دلالات البرنامج.
علم الدلالة
| برنامج | الحافة ( س ، ص ). الحافة ( ص ، ع ). المسار ( أ ، ب ) :- الحافة ( أ ، ب ). المسار ( أ ، ج ) :- المسار ( أ ، ب )، الحافة ( ب ، ج ). |
|---|---|
| عالم هيربراند | x، y،z |
| قاعدة هيربراند | edge(x, x)... edge(x, y)، ...، edge(z, z)... path(x, x)، ...path(z, z) |
| عارضة أزياء هيربراند | edge(x, y)، edge(y, z)، path(x, y)، path(y, z)،path(x, z) |
توجد ثلاثة مناهج شائعة الاستخدام لدراسة دلالات برامج داتالوج: المنهج النظري النموذجي ، والمنهج ذو النقطة الثابتة ، والمنهج النظري البرهاني . ويمكن إثبات تكافؤ هذه المناهج الثلاثة. [ 4 ]
تُسمى الذرة " ذرة أساسية" إذا لم يكن أي من عناصرها الفرعية متغيرًا. وبشكل بديهي، يُعرّف كل من الدلالات معنى البرنامج بأنه مجموعة جميع الذرات الأساسية التي يمكن استنتاجها من قواعد البرنامج، انطلاقًا من الحقائق.
نظرية النموذج
تُسمى القاعدة قاعدة أساسية إذا كانت جميع عناصرها (الرأس والجسم) أساسية. وتُعتبر القاعدة R2 مثالًا أساسيًا لقاعدة أخرى R1 إذا كانت R2 ناتجة عن استبدال جميع المتغيرات في R1 بثوابت . قاعدة هيربراند لبرنامج داتالوج هي مجموعة جميع العناصر الأساسية التي يمكن تكوينها باستخدام الثوابت الظاهرة في البرنامج. نموذج هيربراند لبرنامج داتالوج هو أصغر مجموعة جزئية من قاعدة هيربراند بحيث، لكل مثال أساسي لكل قاعدة في البرنامج، إذا كانت عناصر جسم القاعدة موجودة في المجموعة، فإن عناصر الرأس موجودة أيضًا. [ 5 ] تُعرّف دلالات نظرية النماذج نموذج هيربراند الأدنى بأنه معنى البرنامج.
النقطة الثابتة
ليكن I مجموعة القوى لقاعدة هيربراند لبرنامج P. عامل النتيجة المباشرة لـ P هو دالة T من I إلى I تضيف جميع الذرات الأرضية الجديدة التي يمكن اشتقاقها من قواعد البرنامج في خطوة واحدة. تحدد دلالات النقطة الثابتة الصغرى أن النقطة الثابتة الصغرى لـ T هي معنى البرنامج؛ وهذا يتطابق مع نموذج هيربراند الأدنى. [ 6 ]
تشير دلالات النقطة الثابتة إلى خوارزمية لحساب النموذج الأدنى: ابدأ بمجموعة الحقائق الأساسية في البرنامج، ثم أضف نتائج القواعد بشكل متكرر حتى يتم الوصول إلى نقطة ثابتة. تُسمى هذه الخوارزمية بالتقييم الساذج .
نظرية البرهان

path(x, z)من البرنامج الحافة ( س ، ص ). الحافة ( ص ، ع ). المسار ( أ ، ب ) :- الحافة ( أ ، ب ). المسار ( أ ، ج ) :- المسار ( أ ، ب )، الحافة ( ب ، ج ).يُعرّف علم الدلالة القائم على نظرية البرهان معنى برنامج داتالوج بأنه مجموعة الحقائق مع أشجار البرهان المقابلة لها . وبشكل بديهي، تُظهر شجرة البرهان كيفية استخلاص حقيقة من حقائق وقواعد البرنامج.
قد يرغب المرء في معرفة ما إذا كانت ذرة أرضية معينة تظهر في نموذج هيربراند الأدنى لبرنامج داتالوج، ربما دون الاهتمام كثيرًا ببقية النموذج. تشير قراءة شاملة لأشجار البرهان الموصوفة أعلاه إلى خوارزمية لحساب نتائج هذه الاستعلامات . تُفيد هذه القراءة خوارزمية حل SLD ، التي تُشكل أساس تقييم لغة برولوج .
تقييم
هناك العديد من الطرق المختلفة لتقييم برنامج Datalog، ولكل منها خصائص أداء مختلفة.
استراتيجيات التقييم من القاعدة إلى القمة
تبدأ استراتيجيات التقييم من الأسفل إلى الأعلى بالحقائق الموجودة في البرنامج وتطبق القواعد بشكل متكرر حتى يتم تحديد هدف أو استفسار ما، أو حتى يتم إنتاج النموذج الأدنى الكامل للبرنامج.
التقييم الساذج
يُحاكي التقييم البسيط دلالات النقطة الثابتة لبرامج داتالوج. يستخدم التقييم البسيط مجموعة من "الحقائق المعروفة"، والتي تُهيأ بالحقائق الموجودة في البرنامج. ويستمر من خلال تعداد جميع الحالات الأساسية لكل قاعدة في البرنامج بشكل متكرر. إذا كانت كل ذرة في جسم الحالة الأساسية موجودة في مجموعة الحقائق المعروفة، تُضاف ذرة الرأس إلى مجموعة الحقائق المعروفة. تُكرر هذه العملية حتى الوصول إلى نقطة ثابتة، ولا يمكن استنتاج المزيد من الحقائق. يُنتج التقييم البسيط النموذج الأدنى الكامل للبرنامج. [ 7 ]
تقييم شبه ساذج
التقييم شبه الساذج هو استراتيجية تقييم تصاعدية يمكن أن تكون أسرع تقاربياً من التقييم الساذج. [ 8 ] في التقييم الساذج، قد يتم اكتشاف الحقائق نفسها مراراً وتكراراً، بينما يتجنب التقييم شبه الساذج هذا الحساب المتكرر من خلال العمل فقط مع الصفوف الجديدة التي تم إنشاؤها في التكرار السابق. [ 9 ]
اعتبارات الأداء

يُقيّم كلٌّ من التقييم الساذج والتقييم شبه الساذج قواعد Datalog التكرارية من خلال تطبيقها بشكل متكرر على مجموعة من الحقائق المعروفة حتى الوصول إلى نقطة ثابتة. في كل تكرار، تُنفَّذ القواعد لخطوة واحدة فقط، أي بشكل غير تكراري. وكما ذُكر سابقًا ، تتوافق كل قاعدة Datalog غير تكرارية تمامًا مع استعلام اقتراني . لذلك، فإن العديد من التقنيات المُستخدمة في نظرية قواعد البيانات لتسريع الاستعلامات الاقترانية قابلة للتطبيق على التقييم التصاعدي لـ Datalog، مثل:
- اختيار الفهرس [ 11 ]
- تحسين الاستعلام ، وخاصة ترتيب الربط [ 12 ] [ 13 ]
- خوارزميات الربط
- اختيار هياكل البيانات المستخدمة لتخزين العلاقات؛ تشمل الخيارات الشائعة جداول التجزئة وأشجار B ، وتشمل الاحتمالات الأخرى هياكل بيانات المجموعة المنفصلة (لتخزين علاقات التكافؤ )، [ 14 ] bries (نوع من أنواع tries )، [ 15 ] مخططات القرار الثنائية ، [ 16 ] وحتى صيغ SMT [ 17 ]
تُطبَّق العديد من هذه التقنيات في محركات Datalog الحديثة التي تعتمد على منهجية من الأسفل إلى الأعلى، مثل Soufflé . وتقوم بعض محركات Datalog بدمج قواعد بيانات SQL مباشرةً. [ 18 ]
يُعدّ التقييم التصاعدي لـ Datalog قابلاً للتوازي أيضاً . وتنقسم محركات Datalog المتوازية عموماً إلى نموذجين:
- في بيئة الذاكرة المشتركة متعددة النوى، تعمل محركات Datalog على عقدة واحدة. ويمكن تحقيق التنسيق بين الخيوط باستخدام هياكل بيانات مؤمّنة أو غير مؤمّنة . ويمكن تقسيم بيئة الذاكرة المشتركة إلى نموذجين: نموذج التعليمات المفردة والبيانات المتعددة ، ونموذج التعليمات المتعددة والبيانات المتعددة .
- تندرج محركات تسجيل البيانات التي تعمل على وحدات معالجة الرسومات ضمن نموذج SIMD. [ 19 ]
- محركات Datalog التي تستخدم OpenMP [ 20 ] هي أمثلة على نموذج MIMD.
- في بيئة "لا مشاركة" ، تعمل محركات Datalog على مجموعة من العُقد. وتعمل هذه المحركات عادةً بتقسيم العلاقات إلى مجموعات فرعية منفصلة بناءً على دالة تجزئة ، وإجراء عمليات حسابية (ضم) على كل عقدة، ثم تبادل الصفوف المُنشأة حديثًا عبر الشبكة. [ 21 ] ومن الأمثلة على ذلك محركات Datalog القائمة على MPI ، [ 10 ] و Hadoop ، [ 22 ] و Spark . [ 23 ]
استراتيجيات التقييم من أعلى إلى أسفل
يُعد حل SLD سليمًا وكاملاً لبرامج Datalog.
مجموعات سحرية
تبدأ استراتيجيات التقييم من أعلى إلى أسفل باستعلام أو هدف . تستطيع استراتيجيات التقييم من أسفل إلى أعلى الإجابة على الاستعلامات بحساب النموذج الأدنى الكامل ومطابقة الاستعلام معه، لكن هذه الطريقة قد تكون غير فعالة إذا كانت الإجابة تعتمد فقط على مجموعة فرعية صغيرة من النموذج الكامل. تأخذ خوارزمية المجموعات السحرية برنامج Datalog واستعلامًا، وتنتج برنامجًا أكثر كفاءة يحسب نفس الإجابة على الاستعلام مع الاستمرار في استخدام التقييم من أسفل إلى أعلى. [ 24 ] وقد ثبت أن أحد متغيرات خوارزمية المجموعات السحرية ينتج برامج، عند تقييمها باستخدام التقييم شبه الساذج ، تكون بنفس كفاءة التقييم من أعلى إلى أسفل. [ 25 ]
تعقيد
تُصاغ مسألة القرار لتقييم Datalog على النحو التالي: "بالنظر إلى برنامج Datalog P مقسم إلى مجموعة من الحقائق (EDB) E ومجموعة من القواعد R ، وذرة أساسية A ، هل A في النموذج الأدنى لـ P ؟" في هذه الصياغة، توجد ثلاثة اختلافات في التعقيد الحسابي لتقييم برامج Datalog: [ 26 ]
- تعقيد البيانات هو تعقيد مشكلة القرار عندما تكون A و E مدخلات و R ثابتة.
- تعقيد البرنامج هو تعقيد مشكلة القرار عندما تكون A و R مدخلات و E ثابتة.
- التعقيد المُجمّع هو تعقيد مشكلة القرار عندما تكون A و E و R مدخلات.
فيما يتعلق بتعقيد البيانات، تُعدّ مسألة القرار في لغة Datalog مسألةً كاملةً من فئة P (انظر النظرية 4.4 في [ 26 ] ). تعني اكتمالية P لتعقيد البيانات وجود استعلام Datalog ثابت يكون تقييمه كاملاً من فئة P. يستند البرهان إلى مترجم Datalog الفوقي لبرامج المنطق الافتراضي.
فيما يتعلق بتعقيد البرنامج، فإن مسألة القرار هي مسألة كاملة من حيث الوقت (EXPTIME-complete ). على وجه الخصوص، ينتهي تقييم برامج Datalog دائمًا؛ Datalog ليست مسألة كاملة من حيث تورينج .
بعض الإضافات إلى لغة Datalog لا تحافظ على حدود التعقيد هذه. بل إن الإضافات المُطبقة في بعض محركات Datalog ، مثل أنواع البيانات الجبرية، قد تجعل اللغة الناتجة كاملة تورينج.
الإضافات
أُجريت العديد من التوسعات على لغة Datalog، مثل دعم النفي، والدوال التجميعية ، والمتباينات، والسماح بالبرمجة كائنية التوجه ، أو السماح باستخدام الفصل كعناوين للجمل . لهذه التوسعات تأثيرات كبيرة على دلالات اللغة وعلى تنفيذ المفسر المقابل.
لغة داتالوج هي مجموعة فرعية نحوية من لغة برولوج ، وتشمل داتالوج الانفصالية ، وبرمجة مجموعات الإجابات ، وداتالوج زد ، وبرمجة منطق القيود . عند تقييم برنامج داتالوج كبرنامج مجموعة إجابات، فإنه ينتج مجموعة إجابات واحدة، وهي بالضبط نموذجه الأدنى. [ 27 ]
تُوسّع العديد من تطبيقات Datalog نطاق Datalog بميزات إضافية؛ راجع قسم محركات Datalog لمزيد من المعلومات.
تجميع
يمكن توسيع Datalog لدعم الدوال التجميعية . [ 28 ]
من أبرز محركات Datalog التي تُنفذ عملية التجميع ما يلي:
النفي
إن إضافة النفي إلى لغة Datalog تُعقّد دلالاتها، مما يؤدي إلى ظهور لغات واستراتيجيات تقييم جديدة كليًا. على سبيل المثال، اللغة الناتجة عن إضافة النفي إلى دلالات النموذج المستقر هي بالضبط برمجة مجموعات الإجابات .
يمكن إضافة النفي الطبقي إلى لغة Datalog مع الحفاظ على دلالاتها النموذجية ودلالاتها ذات النقطة الثابتة. ومن أبرز محركات Datalog التي تُطبّق النفي الطبقي ما يلي:
مقارنة مع لغة البرمجة برولوج
على عكس لغة برولوج ، يمكن كتابة عبارات برنامج داتالوج بأي ترتيب. لا تحتوي داتالوج على عامل القطع الموجود في برولوج . وهذا ما يجعل داتالوج لغة تصريحية بالكامل .
على عكس لغة برولوج، داتالوج
- لا يسمح باستخدام المصطلحات المعقدة كوسائط للمسندات ، على سبيل المثال،
p(x, y)مقبول ولكن ليسp(f(x), y)، - لا يسمح بالنفي،
- يتطلب ذلك أن يظهر كل متغير يظهر في رأس الجملة أيضًا في قيمة حرفية في جسم الجملة.
تتناول هذه المقالة بشكل أساسي لغة داتالوج بدون نفي (انظر أيضًا بناء الجملة ودلالات البرمجة المنطقية § النفي ). مع ذلك، يُعد النفي الطبقي إضافة شائعة إلى داتالوج؛ وتقارن القائمة التالية بين لغة برولوج ولغة داتالوج مع النفي الطبقي. داتالوج مع النفي الطبقي
التعبيرية
تُعمّم لغة Datalog العديد من لغات الاستعلام الأخرى. على سبيل المثال، يمكن التعبير عن الاستعلامات الاقترانية واتحاد الاستعلامات الاقترانية باستخدام Datalog. كما يمكن لـ Datalog التعبير عن استعلامات المسار العادية .
عندما ننظر إلى قواعد البيانات المرتبة ، أي قواعد البيانات التي تحتوي على علاقة ترتيب على نطاقها النشط ، فإن نظرية إيمرمان-فاردي تشير إلى أن القدرة التعبيرية لـ Datalog هي تحديدًا قدرة فئة PTIME : يمكن التعبير عن خاصية ما في Datalog إذا وفقط إذا كانت قابلة للحساب في وقت متعدد الحدود. [ 32 ]
تُطرح مسألة التقييد في لغة داتالوج، عند إعطاء برنامج داتالوج، سؤالًا حول ما إذا كان هذا البرنامج مقيدًا ، أي ما إذا كان بالإمكان تقييد أقصى عمق للتكرار الذي يتم الوصول إليه عند تقييم البرنامج على قاعدة بيانات مُدخلة بقيمة ثابتة. بعبارة أخرى، يسأل هذا السؤال عما إذا كان من الممكن إعادة كتابة برنامج داتالوج كبرنامج غير تكراري، أو، بشكل مكافئ، كاتحاد استعلامات اقترانية . يُعد حل مسألة التقييد في برامج داتالوج العشوائية غير قابل للتقرير [ 33 ] ، ولكن يمكن جعله قابلًا للتقرير عن طريق حصره في أجزاء معينة من لغة داتالوج.
محركات تسجيل البيانات
تُعرف الأنظمة التي تُنفذ لغات مستوحاة من لغة داتالوج، سواءً كانت مُترجمات أو مُفسرات أو مكتبات أو لغات برمجة خاصة بالمجال مُضمنة ، باسم مُحركات داتالوج . غالبًا ما تُنفذ مُحركات داتالوج امتدادات للغة داتالوج، مُضيفةً إليها أنواع بيانات إضافية ، أو واجهات وظائف خارجية ، أو دعمًا للشبكات المُعرّفة من قِبل المستخدم . قد تُتيح هذه الامتدادات كتابة برامج غير مُنتهية أو غير مُعرّفة بشكل جيد.
فيما يلي قائمة مختصرة بالأنظمة التي تعتمد إما على لغة Datalog أو توفر مترجمًا لها:
البرمجيات الحرة/المصادر المفتوحة
| اسم | سنة الإصدار الأخير | مكتوب في | رخصة | مصادر البيانات | وصف |
|---|---|---|---|---|---|
| بيانات أبك | 2023 | جافا | بي إس دي | محرك تسجيل البيانات الذي يُنفذ خوارزميات التقييم الشائعة؛ مصمم ليكون قابلاً للتوسيع، وللاستخدام البحثي، والتعليمي. | |
| صعود | 2023 | الصدأ | رخصة MIT | لغة برمجة منطقية (مشابهة لـ Datalog) مضمنة في Rust عبر وحدات الماكرو، تدعم Lattice وبنية بيانات مخصصة. | |
| bddbddb | 2007 | جافا | رخصة جنو العمومية العامة المحدودة | تم تصميم تطبيق Datalog للاستعلام عن بايت كود Java بما في ذلك تحليل النقاط إلى البرامج الكبيرة في Java؛ باستخدام BDDs داخليًا. | |
| برعم (زهرة) | 2017 | روبي | BSD 3-Clause | لغة برمجة خاصة بلغة روبي (Ruby DSL) للبرمجة باستخدام بنيات تركز على البيانات، وتعتمد على امتداد ديدالوس (Dedalus ) لـ Datalog الذي يضيف بُعدًا زمنيًا إلى المنطق. | |
| كاسكالوغ | 2014 | كلوجر | أباتشي 2.0 | يمكن الاستعلام عن أنظمة إدارة قواعد البيانات الأخرى | مكتبة لمعالجة البيانات والاستعلام عنها للغة كلوجر وجافا، مصممة للاستخدام على هادوب |
| كلينغو | 2024 | لغة سي++ | رخصة MIT | نظام برمجة مجموعات الإجابات الذي يدعم Datalog كحالة خاصة؛ يكفي برنامج Grounder Gringo المستقل الخاص به لـ Datalog العادي | |
| قاعدة المفاهيم | 2025 | برولوج/سي++/جافا | BSD 2-Clause | نظام قاعدة بيانات استنتاجي وموجه للكائنات للنمذجة المفاهيمية والنمذجة الفوقية، والذي يتضمن مُقيِّم استعلامات Datalog | |
| المرجان | 1997 | لغة سي++ | ملكية خاصة، مجانية لبعض الاستخدامات، مفتوحة المصدر | نظام قاعدة بيانات استنتاجي مكتوب بلغة C++ مع تقييم شبه بدائي لبيانات السجل. تم تطويره بين عامي 1988 و1997. | |
| كريب | 2023 | الصدأ | أباتشي 2.0 أو MIT | مكتبة Rust للتعبير عن الاستدلالات الشبيهة بـ Datalog، استنادًا إلى وحدات الماكرو الإجرائية. | |
| داتافروج | 2019 | الصدأ | أباتشي 2.0 أو MIT | محرك تسجيل بيانات خفيف الوزن مصمم ليتم تضمينه في برامج Rust أخرى | |
| داتافن | 2016 | مضرب | مفتوح المصدر، لا توجد رخصة في المستودع | لغة برمجة وظيفية عممت لغة Datalog على الشبكات شبهية | |
| داتا هايك | 2024 | كلوجر | رخصة إكليبس العامة 1.0 | قاعدة بيانات مدمجة (في الذاكرة أو ملف) | نسخة معدلة من DataScript مع واجهة خلفية متينة تعتمد على شجرة المسافر ، باستخدام Datalog كلغة استعلام |
| داتاليفن | 2024 | كلوجر | رخصة إكليبس العامة 1.0 | روابط LMDB | نسخة معدلة من DataScript مُحسّنة للتخزين الدائم LMDB، باستخدام Datalog كلغة استعلام |
| داتالوج (إرلانج) | 2019 | إرلانغ | أباتشي 2.0 | مكتبة لدعم استعلامات Datalog في لغة Erlang، مع تمثيل البيانات كتدفقات من الصفوف. | |
| داتالوج (MITRE) | 2016 | لغة لوا | رخصة جنو العمومية العامة المحدودة | نظام قاعدة بيانات استنتاجي خفيف الوزن، مصمم ليكون صغير الحجم وقابل للاستخدام على الأجهزة ذات الذاكرة المحدودة | |
| داتالوج (أو كاميل) | 2019 | أوكاميل | BSD 2-clause | تطبيق Datalog في الذاكرة للغة OCaml يتميز بخوارزميات من الأسفل إلى الأعلى ومن الأعلى إلى الأسفل | |
| داتالوج (راكت) | 2022 | مضرب | أباتشي 2.0 أو MIT | حزمة مضرب لاستخدام Datalog | |
| نظام داتالوج التعليمي | 2025 | مقدمة | رخصة جنو العمومية العامة المحدودة | موصلات نظام إدارة قواعد البيانات | تطبيق مفتوح المصدر مخصص لتعليم لغة Datalog و SQL [ 34 ] |
| داتا سكريبت | 2024 | كلوجر | رخصة إكليبس العامة 1.0 | قاعدة بيانات في الذاكرة | قاعدة بيانات غير قابلة للتغيير تعمل في متصفح، باستخدام لغة Datalog كلغة استعلام |
| داتوميك | 2024 | كلوجر | مصدر مغلق؛ تم إصدار الملفات الثنائية بموجب ترخيص Apache 2.0 | روابط لـ DynamoDB و Cassandra و PostgreSQL وغيرها | قاعدة بيانات موزعة تعمل على بنى الحوسبة السحابية؛ تستخدم لغة Datalog كلغة استعلام |
| DDlog | 2021 | الصدأ | رخصة MIT | محرك Datalog تزايدي، يعمل في الذاكرة، ومكتوب بلغة Rust؛ يعتمد على مكتبة تدفق البيانات التفاضلي [ 35 ] | |
| DLV | 2023 | لغة سي++ | ملكية خاصة، مجانية لبعض الاستخدامات | نظام برمجة مجموعة الإجابات الذي يدعم Datalog كحالة خاصة | |
| دينا1 | 2013 | هاسكل | رخصة جنو العمومية العامة الإصدار 3 | لغة برمجة تصريحية تستخدم Datalog لبرمجة الذكاء الاصطناعي الإحصائي؛ لا تستخدم الإصدارات اللاحقة من Dyna لغة Datalog. | |
| فليكس | 2024 | جافا | أباتشي 2.0 | لغة برمجة وظيفية ومنطقية مستوحاة من لغة Datalog، ومُوسّعة بشبكات مُعرّفة من قِبل المستخدم ووظائف ترشيح/نقل أحادية اللون | |
| غراال | 2018 | جافا | CeCILL الإصدار 2.1 | استيراد ملفات RDF ، استيراد ملفات CSV ، موصلات أنظمة إدارة قواعد البيانات | مجموعة أدوات جافا مخصصة للاستعلام عن قواعد المعرفة ضمن إطار القواعد الوجودية (المعروفة أيضًا باسم التبعيات المولدة للصفوف أو Datalog+/-). |
| Inter4QL | 2020 | لغة سي++ | بي إس دي | مترجم للغة استعلام قواعد البيانات القائمة على منطق رباعي القيم، ويدعم لغة Datalog كحالة خاصة. | |
| قزحية | 2016 | جافا | رخصة جنو العمومية العامة المحدودة الإصدار 2.1 | نظام برمجة منطقية يدعم لغة Datalog والنفي في إطار دلالات راسخة؛ ودعم نظام الملفات العلائقية RDFS | |
| جينا | 2024 | جافا | أباتشي 2.0 | استيراد RDF | إطار عمل للويب الدلالي يتضمن تطبيق Datalog كجزء من محرك القواعد للأغراض العامة؛ متوافق مع RDF |
| فسد | 2024 | يذهب | أباتشي 2.0 | لغة برمجة لبرمجة قواعد البيانات الاستنتاجية، تدعم امتدادًا لـ Datalog | |
| maplib | 2025 | الصدأ | أباتشي 2.0 ، ملكية خاصة لبعض الاستخدامات | استيراد ملفات RDF ، إطارات بيانات Polars | إطار عمل للويب الدلالي مكتوب بلغة بايثون يدعم الاستدلال باستخدام داتالوج للرسوم البيانية المعرفية بصيغة RDF |
| ناغا | 2021 | كلوجر | رخصة إكليبس العامة 1.0 | قاعدة بيانات رسوم بيانية من نوع أسامي | محرك استعلام يقوم بتنفيذ استعلامات Datalog على قاعدة بيانات الرسم البياني؛ يعمل في المتصفحات (الذاكرة)، أو على JVM (الذاكرة/الملفات)، أو بشكل أصلي (الذاكرة/الملفات). |
| نيمو | 2024 | الصدأ | أباتشي 2.0 أو MIT | استيراد ملفات RDF ، استيراد ملفات CSV | محرك قواعد في الذاكرة لتحليل مخططات المعرفة وتحويلات قواعد البيانات؛ متوافق مع RDF و SPARQL ؛ يدعم tgds |
| pyDatalog | 2015 | بايثون | رخصة جنو العمومية العامة المحدودة | موصلات قواعد البيانات من بايثون | مكتبة بايثون لتفسير استعلامات داتالوج |
| RDFox | 2025 | لغة سي++ | ملكية خاصة، مجانية لبعض الاستخدامات | قاعدة بيانات في الذاكرة، استيراد RDF ، استيراد CSV ، موصلات DBMS | مخزن ثلاثي RDF قائم على الذاكرة الرئيسية مع استدلال Datalog؛ يدعم التقييم التزايدي وإعدادات التوافر العالي |
| سوشالايت | 2016 | جافا | أباتشي 2.0 | روابط HDFS | نسخة من Datalog ومحرك لتحليل الرسوم البيانية واسعة النطاق |
| سوفليه | 2023 | لغة سي++ | UPL الإصدار 1.0 | استيراد ملفات CSV ، وربط SQLite3 | محرك Datalog مصمم أصلاً لتحليل البرامج الثابتة للتطبيقات؛ يتم تجميع مجموعات القواعد إما إلى برامج C++ أو تفسيرها. |
| tclbdd | 2015 | تي سي إل | بي إس دي | تنفيذ Datalog قائم على مخططات القرار الثنائية ؛ مصمم لدعم تطوير مترجم محسّن لـ Tcl [ 36 ] | |
| قاعدة بيانات الطرفية | 2024 | برولوج / رست | أباتشي 2.0 | قاعدة بيانات رسومية ومخزن مستندات، يتميز أيضًا بلغة استعلام تعتمد على Datalog | |
| XSB | 2022 | ج | رخصة جنو العمومية العامة المحدودة | نظام برمجة منطقية وقاعدة بيانات استنتاجية قائم على لغة برولوج مع جدولة توفر إنهاءً وكفاءةً تشبه لغة داتالوج، بما في ذلك التقييم التزايدي [ 37 ]. | |
| XTDB (المعروفة سابقًا باسم Crux ) | 2024 | كلوجر | MPL 2.0 | روابط لـ Apache Kafka وغيرها | قاعدة بيانات غير قابلة للتغيير مع إمكانية السفر عبر الزمن، تم استخدام لغة Datalog كلغة استعلام في XTDB 1.x (قد يتغير ذلك في XTDB 2.x) |
| مينيغراف | 2026 | الصدأ | أباتشي 2.0 أو MIT | يدعم بيئات تشغيل متعددة بما في ذلك WASM وAndroid وiOS والمنصات الأصلية مثل Linux وWindows وMac. كما يوفر روابط لغوية للغات C وJava وPython وNode.js. | قاعدة بيانات رسومية ثنائية الزمن مفتوحة المصدر وقابلة للتضمين من نوع Datalog. تدعم الاستعلامات الزمنية الصحيحة، واستعلامات وقت المعاملة، والاستعلامات ثنائية الزمن الكاملة في محرك استعلام Datalog. |
البرامج غير المجانية
- توفر FoundationDB ربطًا مجانيًا لقاعدة البيانات لـ pyDatalog، مع برنامج تعليمي حول كيفية استخدامه. [ 38 ]
- مساحة البيانات الدلالية Leapsight (LSD) هي قاعدة بيانات استنتاجية موزعة توفر توافرًا عاليًا، وتحملًا للأعطال، وسهولة في التشغيل، وقابلية للتوسع. تستخدم LSD لغة Leaplog (وهي تطبيق لـ Datalog) للاستعلام والاستدلال، وقد تم تطويرها بواسطة Leapsight. [ 39 ]
- LogicBlox ، وهو تطبيق تجاري لـ Datalog يستخدم في تطبيقات تخطيط البيع بالتجزئة والتأمين عبر الإنترنت.
- Profium Sense هي قاعدة بيانات رسومية أصلية متوافقة مع RDF مكتوبة بلغة Java. وهي توفر دعم تقييم Datalog للقواعد التي يحددها المستخدم.
- .QL ، وهو إصدار تجاري موجه للكائنات من Datalog أنشأه Semmle لتحليل شفرة المصدر للكشف عن الثغرات الأمنية. [ 40 ]
- SecPAL هي لغة سياسة أمنية طورتها شركة مايكروسوفت للأبحاث . [ 41 ]
- Stardog هي قاعدة بيانات رسومية ، تم تنفيذها بلغة Java . وهي توفر دعمًا لـ RDF وجميع ملفات تعريف OWL 2 ، مما يوفر إمكانيات استدلال واسعة النطاق، بما في ذلك تقييم datalog.
- StrixDB: مخزن رسوم بيانية RDF تجاري، متوافق مع SPARQL، مزود بواجهة برمجة تطبيقات Lua وقدرات استدلال Datalog. يمكن استخدامه كوحدة نمطية لخادم HTTP ( خادم Apache HTTP ) أو بشكل مستقل (مع العلم أن الإصدارات التجريبية تخضع لرخصة Perl الفنية 2.0).
الاستخدامات والتأثير
لغة داتالوج محدودة التعبيرية إلى حد كبير. فهي ليست كاملة تورينج ، ولا تتضمن أنواع البيانات الأساسية كالأعداد الصحيحة أو السلاسل النصية . هذا التبسيط جذاب من الناحية النظرية، ولكنه يعني أن داتالوج بحد ذاتها نادراً ما تُستخدم كلغة برمجة أو لغة تمثيل معرفي . [ 42 ] تُنفذ معظم محركات داتالوج امتدادات جوهرية للغة داتالوج. ومع ذلك، فإن داتالوج لها تأثير قوي على هذه التطبيقات، ولا يُكلف العديد من المؤلفين أنفسهم عناء التمييز بينها وبين داتالوج كما هو موضح في هذه المقالة. وبناءً على ذلك، تشمل التطبيقات التي نناقشها في هذا القسم تطبيقات واقعية للغات المبنية على داتالوج.
تم تطبيق Datalog على مشاكل في تكامل البيانات ، واستخراج المعلومات ، والشبكات ، والأمن ، والحوسبة السحابية ، والتعلم الآلي . [ 43 ] [ 44 ] طورت جوجل إضافةً لـ Datalog لمعالجة البيانات الضخمة . [ 45 ]
استُخدمت لغة Datalog في تحليل البرامج الثابتة . [ 46 ] كما استُخدمت لهجة Soufflé لكتابة تحليلات المؤشرات للغة Java وتحليل تدفق التحكم للغة Scheme . [ 47 ] [ 48 ] دُمجت Datalog مع مُحلِّلات SMT لتسهيل كتابة بعض التحليلات الثابتة. [ 49 ] وتُعد لهجة Flix مناسبة أيضًا لكتابة تحليلات البرامج الثابتة. [ 50 ]
تتضمن بعض أنظمة قواعد البيانات واسعة الانتشار أفكارًا وخوارزميات طُوّرت للغة Datalog. على سبيل المثال، يتضمن معيار SQL:1999 الاستعلامات المتكررة ، كما أن خوارزمية المجموعات السحرية (التي طُوّرت في الأصل لتقييم استعلامات Datalog بشكل أسرع) مُطبّقة في قاعدة بيانات DB2 من IBM . [ 51 ]
تاريخ
تعود أصول لغة داتالوج إلى بدايات البرمجة المنطقية ، لكنها برزت كمجال مستقل حوالي عام 1977 عندما نظم هيرفيه غالير وجاك مينكر ورشة عمل حول المنطق وقواعد البيانات . [ 52 ] يُنسب إلى ديفيد ماير ابتكار مصطلح داتالوج. [ 53 ]
انظر أيضاً
- برمجة مجموعة الإجابات
- استعلام اقتراني
- DatalogZ
- داتالوج منفصل
- فليكس
- SWRL
- لغة التبعية المولدة للصفوف (TGD)، وهي لغة لتقييد سلامة قواعد البيانات العلائقية ذات بنية مشابهة للغة Datalog.
ملحوظات
- 1 2 سيري، جوتلوب وتانكا 1989 ، ص. 146.
- ^ ايسنر، جايسون. فيلاردو، ناثانيال دبليو (2011). "داينا: توسيع سجل البيانات للذكاء الاصطناعي الحديث" . في دي مور، أويج؛ جوتلوب، جورج. فورش، تيم؛ البائعين ، أندرو (محررون). تم إعادة تحميل سجل البيانات . ملاحظات محاضرة في علوم الكمبيوتر. المجلد. 6702. برلين، هايدلبرغ: سبرينغر. ص 181 – 220. دوى : 10.1007 / 978-3-642-24206-9_11 . رقم ISBN 978-3-642-24206-9.
- ↑ ماير، ديفيد؛ تيكلي، ك. تونكاي؛ كيفر، مايكل؛ وارين، ديفيد س. (2018-09-01)، "داتالوج: المفاهيم والتاريخ والتوقعات" ، برمجة المنطق التصريحي: النظرية والأنظمة والتطبيقات ، المجلد 20، رابطة آلات الحوسبة ومورغان وكلايبول، الصفحات 3-100 ، doi : 10.1145/3191315.3191317 ، ISBN 978-1-970001-99-0، S2CID 69379310 ، تم استرجاعه في 2023-03-02
- ↑ فان إمدن، إم إتش؛ كوالسكي، آر إيه (1976-10-01). "دلالات منطق المسند كلغة برمجة" . مجلة ACM . 23 (4): 733-742 . doi : 10.1145/321978.321991 . ISSN 0004-5411 . S2CID 11048276 .
- ^ سيري وجوتلوب وتانكا 1989 ، ص. 149.
- ^ سيري وجوتلوب وتانكا 1989 ، ص. 150.
- ^ سيري وجوتلوب وتانكا 1989 ، ص. 154.
- ↑ ألفاريز-بيكالو، ماريو؛ إيرز-تايلور، أليكس؛ بيتون جونز، مايكل؛ أونغ، سي. إتش. لوك (2019). "إصلاح الحساب التزايدي: مشتقات النقاط الثابتة، والدلالات التكرارية لـ Datalog" . في كايريس، لويس (محرر). لغات البرمجة والأنظمة . سلسلة محاضرات في علوم الحاسوب. المجلد 11423. تشام: دار نشر سبرينغر الدولية. الصفحات 525-552 . doi : 10.1007/978-3-030-17184-1_19 . ISBN 978-3-030-17184-1. S2CID 53430789 .
- ↑ ويلسي، ماكس. "داتالوج" . تحليل البرامج التصريحية وتحسينها CS294-260، ربيع 2024. تم الاسترجاع في 15-05-2026 .
- 1 2 جيلراي، توماس؛ ساهيبولامري، أراش؛ كومار، سيدهارث؛ ميكينسكي، كريستوفر (2022-11-21). "الاستنتاج الهيكلي المتوازي للبيانات من الرتبة العليا". arXiv : 2211.11573 [ cs.PL ].
- ↑ سوبوتيتش، بافلي؛ جوردان، هربرت؛ تشانغ، ليجون؛ فيكيت، آلان؛ شولز، برنارد (2018-10-01). "الاختيار التلقائي للفهرس لحسابات داتالوج واسعة النطاق" . وقائع مؤسسة VLDB . 12 (2): 141-153 . doi : 10.14778/3282495.3282500 . ISSN 2150-8097 . S2CID 53569679 .
- ↑ أنطونياديس، توني؛ تريانتافيلو، قسطنطين؛ سماراغداكيس، يانيس (18 يونيو 2017). "نقل doop إلى Soufflé" . وقائع ورشة العمل الدولية السادسة لـ ACM SIGPLAN حول أحدث التقنيات في تحليل البرامج . SOAP 2017. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 25-30 . doi : 10.1145/3088515.3088522 . ISBN 978-1-4503-5072-3. S2CID 3074689 . "يقوم محرك LogicBlox بتحسين الاستعلام بشكل كامل."
- ↑ آرتش، صموئيل؛ هو، شياو وين؛ تشاو، ديفيد؛ سوبوتيتش، بافلي؛ شولز، برنارد (2022). "بناء مُحسِّن الربط لـ Soufflé" . في: فيلانويفا، أليسيا (محرر). توليف البرامج وتحويلها القائم على المنطق . سلسلة محاضرات في علوم الحاسوب. المجلد 13474. تشام: دار نشر سبرينغر الدولية. الصفحات 83-102 . doi : 10.1007/978-3-031-16767-6_5 . ISBN 978-3-031-16767-6.
- ↑ نابا، باتريك؛ تشاو، ديفيد؛ سوبوتيتش، بافلي؛ شولز، برنارد (2019). "علاقات التكافؤ المتوازية السريعة في مُصرّف داتالوج". المؤتمر الدولي الثامن والعشرون لعام 2019 حول البنى المتوازية وتقنيات التجميع (PACT) . الصفحات 82-96 . doi : 10.1109/PACT.2019.00015 . ISBN 978-1-7281-3613-4. S2CID 204827819 .
- ↑ جوردان، هربرت؛ سوبوتيتش، بافلي؛ تشاو، ديفيد؛ شولز، برنارد (17 فبراير 2019). "بري: شجرة بحث متخصصة لـ Datalog المتزامن" . وقائع ورشة العمل الدولية العاشرة حول نماذج البرمجة وتطبيقاتها للمعالجات متعددة النوى والمعالجات ذات النوى الكثيرة . نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 31-40 . doi : 10.1145/3303084.3309490 . ISBN 978-1-4503-6290-0. S2CID 239258588 .
- ↑ وايلي، جون؛ أفوتس، دزينتارس؛ كاربين، مايكل؛ لام، مونيكا س. (2005). "استخدام داتالوج مع مخططات القرار الثنائية لتحليل البرامج" . في: يي، كوانغكون (محرر). لغات البرمجة والأنظمة . سلسلة محاضرات في علوم الحاسوب. المجلد 3780. برلين، هايدلبرغ: سبرينغر. الصفحات 97-118 . doi : 10.1007/11575467_8 . ISBN 978-3-540-32247-4. S2CID 5223577 .
- ↑ هودر، كريستوف؛ بيورنر، نيكولاي؛ دي مورا، ليوناردو (2011). "μZ - محرك فعال للنقاط الثابتة مع القيود" . في: جوبالاكريشنان، غانيش؛ قدير، شاز (محرران). التحقق بمساعدة الحاسوب . سلسلة محاضرات في علوم الحاسوب. المجلد 6806. برلين، هايدلبرغ: سبرينغر. الصفحات 457-462 . doi : 10.1007/978-3-642-22110-1_36 . ISBN 978-3-642-22110-1.
- ↑ فان، تشيوي؛ تشو، جيانكياو؛ تشانغ، زويو؛ البرغوثي، أوس؛ كوتريس، باراسكوس؛ باتيل، جيغنيش (10-12-2018). "توسيع نطاق معالجة سجلات البيانات في الذاكرة: ملاحظات وتقنيات". arXiv : 1812.03975 [ cs.DB ].
- ↑ شوفون، أحمد الرحمن؛ دايكن، لاندون ريتشارد؛ غرين، عوديد؛ غيلراي، توماس؛ كومار، سيدهارث (نوفمبر 2022). "تسريع تطبيقات داتالوج باستخدام cuDF". ورشة عمل IEEE/ACM لعام 2022 حول التطبيقات غير المنتظمة: البنى والخوارزميات (IA3) . IEEE. الصفحات 41-45 . doi : 10.1109/IA356718.2022.00012 . ISBN 978-1-6654-7506-8. S2CID 256565728 .
- ↑ جوردان، هربرت؛ سوبوتيتش، بافلي؛ تشاو، ديفيد؛ شولز، برنارد (16 فبراير 2019). "شجرة B متخصصة لتقييم داتالوج المتزامن" . وقائع الندوة الرابعة والعشرين حول مبادئ وممارسات البرمجة المتوازية . PPoPP '19. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 327-339 . doi : 10.1145/3293883.3295719 . ISBN 978-1-4503-6225-2. S2CID 59617209 .
- ↑ وو، جيا تشنغ؛ وانغ، جين؛ زانيولو، كارلو (11 يونيو 2022). "تحسين تقييم داتالوج المتكرر المتوازي على الأجهزة متعددة النوى" . وقائع المؤتمر الدولي لإدارة البيانات 2022. SIGMOD '22. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 1433-1446 . doi : 10.1145/3514221.3517853 . ISBN 978-1-4503-9249-5. S2CID 249578825 . تُطبّق هذه الأساليب فكرة التقييم المتوازي من الأسفل إلى الأعلى عن طريق تقسيم الجداول إلى أقسام منفصلة باستخدام دوال تمييزية، مثل التجزئة، حيث يتم بعد ذلك ربط كل قسم بأحد العمال المتوازيين. بعد كل تكرار، ينسق العمال فيما بينهم لتبادل الصفوف المُنشأة حديثًا عند الضرورة.
- ↑ شو، ماريان؛ كوتريس، باراسكوس؛ هاو، بيل؛ سوتشيو، دان (2012). "تحسين تقييم داتالوج شبه الساذج واسع النطاق في هادوب" . في: بارسيلو، بابلو؛ بيشلر، راينهارد (محرران). داتالوج في الأوساط الأكاديمية والصناعية . سلسلة محاضرات في علوم الحاسوب. المجلد 7494. برلين، هايدلبرغ: سبرينغر. الصفحات 165-176 . doi : 10.1007/978-3-642-32925-8_17 . ISBN 978-3-642-32925-8.
- ↑ شكابسكي، ألكسندر؛ يانغ، موهان؛ إنترلاندي، ماتيو؛ تشيو، هسوان؛ كوندي، تايسون؛ زانيولو، كارلو (14 يونيو 2016). "تحليلات البيانات الضخمة باستخدام استعلامات Datalog على Spark" . وقائع المؤتمر الدولي لإدارة البيانات 2016. SIGMOD '16. المجلد 2016. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 1135-1149 . doi : 10.1145/2882903.2915229 . ISBN 978-1-4503-3531-7. PMC 5470845 . PMID 28626296 .
- ↑ بالبين، آي.؛ بورت، جي إس؛ راماموهاناراو، ك.؛ ميناكشي، ك. (1991-10-01). "حساب فعال للاستعلامات من الأسفل إلى الأعلى على قواعد البيانات الطبقية" . مجلة البرمجة المنطقية . 11 (3): 295-344 . doi : 10.1016/0743-1066(91)90030-S . ISSN 0743-1066 .
- ↑ أولمان، جيه دي (29 مارس 1989). "النهج التصاعدي يتفوق على النهج التنازلي في داتالوج" . وقائع الندوة الثامنة لجمعية ACM SIGACT-SIGMOD-SIGART حول مبادئ أنظمة قواعد البيانات - PODS '89 . نيويورك، نيويورك، الولايات المتحدة الأمريكية: جمعية آلات الحوسبة. الصفحات 140-149 . doi : 10.1145/73721.73736 . ISBN 978-0-89791-308-9. S2CID 13269547 .
- 1 2 دانتسين، يفغيني؛ إيتر، توماس؛ غوتلوب، جورج؛ فورونكوف، أندريه (2001-09-01). "تعقيد وقدرة التعبير في البرمجة المنطقية" . مجلة ACM Computing Surveys . 33 (3): 374–425 . doi : 10.1145/502807.502810 . ISSN 0360-0300 .
- ↑ بيمبينك، آرون؛ غرينبيرغ، مايكل؛ تشونغ، ستيفن (11 يناير 2023). "من SMT إلى ASP: مناهج قائمة على المُحلِّل لحل مشاكل توليف Datalog كاختيار قاعدة" . وقائع مؤتمر ACM حول لغات البرمجة . 7 (POPL): 7:185–7:217. doi : 10.1145/3571200 . S2CID 253525805 .
- ↑ زانيولو، كارلو؛ يانغ، موهان؛ داس، أريام؛ شكابسكي، ألكسندر؛ كوندي، تايسون؛ إنترلاندي، ماتيو (سبتمبر 2017). "دلالات النقطة الثابتة وتحسين برامج داتالوج المتكررة مع التجميعات*" . نظرية وممارسة البرمجة المنطقية . 17 ( 5-6 ): 1048-1065 . arXiv : 1707.05681 . doi : 10.1017/S1471068417000436 . ISSN 1471-0684 . S2CID 6272867 .
- ↑ "الفصل 7. القواعد - دليل مرجعي لبرنامج LogicBlox 3.10" . developer.logicblox.com . تاريخ الاسترجاع: 4 مارس 2023 .
- ↑ "6.4. النفي - دليل مرجعي لبرنامج LogicBlox 3.10" . developer.logicblox.com . تم الاطلاع عليه بتاريخ 4 مارس 2023 ."بالإضافة إلى ذلك، لا يُسمح بالنفي إلا عندما تستطيع المنصة تحديد طريقة لتصنيف جميع القواعد والقيود التي تستخدم النفي."
- ↑ مايكل لام؛ د. سين مين لي. "داتالوج" . مقرر CS 157A . جامعة ولاية سان خوسيه، قسم علوم الحاسوب. مؤرشف من الأصل بتاريخ 25-03-2017.
- ↑ كولايتيس، فوكيون ج.؛ فاردي، موشيه ي. (2 أبريل 1990). "حول القدرة التعبيرية لـ Datalog: أدوات ودراسة حالة" . وقائع الندوة التاسعة لجمعية ACM SIGACT-SIGMOD-SIGART حول مبادئ أنظمة قواعد البيانات . ACM. الصفحات 61-71 . doi : 10.1145/298514.298542 . ISBN 978-0-89791-352-2.
{{cite book}}تم|journal=تجاهله ( مساعدة ) - ↑ هيلبراند، جيرد ج؛ كانيلاكس، باريس س؛ ميرسون، هاري ج؛ فاردي، موشيه ي (1995-11-01). "مسائل التقييد غير القابلة للتقرير لبرامج داتالوج" . مجلة برمجة المنطق . 25 (2): 163-190 . doi : 10.1016/0743-1066(95)00051-K . ISSN 0743-1066 .
- ↑ ساينز-بيريز (2011)، "DES: نظام قاعدة بيانات استنتاجي"، الملاحظات الإلكترونية في علوم الحاسوب النظرية ، 271 ، ES : 63-78 ، doi : 10.1016/j.entcs.2011.02.011.
- ↑ تدفق البيانات التفاضلي ، يوليو 2022
- ↑ كيني، كيفن ب. (12-14 نوفمبر 2014). مخططات القرار الثنائية، والجبر العلائقي، وDatalog: الاستدلال الاستنتاجي لـ Tcl (ملف PDF) . المؤتمر السنوي الحادي والعشرون لـ Tcl/Tk. بورتلاند، أوريغون . تاريخ الاسترجاع: 29 ديسمبر 2015 .
- ↑ نظام XSB، الإصدار 3.7.x، المجلد 1: دليل المبرمج (PDF).
- ↑ البرنامج التعليمي لسجل بيانات FoundationDB
{{citation}}: CS1 maint: deprecated archiveal service ( link ) . - ↑ "Leapsight" . مؤرشف من الأصل بتاريخ 2018-11-11.
- ^ سيميل كيو إل ، 18 سبتمبر 2019.
- ↑ "SecPAL" . أبحاث مايكروسوفت . مؤرشف من الأصل بتاريخ 23-02-2007.
- ↑ ليفشيتز، فلاديمير. "أسس البرمجة المنطقية". مبادئ تمثيل المعرفة 3 (1996): 69-127. "إن الإمكانيات التعبيرية لـ [Datalog] محدودة للغاية بحيث لا تسمح بتطبيقات ذات مغزى في تمثيل المعرفة."
- ↑ هوانغ، غرين، ولو، "Datalog والتطبيقات الناشئة"، SIGMOD 2011 (ملف PDF) ، جامعة كاليفورنيا في ديفيس
{{citation}}: CS1 maint: multiple names: authors list ( link ) . - ↑ مي، هونغ يوان؛ تشين، غوانغ هوي؛ شو، مين جي؛ إيسنر، جيسون (2020). "النمذجة الزمنية العصبية عبر الزمن: نمذجة زمنية مستنيرة من خلال المواصفات المنطقية". وقائع المؤتمر الدولي للتعلم الآلي 2020. arXiv : 2006.16723 .
- ^ تشين ، بريان. دينكلاج، دانييل فون؛ إرسيجوفاك، فوك؛ هوكينز، بيتر. ميلر، مارك س. أوه، فرانز؛ أولستون، كريستوفر. بيريرا، فرناندو (2015). الكرة، توماس. بوديك، راستيسلاف؛ كريشنامورثي، شريرام؛ ليرنر، بنيامين س. موريسيت، جريج (محرران). يدالوغ: استكشاف المعرفة على نطاق واسع . القمة الأولى حول التقدم في لغات البرمجة (SNAPL 2015). إجراءات لايبنيز الدولية في مجال المعلوماتية (LIPIcs). المجلد. 32. داغستوهل، ألمانيا: شلوس داغستوهل-ليبنيز-سينتروم فور إنفورماتيك. الصفحات من 63 إلى 78. دوى : 10.4230/LIPIcs.SNAPL.2015.63 . رقم ISBN 978-3-939897-80-4.
- ↑ وايلي، جون؛ أفوتس، دزينتارس؛ كاربين، مايكل؛ لام، مونيكا س. (2005). "استخدام داتالوج مع مخططات القرار الثنائية لتحليل البرامج" . في: يي، كوانغكون (محرر). لغات البرمجة والأنظمة . سلسلة محاضرات في علوم الحاسوب. المجلد 3780. برلين، هايدلبرغ: سبرينغر. الصفحات 97-118 . doi : 10.1007/11575467_8 . ISBN 978-3-540-32247-4. S2CID 5223577 .
- ↑ شولز، برنارد؛ جوردان، هربرت؛ سوبوتيتش، بافلي؛ ويستمان، تيل (17 مارس 2016). "حول التحليل السريع للبرامج واسعة النطاق في داتالوج" . وقائع المؤتمر الدولي الخامس والعشرين حول بناء المترجمات . CC 2016. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 196-206 . doi : 10.1145/2892208.2892226 . ISBN 978-1-4503-4241-4. S2CID 7531543 .
- ↑ أنطونياديس، توني؛ تريانتافيلو، قسطنطين؛ سماراغداكيس، يانيس (18 يونيو 2017). "نقل doop إلى Soufflé" . وقائع ورشة العمل الدولية السادسة لـ ACM SIGPLAN حول أحدث التقنيات في تحليل البرامج . SOAP 2017. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 25-30 . doi : 10.1145/3088515.3088522 . ISBN 978-1-4503-5072-3. S2CID 3074689 .
- ↑ بيمبينك، آرون؛ غرينبيرغ، مايكل؛ تشونغ، ستيفن (13 نوفمبر 2020). "فورميولوج: داتالوج للتحليل الثابت القائم على الترجمة الآلية الإحصائية" . وقائع مؤتمر ACM حول لغات البرمجة . 4 (OOPSLA): 141:1–141:31. doi : 10.1145/3428209 . S2CID 226961727 .
- ^ مادسن، ماغنوس. يي مينغ هو. لوتك ، أوندريج (2016/06/02). "من Datalog إلى flix: لغة تعريفية للنقاط الثابتة على الشبكات" . إشعارات ACM SIGPLAN . 51 (6): 194– 208. دوى : 10.1145 / 2980983.2908096 . ISSN 0362-1340 .
- ↑ غريز؛ غو؛ ليو؛ زوزارتي (2004). "أخذ عينات الاستعلام في قاعدة بيانات DB2 العالمية" (ملف PDF) . وقائع مؤتمر ACM SIGMOD الدولي لإدارة البيانات لعام 2004 - SIGMOD '04 . ص 839. doi : 10.1145/1007568.1007664 . ISBN 978-1581138597. S2CID 7775190 .
- ^ جالير ، هيرفيه. مينكر، جون جاك، محرران. (1978)، “قواعد المنطق والبيانات، ندوة حول المنطق وقواعد البيانات، مركز الدراسات والبحوث في تولوز، 1977”، التقدم في نظرية قواعد البيانات ، نيويورك: مطبعة بلينوم، ISBN 978-0-306-40060-5.
- ↑ أبيتبول، سيرج ؛ هول، ريتشارد؛ فيانو، فيكتور (1995)، أسس قواعد البيانات ، أديسون-ويسلي، ص 305، ISBN 9780201537710.
مراجع
- سيري، س.؛ غوتلوب، ج.؛ تانكا، ل. (مارس 1989). "ما كنت ترغب دائمًا في معرفته عن داتالوج (ولم تجرؤ على السؤال عنه أبدًا)" (ملف PDF) . مجلة IEEE للمعاملات في هندسة المعرفة والبيانات . 1 (1): 146-166 . رمز Bibcode : 1989ITKDE...1..146C . CiteSeerX 10.1.1.210.1118 . doi : 10.1109/69.43410 . ISSN 1041-4347 .
- أبيتبول، س. (1995). أسس قواعد البيانات . ريتشارد هول، فيكتور فيانو. ريدينغ، ماساتشوستس: أديسون-ويسلي. ISBN 0-201-53771-0. OCLC 30546436 .
- لغات الاستعلام
- لغات البرمجة المنطقية
- لغات البرمجة التصريحية
