Языки предоставления знаний
Основные данные о работе
Версия шаблона | 2.1 |
Филиал | |
Вид работы | Курсовая работа |
Название дисциплины | Информационные технологии |
Тема | Языки предоставления знаний |
Фамилия студента | |
Имя студента | |
Отчество студента | |
№ контракта |
Содержание
Введение
Много видов умственной деятельности человека, такие, как написание программ для вычислительной машины, занятия математикой, ведения рассуждений, на уровне здравого смысла и даже вождения автомобиля, – требуют «интеллекта». В течение последних десятилетий было построено несколько типов компьютерных систем, способных выполнять подобные задания.
Есть системы, способные диагностировать заболевание, планировать синтез сложных синтетических соединений, решать дифференциальные уравнения в символьном виде, анализировать электронные схемы, понимать ограниченный объем человеческого языка и естественного языкового текста. Можно сказать, что такие системы владеют в, некоторой степени, искусственным интеллектом.
Работа из построения таких систем проводится в области, которая получила название искусственный интеллект (ИИ). При реализации интеллектуальных функций непременно присутствующая информация, которую называют знаниями. Иначе говоря, интеллектуальные системы являются в то же время системами обработки знаний. 1
В это время в исследованиях искусственного интеллекта выделились несколько основных направлений. Одно из них - представление знаний. В рамках этого направления решаются задания, связанные с формализацией и представлением знаний в памяти системы ИИ. Для этого разрабатываются специальные модели представления знаний и языка описания знаний, внедряются разные типы знаний. Проблема представления знаний есть одной из основных проблем для системы ИИ, потому что функционирование такой системы опирается на знания о проблемной области, которые хранятся в ее памяти.
Представление
знаний — вопрос, возникающий в
когнитологии (науке о мышлении),
в информатике и в
Под термином «представление знаний» чаще всего подразумеваются способы представления знаний, ориентированные на автоматическую обработку современными компьютерами, и, в частности, представления, состоящие из явных объектов ('класс всех слонов', 'Клайд — индивид') и из суждений или утверждений о них ('Клайд — слон', 'все слоны серые'). Представление знаний в подобной явной форме позволяет компьютерам делать дедуктивные выводы из ранее сохранённого знания ('Клайд — серый').
В
Искусственном интеллекте (ИИ) основная
цель - научиться хранить знания
таким образом, чтобы программы
могли обрабатывать их и достигнуть
подобия человеческого
Основная часть
1 Способы формального представления знаний
1.1 История в информатике
В информатике (главным образом в области искусственного интеллекта) для структурирования информации, а также организации баз знаний и экспертных систем были предложены несколько способов представления знаний. Одно из них представление данных и сведений в рамках логической модели баз знаний, на основе языка логического программирования Пролог.
Под термином «Представление Знаний» чаще всего подразумеваются способы представления знаний, ориентированные на автоматическую обработку современными компьютерами, и в частности, представления, состоящие из явных объектов ('класс всех слонов', или 'Клайд - экземпляр'), и из суждений или утверждений о них ('Клайд слон', или 'все слоны серые'). Представление знаний в подобной явной форме позволяет компьютерам делать дедуктивные выводы из ранее сохраненного знания ('Клайд серый').
В 1970-х и начале 1980-х были предложены, и с переменным успехом опробованы многочисленные методы представления знаний, например эвристические вопросно-ответные системы, нейросети, доказательство теорем, и экспертные системы. Главными областями их применения в то время были медицинская диагностика (к примеру Мицин) и игры (например шахматы).
В
1980-х годах появились
Эта работа привела к более точной оценке сложности задачи представления знаний. Одновременно в математической лингвистике, были созданы гораздо более объёмные базы языковой информации, и они, вместе с огромным приростом скорости и объёмов памяти компьютеров сделали более глубокое представление знаний более реальным.
Было разработано несколько языков программирования ориентированных на представление знаний. Пролог, разработанный в 1972, но получивший популярность значительно позже, описывает высказывания и основную логику, и может производить выводы из известных посылок. Ещё больше нацелен на представление знаний язык KL-ONE (1980-е).
В области электронных документов были разработаны языки явно выражающие структуру хранимых документов, такие как SGML а впоследствии XML. Они облегчили задачи поиска и извлечения информации, которые в последнее время всё больше связаны с задачей представления знаний. Веб-сообщество крайне заинтересованно в семантической паутине, в которой основанные на XML языки представления знаний, такие как RDF, Карта тем и другие используются для увеличения доступности компьютерным системам информации, хранящейся в сети.2
1.2 Связи и структуры
ИИ
и когнитивная наука должны заниматься
всей совокупностью процессов
Одной из проблем в представлении знаний является как хранить и обрабатывать знания в информационных системах формальным способом так, чтобы механизмы могли использовать их для достижения поставленных задач. Примеры применения здесь экспертные системы, Машинный перевод, компьютеризированное техническое обслуживание и системы извлечения и поиска информации (включая пользовательские интерфейсы баз данных). 3
Для представления знаний можно использовать семантические сети. Такая сеть изображена на рисунке приложения Б. Каждый узел такой сети представляет концепцию, а дуги используются для определения отношений между концепциями. Одна из самых выразительных и детально описанных парадигм представления знаний основанных на семантических сетях это MultiNet (акроним для Многослойные Расширенные Семантические Сети англ. Multilayered Extended Semantic Networks).
Начиная с 1960-х годов, использовалось понятие фрейма знаний или просто фрейма. Каждый фрейм имеет своё собственное имя и набор атрибутов, или слотов которые содержат значения; например фрейм дом мог бы содержать слоты цвет, количество этажей и так далее.
Использование фреймов в экспертных системах является примером объектно-ориентированного программирования, с наследованием свойств, которое описывается связью «is-a». Однако, в использовании связи «is-a» существовало немало противоречий: Рональд Брахман написал работу озаглавленную «Чем является и не является IS-A», в которой были найдены 29 различных семантик связи «is-a» в проектах, чьи схемы представления знаний включали связь «is-a». Другие связи включают, например, «has-part».
Фреймовые структуры хорошо подходят для представления знаний, представленных в виде схем и стереотипных когнитивных паттернов. Элементы подобных паттернов обладают разными весами, причем большие весы назначаются тем элементам, которые соответствую текущей когнитивной схеме (schema). Паттерн активизируется при определённых условиях: Если человек видит большую птицу, при условии что сейчас активна его «морская схема», а «земная схема» - нет, он классифицирует её скорее как морского орлана, а не сухопутного беркута.
Фреймовые
представления объектно-
Скрипт это тип фреймов, который описывает последовательность событий во времени; типичный пример описание похода в ресторан. События здесь включают ожидание места, прочитать меню, сделать заказ, и так далее.
Различные решения в зависимости от их семантической выразительности могут быть организованы в так называемый семантический спектр (англ. Semantic spectrum).
1.3 Язык и нотация
Некоторые люди считают, что лучше всего будет представлять знания также как они представлены в человеческом разуме, который является единственным известным на сегодняшний день работающим разумом, или же представлять знания в форме естественного языка. Доктор Ричард Баллард, например, разработал «семантическую систему, базирующуюся на теории», которая не зависит от языка, которая выводит цель и рассуждает теми же концепциями и теориями что и люди. Формула, лежащая в основе этой семантики: Знание=Теория+Информация. Большинство распространенных приложений и систем баз данных основаны на языках. К несчастью, мы не знаем как знания представляются в человеческом разуме, или как манипулировать естественными языками также как это делает человек. Одной из подсказок является то, что приматы знают как использовать интерфейсы пользователя point and click; таким образом интерфейс жестов похоже является частью нашего когнитивного аппарата, модальность которая не привязана к устному языку, и которая существует в других животных кроме человека.
Поэтому для представления знаний были предложены различные искусственные языки и нотации. Обычно они основаны на логике и математике, и имеют легко читаемую грамматику для облегчения машинной обработки. Обычно они попадают в широкую область онтологий.
Последней модой в языках представления знаний является использование XML в качестве низкоуровневого синтаксиса. Это приводит к тому, что вывод этих языков представления знаний машины могут легко Синтаксический анализ, за счёт Удобочитаемости для человека. Логика первого порядка и язык Пролог широко используется в качестве математической основы для этих систем, чтобы избежать избыточной сложности. Однако даже простые системы основанные на этой простой логике можно использовать для представления данных которое значительно лучше возможностей обработки для нынешних компьютерных систем: причины раскрываются в теории вычислимости.
Примеры искусственных языков которые используются преимущественно для представления знаний: CycL IKL, KIF, Loom, KM: Машина Знаний (англ. Knowledge Machine) (фреймовый язык, использовавшийся для задач представления знаний), OWL, язык Пролог, Липс.
Некоторые
из этих языков, мы рассмотрим в данной
курсовой работе далее.
2 Обзор языков предоставления знаний
2.1 Пролог
Пролог (фр. Programmation en Logique) — язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.4
Основными понятиями в языке Пролог являются факты, правила логического вывода и запросы, позволяющие описывать базы знаний, процедуры логического вывода и принятия решений.
Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.
Особую роль в интерпретаторе Пролога играют конкретные запросы к базам знаний, на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщённых запросов с переменными в качестве аргументов созданная система Пролог выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода.
Факты в базах знаний на языке Пролог представляют конкретные сведения (знания). Обобщённые сведения и знания в языке Пролог задаются правилами логического вывода (определениями) и наборами таких правил вывода (определений) над конкретными фактами и обобщёнными сведениями.
Начало истории языка относится к 1970-м годам. Будучи декларативным языком программирования, Пролог воспринимает в качестве программы некоторое описание задачи или баз знаний и сам производит логический вывод, а также поиск решения задач, пользуясь механизмом поиска с возвратом и унификацией.
Пролог реализован практически для всех известных операционных систем и платформ (в том числе для Java и .NET). В число операционных систем входят OS для мэйнфреймов, всё семейство Unix, Windows, OS для мобильных платформ.
Интерес к Прологу поднимался и затихал несколько раз, энтузиазм сменялся жёстким неприятием. Наиболее высоко был поднят интерес к языку Пролог, как к языку будущего, во время разработок японской национальной программы компьютеры пятого поколения в 1980-х годах, когда разработчики надеялись, что с помощью Пролога можно будет сформулировать новые принципы, которые приведут к созданию компьютеров более высокого уровня интеллекта.
Язык Пролог в 1980-х годах был включен в ряд советских вузовских и школьных учебников информатики для изучения элементов математической логики, принципов логического программирования и проектирования баз знаний и моделей экспертных систем. С этой целью на IBM PC и ряде советских школьных компьютеров были реализованы учебные русскоязычные интерпретаторы Пролога.
В языке Пролог факты описываются в форме логических предикатов с конкретными значениями. Правила вывода описываются логическими предикатами с определением правил логического вывода в виде списка предикатов над базами знаний и процедурами обработки информации.5
В
настоящее время Пролог, несмотря
на неоднократные пессимистические
прогнозы, продолжает развиваться в
разных странах и вбирает в
себя новые технологии и концепции,
а также парадигмы
Многие современные реализации языка имеют внутреннее расширение за счет ООП-архитектуры. Кроме проприетарных решений также существуют свободные реализации Пролог. Важно, что для языка существует стандарт ISO, принятый как ISO/IEC JTC1/SC22/WG17.
Базовым
принципом языка является равнозначность
представления программы и
Однако, Пролог критикуется в первую очередь за свою недостаточную гибкость, от чего решения на «обычных» языках программирования (например, C++, Java) в сочетании с базами данных оказываются более технологичными, чем аналогичные решения на Прологе. Негибкость заключается в трудности изучения языка, более высоких требований к квалификации программиста на Прологе, трудности отладки программы, неразвитости технологии программирования, плохой контролируемости промежуточных результатов.
Перспектива
развития всемирной Сети, известной
как проект Веб 3.0 поддерживает особый
интерес к семантике
2.2 Web Ontology Language
OWL (англ. Web Ontology Language) — язык описания онтологий для семантической паутины. Язык OWL позволяет описывать классы и отношения между ними, присущие для веб-документов и приложений. OWL основан на более ранних языках OIL и DAML+OIL и в настоящее время является рекомендованным консорциумом Всемирной паутины.
Выражаясь
неформально, OWL позволяет гарантировать,
что в условиях высокой гетерогенности
современных информационных систем
(ИС), термины, объявленные в одной
системе будут корректно
OWL
предоставляет данные
Рассмотрим пример описания термина НесчастныйРебенок в виде сын или дочь инженера и врача (заранее прошу прощения, если кому-то шутка покажется неуместной в современных реалиях!). Итак, налицо двусмысленность: кто-то скажет, что имеются в виду дети, у которых один родитель - врач, а другой - инженер, а кому-то покажется, что речь идет о детях, у которых хотя бы один родитель и врач и инженер одновременно. Это может вызвать улыбку, но если бы речь шла об описании специфических болезней, то некорректная интерпретация симптомов могла бы легко привести к неверному диагнозу.
OWL
позволяет определить термин
следующим образом:
Варианты применения OWL весьма разнообразны, поэтому ниже приведены лишь наиболее классические сценарии. В целом, будучи языком представления знаний, OWL может быть полезен в любой информационной системе, которой требуется явное описание метаинформации (т.е. информации или знаний о структуре данных). При этом, чем сложнее и разнообразнее подобные знания, тем лучше подходит OWL для этой задачи.
Итак, на данный момент варианты применения OWL включают следующие:
Согласованное представление терминологии в медицине, химии и биоинформатике.
Эти области активно развиваются и непрекращающиеся исследования приводят к появлению все большего объема данных и знаний. При этом основная проблема заключается в том, что накапливаемые знания зачастую описываются неформальными образом и содержатся во множестве различных, неинтегрированных источников. Одной из актуальных проблем являются трудности в проверке согласованности результатов научных исследований. Например, разные исследовательские проекты могут прийти к заключениям, что "протеин Х взаимодействует с протеином Y при условии Z1" и "не взаимодействует при условии Z2". При этом автоматически проанализировать и сопоставить эти результаты можно только в том случае, если, в частности, термины "условия Z1 и Z2" описаны формально, скажем, в виде классов OWL. В этом случае несовместимость (disjointness) классов УсловияZ1 и УсловияZ2 будет означать полную согласованность результатов, включение УсловияZ1 в УсловияZ2 (или наоборот) — несогласованность (противоречивость) результатов, а отсутствие какого-либо отношения может говорить о том, что необходимо дополнительное исследование взаимодействия протеинов в случае, если условия Z1 и Z2 наблюдаются одновременно. Последний случай может служить примером того, как существующие знания могут использоваться для выбора направления исследований.
Интеграция гетерогенных информационных систем (в особенности баз данных)
Во многих областях наблюдается ситуация, при которой важная информация распределяется по множеству баз данных. Основная проблема заключается в том, что эти базы данных, как правило, создавались разными людьми, в разное время и с использованием разных технологий, поэтому схемы данных также оказываются весьма различными. В результате крайне осложняется задача интеграции данных, которая необходима, в частности, для прозрачного выполнения запросов над всеми имеющимися данными.
Онтологии в целом, и OWL в частности, могут использоваться в этой ситуации для формального описания и интеграции схем баз данных (тех самых метаданных). Это позволяет организовать дополнительный метауровень, который создает интегрированную картину данных для внешних клиентов. Таким образом, клиенты могут использовать запросы к интегрированному представлению данных, которые затем разделяются на части, выполняются над отдельными БД, после чего результаты вновь объединяются в соответствии с интеграцией схем.
К сожалению, насколько я знаю, полностью готовых решений на данный момент не существует, поэтому подобная метаинтеграция в каждом конкретном случае разрабатывается отдельно.
Описание расширенных классификаций для Web-порталов.
Web-порталы,
обладающие богатым
- Позволяет выполнять поиск с учетом семантики терминов.
-
Позволяет просматривать
- Позволяет динамически менять представление информации без повторного развертывания Web-приложения (например, можно осуществлять реорганизацию каталога путем изменения онтологий).
-
Открывает дополнительные
-
Упрощает добавление
Описание ограничений целостности данных
С некоторыми оговорками OWL может использоваться в качестве выразительного языка для ограничений целостности и валидации данных. Выше уже упоминалось, что OWL можно применять для описания и интеграции схем данных, но проверка ограничений целостности представляет собой отдельную задачу. Главным моментом здесь является то, что OWL изначально ориентирован на логический вывод новых знаний, а не на проверку целостности существующих данных. То же самое, кстати, относится и к RDFS. Разницу можно пояснить на следующем примере: