Языки предоставления знаний. 2

     Основные данные о работе

 
Версия  шаблона 2.1
Филиал  
Вид работы Курсовая работа
Название  дисциплины Информационные  технологии
Тема Языки предоставления знаний
Фамилия студента  
Имя студента  
Отчество  студента  
№ контракта  

 

     Содержание

     Введение

 

     Много видов умственной деятельности человека, такие, как написание программ для вычислительной машины, занятия математикой, ведения рассуждений, на уровне здравого смысла и даже вождения автомобиля, – требуют «интеллекта». В течение последних десятилетий было построено несколько типов компьютерных систем, способных выполнять подобные задания.

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

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

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

     Представление знаний — вопрос, возникающий в  когнитологии (науке о мышлении), в информатике и в исследованиях  искусственного интеллекта. В когнитологии он связан с тем, как люди хранят и обрабатывают информацию. В информатике  — с подбором представления конкретных и обобщённых знаний, сведений и фактов для накопления и обработки информации в ЭВМ. Главная задача в искусственном интеллекте (ИИ) — научиться хранить знания таким образом, чтобы программы могли осмысленно обрабатывать их и достигнуть тем подобия человеческого интеллекта.

     Под термином «представление знаний» чаще всего подразумеваются способы  представления знаний, ориентированные  на автоматическую обработку современными компьютерами, и, в частности, представления, состоящие из явных объектов ('класс всех слонов', 'Клайд — индивид') и из суждений или утверждений о них ('Клайд — слон', 'все слоны серые'). Представление знаний в подобной явной форме позволяет компьютерам делать дедуктивные выводы из ранее сохранённого знания ('Клайд — серый').

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

     Основная  часть

     1 Способы формального представления знаний

     1.1 История в информатике

 

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

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

     В 1970-х и начале 1980-х были предложены, и с переменным успехом опробованы многочисленные методы представления знаний, например эвристические вопросно-ответные системы, нейросети, доказательство теорем, и экспертные системы. Главными областями их применения в то время были медицинская диагностика (к примеру Мицин) и игры (например шахматы).

     В 1980-х годах появились формальные компьютерные языки представления  знаний. Основные проекты того времени  пытались закодировать (занести в  свои базы знаний) огромные массивы  общечеловеческого знания. Например в проекте «Cyc» была обработана большая энциклопедия, и кодировалась не сама хранящаяся в ней информация, а знания, которые потребуются читателю чтобы понять эту энциклопедию: наивная физика, понятия времени, причинности и мотивации, типичные объекты и их классы. Проект Cyc развивается компанией Cycorp, Inc.; большая часть (но не вся) их базы свободно доступна.

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

     Было  разработано несколько языков программирования ориентированных на представление знаний. Пролог, разработанный в 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 поддерживает особый интерес к семантике распределенных данных и их обработке декларативными методами. В связи с этим появились концепции языка OWL, основанного на концепции First-Order Logic (FOL), реализацию которой, в свою очередь, можно рассматривать как значительно более расширенную технику классического Prolog.

     2.2 Web Ontology Language

 

     OWL (англ. Web Ontology Language) — язык описания онтологий для семантической паутины. Язык OWL позволяет описывать классы и отношения между ними, присущие для веб-документов и приложений. OWL основан на более ранних языках OIL и DAML+OIL и в настоящее время является рекомендованным консорциумом Всемирной паутины.

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

     OWL предоставляет данные возможности  благодаря своим логическим основам,  а именно, описательной логике (Description Logic или DL). Одним из ключевых  преимуществ логики является  формальная семантика (смысл)  логических утверждений. Проще говоря, это означает, что семантика логический утверждений (или смысл понятий в OWL) не зависит от того, как, кем и в каком контексте они используются. Смысл описывает декларативным образом, не оставляя возможностей для неоднозначной интерпретации. 6

     Рассмотрим  пример описания термина НесчастныйРебенок  в виде сын или дочь инженера и  врача (заранее прошу прощения, если кому-то шутка покажется неуместной в современных реалиях!). Итак, налицо двусмысленность: кто-то скажет, что  имеются в виду дети, у которых один родитель - врач, а другой - инженер, а кому-то покажется, что речь идет о детях, у которых хотя бы один родитель и врач и инженер одновременно. Это может вызвать улыбку, но если бы речь шла об описании специфических болезней, то некорректная интерпретация симптомов могла бы легко привести к неверному диагнозу.

     OWL позволяет определить термин  следующим образом: НесчастныйРебенок  SubClassOf ребенок some (Инженер and Врач) (синтаксис будет рассматриваться  ниже), что недвусмысленно означает, что один из родителей должен быть инженером и врачом одновременно (другой вариант тоже легко описывается, но несколько длиннее). Таким образом, все клиенты (пользователи или приложения), использующие корректные средства для работы с OWL, будут одинаково интерпретировать термины.

     Варианты  применения OWL весьма разнообразны, поэтому  ниже приведены лишь наиболее классические сценарии. В целом, будучи языком представления  знаний, OWL может быть полезен в  любой информационной системе, которой  требуется явное описание метаинформации (т.е. информации или знаний о структуре данных). При этом, чем сложнее и разнообразнее подобные знания, тем лучше подходит OWL для этой задачи.

     Итак, на данный момент варианты применения OWL включают следующие:

     Согласованное представление терминологии в медицине, химии и биоинформатике.

     Эти области активно развиваются  и непрекращающиеся исследования приводят к появлению все большего объема данных и знаний. При этом основная проблема заключается в том, что  накапливаемые знания зачастую описываются неформальными образом и содержатся во множестве различных, неинтегрированных источников. Одной из актуальных проблем являются трудности в проверке согласованности результатов научных исследований. Например, разные исследовательские проекты могут прийти к заключениям, что "протеин Х взаимодействует с протеином Y при условии Z1" и "не взаимодействует при условии Z2". При этом автоматически проанализировать и сопоставить эти результаты можно только в том случае, если, в частности, термины "условия Z1 и Z2" описаны формально, скажем, в виде классов OWL. В этом случае несовместимость (disjointness) классов УсловияZ1 и УсловияZ2 будет означать полную согласованность результатов, включение УсловияZ1 в УсловияZ2 (или наоборот) — несогласованность (противоречивость) результатов, а отсутствие какого-либо отношения может говорить о том, что необходимо дополнительное исследование взаимодействия протеинов в случае, если условия Z1 и Z2 наблюдаются одновременно. Последний случай может служить примером того, как существующие знания могут использоваться для выбора направления исследований.

     Интеграция  гетерогенных информационных систем (в особенности  баз данных)

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

     Онтологии в целом, и OWL в частности, могут  использоваться в этой ситуации для  формального описания и интеграции схем баз данных (тех самых метаданных). Это позволяет организовать дополнительный метауровень, который создает интегрированную картину данных для внешних клиентов. Таким образом, клиенты могут использовать запросы к интегрированному представлению данных, которые затем разделяются на части, выполняются над отдельными БД, после чего результаты вновь объединяются в соответствии с интеграцией схем.

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

     Описание  расширенных классификаций  для Web-порталов.

     Web-порталы,  обладающие богатым информационным  содержимым, могут использовать  онтологии OWL и SKOS для улучшения  качества поиска и просмотра  информации, а также упрощения сопровождения. Яркими примерами подобных порталов могут служить ebay.com, amazon.com, craigslist.org, gumtree.com и т. д., на которых продаются практически любые виды товаров. Описание модели информации (категорий товаров и связей между ними) имеет следующие преимущества:

     - Позволяет выполнять поиск с  учетом семантики терминов.

     - Позволяет просматривать связанные  товары с переходами по семантическим  связям (которые могут быть между  товарами как одной, так и  разных категорий).

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

     - Открывает дополнительные возможности  персонализации и анализа активности  клиентов.

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

     Описание  ограничений целостности  данных

     С некоторыми оговорками OWL может использоваться в качестве выразительного языка для ограничений целостности и валидации данных. Выше уже упоминалось, что OWL можно применять для описания и интеграции схем данных, но проверка ограничений целостности представляет собой отдельную задачу. Главным моментом здесь является то, что OWL изначально ориентирован на логический вывод новых знаний, а не на проверку целостности существующих данных. То же самое, кстати, относится и к RDFS. Разницу можно пояснить на следующем примере: