Мнение отдельно взятого индивидуума не обязательно может совпадать с мнением целого консорциума, устанавливающего планку мировых стандартов, но ведь и разработчики стандартов иногда могут ошибаться…
Здравствуйте уважаемые читатели Магазеты. Если предыдущая моя статья была посвящена исключительно вопросам фонетики диалектов, то в этой работе можно увидеть полную противоположность, поскольку будут рассмотрены аспекты китайской иероглифики в рамках стандарта Unicode (Юникод). В настоящее время перед разработчиками стандарта Unicode встаёт интересная дилемма: с одной стороны дополнительные плоскости стандарта пока ещё дают огромный запас возможных кодировочных мест для китайских иероглифических знаков, а с другой стороны, может быть пора уже перестать экстенсивно наращивать численность CJK иероглифов и пойти несколько иным путём…
Вступление
В 2011 году исполнилось 20 лет существования стандарта Unicode. Тогда не нужно было быть семи пядей во лбу, чтобы понять — конфликты однобайтовых кодировок и особенно китайская иероглифическая письменность сильнее всего подхлестнули развитие единого мирового стандарта символов с двухбайтовой кодировкой. А давайте-ка вспомним 1998–2000 годы. Это было золотое время начала массового вхождения стандарта Unicode в нашу компьютерную повседневность. И тогда ещё часто можно было ощущать на себе подобные неприятные конфликты кодовых страниц при открытии разных документов в Word, Visio и др. А в Adobe Photoshop только путём умелых махинаций в системном реестре с хитрой подменой кодировок CP1251->CP1252 можно было вставить фразу на кириллице. А что сейчас? А сейчас пользователю гарантируется, что никаких потерь информации от сбоя кодировок хотя бы у юникодовской (UTF-8) интернет-странички не произойдет, ни на кириллице, ни на арабице, и любой китайский иероглиф гарантированно воспроизведётся при открытии (разумеется, только при наличии установленного азиатского шрифта в системе).
CJK Unicode
Теперь непосредственно про основную тему статьи — CJK-направление в Unicode. Изначально число китайских иероглифов в блоке CJK Unifed Ideographs — основном костяке в стандарте Unicode — было равно 20 902, многим это уже тогда казалось запредельным числом. Этот набор полностью охватывал многие стандартные восточноазиатские кодировки GuoBiao, Big5, KSC, JIS. Казалось, что всё так и будет, все были довольны, но неоднократно заявлял о себе Гонконг с его прогремевшей в «интернетах» проблемой иероглифа (+U282E2) «лифт» и недостатка др. знаков. Ещё вспомнили, что оказывается и во Вьетнаме в своё время чересчур увлеклись конструированием значков Тыы Ном, коих теперь насчитывают тысячами, хотя вьетнамские иероглифы сейчас представляют чисто исторический интерес для специалистов. В общем, неизбежно встал вопрос о расширениях. Посмотрим на хронологию стремительного увеличения популяции ханьцзы в стандарте Unicode за счёт расширений.
———————————————-
CJK Unicode 1.0 (1993) – 20902 字
CJK-ExtA Unicode 3.0 (1999) – 6582字
CJK-ExtB Unicode 3.1 (2001) – 42711字
CJK-ExtC Unicode 5.2 (2008) – 4149字
CJK-ExtD Unicode 6.0 (2010) – 222字
CJK-ExtE – planned >16000字, но после2007 г. ~ 10 000字
————————————————-
Итого ~ 85 000字 (держитесь китаисты, возможно, это ещё не предел!)
Не пора ли остановиться, и от экстенсивного пути развития стандарта перейти к интенсивному?
Язык описания структуры иероглифической декомпозиции (IDEOGRAPHIC DECOMPOSITION SEQUENCE).
Именно в этом магическом сочетании многие теперь видят спасение от «перенаселённости» из-за ханьцзы в дружной и многонациональной семье символов стандарта Unicode. Прежде всего, под этим, как задачу «максимум», пока неявно надо подразумевать перспективу динамической генерации иероглифов, из имеющихся в шрифтовом наборе составляющих графем с указанием типа декомпозиции знака прямо в набираемом тексте (по крайней мере, я понял это именно так). Из существующих на сегодня способов композиционного описания:
1) Wenlin CDL (Character Description Language)
2) Ideographic Decomposition Sequence,
остановимся на втором – Ideographic Decomposition Sequence. Именно он неявно был постулирован в самом стандарте Unicode путем введения блока под символы декомпозиции (Ideographic Description Characters) ещё в1999 г. Что представляет собой строка о декомпозиции знака? Это просто описание составляющих частей иероглифа и описание применённого типа декомпозиции:
Это может быть развернутая полная запись (представлена выше на рисунке), либо бинарная запись из двух операндов. Т. е. таким простым образом можно удобно записывать структуру иероглифа для методов ввода, для обучения и запоминания, а также для решения многих других задач. Вот стандартизованные символы для обозначения декомпозиции (вверху латинская мнемоника, внизу номер символа в стандарте Unicode).
Большинство операций декомпозиции – операторы бинарного типа. Это значит, что нужны два операнда и один символ для представления информации о структуре иероглифического знака (декомпозиции). Тринарными являются только операции с мнемоническими кодами LCR и UCD. Преобладающая бинарность операций продиктована самим фундаментальным способом образования иероглифа, чаще всего сводящимся к простой формуле:
«иероглиф»=«ключевая часть»+«фонетик или семантик, не ключевая часть».
Операции с использованием трех частей, по-видимому, включены разработчиками как расширенные, для ускорения декомпозиции или в случае отсутствия в стандартном наборе какой-либо сложной составной части отдельно взятого иероглифа.
Примеры бинарных операций:
Примеры операций декомпозиции типа OV(OVERLAID):
Сама запись декомпозиции для каждого ханьцзы будет ещё и полезна для дальнейшего развития самой CJK стандартизации в Unicode. К примеру, знак, для которого попросту не получилось декомпозиции – тогда мы имеем тот самый истинный радикал, несоставной иероглиф, который послужит кирпичиком для более сложных составных ханьцзы. Именно из таких есть смысл формировать новые таблицы базовых радикалов и это будут не классические 214 ключей Кан Си, а что-то иное. Либо имеется иероглиф, для которого так и не было найдено второй декомпозиционной половинки в современных CJK Extensions, тогда эта половинка, по идее, должна будет быть обязательно включена как самостоятельный знак в стандарт Unicode в последующих расширениях. И вот здесь может начаться конфликт мнений. Ведь, по сути, базовой предпосылкой для вставки иероглифа в расширения Unicode является его наличие в каком-нибудь признанном древнем или не очень древнем иероглифическом словаре. Но когда мы начинаем вставлять просто сегментированные, «вырванные» из знаков графемы, ревнители «расовой чистоты» словарного происхождения иероглифов для Unicode могут встать в позу: – «Не позволим, дескать, засорять мировой стандарт безродными значками, взятыми из ниоткуда!». Похоже, что именно в такой противоречивой ситуации находятся сегодня разработчики стандарта.
Сразу очевидно, что большинство типов декомпозиции в первом приближении, в принципе, не требуют дополнительной координатной информации для взаимосопряжения соединяемых элементов, расположенных в квадратном окне результирующего иероглифа. В конце концов, хотя бы сам ключевой знак уже может подсказать оптимальные размеры, в которые необходимо вписать второй подчинённый знак. А вот у типа декомпозиции (+U2FFB) – OVERLAID для точного воспроизведения иероглифа зачастую жёстко необходима дополнительная информация по координатам сопряжения и трансформации двух объединяемых знаков. Поэтому сам описываемый в этой статье принцип записи декомпозиции или композиции, будет уже неприменим без координатной информации, в частности, для динамической генерации иероглифов типа OVERLAID (+U2FFB) .
Да и для остальных типов декомпозиции в рамках динамической генерации новых иероглифов стоит отметить один маленький «недостаток». Некоторые не ключевые элементы, особенно располагающиеся слева от ключа (это ситуация, когда ключ стоит справа в композиции типа LEFT TO RIGHT), при вставке в новый знак могут немного видоизмениться. Например 改=己[LR]攵. Т.е. тогда в предполагаемой шрифтовой технологии необходимо будет закладывать ещё и варианты трансформации (подстановки) формы знака в зависимости от типа декомпозиции и места расположения иероглифа внутри квадратной иероглифической области.
Потенциал шрифтовых технологий для динамической генерации иероглифов.
Конец 90-х годов прошлого века это ещё и время начала победного шествия для расширения стандарта TTF – технологии Open Type. Эта технология сейчас обеспечивает поддержку всех систем сложных языковых письменностей: и письма справа налево, и разных форм букв в зависимости от положения в слове (арабский), динамического образования лигатур (деванагари, бенгали…) и многого другого. Только в шрифтах с поддержкой технологии Open Type лигатуры и разные формы одной буквы должны быть так или иначе заранее прорисованы в наборе символов, и могут быть с индексом или даже без индекса Unicode. Но для описываемой в этой статье динамической генерации иероглифов, скрытых или запасных символов «заготавливать» не надо. Достаточно будет только базового иероглифического набора, лишь бы он максимально охватывал все потенциально возможные варианты генерируемых составных иероглифов. Я не специалист, но возможно, что при некоторой доработке, технология Open Type всё-таки может быть пригодна и для динамической генерации иероглифов по записанной непосредственно в тексте строке композиции (декомпозиции). Т.е. мне видится это так: при так называемом польском формате записи [OPERATION, OPERAND1, OPERAND2] и при обнаружении, например, в потоке символов знакомого нам знака U+2FF0, после него сразу же должна следовать выборка ещё двух иероглифических знаков (поскольку это бинарный оператор), причём первый знак располагается масштабированием справа, второй – слева, например ([LR]氵光)=>洸. Оптимальную ширину пропорции деления на две половинки в декомпозиции U+2FF0 (IDEOGRAPHIC DECOMPOSITION LEFT TO RIGHT) можно сделать заранее переменной, исходя из используемого ключевого знака, и это может быть заложено в выбранном шрифте в виде некоторой информации о базовых правилах композиции знака с различными ключевыми элементами. Скорее всего, качество графики таких иероглифов, даже при учёте переменной ширины пропорции разделения, будет всё равно не совсем гармоничным и идеальным, зато формально всё это будет работать. А теперь можно предельно упрощённо подсчитать, сколько из базового набора, содержащего, например 50 000 знаков, можно будет получить новых знаков, хотя бы при однократной бинарной генерации по простейшему принципу композиции «ключ» + «знак». Это будет астрономическое число и равно оно 214*50000=10 700 000 знаков. А уж сколько вариантов можно получить при сложных типах композиции в несколько действий, даже страшно считать! Т.е. это может фактически остановить неудержимое и экстенсивное наращивание новых CJK расширений стандарта Unicode. И знаменитый мегаиероглиф с нестандартным для путунхуа звучанием [biang] наконец-то можно будет записать в тексте вот так (c учётом расширенных нововведений, о них см. ниже по тексту):
А сколько же ещё по всему Китаю разнообразных ресторанов и закусочных, в которых каждый хозяин, просто из кожи вон лезет, чтобы придумать свой оригинальный иероглиф в названии заведения, так что же, их также надо вносить в стандарт — вот тогда точно Unicode может просто лопнуть.
Но повторю, динамическая генерация китайских иероглифов из строки текстовой записи по обобщённой формуле:
[NEW_HZCHAR]=[HZCHAR1]+<DECOMPOS>+[HZCHAR2]
теоретически способна удовлетворительно работать для всех типов декомпозиции, кроме OVERLAID (U+2FFB). Внешне это будет выглядеть уже как некий гибрид, с одной стороны это развитая шрифтовая технология, с другой – практически вполне самостоятельный редактор метода ввода (IME).
Весьма отдалённым примером экономичности при реализации подобного подхода служит многим известный шрифт MS Song. Его размер всего лишь 2,5 МБт, а он содержит все 20 902 иероглифа из основного CJK блока Unicode. Другие аналоги этого шрифта имеют размер файла TTF около 15–20 МБт. А весь секрет в том, что при формировании иероглифических символов в MS Song в рамках классического формата TTF просто использованы перекрёстные ссылки на другие заранее уже сформированные символы, и также задаётся пространственное смещение для сопряжения нескольких частей вновь образуемого иероглифа. Размер ссылки на глиф и информация о пространственном положении и масштабировании этого «ссылочного» глифа всегда занимают на порядок меньше места, чем полная прорисовка этого же знака в иероглифе заново по всем точкам символьного контура. А в большой массе иероглифов от раза к разу тысячекратно повторяющихся элементов более чем предостаточно. Т. е. выгодно иметь только базовый набор и некие простые правила формирования новых сочетаний из этого базового набора – это занимает меньше места. Именно в чём-то аналогичный путь дальнейшего развития стандарта в области кодирования CJK-иероглифов необходимо выбирать дальше для развития стандарта Unicode.
Недостатки метода динамической генерации пока не рассматриваю, но я отмечу, что даже удовлетворительная сортировка в тексте иероглифов, полученных таким путём, потребует нововведений, возможно, даже на уровне операционной системы. Ведь на логическом уровне, в тексте это будет строка иероглифов, и если ключ будет стоять справа или внизу, то сортировка такой строки приведет к неправильному положению знака в столбце после сортировки. Т.е. для правильнйо сортировки необходим и учёт ключ и учёт количества черт составляющих компонентов, а это уже системная информация, в шрифтах её нет.
Неполнота представления знаков
Казалось бы, теперь всё выглядит довольно понятно и безоблачно – бери и кодируй таким образом декомпозицию для всех CJK иероглифов из расширений Юникода, но есть одна серьёзная проблема – это неполнота представления составных частей иероглифов для небольшой части используемых знаков в составе CJK-расширений стандарта Unicode. Т. е. с помощью бинарного способа пока ещё не для всех ханьцзы в настоящее время имеется возможность полного представления типа A = B + C. Но это относится именно к бинарной форме представления операции композиции. Если невозможно представить запись декомпозиции иероглифа в виде одной операции, просто из-за отсутствия одной из составных частей знака в стандарте Unicode, то вполне возможна полная запись этого знака путём двух-трёх операций декомпозиции, для которых наличие менее сложных составных частей будет всегда более вероятным. Но удобство бинарного представления (одна операция и два операнда) записи декомпозиции китайского иероглифа наиболее удачно можно использовать для хранения в иероглифических базах, поскольку так всегда можно выделить ключевую и не ключевую часть знака, а это удобно для группирования и сортировок родственных знаков. Но даже если вдруг идея развития динамической генерации иероглифов потерпит техническое фиаско, то ещё остаются структурные методы ввода, и такое представление структуры знака будет очень удобно для быстрой генерации строк в соответствии с взаимоувязанной по не ключевым знакам системой кодирования различных методов.
Неявные ключевые знаки
Многие китаисты наверняка замечали некую скрытую систематичность среди небольшого числа редких иероглифов. Это я о том, что существует гораздо большее количество знаков, которые можно было бы также считать ключевыми. Эти ключевые значки не вошли в 214 классических радикалов словаря Кан Си, но по типу образования от них новых знаков вполне могут претендовать на звание ключа. Введение или просто принятие во внимание «выделенности» знаков подобного типа может существенно обогатить принципы декомпозиции, и в то же время, поможет способствовать расширению формата декомпозиционной записи для охвата большего количества знаков, графические части которых пока еще не включены в стандарт. Вот некоторые из этих «непризнанных» ключевых знаков с отображением схемы образования нового знака от них.
Расширенная модификация декомпозиции.
Учёт неявных ключей и отсутствие некоторых составных графем в современных CJK-расширениях Unicode приводит к необходимости модифицированного описания структуры знака, которое не противоречит стандартной декомпозиции Unicode, а лишь является его расширенной надстройкой, экономично позволяющей охватить описанием намного большее число знаков, чем это возможно при классической декомпозиции в рамках набора знаков всех существующих современных CJK Extensions. Вот как выглядит эта модификация, предлагаемая автором:
Принцип интуитивно понятен, и что самое главное, этот принцип однозначен, кроме последних двух вариантов, для решения проблемы которых потребовались дополнительные нововведения.
Все эти приведенные варианты расширенной декомпозиции имеют эквивалентную запись «стандартным» методом. Но только последние два выделенных варианта свидетельствуют об острой необходимости введения дополнительных специальных унарных операций описания декомпозиции для достижения однозначности описания. Это также не помешает, а лишь дополнит стандартный подход. Предложенные здесь автором статьи (а возможно, предложенные ранее другими авторами в других источниках) альтернативные унарные операции в настоящее время отсутствуют в стандарте Unicode, поэтому номера их символов приведены в качестве рекомендованных
Большинство из представленных выше рекомендуемых унарных типов декомпозиции также имеют альтернативную «стандартную» форму записи. Хотя, особое внимание следует обратить на унарную операцию с мнемоникой Т (Triplet, предлагаемый код U+2FFE). Это именно та уникальная и обойдённая вниманием стандартизаторов операция композиции, с применением которой верхняя часть сформированного знака должна немного ужиматься по горизонтали, а не быть оставлена «размазанной» по всей ширине после композиции. Поэтому о «стандартных» аналогах декомпозиции с сочетанием двух обычных U+2FF1 и U+2FF0 конкретно для этой операции «утроения» нужно говорить весьма взвешенно.
Об упрощениях 1977 г.
Обязательно здесь я хотел бы упомянуть о второй реформе упрощения иероглифов, проведённой в КНР в1977 г., но отменённой немного позднее. Это были иероглифы, ещё более упрощённые в плане рукописного начертания. А как, например, сегодня поступать с такими знаками, забыть про них навсегда или всё-таки увековечить в стандарте для истории, ведь это тоже был кропотливый труд большого коллектива китайских специалистов в области иероглифики и языка. Но тогда речь пойдет о тысячах ханьцзы и их производных, доводящих дополнительное количество, возможно, до 5 000 знаков. В источнике [Суханов В.Ф., Упрощённые начертания и разнописи китайских иероглифов, 1980] приведены также многие варианты упрощений, принятых в1977 г., и я не могу сказать, что они совсем уж неудачны. В них действительно много здравых зёрен.
В конце концов, чтобы отмести все споры на эту тему, важнейшим количественным показателем эффективности упрощений 1956 и 1977 гг. будет простой подсчёт суммарного числа черт, к примеру, для 3000 наиболее часто употребимых знаков, и сопоставление этого количества как между собой, так и с аналогичными показателями рукописного ввода (число черт) для традиционных знаков. Однако здесь надо будет чётко различать сами упрощённые формы, разнописи и каллиграфически несовместимые с типографическими, формы откровенной скорописи для китайских иероглифов. И чтобы провести такую работу, конечно же, предварительно необходимо принятие решения о современной подготовке к стандартизации упрощений от 1977 г. и внесении их в стандарт Unicode. Возможен также несколько другой путь, основанный на динамической генерации иероглифов из строки декомпозиции. Если внести в стандарт только наиболее значимые графемы от упрощений 1977 г., то с динамической генерацией становится возможным гораздо меньшим количеством иероглифов покрыть все эти новые знаки. Ведь даже с исторических позиций, присутствие упрощённых знаков от 1977 г. в стандартных наборах сейчас, в принципе, необходимо, поскольку кто-то же из специалистов подобной тематикой всё равно занимается в Китае или за его пределами.
Упорядочивание вариантов
Приведённая выше информация касалась только структуры китайского иероглифа. Но есть ещё одно направление в стандартизации – унификация. Многие понимают, что современное чудовищное количество ханьцзы в Unicode отчасти порождено ещё и многочисленными вариантными формами различных иероглифов. Так вот, унификация копотливо разбирает эти генетические связи между иероглифами и выявляет наиболее значимого из них, так сказать – родоначальника. Какая же может быть связь между унификацией вариантов и динамической генерацией иероглифов? А очень даже непосредственная. Это позволит выбирать только базовые формы иероглифов и путем неких дополнительных преобразований динамически получать желаемый упрощённый (первое, второе упрощения), традиционный или другой тип варианта от одного базового иероглифа. И опять же, если с динамической генерацией знаков ничего не выйдет, то, в любом случае, тогда просто остаётся информация о генетической связи между основными иероглифами и их вариантными формами. Наиболее наглядной, в вопросе визуализации, для этих задач является трёхмерная XYZ концепция отображения вариантов китайских иероглифов.
XYZ концепция
Подобная концепция, прежде всего, привлекает своей наглядностью визуализации связей между основным и вариантными иероглифами. По оси Х от основного иероглифа откладываются семантические варианты, т. е. смысл иероглифа почти один, но эти иероглифы принципиально различные и не могут считаться объединенными по смысловому признаку, что-то вроде наших синонимов. По оси Y откладываются официально упрощенные формы основного иероглифа, причем традиционная, упрощенная и основная формы являются абсолютно разными иероглифами. Здесь можно условиться, что по любой оси сортировка нескольких иероглифов выполняется по количеству черт, положительное направление оси соответствует уменьшению количества черт в знаке. Поэтому на оси Y могут быть и традиционная форма одного иероглифа и упрощённая, они будут расположены с разных сторон от основного знака. И наконец, Z – это ось наименьших, так называемых вариантных различий, когда иероглиф не являясь упрощённым, всё-таки немного отличается от основного, а смысл имеет, разумеется, абсолютно такой же. Пример эффектного XYZ отображения вариантов для иероглифа 齊 (для китайского иероглифического ареала).
Неплохо было бы подобную концепцию сделать четырёхмерной. Просто добавить новую ось L (Locale), поскольку в разных регионах заимствование, упрощение иероглифических знаков и распространение их вариантов шло различными путями, т. е. L принимает перечислимые значения, как минимум, по основным региональным ареалам L=漢,日,韓,越. Ниже приведён пример таких XYZ трёхмерных гиперсрезов с четырёхмерной XYZL-структуры для иероглифа 龍.
Таким образом, задавая подобные генетические связи между знаками можно существенно упростить классификацию иероглифов, а возможно, и их динамическую генерацию.
Всё выше написанное не стоит считать навязыванием своего мнения разработчикам мирового стандарта Unicode. Это были всего лишь размышления вслух и анализ пройденного пути, а это бывает действительно часто полезно в тупиковых ситуациях или на распутье. И напоследок, я хотел бы сказать следующее. В настоящее время уже можно констатировать, что этап накопления основного массива данных в иероглифических расширениях стандарта Unicode подходит к концу. Теперь настаёт пора общего анализа, унификации и систематизации всей имеющейся в Unicode иероглифической информации, но эта работа растянется ещё не на одно десятилетие. Экстенсивное развитие стандарта Unicode плавно завершается, и теперь все наши взоры обращены в сторону проекта Unihan, одно название которого вселяет надежду, что во всей этой почти 100 000-ой куче всевозможных китайских значков рано или поздно будет наведён более строгий порядок…
Благодарю за внимание, и надеюсь, что было хоть немного интересно.
WERTA, 25/07/2012