تقنية

موضع وسم النص العربي: هل تعد الحروف أم بايتات الملف؟

كلمة قلم في نص باب قلم لها موضع 4 إلى قبل 7 بنقاط يونيكود و 7 إلى قبل 13 ببايتاتUTF8 مع ضرورة تحديد الوحدة
رسم أصلي لإزاحات محسوبة على نص تعليمي؛ ليست إحداثيات استخرجتها منصة وسم.

موضع وسم النص العربي لا يكتمل بوصف «من 4 إلى 7» وحده؛ يجب أن نحدد ما الذي نعده، وكيف نعالج النص، وأي نسخة نعني. قد تصف الأعداد نفسها مقطعا مختلفا إذا كانت إحدى الأداتين تعد نقاط يونيكود والأخرى تعد بايتات الملف. اتجاه عرض العربية لا يعكس ترتيب تخزين النص المنطقي.

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

اكتب وحدة الإزاحة وحدود المقطع ونسخة النص؛ لا تنقل أرقام الموضع بين عد نقاط يونيكود وعد البايتات كما لو كانا شيئا واحدا.

  • يعرف نموذج W3C محدد موضع النص بنقاط يونيكود والترتيب المنطقي، مع شمول البداية واستبعاد النهاية؛ محدد موضع البيانات يعد البايتات. [1]
  • في نصنا «باب قلم»، يقع «قلم» بين 4 و 7 بنقاط يونيكود، وبين 7 و 13 في بايتات UTF-8 ؛ هذه إزاحات تعليمية محسوبة، لا مخرجات أداة وسم.
  • التشكيل قد يضيف نقاط يونيكود دون إضافة حرف أساس؛ لا تقطع تجمعا كتابيا عند تحديد المقطع، واتفق على معالجة النص قبل العد. [1]
  • تغير النص قبل المقطع قد ينقل المواضع؛ احفظ النسخة والعبارة المقصودة للتحقق. صحة الموقع لا تثبت صحة الفئة، واسمها لا يثبت صحة الموقع.

ما وحدة الموضع وما حدود المقطع؟

يفرق Web Annotation Data Model بين TextPositionSelector لمواضع النص وDataPositionSelector لمواضع البايتات. ويحدد موضع النص بنقاط يونيكود في الترتيب المنطقي، فتدخل نقطة البداية في المقطع وتبقى نقطة النهاية خارجه. [1]

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

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

كيف يختلف العدد في مثال عربي قصير؟

النص الأصلي الذي اخترناه هو «باب قلم»، من دون علامات الاقتباس أو تشكيل، وبين الكلمتين مسافة واحدة. تتكون «باب» من ثلاث نقاط يونيكود، ثم تأتي المسافة في الموضع 3 ، وتبدأ «قلم» في الموضع 4 وتنتهي قبل الموضع 7.

عند ترميز هذه السلسلة بـ UTF-8 ، يشغل كل حرف عربي فيها بايتين وتشغل المسافة بايتا واحدا. لذلك تسبق «قلم» سبعة بايتات، وتشغل الكلمة نفسها ستة، فيكون مقطع البايتات من 7 إلى ما قبل 13. حسبنا ذلك على النص التعليمي نفسه، ولم نشغل منصة وسم.

  • الأعداد تصف النص المختار وحده؛ ليست قاعدة تقول إن كل حرف أو رمز في UTF-8 يشغل بايتين.
  • المسافة تدخل في العد؛ لا تعد الكلمات ثم تستخدم عددها موضعا حرفيا.
وحدة الإزاحةبداية قلم مشمولةنهاية قلم مستبعدةطول المقطع بهذه الوحدة
نقاط يونيكود473
بايتات UTF-87136

ماذا يغير التشكيل ومعالجة النص؟

تشترط W3C معالجة النص قبل حساب المواضع بالطريقة نفسها التي تحددها لاختيار النص، وتوصي ألا يبدأ الاختيار أو ينتهي داخل تجمع كتابي. [1] لذلك يجب أن يتفق طرفا الوسم على النص الذي سيجري العد عليه، لا على اسم الملف فقط.

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

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

كيف نحفظ الموضع قابلا للمراجعة؟

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

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

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

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

  1. W3C: Web Annotation Data Model (يفتح في نافذة جديدة)w3.org

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