...

понедельник, 3 декабря 2018 г.

[Перевод] Заблуждения программистов об именах — с примерами

В 2010 году Патрик Маккензи написал знаменитую статью «Заблуждения программистов об именах», перечислив 40 фактоидов, которые не всегда верны в отношении человеческих имён.

Думаете, программисты сели, подумали и изменили обработку имён в компьютерных системах? К сожалению, не совсем. Нас по-прежнему повсеместно просят заполнить онлайн-формы, которые предполагают обязательное наличие имени и фамилии (причём именно в таком порядке). Эти системы по-прежнему предполагают, что наши имена всегда можно записать символами алфавита, зачастую только ASCII.
Подозреваю, что статья Патрика оказала недостаточное влияние на индустрию в том числе потому, что в ней отсутствовали примеры каждого заблуждения. Но как бывший сотрудник проекта IBM Global Name Management могу вас заверить, что всё всё сказанное в ней — правда.

Не верите? В этом статье я перечислю все 40 заблуждений, приведя пример (или два) из моего опыта работы в этой области. Готовы? Поехали!

1. У каждого человека есть одно каноническое полное имя.
Кажется, некоторые люди считают, что вы получаете имя, и оно никогда не меняется. Но даже в западных странах человек может изменить свою фамилию при вступлении в брак. В католической традиции человек может получить второе имя при конфирмации.

2. У каждого человека есть одно полное имя, которое он использует.
Хорошо известный писатель-фантаст Джон Уиндем (автор «Дня Триффидов») рождён с именем Джон Уиндем Паркс Лукас Бейнон Харрис, а публиковал книги под именами Джон Бейнон и Лукас Паркс, а также Джон Уиндем.

3. В данный момент времени у каждого человека есть одно каноническое полное имя.
У актёра может быть сценический псевдоним, полностью отличающийся от имени в свидетельстве о рождении, у него может быть даже паспорт на сценический псевдоним.

4. В данный момент времени у каждого человека одно полное имя, которое он использует.
Это не так, даже в западных странах женщина может сохранить девичью фамилию на работе (где она уже известна под этим именем) и использовать фамилию мужа в общении или в юридических документах, таких как ипотека и кредиты.

5. У каждого человека есть в точности N имён, независимо от значения N.
Английское имя традиционно содержит два имени (их часто называют именем и вторым именем) и фамилию, но не обязательно всё именно так. У человека может не быть второго имени или их может быть несколько. Например, у португальцев одно или два имени и до четырёх фамилий (до шести в случае замужней женщины), и эти фамилии могут быть фразами, такими как да Силва или дос Сантуш, или даже Коста-и-Силва.

6. Имена вмещаются в определённое количество символов.
У известного художника, которого обычно зовут просто Пикассо, полное имя было Пабло Диего Хосе Франсиско де Паула Хуан Непомусено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо. Попробуйте вместить это в форму на 30 символов…

7. Имена не меняются.
Мы уже упоминали о девушках, которые меняют имя при вступлении в брак, так что это явно неверно. Кроме того, католики могут принять второе имя в момент конфирмации. Также человек часто добавляет имя или полностью меняет его при переходе в другую религию — вспомните, как после обращения в ислам Кэт Стивенс стал Юсуфом Исламом, а Кассиус Клей превратился в Мохаммеда Али.

8. Имена меняются, но только в определённых ограниченных случаях.
Для некоторых тайцев обычное дело сменить имя, чтобы отогнать неудачу. Это может произойти без особого повода. Иногда человек меняет имя, когда кто-то другой с таким же именем стал известным или печально известным: примечательный пример, когда множество людей отказалось от фамилии Гитлер.

9. Имена записаны в ASCII.
Явное заблуждение хотя бы потому, что ASCII не содержит акцентированные символы из французских, португальских имён. Этот набор символов не включает греческий алфавит, используемый в греческих именах, кириллические символы для русских имен. Есть письменности вроде деванагари для индийских имен, китайские иероглифы (ханзи), японские иероглифы (кандзи), и многое другое.

10. Имена записаны в какой-нибудь одной кодировке.
В некоторых именах смешаны кодировки. Например, кандзи с латинскими символами или ханзи с латинскими символами, или корейский хангыль с латинскими символами. Во многих случаях это происходит потому что у человека есть «западное имя» в угоду тем, кто не может произнести его имя на его родном языке.

11. Все имена соответствуют кодовым точкам Юникода.
Разработчики Юникода продолжают добавлять в стандарт кодовые точки для всё более редких символов. Подавляющее большинство имён уже соответствует им, но всё еще есть исключения, такие как символ «артист, ранее известный как Принс». Даже если исключить подобные курьёзы, несколько письменностей ещё не вошли в Юникод. Возможно, самым реалистичным примером является аймара, письменность для языка, на котором говорят более миллиона человек в Южной Америке. Менее реалистичные примеры — клингонский язык или символы, изобретённые Толкиеном для Средиземья. Кроме того, Юникод включает лишь часть китайских и японских иероглифов, а некоторые из пропущенных символов используются в именах.

Чтобы ещё больше усложнить ситуацию, в некоторых языках нет письменных символов — их невозможно записать. И для таких языков в Юникоде нет кодовых точек. Имена в этих языках можно записать фонетически, но это не особенно полезно, потому что большинство людей не знакомы с фонетическим алфавитом.

12. Имена чувствительны к смене регистра.
Многие наборы символов не чувствительны к регистру: например, китайский и японский. Для них идея прописных и строчных букв просто не применима.

13. Имена не чувствительны к смене регистра.
Некоторые письменности чувствительны к регистру: например, латиница. Что ещё более важно, в некоторых языках символы можно написать в нижнем регистре, но не в верхнем, поэтому невозможно перевести их из одного регистра в другой.

Правильный регистр может быть очень важен для некоторых людей, таких как носители фамилий Маккензи и МакКензи.

Кроме того, правильный регистр важен для таких фамилий, как Ван Гог, дю Барри, да Коста, О'Брайен и Д'Агостино, и имён, таких как Жан-Пьер.

14. Иногда в именах встречаются префиксы или суффиксы, но вы можете безопасно их игнорировать.
Ничто не может быть дальше от истины. Голландское имя Питер ван дер Меер не то же самое, что Питер Меер, хотя «ван дер» является префиксом.

Можете считать «младший» суффиксом в имени Роберт Дауни-младший, но если опустить его, вы назовёте его отца, а не его.

В арабских именах суффикс аль-Дин означает «веры» или «религии» — такие имена, как Тадж аль-Дин («корона веры») или Саиф аль-Дин («меч религии») не останутся теми же, если пустить суффикс. Итальянское имя Ди Стефано не то же самое, что Стефано.

Испанская женщина с фамилией «виуда де де ла Круз» — это вдова мужчины с патронимом де ла Круз. Отсутствие префиксов изменяет значение имени.

15. Имена не содержат цифр.
Даже если игнорировать династии (например, Тюрстон Хауэлл III), в некоторых случаях номер становится частью чьего-то юридического имени. Например, Дженнифер 8 Ли выбрала второе имя 8, потому что 8 связано с удачей.

16. Имена не могут быть записаны ЦЕЛИКОМ ПРОПИСНЫМИ буквами.
В некоторых странах (особенно франкоязычных) принято писать фамилию человека заглавными буквами, чтобы было ясно, какая часть является фамилией. Эта конвенция закрепилась до такой степени, что написание фамилии строчными буквами может считаться невежливым.

17. Имена не могут быть записаны целиком строчными буквами.
Поэт э. э. каммингс предпочитал, чтобы его имя писали строчными буквами. Как и певица k.d. lang. Вежливо следовать написанию, которое предпочитает владелец имени.

Существует ирландская/британская фамилия френч, которую традиционно пишут строчными буквами, хотя эта традиция страдает от плохого программного обеспечения, которое вынуждает указывать первую прописную.

18. В именах есть порядок. Выбор одной их схем упорядочивания записи автоматически приведёт к постоянному порядку среди всех систем, если все они используют ту же схему упорядочивания.
В Нидерландах имя Винсента Ван Гога проиндексируют и отсортируют по букве Г как Гог; в Бельгии то же имя проиндексируют по В для Ван Гога. Невозможно принять единую систему имён, которая приведёт к общепринятому порядку. Во многих библиотеках система основана на месте рождения человека (я бы не хотел, чтобы такое правило применяли в программном обеспечении).

19. Имя и фамилия обязательно отличаются.
Австралийский бизнесмен и политик Бенджамин Бенджамин умер в 1905 году. Джером К. Джером — английский писатель, известный произведением «Трое в лодке, не считая собаки». Оуэн Оуэн — валлиец, который основал компанию Owen Owen Ltd, управляющую сетью универмагов. И даже не будем трогать атлетов и актёров, которые приняли такие псевдонимы.

20. У людей есть фамилия или что-то подобное, общее для родственников.
На Яве было принято давать человеку только имя без фамилии. Например, у президентов Индонезии Сухарто и Сукарно не было фамилии.

21. Имя человека уникально.
Скажите это любому по имени Джон Смит! У меня несколько менее распространённое имя, но я обнаружил человека с тем же именем и фамилией, работающего в той же отрасли в той же стране (Австралия).

22. Имя человека почти уникально.
Даже с учётом нестандартного написания обычно легко найти людей с тем же полным именем: попробуйте загуглить собственное.

23. Ладно, ладно, но имена достаточно редки, так что нет миллиона человек с тем же именем и фамилией.
Китайское имя Чжан Вэй, как сообщается, носят более четверти миллиона человек.

Если ограничиться фамилиями, то около 20% населения Южной Кореи имеют фамилию Ким. Около 10% населения Северного Китая носит фамилию Ван, а более 10% населения Южного Китая носит фамилию Чэнь. На втором месте и там, и там фамилия Ли, что делает её самой популярной в стране. И около 40% вьетнамцев носят фамилию Нгуен.

Имена тоже далеко не уникальны.

24. Моя система никогда не будет иметь дело с именами из Китая.
Миграция распространила имена каждой культуры до (почти) каждой страны. Почти прошли те дни, когда при въезде в страну иммигрантам давали новые имена (хотя, например, Вьетнам по-прежнему требует, чтобы заявитель на гражданство принял вьетнамское имя). Нереально ожидать полного отсутствия имён из других стран, хотя вы можете увидеть их в транслитерированном виде.

Так, китайское имя вроде в вашей системе может появиться как Чоу Юнь-фат, или Чоу Юнь Фат, или даже Юнь Фат Чоу (Чоу — это фамилия).

25. Или Японии.
см. выше.

26. Или Кореи.
см. выше.

27. Или Ирландии, Великобритании, США, Испании, Мексики, Бразилии, Перу, Швеции, Ботсваны, ЮАР, Тринидада, Гаити, Франции, Клингонской Империи — во всех перечисленных используются «странные» схемы для имён.
см. выше.

