Автор работы: Пользователь скрыл имя, 11 Января 2012 в 21:18, курсовая работа
Под термином «представление знаний» чаще всего подразумеваются способы представления знаний, ориентированные на автоматическую обработку современными компьютерами, и, в частности, представления, состоящие из явных объектов ('класс всех слонов', 'Клайд — индивид') и из суждений или утверждений о них ('Клайд — слон', 'все слоны серые'). Представление знаний в подобной явной форме позволяет компьютерам делать дедуктивные выводы из ранее сохранённого знания ('Клайд — серый').
Введение 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
Пролог (фр. 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 (англ. 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. Разницу можно пояснить на следующем примере: