Автор: Пользователь скрыл имя, 21 Декабря 2011 в 01:57, курсовая работа
В Искусственном интеллекте (ИИ) основная цель - научиться хранить знания таким образом, чтобы программы могли обрабатывать их и достигнуть подобия человеческого интеллекта. Исследователи ИИ используют теории представления знаний из когнитологии. Такие методы как фреймы, правила, и семантические сети пришли в ИИ из теорий обработки информации человеком. Так как знание используется для достижения разумного поведения, фундаментальной целью дисциплины представления знаний является поиск таких способов представления, которые делают возможным процесс логического вывода, то есть создание выводов из знаний.
Введение 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
Person SubClassOf hasMother exactly 1 Woman
hasMother(John, Maria)
hasMother(John, Jessica)
Первая аксиома означает, что у любого человека есть одна и только одна мать, являющаяся женщиной. Следующие две аксиомы означают, что Мария и Джессика являются матерями Джона. Казалось бы, налицо нарушение ограничения целостности. Однако, с точки зрения семантики OWL здесь нет противоречия, но делается логический вывод, что Мария и Джессика являются одним и тем же человеком (другим логическим выводом является то, что обе они — женщины). Разумеется, если явно указать, что они — разные объекты (для этого в OWL есть специальная конструкция — owl:differentFrom), то противоречие будет выведено.
Тем не менее, поскольку ограничения целостности идут рука об руку с описанием схем (метаданных), то были созданы специальные решения, позволяющие использовать OWL для их описания. В частности, Pellet предоставляет специальное расширение для проверки данных на соответствие ограничениям целостности, описанным в виде аксиом OWL (оно было представлено на конференциях "Semantic Technologies 2009" и "OWL: Experience and Directions 2009"). Причем существует возможность использовать одни и те же онтологии, как для представления знаний, так и для валидации данных.
Вычислительные машины первоначально разрабатывались для осуществления численных вычислений и обработки больших объемов данных. Численным вычислениям свойственно выполнение большого числа алгоритмов или сложных, но заранее точно определённых вычислений над сравнительно простыми однообразными элементами данных - числами, векторами, массивами и т.п. Наиболее эффективные суперкомпьютеры способны выполнять обескураживающее количество операций в секунду. Численные вычисления хорошо подходят для решения научно-технических задач, их понятия количественно измеримы и точно представимы в числовой форме.
В свою очередь в экономических задачах обрабатывается большое количество данных, состоящих часто из элементов данных различных типов, которые, однако, регулярны по форме и относятся к количественным типам данных, таких, например, как записи, файлы и базы данных. Осуществляемые действия сравнительно просты, но программы могут быть довольно велики.
Вычислительные машины, ориентированные на решение описанных выше задач, и языки программирования не подходят столь же хорошо для символьной обработки, которая имеет дело со сложными структурами данных и базами знаний, содержащими правила принятия решений и другие многообразные объекты. Символьная обработка позволяет эффективно работать с такими структурами, как предложения естественного языка, значения слов и предложений, нечеткие понятия и т.д., и на их основе принимать решения, проводить рассуждения и осуществлять другие, свойственные человеку способы обращения с данными. В качестве типичного примера служат экспертные системы, содержащие профессиональные знания по некоторой специальности, программы, работающие с естественным языком и т.д.
В этих применениях предполагается
представление в подходящей форме
символьных и данных со сложной структурой.
Работа с ними часто ведётся в
заранее непредсказуемых
Например, в играющей в шахматы программе невозможно заранее учесть все позиции. Анализ игры осуществляется на основе классификации позиций, распознавания стандартных позиций, определения характеристик позиций, построения оценок текущей позиции и использования ограниченного набора стратегий, правил принятия решения и т.д. Так программа может оценить такие позиции, которые программист специально не предусматривал. При удачном стечении обстоятельств программа может победить своего создателя.7
С помощью структур, имеющих множество форм представления, стало возможным решать задачи, которые ранее считались практически или даже принципиально неразрешимыми. Наибольшие ограничения в создании разумных программ накладывает недостаточное знание нами механизмов принятия решений, строения знаний об естественном языке и о других областях, а также уровень нашего мастерства в программировании.
Лисп является наиболее важным языком программирования, используемым в исследованиях по искусственному интеллекту и в математической лингвистике. Название языка "Лисп" происходит из "list processing" (обработка списков). Буквально английское слово "lisp" означает "лепетать", "шепелявить" и "сюсюкать". В качестве имени языка программирования искусственного интеллекта это метко, поскольку именно с помощью Лиспа вычислительные машины научились в некоторой мере лепетать на человеческом языке.
И всё же Лисп ни в каком смысле не является младенцем. Скорее он старик среди языков программирования. Лисп разработан уже в 50-х годах и является вслед за Фортраном старейшим ещё используемым языком программирования. Но в отличие от Фортрана будущее Лиспа ещё впереди.
Лисп представляет собой язык так называемого функционального программирования. Он основан на алгебре списочных структур, лямбда-исчислении и теории рекурсивных функций. Благодаря неразвитости традиционной вычислительной техники, отличающемуся от других языков программирования характеру и из-за наличия элементарных средств обработки списков Лисп долгое время являлся основным инструментом исследователей искусственного интеллекта и средством теоретического подхода к анализу программирования. Однако в 80-х годах Лисп, наконец, вышел из лабораторий и нашел применение в прикладных проблемах.
Обычно языки программирования не изобретают, а проектируют. Однако по отношению к Лиспу можно говорить об изобретении. Первоначальная версия языка, в частности, содержала множество понятий и принципов, которые сначала казались очень странными, но многие из которых позже оказались существенным нововведением. Кроме этого, возможность добавления в Лисп в течение десятилетий многих новых черт подтвердила свойство расширяемости этого языка. Вокруг Лиспа возникла широкая культура, охватывающая многочисленные школы и разнообразные диалекты языка, различные системы и методы программирования, программные среды и Лисп-машины.
Про Лисп говорят, что это неэффективный язык, особенно в части арифметики. Это было верно на начальном этапе. На численную сторону не обращалось внимание, поскольку язык был предназначен для символьной обработки. Теперь это уже не так. Лисп-системы могут в численных вычислениях быть более эффективными, чем Фортран на той же машине. Это объясняется в том числе и тем, что в трансляторах с Лиспа можно применять более сложные преобразования для оптимизации кода.
Естественным является то, что большие системы, предлагающие многосторонние и разумные услуги, требуют большой вычислительной мощности и громоздки для системы разделения времени. Однако это связано не с Лиспом или его плохой реализацией, а с тем вниманием и с той готовностью помочь, которые система предлагает пользователю.
Например, Интерлисп сохраняет полный перечень всех действий пользователя и полное описание более ранних состояний системы и способен автоматически исправлять многие неточности, как, например, ошибки в написании. Если эти свойства правильно использовать, то они повышают производительность профессионального программиста в большей степени, чем тратят ресурсы машины.
С точки зрения программирования критике подвергается и внешний облик языка: изобилие скобок и кажущийся беспорядок. Лисп ("Lots if Idiotic Silly Parentheses") представляется как трудно-понимаемый и трудно-изучаемый язык.
Такой подход проистекает из используемых в Лиспе функционального образа мышления и техники программирования, которые чужды программистам, привыкшим к операторному программированию традиционных языков. Естественно используемые в программировании на Лиспе структуры данных и управляющие структуры часто сложны, поскольку проблемы искусственного интеллекта из-за своей сложности предполагают сложные структуры и программы. Иерархические списочные структуры и Лисп как раз и задумывались для работы со сложными проблемами. Искусственное упрощение структур означало бы пренебрежение действительной сложностью проблем.
Идеей Лиспа является попытка упростить решение проблемы, структурируя используемые данные и упрощая программы. Такой подход оказался полезным, например, в объектно-ориентированном программировании и в экспертных системах. Эти области содержат больше количество знаний со сложной структурой, которые интерпретируются часто довольно простыми процедурами поиска и принятия решения.
Структура
языка Лисп проста и последовательна.
Функции Лиспа можно напечатать
в ясно структурированном и хорошо
читаемом виде. Во многих системах существует
возможность использования
Хорошим доказательством простоты использования Лиспа является его широкое применение в исследовательских работах по программированию сложных методов обработки знаний. Большая часть значимых программ искусственного интеллекта запрограммирована на Лиспе или на основанном на нем языке более высокого уровня. По результатам некоторых исследований можно, скажем, в среде программирования Лисп-машины достичь повышения производительности программирования в несколько десятков раз по сравнению, например, с программированием на Коболе.
Некоторые
людей думают они было само лучше
для того чтобы представить знание
in the same way что он представлено в людской
разум, который будет единственной
известный деятельностью
Для этой причины, различно искусственние языки и нотации предложите для представлять знание. Они типично основаны дальше логика и математика, и легко parsed грамматики к легкости обрабатывать машины. Они обычно падают в обширный домен ontologies.
Ontology - пооже CycL, нескольк языки ontology превратитесь. Большая часть декларативные языки, и то языки рамки, или оснуйте дальше first-order логика. Большой часть из этих языков только определяет верхнее ontology с родовыми принципиальными схемами, тогда как принципиальными схемами домена не будут часть определения языка. Английская язык Gellish пример ontological языка вклюает полный словарь английской языка инженерства.
Пока hyperlinks come into widespread польза, близко отнесенное смысловое соединение пока широко не использует. математически таблица использует с тех пор Вавилонско времена. Недавн, эти таблицы были использованы для того чтобы представить исходы деятельностей логики, such as таблицы правды, который были использованы для того чтобы изучить и моделировать булевскую логику, например. Spreadsheets yet another таблитчатое представление знания. Другие представления знания валы, посредством которого соединения среди основных принципиальных схем и производеных принципиальных схем можно показать.
Визуально представления, вызванные «plex» как превращено TheBrain Технологией относительно новы в поле управления знания но дают потребителю дорогу визуализировать как одна мысль или идея подключены к другим идеям включающ возможность двигать от одной мысли к другим для того чтобы расположить необходимы информацию. Подход не без своих конкурентов.8
Недавний способ в языках представления знания должен использовать XML как низкоуровневый синтаксис. Это клонит сделать выход этих языков KR легких для машин к parse, за счет человека считываемость и часто космос-эффективность.
First-order calculus сказуемого общ использует за математически основа для этих систем, для избежания чрезмерно сложность. Однако, даже просто системы основанные на этой просто логике можно использовать к приведенные данные которые наилучшим образом за возмоности обработки в настоящее время систем компьютера: см. computability для причин.
Примеры нотаций:9
DATR
пример для представлять
RDF
просто нотация для
Одна проблема в представлении знания consist of как хранить и манипулировать знание в информационная система в официально дороге TAK, CTO она будет мочь быть использовано механизмами для выполнения, котор дали задачи. Примеры применений экспертные системы, системы машинного перевода, computer-aided обслуживание системы и поиск информации системы (включая front-ends базы данных).