تقنية

نصان يعالجهما المساعد: هل توافق التمثيل يعني تطابق الأصل؟

رسم لمساري تمثيلين معلنين إلى مقارنة NFC مع حفظ اختلاف الأصلين.
رسم تحريري أصلي لتسلسلات خيالية معلنة؛ ليس خرج أداة توحيد نص.

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

الخلاصة السريعة

سم صيغة التوحيد واحفظ الأصلين؛ التوافق بعد NFC يخص المقارنة المختارة، ولا يثبت تطابق التسلسل الأصلي أو هوية الشيء الذي سميناه.

  • تصف Unicode صيغة NFC بالتفكيك القانوني ثم التركيب القانوني، وتفصلها عن NFKC التي تستخدم تفكيكا توافقيا؛ لا تنصح بتطبيق الصيغ التوافقية عمياء على نص اعتباطي. [1]
  • في بطاقتنا نفرق V ثم U+00C5 عن V ثم U+0041 وU+030A؛ المثال مبني على تفكيك Å القانوني الموثق، لا على تجربة تحويل نفذناها. [1]
  • نقارن التمثيلين بعد NFC وفق هذه العلاقة، مع حفظ اختلاف الأصلين؛ لا نعمم ذلك على الرقم المحاط بدائرة والرقم العادي أو على كل رمز متشابه.
  • اختر المقارنة بحسب غرض الحقل واحفظ ما غيّرته؛ قد تحمل دائرة الرمز معنى تحريريا محليا، والتوحيد لا يقرر هوية البطاقة أو صحة محتواها.

ما الذي توحده الصيغة؟

يفصل ملحق Unicode بين التكافؤ القانوني والتوافقي. صيغة NFC تستخدم تفكيكا قانونيا يتبعه تركيب قانوني، بينما NFKC تستخدم التفكيك التوافقي قبل التركيب؛ يحافظ NFC على فروق توافقية قد تفقدها الصيغة الأخرى. [1]

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

كيف تختلف بطاقتا المثال؟

ننشئ بطاقتين خياليتين تحملان الرمز VÅ. نعلن أن الأولى تخزن V ثم U+00C5، وأن الثانية تخزن V ثم U+0041 ثم U+030A. يعرض ملحق Unicode تفكيك U+00C5، حرف A ذي الحلقة، إلى A مع الحلقة المركبة فوقه. [1]

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

لماذا لا نمحو كل فرق شكلي؟

في حالة تحريرية مستقلة نعلن أن ① يعني بندا اختير، وأن 1 يعني رقم البند دون إعلان اختياره. هذا تعريف محلي للمهمة، لا قاعدة عامة لمعنى الدائرة. لا ننقل نتيجة بطاقتي VÅ إلى هذه الحالة لمجرد أن الرقمين قريبان في القراءة.

يوضح الملحق أن الرقم المحاط بدائرة قد يفقد الدائرة في التفكيك التوافقي، ويحذر من تطبيق NFKC وNFKD عمياء على نص اعتباطي. [1] لذلك راجع هل الفرق مهم لحقلنا قبل اختيار صيغة تمحوه. قبول تمثيل واحد لبحث معين لا يلزم منه محو الفروق في النسخة التحريرية.

ماذا نسجل قبل مقارنة خرج المساعد؟

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

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

المصادر ومتابعة القراءة

  1. Unicode UAX 15: الصيغ القانونية والتوافقية (يفتح في نافذة جديدة)unicode.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.