OSM Fa Fixer python script

و دقیقا اینجا جاییه که باید به سراغ چیزی مثل سایت مپ رولت رفت تا این ها دونه به دونه بررسی بشن.

سلام.
من موافق اجرای اسکریپت هستم، چون از اونجایی که به صورت قرارداری، تگ
name
توی ایران، مخصوص اسم فارسی هست، لازمه این کار انجام بشه تا اعداد هم به حالت فارسی دربیان. هم اصول رعایت میشه، هم نظم و یکپارچگی در ظاهر (تایل ها) و باطن (اصل داده ها)ی نقشه بوجود میاره
فکر میکنم مشکل کیبوردهای کاربرها اونقدری مهم نباشه، چون خودم توی جستجوی سایت هم دیدم که وقتی عدد فارسی سرچ میکنم،، عوارضی هم با عدد انگلیسی برای من پیدا میکنه.
ضمن اینکه من هنوز مطمئن نیستم که درصد قابل توجهی از کاربرها، کیبورد غیراستاندارد داشته باشن.

لطفاً به این مثال توجه کنین:

فرض کنید یک کاربر عرب به قصد سفر به مشهد میرود و در هتل اعیان ساکن میشود. فرض کنید این هتل روی نقشه نیست و این کاربر میخواهد آن را ثبت کند. تگگذاری او اینطور است:

name = هوتيل أعيان

اگر به حروف این کلمه دقت کنیم:

ه و ت ي ل أ ع ي ا ن

دو تا ي و یک أ داره

اسکریپت ما يها و حتی أ را هم اصلاح میکند و حالا تگگذاری اینطور میشود:

name = هوتیل اعیان

آیا جای کلمهٔ هوتیل در تگ نیم است؟ یا میبایست در تگ نیم:عر قرار بگیرد؟

اگر موافقید که جای کلمهٔ **هوتیل ** در تگ **نیم:عر ** است، پس این اصلاح صرفاً سرنخ را از ما گرفته و این دادهٔ غیراصولی تا مدت بیشتری آنجا میماند

حدس میزنم از این دست مثال در شهرهای مذهبی زیاد باشه. مثلا برای خانه های مسافرپذیر یا مسافرخانه ها و…

مشابه این مثال را میتونیم برای ارقام چهار، پنج و شش عربی بزنیم. یعنی ممکن است در حالی ما این ارقام را فارسی میکنیم که منظور کاربر ایجادکنننده، واقعا ارقام عربی بوده و صرفا کلید تگ را اشتباه انتخاب کرده

سلام به همه ی دوستان عزیز و ممنون از نظرات زیبا و تخصصیشون و از اینکه اینقدر زیبا و موشکافانه مشکلات رو بررسی کردن و من و دیگر دوستان رو هم در جریان قرار دادن، واقعاً استفاده بردیم.
بعد از خوندن کلیه بحثها دلایلی که برای اجرا نشدن این اسکریپت عنوان شده رو محکمتر و منطقی تر از دلایلی که برای اجرا شدنش عنوان شده میبینم و با دوستان مخالف اجرا شدن این اسکریپت موافقترم. اگر بشه که این اسکریپت ارتقا پیدا کنه بصورتی که خطاهایی که دوستان مطرح کردن دیگه توش اتفاق نیوفته هیچ کس با اجرا شدن مجددش مخالفتی نخواهد داشت مگر اینکه دوباره خطای دیگه ای دیده بشه که باز هم باید تا حل کردن و ارتقاء مجدد اسکریپت از اجرا کردنش خودداری کرد.
بازم ممنون از این بحث مفید.

سوشا جان همونطور که قبلا صحبت کردیم ، مثالی که برای مشکل
B13
زدی قبلا در اسکریپت برطرف شده و حتی موارد بیشتری رو من در نظر دارم که اسکریپ بهبود پیدا کنه تا اینطور مشکلات جلوگیری بشه.
و این قبیل موارد قابل تشخیص و تفکیک هست انقدر با اطمینان نگید که نمیشه.

ممنون از نظرتون. اینگونه موارد رو ما میتونیم توی اسکریپت یه لیست از کلمات کلیدی و پر تکرار عربی تهیه کنیم و به برنامه بگیم اگر این کلمات داخل اسم بود به اون اسم دست نزنه و تغییری ایجاد نکنه. تا حد زیادی مشکلات برطرف میشه.
و حالا چیزی که من میخوام اشاره کنم در جواب به شما اینکه که درسته اسکریپت اون کلمات عربی رو تغییر میده اما در واقعا مشکلی ایجاد نمیکنه و کاربرهای بعدی به راحتی میتونند این موارد رو تشخیص بدن و اصلاحات لازم رو انجام بدهند. این رو میگم چون دوستان قبلا گفتند که با تغییر این کلمات ، این مشکلات پنهان میشه و دیگه قابل پیدا کردن نیست که کاملا این طرز فکر اشتباهه.
از طرفی هم همونطور که توی صفحه ویکی مربوط به اسکریپت ها و ربات ها نوشته ، اگر مشکلی به صورت سیستماتیک برای داده ها پیش بیاد ، به صورت سیستماتیک هم قابل اصلاح هست. فرضا اگر اسکریپت ما کلمه “هوتیل” رو تغییر داد و ما بعدا متوجه این موضوع شدیم ، میتونید به یه حرکت ساده حتی بدون نیاز به برنامه نویسی تمام این موارد رو پیدا و اصلاح کنیم. پس به نظرم بذارید برنامه اجرا بشه و از مزیت هاش بهرمند بشیم و این مشکلات جزئی که پیش میاد رو (که اگه پیش بیاد که کم هم هستند) فعلا نادیده بگیریم و به مرور توسط کاربر ها و خودمون توسط برنامه برطرف کنیم…

سلام آقا کیارش عزیز.
بله همونطور که قبلا داخل گروه تلگرام گفتم این موارد تا حد زیادی قابل اصلاح هستش داخل برنامه.
نظر شما در رابطه با جدا کردن برنامه تبدیل اعداد و حروف عربی چیه ؟
با تبدیل اعداد موافقید یا کلا با هر دو مورد مخالف ؟
من خیلی دوست دارم نظره جامعه کشورهای دیگه رو بدونم. افرادی مثل کلادیوس و اندی و …

سلام نوید جان
با جدا شدنشون موافقم و فکر میکنم با هر اسکریپت نباید بیشتر از یک کار رو انجام داد. در کل اگر مشکلاتی که دوستان مطرح کردن قابل رفع باشه و بشه اسکریپت رو ارتقاء داد با اجرا شدنش مشکلی ندارم و فکر میکنم اگه بشه یک ادیت رو بدون نقص بصورت اتوماتیک انجام داد لزومی نداره که بصورت دستی انجامش بدیم. ولی در حال حاضر با توجه به بحثهای صورت گرفته حق رو به دوستان مخالف میدم و بنظرم اول باید این مشکلاتی که دوستان مطرح کردن مرتفع بشه و بعد اسکریپت اجرا بشه.

اگر این مشکل برطرف شده من دلیلی برای مخالفت با تبدیل ارقام انگلیسی نمیبینم و مخالف نیستم.

راهکار خوبیه. اما تا الان چندین بار ربات اجرا شده. پیشنهاد میکنم فعلا دست نگه داریم و تغییرات این چند مرتبه را یه ارزیابی بکنیم. مثلا اگه کسی بتونه از کل تغییراتی که اسکریپت تا به حالا روی اسامی انجام داده یه جدول در بیاره، مثلا اینطوری:

که مرورش راحت انجام بشه، من خودم قول میدم جدول رو مرور کنم و موارد اشتباه رو جدا کنم و بهتون اعلام کنم. اون موقع با دید شفافتر حتی میشه راجع به سود و زیانش هم صحبت کرد.

من معتقدم باعث مخفی شدن مشکل میشه. یعنی گرهی که با دست باز میشه را میسپاریم به دندان.

وقتی میتونیم با یک کوئری ساده همه کلمه های دارای ي و ك و ارقام عربی را دربیاریم و در اختیار کاربر بذاریم چرا این معیار را از خودمون بگیریم تا کاربران بخواهند به صورت تصادفی در ویرایشهاشون یا وقتی نقشه را مرور میکنن با چشم پیداشون کنن؟

