научная статья по теме ВИЗУАЛИЗАЦИЯ ЗНАНИЙ НА ОСНОВЕ СЕМАНТИЧЕСКОЙ СЕТИ Математика

Текст научной статьи на тему «ВИЗУАЛИЗАЦИЯ ЗНАНИЙ НА ОСНОВЕ СЕМАНТИЧЕСКОЙ СЕТИ»

ПРОГРАММИРОВАНИЕ, 2010, No 4, с. 16-24

- БАЗЫ ДАННЫХ И БАЗЫ ЗНАНИЙ

УДК 004.822

ВИЗУАЛИЗАЦИЯ ЗНАНИЙ НА ОСНОВЕ СЕМАНТИЧЕСКОЙ СЕТИ

© 2010 г. И. А. Бессмертный

Санкт-Петербургский государственный университет информационных технологий, механики и оптики 197101 Санкт-Петербург, Кронверкский пр., 49 E-mail: igor-bessmertny@hotmail.com Поступила в редакцию 23.04.2009 г.

В работе представлены результаты исследования семантических сетей с точки зрения практической применимости для визуализации и извлечения знаний. Показаны возможности графов с глаголом в центре совместно с реляционными графами для реализации логики первого порядка. Предложен язык описания семантических сетей и принципы построения интеллектуального агента для применения правил. Описана реализация программы, поддерживающей визуализацию семантических сетей, предназначенной для ознакомления студентов с основными принципами представления знаний в виде семантических сетей.

ВВЕДЕНИЕ

Последнее десятилетие отмечено массовой оцифровкой библиотечных фондов и других хранилищ текстовых документов, которые становятся доступными для быстрого удаленного доступа. Предполагаемый следующий этап - приведение текстов к виду, пригодному для извлечения знаний интеллектуальным агентом. Существуют различные подходы к разметке документов: от микроформатов на языке XML [1] до концепции семантической паутины (Semantic Web) [2]. Весьма важным является также метод представления знаний. Универсальным способом формализации знаний является математическая формула, единственным недостатком которой является сложность восприятия и, как следствие, необходимость специальной математической подготовки. Семантическая сеть, которая позиционируется скорее как средство визуализации знаний, чем их обработки, может оказаться более практичной, чем язык математических формул. Целью настоящего исследования является проверка применимости семантических сетей не только для визуализации, но также для хранения и извлечения знаний.

1. СЕМАНТИЧЕСКАЯ СЕТЬ КАК НОСИТЕЛЬ ЗНАНИЙ

Семантическая сеть являет собой попытку приблизить представление знаний к тому виду, в котором они предположительно могут сохраняться в памяти человека. Самой простой разновидностью семантической сети является реляционный граф, состоящий из триплетов вида "субъект - предикат - объект". Цепочки триплетов образуют сеть, граф которой позволяет в наглядной форме отобразить смысл достаточно сложных понятий. На рис. 1 с помощью реляционного графа воспроизведен фрагмент известного стихотворения "Дом, который построил Джек". Однако, хорошо отображая отношения классификации, реляционный граф не позволяет воспроизводить не только причинно-следственные и временные связи, но даже просто свойства реляционных отношений. Так, в частности, на рис. 1 не удалось показать, что "синица ловко ворует пшеницу", поскольку атрибут "ловко" относится не к синице и не к пшенице, а к процессу, которым синица занята. Более привлекательным представляется граф с процессом (глаголом) в центре (граф Растье) [3]. На рис. 2 с помощью графа Растье отображен сюжет, по-

Рис. 1. Пример реляционного графа.

Рис. 2. Пример графа Растье.

заимствованный из [2]: "Собака покусала почтальона; в результате чего почтальон поколотил хозяина собаки". Число разновидностей отношений, связывающих глагол с другими вершинами графа Растье, может быть сокращено до двух десятков, что делает его легко читаемым.

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

