ভূমিকা
ওপেন সিভিক ডেটা আইডেন্টিফায়ার (ওসিডি আইডি) হল একটি সাধারণ শনাক্তকারী ফর্ম্যাট যা রাজনৈতিক ভৌগলিক সংজ্ঞা দেয়। একটি CDF ফিড তৈরি করতে, আপনাকে একটি GpUnit সত্তার অংশ হিসাবে এই শনাক্তকারীগুলি প্রদান করতে হবে৷ ওপেনসিভিকডেটা গিথুব রিপোজিটরিতে ওসিডি আইডি যোগ করার জন্য নির্দেশিকা এবং সর্বোত্তম অনুশীলন প্রদান করা এই নথির লক্ষ্য।
ওপেন সিভিক ডেটা গিটহাব রিপোজিটরিতে কীভাবে ওসিডি আইডি আপডেট করবেন
পূর্বশর্ত
শুরু করার আগে:
আপনার ওয়ার্কস্টেশন প্রস্তুত করুন:
ওসিডি আইডি রেপো থেকে প্যাকেজটি কাঁটা ও ক্লোন করুন।
রেপোর সাথে নিজেকে পরিচিত করুন:
OCD আইডি রেপোতে , প্রতিটি সমর্থিত দেশকে একটি ডিরেক্টরি এবং একটি CSV ফাইলের সাথে উপস্থাপন করা হয় যা একই নাম ভাগ করে: দেশ-<2 অক্ষরের দেশের কোড> (উদাহরণ: জার্মানির জন্য
identifiers/country-de
এবংidentifiers/country-de.csv
)আপনি যে দেশের ডিরেক্টরীটি পরিবর্তন করতে চান তার ভিতরে, আপনি CSV ফাইলগুলি ( উদাহরণ ) খুঁজে পেতে পারেন যা শীর্ষ-স্তরের, দেশ-নির্দিষ্ট CSV ফাইলের অংশগুলি অন্তর্ভুক্ত করে৷ এই ফাইলগুলি আপনাকে পরিবর্তন করতে হবে।
নতুন ওসিডি আইডি কীভাবে তৈরি করবেন:
কাঠামো এবং উত্স
OCD আইডি কাঠামোর সাথে নিজেকে পরিচিত করতে ওপেন সিভিক্স ডেটা ডকুমেন্টটি একবার দেখুন। সাধারণভাবে, একটি বৈধ OCD আইডি নিম্নলিখিত বিন্যাসে থাকে:
ocd-division/country:<country_code>(/<type>:<type_id>)
আইডেন্টিফায়ার নামকরণ ISO থেকে মানক শনাক্তকারীকে পছন্দ করে, বা অন্যান্য মান, যেমন FIPS এবং NUTS, যদি ISO উপলব্ধ না হয়।
সাধারণ নীতি
নিম্নলিখিত সাধারণ নীতিগুলি:
অনুক্রম
OCD আইডি শ্রেণীবিন্যাস অবশ্যই প্রশাসনিক স্তরের দ্বারা নির্দেশিত হবে যা OCD আইডিগুলির সীমানা নিয়ন্ত্রণ করে, অগত্যা OCD আইডিগুলির কন্টেনমেন্ট সম্পর্ক নয়৷
- উদাহরণ: মার্কিন যুক্তরাষ্ট্রে, জাতীয় প্রতিনিধি পরিষদের নির্বাচনে কংগ্রেসের জেলাগুলি ব্যবহার করা হয়, তবে তাদের সীমানা রাজ্যগুলি দ্বারা নির্ধারিত হয়। সুতরাং কংগ্রেসের জেলাগুলি রাজ্যগুলির মধ্যে ঝুলে আছে:
ocd-division/country:us/state:pa/cd:2
- উদাহরণ: Murrysville হল পেনসিলভানিয়ার একটি পৌরসভা এবং এটি ওয়েস্টমোরল্যান্ড কাউন্টির মধ্যে রয়েছে। যাইহোক, শহরগুলি রাজ্য দ্বারা নিয়ন্ত্রিত হয়, তাই OCD আইডি রাজ্যের বন্ধ হয়ে যায়:
ocd-division/country:us/state:pa/place:murrysville
অতিরিক্ত শ্রেণিবিন্যাস ব্যবহার করা যেতে পারে যেখানে দ্ব্যর্থতা নিরসন প্রয়োজন। - উদাহরণ: পেনসিলভানিয়ায় "ফ্রাঙ্কলিন টাউনশিপ" নামে 16টি স্থান রয়েছে। সাধারণত, এগুলোর প্রত্যেকের OCD আইডি
ocd-division/country:us/state:pa/place:franklin
থাকবে, কিন্তু সেটা হবে অস্পষ্ট। সুতরাং পরিবর্তে, আমরা OCD আইডিতে কাউন্টি যোগ করতে পারি যাতে প্রতিটি তার নিজস্ব অনন্য OCD আইডি পায়। যেমন:ocd-division/country:us/state:pa/county:adams/place:franklin
টাইপ
OCD আইডি প্রকারগুলি সাধারণত দেশগুলির জন্য নির্দিষ্ট।
কিছু OCD আইডি
country
,region
এবংplace
মতো ভান্ডার জুড়ে সাধারণ।যাইহোক, সাধারণ নির্দেশিকা হল আরও নির্দিষ্ট উপায়ে প্রকারগুলি নির্দিষ্ট করার পক্ষে ভুল করা যা সেই দেশের প্রেক্ষাপটে অর্থবহ হবে।
- উদাহরণ: মার্কিন যুক্তরাষ্ট্রে প্রশাসক এলাকা 1 এর জন্য,
state
,district
এবংterritory
ব্যবহার করা হয়। - উদাহরণ: CA-তে প্রশাসক এলাকা 1-এর জন্য,
province
এবংterritory
ব্যবহার করা হয়। - উদাহরণ: PT-তে অ্যাডমিন এরিয়া 1-এর জন্য,
region
এবংautonomous_region
ব্যবহার করা হয়।
- উদাহরণ: মার্কিন যুক্তরাষ্ট্রে প্রশাসক এলাকা 1 এর জন্য,
আইডি
- সাধারণভাবে, আমরা রিডিস্ট্রিক্টিং জুড়ে একটি জেলার জন্য একই OCD ID ব্যবহার করতে চাই। OCD আইডিগুলির একটি নতুন সেটের জন্য ব্যবহার করার জন্য একটি
type_id
নির্বাচন করার সময়, সবচেয়ে স্থিতিশীল একটি চয়ন করুন৷ কোন শনাক্তকারী ব্যবহার করতে হবে তা নির্ধারণ করার সময় কিছু প্রশ্ন জিজ্ঞাসা করতে হবে: - রিডিস্ট্রিক্টিংয়ের কারণে একটি প্রদত্ত জেলার সনাক্তকারীর পরিবর্তন হওয়ার সম্ভাবনা কতটা?
- যদি একই অফিসহোল্ডার জেলা X এর আগে এবং পরে তার সীমানা পুনর্বিন্যাস থেকে পরিবর্তিত হয়, তাহলে আমি কি তাদের মেয়াদকে অবিচ্ছিন্ন হিসাবে উপস্থাপন করব?
- অভিন্ন সীমানা বা পুনঃবিভাগ জুড়ে নাম সহ জেলাগুলি কি একই শনাক্তকারী দ্বারা উপস্থাপিত হয়?
- উদাহরণ: মার্কিন যুক্তরাষ্ট্রে, কংগ্রেসনাল ডিস্ট্রিক্ট নম্বরগুলি ইউএস হাউস ডিস্ট্রিক্টের জন্য ব্যবহার করা হয় কারণ যদিও তাদের সীমানাগুলি পুনঃবিভাগের সাথে পরিবর্তিত হয়, তবে পরিচয়টি সংখ্যার সাথে দৃঢ়ভাবে সংযুক্ত থাকে এবং আপনি কাউকে X বছরের জন্য Nth আসনের পদে অধিষ্ঠিত হিসাবে উল্লেখ করবেন এমনকি যখন বছরের যে পরিমাণ পুনর্বিন্যাস সীমানা অতিক্রম করে।
- উদাহরণ: কানাডায়, আমরা ফেডারেল নির্বাচনী জেলাগুলির প্রতিনিধিত্ব করার জন্য জেলার নাম ব্যবহার করতে চাই কারণ যদিও ফেডারেল নির্বাচনী কোড বিদ্যমান, এই শনাক্তকারীটি স্থিতিশীল নয় কারণ পুনঃবিভাগ জুড়ে অভিন্ন জেলাগুলিকে বিভিন্ন আইডি দিয়ে উপস্থাপন করা হয়। (যেমন জেলা 47012 এর আগে 2012 পুনঃবিভাগের পরে একই জেলা নয়)।
রিডিস্ট্রিক্টিং
সাধারণত, পুনর্বিন্যাস করার কারণে ওসিডি আইডি আপডেট করার সময়, একটি নতুন সেট তৈরি করার পরিবর্তে বিদ্যমান ওসিডি আইডিগুলির সেট ব্যবহার করুন।
- যদি একটি জেলার পরিচয় (সাংখ্যিক আইডি, নাম, ইত্যাদি) পুনর্বিন্যাস করার পরে পরিবর্তিত না হয়, তাহলে একই OCD ID ব্যবহার করুন৷
- পুনঃবিভাগের পর নতুন জেলা তৈরির জন্য, নতুন ওসিডি আইডি তৈরি করুন।
- জেলাগুলির জন্য যেগুলি আর বিদ্যমান নেই, পুনঃবিভাগ কার্যকর হওয়ার তারিখের সাথে
ValidThrough
ক্ষেত্রটি আপডেট করুন৷ - যদি একটি জেলার আইডি তার নামের উপর ভিত্তি করে হয়, এবং পুনঃবিভাগ করার পরে জেলার নাম পরিবর্তন করা হয়, নতুন জেলার নামের উপর ভিত্তি করে একটি নতুন আইডি তৈরি করুন এবং একটি উপনাম যোগ করুন যেখানে
id = oldId
এবংsameAs = newId
। এটি নতুন আইডিকে নতুন আইডিতে পুরানো আইডি মানচিত্রের ব্যবহার হিসাবে ক্যানোনিকালাইজ করে। - যে ক্ষেত্রে ঐতিহাসিক ওসিডি আইডিগুলির মধ্যে সংঘর্ষ হয়, যেমন একটি নতুন আইডি একটি বিলুপ্ত আইডির সাথে অভিন্ন, নতুন আইডিতে
ValidFrom
year যুক্ত করুন৷ এই নামকরণ নীতি সম্পর্কে আরও জানতে, বর্তমান, বিলুপ্ত এবং নতুন নামকরণ করা OCD-ID-এর জন্য নতুন ফাইল তৈরি করুন দেখুন।
- উদাহরণ: মার্কিন যুক্তরাষ্ট্রে, জাতীয় প্রতিনিধি পরিষদের নির্বাচনে কংগ্রেসের জেলাগুলি ব্যবহার করা হয়, তবে তাদের সীমানা রাজ্যগুলি দ্বারা নির্ধারিত হয়। সুতরাং কংগ্রেসের জেলাগুলি রাজ্যগুলির মধ্যে ঝুলে আছে:
আপনার স্থানীয় কপি আপডেট করুন
যেকোনো আপডেট দেশের নির্দিষ্ট ডিরেক্টরির অধীনে করা দরকার: ocd-repository /identifiers/country-<2 অক্ষরের দেশ কোড>। যদি একটি বিদ্যমান না থাকে, এটি তৈরি করুন.
- যদি OCD IDs CSV ফাইলটি আগে থেকেই থাকে এবং সেগুলি পুরানো নির্বাচনী সীমানাকে প্রতিনিধিত্ব করে, তাহলে নতুন নির্বাচনী এলাকা অন্তর্ভুক্ত করতে আপনাকে এই ফাইলটি আপডেট করতে হবে। এটি করার জন্য, একটি
ValidFrom
এবং একটিValidTo
কলাম যোগ করুন যাতে YYYY-MM-DD ফর্ম্যাটে তারিখ রয়েছে৷-
ValidFrom
নতুন নির্বাচনী নির্বাচনের তারিখ হওয়া উচিত। এটি ইতিমধ্যে বিদ্যমান নির্বাচনী এলাকার জন্য ফাঁকা রাখা যেতে পারে। -
ValidTo
নির্বাচনী এলাকার জন্য নির্বাচনের আগের দিন হতে হবে।
-
উপনাম আপডেট করুন
একই টুকরো রাজনৈতিক ভূগোলের উপস্থাপনা হিসাবে OCD আইডি চিহ্নিত করার জন্য অ্যালিয়াসিং ব্যবহার করা যেতে পারে।
- উদাহরণস্বরূপ, যদি একটি স্থান একটি শহর এবং একটি কাউন্টি উভয়ই হয় তবে এটি অর্থপূর্ণ হতে পারে।
আমরা যে সাধারণ নীতিগুলি চাপানোর চেষ্টা করছি:
- রাজনৈতিক ভূগোলের দুটি অংশ যদি সমগোত্রীয় হয়, তবে তাদের একে অপরের সাথে নামকরণ করা উচিত নয়। যেমন: বৃহৎ মার্কিন কংগ্রেসে রাজ্যগুলির সাথে মিল রয়েছে, কিন্তু বর্তমান মার্কিন জনসংখ্যার কারণে এটি ঘটনাক্রমে ঘটেছে।
জেলাগুলিকে বিভক্ত করার জন্য আইন/সাংবিধানিক সংশোধনীতে উল্লেখযোগ্য পরিবর্তনের প্রয়োজন হলে এলিয়াসিংও অর্থপূর্ণ হতে পারে।
- উদাহরণস্বরূপ, ওয়াশিংটন স্টেট সিনেট এবং স্টেট হাউস ডিস্ট্রিক্ট সাংবিধানিক আইন দ্বারা একই হতে সেট করা হয়েছে।
আপনার যদি প্রয়োজন হয়, একটি CSV ফাইল যোগ করুন aliases.csv
যাতে আমরা পুরানো OCD ID এবং তাদের উপনাম উভয়ই যোগ করি। ক্যানোনিকাল আইডিগুলি এমন বিভাজন প্রকারগুলি ব্যবহার করতে পারে যার স্থানীয় অর্থ রয়েছে এবং আরও পরিচিত উপস্থাপনা সহ উপনাম থাকতে পারে (যেমন, ক্যানোনিকাল: ocd-division/country:de/land
alias: `ocd-division/country:de/state)। আরও তথ্যের জন্য সংখ্যা #170 দেখুন।
aliases.csv ফাইল আপডেট করতে:
- aliases.csv ফাইলে কলামের ক্রমকে সম্মান করুন:
id
,sameAs
,sameAsNote
টাইপ | বর্ণনা |
---|---|
আইডি | এই কলামে অবশ্যই ওসিডি আইডির উপনাম থাকতে হবে। |
একই রকম | এই কলামে অবশ্যই প্রকৃত OCD ID থাকতে হবে যার জন্য আমরা উপনাম যোগ করি। |
sameAsNote | একটি নোট যা বর্ণনা করে যে কীভাবে বা কেন বিভাজনের একাধিক শনাক্তকারী রয়েছে। |
উদাহরণ: identifiers/country-in/aliases.csv
স্ক্রিপ্ট চালান - compile.py
Opencivicdata/ocd-division-ids/scripts অবস্থানে পাইথন স্ক্রিপ্ট চালান:
- আপনাকে স্ক্রিপ্টের আর্গুমেন্ট হিসাবে 2 অক্ষরের দেশের কোড নির্দিষ্ট করতে হবে যাতে এটি জানতে পারে কোন দেশের শনাক্তকারীদের একটি আপডেট প্রয়োজন।
- উদাহরণ: python3 scripts/compile.py in (ভারতের নির্বাচনী এলাকার OCD ID আপডেট করার জন্য)।
- Python 2.x সমর্থন পায় না। পাইথন 3 বা পরবর্তী সংস্করণ ব্যবহার করতে হবে। আপনি এখানে পাইথন 3 এর সর্বশেষ সংস্করণ ডাউনলোড করতে পারেন।
স্ক্রিপ্টটি পূর্ববর্তী ধাপে আপডেট করা CSV ফাইলগুলি থেকে ডেটা নেয় (ocd-division-ids/identifiers/country-in/*.csv), ফাইলের মান যাচাই করে, ডেটা ত্রুটির জন্য পরীক্ষা করে (বিশেষ অক্ষরের ব্যবহার, ইত্যাদি) ), বা ডেটা ডুপ্লিকেশন, এবং নতুন OCD আইডিগুলি শীর্ষ স্তরের দেশের CSV ফাইলে লেখে।
আপডেট করা CSV ফাইলগুলিতে কোনো সমস্যা দেখা দিলে স্ক্রিপ্ট ত্রুটি এবং সতর্কতা বার্তাগুলিকে ফেলে দেয়৷ সমস্যাগুলি সমাধান করুন এবং স্ক্রিপ্টটি আবার চালান।
একটি রিডমি ফাইল যোগ করুন
আপনি যখন একটি নতুন দেশ বা কভারেজের একটি নতুন স্তর যুক্ত করেন (উদাহরণস্বরূপ, আগে আমাদের শুধুমাত্র দেশের জন্য একটি OCD আইডি ছিল, কিন্তু এখন আমরা প্রথম-স্তরের প্রশাসনিক জেলাগুলি যোগ করছি), একটি README.md ফাইল যোগ করুন বা আপডেট করুন৷ এই ফাইলটিতে অবশ্যই রাজনৈতিক ভূগোলের একটি দ্রুত রূপরেখা থাকতে হবে, যার মধ্যে রয়েছে:
- আমরা যে প্রকারগুলি ব্যবহার করব এবং তাদের ভূমিকা (যেমন "
districts
এই দেশের প্রথম-স্তরের প্রশাসনিক এলাকা"); - প্রকারের মধ্যে সম্পর্ক (যেমন "প্রতি-জেলা ভিত্তিতে আইন প্রণয়ন করা হয় এবং জেলার সীমানা অতিক্রম করে না");
- যেকোন উল্লেখযোগ্য ব্যতিক্রম (যেমন, "একটি আইনী জেলা আছে সমস্ত বিদেশী নাগরিকদের কভার করার জন্য"); এবং
- একজন পর্যালোচক বা ব্যবহারকারীর জন্য প্রসঙ্গ সরবরাহ করতে সাহায্য করার জন্য যেকোন দরকারী উইকিপিডিয়া পাতার লিঙ্ক।
একটি টান অনুরোধ তৈরি করুন
একটি পুল অনুরোধ তৈরি করতে, নিম্নলিখিত নির্দেশিকা ব্যবহার করুন:
- এই প্রক্রিয়াটি ত্রুটি ছাড়াই শেষ হয়ে গেলে, নতুন লেখা শীর্ষ স্তরের দেশ-<2 অক্ষরের দেশের কোড>.csv ফাইলটি পরীক্ষা করে নিশ্চিত করুন যে এটিতে এখন OCD আইডিগুলির আপডেট/নতুন সেট অন্তর্ভুক্ত রয়েছে।
- একটি টান অনুরোধ তৈরি করুন. এবং পর্যালোচক যোগ করুন। এই পুল অনুরোধে অবশ্যই নিম্নলিখিত CSV ফাইলগুলির মধ্যে করা পরিবর্তনগুলি অন্তর্ভুক্ত করতে হবে৷
- দেশের নির্দিষ্ট ডিরেক্টরিতে CSV ফাইল। উদাহরণ
- শীর্ষ স্তরের দেশ-<2 অক্ষরের দেশের কোড>.csv ফাইল। উদাহরণ
- যখন পুল অনুরোধ পর্যালোচনা করা হয় এবং দেশের দুই প্রতিশ্রুতিকার দ্বারা অনুমোদিত হয় , তখন এটি প্যাকেজের মালিক/সহযোগীদের একজনের দ্বারা একত্রিত হয়।