packin.ru

 Гипертезаурус Роже

На этой странице описано приложение Абриаля: построение сетевой базы данных на основе Тезауруса Роже. Онлайновая демонстрация навигации по Тезаурусу в находится здесь. Установочный файл Тезауруса в виде БД Абриаля находится здесь.


Внимание! Новую версию базы знаний Тезауруса вместе с гипертекстовой оболочкой можно скачать здесь. 23.09.2003 Сделана новая удобная оболочка в среде Абриаля 2. И исправлены некоторые недоработки в программе генерации. Но содержание Тезауруса осталось прежним.


Если Вас не устраивает устаревшее содержание данного Тезауруса, и Вы хотели бы получить обновленную версию или создать свой тезаурус на любом языке, использующем латиницу - сделать это очень просто с помощью данной программы генерации: нужно только приготовить исходный текстовый файл со своей лексикой в том же формате, что и файл THES1911.ASC и подменить этот файл своим файлом. Полученные на выходе данные можно добавить в эту версию базы знаний или поместить в новую базу знаний. Файл THES1911.ASC взят в интернете, и используется в точности каков есть. В нем даже не исправлены многочисленные ошибки ввода. Вместо этого программа генерации научена понимать и исправлять эти ошибки на лету.


Тезаурус Роже.

Питер Марк Роже, англичанин швейцарского происхождения, поставил целью своей жизни создание специального словаря для философов, который он назвал словом Тезаурус от латинского thesaurus - "сокровищница". В этом словаре все слова и понятия, описывающие наш мир, были разбиты  на 1000 смысловых категорий. В последствии этим Тезаурусом и другими подобными словарями стали пользоваться в основном писатели для поиска синонимов и близких по значению слов. И само слово тезаурус стало нарицательным, означающим "словарь синонимов". В наше время, для задач Искусственного Интеллекта, связанных с построением логической модели мира, первоначальный философский смысл тезаурусов вообще и самого первого Тезауруса в частности, вновь выходит на первый план.

Первоисточник.

За основу была взята электронная версия Тезауруса издания 1911 году. Как по содержанию (устаревшая лексика), так и по форме (очень много опечаток) он явно не дотягивает до самодостаточного ресурса интернета. Тем более, что сайты с современной выправленной версией Тезауруса имеются в интернете в изобилии. (Набрать THESAURUS или ROGET в Internet Explorer). 

Цель работы.

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

Устройство тезауруса и терминология.

Как устроен сам тезаурус Роже? Я вынужден ввести тут некоторую свою терминологию, т.к. не знаю правильную.

Прежде всего, что содержит тезаурус? Я буду называть это коллокациями (collocations).

Почему не словами? Потому что слова входят в состав коллокаций, и со словами нужно работать отдельно, как с таковыми. Поэтому мы будем считать, что даже односложные коллокации - сами по себе, а слова – сами по себе. Т.е. будем считать, что есть слово bar и есть коллокация-существительное bar, состоящая из одного слова.

Тезаурус состоит из шести классов. Внутри классов имеются еще разделы и подразделы до 8-ми уровней вложенности. Все они, и в том числе классы и сам тезаурус мы будем называть разделами (Partitions).

Внутри разделов находятся Темы (Heads). Этих тем примерно 1022. Темы имеют название, например Will и номер от 1 до 1000, например 600 (есть еще как номера домов - с буквой а).  Темы обозначаются как Will.600.

Одна тема состоит из параграфов по частям речи.

Части речи обозначаются N, . Соответственно все коллокации являются той или иной частью речи. А слова – нет. Например, есть две разные односложные коллокации fly:Nf и fly:Vf, одна существительное, другая глагол. Обе они состоят из одного слова fly:Wf.

Итак, тема (Head) состоит из параграфов. Их может быть от одного до пяти.

Внутри параграфов группы (Groups) слов, разделенные точкой. Изредка группы имеют название, но чаще всего они обозначаются своими порядковыми номерами. Поэтому полные обозначения групп выглядят как Will.600\N\2 – это вторая группа существительных в теме Will.600. Внутри группы коллокации разбиваются на сегменты ( знаком точка с запятой. Сегмент именуется по первой коллокации, входящей в него. Например, в сегмент Will.600\N\2\pleasure входят три коллокации: pleasure, wish, и mind. Некоторые темы сопровождаются текстовыми описаниями (пояснениями) Desc. Некоторые коллокации имеют также примечания, как правило, авторство или др. источники.  (U.S., Latin, Hamlet…). Их будем обозначать Source.

Итак мы получили следующую иерархию:

Тезаурус--Класс--Раздел--...--Тема--Параграф--Группа--Сегмент--Коллокация--Слово

При этом элементы двух последних уровней могут подчиняться нескольким элементам предыдущего по старшинству уровня. Таким образом иерархическая структура превращается в сетевую структуру. И как раз возможность свободной навигации по этой сети нас и интересует в данной работе.

Теперь о тезаурусе в базе данных. 

Для эффективности работы слова (W) и коллокации внутри своих частей речи разбиты на подклассы по первой букве. Поэтому на самом деле слова выглядят как fly: а коллокации как fly: и fly:Vf.

Итак – на подклассы по первой букве разбиты классы W(words), а также N, V, Adv, Adj, Int.

Если не учитывать этого разделения, у нас имеются следующие классы объектов:

  • Partition - разделы
  • Head - темы
  • Parag – параграфы темы (по частям речи)
  • Group - группы
  • Segm - сегменты
  • Adj,Adv,N,V,Int – коллокации по частям речи.
  • W - слова
  • Source – источники
  • Ref – класс ссылок, изоморфный Head, но называемый по номерам.
  • Reltype – тип отношения между темами (в форме Ref)(пока есть только opp)

И суперклассы (объединения классов):

  • Part = Head+Partition
  • List = Adj+Adv+N+V+Int

Используется также встроенный класс для строчных значений: STR.

Parag:CLASS(HeaPar\Head,ParGro\Groups,GENLK=HeaPar)

Group:CLASS(ParGro\Parag,GroSeg\Segments,GENLK=ParGro)

Segm:CLASS(GroSeg\Group,GENLK=GroSeg)

 

Классы связаны между собой следующими отношениями:

Pof:LINK(Part of:&Partition,Partitions:(&Partition))

Ndx:LINK(Content:(&Partition),Chiefs:{&Part})

Heads:LINK(Heads:(&Partition),Partition:&Head)

Ref:LINK(Numeric Reference:{&Head},Head:{&Ref})

In:LINK(Words:(&List),Head:{&W})

Desc:LINK(Description:{&Head},desc_of:STR)

Rel:LINK(relate to:{&Head},uses:{&Reltype},rel-from:{&Ref})

Source:LINK(Source:{&List},Source of:{&Source})

HeaPar:LINK(Part of speach:{&Head},Name:STR,Head:Parag)

ParGro:LINK(Groups:{&Parag},Name:STR,Parag:Group)

GroSeg:LINK(Segments:{&Group},Name:STR,Group:Segm)

N:LINK(Nouns:{&Segm},Segm:{&N})

V:LINK(Verbs:{&Segm},Segm:{&V})

Adj:LINK(Adjectives:{&Segm},Segm:{&Adj})

Adv:LINK(Adverbs:{&Segm},Segm:{&Adv})

Int:LINK(Inton-s:{&Segm},Segm:{&Int})

 

Каждая строчка определяет отношение. Имя отношения идет перед :Внутри определения отношения находятся определения аспектов.

Скобки {} обозначают множественный аспект.

Скобки () обозначают списочный аспект.

Если скобок нет, значит, аспект – одиночный.

Знак & (почти везде) означает, что аспект ссылочный, т.е. удаление связи не удаляет объект.

Выделенные отношения являются служебными, т.е. организуют именование параграфов внутри тем, групп внутри параграфов, сегментов внутри групп.

Порядок работы

Тезаурус поставляется в виде файла THES1911.ASC который валяется в разных местах интернета и содержит страшно много ошибок, и программы ROG2AB.EXE, которая преобразует этот файл в формат текстовой БД Абриаля, исправляя на лету большую часть ошибок.

Для удобства запуска к этому прилагаются «батники»

  1. RUN.BAT – формирует БД (через ROG2AB.EXE) потом склеивает все полученные файлы в один длинный файл tes.ab (размером более 9-ти Мб) и на этом файле запускает abrial.exe который сразу начинает его загрузку.
  2. TES.BAT -- запускает abrial.exe на уже готовом файле tes. т.е. уже созданном ранее.
  3. CONC.BAT – только склеивает результат работы ROG2AB в один файл.

Что следует делать по порядку:

  1. Вызвать программу Абриаль.
  2. Вызвать диалог Регистрация из меню Помощь->Регистрация (впрочем, она сама его покажет сразу после заставки).
  3. Ввести свое имя (если его там еще не было, нормально Имя вводится при инсталляции – можно его заменить здесь).
  4. Затем  нажать кнопку «Копирование», после чего номер программы и имя в форме НОМЕР:ИМЯ окажется в буфере.
  5. Вызвать почтовую программу и написать мне письмо (мой адрес mailto:aleksandr@tochka.ru)
  6. В текст письма вставить НОМЕР:ИМЯ из буфера (Shift-Insert).
  7. Получить от меня в ответ код регистрации.
  8. Вызвать диалог Регистрация ещё раз и ввести код регистрации в свободное поле. После чего нажать кнопку «Применить».
  9. Если все правильно сделано – программа зарегистрируется, что станет видно при повторном входе в диалог Регистрация. Зарегистрированная программа не показывает заставку при входе, и разрешает сохранять БД в форме образа памяти (файл с расширением AM)  Образ памяти загружается быстро. А текстовые файлы, особенно такие большие, как tes.ab – долго. На Athlon 1100мгц он грузится около 7-ми минут. Т.е. можно работать и без регистрации, если не сохранять работу, и каждый раз ждать загрузку tes.ab.
  10. Итак, теперь можно полноценно работать с тезаурусом. Запустите Формирование Тезауруса (из Пуск/Start).
  11. Процедура RUN сформирует файл tes.ab и запустит Абриаль с ним. Перед запуском она предложит прерваться. Можно прерваться и потом запускать с этого места пункт главного меню Работа с Тезаурусом.
  12. Дождаться, пока программа загрузит БД. (На слабой машине это может занять до нескольких часов). Внизу окна будет ползти движок, и мелькать строчки.
  13. Как только БД загрузится – сразу сохранить базу данных в форме AM-файла. Т.е. вызвать Файл->Сохранить как… (F2). Там выбрать тип файлов «Образы памяти Abrial». Файл назвать, например tes.am.
  14. Если это сделано, дальше можно забыть про все предыдущие шаги и работать с сохраненным файлом. Он грузится и сохраняется сравнительно быстро. Если у Вас 128M – проблем не будет. Если 64M – может тормозить. Во всяком случае, что-то запускать параллельно я не советую (Word или Excell, например).

Несколько практических советов

  • Если заблудились – клавиша Ctrl K вернет вас в начало, т.е. в таблицу классов.
  • Клавиша Ctrl M делает закладку, Ctrl J – прыгает на неё.
  • Не бойтесь щелкать мышкой по ссылкам: клавиша Ctrl B вернет вас назад.
  • Подстраивайте ширину столбцов мышью – программа запомнит это в БД.
  • Пользуйтесь контекстным меню (правая клавиша мыши).
  • Клавиша Ctrl W создаст окно просмотра. Работать с окном просмотра удобнее.
  • Раскладывайте окна как Вам удобнее. Пользуйтесь кнопками раскладки.
  • Попробуйте древовидные окна. Может понравится:).

Ну вот, собственно и всё. Если будут вопросы – пишите.