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

Автор: Пользователь скрыл имя, 19 Ноября 2011 в 17:17, курсовая работа

Краткое описание

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

Оглавление

Введение 3
1 Способы формального представления знаний 5
1.1 История в информатике 5
1.2 Связи и структуры 6
1.3 Язык и нотация 8
2 Обзор языков предоставления знаний 10
2.1 Пролог 10
2.2 Web Ontology Language 12
2.3 Лисп 17
2.4 Языки Ontology 21
Заключение 25
Глоссарий 28
Список использованных источников 30
Приложения 31

Файлы: 1 файл

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

— 259.00 Кб (Скачать)

     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. Разницу можно пояснить на следующем примере:

Информация о работе Языки предоставления знаний