و مزیت دیگه هم که قبلا گفتم، چهار نفر را به راه راست هدایت میکنیم که صفحه کلیدشون را اصلاح کنن یا اصلا اینطوری بگم، بعد از مکاتبه با کاربران مربوطه، متوجه میشیم که در بعضی سیستمها امکان اصلاح صفحه کلید نیست و همین اسکریپت چاره کار ماست.

بله، اما نگفته مجاز هستید با آگاهی به اشتباه، اشتباه سیستماتیک بکنید.

ممکنه قابل اجرا باشه. اما ما الان از اشتباه های اسکریپت اطلاع کامل نداریم. من به جز اون سه مورد چند مورد دیگه هم قبلا دیدم، ولی خیلی سخته بخوام دونه دونه در تاریخچه سایت دنبالشون بگردم.
اگر اون جدولی که ابتدای این پست گفتم را بتونیم تهیه کنیم، میشه راحت تر ایرادهای اسکریپت را درآورد و قضاوت کرد

هنوز اون مورد نامهایی که ممکنه واقعا عربی باشن و نباید عوض بشن پابرجاست.
راه حلی براش دارید؟

Hi all,

In general, as long as a script satisfies “Automated Edits code of conduct” https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct and it helps the data integrity, can be helpful. Above detailed discussions explains how it may cause some minor damages that might remain invisible for a long time, looks like there can be solutions for that, like that report as a table of changes which needs to be investigated by human editors, or dividing it in to two separate scripts.
Thank you all for these informative discussions and special thank to Navid for this script and his professional approach to the issue.

Ebrahim

نوید جان، طی درخواستت مبنی بر این که توی اسکریپت بهت کمک بدم(در مورد راهحلی که بتونه مشکل رو حل کنه)، به این فکر کردم که از هر دو ابزار برای این موارد استفاده کنیم.

یعنی هم از مپ رولت بهره ببریم و هم از اسکریپت.

در مورد خود اسکریپت، چند بخش کردنش که کاملا لازم الجراست. یعنی همونطور که کیارش گفت، اسکریپت باید یه کار رو انجام بده و برای کارهای دیگه باید اسکریپت دیگه ای ایجاد بشه.

لطفا برای اسکریپت یک صفحه گیتهاب ایجاد کنید و یا اگر تمایل دارید من صفحه رو در ریپوزیتوری او اس ام ایران ایجاد کنم، اونجا اسکریپت رو به چند بخش میتونیم تقسیم کنیم، مشکلاتش رو با هم حل کنیم و یا از افراد دیگه ای بخوایم مشارکت کنن.

در همونجا لیستی از واژه هایی که نباید تغییر پیدا کنن رو هم با هم مینویسیم.

ولی در صورت بروز هر گونه مشکل و یا گزارشی در این رابطه، اسکریپت به هیچ وجه نباید تا موقع حل مشکل اجرا بشه.

من بعد از هر اجرا، وظیفه بررسی تغییرات ربات رو برعهده میگیرم تا اطمینان پیدا کنم مشکلی نباشه.

اسکریپت حداقل باید هر یک ماه ایجاد بشه و صفحه ویکی کاملی رو هم داشته باشه.

میتونیم همین روند رو برای کلیه ی اسکریپت هایی که قراره روی نقشه ایران کار کنن داشته باشیم.

اگر نکته ای از قلم انداختم لطفا بهم بگو تا نظرم رو در بارش بگم. چون احساس میکنم شاید به بعضی از سوالاتت جواب نداده باشم.

موفق باشی

سلام سوشا. ممنون از این پست.
من همین الان دارم روی اسکریپت کار میکنم و به دو بخش تقسیمش کردم و روی بخش تبدیل اعداد خیلی کار کردم و خوب شده. به زودی باهات صحبت میکنم که روی گیت هاب بذاریمیش. باید بهم دسترسی بدی فکر کنم از گیت هاب ایران که گفتی حالا اینو صحبت میکنیم سره فرصت.
فرمودی که هم از مپ رولت استفاده کنیم و هم اسکریپت ولی نگفتی که از مپ رولت چه استفاده ای میخوای بکنی در کناره برنامه.
مرسی از کمکت.

یک نکته ای رو هم نباید نادیده گرفت. اصطلاح «ی» فارسی و «ي» عربی جای بحث داره. نباید شکل ظاهری حروف که وابسته به فونت هستند رو معیار قرار داد و فکر میکنم کد اسکی کاراکتر باید مبنا باشه در مورد اینکه کدوم حرف فارسی حساب میشه.
البته من وارد نیستم و دوستان بیشتر از من در جریان هستند فقط جهت یادآوری گفتم که اشتباه نشه.
در مورد حرف کاف هم همین موضوع صدق میکنه.

سلام به همه دوستان

آقا نوید من یه بررسی اجمالی روی این بسته های تغییر کردم که حدود ۱۴٬۰۰۰ تغییر هستن.

  • عمدهٔ مشکلات، تبدیل ارقام انگلیسی در عبارتهای انگلیسیه. (لیست این موارد) مثلا

way/565407682	block ۲ negin park
way/556221141	C۱۴
way/659910855	Kangan ۵th
way/88807959	wdhn ۱۷
way/383166306	Mehr ۱۱
way/670233150	falake ۱
way/355427286	کنار گذر محله C۱
way/539623157	مجتمع مسکونی مینو ۳ F-۲۱

  • بقیه مربوط به عربی میشه و در بین گره ها شایعه (لیست این موارد) و راه ها این مشکل را میشه گفت ندارن.

  • جالب اینکه حدود ۸۰٪ تغییرات روی معابر انجام شده. و میتونم بگم که با رفع مشکل انگلیسی، اصلاح معابر هیچ مشکل خاصی پیش نمیاره. یعنی ۸۰ درصد عارضه هایی که اصلاح میشن. چون عمدتا کاربران بومی ایجادشون میکنن.

  • از موارد باقیمانده، ده درصد باقیمانده راه ها و ده درصد هم گره ها هستن. که میشه تگ هایی رو که معمولا کاربران بومی ایجاد میکنن از این ۲۰٪ درآورد و تغییرشون داد، مثل تگ place. بقیه را بهتره دستی انجام بدیم و مثلا از کنارش به موضوع صفحه کلید کاربران هم بپردازیم.

  • در بعضی بسته های تغییر یکسری عارضه ها حذف شده که فکر کنم نباید مخلوط با این تغییرات باشه.

  • اگه اندازهٔ بسته های تغییر از یه حدی بالاتر نره، برای بررسی بهتره. مثلا نهایت ۵۰۰ تغییر در هر بسته یا چیزی در همین حدود

با سپاس از صبر و شکیبایی شما

ما مگه اصلا تو فارسی ك , ي داریم؟ بحث فونت نیست و برنامه معیار رو بر اساس فونت نمیذاره و در واقع انکودینگ کاراکتر ها رو بررسی میکنه. اگه من اشتباه میکنم و نکته ای رو اطلاع ندارم بهم گوش زد کنید لطفا.

سلام ایمان جان. این مشکل اوایل وجود داشت و الان توی برنامه برطرف شده هستش و دیگه پیش نمیاره همچین مشکلی رو. این مواردی هم که زحمت کشیدی لیست کردی یه برنامه بذاریم به صورت دستی اصلاح کنیم.

در رابطه با این موارد لیست رو دیدم ، برای حل این مشکلات باید یه لیست از کلمات کلیدی تهیه کنیم و تو دل برنامه بذارم که این موارد رو تغییری نده که از لیستی که شما لطف کردی گذاشتی میشه بهره برد و این کار خواهیم کرد.

مشکل انگلیسی منظورت اعداد انگلیسی هستش دیگه؟ بله دقیقا اکثرا بخاطر شماره گذاری خیابون ها هستش که درصد بیشتر مثلا همون ۸۰٪ که شما گفتی برای مسیر ها هستش. و بله خدا رو شکر توی موضوع تبدیل اعداد تا جایی که میدونیم مشکل خاصی نداریم. با این حال در حال حاضر من دارم روی برنامه تبدیل اعداد کار میکنم (جدا کردم برنامه ها رو) و بهبود های زیادی روش دادم که به زودی منتشر میشه.

اینو نفهمیدم منظورت چیه دقیقا ببخشید.

