لغة وصف البيانات المفتوحة

لغة وصف البيانات المفتوحة ( OpenDDL ) هي لغة نصية عامة مصممة لتخزين البيانات المختلفة بتنسيق موجز وسهل القراءة. يمكن استخدامها كوسيلة لتبادل المعلومات بسهولة بين العديد من البرامج، أو ببساطة كطريقة لتخزين بيانات البرنامج بتنسيق قابل للتعديل.

تم وصف الصيغة الدقيقة لـ OpenDDL على موقع الويب openddl.org وكذلك في ملحق من مواصفات Open Game Engine Exchange . [ 1 ]

الهياكل

يتكون ملف OpenDDL من سلسلة من البنى التي قد تكون أنواعًا معرفة من قبل المستخدم أو أنواع بيانات أساسية مضمنة. يتألف تعريف البنية من مُعرِّف متبوعًا باسم اختياري، وقائمة خصائص اختيارية، وأخيرًا، محتويات البنية محصورة بين قوسين معقوفين. تُخزَّن البيانات الأولية دائمًا داخل البنى التي تكون مُعرِّفاتها من أنواع البيانات الموضحة في القسم التالي. على سبيل المثال، يمكن تعريف بنية Pointتحتوي على إحداثيات الفاصلة العائمة لنقطة ثلاثية الأبعاد كما يلي.

نقطة { float {1.0, 2.0, 3.0} }

يمكن أن تحمل الهياكل أسماءً تُمكّن من الرجوع إليها من أجزاء أخرى من الملف. قد تكون الأسماء عامة (فريدة في جميع أنحاء الملف) أو محلية (فريدة داخل الهيكل المُحيط). يتكون الاسم العام من علامة الدولار متبوعةً بمعرّف، بينما يتكون الاسم المحلي من علامة النسبة المئوية متبوعةً بعلامة الدولار. Pointيمكن إعطاء الهيكل المذكور أعلاه الاسم العام "position" كما يلي.

النقطة $position { float {1.0, 2.0, 3.0} }

ويمكن أن يتضمن هيكل آخر إشارة إلى هذه النقطة باستخدام refنوع البيانات التالي:

ref {$position}

أنواع البيانات

يُعرّف OpenDDL أنواع البيانات الأولية الخمسة عشر الموضحة في الجدول التالي. لكل نوع اسم طويل واسم مختصر. بالإضافة إلى ذلك، لكل نوع من أنواع الأعداد العشرية اسم طويل واسم مختصر بديلان.

يكتبوصف
bool،bنوع منطقي يمكن أن يأخذ القيمة trueأو false.
int8،i8عدد صحيح موقع مكون من 8 بتات يمكن أن تكون له قيم في النطاق [ 2 7 , 2 7 1 ].  
int16،i16عدد صحيح موقع مكون من 16 بت يمكن أن تكون له قيم في النطاق [ 2 15 , 2 15 1 ].  
int32،i32عدد صحيح موقع مكون من 32 بت يمكن أن تكون له قيم في النطاق [ 2 31 , 2 31 1 ].  
int64،i64عدد صحيح موقع 64 بت يمكن أن تكون له قيم في النطاق [ 2 63 , 2 63 1 ].  
uint8،u8عدد صحيح غير موقع مكون من 8 بتات يمكن أن تكون له قيم في النطاق [0، 28 - 1 ].  
uint16،u16عدد صحيح غير موقع مكون من 16 بت يمكن أن تكون له قيم في النطاق [0، 2 16 1].  
uint32،u32عدد صحيح غير موقع مكون من 32 بت يمكن أن تكون له قيم في النطاق [0، 232 - 1].  
uint64،u64عدد صحيح غير موقع 64 بت يمكن أن تكون له قيم في النطاق [0، 264 - 1].  
half، float16، h،f16نوع بيانات ذو فاصلة عائمة 16 بت متوافق مع تنسيق S1E5M10 القياسي.
float، float32، f،f32نوع بيانات ذو فاصلة عائمة 32 بت متوافق مع تنسيق S1E8M23 القياسي.
double، float64، d،f64نوع بيانات ذو فاصلة عائمة 64 بت متوافق مع تنسيق S1E11M52 القياسي.
string،sسلسلة أحرف محاطة بعلامات اقتباس مزدوجة، ومحتوياتها مشفرة بنظام UTF-8 .
ref،rسلسلة من أسماء الهياكل، أو الكلمة المفتاحية null.
type،tنوع تكون قيمه عبارة عن معرّفات تُسمّي الأنواع في العمود الأول من هذا الجدول.
base64،zبيانات ثنائية عامة مشفرة بصيغة Base64 .

مراجع

  1. لينجيل، إريك (2021). مواصفات تبادل محركات الألعاب المفتوحة، الإصدار 3.0 . شركة تيراثون للبرمجيات. رقم ISBN 978-0-9858117-8-5.