28. Клингонская Империя была шуткой, правда?
Трудно найти примеры людей, официально использующих клингонские имена, но почему нет? Если мы внедрим систему с поддержкой других культур (например, встроенный апостроф для О'Брайена), то сможем поддерживать и клингонские имена без дополнительной работы.

29. К чёрту культурный релятивизм! Люди в моём обществе, по крайней мере, имеют одинаковое представление об общепризнанном стандарте для имён.
А ваше программное обеспечение будет работать только с людьми, которые получили имена в вашем обществе?

30. Есть алгоритм, который преобразует имена в одну и другую сторону без потерь. (Да, да, ты можешь сделать это, если алгоритм на выходе возвращает то же, что и на входе, возьми себе медаль).
Не существует алгоритма (кроме запоминания исходного формата), который преобразует имя гарантированно обратимым способом.

31. Могу уверенно предположить, что этот словарь нецензурных слов не содержит фамилий.
Это распространённая ошибка: многие «плохие слова» не плохие в других языках, а некоторые используются в именах. Кроме того, не каждое общество ограничивает, какие слова можно использовать в имени: вполне возможно, что чьё-то имя присвоено в такой юрисдикции.

32. Имена людям даются при рождении.
Роды регистрируются в большинстве стран, однако эффективность этой системы неодинакова.

Точные правила различаются в зависимости от юрисдикции, но всегда допускается некоторая задержка в регистрации рождения. Допустимая просрочка варьируется от трёх недель (Шотландия) до двух месяцев (Австралия), но есть и больше.

Имя ребенка может быть записано в момент регистрации рождения, но это не всегда происходит (кое-где детей по-прежнему регистрируют с именами вроде Baby Boy или Baby Girl, когда у родителей возникают проблемы с выбором имени или если ребёнок является подкидышем, например).

33. OK, может не при рождении, но довольно скоро после него.

34. Ладно, ладно, в течение года или около того.

35. Пять лет?

36. Ты шутишь, верно?
Есть культуры, в которых взрослое имя человеку не дают до полового созревания. До этого у ребенка может быть «молочное» или временное имя.

37. Две различные системы, в которых указано имя одного и того же человека, будут использовать для него одно и то же имя.
Если бы это было так, то не существовал бы рынок программного обеспечения для согласования различных баз данных.

В моём личном случае одни системы содержали моё официальное имя, в том числе второе имя, а другие — только имя и фамилию или сокращённое имя и фамилию. И это ещё простой случай. Моя жена в некоторых системах указана по девичьей фамилии, а в других — с фамилией мужа, с полным именем или без, со вторым именем или без и с любым из двух написаний её сокращённого имени.

38. Два различных оператора ввода данных, если им дать имя человека, обязательно впишут один и тот же набор символов, если система хорошо спроектирована.
Представьте, что происходит, когда человек вводит имя, которое слышит по телефону. Например, Томсон и Томпсон; или Джонсон, Джонстон, Джонстоун и Джонссон.

39. Люди, чьи имена ломают мою систему, — странные чужаки. У них должны быть нормальные, приемлемые имена, вроде 田中太郎.
Нет, ваша система плохо спроектирована.

В частности, вышепомянутое имя часто встречается как имя иностранца в аниме (и манге). Были и реальные люди с таким именем.

40. У людей есть имена.
Для этого случая, пожалуй, труднее всего привести убедительные примеры. Существовала изолированная культура, в которой никто не имёл имен: они называли друг друга относительными терминами, такими как «старшая сестра моей матери».


Итак, мы сделали это: нашли примеры (почти) для всех сорока пунктов из статьи Патрика Маккензи «Заблуждения программистов об именах». Если вы чувствуете некоторый переизбыток информации, то подведём краткий итог. Вот самое главное при разработке системы, которая обрабатывает имена:
  • Не используйте такие термины, как «первое имя» или «христианское имя»: просто «имя» (given name) является наиболее распространённым термином.
  • Имейте в виду, что половина мира сначала указывает фамилию.
  • Во многих культурах используется иная система, чем одна фамилия, общая для всех членов семьи. Некоторые используют патроним или матроним (иногда не один); а у других вообще нет фамилии.
  • Пунктуация может быть жизненно важной частью имени: ирландская фамилия О'Хара не совпадает с японской фамилией Охара. Имя Жан-Пьер не совпадает ни с именем Жанпьер, ни с именем Жан Пьер, и Жан-Пьер — это одно имя, а Жан Пьер — два отдельных имени.
  • Пробелы не обязательно разделяют части имени и фамилии: де ла Круз — одна фамилия, а не три отдельных; китайские имена в ханзи пишутся без пробелов между именем и фамилией.
  • Использование прописных букв не так очевидно: фамилия ван дер Меер может писаться с прописной буквы при использовании без имени, но со строчной после имени.
  • Используйте имя целиком, а не разбивайте его на части. Например, не пытайтесь обратиться к человеку как «господин последнее-слово-в-имени»: тут возможны ошибки в разных случаях:
    • Если фамилия пишется перед именем (например, китайская).
    • Если корректно использовать патроним, а он не последний.
    • Если фамилия состоит из более чем одного слова, например, испанская фамилия де ла Торре
    • Если имя содержит суффикс, например, «младший».

Наконец, я настоятельно рекомендую ознакомиться с небольшим руководством по именам в статье от W3C.

Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий