Fa:Any tags you like
نکته: بسیاری از عارضههایی که محبوبیت عمومی دارند در عارضههای نقشه آمدهاند و توصیه میشود که از شیوهٔ تگگذاری ارائهشده در این صفحه استفاده شود. زیرا اگر بر خلاف توافقات جمعی تگگذاری کنیم در نهایت احتمالا دیگران ویرایشهای ما را تغییر میدهند تا با شیوهٔ توافقشده همخوانی پیدا کند.
مستندسازی تگهایی که در «عارضههای نقشه» نیامده
آیا از روشهای خوب پیروی کردهاید و این ویکی، عارضههای نقشه، عارضههای پیشنهادشده، عارضههای ردشده، رابطههای پیشنهادشده و بایگانیهای لیستهای پستی را جستوجو کردهاید، اما هنوز تگ موردنظرتان را نیافتهاید؟ بهجرئت میتوان گفت که Taginfo سودمندترین مخزنی است که سرشار از پیشنهادهای تگگذاری است. این وبسایت تگهایی که واقعا در پایگاهداده ثبت شدهاند را بههمراه اطلاعات آماری در اختیارتان میگذارد. همچنین تگهای دیگری که در کنار یک تگ بخصوص روی یک عارضه بهصورت ترکیبی استفاده شدهاند را نیز نمایش میدهد.
به خاطر داشته باشید که اوپناستریتمپ هیچگونه محدودیت محتوایی روی تگهایی که به گرهها، راهها یا محدودهها میدهیم ندارد. شما میتوانید «هر تگی که دوست دارید» را بهکار ببرید، اما لطفاً در ویکی اوپناستریتمپ (همین وبسایت) برای آنها مستندسازی کنید ، حتی اگر بینیاز از توصیف باشند و مفهومشان بدیهی باشد.
مستندسازی به دیگران این امکان را میدهد که عارضههای شما را پیدا کنند یا حتی خطاهای نقشهکشی که در نزدیکی شماست را ببینند و درست کنند.
مخصوصاً اگر در آینده فردی برای تگگذاری یکسری از عارضهها پیشنهاده (proposal) ارائه کند و عارضهای که شما اضافه کردهاید زیرمجموعهٔ آن قرار داشته باشد، در این صورت تجربیات شما و عارضههایی که قبلا اضافه کردهاید در فرآیند تصمیمگیری پیشنهاده دخیل میشود. در دور از ذهنترین حالت، ممکن است پس از پذیرش همگانی، تگهای شما تبدیل شوند تا با طرح جدید همخوانی پیدا کند.
انتخاب تگ مورداستفاده
برای مثال، اگر بخواهید لانههای تمام سنجابهای پرندهٔ سیبریایی در معرض خطر را نقشهکشی کنید کافی است صفحهای مانند endangered_nest=Siberian_flying_squirrel بسازید و در آن صفحه مستندسازی کنید که این تگ برای چیست. فقط آمادگی این را داشته باشید که شاید بعداً فرد دیگری بیاید و طرح متفاوتتر و ساختارمندتری برای مستندسازی سایر جنبههای این گونهٔ در معرض خطر ارائه کند، مثلاً طرحی که بهواسطهٔ آن میتوانیم مکانهایی که مدفوع این جانداران پیدا میشود را نیز ثبت کنیم (یک نمونه، که مثلاً برای حفاظت منطقه در برابر هرگونه ساختوساز میتواند استفاده شود) که در نتیجهٔ این طرح جدید سرانجام باید ورودیهای قبلی خودتان را در قالب این طرح جدید تبدیل کنید.
شما میتوانید مثلاً از استانداردهای فدراسیون بینالمللی جهتیابی (IOF) که در نقشههای جهتیابی استفاده میشود برای طبقهبندیها کمک بگیرید و در صورت امکان تگهای جدید خودتان را سازگار با نیاز کاربران آنها تنظیم کنید. اسناد و استانداردهای مشابه دیگر هم البته وجود دارد.
چهزمانی پیشنهاده (پروپوزال) ارائه کنیم
اگر عارضهٔ موردنظر شما دارای این خصوصیات است برای آن یک پیشنهاده ارائه کنید:
- عارضهٔ شما محبوبیت عمومی دارد، یا
- مطمئن نیستید چگونه آن را مدلسازی کنید، یا
- آخرین پیشنهادهای که برای تگگذاری این عارضه داده شده، رد شده باشد، یا
- میخواهید معنی تگی که هماکنون در حال استفاده است را تغییر دهید
(توجه کنید که ظاهرشدن عارضهٔ موردنظرتان بر روی نقشهٔ اصلی نه نیازمند پیشنهاده است و نه یک پیشنهادهٔ موفقیتآمیز تضمینی است برای آمدن عارضهٔ شما روی نقشه. با این حال، اگر عارضهٔ مدنظر شما فرآیند پیشنهاده را طی کرد و اکثریت آن را پذیرفتند، بهواسطهٔ پیوستن افراد موافق، قدرت مطالبهگری شما برای درخواست نمایش آن عارضه بیشتر میشود و در نتیجه شانس نمایش آن عارضه روی نقشهٔ اصلی افزایش پیدا میکند.)
چه چیزهایی را نقشهکشی نکنیم
موجودیتهایی که در پایگاهدادهٔ اوپناستریتمپ وارد میشوند باید با خصوصیات یا عوارض جغرافیایی (که دارای کیفیتهای جغرافیایی هستند) مرتبط باشند.
مثلا، اضافهکردن مکان یک ایستگاه پایهٔ WLAN موردقبول است، اما گذاشتن تعداد زیادی گره در اطراف آن و تگگذاری آنها برای سطح سیگنال دریافتی موردقبول نیست. اینگونه اطلاعات بهتر است در یک سرویس جداگانه ذخیره شود.
لطفا به توافقات جامعه دربارهٔ تأییدپذیری که در صفحهٔ روشهای خوب آمده، توجه داشته باشید. عارضههای تاریخی، موقت یا فرضی و دادههای سلیقهای مانند رتبهبندیها یا قانونگذاریها را نقشهکشی نکنید.
قراردادهای نحوی برای ساخت تگهای جدید
این مطلب میکوشد قراردادهای موجود و مورداستفاده برای ایجاد تگهای جدید را، بر اساس تگهای فعلی در عارضههای نقشه و پیشنهادههای اخیر، مستند کند. اصلاحیهها و شیوههای دیگری که بهطور گسترده استفاده میشوند نیز مشتاقانه پذیرفته خواهند شد!
هر تگ یک جفتِ (کلید, مقدار) از جنس رشتهٔ یونیکد است که معمولاً در قالب key=value نوشته میشود.
رشتههایی که برای بخش کلید انتخاب میشود چند شکل قراردادی دارند:
- بهترین حالت آن است که کلید تککلمهای و با حروف کوچک باشد.
- اگر نمیتوان کلید تککلمهای انتخاب کرد، کلید باید یک مفهوم داشته باشد و به این شکل باشد که کلماتش با خط_زیر از هم جدا شوند. این کار از یکسری مشکلات مربوط به whitespace پیشگیری میکند و بهطور کلی این شیوه به این دلیل بهوجود آمده که افراد دخیل در اواسام معمولاً تمایلات برنامهنویسی دارند و با نحو (syntax) میانهٔ خوبی دارند.
- برخی کلیدهای پیشرفتهتر از چند کلمه یا مفهوم ساخته میشوند که بین آنها از جداساز دونقطه (:) استفاده میشود. این کلیدها همانطور که از چپ به راست نوشته میشوند از چپ به راست نیز خوانده میشوند. تعدادی از این الگوها که هماکنون بهطور گسترده استفاده میشوند:
- پیشوندگذاری ساده با فضای نام که مشابه با سبک مورداستفاده در برخی زبانهای برنامهنویسی است. این روش اطلاعاتی که وابستگی ضعیفی به هم دارند را بقچهبندی و یکجا میکند بهگونهای که با سایر تگهای اواسام تداخل پیدا نمیکند! روش ایدئالی برای درونبرد دادهها از سایر منابع است.
- tiger:county=*، tiger:upload_uuid=* - مربوط به بارگذاری دادههای US TIGER
- KSJ2:lat=*، KSJ2:curve_id=* - تگهای مربوط به Japan KSJ2 import
- برای بقچهبندی و یکجا کردن اطلاعاتی که وابستگی شدیدی به هم دارند و در کنار همدیگر یک واقعیتی را که از چند فیلد تشکیل میشود بیان میکنند. این روش برای نشانیها و الگوهای نامگذاری غیرعادی بسیار مفید است.
- name:left=*، name:right=* - خیابانهایی که از هر کناره یک نام دارند.
- addr:housenumber=*، addr:street=* - مربوط به نشانی یک مکان
- متناسبسازی با استفاده از کد زبانی. Fa:Names#Localization را ببینید
- این نسبتا غیررایج است. مطابق الگوی ۲ است اما هنگامی که زیربخشها خودشان کلیدهای تعریفشدهای باشند، این کلیدهای جدید بهروشی زایشی ساخته و استفاده میشوند. این کار بیشتر تگگذاری فرادادهای است (meta-tagging).
- source:name=* - منبع (source) تگ نام (name) را مشخص میکند.
- source:ref=* - منبع (source) تگ ref را مشخص میکند.
- پیشوندگذاری ساده با فضای نام که مشابه با سبک مورداستفاده در برخی زبانهای برنامهنویسی است. این روش اطلاعاتی که وابستگی ضعیفی به هم دارند را بقچهبندی و یکجا میکند بهگونهای که با سایر تگهای اواسام تداخل پیدا نمیکند! روش ایدئالی برای درونبرد دادهها از سایر منابع است.
بخش مقدار نیز یک رشته است که از یکسری قراردادها پیروی میکند.
- یک تگ میتواند هم یک طبقه باشد (مانند درجهبندی معابر highway) یا یک خصوصیت باشد (مانند پهنا width). خصوصیتها میتوانند تعداد دلخواهی (شاید بینهایت) از مقادیر ممکن را بگیرند، یا عددی باشند (مثلا width=2). طبقهها معمولاً مقداری میگیرند که طبقهبندی را بیشتر پالایش کند (=دقیقتر کند. مثلاً highway=motorway)
- نامها مثالی از یک مقدار خصوصیتی هستند (برای تگ name=*) و روشن است که این مقدارها ساختارمندی آنچنانی ندارند و بسیار انعطافپذیر و معمولاً حاوی انوع حروف کوچک و بزرگ، فاصله و سایر نویسههای ویژه هستند.
- برای تگهای طبقهای (بر خلاف تگهای خصوصیتی) مقدار از یک قالب قراردادی استفاده میکند، شبیه قواعد پایهای کلیدها:
- بهترین حالت آن است که مقدار تککلمهای و با حروف کوچک باشد.
- اگر نمیتوان تککلمهای انتخاب کرد، مقدار یک تگ طبقهای باید یک مفهوم داشته باشد و به این شکل باشد که کلماتش با خط_زیر از هم جدا شوند.
- برای بعضی از کلیدها و نه همهشان میتوانیم چند مقدار بنویسیم و بین آنها جداساز سمیکالن (;) قرار دهیم. کلیدهایی که انجام این کار برایشان مجاز است بهطور مشخص در صفحهٔ ویکی مربوطه مستند شدهاند. جداسازی مقادیر با سمیکالن را ببینید.
در بسیاری از طرحهای تگگذاری، یک الگوی عمومی وجود دارد که آن را پالایش بازگشتی (iterative refinement) مینامیم. مزیت این الگو آن است که طرح میتواند بهتدریج گسترش یابد تا هرچه بیشتر توصیفگر شود و در عین حال سازگار با گذشته بماند.
نویسهها
مجازیم از هر نویسهٔ یونیکد دلخواه (UTF-8) استفاده کنیم. در عمل، بیشتر کلیدها (مانند highway) و مقدارهای طبقهای (مانند trunk_link) از رشتهای با حروف کوچک، خط زیر و دونقطه ساخته میشوند. بهتر است برای این رشتهها نویسههایی را بهکار ببریم که در نرمافزارهای مختلف مشکلساز نباشند:
- Whitespace
- بهجای فاصلهٔ سفید از خط زیر (_) استفاده کنید. از درج فاصلهٔ سفید در ابتدا یا انتهای کلیدها نیز خودداری کنید.
- <>&/+?#%'"\
- از نویسههایی که در XML، HTML و/یا URLها کاربرد ویژه دارند یا برای نقلقول استفاده میشوند، پرهیز کنید.
- =
- از علامت مساوی نیز پرهیز کنید، زیرا این نویسه در جاهای زیادی بهعنوان جداکنندهٔ کلید و مقدار تگ استفاده شده است.
- ;
- کاربرد سمیکالن هنوز جای بحث دارد.
در مقدارهای آزاد (مانند مقدار کلید name) میتوانیم از هر نویسهٔ ممکنی استفاده کنیم.
الگوی عمل؟
شما مختارید که مطالب این مقاله را بهعنوان الگوی کار تلقی کنید، اما درواقع چنین قصدی از این مطلب نداریم. تفسیر نهایی به کاربر بستگی دارد. تنها اصلی که واقعاً قابلاعتناست اصل سادگی است. بهعبارتی «سادهترین روش نسبتاً کارآمد را در پیش بگیرید». هرچه تمیزتر و سادهتر، بهتر؛ البته اگر بخواهید افراد بیشتری تگ/پیشنهادهٔ شما را بپذیرند.
همچنین ببینید
- فقط نقشه بکشید(en)
- روشهای خوب
- فرآیند پیشنهاده (پروپوزال) (en)
- چگونه تگ بسازیم از Jochen Topf، سازندهٔ Taginfo (en)