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