RUSMARC  
RUSMARC

Публикации

Наборы символов в RUSMARC

О.Н.Жлобинская
Российская национальная библиотека

Для обеспечения обмена данными в RUSMARC, как и в UNIMARC, используются стандарты ISO на наборы символов. Формат определяет, что маркер записи, справочник, индикаторы, идентификаторы подполя и кодовые обозначения, указанные в записи, должны кодироваться с использованием управляющих функций и графических символов по ISO 646 (IRV). Этот набор данных (ISO 646) рассматривается как основной набор (набор по умолчанию) для записи. В случае, если в записи требуется множество наборов символов, используется техника расширения кода, указанная в ISO 2022

Наборы символов, используемые в записи, указываются в поле 100, подполе $a: позиции символов 26-29 определяют основные наборы, позиции символов 30-33 – дополнительные наборы символов. При этом используемые наборы символов должны быть зарегистрированы ISO, но также могут быть предметом договора между участниками обмена.

Подробная информация о наборах символов, используемых в UNIMARC, приведена в Приложении J Руководства по UNIMARC.

В записях RUSMARC может использоваться 7-битная или 8-битная система кодирования символов. Условия и правила использования  наборов символов соответствуют международному стандарту ISO 2022. Кроме того, может использоваться и 16-битная система кодирования символов в соответствии с ISO 10646

Текст ISO 2022, к сожалению, доступен только за деньги, но существует его полный бесплатный аналог ECMA-35. Кроме того, существует стандарт ГОСТ 27466-87 Наборы символов в 7- и 8-битных кодах. Методы расширения кодов.

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

7-битная кодовая таблица состоит из 8 столбцов и 16 строк (всего 128 символов). Столбцы нумеруются от 00 до 08, строки - от 00 до 15. Позиция символа в таблице обозначается x/y, где x - номер столбца, y - номер строки. Область управляющих символов - столбцы 00 и 01 (позиции 00/00 - 01/15), область графических символов - столбцы 02-07 (позиции 02/00 - 07/15). Позиции 02/00 и 07/15 занимают соответственно символы SPACE (пробел) и DELETE (удаление). Таким образом, 7-битный набор символов включает 32 управляющих символа, 94 графических символа, символы SPACE и DELETE

В 8-битной таблице  пространство из 28=256 символов разделено на области:

CL (Control Left) - 00/00 - 01/15
GL (Graphic Left) - 02/00 - 07/15
СR (Control Right) - 08/00 - 09/15
GR (Graphic Right) - 10/00 - 15/15

Использование кодовых таблиц предполагает предварительное назначение (определение, designation) наборов символов, которые будут использоваться, а затем вызов (загрузка, invocation) одного из заранее определенных наборов в качестве рабочего (или текущего). И в 7-битной, и в 8-битной системе одновременно могут быть назначены 2 набора управляющих символов и 4 набора графических символов. Эти наборы символов называются соответственно C0 / С1, G0 / G1 / G2 / G3

Рабочими (текущими) в 7-битной таблице одновременно могут быть 2 набора управляющих символов и один набор графических символов. В 8-битной таблице одновременно рабочими (текущими) могут быть 2 набора управляющих символов и 2 набора графических символов (изначально рабочими являются наборы G0 и G1). Предусмотрен механизм переключения - вызова одного из наборов Gn на место GL или GR, т.е. любой из четырех предварительно назначенных наборов можно сделать рабочим

Таким образом, можно одновременно задать до четырех различных наборов символов и переключаться между ними специальными кодами

Далее, каждый из наборов графических символов G0/G1/G2/G3 тоже можно сменить на дополнительный набор с помощью специальных  «назначателей» (designators) - ESC-последовательностей. Формат этих последовательностей также описан в ISO 2022.

Наборы управляющих символов в RUSMARC

Наборы управляющих символов C0 и C1 в RUSMARC (как и в UNIMARC) являются фиксированными. Назначать и вызывать их в записи не требуется

Набор C0 – это набор 32 контрольных символов, определенных в ISO 646. Этот набор содержит основные управляющие символы, а также разделитель подполей, разделитель подполей, разделитель записей. И в 7-битной, и в 8-битной таблице набор C0 располагается в столбцах 00-01

Набор C1 –  набор управляющих символов из числа определенных в ISO 6630 (Documentation—Bibliographic control characters. Документация - Символы библиогрфического контроля). В настоящее время в RUSMARC (как и в UNIMARC) допущены к использованию только следующие символы из этого набора:

NSB ‘Non-sorting character(s) beginning’ - (позиция 08/08) – начало строки несортируемых символов,

NSE ‘Non-sorting character(s) ending’ (позиция 08/09) – конец строки несортируемых символов,

PLD ‘Partial Line Down’

PLU ‘Partial Line Up’

Символы NSB и NSE определяют строки символов, не учитываемые при сортировке. NSB вставляется в данные непосредственно перед символами, не учитываемыми при сортировке; NSE  вставляется в данные непосредственно после несортируемых символов.

При выгрузке записи в формат ISO 2709 эти символы заменяются соответственно на символы 88Н и 89Н.

В 7-битной таблице символы набора C1 представлены двумя символами ‘ESC F’, где ESC – это символ, занимающий позицию 1/11 в управляющем наборе C0, а F – это битовая комбинация битов из столбцов 04 и 05. Битовые комбинации F, ассоциированные с каждой из функций, предусмотренных в ISO 6630, определены ISO при регистрации набора (см. соотв. раздел).[ NB: в 7-битной среде ‘ESC F’ замещает битовые комбинации кодовой таблицы функций ISO 6630.]

В 8-битной записи набор C1 располагается в столбцах 08 и 09, и функции управляющих символов представлены их битовыми комбинациями в кодовой таблице

Наборы графических символов в RUSMARC

Как уже говорилось, одновременно можно определить четыре набора символов: G0, G1, G2, G3

Набор G0 в RUSMARC – всегда ISO 646. Все символы маркера записи, справочника, кодированных полей и подполей, индикаторы полей и коды подполей – это всегда символы, определенные в ISO 646. Таким образом, запись RUSMARC всегда начинается с набора символов ISO 646 в качестве рабочего набора

Кроме того, в записи одновременно можно назначить еще от одного до трех наборов символов – G1, G2, G3

Основные и дополнительные наборы символов, используемые в записи, определяются в поле 100$a (двухсимвольные коды в позициях 26-33):

позиции 26-27 – набор G0,

позиции 28-29 – набор G1,

позиции 30-31 – набор G2,

позиции 32-33 – набор G3

Если набор G1 не нужен, позиции 28-29 содержат символы пробела: '##'

Если дополнительные наборы символов не требуются, позиции 30-33 содержат символы пробела: "####"

Используются следующие двухсимвольные коды:

01 = ISO 646, версия IRV (основной латинский набор)
02 = ISO регистрация #37 (основной кириллический набор)
03 = ISO 5426 (расширенный латинский набор)
04 = ISO DIS 5427 (расширенный кириллический набор)
05 = ISO 5428 (греческий набор)
06 = ISO 6438 (набор кодированных африканских символов)
07 = ISO 10586 (набор символов грузинского алфавита)
08 = ISO 8957 (набор символов иврита) таблица 1
09 = ISO 8957 (набор символов иврита) таблица 2
10 [Зарезервировано]
11 = ISO 5426-2 (латинские символы, используемые в редких европейских языках и устаревших типографиях)
50 = ISO 10646 (Unicode)
79 = Code Page 866
89 = WIN 1251
99 = KOI-8

Набор символов ISO 10646, будучи 16-битным набором символов, содержит все необходимые символы. Если позиции 26-27 содержат код "50", то он используется для наборов управляющих символов C0, C1, а также для наборов графических символов G0, G1, G2, G3. Никакого дополнительного назначения не требуется. Позиции 28-33 содержат символы пробелов.

Если в записи используется не более 4 наборов символов, информации в поле 100 достаточно для того, чтобы назначить необходимые наборы. В дальнейшем эти наборы могут быть вызваны по мере необходимости с помощью специальных команд-переключателей. [Необходимо заметить, что маркер, справочник, поля кодированной информации всегда записаны в ISO 646, поэтому назначение наборов G1, G2, G3 всегда происходит до того, как какие-либо дополнительные наборы символов встречаются в записи.]

7-битная кодовая таблица

В 7-битной записи 4 предварительно назначенные набора символов вызываются с помощью следующих переключателей (locking shifts), определенных в ISO 2022:

Акроним

Полное название

Комбинация(и) битов

Вызываемый набор

SI

Shift in

0/15

G0

SO

Shift out

0/14

G1

LS2

Locking shift two

ESC 6/14

G2

LS3

Locking shift three

ESC 6/15

G3

Shift In – переключение на стандартный набор символов

Shift Out – переключение на альтернативный набор символов

Эти команды являются "блокирующими", т.е. вызванный набор остается рабочим до тех пора, пока соответствующей shift-функцией не будет вызван другой набор символов

Поскольку набор G0 (ISO 646) всегда является рабочим набором любой записи, переход Shift_In к этому набору применяется только в том случае, если до этого был сделан переход на один из наборов G1, G2 или G3. Кроме того, набор G0 (ISO 646) должен быть рабочим в конце каждого подполя и поля, так как обработка последующих кодов подполей или справочника требует ISO 646 в качестве рабочего. Для этого до разделителя поля или разделителя подполя должна быть включена команда Shift_In

Кроме того, в 7-битной системе допускается единичный вызов отдельных символов из набора G2 или G3. В этом случае вызов набора символов действует только на один символ, и после этого автоматически рабочим набором вновь становится тот набор, который был рабочим до команды "Single Shift"

Акроним

Полное название

Комбинация(и) битов

Вызываемый набор

SS2

Single shift two

ESC 04/14

G2

SS3

Single shift three

ESC 04/15

G3

Пример:

200: 1 $aLa Parole int00/14é00/15rieure$e[Recueil]$fGabriel Bergounioux

В этой записи набор символов ISO 5426 (расширенный латинский набор) был определен в качестве набора G1, и для того, чтобы включить в запись символ é из этого набора, используются команды Shift-Out и Shift-In

Пример:

200: 1 $aLa Parole int01/11 04/14érieure$e[Recueil]$fGabriel Bergounioux

В этой записи набор символов ISO 5426 (расширенный латинский набор) был определен в качестве набора G2, и для того, чтобы включить в запись символ é из этого набора, используется команда Single Shift Two

8-битная кодовая таблица

В 8-битной записи 4 предварительно назначенные набора символов вызываются с помощью следующих переключателей (locking shifts), определенных в ISO 2022:

Акроним

Полное название

Комбинация(и) битов

Вызываемый набор

Столбцы, подвергаемые изменению

LS0

Locking Shift Zero

00/15

G0

02-07

LS1

Locking Shift One

00/14

G1

02-07

LS1R

Locking Shift One Right

ESC 07/14

G1

10-15

LS2

Locking Shift Two

ESC 06/14

G2

02-07

LS2R

Locking Shift Two Right

ESC 07/13

G2

10-15

LS3

Locking Shift Three

ESC 06/15

G3

02-07

LS3R

Locking Shift Three Right

ESC 07/12

G3

10-15

Эти команды являются "блокирующими", т.е. вызванный набор остается рабочим до тех пор, пока соответствующей shift-функцией не будет вызван другой набор символов

 

Первоначально рабочим набором любой записи всегда является набор G0 (ISO 646) в столбцах 02-07, и набор G1 в столбцах 10-15, поэтому переключение на эти наборы применяется только в том случае, если ранее в этих столбцах были загружены наборы G2 или G3.

В конце поля рабочими должны быть наборы G0 (ISO 646) и набор G1, определенный в поле 100 (поз. 28-29), поэтому в том случае, если внутри поля был осуществлен переход на другие наборы символов,  обратное переключение необходимо осуществить до разделителя поля или разделителя подполя

Команды переключения, которые не являются блокирующими, в 8-битной среде не применяются

Пример:

200: 1 $aLa Parole intérieure$e[Recueil]$fGabriel Bergounioux

В этой записи набор символов ISO 5426 (расширенный латинский набор) был назначен в качестве набора G1 (поле 100$a  поз.28-29 = 03). В 8-битной среде дополнительное переключение не требуется

Пример:

300: ##$aПер. изд.: Uro : En reise i det mod. selvet / Finn Sk01/11 07/13å01/11 07/14rderud. - Oslo, 2000

G0 - основной латинский набор (ISO 646),