Заметим, что классическая форма предиката на языке Prolog здесь не уместна по следующим причинам. Во-первых, в некоторых диалектах языка, в частности, PDC Prolog, требуется объявление предикатов в декларативной части, что заведомо ограничивает количество типов отношений. Во-вторых, даже если не предполагается реализация логики второго порядка (когда отношения между субъектами и объектами тоже могут быть переменными), логика логического вывода на Прологе подразумевает явное обращение к предикатам по имени. Устранение данного ограничения возможно, только если сделать предикат таким же аргументом, как субъект и объект, например,

f ("Джек", "построил", "дом").

Таким образом, можно сравнительно просто записать небольшую предметную область. Одна-

Варианты запросов на языке Prolog

Цель на языке Prolog Текстовый эквивалент Ответ

f (" Jack"," built", " house"). Jack built the house. Да

f (Who,"built","house"). Who did build the house? Who = Jack

f ("Jack", "built", What). What did Jack build? What = house

f (" Jack", X, "house"). What did Jack with the house? X = built

f (_,"built","house"). Did anybody build the house? Да

f ("Jack", "built", _). Did Jack build something? Да

f (" Jack", _,"house"). Did Jack something with the house? Да

ко при увеличении размеров семантической сети неизбежно возникают следующие проблемы.

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

Во-вторых, возникает проблема идентификации субъектов и объектов - синонимия и полисемия. Синонимия (несколько слов для обозначения одного понятия) приводит к тому, что участок сети, относящийся к одной сущности, распадается на несвязанные фрагменты. Кроме того, обращение к объектам и субъектам должно происходить с использованием единой терминологии. Иными словами, создатель семантической сети и ее пользователь должны говорить на одном языке. Полисемия (несколько значений одного слова) приводит к ошибочному объединению фрагментов сети, не имеющих ничего общего.

Решение проблемы полисемии возможно путем присвоения каждой сущности уникального идентификатора, подобно тому, как в семантической паутине каждый ресурс должен получить URI - Uniform Resource Identifier. При этом уникальность идентификаторов не избавляет от синонимии, поскольку описание одной и той же сущности может повторяться разными авторами, на разных языках, в разных интерпретациях.

Ниже приведены результаты разработки экспериментальной программной среды для создания, хранения и извлечения знаний, представленных в виде семантической сети небольшой размерности.

2. ИЗВЛЕЧЕНИЕ ЗНАНИЙ ИЗ СЕМАНТИЧЕСКОЙ СЕТИ

Самый простой способ извлечения фактов из базы триплетов "субъект-предикат-объект" -унификация в терминах языка Prolog. В зависимости от применения в предложении - цели констант или переменных, возможны варианты запросов в нотации Prolog к факту f (" Jack","built", "house"), перечисленные в таблице. Для иллюстрации использован английский вариант в связи с более простым синтаксисом, хотя синтаксический анализ запросов на русском языке также не представляет особых проблем.

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

В концепции семантический паутины предполагается, что интеллектуальный агент самостоятельно отыскивает необходимую информацию по запросу, даже если она содержится в разрозненных фактах, располагающихся на разных ресурсах сети. В таком случае интеллектуальный агент должен располагать набором правил, позволяющих делать нужные умозаключения. Эти правила должны размещаться либо в тексте программы, либо на самих ресурсах сети. В исходном тексте программы могут храниться только самые общие правила, к которым относятся, в частности, правила наследования признаков. Например, если А является экземпляром класса В, а В имеет С, то А имеет С. Правила, специфические для данной предметной области, должны располагаться на соответствующих данной теме ресурсах. Однако в таком случае каждый документ должен представлять собой целую базу знаний экспертной системы. Например, если пользователь хочет найти лекарственный препарат, то база знаний должна содержать противопоказания, побочные эффекты, рекомендуемые аналоги и др. Таким образом, простой поиск превращается в сеанс связи с экспертной системой. Формализация знаний для экспертных систем является специфической деятельностью высококвалифицированных экспертов. Возможность реализации семантической паутины на таких принципах вызывает серьезные сомнения.

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

Наглядность представления знаний может быть повышена, если граф семантической сети будет отображать только одну предметную область, а возможность углубления в другие области будет отмечена специальным образом, аналогично гиперссылкам в ИТЫЬ-документе. Логичным

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком