لغة استعلام الرسم البياني
GQL ( لغة استعلام الرسم البياني ) هي لغة استعلام موحدة للرسوم البيانية الخاصة بالخصائص ، وقد تم وصفها لأول مرة في ISO/IEC 39075، والتي تم إصدارها في أبريل 2024 بواسطة ISO/IEC .
تاريخ
يمثل مشروع GQL تتويجاً لمبادرات متقاربة تعود إلى عام 2016، ولا سيما اقتراح خاص من Neo4j إلى موردي قواعد البيانات الآخرين في يوليو 2016، [ 1 ] واقتراح من فريق أوراكل التقني ضمن عملية معايير ISO/IEC JTC 1 في وقت لاحق من ذلك العام. [ 2 ]
مقترح مشروع GQL لعام 2019
في سبتمبر 2019، تمت الموافقة على مقترح مشروع لإنشاء لغة استعلام رسومية قياسية جديدة (ISO/IEC 39075 تكنولوجيا المعلومات - لغات قواعد البيانات - GQL) [ 3 ] ، وذلك بتصويت هيئات المعايير الوطنية الأعضاء في اللجنة الفنية المشتركة الأولى ( ISO/IEC JTC 1 ). وتتولى اللجنة الفنية المشتركة الأولى مسؤولية معايير تكنولوجيا المعلومات الدولية. وتهدف لغة GQL إلى أن تكون لغة استعلام قواعد بيانات تصريحية، على غرار لغة SQL .
ينص مقترح مشروع GQL لعام 2019 على ما يلي:
يُعدّ استخدام الرسوم البيانية كتمثيل أساسي لنمذجة البيانات نهجًا ناشئًا في إدارة البيانات . في هذا النهج، تُنمذج مجموعة البيانات كرسم بياني، حيث يُمثّل كل كيان بيانات برأس (يُسمى أيضًا عقدة) في الرسم البياني، وتُمثّل كل علاقة بين كيانين بحافة ( تُسمى أيضًا رابطًا) بين الرؤوس المتناظرة. وقد حظي نموذج بيانات الرسم البياني باهتمام واسع نظرًا لمزاياه الفريدة.
أولاً، يُعدّ نموذج الرسم البياني مناسباً تماماً لمجموعات البيانات ذات البنى الهرمية أو المعقدة أو حتى العشوائية. إذ يُمكن ترميز هذه البنى بسهولة في نموذج الرسم البياني على شكل حواف. وهذا قد يكون أكثر ملاءمة من النموذج العلائقي، الذي يتطلب تطبيع مجموعة البيانات إلى مجموعة من الجداول ذات أنواع صفوف ثابتة .
ثانيًا، يُمكّن نموذج الرسم البياني من تنفيذ الاستعلامات المُكلفة أو وظائف تحليل البيانات بكفاءة، والتي تتطلب رصد العلاقات متعددة المراحل بين كيانات البيانات، مثل استعلامات إمكانية الوصول ، واستعلامات أقصر أو أرخص مسار ، أو تحليل المركزية . يوجد نموذجان للرسم البياني قيد الاستخدام حاليًا: نموذج إطار وصف الموارد (RDF) ونموذج الرسم البياني للخصائص. وقد تم توحيد نموذج RDF من قِبل اتحاد شبكة الويب العالمية (W3C) في عدد من المواصفات. أما نموذج الرسم البياني للخصائص، فيتميز بتطبيقات متعددة في قواعد بيانات الرسوم البيانية ، وخوارزميات الرسوم البيانية ، ومرافق معالجة الرسوم البيانية. ومع ذلك، تفتقر هذه النماذج إلى لغة استعلام موحدة ومشتركة للرسوم البيانية للخصائص (مثل لغة SQL لأنظمة قواعد البيانات العلائقية). وقد تم اقتراح لغة استعلام الرسوم البيانية (GQL) لسد هذه الثغرة. [ 4 ]
معيار ISO الرسمي
تم نشر معيار GQL، ISO/IEC 39075:2024 تكنولوجيا المعلومات - لغات قواعد البيانات - GQL، رسميًا من قبل المنظمة الدولية للمقاييس (ISO) في 12 أبريل 2024. [ 5 ]
تنظيم مشروع GQL
يقود مشروع GQL كلٌ من ستيفان بلانتيكو (الذي كان أول مهندس رئيسي لمشروع Cypher for Apache Spark التابع لـ Neo4j ) وستيفن كانان (محرر التصويبات الفنية لـ SQL). وهما أيضاً محررا المسودات الأولية لمواصفات GQL. [ 6 ]
كما كان الدافع الأصلي [ 2 ] ، يهدف مشروع GQL إلى استكمال العمل على إنشاء مواصفات معيارية قابلة للتنفيذ للغة الطبيعية، وذلك بدعم من جهود المجتمع التي تُمكّن المساهمات من أولئك غير القادرين أو غير المهتمين بالمشاركة في العملية الرسمية لتحديد معيار JTC 1 الدولي. [ 7 ] [ 8 ] في يوليو 2019، وافق مجلس معايير البيانات المرتبطة (LDBC) على أن يكون المنظمة الجامعة لجهود مجموعات العمل الفنية المجتمعية. وقد شُكّلت مجموعتا عمل اللغات الحالية ومخطط الرسم البياني للخصائص في أواخر عام 2018 وأوائل عام 2019 على التوالي. واقتُرح تشكيل مجموعة عمل لتحديد الدلالات التفسيرية الرسمية لـ GQL في التحديث الثالث لمجتمع GQL في أكتوبر 2019. [ 9 ]
ISO/IEC JTC 1/SC 32 WG3
رشّحت سبع هيئات وطنية لوضع المعايير (هيئات الولايات المتحدة والصين وكوريا وهولندا والمملكة المتحدة والدنمارك والسويد) خبراء وطنيين متخصصين للعمل على المشروع، الذي يُنفّذه الفريق العامل 3 (لغات قواعد البيانات) التابع للجنة الفرعية 32 (إدارة البيانات وتبادلها) في اللجنة الفنية المشتركة 1 التابعة للمنظمة الدولية للمعايير/اللجنة الكهروتقنية الدولية، ويُشار إليه اختصارًا بـ ISO/IEC JTC 1/SC 32 WG3 ، أو WG3 اختصارًا. ويتولى الفريق العامل 3 (ولجانه السابقة المباشرة ضمن اللجنة الفنية المشتركة 1) مسؤولية معيار SQL منذ عام 1987. [ 10 ] [ 11 ]
مراحل ISO
| تاريخ | مراحل ISO [ 12 ] |
|---|---|
| 2019-09-10 | 10.99 الموافقة على مشروع جديد |
| 2019-09-10 | 20.00 تم تسجيل مشروع جديد في برنامج عمل اللجنة الفنية/لجنة التنسيق |
| 2021-11-22 | 30.00 مسودة اللجنة (قرص مضغوط) مسجلة |
| 2021-11-23 | بدء دراسة 30.20 CD |
| 2022-02-25 | 30.60 انتهاء فترة التعليق |
| 2022-08-29 | تمت إحالة 30.92 قرص مضغوط إلى فريق العمل |
| 2022-08-29 | 30.00 مسودة اللجنة (قرص مضغوط) مسجلة |
| 30-08-2022 | بدء دراسة 30.20 CD |
| 2022-10-26 | 30.60 انتهاء فترة التعليق |
| 2023-03-22 | تمت الموافقة على تسجيل قرص مضغوط بقيمة 30.99 دولارًا كـ DIS |
| 2023-03-24 | 40.00 مسجل لدى DIS |
| 2023-05-24 | 40.20 بدء الاقتراع في DIS: 12 أسبوعًا |
| 2023-08-17 | 40.60 إغلاق التصويت |
| 2023-11-28 | 40.99 تم تعميم التقرير الكامل: تمت الموافقة على تسجيل DIS كـ FDIS |
| 2023-12-11 | 50.00 تم استلام النص النهائي أو تم تسجيل FDIS للموافقة الرسمية |
| 2024-01-26 | 50.20 إرسال الإثبات إلى الأمانة العامة أو بدء اقتراع FDIS: 8 أسابيع |
| 2024-03-23 | 50.60 إغلاق التصويت. تم إرجاع إثبات التصويت من قبل الأمانة العامة. |
| 2024-03-23 | 60.00 معيار دولي قيد النشر |
| 2024-04-12 | 60.60 المعيار الدولي المنشور |
| 2025-12-15 | 10.99 تصحيح فني 1 |
نموذج بيانات الرسم البياني لخصائص GQL
لغة GQL هي لغة استعلام مُخصصة لرسوم بيانية الخصائص. يُشبه رسم بياني الخصائص نموذج البيانات المفاهيمي ، كما هو مُعبَّر عنه في نموذج الكيانات والعلاقات أو في مخطط فئات UML (مع أنه لا يتضمن علاقات متعددة الأطراف تربط أكثر من كيانين). تُنمذج الكيانات كعُقد، والعلاقات كحواف، في الرسم البياني. رسوم بيانية الخصائص هي رسوم بيانية متعددة : إذ يُمكن أن يكون هناك العديد من الحواف بين نفس زوج العُقد. يُمكن أن تكون رسوم GQL البيانية مُختلطة : يُمكن أن تحتوي على حواف مُوجَّهة، حيث تكون إحدى عُقد نهاية الحافة هي الذيل (أو المصدر) والعقدة الأخرى هي الرأس (أو الهدف أو الوجهة)، ولكن يُمكن أن تحتوي أيضًا على حواف غير مُوجَّهة (ثنائية الاتجاه أو انعكاسية).
تحتوي العقد والحواف، التي تُعرف مجتمعةً بالعناصر، على سمات. قد تكون هذه السمات قيم بيانات أو تصنيفات (علامات). لا يمكن أن تكون قيم الخصائص عناصر في الرسوم البيانية، ولا يمكن أن تكون رسومًا بيانية كاملة: تفرض هذه القيود عمدًا فصلًا واضحًا بين بنية الرسم البياني والسمات التي تحمل قيم البيانات في سياق بنية الرسم البياني. لذلك، يمنع نموذج بيانات الرسم البياني للخصائص تداخل الرسوم البيانية، أو معاملة العقد في رسم بياني كحواف في رسم بياني آخر. قد يحتوي كل رسم بياني للخصائص على مجموعة من التصنيفات ومجموعة من الخصائص المرتبطة بالرسم البياني ككل.
تعتمد استعلامات GQL على مطابقة الأنماط في هذا الهيكل. تُكتب العقد بين قوسين، مع إمكانية إضافة تسميات وخصائص، وتُكتب العلاقات بين العقد بين معقوفتين مربعتين مع إمكانية تحديد الاتجاه والنوع. تُنتج نتائج الاستعلام من خلال مطابقة أنماط الرسم البياني وإرجاع المتغيرات المرتبطة بالعقد أو الحواف أو المسارات. [ 13 ]
تدعم منتجات ومشاريع قواعد بيانات الرسوم البيانية الحالية غالبًا نسخة محدودة من النموذج الموصوف هنا. على سبيل المثال، يُلزم Apache Tinkerpop [ 14 ] كل عقدة وكل حافة بحمل تسمية واحدة؛ بينما يسمح Cypher للعقد بحمل تسميات تتراوح من صفر إلى عدة تسميات، لكن العلاقات لا تحمل سوى تسمية واحدة (تُسمى نوع العلاقة). تدعم قاعدة بيانات Neo4j خصائص غير موثقة على مستوى الرسم البياني، ويحتوي Tinkerpop على قيم رسوم بيانية تؤدي الدور نفسه، كما يدعم "الخصائص الوصفية" أو الخصائص على الخصائص. يدعم PGQL من Oracle تسميات تتراوح من صفر إلى عدة تسميات على العقد والحواف، بينما يدعم SQL/PGQ تسميات تتراوح من تسمية واحدة إلى عدة تسميات لكل نوع من العناصر. يُعد نموذج معلومات NGSI-LD الذي حددته ETSI محاولة لتحديد رسوم بيانية للخصائص بشكل رسمي، مع أنواع العقد والعلاقات (الحواف) التي قد تؤدي دور التسميات في النماذج المذكورة سابقًا، وتدعم الإشارة الدلالية من خلال وراثة الفئات المُعرّفة في الأنطولوجيات المشتركة .
سيحدد مشروع GQL نموذج بيانات قياسي، والذي من المرجح أن يكون المجموعة الشاملة لهذه المتغيرات، ومن المرجح أن يسمح الإصدار الأول على الأقل من GQL للبائعين بتحديد عدد التسميات في كل تطبيق، كما هو الحال في SQL/PGQ، واختيار ما إذا كانوا سيدعمون العلاقات غير الموجهة.
يمكن التقاط جوانب إضافية من نماذج ERM أو UML (مثل التعميم أو التصنيف الفرعي، أو عدد الكيانات أو العلاقات) بواسطة مخططات GQL أو أنواع تصف الحالات المحتملة لنموذج البيانات العام.
التطبيقات
تتوفر الآن أول قاعدة بيانات رسومية في الذاكرة قادرة على تفسير لغة استعلام الرسوم البيانية (GQL). [ 15 ] [ 16 ] إلى جانب التنفيذ، يمكن أيضًا الاطلاع على صياغة رسمية وقراءة بنية مجموعة فرعية محددة من لغة استعلام الرسوم البيانية (GQL). [ 17 ]
توسيع لغات استعلام الرسوم البيانية الحالية
يستند مشروع GQL إلى مصادر ومدخلات متعددة، أبرزها لغات البرمجة الصناعية الحالية وقسم جديد من معيار SQL. وقد عُرضت في المناقشات التحضيرية ضمن فريق العمل الثالث (WG3) دراسات استقصائية لتاريخ [ 18 ] ومحتوى مقارن لبعض هذه المدخلات [ 19 ] . GQL هي لغة تصريحية ذات بنية نحوية مميزة، وتؤدي دورًا مشابهًا لدور SQL في بناء تطبيقات قواعد البيانات. وقد تم تعريف لغات استعلام رسومية أخرى توفر ميزات إجرائية مباشرة مثل التفرع والتكرار (مثل Gremlin من Apache Tinkerpop [ 20 ] )، وGSQL [ 21 ] ، مما يتيح اجتياز الرسم البياني بشكل تكراري لتنفيذ فئة من خوارزميات الرسوم البيانية، لكن GQL لن تتضمن هذه الميزات بشكل مباشر [ 22 ] [ 23 ] . ومع ذلك، يُنظر إلى GQL على أنها حالة خاصة من فئة أعم من لغات الرسوم البيانية، التي تشترك في نظام أنواع الرسوم البيانية وواجهة استدعاء للإجراءات التي تعالج الرسوم البيانية.
استعلام الرسم البياني للخصائص SQL/PGQ
ساهمت الأعمال السابقة التي قامت بها الهيئات التابعة لمجموعتي العمل WG3 وSC32، ولا سيما في إدارة بيانات INCITS (المعروفة سابقًا باسم INCITS DM32)، في تحديد الجزء 16 الجديد المخطط له من معيار SQL، والذي يسمح باستدعاء استعلام رسم بياني للقراءة فقط داخل عبارة SQL SELECT، وذلك بمطابقة نمط الرسم البياني باستخدام صيغة قريبة جدًا من Cypher وPGQL وG-CORE، وإرجاع جدول بقيم البيانات كنتيجة. كما يحتوي SQL/PGQ على لغة تعريف البيانات (DDL) للسماح بربط جداول SQL بكائن مخطط عرض الرسم البياني مع عقد وحواف مرتبطة بمجموعات من التصنيفات ومجموعات من خصائص البيانات. [ 24 ] [ 25 ] [ 26 ] ويتعاون مشروع GQL بشكل وثيق مع مشروع SQL/PGQ المنفصل (الممتد إلى) معيار ISO 9075 SQL، ولدى مجموعات العمل الفنية في الولايات المتحدة (INCITS DM32) وعلى المستوى الدولي (SC32/WG3) العديد من المساهمين الخبراء الذين يعملون على كلا المشروعين. [ 25 ] يتطلب اقتراح مشروع GQL توافقًا وثيقًا بين SQL/PGQ و GQL، مما يشير إلى أن GQL ستكون بشكل عام مجموعة شاملة من SQL/PGQ.
يمكن العثور على مزيد من التفاصيل حول لغة مطابقة الأنماط في الورقة البحثية "مطابقة أنماط الرسوم البيانية في GQL و SQL/PGQ" [ 27 ] [ 28 ]
سايفر
لغة سايفر [ 29 ] هي لغة صممها أندريس تايلور وزملاؤه في شركة Neo4j، وطُبقت لأول مرة من قبل الشركة نفسها عام 2011. ومنذ عام 2015، أصبحت متاحة كوصف مفتوح المصدر للغة [ 30 ] مع أدوات نحوية، وواجهة أمامية لآلة جافا الافتراضية ( JVM ) لتحليل استعلامات سايفر، ومجموعة أدوات توافق تقني (TCK) تضم أكثر من 2000 سيناريو اختبار، باستخدام Cucumber لضمان قابلية نقل لغة التنفيذ. [ 31 ] تعكس مجموعة أدوات التوافق التقني وصف اللغة، بالإضافة إلى تحسينات لأنواع البيانات والوظائف الزمنية الموثقة في مقترح تحسين سايفر. [ 32 ]
تتيح لغة Cypher إنشاء وقراءة وتحديث وحذف عناصر الرسم البياني، وهي لغة يمكن بالتالي استخدامها لمحركات التحليل وقواعد البيانات المعاملاتية.
الاستعلام باستخدام أنماط المسار المرئي
تستخدم لغة سايفر أنماطًا مضغوطة ذات أطوال ثابتة ومتغيرة، تجمع بين التمثيلات المرئية لبنية العقد والعلاقات (الحواف)، مع وجود التسميات وقيم الخصائص. (يُشار إلى هذه الأنماط عادةً باسم أنماط " فن ASCII "، وقد نشأت في الأصل كوسيلة للتعليق على البرامج التي تستخدم واجهة برمجة تطبيقات رسومية منخفضة المستوى. [ 18 ] ) من خلال مطابقة هذا النمط مع عناصر بيانات الرسم البياني، يمكن للاستعلام استخراج مراجع للعقد والعلاقات والمسارات ذات الأهمية. تُصدر هذه المراجع على شكل "جدول ربط" حيث ترتبط أسماء الأعمدة بمجموعة متعددة من عناصر الرسم البياني. يصبح اسم العمود اسم "متغير ربط"، وقيمته هي مرجع عنصر رسم بياني محدد لكل صف من صفوف الجدول.
على سبيل المثال، سيُنتج نمطٌ ما جدولَ إخراجٍ من عمودين. سيحتوي العمود الأول، المُسمى ، على مراجعَ للعُقد التي تحملُ تصنيفًا . أما العمود الثاني، المُسمى ، فسيحتوي على مراجعَ للعُقد التي تحملُ تصنيفًا ، يُشير إلى المدينة التي يسكنها الشخص. MATCH (p:Person)-[:LIVES_IN]->(c:City) p Person c City
يمكن بعد ذلك فكّ مرجعية المتغيرات المرتبطة للوصول إلى قيم الخصائص المرتبطة بالعناصر التي يشير إليها المتغير. قد ينتهي الاستعلام النموذجي بفاصلة ، مما ينتج عنه استعلام كامل على النحو التالي: p c RETURN
MATCH ( p : Person ) -[ : LIVES_IN ]-> ( c : City ) RETURN p . first_name , p . last_name , c . name , c . stateسيؤدي هذا إلى جدول نهائي مكون من أربعة أعمدة يسرد أسماء سكان المدن المخزنة في الرسم البياني.
تستطيع الاستعلامات القائمة على الأنماط التعبير عن عمليات الربط، وذلك من خلال الجمع بين أنماط متعددة تستخدم نفس متغير الربط للتعبير عن عملية ربط طبيعية باستخدام العبارة التالية: MATCH
MATCH ( p : Person ) -[ : LIVES_IN ]-> ( c : City ), ( p : Person ) -[ : NATIONAL_OF ]-> ( EUCountry ) RETURN p . first_name , p . last_name , c . name , c . stateسيعرض هذا الاستعلام موقع الإقامة لمواطني الاتحاد الأوروبي فقط.
يمكن التعبير عن الربط الخارجي بواسطة : MATCH ... OPTIONAL MATCH
MATCH ( p : Person ) -[ : LIVES_IN ]-> ( c : City ) MATCH ( p : Person ) -[ : NATIONAL_OF ] -> ( ec : EUCountry ) RETURN p . first_name , p . last_name , c . name , c . state , ec . nameسيعيد هذا الاستعلام مدينة إقامة كل شخص في الرسم البياني مع معلومات الإقامة، وإذا كان مواطنًا من الاتحاد الأوروبي، فسيتم عرض البلد الذي ينتمي إليه.
وبالتالي، تستطيع الاستعلامات أولاً إسقاط رسم بياني فرعي من الرسم البياني المُدخل في الاستعلام، ثم استخراج قيم البيانات المرتبطة بهذا الرسم البياني الفرعي. كما يمكن معالجة قيم البيانات بواسطة دوال، بما في ذلك دوال التجميع، مما يؤدي إلى إسقاط قيم محسوبة تُعرض المعلومات الموجودة في الرسم البياني المُسقط بطرق متنوعة. وباتباع نهج G-CORE وMorpheus، يهدف GQL إلى إسقاط الرسوم البيانية الفرعية المُحددة بواسطة أنماط المطابقة (والرسوم البيانية المحسوبة بعد ذلك على تلك الرسوم البيانية الفرعية) كرسوم بيانية جديدة تُعاد بواسطة الاستعلام.
من منظور واسع، تراقب لغة استعلامات جوجل (GQL) ثلاثة عناصر رئيسية أثناء تقييم الاستعلام وتنفيذه:
- الرسم البياني النشط - الرسم البياني للخصائص المستخدم حاليًا لمطابقة الأنماط؛
- الجدول النشط - حيث يتم تخزين المعلومات المحسوبة حتى هذه النقطة؛ و
- السجل النشط - الذي يحتوي على مجموعة النتائج المستخدمة حاليًا.
أصبحت هذه الأنماط شائعة في لغات استعلام مخططات الخصائص، وهي أساس لغة الأنماط المتقدمة الفرعية التي يجري تعريفها في SQL/PGQ، والتي من المرجح أن تصبح جزءًا من لغة GQL. كما تستخدم لغة Cypher أنماطًا لعبارات الإضافة والتعديل ( و )، وقد قُدِّمت مقترحات في مشروع GQL لجمع أنماط العقد والحواف لوصف أنواع المخططات. CREATE MERGE
سايفر 9 وسايفر 10
يُشار إلى الإصدار الحالي من لغة سايفر (بما في ذلك الامتداد الزمني) باسم سايفر 9. قبل مشروع GQL، كان من المخطط إنشاء إصدار جديد، سايفر 10 [ انظر العنوان أدناه ]، والذي سيتضمن ميزات مثل المخطط والاستعلامات والعروض البيانية القابلة للتركيب. تم تنفيذ التصاميم الأولى لسايفر 10، بما في ذلك بناء الرسوم البيانية وعرضها، في مشروع سايفر لأباتشي سبارك بدءًا من عام 2016. [ 33 ]
PGQL
لغة PGQL [ 34 ] هي لغة صممتها ونفذتها شركة أوراكل، ولكنها متاحة كمواصفة مفتوحة المصدر [ 35 ] ، إلى جانب برنامج تحليل JVM [ 36 ] . تجمع PGQL بين صيغة SQL SELECT المألوفة، بما في ذلك تعابير SQL وترتيب النتائج وتجميعها، ولغة مطابقة أنماط مشابهة جدًا للغة Cypher. تسمح هذه اللغة بالاستعلام عن مواصفات الرسم البياني، وتتضمن ميزة للماكرو لالتقاط "عروض الأنماط"، أو الأنماط الفرعية المسماة. لا تدعم PGQL عمليات الإضافة أو التحديث، حيث صُممت في الأساس لبيئة تحليلية، مثل منتج PGX من أوراكل. كما تم تطبيق PGQL في Oracle Big Data Spatial and Graph، وفي مشروع بحثي، PGX.D/Async [ 37 ] .
جي-كور
G-CORE هي لغة بحثية صممها فريق من الباحثين الأكاديميين والصناعيين ومصممي اللغات، وتستند إلى خصائص لغات Cypher وPGQL و SPARQL . [ 38 ] [ 39 ] أُجري المشروع تحت رعاية مجلس معايير البيانات المرتبطة (LDBC)، بدءًا بتشكيل فريق عمل لغة استعلام الرسوم البيانية في أواخر عام 2015، مع إنجاز الجزء الأكبر من كتابة الأوراق البحثية في عام 2017. G-CORE لغة تركيبية مغلقة على الرسوم البيانية: تُعالج مدخلات الرسوم البيانية لإنشاء مخرجات الرسوم البيانية، باستخدام إسقاطات الرسوم البيانية وعمليات مجموعات الرسوم البيانية لبناء الرسم البياني الجديد. استعلامات G-CORE عبارة عن دوال خالصة على الرسوم البيانية، ليس لها آثار جانبية، مما يعني أن اللغة لا تُعرّف عمليات تُعدّل (تُحدّث أو تحذف) البيانات المخزنة. تُقدّم G-CORE طرق عرض (استعلامات مُسمّاة). كما أنها تُدمج المسارات كعناصر في الرسم البياني ("المسارات كعناصر أساسية")، والتي يمكن الاستعلام عنها بشكل مستقل عن المسارات المُسقطة (التي تُحسب عند الاستعلام على عناصر العقد والحواف). وقد تم تطبيق G-CORE جزئيًا في مشاريع بحثية مفتوحة المصدر ضمن مؤسسة LDBC على GitHub. [ 40 ] [ 41 ] [ 42 ]
GSQL
لغة GSQL [ 21 ] هي لغة مصممة لقاعدة بيانات الرسوم البيانية الخاصة بشركة TigerGraph Inc. منذ أكتوبر 2018، يعمل مصممو لغات TigerGraph على تطوير مشروع GQL. تُعد GSQL لغة كاملة تورينج، وتتضمن التحكم الإجرائي في التدفق والتكرار، بالإضافة إلى آلية لجمع وتعديل القيم المحسوبة المرتبطة بتنفيذ برنامج ما، سواءً للرسم البياني بأكمله أو لعناصر محددة منه تُسمى المُجمِّعات. صُممت هذه الميزات لتمكين دمج عمليات حساب الرسوم البيانية التكرارية مع استكشاف البيانات واسترجاعها. يجب وصف رسوم GSQL البيانية بمخطط من الرؤوس والحواف، مما يُقيد جميع عمليات الإضافة والتحديث. وبالتالي، يتمتع هذا المخطط بخاصية العالم المغلق لمخطط SQL، ويُقترح هذا الجانب من GSQL (الذي ينعكس أيضًا في مقترحات التصميم المُستمدة من مشروع Morpheus [ 43 ] ) كميزة اختيارية مهمة في GSQL.
تُعدّ الرؤوس والحواف كائنات مخطط مُسمّاة تحتوي على بيانات، وتُحدّد أيضًا نوعًا مُضمّنًا، تمامًا كما تُعدّ جداول SQL حاويات بيانات، مع نوع صف ضمني مُرتبط بها. تُركّب رسوم GSQL البيانية من مجموعات الرؤوس والحواف هذه، ويمكن أن تتضمن رسوم بيانية مُسمّاة متعددة نفس مجموعة الرؤوس أو الحواف. طوّرت GSQL ميزات جديدة منذ إصدارها في سبتمبر 2017، [ 44 ] أبرزها تقديم مُطابقة أنماط الحواف ذات الطول المتغير [ 45 ] باستخدام صيغة مُشابهة لتلك الموجودة في Cypher وPGQL وSQL/PGQ، ولكنها أيضًا قريبة في أسلوبها من أنماط الطول الثابت التي يُقدّمها Microsoft SQL/Server Graph [ 46 ] .
يدعم GSQL أيضًا مفهوم الرسوم البيانية المتعددة [ 47 ] ، الذي يسمح بتقسيم الرسم البياني إلى مجموعات فرعية مع التحكم في الوصول بناءً على الأدوار. تُعدّ الرسوم البيانية المتعددة مهمة للرسوم البيانية على مستوى المؤسسات التي تتطلب تحكمًا دقيقًا في الوصول لمختلف المستخدمين.
مورفيوس: رسوم بيانية متعددة واستعلامات رسوم بيانية قابلة للتركيب في أباتشي سبارك
يُطبّق مشروع مورفيوس (Morpheus) التابع لـ OpenCypher [ 33 ] لغة Cypher لمستخدمي Apache Spark. بدأ هذا المشروع في عام 2016، وكان يعمل بالتوازي مع ثلاثة مشاريع أخرى ذات صلة، شارك فيها مصممو مورفيوس أيضًا: SQL/PGQ وG-CORE وتصميم امتدادات Cypher للاستعلام عن الرسوم البيانية المتعددة وإنشائها. [ 48 ] شكّل مشروع مورفيوس بيئة اختبار لامتدادات Cypher (المعروفة باسم "Cypher 10") في مجالي تعريف بيانات الرسوم البيانية (DDL) وامتدادات لغة الاستعلام.
تتضمن ميزات لغة تعريف البيانات للرسم البياني [ 49 ]
- تعريف طرق عرض الرسم البياني للخصائص على جداول SQL المتصلة بـ JDBC و Spark DataFrames [ 50 ]
- تعريف مخططات الرسوم البيانية أو الأنواع المحددة عن طريق تجميع أنماط نوع العقدة ونوع الحافة، مع التنميط الفرعي [ 50 ]
- تقييد محتوى الرسم البياني بواسطة مخطط مغلق أو ثابت
- إنشاء مدخلات فهرس لرسوم بيانية متعددة مُسماة في فهرس منظم هرميًا
- مصادر بيانات الرسم البياني لتشكيل فهرس موحد وغير متجانس
- إنشاء إدخالات الكتالوج للاستعلامات المسماة (العروض)
تتضمن امتدادات لغة استعلام الرسم البياني [ 49 ]
- اتحاد الرسم البياني
- إسقاط الرسوم البيانية المحسوبة من نتائج مطابقة الأنماط على رسوم بيانية متعددة المدخلات
- دعم الجداول (إطارات بيانات سبارك) كمدخلات للاستعلامات ("الجداول المحركة")
- طرق عرض تقبل الرسوم البيانية المسماة أو المسقطة كمعلمات.
تم اقتراح هذه الميزات كمدخلات لتوحيد لغات استعلام الرسم البياني للخصائص في مشروع GQL.
القيود
تسمح استعلامات GQL باستعلامات المسار لإرجاع أنواع مختلفة من المسارات بين عقدتين (الأقصر، البسيط، المشي، غير الدوري، إلخ). مع ذلك، يقتصر هذا على اختبار وجود المسار فقط. ويفتقر النظام إلى دعم الاستدلال على خصائص المسار المعقدة مثل الأوزان/التكاليف. على سبيل المثال، لا يدعم النظام مقارنة الأوزان على الحواف المتجاورة في المسارات.
انظر أيضاً
مراجع
- ↑ غرين، ألاستير (يوليو 2016). " إنشاء معيار صناعي مفتوح للغة استعلام بياني للخصائص التصريحية " (ملف PDF) . opencypher.org . تم الاطلاع عليه بتاريخ 12 نوفمبر 2019 .
- 1 2 غرين، ألاستير (يوليو 2018). " العمل على بند عمل جديد لـ GQL، لاستكمال SQL PGQ ، تقديم ANSI INCITS DM32.2 رقم DM32.2-2018-00128r1 " (ملف PDF) . opencypher.org . تاريخ الاسترجاع: 12 نوفمبر 2019 .
- ↑ "ISO/IEC 39075 تكنولوجيا المعلومات - لغات قواعد البيانات - GQL" . ISO . تم الاطلاع عليه في 7 يناير 2022 .
- ↑ "SC32 WG3 N282 "SC32 N3002 مسودة NWIP النموذج 4 تكنولوجيا المعلومات - لغات قواعد البيانات - GQL"" . ISO . تم الاطلاع عليه في 9 ديسمبر 2019 .
- ↑ "ISO/IEC 39075:2024 تكنولوجيا المعلومات - لغات قواعد البيانات - GQL" . المنظمة الدولية للمقاييس . تم الاطلاع عليه بتاريخ 25 مايو 2024 .
- ↑ المحررون: بلانتيكوف، ستيفان؛ كانان، ستيفن (أكتوبر 2019). " مسودة عمل مبكرة لـ GQL الإصدار 2.2 " . ISO . تم الاطلاع عليه في 9 نوفمبر 2019 .
- ↑ " معيار GQL " . تم الاطلاع عليه بتاريخ 12 نوفمبر 2019 .
- ↑ " تحديثات مجتمع GQL " . تم الاطلاع عليه بتاريخ 12 نوفمبر 2019 .
- ↑ ليبكين، ليونيد. " مجموعة عمل الدلالات الرسمية " . تم الاسترجاع في 12 نوفمبر 2019 .
- ↑ "JTC 1/SC 32 إدارة البيانات وتبادلها" . ISO/IEC JTC1 . تم الاطلاع عليه في 6 أكتوبر 2019 .
- ↑ " نطاق من المعيار الأصلي، ISO 9075-1987، لغة قواعد البيانات SQL " . ISO/IEC JTC1 . تم الاطلاع عليه في 9 نوفمبر 2019 .
- ↑ "Iso/Iec 39075:2024" .
- ↑ "عبارات استعلام GQL | Spanner" . وثائق Google Cloud . تم الاطلاع بتاريخ 27-05-2026 .
- ↑ "Apache Tinkerpop" . مؤسسة برمجيات أباتشي . تم الاطلاع عليه بتاريخ 11 نوفمبر 2019 .
- ↑ "محلل GQL" . GitHub . تم الاطلاع عليه في 18 يناير 2021 .
- ↑ "أول تطبيق بحثي للغة GQL من أولوف مورا في جامعة آيندهوفن للتكنولوجيا!" . ألاستير غرين . تم الاطلاع عليه في 18 يناير 2021 .
- ↑ "دلالات لغة GQL؛ لغة استعلام جديدة لرسوم بيانية الخصائص مُصاغة بشكل رسمي" (ملف PDF) . أولوف مورا . تم الاطلاع عليه بتاريخ 18 يناير 2021 .
- 1 2 لينداكر، توبياس (مايو 2018). " نظرة عامة على التاريخ الحديث للغات استعلام الرسوم البيانية " (ملف PDF) . opencypher.org . تم الاطلاع عليه في 6 أكتوبر 2019 .
- ↑ بلانتيكو، ستيفان (مايو 2018). " مخطط موجز لـ Cypher وPGQL وG-Core " (ملف PDF) . opencypher.org . تم الاطلاع عليه في 3 نوفمبر 2019 .
- ↑ رودريغيز، ماركو أ. (2015). "آلة ولغة اجتياز الرسوم البيانية جريملين (محاضرة مدعوة)". وقائع الندوة الخامسة عشرة حول لغات برمجة قواعد البيانات . ACM. ص 1-10 . arXiv : 1508.03843 . doi : 10.1145/2815072.2815073 . ISBN 9781450339025. S2CID 32623848 . تم الاسترجاع في 10 نوفمبر 2019 .
- 1 2 وو، مينغشي؛ دويتش، ألين. " GSQL: لغة استعلام رسومية مستوحاة من SQL " . تم الاسترجاع في 9 نوفمبر 2019 .
- ↑ وود، بيتر ت. (25 أبريل 2012). "لغات الاستعلام لقواعد بيانات الرسوم البيانية" . سجل ACM SIGMOD . 41 (1). ACM: 50-60 . doi : 10.1145/2206869.2206879 . S2CID 13537601. تاريخ الاسترجاع: 25 أكتوبر 2019 .
- ↑ أنجلز، رينزو؛ وآخرون . (سبتمبر 2017). "أسس لغات الاستعلام الحديثة لقواعد بيانات الرسوم البيانية" . مجلة ACM Computing Surveys . 50 (5). ACM: 68:1–40. arXiv : 1610.06264 . doi : 10.1145/3104031 . S2CID 13526884. تاريخ الاسترجاع: 12 نوفمبر 2019 .
- ↑ "ISO/IEC 9075-16 تكنولوجيا المعلومات - لغات قواعد البيانات SQL - الجزء 16: استعلامات الرسم البياني لخصائص SQL (SQL/PGQ)" . ISO . تم الاطلاع عليه في 7 يناير 2022 .
- 1 2 هير، كيث؛ وآخرون . (مارس 2019). " SQL وGQL ، ورشة عمل W3C حول توحيد معايير الويب لبيانات الرسوم البيانية. إنشاء جسور: RDF، ورسم بياني للخصائص، وSQL" (ملف PDF) . W3C . تم الاطلاع عليه في 6 أكتوبر 2019 .
- ↑ تريجوناكيس، فاسيليوس (يوليو 2019). " امتدادات الرسم البياني للخصائص لمعيار SQL . مؤتمر LDBC الثاني عشر" (ملف PDF) . LBDC . تم الاطلاع عليه في 7 يناير 2022 .
- ↑ دويتش، ألين؛ فرانسيس، ناديم؛ غرين، ألاستير؛ هير، كيث؛ لي، بي؛ ليبكين، ليونيد؛ لينداكر، توبياس؛ مارسولت، فيكتور؛ مارتنز، ويم؛ ميشيلز، جان؛ وآخرون . (2021-12-12). "مطابقة أنماط الرسوم البيانية في GQL وSQL/PGQ". arXiv : 2112.06217 [ cs.DB ].
- ↑ دويتش، ألين؛ فرانسيس، ناديم؛ غرين، ألاستير؛ هير، كيث؛ لي، بي؛ ليبكين، ليونيد؛ لينداكر، توبياس؛ مارسولت، فيكتور؛ مارتنز، ويم؛ ميشيلز، يان؛ مورلاك، فيليب؛ بلانتيكو، ستيفان؛ سيلمر، بيترا؛ فان ريست، أوسكار؛ فويغت، هانز (11 يونيو 2022). "مطابقة أنماط الرسوم البيانية في GQL وSQL/PGQ" . وقائع المؤتمر الدولي لإدارة البيانات 2022. SIGMOD '22. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 2246-2258 . doi : 10.1145/3514221.3526057 . ISBN 978-1-4503-9249-5. S2CID 245124268 .
- ↑ فرانسيس، ناديم؛ وآخرون . (27 مايو 2018). "سايفر: لغة استعلام متطورة لرسوم بيانية الخصائص". وقائع المؤتمر الدولي لإدارة البيانات لعام 2018. ACM. الصفحات 1433-1445 . doi : 10.1145/3183713.3190657 . ISBN 9781450347037. S2CID 13919896 . تم الاسترجاع في 25 أكتوبر 2019 .
- ↑ " مرجع لغة الاستعلامات في لغة سايفر (الإصدار 9) " (ملف PDF) . opencypher.org . تم الاطلاع عليه بتاريخ 10 نوفمبر 2019 .
- ↑ " موارد أوبن سايفر " . ACM . تم الاطلاع عليه في 10 نوفمبر 2019 .
- ↑ " CIP2015-08-06 - التاريخ والوقت " . opencypher.org. 15 مايو 2019. تم الاطلاع عليه في 25 أكتوبر 2019 .
- 1 2 ريدبيرغ، ماتس؛ وآخرون . (يوليو 2016). " مورفيوس يُقدّم لغة استعلام الرسوم البيانية الرائدة، سايفر، إلى منصة المعالجة الموزعة الرائدة، سبارك. " . أوبن سايفر . تم الاطلاع عليه في 3 نوفمبر 2019 .
- ↑ فان ريست، أوسكار؛ وآخرون . (يونيو 2016). "PGQL: لغة استعلام عن مخططات الخصائص" . وقائع ورشة العمل الدولية الرابعة حول تجارب وأنظمة إدارة بيانات الرسوم البيانية . ACM. الصفحات 1-6 . doi : 10.1145/2960414.2960421 . ISBN 978-1-4503-4780-8. S2CID 6806901 . تم الاسترجاع في 25 أكتوبر 2019 .
- ↑ "PGQL" . pgql.org . تم الاطلاع عليه في 6 أكتوبر 2019 .
- ↑ فان ريست، أوسكار؛ وآخرون . (سبتمبر 2015). " PGQL هي لغة استعلام قائمة على SQL لنموذج بيانات Property Graph " . pgql.org . تم الاطلاع عليه في 3 نوفمبر 2019 .
- ↑ روث، نيكولاس ب. وآخرون (2017). "PGX.D/Async: محرك قابل للتوسع لمطابقة أنماط الرسوم البيانية الموزعة" . وقائع ورشة العمل الدولية الخامسة حول تجارب وأنظمة إدارة بيانات الرسوم البيانية . ACM. الصفحات 1-6 . doi : 10.1145/3078447.3078454 . ISBN 978-1-4503-5038-9. S2CID 26283328 . تم الاسترجاع في 29 أكتوبر 2019 .
- ↑ أنجلز، رينزو؛ وآخرون (2018). "G-CORE: نواة للغات استعلام الرسوم البيانية المستقبلية" . وقائع المؤتمر الدولي لإدارة البيانات لعام 2018. ACM. الصفحات 1421-1432 . doi : 10.1145/3183713.3190654 . ISBN 978-1-4503-4703-7S2CID 4623760. تم الاسترجاع في 9 نوفمبر 2019 .
- ↑ فويغت، هانز (فبراير 2018). " G-CORE: اقتراح لغة استعلام الرسم البياني LDBC . في أرشيفات FOSDEM 2018" . تم الاطلاع عليه في 12 نوفمبر 2019 .
- ↑ فان ريست، أوسكار (2017). " قواعد ومحلل G-CORE " . LDBC . تم الاسترجاع في 12 نوفمبر 2019 .
- ↑ سيوسرديل، جورجيانا ديانا (2018). " مترجم لغة استعلام الرسوم البيانية G-CORE ، رسالة ماجستير في أنظمة الحوسبة المتوازية والموزعة، مركز CWI وجامعة فريجي أمستردام" (ملف PDF) . مركز CWI . تاريخ الاطلاع: 12 نوفمبر 2019 .
- ↑ سيوسرديل، جورجيانا ديانا؛ بونكز، بيتر (2017). " مترجم G-CORE على سبارك " . LDBC . تم الاسترجاع في 12 نوفمبر 2019 .
- ↑ فويغت، هانز؛ سيلمر، بيترا؛ لينداكر، توبياس؛ بلانتيكو، ستيفان؛ غرين، ألاستير؛ فورنيس، بيتر (ديسمبر 2018). " مخطط الرسم البياني للخصائص ، ANSI INCITS DM32.2 SQL Property Graph Extensions Ad Hoc submission sql-pg-2018-0056r1 ، فريق معايير وبحوث لغات استعلام Neo4j" (ملف PDF) . openCypher.org . تاريخ الاسترجاع: 12 نوفمبر 2019 .
- ↑ " وثائق GSQL لـ Tigergraph 1.0 " . 2017. تم الاطلاع عليه في 9 نوفمبر 2019 .
- ↑ " مطابقة الأنماط ، ملاحظات إصدار TigerGraph 2.4" . يونيو 2019. تم الاطلاع عليه في 9 نوفمبر 2019 .
- ↑ " امتدادات لغة الاستعلام ، معالجة الرسوم البيانية باستخدام SQL Server وقاعدة بيانات Azure SQL" . شركة مايكروسوفت، 2017. تم الاطلاع عليه بتاريخ 10 نوفمبر 2019 .
- ↑ " الرسوم البيانية المتعددة ، وثائق TigerGraph عبر الإنترنت" . يونيو 2019 . تم الاسترجاع في 7 يناير 2022 .
- ↑ تايلور، أندريس؛ بلانتيكو، ستيفان؛ سيلمر، بيترا (2017-2018). " CIP2017-06-18 الاستعلام عن الرسوم البيانية المتعددة وبنائها " . opencypher.org . تم الاطلاع عليه بتاريخ 12 نوفمبر 2019 .
- 1 2 كيسلينغ، ماكس (2019). " الرسوم البيانية المتعددة والاستعلامات القابلة للتركيب في لغة سايفر لأباتشي سبارك . اجتماع مطوري أوبن سايفر الخامس، برلين" (ملف PDF) . opencypher.org . تم الاطلاع عليه في 9 نوفمبر 2019 .
- 1 2 يوهانسون، توبياس؛ وآخرون (2019). " graphddl-example-ldbc: مثال cypher-for-apache-spark يوضح استخدام SqlPropertyGraphSource وGraphDDL لتوفير عرض رسم بياني لخصائص مجموعة بيانات SQL " . GitHub . تم الاسترجاع في 9 نوفمبر 2019 .
روابط خارجية
- لغات البرمجة
- لغات الاستعلام
- معايير ISO/IEC