مطمدنی کل عارضه حذف شده توی این چنجست ها؟! احتمالا موقع آپلود تغییرات با برنامه
josm
ولیدیتور برنامه خطایی رو پیغام داده و من به صورت دستی اصلاحاتی رو افزون بر اصلاحت اسکریپت انجام دادم و بعد آپلود کردم که احتمالا علت اینکه بعضی عاضه ها پاک شده این هستش. اگه چندتا لینک به عنوان مثلا میگفتی خوب بود…

لزوم انجام اینکار رو متوجه نمیشم چون در آخر تعداد تغییرات یکی هستش ولی خورد شده توی بسته های کوچیک تر. که از طرفی هم انجام اینکار توی اسکریپت سخت هستش و اینکه برای آپلود کردن تک تکش طاقت فرسا میشه. حالا در آینده شاید تدبیری براش پیدا کردیم.

در نهایت اعلام میکنم فعلا دارم روی اسکریپت اصلاح اعداد کار میکنم و بعد از نهایی شدن و استارت کارش میرم سراغ اسکریپت اصلاح حروف. یه مقدار کمبود وقت آزاد شاید باعث بشه این روند طول بکشه به همین دلیل از دوستانی که میتونند برای ویکی سازی این اسکریپت کمک کنند درخواست کمک میکنم.

با تشکر از پیگیری دوستان که دل گرم کننده است

در واقع یه راهکار پیشنهادی دیگه برای کم شدن اشتباه هاست. قبل از این بند، درباره معابر گفتم که چون معمولا کاربران بومی ایجادشون میکنن مشکل خاصی توش پیش نیامده. حالا از اینجا ایده گرفتم و گفتم که ببینیم کدام تگها را معمولا کاربران غیربومی ایجاد میکنن اونها را فاکتور بگیریم تا تغییر نکنن. مثلا

amenity
tourism

را معمولا کاربران غیربومی هم ایجاد میکنن در نتیجه مستعد اون مشکلات هستن. ولی

place
landuse

را کاربران غیربومی معمولا ایجاد نمیکنن و در نتیجه اون مشکلات روی این عارضه ها پیش نمیاد. حالا به عنوان مثال این دو تگ آخری را فاکتور بگیریم تا تغییر نکنن و دستی بررسی کنیم.

یا مثلا مشکل عربی عمدتا روی گره ها اتفاق میفته. از دلایل عمده اش اینه که کاربران غیربومی ایجادشون میکنن. حالا ما بیایم گره ها را اصلا دست نزنیم و دستی بررسی کنیم.

صرفا یک راهکار پیشنهادی برای کم شدن موارد اشتباه هست.

البته شما راهکار کلمات کلیدی را دارین که شاید همون جوابگو باشه.

واقعیتش اینها را دقیق بررسی نکردم و صرفا از روی شمارنده ای که در سایت

osmcha

دیدم گفتم. درسته انگار عارضه ای حذف نشده و گره ها ادغام شدن یا چنین چیزی. ولی بهتره که موارد غیرمرتبط با اسکریپت را دخیل نکنیم و بعد از بارگذاری تغییرات اسکریپت، اینها در یک بستهٔ دیگه بارگذاری بشن. بهتر نیست؟

صرفا برای اینکه کاربر انسان راحت تر بتونه تغییرات را مرور کنه. ولی حالا اولویت زیادی هم شاید نداشته باشه

راهکار جالبی نیست چون در صد خطای بالایی داره و یه سری چیزا که باید فیکس بشه نمیشه اینطوری و برعکس. به نظرم همون راهکار کلمات کلیدی جامع تر هستش و این موارد رو پوشش میده

درسته چشم از این به بعد به این مورد دقت میکنیم.

لزومش توی اینه که بررسیش راحتتر میشه و ویکی هم همین رو گفته.

مثلا خوبه اکسریپت برای هر استان جدا جدا اجرا بشه تا بشه راحت بعدا بررسی کرد

فکر هم نمیکنم کار سختی باشه، فقط یه تک
“ISO3166-2”=“IR-{code ostan}”
هست دیگه

شما به بار اسکریپت رو بنویس،
یه لیست از اون کدهای
IR-*
تهیه بکن. بهش بگو تک به تک اجرا کن آپلود کن و برو سراغ بعدی.

اینطوری تفکیک بین چنجستها هم راحت منیشه.