Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Предложение: Встраиваемые ТВП
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 06, September, 2007 11:49

Тут вот идея возникла. Хотя думаю, она посещала и вас. Мои ТВП словаря отличаются от дистрибутивных. И обновлять их становиться проблематично.

Предложение в том, чтобы добавить дополнительный метод индексирования, при котором строка формата рассматривается как имя файла ТВП, который необходимо вставить вместо этой строки.

Еще одно замечание по существующей ТВП для каталога. Версия 6.1 все обновления. В словаре заглавий в некоторых терминах появляются в самом конце термина куски формата. Сделал вот такую замену
Старая строка
200 0 MHL,if v200^u:'1'then else if p(v200^a) then'T=',&unifor("9"v200^a,(|. |v923^h,|.|'v923''^i,|. |v923^k,|.|v923^l,|. |v923^m,|.|v923^n)) fi fi

Новая строка
200 0 MHL,if v200^u:'1'then else if p(v200^a) then'T=',&unifor("9"v200^a,(|. |v923^h,|.|v923^i,|. |v923^k,|.|v923^l,|. |v923^m,|.|v923^n)) fi fi

После этого словарь стал корректным. Может это, конечно, и исправлено, но мало ли...

Re: Предложение: Встраиваемые ТВП
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 06, September, 2007 12:49

Такой "Старой строки" в ibis.fst нет

Re: Предложение: Встраиваемые ТВП
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 06, September, 2007 13:27

Значит уже исправлено...

Re: Предложение: Встраиваемые ТВП
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 06, September, 2007 15:47

По-моему, никогда и не было

Re: Предложение: Встраиваемые ТВП
Пользователь: Куделя (IP-адрес скрыт)
Дата: 06, September, 2007 17:01

Поддерживаю Максима, хотя и не понимаю, чем добавление одной строки с именем "вложенного" файла FST принципиально отличается от добавления N строк явного формата ...
Разве только в том случае если такой файл можно будет положить в deposit. Вот в таком виде это было бы весьма полезно и, кстати, в духе "прогрессирующей модульности" :).

А вообще было бы вполне достаточно перенаправления *.fst в DEPOSIT, чего сейчас к сожалению нет.

Иркутская ОГУНБ
ИРБИС64.21Турбо
WebИРБИС-PHP



Редактировано 1 раз. Последний раз 06.09.2007 17:09 пользователем Куделя.

Re: Предложение: Встраиваемые ТВП
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 06, September, 2007 17:09

В принципе можно кинуть и в депозит, только вот допустим для RDR такая ТВП уже не подходит и не нужна в общем-то совсем. Т.е. получается, что для каждой базы должна быть своя ТВП по умолчанию и какая-то дополнительная ТВП. А вставлять одну строку я предложил так, для варианта. Конечно можно к примеру добавлять к ТВП по умолчанию файлы с шаблонными названиями.
К примеру ibis.fst.add
В принципе такую схему можно внедрить для файлов любого типа в базе (конечно любых настроечных). Тут есть еще один момент, который хотелось бы иметь. Возможность в добавочном файле отменить все конструкции в предыдущем. Т.е. чтобы ТВП по умолчанию, к примеру, полностью игнорировалось и использовался только персональный. Для этого достаточно добавить в первой строке файла какое-нибудь зарезервированное слово.
Вот вкратце мои идеи.

Re: Предложение: Встраиваемые ТВП
Пользователь: Куделя (IP-адрес скрыт)
Дата: 06, September, 2007 17:21

Панев Максим написал(а):
-------------------------------------------------------
> получается, что для
> каждой базы должна быть своя ТВП по умолчанию и
> какая-то дополнительная ТВП. А вставлять одну
> строку я предложил так, для варианта. Конечно
> можно к примеру добавлять к ТВП по умолчанию файлы
> с шаблонными названиями.
> К примеру ibis.fst.add
Вот это - мне кажется лучше. Тут я - за обоима руками. Поскольку работы - еще меньше. Не надо и строку добавлять, просто копируй свой файл и все. А шаблонное имя добавочного файла конечно же прописать в ИНИ. Только именно что не одного файла имя, а групповой шаблон. Это кстати позолило бы разгрузить стандартный FST прямо в дистрибутиве. Например разбить его на стандартный библиотечный набор и набор индексов используемых для книгообеспеченности, число которых от версии к версии растет, а тратить время на отработку связанных с ними форматов (пусть оно там и небольшое) невузовским библиотекам совершенно незачем.А так вместо того чтобы "вырезать" строки, и потом вспоминать какие же из них ты удалил - можно просто удалить или переименовать файл типа "ibis.fst.vuz".

Иркутская ОГУНБ
ИРБИС64.21Турбо
WebИРБИС-PHP

Re: Предложение: Встраиваемые ТВП
Пользователь: Alio (IP-адрес скрыт)
Дата: 06, September, 2007 17:31

Прошу не забывать, что у БД может быть ЕДИНСТВЕННЫЙ и НЕИЗМЕННЫЙ ТВП инвертирования. Любое изменение ТВП инвертирования требует ОБЯЗАТЕЛЬНОЙ полной перезагрузки словаря...

Re: Предложение: Встраиваемые ТВП
Пользователь: Куделя (IP-адрес скрыт)
Дата: 06, September, 2007 17:38

Про неизменный - это понятно, про единственный тоже. Но что мешает на уровне программы представлять несколько файлов как один? В конце концов "файл документов" физически тоже 2 файла :)

Иркутская ОГУНБ
ИРБИС64.21Турбо
WebИРБИС-PHP

Re: Предложение: Встраиваемые ТВП
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 06, September, 2007 17:57

Так а про это никто и не забывает. Совершенно не за чем менять ТВП постоянно. Этот механизм призван помочь в обновлении версий. В апдейтах периодически появляются обновления ТВП. И отслеживать изменения ГПНТБ и свои становиться все сложнее.
Кроме того разделение инвертирования по тематике, предложенное Максимом, тоже достойно места под Солнцем.
На счет группы файлов по шаблону можно предложить следующий механизм: выбираются все файлы по шаблону, затем происходит сортировка имен файлов по возрастанию и затем из них по порядочку собирается результирующий файл.
Но тогда встает вопрос, то шаблон должен быть для какого-то одного типа файлов. А хочется иметь такое наследование для ЛЮБЫХ настроечных файлов базы.
В этом случае можно предусмотреть в масте подстановку расширения соответствующего файла настройки по умолчанию. Поясню.
Допустим пишем в настроечном файле следующий шаблон наследования:
*.%.??.add
? и * - стандартные шаблонные символы, обозначающее один или любое количество символов, а символ % заменяется на расширение по умолчанию. - для форматов %=pft
- для ТВП %=fst
и т.д.
К примеру есть у нас в депозите файл ibis.fst.
В обновлении хххDх.zip нам приходит обновление этой ТВП. Мы его спокойненько не задумывась подменяем в депозите. Однако у нас есть еще и свои словари. На этот случай у нас предусмотрено в каталоге базы 2 файла: ibis.fst.01.add и ibis.fst.02.add
В результате эти файлы найдутся в каталоге и ими дополнится стандартная ТВП. При этом согласно шаблону и сортировке по возрастанию файл ibis.fst.01.add добавится в ТВП первым, а ibis.fst.02.add, соответственно, вторым.
Точно так же можно применить этот механизм и для mnu.
Однако может возникнуть ситуация, когда нам не нужен файл по умолчанию из депозита. Тогда мы можем сделать так: в файле ibis.fst.01.add первой строкой идет зарезервированное слово, к примеру, IGNORE. Встретив это слово в файле включения, обработчик удаляет все предыдущие конструкции и заполняет требуемый файл только теми строками, которые есть в ibis.fst.01.add и ibis.fst.02.add.

Ну вот как-то примерно так :).

Re: Предложение: Встраиваемые ТВП
Пользователь: Alio (IP-адрес скрыт)
Дата: 06, September, 2007 19:04

ТВП инвертирования имеет жесткое имя, совпадающее с именем БД и не поддющееся опционированию. Т.е. как ни крути ТВП инвертирования, который прибывает в дистрибутиве, Вы должны или менять или переименовывать...

Re: Предложение: Встраиваемые ТВП
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 07, September, 2007 09:48

> Предложение в том, чтобы добавить дополнительный
> метод индексирования, при котором строка формата
> рассматривается как имя файла ТВП, который
> необходимо вставить вместо этой строки.

Полностью поддерживаю.
Как я понял - предлагается сделать как в технологии вложенных серверных ini-файлов?

Первое что приходит на ум где это можно использовать - настройка индексов под z39.50 :)

Да и если разбивать основную fst на несколько частей - проще ориентироваться будет, по-моему. Слишком уж громоздкий уже этот файл...
Все-же проще когда в основном файле прописывается что-нить вроде

