Skip to content

كيف تعلّق على المستندات وملفات PDF

علّق على العقود والتقارير والأوراق البحثية بوصفها مستندات لا نصًا مسطّحًا، مع الإبقاء على التخطيط وأرقام الصفحات والإحالات العابرة للصفحات سليمة.

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

التعليق على المستندات هو الحالة التي تفشل فيها الإعدادات المعتادة للتعليق النصي. ملف PDF وصفٌ لعلامات على صفحات لا تسلسلٌ من الحروف، ولذلك يسلّمك مستخرِجان مختلفان سلسلتين مختلفتين من الملف نفسه. الصفحات متعددة الأعمدة تتشابك، وتظهر الترويسات والتذييلات في منتصف التدفق، وتتحول الجداول إلى امتدادات من المسافات. المعلِّق الذي يصنّف تلك السلسلة إنما يصنّف أثرًا من آثار المستخرِج، والمراجِع الذي يفتح الأصل لاحقًا لا يستطيع دائمًا تحديد المقطع الذي أشار إليه النطاق.

الموضع ورقم الصفحة وبنية الإحالة

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

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

ثلاثة أنواع من المراسي

التعليق على مستند يُربط بإحدى ثلاث طرق، والاختيار يتبع السؤال لا التفضيل.

  • النطاقات النصية ترتبط بكلمات محددة وتناسب الأسئلة عن الصياغة. يحتاج النطاق إلى أن يحمل المستند طبقة نصية، وهي موجودة في ملفات PDF المولودة رقميًا ومفقودة في المسحوبات الضوئية.
  • مربعات المناطق ترتبط بإحداثيات الصفحة وتناسب الأشكال والجداول والأختام والتواقيع وكل ما لم تلتقطه طبقة نصية قط. وهي تعمل على مسح ضوئي دون أي استخراج للنص.
  • الروابط تصل بين مرساتين وتناسب بنية الإحالة. يسجّل الرابط علاقة مصنَّفة، وموجَّهة اختياريًا، بين موضعين في المستند.

خلط أنواع المراسي في مهمة واحدة أمر معتاد. مهمة التحقق من الادعاءات تضع الادعاءات نطاقاتٍ نصية، والجداول مربعاتِ مناطق، ثم تصل بينها بروابط.

إعداد ذلك في Potato

عرض pdf في Potato يرسم الملف باستخدام PDF.js ويضع سطح التعليق على الصفحة المعروضة. خيار annotation_mode يختار نوع المرساة، ويقبل span أو bounding_box أو link. وضع الروابط هو الذي يجيب عن سؤال الإحالة، وهو يسجّل المراسي والروابط تحت أسماء مخططات منفصلة كي يخرج النوعان من التصدير قابلين للتمييز.

yaml
instance_display:
  fields:
    - key: pdf
      type: pdf
      label: "Document"
      display_options:
        annotation_mode: link
        view_mode: scroll
        zoom: page-width
        enable_text_anchors: true
        enable_region_anchors: true
        anchor_schema: pdf_anchors
        link_schema: pdf_links
        anchor_labels:
          - name: claim
            color: "#dc2626"
          - name: figure
            color: "#2563eb"
        link_types:
          - name: refers_to
            directed: true
            allowed_source_labels: [claim]
            allowed_target_labels: [figure]

view_mode: scroll يكدّس الصفحات في حاوية واحدة، فيمكن رسم رابط بين الصفحة 2 والصفحة 9 ورؤيته قوسًا واحدًا. البديل المُصفّح يعرض صفحة واحدة في كل مرة، وهو أيسر قراءةً على مستند طويل لكنه يخفي الطرف البعيد من الرابط العابر للصفحات بينما يرسمه المعلِّق.

allowed_source_labels وallowed_target_labels هما ما يحوّل تعليمة في دليل إلى شيء تفرضه الواجهة. بالإعداد أعلاه، لا يمكن أن يبدأ رابط refers_to إلا من ادعاء وألا ينتهي إلا عند شكل، فلا يستطيع المعلِّق تسجيل العلاقة معكوسة. الأدلة التي تبقى حبيسة مستند يُلتزم بها على نحو متفاوت، والقيد الذي تطبّقه الأداة لا يكلّف شيئًا في فرضه.

ملف Word أو Markdown يستعمل عرض document بدلًا من ذلك، وهو يحفظ بنية العناوين والفقرات ويقبل span_target، فيستطيع مخطط نطاقات أن يشير إليه مباشرة.

المستندات الممسوحة ضوئيًا

المسح الضوئي لا يحمل طبقة نصية، فلا تجد المراسي النصية ما ترتبط به. يوجد خياران يناسبان متونًا مختلفة. التعليق بالمناطق لا يحتاج نصًا على الإطلاق ويعمل فورًا. تشغيل OCR يبني طبقة نصية على الخادم ويتيح المراسي النصية، بكلفة تمريرة بطيئة واعتماد على Tesseract.

yaml
instance_display:
  fields:
    - key: pdf
      type: pdf
      display_options:
        annotation_mode: link
        ocr: auto

auto يشغّل OCR فقط حين تعود طبقة النص المضمّنة فارغة، وهو الإعداد المناسب لمتن يخلط ملفات مولودة رقميًا بمسحوبات ضوئية. يقرأ Potato خيار ocr في وضع الروابط فقط.

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

التحقق من علامة في المصدر

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

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

قراءات إضافية