عملية تعديل أرقام تعريف OCD

مقدمة

معرّفات البيانات المدنية المفتوحة (OCD) هي تنسيق شائع للمعرّفات تحدّد المواقع الجغرافية السياسية. لإنشاء خلاصة CDF، عليك توفير هذه المُعرّفات كجزء من كيان GpUnit. يهدف هذا المستند إلى تقديم الإرشادات وأفضل الممارسات لإضافة معرّفات الوسواس القهري إلى مستودع جيت هب للبيانات المفتوحة.

كيفية تعديل معرّفات OCD في مستودع GitHub للبيانات المدنية المفتوحة

المتطلبات الأساسية

  1. فهم كيفية المساهمة في مشروع مفتوح المصدر

قبل البدء:

  1. تجهيز محطة العمل:

    شوِّق الحزمة واستنسَخها من مستودع رقم تعريف الالتقاط على الإنترنت (OCD).

  2. الاطّلاع على الريبو:

    في مستودع رقم تعريف مكتب الاتصالات التفاعلية (OCD)، يتم تمثيل كل بلد تتوفّر فيه الخدمة بدليل وملف CSV يشارك الاسم نفسه: البلد-<رمز البلد المكوّن من حرفَين> (مثال: identifiers/country-de وidentifiers/country-de.csv لألمانيا).

    داخل دليل البلد الذي تريد تعديله، يمكنك العثور على ملفات CSV (مثال) التي تتضمّن أجزاءً من ملف CSV ذي المستوى الأعلى والخاص بالبلد. وهذه هي الملفات التي تحتاج إلى تعديلها.

  3. كيفية إنشاء معرّفات جديدة لاضطراب الوسواس القهري:

    البنية والمصادر

    ألقِ نظرة على مستند البيانات المدنية المفتوحة للتعرّف على بنية معرّف OCD. وبشكل عام، يكون معرّف OCD صالحًا بالتنسيق التالي: ocd-division/country:<country_code>(/<type>:<type_id>)

    يُفضَّل تسمية المعرفات المعرّفات القياسية من ISO، أو معايير أخرى، مثل FIPS وNUTS، إذا لم يتوفر ISO.

    السياسات العامة

    في ما يلي السياسات العامة:

    التسلسل الهرمي

    يجب أن يحدّد التسلسل الهرمي لأرقام تعريف الوسواس القهري حسب المستوى الإداري الذي يتحكّم في حدود معرّفات OCD، وليس بالضرورة على علاقة الاحتواء لأرقام تعريف الوسواس القهري.

    • مثال: في الولايات المتحدة، تُستخدم الدوائر الانتخابية في انتخابات مجلس النواب الوطني، ولكن يتم تحديد حدودها من قِبل الولايات المتحدة. وبالتالي، تتراجع الدوائر الانتخابية في الولايات التالية: ocd-division/country:us/state:pa/cd:2
    • مثال: بلدية موريسفيل هي بلدية في ولاية بنسلفانيا وتقع في مقاطعة ويستمورلاند. في المقابل، تتولّى الولاية إدارة المدن، لذا فإنّ رقم تعريف OCD خارج الولاية: ocd-division/country:us/state:pa/place:murrysville يمكن استخدام تسلسل هرمي إضافي في الحالات التي يجب فيها توضيح سبب المشكلة.
    • على سبيل المثال: هناك 16 مكانًا في ولاية بنسلفانيا تسمى "بلدة فرانكلين". عادةً ما يكون لكلٍ منها معرّف الوسواس القهري (OCD ID) ocd-division/country:us/state:pa/place:franklin، ولكن ذلك سيكون غامضًا. لذا بدلاً من ذلك، يمكننا إضافة المقاطعة إلى معرف OCD حتى يحصل كل على معرّف OCD فريد. مثال: ocd-division/country:us/state:pa/county:adams/place:franklin
    Type
    • عادةً ما تكون أنواع معرّف OCD خاصة ببلدان معيّنة.

    • بعض أرقام تعريف OCD شائعة في المستودع، مثل country وregion وplace.

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

      • مثال: بالنسبة إلى منطقة المشرف 1 في الولايات المتحدة، يتم استخدام الأنواع state وdistrict وterritory.
      • مثال: بالنسبة إلى منطقة المشرف 1 في كاليفورنيا، يتم استخدام النوعين province وterritory.
      • مثال: بالنسبة إلى منطقة المشرف 1 في البرتغال، يتمّ استخدام النوعَين region وautonomous_region.
    رقم التعريف
    • بشكل عام، نريد استخدام نفس معرّف OCD لمنطقة في مختلف المناطق. عند اختيار type_id لاستخدامه مع مجموعة جديدة من معرّفات OCD، اختَر المعرّف الأكثر ثباتًا. في ما يلي بعض الأسئلة التي يجب طرحها عند تحديد المعرّف المطلوب استخدامه:
    • ما مدى احتمالية تغيير معرّف منطقة معينة بسبب إعادة التقسيم؟
    • إذا كان صاحب المنصب نفسه يشغل المنطقة س قبل تغيير حدوده وبعده من إعادة تقسيم المناطق، هل سأمثل فترة منصبه على أنها مستمرة؟
    • هل يتم تمثيل المناطق ذات الحدود أو الأسماء المتطابقة عبر إعادة التوزيع بالمعرف نفسه؟
      • مثال: في الولايات المتحدة، يتم استخدام أرقام الدوائر الانتخابية للمقاطعات الانتخابية في الولايات المتحدة لأنه على الرغم من تغيير حدودها من خلال إعادة الدوائر الانتخابية، يتم ربط الهوية بهذا الرقم إلى حد كبير، ويجب الإشارة إلى شخص بصفته يشغل منصبًا في المنصب الوظيفي لمدة X سنوات حتى عندما تتجاوز هذه المدة حدود إعادة تقسيم الدوائر الانتخابية.
      • مثال: في كندا، نريد استخدام أسماء الدوائر لتمثيل الدوائر الانتخابية الفيدرالية، لأنّه على الرغم من توفّر القوانين الانتخابية الفيدرالية، لا يكون هذا المعرّف ثابتًا، لأنّه يتم تمثيل المناطق المتطابقة على مستوى الدوائر الانتخابية بأرقام تعريف مختلفة. (مثل المنطقة 47012 قبل إعادة تقسيم الدوائر إلى 2012 ليست المنطقة نفسها بعد ذلك).
    إعادة تقسيم المناطق

    بشكل عام، عند تعديل معرّفات OCD بسبب إعادة التقسيم، استخدِم مجموعة أرقام تعريف OCD المتوفّرة بدلاً من إنشاء مجموعة جديدة.

    • إذا لم تتغيّر هوية المنطقة (رقم التعريف الرقمي والاسم وما إلى ذلك) بعد إعادة تقسيمها، استخدِم معرّف OCD نفسه.
    • لإنشاء مناطق جديدة بعد إعادة تقسيم المناطق، قم بإنشاء معرّفات OCD جديدة.
    • بالنسبة إلى المناطق التي لم تعُد متاحة، يمكنك تعديل الحقل ValidThrough للإشارة إلى تاريخ بدء تطبيق إعادة تقسيم المناطق.
    • إذا كان رقم تعريف المنطقة يعتمد على اسمها، وتمت إعادة تسميتها بعد إعادة تقسيمها، يمكنك إنشاء معرّف جديد استنادًا إلى اسم المنطقة الجديد وإضافة اسم مستعار حيث id = oldId وsameAs = newId. يؤدي ذلك إلى تحديد newId بشكل أساسي عند استخدام oldId مع newId.
    • في حال حدوث تعارض بين أرقام تعريف الوسواس القهرية السابقة، مثل رقم تعريف جديد مطابق لمعرّف تم إلغاؤه، يجب إلحاق السنة ValidFrom بالمعرّف الجديد. لمزيد من المعلومات حول سياسة التسمية هذه، يُرجى الاطّلاع على إنشاء ملفات جديدة لمعرّفات OCD-ID الحالية والتي تم إلغاؤها وإعادة تسميتها.

تعديل النسخة المحلية

ويجب إجراء أي تعديل ضمن الدليل الخاص بالبلد: ocd-repository/identifiers/country-<2 التعرّف على رمز البلد>، وإذا لم يكن هذا الرقم متوفرًا، يجب إنشاؤه.

  • إذا كان ملف CSV لمعرّفات OCD متوفّرًا حاليًا ويمثّل الحدود الانتخابية القديمة، يجب تعديل هذا الملف لتضمين الدوائر الانتخابية الجديدة. ولإجراء ذلك، أضِف عمود "ValidFrom" وعمود "ValidTo" الذي يحتوي على التاريخ بالتنسيق YYYY-MM-DD.
    • يجب أن يكون ValidFrom هو تاريخ الانتخابات للدوائر الانتخابية الجديدة، ويمكن تركه فارغًا للدوائر الانتخابية الحالية.
    • يجب أن يكون ValidTo للدوائر الانتخابية القديمة قبل يوم من الانتخابات.

تحديث الأسماء المستعارة

ويمكن استخدام الأسماء المستعارة لوضع علامات على معرّفات OCD كتمثيل لنفس المنطقة الجغرافية السياسية.

  • على سبيل المثال، إذا كان المكان مدينة ومقاطعة في الوقت ذاته، فقد يكون هذا منطقيًا.

المبادئ العامة التي نحاول الدفع بها:

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

قد يكون للتسمية المستعارة أيضًا منطقية حيث يجب إجراء تغييرات كبيرة في القوانين/التعديلات الدستورية لتقسيم الدوائر الانتخابية.

  • على سبيل المثال، تم تعيين مجلس الشيوخ والمقاطعة في مجلس الولاية على أن يكونا متماثلين بموجب القانون الدستوري.

إذا كنت بحاجة إلى ذلك، أضِف ملف CSV aliases.csv الذي نضيف فيه أرقام تعريف OCD القديمة وأسماءها المستعارة. يمكن أن تستخدم أرقام التعريف الأساسية أنواع الأقسام التي لها معنى محلي ويمكن أن يكون لها أسماء مستعارة ذات تمثيلات مألوفة أكثر (مثل، الاسم الأساسي: ocd-division/country:de/land الاسم المستعار: `ocd-division/country:de/state). راجع المشكلة رقم 170 للحصول على مزيد من المعلومات.

لتحديث ملف shortcuts.csv:

  • يجب مراعاة ترتيب الأعمدة في ملف shortcuts.csv: id،sameAs،sameAsNote
Type الوصف
المعرِّف يجب أن يحتوي هذا العمود على الأسماء المستعارة لأرقام تعريف OCD.
sameAs يجب أن يحتوي هذا العمود على معرّفات OCD التي نضيف الأسماء المستعارة لها.
sameAsNote ملاحظة تصف كيف أو سبب وجود معرِّفات متعددة للقسمة.

مثال: identifiers/country-in/aliases.csv

شغِّل النص البرمجي - compile.py

شغِّل النص البرمجي للغة بايثون في الموقع opencivicdata/ocd-division-ids/scripts:

  • عليك تحديد رمز البلد المكوّن من حرفَين كوسيطة للنص البرمجي لتحديد معرّفات البلد التي تحتاج إلى تعديل.
  • مثال: نصوص python3 النصية/compile.py in (لتعديل معرّفات الوسواس القهرية في الهند)
  • لا تحصل لغة Python 2.x على الدعم. يجب استخدام Python 3 أو الإصدارات الأحدث. يمكنك تنزيل أحدث إصدار من Python 3 من هنا.

يحصل النص البرمجي على البيانات من ملفات CSV التي تم تعديلها في الخطوة السابقة (ocd-division-ids/identifiers/country-in/*.csv)، ويتحقق من صحة القيم في الملفات، ويتحقق من أي أخطاء في البيانات (استخدام رموز خاصة، وما إلى ذلك)، أو تكرار البيانات، ويكتب معرّفات OCD الجديدة في ملف CSV للبلد ذي المستوى الأعلى.

يعرض النص البرمجي رسائل الخطأ والتحذير في حال ظهور أي مشاكل في ملفات CSV المُحدّثة. يُرجى حلّ المشاكل وتشغيل النص البرمجي مرة أخرى.

إضافة ملف تمهيدي

عند إضافة بلد جديد أو مستوى جديد من التغطية (على سبيل المثال، كان لدينا في السابق رقم تعريف الوسواس القهري (OCD ID) للبلد فقط، ولكننا نضيف الآن المناطق الإدارية من المستوى الأول)، أضِف ملف README.md أو عدِّله. ويجب أن يحتوي هذا الملف على مخطط تفصيلي سريع للجغرافيا السياسية، بما في ذلك:

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

إنشاء طلب سحب

لإنشاء طلب سحب، اتّبِع الإرشادات التالية:

  • بعد اكتمال هذه العملية بدون أخطاء، تحقَّق من ملف .csv المكتوب حديثًا للمستوى الأعلى للبلد-<2 letter countrycode>> للتأكّد من أنّه يتضمّن الآن المجموعة المُحدّثة/الجديدة من معرّفات OCD.
  • أنشئ طلب سحب وأضِف مراجعين. يجب أن يتضمن طلب السحب هذا تعديلات تم إجراؤها في جميع ملفات CSV التالية.
  • ملفات CSV في الدليل الخاص بالبلد. مثال
  • ملف .csv ذي المستوى الأعلى والذي يتألف من حرفَين ورمز البلد> رمز البلد. مثال
  • عندما تتم مراجعة طلب السحب والموافقة عليه من قِبل اثنين من المسؤولين في البلد، يتم دمجه من قبل أحد مالكي/المتعاونين في الحزمة.