Fa:Names

From OpenStreetMap Wiki
Jump to navigation Jump to search
Logo. عارضه : Fa:Names
One example for عارضه : Fa:Names
توضیحات
برای بیان جزئیات نام یک عارضه در اوپن‌استریت‌مپ.
برچسب‌ها

name=*

برای بیان جزئیات نام یک عارضه در اوپن‌استریت‌مپ.

گونه‌های کلید نام


برای اطلاع از قراردادهای نام‌گذاری در ایران اینجا را ببینید.

کلید مقدار عنصر توضیح
name تعریف کاربر گره راه ناحیه نام پیشفرض و رایج. ( توجه: در جایی که بر سر نام‌گذاری مناقشه هست، لطفاً از نام ثبت‌شده، مثلا روی تابلوی خیابان، استفاده کنید. سایر نام‌ها را یا در تگ‌های زبانی مثل name:tr یا در سایر گونه‌های تگ نام، مانند loc_name،‏ old_name،‏ alt_name بنویسید. سپاس.)
name:کد تعریف کاربر گره راه ناحیه نام به زبان دیگر. کد زبان را به‌جای «کد» بنویسید؛ مثلاً name:en=Tehran. توجه کنید که می‌توانیم به همهٔ گونه‌های کلید نام پسوند زبانی اضافه کنیم. نام به چند زبان را ببینید.
name:left و name:right تعریف کاربر راه زمانی استفاده می‌شود که یک معبر از هر کناره نام متفاوتی دارد (مثلا خیابانی که مرز دو شهر است).
int_name تعریف کاربر گره راه ناحیه نام بین‌المللی (توجه: به‌جای استفاده از این کلید بهتر است نام را با استفاده از تگ زبان خودش بنویسید. مثلا name:en=... - بالاتر را ملاحظه کنید. توجه کنید که نام بین‌المللی لزوماً به زبان انگلیسی نیست.)
loc_name تعریف کاربر گره راه ناحیه نام محلی.
nat_name تعریف کاربر گره راه ناحیه نام ملی.
official_name تعریف کاربر گره راه ناحیه این تگ در ابتدا برای ثبت نام کشورها به‌وجود آمد اما لازم است کاربردهای name،‏ int_name،‏ loc_name‏ و official_name در موارد دیگر روشن شود. مثال: official_name=Principat d'Andorra (اینجا تگ "name" دارای این مقدار است: name=Andorra).
old_name تعریف کاربر گره راه ناحیه نام تاریخی/قدیمی.
reg_name تعریف کاربر گره راه ناحیه نام منطقه‌ای.
short_name تعریف کاربر گره راه ناحیه شکل کوتاه نام به‌طوری که شناخته‌شده باشد و رایج. منظور نام مستعار نیست (برای نام مستعار از alt_name استفاده کنید). برای جست‌وجو مفید است (Nominatim آن را می‌شناسد).
sorting_name تعریف کاربر گره راه ناحیه این نام برای مرتب‌سازی درست نام‌ها استفاده می‌شود. فقط زمانی لازم است که نتوان نام‌ها را صرفاً بر اساس دبیرهٔ آن‌ها مرتب کرد[1]، بلکه لازم باشد بخش‌هایی از نام نادیده گرفته شود، مثلاً:
  • نادیده‌گرفتن حروف تعریف معین/نامعین (مثل a،‏ the)
  • کاستن از اهمیت نام کوچک، زمانی که نام خانوادگی پس از آن می‌آید
  • نادیده‌گرفتن قسمت عمومی از نام خیابان، زمانی که پیش از نام مشخصی بیاید (مثلا خیابان، بلوار و... در فارسی یا "rue"،‏ "boulevard"،‏ "place" و... در فرانسوی)

همهٔ این موارد در سطح نخست مرتب‌سازی نادیده گرفته می‌شوند و با الگوریتم‌های پیش‌پردازنده به راحتی انجام نمی‌شود.

alt_name تعریف کاربر گره راه ناحیه نام دیگر. اگر نامی وجود دارد که در هیچ‌کدام از کلیدهای بالا جای نمی‌گیرد می‌توانید alt_name را استفاده کنید. مثلا name=Field Fare Road و alt_name=Fieldfare Road، یا name=University Centre و alt_name=Grad Pad. در موارد اندکی این کلید برای ضبط چند نام به‌کار می‌رود که در این صورت نام‌ها با سمی‌کالن از هم جدا می‌شوند. مثال: alt_name=نام۱;نام۲;نام۳، اما این روش چندان مقبول نیست.
name_1, name_2, ... از این تگ استفاده نکنید. استفاده از تگ‌های name شماره‌دار برای ضبط چند مقدار نکوهش شده.

این جدول یک الگوی ویکی است در اینجا ویرایشش کنید.


نکات

مخفف‌نویسی نکنید

نمونه‌ای از مخفف‌سازی شدید روی تابلو که گستردهٔ آن را در زیر می‌بینید:Lake Washington Boulevard Northeast Main Street

اگر نام را بدون مخفف‌کردن می‌توان نوشت، آن را مخفف ننویسید. کوته‌سازی کلمات برای رایانه‌ها آسان است، اما برعکسش آسان نیست (ک. می‌تواند مخفف کوی یا کوچه باشد. در انگلیسی St.‎ می‌تواند مخفف Street یا Saint باشد). اگر روی تابلو مخفف کلمات نوشته شده و شما شکل گستردهٔ آن را نمی‌دانید مجاز هستید که موقتاً مخفف را بنویسید تا در آینده فرد دیگری آن را گسترش دهد. نرم‌افزار است که تصمیم می‌گیرد از شکل مخفف کلمات استفاده کند، یعنی: در داده‌های زیرساختی باید نام کامل خیابان وجود داشته باشد. بدین ترتیب، اختیار با نرم‌افزار رندرکننده، مسیریاب یا مکان‌یاب خواهد بود تا هرگاه لازم شد از مخفف‌ها استفاده کند. برای نمونه، سیاههٔ مخفف‌های مورداستفادهٔ Name Finder و Nominatim را ببینید.

حرف اول هر کلمه انگلیسی را بزرگ بنویسید. مثلا Church Street و نه Church street. توجه: قوانین هر منطقه بر این قوانین کلی اولویت دارد. مثلاً در زبان فلامان، نوشتن نام خانوادگی با حروف بزرگ نشانه‌ای از بزرگی آن شخص است. نام خیابان یا شرکتی که برگرفته از این نام‌های خانوادگی است باید با همان حالت حروف نوشته شود. یا مثلاً در زبان‌های غیرلاتین، معمولاً بزرگی و کوچکی حروف مطرح نیست.

اگر با نوشتن شکل گستردهٔ نام، آن نام غلط می‌شود، گسترش‌دادنش کار اشتباهی است، پس این کار را نکنید. (مثلا: Wilts & Berks Canal و نام بریتانیایی مکان‌ها وقتی با St شروع می‌شوند و گسترده‌سازی نامعتبر.)

غیر از موارد بالا که باید رعایتشان کرد، همیشه نام کامل را بنویسید همان‌گونه که روی تابلوی نام خیابان ظاهر می‌شود.

توجه کنید که تابلوی خیابان ممکن است غلط‌هایی داشته باشد.

به آپاستروف‌ها (') دقت کنید. همان قانون اصلی: اگر در تابلوی خیابان آپاستروف هست، دادهٔ OSM هم باید آن را داشته باشد. ثبات چندان روشنی وجود ندارد: London Underground station Barons Court کنار Earl's Court قرار دارد؛ یکی با آپاستروف و دیگری بدون آن.

نام فقط خودِ نام است

نام باید محدود به نام عارضهٔ موردنظر باشد و سایر اطلاعاتی که در نام رسمی آن وجود ندارد، نباید در نام بیاید. سایر اطلاعات مانند: دسته‌بندی، نوع، توصیف، نشانی، ref یا یادداشت. اما اگر نام رسمی یک عارضه «خیابان ۱۱۰ شرقی» است، این نام کامل باید در تگ name بیاید، بدون توجه به اینکه شاید بتوانیم «خیابان»، «۱۱۰» و «شرقی» را از برخی اطلاعات دیگر نتیجه بگیریم. اگر عارضه‌ای واقعاً نامی ندارد، آن را در اوپن‌استریت‌مپ نام‌گذاری نکنید. هرگونه اطلاعات بیشتر باید در تگ‌های جداگانه بیاید تا بفهمیم به چه چیزی اشاره می‌کند (برای مثال، پیوندهای ابتدای بند را ببینید).

نمونه‌هایی از کاربرد نادرست:

  • "مولتی‌پولیگن جنگل بالدو" : اگر نوع عنصر یا اصطلاحات OSM بیرون از نقشهٔ OSM به‌کار نمی‌رود، آن‌ها را در نام ننویسید
  • "موزه دفاع مقدس، یزد، ایران" : مکان «یزد، ایران» را به‌عنوان بخشی از نام ننویسید، حتی اگر چندین عارضه با نام یکسان وجود داشته باشد.
  • "کافی‌شاپ تعطیل (در انتظار تخریب)" : به‌جای اینکه نام عارضه را بنویسید آن را توصیف نکنید. برای توصیف از تگ description استفاده کنید و نام قدیمی را در تگ old_name بنویسید
  • "بدون نام" : (بخش بدون نام را در زیر ببینید)
  • "Interstate 5 southbound lanes" (~ خطوط عبوری بزرگراه ۵ به‌سمت جنوب) : قسمت‌های مختلف یک عارضه که در OSM از هم مجزا هستند اما بیرون از OSM از هم مجزا نیستند را جداگانه نام‌گذاری نکنید
  • "Interstate 5"(~ بزرگراه ۵): هنگامی که نام قرار است فقط اطلاعات موجود در تگ ref=* را تکرار کند، در این صورت تقریباً همیشه استفاده از ref و noname=yes مناسب‌تر است
  • "Manchester City" : برای شهری که نامش Manchester است، واژه‌ای توصیفگر مانند City اضافه نکنید؛ با این حال توجه داشته باشید که New York City می‌تواند به‌عنوان نام رایج برای شهر نیویورک (=The City of New York) درست باشد.
  • "کوه فلان، ۲۵۰۰ متر" : ارتفاع را در تگ مخصوص خودش بنویسید (مانند ele=* یا ele:ft=*). آن را در نام عارضه ننویسید
  • "Union Pacific Railroad" : a name=* which was assigned during the USA's 2007-8 TIGER import (of roads and rail); the correct value is the name of the Subdivision/Branch/Line and this railroad name is properly the value of operator=* and/or owner=* (there are many other incorrect values besides Union Pacific). It is OK to precede a railroad name with an operator when two or more otherwise-identically named lines in close proximity would create serious confusion. For example, naming "CN Joliet Subdivision" and "UP Joliet Subdivision" or "BNSF Fort Worth Subdivision" and "UP Fort Worth Subdivision" is sensible. (For now. Even this convention may disappear in the future as operator=* and owner=* become more widespread and avoid such ambiguities).

اگر نقشه‌کش برای یک باند فرود نامی اختراع کند، قطعاً کار اشتباهی کرده. البته بیشتر نام‌ها در نقطه‌ای از تاریخ ابداع شده‌اند؛ بنابراین اگر کسی نامی بسازد و این نام معروف شود و گروه قابل‌توجهی از افراد آن عارضه را با آن نام بشناسند، در این صورت نوشتن این نام در نقشه اشکالی ندارد [2].

بدون نام

بیشتر نقشه‌کش‌ها خیابان‌هایی را که اسم ندارند با noname=yes تگ‌گذاری می‌کنند. ایدهٔ آن از اینجا می‌آید که نشان بدهیم آن خیابان در واقعیت نامی ندارد، زیرا از کمبود تگ name به‌طور فزاینده‌ای برای یافتن مناطقی که هنوز نیازمند نقشه‌برداری است، استفاده می‌شود.

نام چپ و نام راست

برای عوارض خطی، می‌توانیم به هر کنارهٔ عارضه یک نام بدهیم.

برای مثال، یک خیابان می‌تواند مرز بین بلژیک و هلند باشد. بلژیکی‌ها آن را "Amsterdamsestraat" می‌نامند و هلندی‌ها آن را "Brusselsestraat" می‌نامند.

این مسئله با استفاده از تگ‌های name:left=* و name:right=* حل می‌شود. بدین ترتیب خیابان در هر دو کناره یک نام مجزا خواهد داشت. (برای تشخیص راست و چپ از جهت رسم راه استفاده می‌کنیم). همچنین برای پشتیبانی نرم‌افزارهای گوناگون، هنوز می‌توانیم هر دو نام را در تگ name=* بیاوریم.

مثال:

توجه: نام‌های چپ و راست مختلف نیز می‌توانند به چند زبان باشند. بنابراین تگ‌هایی مانند name:left:fr=* درست است.

چند نام

اگر برای عارضه‌ای چند نام وجود دارد، ابتدا تلاش کنید یکی از تگ‌های قوی و معنارسان را برگزینید. مانند هر کدام از تگ‌هایی که در جدول ذکر شده (مثلاً short_name=*،‏ old_name=* و غیره). اگر هیچ‌یک از آن‌ها به کارتان نیامد، تگ alt_name=* را استفاده کنید. اگر چند نام دارید که تگ مناسبشان وجود ندارد، می‌توانید آن‌ها را در تگ alt_name=* بنویسید و با سمی‌کالن (;) از هم جدا کنید.

بومی‌سازی

هم‌اکنون بسیاری از نرم‌افزارهای پرداختگر (renderer) می‌توانند با نویسه‌های یونی‌کد کار کنند، بنابراین شما می‌توانید از الفبای بومی برای نوشتن نام‌ها در تگ پیش‌فرض name=* استفاده کنید. استفاده از الفبای لاتین برای مقدار نام ضروری نیست.

همچنین ببینید نام به چند زبان

برای افزودن نام‌های بومی به زبان‌های مختلف، تگ name:کد=* را اضافه کنید. به پسوند کد که در ادامهٔ آن آمده توجه کنید. کد عبارت است از کد ISO 639-1 alpha-2 مربوط به آن زبان (ستون دوم)، یا کد ISO 639-2/T (alpha-3) (اگر کد ISO 639-1 وجود نداشت).

برای مثال، تگ name:fr=* برای نام فرانسوی و تگ name:en=* برای نام انگلیسی است. نام پیش‌فرض که در تگ نامِ بدون پسوند (name=*) می‌آید باید به زبان مورداستفادهٔ آن منطقه باشد.

در ادامه مثالی کاربردی می‌زنیم. همهٔ این تگ‌ها می‌توانند روی یک عارضه باشند:

name=یک چیزی          (نام پیشفرض و مورداستفاده در آن مکان)
name:en=Something     (انگلیسی)
name:el=Κάτι          (یونانی)
name:de=Irgendwas     (آلمانی)
name:pl=Coś           (لهستانی)
name:fr=Quelque chose (فرانسوی)
name:es=Algo          (اسپانیایی)
name:it=Qualcosa      (ایتالیایی)
name:ja=何か           (ژاپنی)
name:ko=뭔가           (کره‌ای)
name:ko-Latn=Mweonga  (لاتین‌نویسی کره‌ای)   (مطابق استاندارد BCP 47 است. کلید ko_rm منسوخ شده.)

بدین ترتیب نام‌های ثانویه به‌طور دقیق‌تر مشخص می‌شوند.

مثال از کدهای زبانی بر اساس کد alpha-2 (= دوحرفی) از ISO 639-1 :

de       آلمانی
pl       لهستانی
el       یونانی
en       انگلیسی
es       اسپانیایی
fa       فارسی
fr       فرانسوی
it       ایتالیایی
ja       ژاپنی
ko       کره‌ای
ru       روسی
zh       چینی
ko-Latn  لاتین‌نویسی کره‌ای (طبق استاندارد BCP 47. این روش منسوخ شده است: ko_rm)

بحث کوتاهی راجع به این این پسوندهای زبانی در صفحهٔ بحث وجود دارد.

پشتیبانی پرداختگرها (Renderer support): تعدادی سامانهٔ پرداختگر آزمایشی وجود دارد که این نام‌های بومی را نمایش می‌دهند. Map Internationalization را ببینید.

درون‌بُرد (Import): استفاده از osm2pgsql به کاربران این امکان را می‌دهد که فایل‌های ‎.style جدید تعریف کنند که این فایل می‌تواند شامل ستون‌های نام برای زبان‌های دیگر باشد و درنتیجه آن‌ها را وارد پایگاه‌داده کنند. برای پرداخت نام‌ها با استفاده از این ستون‌ها ضروری است نماهای PostGIS را تنظیم کنید (set up PostGIS views) که در نتیجه این ستون‌ها را به‌عنوان name و نه name:languagecode ارائه می‌کند. به‌عنوان جایگزین، شاید راحت‌تر باشد که با استفاده از یک فایل lua style،‏ name:XX را به name انتقال دهید. یک مثال در این روزنوشت وجود دارد.

پشتیبانی در ویرایشگر: ساخت ۱۰۴۴ و جدیدترِ ویرایشگر JOSM از نمایش نام‌های بومی پشتیبانی می‌کند. این ویرایشگر locale کنونی سیستم را تشخیص می‌دهد و نام‌ها را در درجهٔ اول به این زبان نمایش می‌دهد. می‌توانید اولویت نمایش نام‌ها را از طریق تنظیمات expert در JOSM تغییر دهید. مثال: برای اینکه نام‌های تایلندی اولویت داشته باشند، حتی اگر هم‌اکنون locale روی en قرار دارد، خصوصیت زیر را تنظیم کنید:

 mappaint.nameOrder=name:th;name:en;int_name;name

Avoid transliteration

Transliteration is the process of taking a name in one language, and simply changing letters from one script to another. In general we should avoid doing this with tags in the OpenStreetMap database. Everything with a name could have auto-generated transliterations, so not just city names, but every road, and every cafe! This kind of automatic augmenting with data is best left for data users. For example, Sven Geggus has demonstrated the principle of rendering with auto-generated transliterations. The German OpenStreetMap (Mapnik style) transliterates many scripts to Latin using OSM map l10n functions. We want to avoid adding in tags into our database for every named object via automated or semi-automated Import.

Instead we only put commonly used names in other languages into the database. While we typically think of these as translations, in most cases names that fit this criteria are not literal translations, example: the lake that the city of "Genève" ("Geneva" in English) lies on is in French ("Genève" is a French speaking city even if it has a German-speaking community), bordering "Lac Léman" in French (name also used in France that also borders the lake) or "Genfersee" in German (in other parts of Switzerland also bordering the same lake). The default name has to be one of the local names: "Genève" for the city, "Lac Léman" or "Genfersee" for the lake. These are names which have been used by people on the ground, speaking in different languages (In general we're following Good practice#Map what's on the ground). Transliteration will fail to match the actual translations of names like these, hence this is useful data to add.

But for smaller towns or villages, there's no asserted translation and entering transliterations won't really be helpful. There are several transliteration methods and data users may have different needs. It's best to let users select the appropriate tools to perform these automated conversions. For example, small towns in England probably don't have a special Russian name, unless there is a local Russian community or a local authority publishes official translations of documents in other languages (using transliterations or prefered translations). Their names can all be transliterated into Russian script, but it's not a good idea to add lots and lots of tags to all the towns in England containing these transliterated names.

In addition, many transliterated names frequently have been imported as is from Wikipedia (or Wikidata) for naming their articles, but the names may have been chosen quite arbitrarily on these wikis. Importing these transliterated names into OSM is not necessary. We can just link to a single Wikidata entry or a single Wikipedia article in a single language, preferably the main language used locally, in order to find the other articles.

On the other hand, some countries which use an official local language not written in the Latin script (notably in China, India, and Arabic countries) are also providing their own official romanization that should be used and tagged with the appropriate tag for the target language code (multiple official transliteration schemes used locally are extremely rare or exist only for historic reasons when the schemes have changed). In other words, always prefer local sources to any other international sources for transliterations (there's a separate tag int_name=* for the latter, which should be based on a wellknown international standard, e.g. IATA for airport names, otherwise use a geographic international transliteration standard scheme).

loc_name

در تگ loc_name=* نامی را می‌نویسیم که مردم محلی عارضه را به آن نام می‌شناسند، اما فقط در مواردی که خیلی عامیانه یا صورت غیررسمی نام عارضه تلقی بشود. اگرچه، در حالت عادی، نام مورداستفادهٔ مردم در تگ name=* می‌آید! مثال‌هایی از کاربرد loc_name=*:

  • در گلاسگو پلی هست که با نام Squinty Bridge شناخته می‌شود، اما نام رسمی آن Clyde Arc است. من هرگز نشنیده‌ام که کسی با نام رسمی به آن اشاره کند. بنابراین آن را این‌گونه تگ‌گذاری می‌کنیم: loc_name=Squinty Bridge name=Clyde Arc.
  • Union Street در ردینگ انگلستان قرار دارد و دهه‌هاست که با نام Smelly Alley (کوچهٔ بدبو) شناخته می‌شود. تگ loc_name=Smelly Alley مناسب است.

alt_name

برای زمانی است که نام دیگری هم وجود دارد، مثلاً نوشتار نام خیابان گوناگون است، گاهی حتی روی تابلوی خیابان. البته کاربرد این تگ به نام خیابان‌ها محدود نمی‌شود.

Don't use it for abbreviations and only when one of the other name types don't apply, e.g., reg_name=* or name:xx=* for regional translations.

این نام‌های ثانویه معمولاً در نقشه نمایش داده نمی‌شوند اما نرم‌افزارهایی مانند Nominatim از آن‌ها استفاده می‌کنند.

sorting_name

تگ sorting_name=* یک روش «پیشنهادی» برای فراهم‌ساختن نام دیگری است که سامانه‌های نرم‌افزاری از آن برای اهداف مربوط به مرتب‌سازی استفاده کنند. این تگ برای نام خیابان‌ها در برخی زبان‌ها/کشورها از جمله روسیه می‌تواند مفید باشد. در روسیه نام خیابان‌ها معمولاً پیشوندی مثل «خیابان» دارد. در این موارد اگر مرتب‌سازی بر اساس تگ name=* انجام شود به نتیجهٔ مطلوب نمی‌رسیم. در ایران نیز پیشوندهایی مانند «خیابان»، «بلوار» و... فراوان دیده می‌شود.

پسوند فضای نام تاریخ برای نام‌های تاریخی

پسوند فضای نام تاریخ را می‌توانیم برای نام‌های تاریخی به‌کار ببریم. مثلاً name:1953-1990=Ernst-Thälmann-Straße

Repeating local name with language specific tag

name=* contains "The common default name". name:lang_code=* contains name in specified language, for example name:ru=Москва contains name in Russsian language (it has language code ru) and name:en=Moscow contains name in English (language code en).

Moscow is also tagged with name=Москва, with the same value as name:ru=Москва. It is correct and useful, names in specific languages must not be deleted just because their value is the same as one in name=*.

تگ‌های منسوخ

تگ‌های شماره‌دار مثل name_1=* و alt_name_1=* را دیگر برای تگ‌گذاری استفاده نکنید. سروکلهٔ این تگ‌ها از درون‌بردهای (import) قدیمی پیدا شد. این درون‌بُردها به‌خوبی تعریف نشده بودند.

همچنین ببینید

پیوندهای بیرونی

پانوشت

  1. با به‌کارگیری الگوریتم Unicode Collation و جداول collation متناسب زبان و الفبا، یا زمانی که در فهرست مرتبِ نام‌ها مواردی به چند زبان و/یا الفبا داشته باشیم
  2. Inventing names for essentially unnamed private airstrips