الخلاصة

  • تحصر RFC 8174 المعاني الخاصة في كلمات BCP 14 المكتوبة كلها بحروف كبيرة ضمن اتفاق معلن في الوثيقة. أما must وshould بالحروف الصغيرة فتحملان معناهما الإنجليزي العادي.
  • لا تجعل القاعدة شكل الحرف اختباراً كاملاً للإلزام. فالنص المعياري قد يستغني عن الكلمات المفتاحية، كما تتأثر قوة الكلمة بمستوى الوثيقة التي ترد فيها.
  • يحتاج إثبات المطابقة إلى نسخة الوثيقة وحالتها، والاتفاق المعلن، والجملة كاملة، والفاعل، والشرط، والاستثناء، والاختبار، والنتيجة المرصودة؛ أما عدّ الكلمات الكبيرة فينتج قائمة مرشحة فقط.

وجد المحلل العلامة قبل أن يجد الالتزام

يبدو استخراج كل MUST من وثيقة RFC وتحويلها إلى صفوف اختبار عملاً دقيقاً. غير أن الشكل نفسه قد يظهر داخل اقتباس أو مثال أو شرح لمتطلب في وثيقة أخرى. ولا يعرف البحث بعد إن كانت الوثيقة قد تبنت BCP 14 أصلاً.

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

تكمن قيمة RFC 8174 في أنها أزالت غموضاً واحداً يمكن إزالته بدقة. وبذلك رسمت أيضاً النقطة التي ينبغي للأتمتة أن تعيد فيها الحكم إلى السياق.

عبارة «غالباً بأحرف كبيرة» فتحت نحوين

وضعت RFC 2119 لScott Bradner مفردات مشتركة لمستويات المتطلبات. تعني MUST مطلباً مطلقاً في المواصفة، وتعني MUST NOT حظراً مطلقاً. تسمح SHOULD بالخروج لسبب صالح بعد فهم الآثار ووزنها. وتجعل MAY الميزة اختيارية حقاً، مع إبقاء قابلية التشغيل البيني بين من يختارون فرعين مختلفين.

قال النص الأول إن هذه الكلمات تُكتب «غالباً» بحروف كبيرة. لذلك أمكن قراءة must الصغيرة إما كمصطلح معرف أخطأ تنسيقه، أو ككلمة إنجليزية عادية. وقد يطبق الكاتب والمراجع والأداة قواعد مختلفة على السطر نفسه.

أغلق Leiba هذا التفرع: لا تحصل الكلمة على معنى BCP 14 الخاص إلا إذا كُتبت كلها بحروف كبيرة. وفي غير ذلك تبقى في الإنجليزية العادية. كما تجعل الصيغة التمهيدية الجديدة الوثيقة تعلن هذا الاتفاق بنفسها.

النص المعياري لا يحتاج دائماً إلى كلمة كبيرة

الإغراء الأقوى هو اختزال التصحيح إلى «الكبير معياري، والصغير غير معياري». ترفض RFC 8174 هذا الاختصار صراحة. فهي تقول إن استخدام الكلمات المفتاحية غير مطلوب وإن كثيراً من النصوص المعيارية لا يستخدمها.

هناك إذن سؤالان. هل تستدعي الكلمة تعريف BCP 14؟ وهل للجملة قوة معيارية، ومن أين تأتي، ومن تشمل؟ يجيب شكل الحروف عن الأول فقط.

عندما تستخدم أداة تعبيراً نمطياً للإجابة عن السؤالين، تفقد الالتزامات المكتوبة بلغة عادية وترفع الاقتباسات إلى مرتبة الأوامر. تنتج الأتمتة أخطاء موحدة الشكل، لا حكماً موثوقاً.

تستعير الكلمة قوتها من الوثيقة

تنبه RFC 2119 إلى أن قوة كلماتها تعدّلها درجة المتطلب في الوثيقة. لا تحول الأحرف الكبيرة Internet-Draft إلى معيار، ولا RFC معلوماتية إلى أمر تشغيل بيني، ولا قائمة داخلية إلى إجماع IETF.

تتوزع السلطة عمداً. يختار الكاتب العبارة، وتمنح مجموعة العمل وجهة اعتماد المسار العملية والحالة، ويحافظ RFC Editor على المعنى الموافق عليه، ويترجمه المصنع إلى برنامج، ويرصد المختبر السلوك.

تحسن الحروف الكبيرة وضوح التسليم بين هذه الأطراف، لكنها لا تحل محل أحد. لذلك تكون فقرة BCP 14 التمهيدية دليلاً على أصل المفردات، لا زينة تحريرية.

SHOULD آلية استثناء وليست أمراً أضعف

وضع MUST وSHOULD وMAY على مقياس شدة واحد يخفي ثلاثة تصاميم تحكم. تغلق MUST الاختيار. وتترك SHOULD منفذاً يحتاج إلى سبب وفهم للنتائج. وتفتح MAY اختياراً ينبغي للمنظومة المحيطة أن تتحمل فرعيه.

تصف إرشادات IETF الحالية للكتّاب SHOULD بأنها صعبة خصوصاً. ينبغي بيان سبب عدم استخدام MUST وآثار الانحراف عن التوصية. تحويلها في جدول امتثال إلى «اختياري» يمحو سجل القرار المطلوب.

يشمل المتطلب القابل للتنفيذ الفاعل والفعل والشرط والاستثناء وأثر التشغيل البيني. الكلمة المظللة عنوان لهذا السجل، وليست السجل كله.

يعلن دليل الأسلوب قواعد محلية مختلفة

تقول RFC 7322 إنها لا تستخدم مصطلحات RFC 2119. ثم تستعمل must وshould بحروف صغيرة وتفسر لهما معنى تحريرياً محلياً: تغييرات يطبقها RFC Editor تلقائياً، مقابل توصيات قد يناقشها الكاتب.

ليس هذا خرقاً لBCP 14. إنه مثال على إعلان القواعد المستخدمة كي لا يُقرأ الحرف الصغير كخطأ تنسيق.

ويطلب الدليل نفسه الاستشهاد بRFC 2119 كمرجع معياري عند استخدام تفسيرها؛ وإلا فعلى الوثيقة تعريف التفسير الصحيح. التشابه البصري لا يعوض هذا الأصل.

حتى الترميز المنظم يحيط بالعبارة فقط

يقدم RFCXML عنصراً اختيارياً هو <bcp14> لإحاطة العبارة المعرفة مثل MUST أو SHOULD NOT. ويساعد أدوات التأليف والعرض، لكن وصفه الرسمي ينهى عن إحاطة المتطلب الكامل به.

تكشف حدود المخطط أن الكائن المقروء آلياً أصغر من الالتزام. يبقى الفاعل والفعل والشرط والاستثناء والمراجع في بقية الجملة والوثيقة.

يمكن للأداة أن تستخدم الوسم إشارة قوية للعثور على مرشح. أما تحويله مباشرة إلى اختبار مطابقة فينسب إلى XML قراراً لم يسجله.

الحروف إيصال مفردات لا تفويض سلطة

لم يمنح Barry Leiba الحروف الكبيرة سلطة إضافية. لقد جعل لحظة تفعيل تعريف BCP 14 قابلة للتحقق، وفصل المصطلح الخاص عن الكلمة الإنجليزية العادية.

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

تعثر الأتمتة الحذرة على الكلمة ولا ترمي الوثيقة من حولها. تسأل من الملزم، وبأي نسخة، وتحت أي استثناء، وما النتيجة المرصودة. تكون الحروف الكبيرة قد أدت وظيفتها عندما تفتح هذه الأسئلة.

المصادر