Пропозал 1. Цели системы глоссарий/кл.слова 1) Ключевые слова (KW): a. Большая часть KW используются как термины. b. Часть KW является понятиями и используется для классификации (образуют классификатор). 2) Связи между KW образуют иерархическую систему (граф близкий к полидереву) – тезаурус. 3) Статьи – объекты msg типа glossary – содержат статьи разъясняющие KW (как термины, так и понятия). 4) Заметки (Scope Notes) – касаются только деталей глоссарных связей: когда какие синонимы использовать и пр. 2. Структура ключевого слова keywords 1) 2) 3) 4) 5) 6) 7) key_id [longint]. status_id – статус KW [int]. name – собственно ключевое слово [text]. lang_id – язык KW [int]. PT – главный синоним (Preferred Term) [0/1]. Если нет синонимов, то PT=1. is_top_term – вершина одного из деревьев [0/1]. wide_term – наиболее значимые термины, близкие к вершине [0/1]. Необходимость введения этого поля не ясна. 8) is_section – флаг того, что KW является понятием и используется в классификаторе [0/1]. 9) ScopeNote – ссылка на Scope Note. 10) msg_id – ссылка на статью глоссария (задается только для PT). 3. Связи между KW – kw_kw_relations (id, name_ru, name_en) 3.1. Типы связей между KW. Структура глоссария задается парными связями между KW. Связи могут быть следующего типа: ― USE/UF (Used For) – Главный(PT)/вторичный синонимы(NPT). A USE B = B UF A, где B – главный синоним (PT). ― ANT – антонимы. Симметричная связь между PT. ― BT(Broad Term)/NT(Narrow Term) – более широкий/узкий термин. A NT B = B BT A, где А – широкий термин, B – узкий термин. ― BTG(Broad Term Generic)/NTG(Narrow Term Generic) – более разновидность/понятие. A NTG B = B BTG A, где А – понятие, B – разновидность. ― BTP(Broad Term Partitive)/NTP(Narrow Term Partitive) – целое/часть. A NTP B = B BTP A, где А – целое, B – часть. ― BTI(Broad Term Instance)/NTP(Narrow Term Instance) – класс/элемент. A NTI B = B BTI A, где А – класс, B – элемент. Вместо BTx/NTx всегда можно использовать BT/NT. ― RT – ассоциативно связанные термины. Симметричная связь. Межязыковые связи (Translation) ― EET – строгая эквивалентность (Exact Equivalence). Симметричная связь. ― IET – нестрогая эквивалентность (Inexact Equivalence) – значения терминов пересекаются. Симметричная связь. ― PET – частичная эквивалентность (Partial Equivalence) – значение одного термина шире, чем другого. A PET B, где А – широкий термин, В – узкий термин. ― O2MT – эквивалентность «один ко многим» (One to Many Equivalence) – значение одного термина соответствует совокупности значений нескольких терминов. A O2MT B, где А – одиночный термин, В – один из группы терминов. ― NET – нет языковой эквивалентности (Non Equivalent Terms). Симметричная связь. Для создания глоссария предлагается ввести временный тип связи ― RUBR – связь термина с одной из рубрик верхнего уровня. Используется на этапе установления связей – такая связь создается при загрузке и используется для сужения поиска. 3.2. Ограничения на связи ― Невозможна связь KW с самим собой. ― Для KW на разных языках возможны только языковые связи. ― Связи USE/UF, ANT, BT/NT, BTx/NTx, RT возможны только между KW на одном языке. ― Связи типа BT/NT, BTx/NTx, RT, ANT возможны только между PT. ― Между PT на разных языках возможны только полная эквивалентность EET. ― Для NPT допускаются только связи USE/UF и языковые связи. ― Между любой парой KW возможна только одна связь. 3.3. Таблица kw_kw_map (key_id1,key_id2, relation_id) Связи между KW задаются таблицей kw_map, имеющей следующую структуру. 2) key_id1 – UID 1-го ключевого слова. 3) key_id2 – UID 2-го ключевого слова. 4) relation_id – тип связи между KW. Ограничения: ― key_id1 != key_id2 - check ― (key_id1,key_id2 ) - primary key При заполнении таблицы для асимметричных связей используется только одно направление (один из двух вариантов), для симметричных упорядочиваются ID. Асимметричные связи. Связь link_id USE/UF UF BT/NT NT BTx/NTx NTx термин. PET PET язык). O2MT O2MT RUBR RUBR смысл key_id1 и key_id2 key_id1 – PT, key_id2 – NPT. key_id1 – BT, key_id2 – NT. аналогично, key_id1 – широкий термин, key_id2 – узкий key_id1 – широкий термин, key_id2 – узкий термин (другой key_id1 – одиночный термин, key_id2 – один термин из группы (другой язык). key_id1 – термин, key_id2 – section. Симметричные связи: ANT, RT, EET, IET, NET. Для них key_id1 > key_id2. 4. Интерфейсы работы с глоссарием 4.1. Загрузка Для загрузки используется список kw, список рубрик – и сразу создаются связи kw RURB рубрика. 4.2. Установление связей Показываются: ― термин и его атрибуты; ― уже имеющиеся связи; ― рубрики. 1). Дополнительно: Похожие KW. 2). Интерфейс поиска других KW со следующими возможностями. ― Ограничение по рубрикам: ― все рубрики редактируемого KW (по умолчанию); ― одна/некоторые рубрики редактируемого KW; ― без ограничения по рубрикам. ― Поиск по шаблону. ― Нечеткий поиск. 3). Перевод на другой язык текущего слова и его синонимов или слова заданного с руки (через словарь). Интерфейс должен позволять «внести в рабочее поле» KW из списка похожих, из результатов поиска или из списка переводов и установить связь. Можно сделать показ интерфейсов 1), 2), 3) альтернативным. 4.3. Смена Preferred Term Показываются все синонимы одного «гнезда». В интерфейсе указывается новый PT. Тут главное – точное изменение всех связей и атрибутов. Нужно внимательно расписать алгоритм. 4.4. Привязка к статьям Интерфейс показывает KW, его PT (если KW сам им не является) и список всех глоссарных/энциклопедический статей названия которых похожи на синонимы KW. Интерфейс позволяет выбрать и привязать к KW статью. 5. Неясные вопросы 5.1. Каноническая форма KW Предлагаю: 1. единственное число; 2. именительный падеж; 3. нижний регистр. Вместо 1 можно предложить более интересный вариант 1а. Единственное число для уникальных и неделимых объектов, физически процессов: Солнце, Марс, Галактика, вселенная, межзвездная среда, закон Ампера, PSF, Афелий, M31. Множественное число для классов объектов и их элементов: астероиды, экзопланеты, переменные звезды, xxx карлики и т.д. Тут можно немного запутаться, кого-куда, но список будет выглядеть лучше. Зато первый вариант четче и жестче. Ваше мнение? 5.2. Группы статей В нашем глоссарии существуют группы однотипных (одноименных) статьей, взятых из разных источников. Два разных примера: ― Алидада (моя), Алидада (Словарь Даля) и Алидада (БЭС). ― Астероид (Засов) и Астероиды (ФК86). Требования. 1). Названия статей должны оставаться оригинальными, а в разных источниках разные канонические формы терминов. 2). Надо уметь по-разному показывать списки статей: ― весь глоссарий; ― часть глоссария из одного источника (например, ФК86); ― показ отдельных статей из группы так, чтобы присутствовали ссылки на остальные. 3). Надо уметь «правильно» связывать KW со статьями. 4). Поддерживать целостность связей KW – статьи глоссария как при добавлении изменении KW и структуры глоссария, так и при добавлении/удалении статей. Возможные варианты реализации. 1) Ввести в структуру KW список ссылок на статьи глоссария и ссылку на «главную» статью. Преимущества: Сразу находим все статьи по KW. Недостаток: проблемы с поиском KW, соответствующего статье по ее названию. 2) Ввести в структуру messages (глоссарной статьи ) ссылку на KW–Preferred Term. Преимущества: Легко находим все статьи по KW или по одной статье. Недостаток: проблемы с поддержанием целостности – сложный алгоритм обновления при изменении PT.