Такой, какой в CDS/ISIS [
www.nbuv.gov.ua]
И как эти его возможности используют в ИРЛИ [
www.nbuv.gov.ua]
Еще не вник во все нюансы, но, кажется, в ИРБИСе связывание жестко задается разработчиком?
Похоже, что термин имеет несколько значений. Например, номер и название журнала - это ведь скорее иерархические ссылки "вверх-вниз", не так ли? или "от одного ко многим", "от многих к одному"... Ну вот, опять куда-то занесло, не то в учебник алгебры для 6 класса (где о множествах), не то в теорию баз данных...
Цитата из
Руководства по CDS/ISIS
5.9. Функции REF и L
Имеется возможность выводить информацию, хранящуюся в нескольких записях базы данных как одну запись. В версии CDS/ISIS для Windows эта функция расширена и позволяет комбинировать записи из разных баз данных.
Функция REF позволяет связывать одну запись с другой с помощью MFN второй записи. Например, имеется запись на статью из журнала и запись на журнал, содержащий эту статью. Первая запись адресуется ко второй записи, ссылаясь на MFN.
Запись, содержащая сведения о статье:
MFN 259
10 Walker, Gladys
20 The care of azaleas
30 6
Запись, содержащая сведения о журнале:
MFN 6
Houseplants Monthly
Здесь поле 10 используется для сведений об авторе, поле 20 – для сведений о заглавии (заглавии статьи в первом случае и заглавии журнала во втором случае), а поле 30 используется в записи на статью для хранения MFN релевантной записи на журнал.
Можно вывести объединенную информацию с помощью следующего выходного формата:
v10/v20/'In: 'ref(val(v30),v20)
Функция val преобразует содержимое поля 30 в число. (В отличие от MFN все поля в записи CDS/ISIS представляют собой строки символов и не могут использоваться для вычислений в том виде, в котором они хранятся.) Затем функция ref выделяет поле 20 из записи с полученным номером MFN. Результат будет следующим:
Walker, Gladys
The care of azaleas
In: Houseplants Monthly
Существует два ограничения на использование функции ref подобным образом. Первое – это то, что при вводе записи на статью нужно знать, что "Houseplants Monthly" описан в записи 6. Второе – что запись на статью и запись на журнал должны храниться в одной и той же базе данных, тогда как, может быть, предпочтительнее хранить их отдельно.
Первое ограничение можно обойти при помощи функции L или "look-up". (Заглавная буква L используется здесь исключительно для облегчения чтения, но можно задавать и строчную l.) Она ищет термин в инвертированном файле, чтобы определить связанную запись. Поэтому вместо использования номеров MFN для установления связи, можно использовать некоторые виды аббревиатур, например:
Запись, содержащая сведения о статье:
MFN 259
10 Walker, Gladys
20 The care of azaleas
30 HM
Запись, содержащая сведения о журнале:
MFN 6
20 Houseplants Monthly
100 HM
Теперь поле 30 записи на статью предназначено для аббревиатуры заглавия журнала. Поле 100 в записи на журнал содержит аббревиатуру данного журнала. "HM" запоминается легче, чем "6". В Таблицу выбора полей (ТВП) нужно добавить строку
Метка: 100 Метод: 0 Формат: v100
для того, чтобы аббревиатура отбиралась в инвертированный файл. На практике более надежно использовать префикс для этого термина (см. раздел 7.3), так как тогда его нельзя будет перепутать с таким же термином из другого источника (например, с HM из заглавия "A visit by HM the Queen" или из поля 30 записей на статьи). В Таблицу выбора полей следует добавить строку
Метка: 100 Метод: 0 Формат: "ABBREV="v100
Чтобы вывести объединенную информацию, можно затем написать
v10/v20/'In: 'ref(L('ABBREV='v30),v20)
Заметим, что именно аббревиатура в поле 30 записи на статью позволяет найти релевантную запись на журнал.
Второе ограничение – необходимость хранить обе записи в одной базе данных – устранено в CDS/ISIS для Windows. Предположим, что записи на журналы находятся в отдельной базе данных с именем JNL. Тогда объединенную информацию можно вывести с помощью следующего формата:
v10/v20/'In: 'ref->JNL(L->JNL('ABBREV='v30),v20)
В данном примере связь (с помощью ref) и поиск (с помощью L) относится к базе данных JNL.
Эти функции могут также использоваться в другой области библиотечного дела – в системе книговыдачи. Имеется, например, база данных книг (BOOK) и база данных зарегистрированных читателей (BORR). При выдаче книги код читателя может вводиться в соответствующее поле записи на книгу. При возврате книги этот код удаляется. Функция REF позволяет вывести на экран или распечатать информацию, содержащуюся в двух записях. Ниже представлен простой пример.
База данных BORR
10 Christopher Sabanda
20 17 Fourth Street
30 Harare
40 CS230
База данных BOOK
100 Franciz Zikonda
200 Introduction to patent law
900 CS230
В базе данных BORR поле 40 используется для кода читателя. Предположим, что в индексном файле он хранится в виде BC=CS230. В базе данных BOOK код читателя вводится в поле 900 при выдаче книги. Если требуется напечатать напоминание о возврате книги, можно использовать формат, представленный ниже, для печати из базы данных книг:
'Dear ',ref->BORR(L->BORR('BC='v900,v10)/'The following book is now overdue.'/'Kindly return it immediately.'
/v100/v200
irbis_arbat@mail.ru
Редактировано 3 раз. Последний раз 14.07.2012 10:58 пользователем Lavrinovich.