В. А. Капустин Содержание Лекция

Вид материалаЛекция

Содержание


Лекция 2.Коммуникативный формат Z39.2
Структура записи Z39.2
Рисунок 1 — Структура записи Z39.2
Структура лидера
Структура справочника
Рисунок 3 — Структура справочника записи Z39.2
Последовательность сегментов справочника и последовательность полей данных в записи
001, и соответствующий сегмент справочника должен быть первым. Управляющие поля должны иметь метки, начинающиеся с двух цифр 00
Поля данных
Идентификатор записи
Управляющие поля
Поля данных
Рисунок 4 — Структура поля данных
Подполя и идентификаторы подполей
IL>1), то первый символ значения поля, следую­щий за индикаторами, должен интерпретироваться как разделитель подполей, а IL-1
Ограничитель поля
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   17

Лекция 2.Коммуникативный формат Z39.2


Настала пора от классификационных языков описания и каталогизации артефактов куль­туры и искусства перейти к атрибутивным. Атрибутивные языки описания и каталоги­за­ции артефактов куль­туры и искусства можно рассматривать как дальнейшее развитие фа­сетных классификаций: каждому существенному аспекту описания соответствует отдель­ный атрибут. Поскольку возможных аспектов описания и каталогизации артефактов куль­туры и искусства может быть много (в зависимости от целей описания и каталогиза­ции), то и наборы используемых атрибутов, как правило, велики. При этом более тради­ционные классификаторы, такие, как, например, УДК, выступают просто как один из ат­рибутов.

Наиболее широкое применение среди таких языков получили MARC7MAchine-Read­able Catalog, — и DC — Dublin Core7. История MARC как формата данных (его часто на­зывают коммуникативным библиографическим форматом) началась в 70-е годы XX века. В настоящее время в России применяется нес­колько диалектов этого формата: RUSMARC, UNIMARC, MARC21. Собственно Dublin Core родился в конце прошлого века как попыт­ка (не до конца удавшаяся) создать более простую альтернативу MARC, и MARC, несом­ненно, оказал значительное влияние на DC. Кроме того, MARC оказал влияние и на на­бо­ры атрибутов (описания артефактов), приме­няемые в рамках протокола Z39.50.

Но сам MARC развивался под сильным влиянием ещё более старых, уже истинно комму­никативных форматов данных, ориентированных на перенос данных (вовсе не обязатель­но связанных с артефактами культуры и искусства) на магнитной ленте. Сейчас магнитная лента как среда переноса данных ушла в историю, но последовательная передача данных (через канал связи) остаётся актуальной, поэтому подход конца 50-х – начала 60-х годов XX века всё ещё работает. Чтобы понять, как устроен MARC, нам придётся познакомиться с одним из таких коммуникативных форматов — Z39.27. Формально говоря, современные версии MARC ис­пользуют не Z39.2, а ISO27097 — международного наследника Z39.2. ISO2709 определяет бо­лее бедную структуру записи, чем Z39.2, поэтому для понимания происхождения MARC мы будем изучать именно Z39.2.

Структура записи Z39.2


Данные в формате Z39.2 передаются в виде последовательности записей.

Запись Z39.2 состоит из лидера, справочника и собственно данных (Рисунок 1). Лидер имеет фиксированную длину (24 октета). Справочник имеет переменную длину и состоит из сегментов фиксированной длины — по числу полей в данных в записи. Поля данных имеют переменную длину и могут присутствовать в записи в любом количестве, в том числе и отсутствовать вовсе. Длина записи Z39.2, включая лидер, справочник и все огра­ни­чители, не должна превышать 99 999 октетов.




Лидер1

Справочник

ОП

Идентификатор записи

ОП




Управляющее поле

ОП

● ● ●

Управляющее поле

ОП




Поле данных

ОП

● ● ●

Поле данных

ОП

ОЗ

Рисунок 1 — Структура записи Z39.2

Данные подразделяются на поля. Поля отделяются друг от друга ограни­чителя­ми по­ля (ОП, см. раздел «Ограничитель поля» ниже). Ограничитель поля также используется для отделения справочника от данных. Запись завершается ограничителем записи (ОЗ, см. раздел «Ограничитель записи» ниже). Лидер, справочник и собст­венно данные записи Z39.2 (но необязательно ограничители) содержат только символь­ные данные.

Поля данных записи Z39.2 принадлежат к одной из трёх категорий:
  • Идентификатор записи. Это поле (если оно есть) — обязательно первое поле данных записи.
  • Управляющее поле. Управляющие поля следуют за идентификатором записи, но находятся перед собственно полями данных. Управляющие поля должны содержать информацию, необходимую для корректной обработки собственно данных.
  • Поле данных содержит собственно данные и может иметь внутреннюю струк­ту­ру (индикаторы и подполя, см. раздел «Поля данных» ниже).

Структура лидера


Лидер записи Z39.2 занимает ровно 24 октета (байта). Он состоит из 12 полей фиксиро­ванной длины (см. Рисунок 2); последний — 23-й — октет зарезервирован и должен со­держать 0:
  • Длина записи (5 октетов с 0 по 4). Эти октеты должны со­держать 5 десятичных цифр (с ведущими нулями), определяющих число, равное длине записи (от нача­ла спра­вочника и включая ограничитель записи).
  • Статус (один октет — 5-й). Должен быть печатаемым символом. Обозначает отно­шение записи к другим записям (например: новая запись, обновление, указание об уда­лении и т.п.)
  • Тип записи (один октет — 6-й). Должен быть печатаемым символом. Служит для крат­ко­го обозначения структуры и назначения записи.
  • Число индикаторов поля (один октет — 10-й). См. раздел «Индикаторы».
  • Длина идентификатора подполя (один октет — 11-й). См. раздел «Подполя и идентификаторы подполей».
  • Базовый адрес данных (5 октетов с 12-го по 16-й). 5 десятичных цифр (с веду­щими нулями). Номер октета, следующего непосредственно за первым ограни­чи­телем поля в записи (с этого октета и начинаются собственно данные).
  • Длина элемента сегмента справочника, хранящего длину поля дан­ных (один октет — 20-й). Одна десятичная цифра. Для дальнейшего я обозначу зна­чение этого поля как LL. В этом поле может быть записано значение 0, и тог­да соответствующий элемент сегмента справочника отсутствует.

О структуре справочника см. следующий раздел.
  • Длина элемента сегмента справочника, хранящего смещение поля данных (один октет — 21-й). Одна десятичная цифра. Для дальнейшего я обоз­на­чу значение этого поля как LO. В этом поле может быть записано значение 0, и тогда соответствующий элемент сегмента справочника отсутствует.
  • Длина элемента сегмента справочника, зависящего от приложения (один октет — 22-й). Одна десятичная цифра. Для дальнейшего я обозначу зна­че­ние этого поля как LA. В этом поле может быть записано значение 0, и тогда со­ответствующий элемент сегмента справочника отсутствует.
  • Два поля, отведённые для использования приложениями (октеты 7–9 и 17–19).




Длина записи

Статус

Тип записи

Для прило­жения

Число
индикаторов

Длина идентификатора

Базовый адрес данных

Для прило­жения

Длины разделов справочника

0























































0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

Рисунок 2 — Структура лидера записи Z39.2

Структура справочника


Справочник состоит из сегментов, описывающих отдельные поля данных. Длина каждого сегмента справочника (количество октетов в сегменте) одинакова и равна 3+LL+LO+LA (см. Рисунок 3).




Метка

Длина поля данных

Смещение поля данных

Для приложения

 3 

LL

LO

LA

Рисунок 3 — Структура справочника записи Z39.2

Значения следующих элементов сегмента справочника: «Метка», «Длина поля данных» и «Смещение поля данных», — числовые и должны записываться десятич­ными цифрами. Значение элемента сегмента справочника «Для приложения» может содержать произ­вольные печатаемые символы.

Элементы сегмента справочника имеют следующую интерпретацию:
  • Метка. Значение метки (три алфавитно-цифровых символа кода ASCII2) явля­ет­ся обозначе­нием некоторого поля данных. Например, в стандарте MARC7 поле с меткой 200 должно содержать ин­формацию о заглавии (названии или ином идентифика­то­ре) артефакта, а поле 700 — о лице (физическом, юридическом или ином), соз­давшем артефакт.

Допускается использование повторяющихся меток и, соответственно, повторя­ю­щихся полей (например, авторов может быть ни одного, один или несколько). См., например, метку 070 в приложении «Приложение А».
  • Длина поля данных. Десятичное число, равное длине соответствующего поля данных (идентификатора записи, управляющего поля или собственно поля дан­ных), включая ограничитель поля и индикаторы (если они есть, т.е. если 10-й октет лидера не равен 0).

Если необходимо использовать поля длины большей, чем число, которое может быть записано в элементе «Длина поля данных»3 сегмента справочника, то для опи­сания такого поля в спра­вочнике используется группа последовательных сег­мен­тов, имеющих одну и ту же метку. При этом значение элемента «Длина поля дан­ных» во всех этих сегментах, кроме последнего, должно быть нулём, что озна­ча­ет, что длина части поля, к которой относится данный сегмент справочника, равна 10LL. В элементе «Длина поля данных» последнего сегмента справочника, относя­щегося к такому длинному полю, при этом должно стоять число, равное остатку от деления длины поля на 10LL.
  • Смещение поля данных. Десятичное число, равное количеству октетов, распо­ложенных между ограничителем поля, завершающим справочник, и первым ок­тетом поля данных (смещение относительно базового адреса данных, определён­ного в лидере).

Смещение первого поля данных (чаще всего это идентифи­ка­тор записи) равно 0.

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

Как уже говорилось (см. раздел «Структура лидера» выше), любое из значений LL, LO или LA может быть нулём. Стандарт Z39.2 запрещает одновременное обнуление LL и LO: либо длина поля данных, либо смещение поля данных, либо оба элемента вместе дол­жны присутствовать в сегментах справочника.

Стандарт ISO2709, использующий струк­ту­ру записи, аналогичную структуре записи Z39.2, требует одновременного присутствия в сегменте справочника и длины, и смеще­ния поля данных. В приложении (Приложение А) приведён пример записи ISO2709.

Последовательность сегментов справочника и последовательность полей данных в записи


Если запись имеет идентификатор, то метка идентификатора должна быть равна 001, и соответствующий сегмент справочника должен быть первым.

Управляющие поля должны иметь метки, начинающиеся с двух цифр 00 (00100z; идентификатор считается управляющим полем). Элементы справоч­ника, соот­вет­ст­вую­щие управляющим полям, следуют в лексикографическом порядке меток, т.е. в нача­ле поля́ с цифровыми метками, а затем поля́ с метками, оканчивающимися на буквы ла­тин­ского алфавита.

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

Поля данных


Поля данных в записи должны быть расположены в следующем порядке:
  • Идентификатор записи (метка 001).
  • Управляющие поля (метки с 002 до 00z).
  • Собственно поля данных (метки от 010) в любом порядке.

Идентификатор записи


Поле идентификатора записи содержит символьную строку, однозначно идентифициру­ющую запись среди всех записей, созданных одной организацией.

Управляющие поля


Управляющие поля расположены в том же порядке, что и соответствующие сегменты справочника записи, т.е. в порядке возрастания меток. Управляющие поля могут иметь внутреннюю структуру, определяемую приложением, которое использует запись. Эта структура не регулируется стандартом Z39.2.

Поля данных


Поля данных могут иметь внутреннюю структуру (см. Рисунок 4).




I1

● ● ●

In

D

ID1

SF1

● ● ●

D

IDm

SFm

FT

индикаторы  

подполе 1  

● ● ●

подполе m

ОП

←──────────── подполя ──────────→

Рисунок 4 — Структура поля данных
Индикаторы

Первые символы каждого поля (в количестве, равном числу индикаторов, указанном в ок­тете 10 лидера) называются индикаторами. Количество индикаторов для всех полей оди­наково, и может лежать в интервале от 0 (отсутствие индикаторов) до 9. Значения индика­торов используются для ука­зания способов обработки поля. Индикаторы широко ис­пользуются в MARC (каждое поле записи MARC содержит 2 индикатора).
Подполя и идентификаторы подполей

Поле может подразделяться на подполя. Чтобы обеспечить такую возможность, октет 11 лидера (длина идентификатора) должен содержать ненулевое значение, которое я обо­значу IL.

Если длина идентификатора равна 1 (IL=1), то фактически подполя невозможно иден­ти­фи­ци­ровать, поскольку в этом случае в качестве разделителя подполей используется единст­венный символ (обозначенный как D, Рисунок 4), т.е. в этом случае первый символ зна­че­ния поля, следу­ющий за последним индикатором, должен быть использован как раздели­тель подполей. В таком случае подполя идентифицируются их порядком.

Если длина идентификатора больше 1 ( IL>1), то первый символ значения поля, следую­щий за индикаторами, должен интерпретироваться как разделитель подполей, а IL-1 символов, следующие за разделителем подполей, должны интерпретироваться как соб­с­т­венно идентификатор подполя. В этом случае порядок следования подполей неважен.
Ограничитель поля

Ограничитель поля (FT, ОП) — один символ. Стандарт Z39.2 в качестве ограничителя по­ля использует символ с кодом 0x1E.

Ограничитель записи


Ограничитель записи (ОЗ, Рисунок 1) — один символ с кодом 0x1D.

И ограничитель поля, и ограничитель записи — непечатаемые символы (не имеют глифа — графического изображения).