Научная статья на тему 'Организация взаимодействия виртуального строкового пространства технологических данных и коммуникативного формата Marc'

Организация взаимодействия виртуального строкового пространства технологических данных и коммуникативного формата Marc Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
77
35
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Филиппов А.Н., Сисюков А.Н.

В статье описана структура российской версии коммуникативного формата MARC и его применение. Показан пример наложения полей данных формата в триплексное представление ВСПТД. Рассмотрен реализованный механизм макета документа для записей в формате RUSMARC.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Организация взаимодействия виртуального строкового пространства технологических данных и коммуникативного формата Marc»

ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ВИРТУАЛЬНОГО СТРОКОВОГО ПРОСТРАНСТВА ТЕХНОЛОГИЧЕСКИХ ДАННЫХ И КОММУНИКАТИВНОГО ФОРМАТА MARC

А.Н. Филиппов, А.Н. Сисюков

В статье описана структура российской версии коммуникативного формата MARC и его применение. Показан пример наложения полей данных формата в триплексное представление ВСПТД. Рассмотрен реализованный механизм макета документа для записей в формате RUSMARC.

Введение

Эффективное обеспечение информацией экспертных систем предполагает возможность взаимодействия с коммуникативными форматами, широко представленными в сети Интернет. Направления, в которых проводились работы по развитию формата ВСПТД [3, 4], были связаны также и с получением информации, представленной в Российском коммуникативном формате RUSMARC. Российский коммуникативный формат не является совершенно новой, отдельно стоящей разработкой - это российская версия Международного коммуникативного формата UNIMARC в трактовке и категориях действующих в России ГОСТов и Правил каталогизации, базирующаяся на выборе наиболее общих схем представления элементов данных. С практической точки зрения это означает, что любая запись, переданная в Российском коммуникативном формате, должна адекватно восприниматься любым программным обеспечением, о котором заявлено, что данное программное обеспечение работает с форматом UNIMARC.

Запись в формате MARC может быть принята из глобальной сети по протоколу Z39.50. Реализованный клиент может общаться с серверами в сети, поддерживающими спецификацию ISO 23950. При наличии в полученной записи полей категории «электронный документ» может быть получена ссылка на полнотекстовый вариант документа.

Структура формата RUSMARC

Российский коммуникативный формат (рис. 1), как и UNIMARC, реализует библиографическую запись в машиночитаемой форме в структуре международного стандарта ISO 2709. Каждая библиографическая запись, подготовленная для обмена, должна содержать:

• МАРКЕР ЗАПИСИ - состоящий из первых 24-х символов элемент записи, в котором определяются ее основные характеристики;

• УКАЗАТЕЛЬ, состоящий из 3-х цифровой метки для каждого поля данных, длины поля и позиции начального символа, относящегося к первому полю данных;

• ПОЛЯ ДАННЫХ переменной длины, отделенные друг от друга разделителем поля.

Общая структура:

МАРКЕР ЗАПИСИ УКАЗАТЕЛЬ ПЕРЕМЕННЫЕ ПОЛЯ %

% - Разделитель записи

В дальнейшем устанавливается, что данным в полях не обязательно предшествуют индикаторы, и они не обязательно подразделяются на подполя. Российский коммуникативный формат, как и UNIMARC, использует следующие положения, установленные Международным стандартом ISO 2709.

ISO 2709 предписывает, что каждая запись начинается с 24-х символьного маркера записи. Он содержит данные, относящиеся к структуре записи, определения которых

даются в стандарте ISO 2709, а также некоторые элементы данных, выделенные для особого применения. Эти элементы данных, определяемые при применении, связаны с типом записи, ее библиографическим уровнем и положением в иерархии уровней, степенью полноты записи и использованием правил ISBD или других основанных на ISBD правил подготовки записи. Элементы данных в маркере записи предназначены прежде всего для обработки записи и только косвенно - для идентификации самих библиографических материалов.

Рис. 1. Структура MARC-записи

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

Более подробное описание формата RUSMARC представлено в различных источниках [1, 2, 5].

Для работы с форматом MARC применяются сложные и дорогие программные системы, приобретение которых не всегда целесообразно. В связи с этим была поставлена задача перевода данных из формата MARC в представление ВСПТД (конвертирование). В рамках этой проблемы были выработаны следующие соглашения:

• имена подполей представляются в виде nnnx, где nnn - код поля (в формате MARC), а x - код подполя;

• имена индикаторов представляются в виде Innn;

• в качестве префиксов в триплете применяется номер повторяемости поля;

• повторяемые подполя представляются как вектор значений с заданным разделителем;

• маркеру MARC-записи присваивается код поля 000.

Пример представления записи в формате RUSMARC и ВСПТД