===
@k.fst
===

вместо

===
1200 8 MHL,'/K=/'(v200^a,|%|d200/)
12251 8 MHL,'/K=/'(v225^a,|%|d225/)
12252 8 MHL,'/K=/'(v225^i,|%|d225/)
12253 8 MHL,'/K=/'(v225^l,|%|d225/)
1330 8 MHL,'/K=/'(v330^c,|%|d330/)
1430 8 MHL,'/K=/'(v430^a,|%|d430/)
1451 8 MHL,'/K=/'(v451^c,|%|d451/)
1452 8 MHL,'/K=/'(v452^c,|%|d452/)
1454 8 MHL,'/K=/'(v454^a,|%|d454/)
1461 8 MHL,'/K=/'(v46^l,|%|d46/)
1462 8 MHL,'/K=/'(v46^a,|%|d46/)
1463 8 MHL,'/K=/'(v46^c,|%|d46/)
1464 8 MHL,'/K=/'(v46^i,|%|d46/)
1465 8 MHL,'/K=/'(v46^m,|%|d46/)
14611 8 MHL,'/K=/'(v461^a,|%|d461/)
14612 8 MHL,'/K=/'(v461^c,|%|d461/)
1463 8 MHL,'/K=/'(v463^c,|%|d463/)
1470 8 MHL,'/K=/'(v470^c,|%|d470/)
1481 8 MHL,'/K=/'(v481^c,|%|d481/)
1510 8 MHL,'/K=/'(v510^d,|%|d510/)
1517 8 MHL,'/K=/'(v517^a,|%|d517/)
1541 8 MHL,'/K=/'(v541,|%|d541/)
1922 8 MHL,'/K=/'(v922^c,|%|d922/)
19231 8 MHL,'/K=/'(v923^i,|%|d923/)
19232 8 MHL,'/K=/'(v923^l,|%|d923/)
19233 8 MHL,'/K=/'(v923^n,|%|d923/)
1924 8 MHL,'/K=/'(v924,|%|d924/)
19251 8 MHL,'/K=/'(v925^a,|%|d925/)
19252 8 MHL,'/K=/'(v925^b,|%|d925/)
19253 8 MHL,'/K=/'(v925^c,|%|d925/)
===

Re: Предложение: Встраиваемые ТВП
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 07, September, 2007 10:04

Из предыдущего поста Александра Иосифовича ясно, что мы в этом вопросе предоставляемся сами себе. Чтож, буду тогда реализовывать идею своими силами.

Однако, как показало обсуждение, идея принимается не только мной. По этому все-таки лучшим вариантом, было при принятие этой фичи на рассмотрение в ГПНТБ.

Re: Предложение: Встраиваемые ТВП
Пользователь: Alio (IP-адрес скрыт)
Дата: 07, September, 2007 10:06

Идея вложенных ТВП принимается...

Re: Предложение: Встраиваемые ТВП
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 07, September, 2007 10:39

Ура! Ждем-с :)

2Максим: Неделю уже ломал голову как это сделать без такой технологии. Максимум что придумал - это подключать внешние форматы на каждый тип индексации. (что, конечно, не есть хорошее решение) :)

Re: Предложение: Встраиваемые ТВП
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 07, September, 2007 17:57

Илья, поясни плиз, что значит
Цитата:
Илья
это подключать внешние форматы на каждый тип индексации
это вообще как?

Re: Предложение: Встраиваемые ТВП
Пользователь: Куделя (IP-адрес скрыт)
Дата: 08, September, 2007 23:03

Ну я так думаю,что если метод индексирования один и тот же, а метка поля не критична (т.е. допустим не используется в качестве квалификатора в поиске), то что мешает написать
200 0 &uf('6indexes_of_Autors') и соотвественно в этом файле формировать кучу строк с префиксом A=

Иркутская ОГУНБ
ИРБИС64.21Турбо
WebИРБИС-PHP

Re: Предложение: Встраиваемые ТВП
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 10, September, 2007 10:15

Куделя написал(а):
-------------------------------------------------------
> Ну я так думаю,что если метод индексирования один
> и тот же, а метка поля не критична (т.е. допустим
> не используется в качестве квалификатора в
> поиске), то что мешает написать
> 200 0 &uf('6indexes_of_Autors') и соотвественно в
> этом файле формировать кучу строк с префиксом A=

В точности :)



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.