G1 - основной кириллический набор (ISO регистрация #37),

G2 - расширенный латинский набор (ISO 5426)

100 $a/26-33 = 010203##

Обращение к символам основного латинского и кириллического набора не требует дополнительных указаний. Символ å находится в расширенном латинском наборе, который вызывается в столбцах 10-15 командой Locking Shift Two Right (ESC 7/13), временно замещая основную кириллицу. После того, как необходимый символ введен, возвращаемся к основному кириллическому набору с помощью команды Locking Shift One Right (ESC 7/14)

Пример:

200: 1 $aLa Parole int01/11 07/13é01/11 07/14rieure$e[Recueil]$fGabriel Bergounioux

G1 - основной кириллический набор,

G2 - набор символов ISO 5426 (расширенный латинский набор)

Для того, чтобы включить в запись символ (é) из этого набора, используется команда Locking Shift Two Right (ESC 7/13), который загружает набор символов G2 на место G1. Затем в столбцах 10-15 вновь вызывается набор G1 с помощью команды Locking Shift One Right (ESC 7/14)

Дополнительные наборы графических символов

Итак, в поле 100 можно определить до 4 наборов графических символов, и затем по мере необходимости вызывать их в записи. Может возникнуть ситуация, когда 4 наборов окажется недостаточно. В таких случаях используется техника расширения кода, указанная в ISO 2022. Дополнительные наборы символов можно вызывать вместо наборов, указанных в поле 100, с помощью специальной управляющей ESC последовательности, имеющей вид 'ESC I F'.

Здесь элемент переключающей последовательности 'I' - это один или несколько символов, которые задают набор Gn следующим образом:

Однобайтная кодировка

Многобайтная кодировка

Назначаемый набор  Gn

2/8 или 2/12

2/4 2/8 или 2/4 2/12

G0

2/9 или 2/13

2/4 2/9 или 2/4 2/13

G1

2/10 или 2/14

2/4 2/10 или 2/4 2/14

G2

2/11 или 2/15

2/4 2/11 или 2/4 2/15

G3

Финальный символ 'F' указывает назначаемый набор графических символов. Это комбинация битов из столбцов 4-7, назначаемая ISO при регистрации набора символов. Финальные символы для наборов, принятых для использования в UNIMARC, приведены ниже

F

Набор графических символов

4/0

ISO 646 (IRV), основной латинский набор

5/0

ISO 5426, расширенный латинский набор

4/14

ISO регистрация #37, основной кириллический набор

5/1

ISO DIS 5427, расширенный кириллический набор

5/3

ISO 5428, греческий набор

4/13

ISO 6438, набор кодированных африканских символов

Таким образом, элемент I определяет, какой набор будет заменен, а элемент F – какой набор назначается на его место.  Если в записи требуется пятый набор символов, его необходимо сначала назначить на место набора Gn с помощью ESC-последовательности, а затем вызвать с помощью Shift-механизма, описанного ранее. Если в поле был назначен и загружен дополнительный набор символов, до конца поля необходимо вернуть оригинальный набор Gn, заданный в поле 100, с помощью соответствующей ESC-последовательности. На выходе из поля наборы символов G0, G1, G2 и G3 должны быть такими, как определено в поле 100

Пример

454 #0$1700#0$aКсенофонт$150010$a01/11 02/09 05/03 01/11 07/14Άπ ομνημονευματα01/11 02/09 04/14 01/11 07/14

01/11 02/09 05/03 - назначение греческого набора в качестве G1

01/11 07/14 - вызов назначенного набора G1 в столбцах 10-15

01/11 02/09 04/14 - обратное назначение основного кириллического набора в качестве G1

01/11 07/14 - вызов назначенного набора G1 в столбцах 10-15

Запись в этом примере описывает болгарский перевод документа на греческом языке, язык каталогизации - русский. В поле 100 указаны следующие наборы символов (01020304):

                        G0       ISO 646, основной латинский набор

                        G1       ISO, регистрация #37, основной кириллический набор

                        G2       ISO 5426, расширенный латинский набор

                        G3       ISO DIS 5427, расширенный кириллический набор

Когда в поле требуется греческий набор символов для включения оригинального заглавия на греческом языке, этот набор сначала назначается на место набора G1 (с помощью управляющей последовательности ESC 2/9 5/3), затем загружается в столбцах 10-15 с помощью управляющей последовательности ESC 7/14). Прежде чем выйти из поля, на место G1 вновь назначается основной кириллический набор (с помощью ESC 2/9 4/14), и он вновь загружается в столбцах столбцах 10-15 (с помощью ESC 7/14)

Таким образом, в случае 7-битной и 8-битной кодировки в записи RUSMARC можно определить до 4 наборов графических символов, и затем по мере необходимости вызывать их в записи. В случае, если 4 наборов окажется недостаточно, техника расширения кода, указанная в ISO 2022, позволяет переключиться  на дополнительный набор символов и ввести в запись символы из другой кодовой таблицы. В случае использования UNICODE, этот набор символов содержит все необходимые символы,  используется для наборов управляющих символов C0, C1, а также для наборов графических символов G0, G1, G2, G3, и никакого дополнительного назначения наборов символов не требуется

Дата обновления: 12-11-2015