Рассмотрим пример библиографической записи:

Митрофанов С.П., Куликов Д.Д., Миляев О.Н., Падун Б.С. Технологическая подготовка гибких производственных систем. / Под общей редакцией С.П. Митрофанова. Л.: Машиностроение, 1987. - 352 с.

Представление записи в формате RUSMARC:

000: $00755naa2 2200373 450

001: $1:1-0039129

005: $20070124150255.8

100: $a20061015a19939999m a0rusa02||||||ca

101:0 $arus

102: $aRU

106: $ar

110: $aafaaaap0az0

200: 1$a Технологическая подготовка гибких производственных систем. $§Под общей редакцией С.П. Митрофанова

210: $aЛ.$c Машиностроение $d1987 215:: $a352 с.

700: 1$a Митрофанов $ЬС.П. (*) 701: 1$a Куликов $ЬД.Д. 701: 1$a Миляев $ЬО.Н. 701: 1$a Падун $ЬБ.С.

Поясним фрагмент записи (*). Поле 700 содержит в форме точки доступа имя лица, имеющего первичную интеллектуальную ответственность (первое или единственное лицо в заголовке, содержащем имя индивидуального автора). Индикатор со значением «1» означает, что имя лица записано под фамилией (родовым именем, отчеством и т. д.). Подполе «a» содержит фамилию со значением «Митрофанов». Подполе «b» содержит инициалы со значением «С.П.».

Представление записи в формате ВСПТД: $0.000='01255naa2 2200373 450'; $0.001'1:1-0039129'; $0.005='20070124150255.8';$0.100a='20061015a19939999m a0rusa02||||||ca'; $0.101a='rus'; $0.102a='RU'; $0.106a='r';

$0.110a='afaaaap0az0';$0.200a='Технологическая подготовка гибких производственных систем';. $0.200§='Под общей редакцией С.П. Митрофанова'; $0.210a=^.'; $0.210с='Машиностроение'; $0.210d=1987; $0.215a='352 с'; $0.700a= 'Митрофанов'; $0.700Ь='C.П.';$0.701a='Куликов'; $0.701Ь='Д.Д.'; $1.701a='Миляев'; $1.701Ь='О.Н.';$2.701='Падун'; $2.701Ь='Б.С'; $0.I200a='1 ';$0.I700='1 '; $0.I701='1 '; $1.I701='1 ';$2.I701='1 ';

Организация макетов документов в формате RUSMARC

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

Заголовок макета. Номер документа указывается в первой строке (управляющей) после символа #. Далее в этой же строке указываются в триплексном формате параметры документа. Главные из них следующие:

$Q.W=nn - ширина документа, 5<nn<128, по умолчанию - 60 (в символах).

$Q.H=nn - высота документа для экранного редактирования, 3<nn<23, по умолчанию - 10 (в строках).

$Q.Z='Заголовок документа';

Пример первой (управляющей) строки документа:

#1 $Q.W=48;$Q.H=16;$Q.Z='Осн. карточка';

Здесь #2 - номер макета 2; ширина документа - 48 символов; высота документа -16 строк; заголовок документа - «Осн. карточка».

Тело макета документа. Тело документа может условно состоять из одной или двух частей - левой и основной. Если документ состоит из двух частей, то в конце макета размещается следующая конструкция: $LEFT: $Q.W=w;

Содержание

$ENDLEFT:

Задается левая часть документа. $Q.W=w; - ширина левой части документа.

Базовый синтаксис

Любой текст, который необходимо отобразить в макете, задается в кавычках ". Для задания текста из марковского поля указывается его код со знаком "$". Т.е. последовательно указываются марковские коды реквизитов со знаком "$", участвующих в описании документа в той последовательности, которая характерна для данного документа.

Код, указанный с новой строки, означает его запись с новой строки. Однако если в конце какой-либо строки макета документа стоит $CL (Continue Line), то следующая строка считается продолжением текущей. Между кодами в произвольном порядке может быть указано символьное выражение в кавычках.

В макете документа можно использовать средства для отображения условности печати того или фрагмента документа. Например: ':n' - не печатать предыдущий фрагмент макета документа при отсутствии последующего реквизита, заданного марковским кодом; ':r' - задает повторяемость; :p' - не печатать последующий фрагмент макета документа при отсутствии предыдущего реквизита; ':d' - декодирование, если в записи хранится код реквизита, то будет сформировано значение по коду; $CL - следующая строка есть продолжение предыдущей; $NL - перевод на новую строку (антипод $CL); $NR - указатель номера поля при распечатке повторяемых полей (применяется внутри квадратных скобок в конструкции вида: :r[...$NR...]

Пример: пусть задан список авторов, которые требуется распечатать с нарастающей нумерацией:

701 #0$аИванов$ЬИ.С 701 #0$аПетров$ЬА.Н 701 #0$аСидоров$ЬЯ.Г. Применение конструкции вида: :r[$NR"- "$701a#|r-r :а " " $701b#|r-r :а " " ] приведет к формированию в документе следующей строки: 1- Иванов, И.С. 2 - Петров, А.Н. 3 - Сидоров, Я.Г.

При выводе повторяемых значений по группе различных полей, рассматривая их как реляционные структуры (таблицы), можно применять следующую конструкцию: :r[ "текст 1" $cod1#xr-r "текст2" $cod2#xr-r..."текстN"...$NL],

где codi и x описаны выше, а 'r-r' - указатель на повторяемость с нарастанием. При этом можно ввести внутри квадратных скобок $NL - перевод строки. Допустимо локальное условие внутри повторяемых полей:

:r[$cond: ...условие... $endcond: $cod1#xr-r "текст2" $cod2#xr-r..."текстN"...$NL] Здесь условие может быть таким же, как и при описании $COND: (следует иметь в виду, что начало и конец локального условия пишутся с маленькой буквы). Часто применяется следующая конструкция для определения повторяемости полей ... $codn# -r-r...

Эта конструкция обеспечит вывод повторяемых полей с повторяемыми подполя-ми, выведенными с разделителем '-' . Знаки пунктуации между полями определяются в тексте (."текст№'). Реализован также механизм формирования неравномерной повторяемости поле.

Организация выполнения макета по условию

В системе предусмотрено выполнение различных вариантов макета по условию:

$COND: условие n

текст макета n

$ENDCOND:

$COND: условие 1

текст макета 1

$ENDCOND:

$COND: условие 2

текст макета 2

$ENDCOND:

Некоторые функции условия: PRE ($Code) - присутствие значения, ABS ($Code)- отсутствие значения,

EQU ($Code=Value)- может осуществляться также проверка на равенство, неравенство, включение, не включение поля заданному значению:

VPRE($cod), VABS($cod) - проверка наличия/отсутствия кода подполя в текущей словарной таблице. В этом случае код cod может иметь формат: c*, где с - начальная часть кода. Символ '*' указывает на проверку наличия/отсутствия всех подполей, имеющих заданную начальную часть кода. $COND: EQU($100a[1,2]="ab")

LENDIGIT - выдает число цифр в значении подполя.

! Пример: IF(PRE($016) & LENDIGIT($016)!=10) THEN MSGBOX(Неверный номер ISBN - количество цифр!=10) .

DATE Допускается фильтрация по дате:

1. в заданном диапазоне: DATE($005 :19970101-19981231);

2. вне диапазона: DATE($005 :19970101<>19981231). Максимальная глубина условия вложения не ограничена.

Макросы

Некоторые повторяющиеся фрагменты макета можно вынести в отдельные макросы. Макросы располагаются после описания всех макетов. Начало списка макросов -$MACROS:, конец списка макросов - $ENDMACROS:.

Все макросы находятся внутри области макросов. Имя макроса пишется с первой позиции и имеет вид $name. Конец макроса - //. Вызов макроса в макете может быть применен в любом месте и имеет вид $INC: $name.

Пример:

$MACROS:

$BBK " ББК " :n 686a "" :r[$686a#|r-r " + " ] :-3

//

$ENDMACROS:

Включение макроса в основной макет документа имеет вид $INC: имя макроса. Например, включение описания ББК может выглядеть так:

$INC: $BBK

Заключение

Описана структура российской версии коммуникативного формата MARC, его применение. Показан пример наложения полей данных формата в триплексное представление ВСПТД. Реализован механизм представления макета документа для записей в формате RUSMARC. Показаны примеры формирования макетов документа. Рассмотрены возможности создания макросов.

Литература

1. Российский коммуникативный формат представления библиографических записей в машиночитаемой форме <http://www.nlr.ru/rba/rusmarc/content.htm.>

2. Американский коммуникативный формат представления библиографических записей. - СПб: Изд-во РНБ, 1990. - 673 с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Сисюков А.Н. Виртуальное строковое пространство технологических данных // XXXII неделя науки СПбГПУ. Материалы межвузовской научно-технической конференции, 2004.

4. Филиппов А.Н. Разработка и исследование методов экспертных систем в САПР ТП механической обработки. Диссертация на соискание ученой степени канд. техн. наук. Л., 1991.

5. Цветкова И.Б.и др. Российский коммуникативный формат представления библиографических записей в машиночитаемой форме [Текст]. - СПб: Изд-во РНБ, 1998. -356 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.