Заголовок сообщения: victorst - Shareware проект AIAssistant СообщениеДобавлено: 28 июл 2006, 23:32 [quote="victorst"]Суть: есть длительное время реализуемый проект, за которым я все время слежу - http://www.zabaware.com - Ultra Hal Assistant, который представляет из себя персонального помощника пользователя и запускается на его компьютере. По большей части это говорилка, но ее польза на этом не заканчивается. Я обнаружил, что кол. закачек этой проги на сайте http://www.download.com весьма велико. Предлагаю всем желающим совместно разработать персонального ассистента, основанного на несколько иных концепциях, одна из которых - более глубокое понимание полученного от пользователя текста сообщения на ЕЯ (англ, рус. и др.), более сложные черты личности ассистента, более сложные выполняемые задачи. Возможно, в первой версии программы многое из этого не будет реализовано в таком виде. Но на то и первая версия. Некоторые идеи я хотел бы перенести сюда из разрабатываемой мною клиент-серверной системы ИИ AIGod, а кое-какие перенес бы отсюда в AIGod. Ну и финансовые результаты - индикатор востребованности идеи и продукта и стимулятор к дальнейшим работам. Таковы мои интересы в этом проекте. Интересы других участвующих вижу почти такими же: финансовые, перенос идей в свои теории и программы, а также обмен ими в рамках этого проекта. Основной язык программирования Visual Prolog 6.3 (текущая версия). Персональная версия его бесплатна, коммерческая 300$. Персональная версия имеет ряд ограничений, которые, надеюсь, не помешают совместным работам. Если дождусь положительной реакции от вас, начнем разрабатывать план дальнейших работ.[/quote]
Заголовок сообщения: СообщениеДобавлено: 01 апр 2007, 17:47 [quote="Mowglie"]И как успехи Вашей программы спустя 8 месяцев после объявления о начале проекта? Я разделяю Ваши принципы, касающиеся того, что ЕЯ должен находиться в основе создания ИИ. Просто людям так проще и удобней объединить вместе функции различных элементов ИИ. Подробней об этом я высказался здесь: http://ai.obrazec.ru/forum/viewtopic.php?p=13380#13380 Я вижу, что Вы приглашаете к участию в проекте всех энтузиастов. Не уверен, что мои усилия могут стать полезными, поскольку не являюсь программистом. Несомненно, коммерческая составляющая очень важна для всех разработчиков передового програмного обеспечения. Но больше денег тут всё-таки важно достижение столь заветной цели! Цена сиюминутной выгоды меркнет по сравнению с тем, чем человек будет обладать после создания ИИ. Поэтому со всех точек зрения Ваш проект просто обязан завершиться успехом! 8)[/quote]
Заголовок сообщения: СообщениеДобавлено: 01 апр 2007, 20:23 [quote="victorst"][quote="Mowglie"]И как успехи Вашей программы спустя 8 месяцев после объявления о начале проекта?[/quote]На данный момент создана рабочая группа проекта, выпущен действующий макет внешнего оформления программы, состыковываются БД, совместимая с OWL, Reasoner, совместимый с RuleML, мультиагентная архитектура по стандарту FIPA включая язык общения агентов ACL. Рабояая группа закрытая, включая материалы и обсуждения, но в ней легко принять участие, даже на правах наблюдателя. Произошли некоторые технологические изменения. Например, ЯП стал Delphi, т.к. его знают многие.[quote="Mowglie"]Я вижу, что Вы приглашаете к участию в проекте всех энтузиастов. Не уверен, что мои усилия могут стать полезными, поскольку не являюсь программистом.[/quote]В области ИИ программирование основная, но не главная часть проекта. Есть масса как теоретических, так и более простых дел, кот. нужно выполнить, если мы хотим получить результат.[quote="Mowglie"]Несомненно, коммерческая составляющая очень важна для всех разработчиков передового програмного обеспечения. Но больше денег тут всё-таки важно достижение столь заветной цели! Цена сиюминутной выгоды меркнет по сравнению с тем, чем человек будет обладать после создания ИИ. Поэтому со всех точек зрения Ваш проект просто обязан завершиться успехом! 8)[/quote]Спасибо за поддержку. Я также на первое место ставлю ИИ, а деньги лишь смогли бы способствовать его совершенствованию.[/quote]
Заголовок сообщения: СообщениеДобавлено: 02 апр 2007, 00:37 [quote="Mowglie"][quote="victorst"] В области ИИ программирование основная, но не главная часть проекта. Есть масса как теоретических, так и более простых дел, кот. нужно выполнить[/quote] Хотел бы я принять участие в выполнении хотя бы простых дел, однако пока не знаю, насколько мои идеи вписываются в разрабатываемый Вами проект. Наверное, есть смысл обсудить это в личке.[/quote]
Заголовок сообщения: СообщениеДобавлено: 11 июл 2007, 23:08 [quote="victorst"]На сегодня - 11 июля 2007 г. После писания на Делфи и C# я вновь пишу программу на Asme x86. На текущий момент структурная схема программы выглядит так: http://www.aiwinsoft.com/aiassistant/development/description/AIAssistant-Main.PNG По сути дела это один из вариантов интеллектуальной ОС, оперирующей знаниями. ОС - мультиагентная среда, совместимая с рекомендациями FIPA. Каждый агент - ассистент имеет автономную Базу Знаний, совместимую с OWL. Ассистенты - интеллектуальные персонифицированные аналоги сервисов обычной ОС. Для решения задач пользователя ассистенты могут объединяться в социумы - динамические иерархические коллективы. Каждый ассистент работает параллельно с другими. Их можно будет обучать различным навыкам и умениям, например, кадый ассистент может играть роль отдельного нейрона. Тогда ассистентов можно будет соединять в нейросети, которые можно перестраивать, создавать и уничтожать по мере необходимости. Но данный пример - лишь один из многих других применений социумов аассистенов ОС. В настоящий момент работаю над интерфейсом MDI пользователя, где в рамках общего окна программы можно открывать несколько окон, содержащих чаты для диалога с выбранной группой ассистентов. Каждый чат предназначен для выполнения отдельной работы. AIAssistant должен стать усилителем интеллекта пользователя, т.к. должен по мере надобности создавать алгоритмы решения текущих задач.[/quote]
Заголовок сообщения: СообщениеДобавлено: 01 авг 2007, 21:33 [quote="victorst"]Думаю, что нужно начать с интеллектуального органайзера материалов пользователя. Существует как минимум 2 способа получения органайзером информации: 1.Непосредственный ввод пользователем новой информации в текстовом виде. 2.Пакетный ввод. Для этого пользователю нужно указать путь к обрабатываемой информации. Полученная информация может быть запомнена на HDD в БЗ без дополнительных вопросов к пользователю программы, либо, в случае затруднений, пользователю придется отвечать на некоторые вопросы. Самое главное и интересное в таком органайзере - это поиск информации в БЗ, ее сопоставление и аналитические умозаключения при запросе пользователя. Т.е. в основе системы должен лежать интеллектуальный поисковый движок в перспективе наделенный чертами личности.[/quote]
Заголовок сообщения: СообщениеДобавлено: 02 авг 2007, 21:39 [quote="victorst"][quote="AMS"]Я то думал, что Вы уже закончили проект с успехом.[/quote]Я раньше писал и теперь подтверждаю, что работа над ИИ займет множество жизней. А т.к. у меня только одна, то и сделать смогу лишь немногое. Также ранее я в других темах писал о языке AIGL, Субъектно- Ориентированном Программировании (СОП), парадигме Субъектного Общения (СО) и.т.д. Сейчас я работаю над СОП. А прикладной тестовой задачей для него - утилитарная возможность запоминать полезную пользователю информацию, классифицировать ее и осуществлять интеллектуальный поиск в БЗ. Как прояснятся черты СОП, приступлю к следующим этапам.[quote="AMS"]Почему "думаю" до сих пор , а не "доделываю последние шаги"?[/quote]Потому что последние шаги - это когда уже понесут белыми тапочками вперед. Рано еще.[/quote]
Заголовок сообщения: СообщениеДобавлено: 02 авг 2007, 21:52 [quote="victorst"][quote="gsvano"]Надеюсь что у вас что то выйдет..Чем проще - тем лучше.[/quote]Я бы тоже был рад ИИ с простотой АК. Но, видимо, он будет посложнее. Как только смогу, дам ссылку на закачку альфа версии моей программы с целью попробовать ее, потестировать и т.д. Видимо, вначале будет два режима работы: 1. Для программистов СОП. 2. Пользовательский.[/quote]
Заголовок сообщения: СообщениеДобавлено: 03 авг 2007, 10:28 [quote="victorst"][quote="Василий"]Виктор, а почему сообщество о AIHotKey только сейчас узнаёт? Может поделитесь примерным перечнем других Ваших достижений кроме озвученных? Спасибо![/quote]На самом деле это не мои достижения, а результат следующей истории: В 1998 году я с моим сыном (Его также зовут Виктор) решили заниматься Shareware. Он на Делфи написал ряд программ: FindDupplicate, ScanAndCopy, HotKey, aEasyPlayer и т.д. Продажи вяло, но пошли. Я разместил их в популярных Shareware архивах. Последняя версия HotKey 2.7 http://www.download.com/HotKey/3000-2344_4-10121568.html?tag=lst-0-1 даже спустя 5 лет после того, как ее бросил автор, приносит доходы. Но сыну это стало неинтересно, когда в 2002 году он увлекся C#. Тогда мне казалось, что Microsoft в скором времени разместит в Service Pack для Win XP движок .NET. И в ожидании этого я попросил сына переписать HotKey на .NET. с последующим добавлением интеллектуальных функций в нее. В результате появилась программа AIHotKey. Однако Microsoft поступила по своему разумению и продажи не пошли. Проект был заморожен в самой ранней стадии. Сейчас ситуация стала меняться, но по-прежнему мое мнение таково - на .NET писать Shareware программы себе дороже. Вот, собственно, и все. Одновременно с этим все, что я начинал писать, постепенно переходило к написанию программы, основанной на ИИ. Поэтому я не смог выпустить ни одной утилиты для продажи. Это как в анекдоте: что не делаем, получается или танк или автомат. Постепенно я понял, что уж лучше не сопротивляться и написать такую программу. Но от намерений 2000 года до настоящего момента прошло очень много времени, а мои идейные блуждания лишь затянули этот процесс.[/quote]
Заголовок сообщения: СообщениеДобавлено: 04 авг 2007, 22:10 [quote="victorst"]Поразмышляю вслух. Так легче думается. СОП (Субъектно - Ориентированное Програмирование): Субъекты - это надстройка над объектами как живая материя - надстройка над неживой. Отсюда следует, что элементарные субъекты (демоны в моей программе AIAssistant) - это во многом ограниченные объекты. Какими же основными свойствами они должны обладать? 1. Возможность общаться с разрешенным свыше кругом других субъектов. 2. Содержать локальную (личную) БЗ в удобной для использования самим субъектом форме. 3. Механизм логического вывода для управления своим поведением. 4. Ограничение в виде однопоточности, последовательном выполнении всех операций. 5. Ограничение в невозможности использовать знания породившего данного демона предка с помощью прямого "копания" в БЗ предка. (В ООП - методы вышестоящего класса).[/quote]
Заголовок сообщения: СообщениеДобавлено: 06 авг 2007, 10:34 [quote="victorst"]Субъекты в СОП должны быть "актерами". Образно говоря, если я попрошу субъекта стать калькулятором, числом или автомобилем, то он должен стать актером, моделлером, играющем роль указанного объекта. А если таких объектов несколько, то, либо он должен играть их роли по очереди и по мере необходимости, либо поручить данную роль другому субъекту. В последнем случае достигается самораспараллеливание моделирования объектов. При всех таких моделированиях модели объектов хранятся в БЗ. В таком моделировании других объектов субъектами я вижу основное отличие СОП от ООП.[/quote]
Заголовок сообщения: СообщениеДобавлено: 06 авг 2007, 13:23 [quote="daner"]Виктор. Вы когда про "поручил" и "распределение" заговорили, это мне навеяло воспоминание об одной теме которую мы мелком учили. Называется "Контракты". Толком не помню, толи это из Теории Игр, то ли отдельная тема мулти агентов... В общем если вы с ней не знакомы, советую поискать материал. [b]Возможно [/b]там уже много полезного придумали над чем вы голову ломаете или просто мысли хорошие появятся.[/quote]
Заголовок сообщения: СообщениеДобавлено: 06 авг 2007, 14:45 [quote="victorst"][quote="daner"]В общем если вы с ней не знакомы, советую поискать материал. [b]Возможно [/b]там уже много полезного придумали над чем вы голову ломаете или просто мысли хорошие появятся.[/quote]Спасибо, поищу. Но я тут особо голову не ломаю. В том, что я называю "поручил" и т.д. нет ничего сложного в случае, если субъект не обладает буйной фантазией, а является лишь рефлекторной машиной по исполнению предопределенного небольшого набора приказов. Но вот если субъект по своему разумению начнет что-то домысливать, будет радикально сложнее. Например, мы поручаем субъекту - демону играть роль калькулятора. А он, имея большой опыт. либо осведомившись у демонов- архивариусов, будет калькулятором с текстовым управлением ( вместо "2 + 2" будем писать "два плюс два" или "два + 2". Мы же демону не задавали такого регулярного выражения. Он его создал сам или позаимствовал. И степень автономности в принятии решений напрямую зависит от степени разумности самого субъекта- демона. Но до такого положения дел еще очень далеко. Есть время почитать литературу. Поэтому я выше написал, что сначала работаю над СОП, а затем над СО.[/quote]
Заголовок сообщения: СообщениеДобавлено: 22 авг 2007, 16:46 [quote="victorst"][quote="Михайло"]Я в общем говорю об оптимизации. Как будут приниматься решения и кто этим всем хозяйством будет управлять? Агенты+агенты+агенты+...=бардак, хаос. Поэтому нужны правила.[/quote]Для меня совершенно очевидно, что создать хорошую систему сразу не получится. Поэтому нужна определенная последовательность в работе, на каждом этапе которой можно было бы получать практические результаты, на основании которых двигаться дальше. Поэтому я сейчас работаю над самым примитивным вариантом системы, годной не для конечного пользователя, а для исследователя ИИ. Такая система будет содержать несколько диалоговых окон - чатов по количеству одновременно выполняемых отдельных задач. В каждом чате пока д.б. возможность общения лишь с одним агентом. Само общение также будет происходить не на ЕЯ, а на языке ACL (http://www.fipa.org). С помощью такого диалога можно было бы отладить те части системы, которые отвечают за БЗ (запись, поиск и т.д.), а также отдельные манипуляции с агентами - демонами системы. Фактически это в конце концов должно стать языком, основанным на парадигме Субъектно Ориентированного Программирования, где будут использоваться сложные взаимодействия агентов. А уже прикладные программы на этом языке смогли бы работать с конечным пользователем. Вот такая последовательность работ, которой я придерживаюсь. Сейчас делаю модуль парсинга сообщений, получаемых от пользователя на ACL.[/quote]
Заголовок сообщения: СообщениеДобавлено: 22 авг 2007, 20:09 [quote="Prof1983"][quote="AMS"]Я то думал, что Вы уже закончили проект с успехом.[/quote] Отвечу с позиции участника AIAssistant Group. Мое мнение такое: у нас всех еще слишком мало знаний о том какие методы для построения интеллектуальной системы существуют, слишком мало опыта, чтобы сделать единственно правильный выбор методов реализации такой системы среди возможных вариантов. Если откровенно, то попытка быстро собрать работающую интеллектуальную программу провалилась. Сейчас, оглядываясь назад, я это понимаю. Нескольких месяцев явно недостаточно для того чтобы можно было успеть изучить технологии, которые изначально было решено заложить в AIAssistant. Естественно нескольких месяцев недостаточно для реализации всего задуманного в программном коде. Сейчас я думаю, что на реализацию системы AIAssistant (Движок OWL БЗ + Reasoner + Удобный интерфейс пользователя) с проработкой всех составляющих потребуется несколько лет. Работать несколько несколько лет над программой без возможности увидеть промежуточные результаты я думаю никому не интересно. Поэтому работа должна быть разбита на этапы с четким понимание целей и методов достижения цели каждого этапа. Т.е. на систему AIAssitant (и любую другую сложную) обязательно требуется ТЗ (техническое задание). Но составить ТЗ на интеллектуальную систему в целом, я думаю сейчас никому не под силу. Я постоянно слежу за новыми сообщениями в форуме через RSS канал и пришел к выводу, что понятия "интеллект", "разум", "ИИ" и другие все понимают по своему. У этих понятий ИМХО нет и не будет однозначного определения. Я сам за последние несколько лет несколько раз менял взгляды на понятия ИИ, интеллект, разум и на методы возможной реализации интеллектуальной системы (интеллектуальной программы). Кроме этого я уверен, что создание большой и сложной системы обязательно нужно разбивать на отдельные модули с минимальным количеством точек соприкосновения между модулями. Иначе получается "лапша" в лучшем случае или "каша" в худшем. Я занимался развитием программы написанной по принципу "спагетти" (когда переменные из одних модулей используются в других и наоборот) и могу с уверенностью заявить, что нужно обязательно разделять на отдельные модули или плугины. Относительно недавно я познакомился с системой Eclipse 3.x (http://www.eclipse.org) - это IDE для разработки программ. Поддерживаются языки C++, Java, PHP, Ada и многие другие, кроме этого есть куча всевозможных дополнительных плугинов. Мне очень понравился подход разработчиков IBM, который применили при разработке системы Eclipse. В друх словах методология построения Eclipse такая: все строится на плугинах. Даже модуль который производит запуск других модулей тоже плугин (org.eclipse.core.boot). Если есть желание, то можно начать новую ветку обсуждения посвященную технологии модульного построения программ на примере Eclipse или на базе Eclipse. Дело в том что начиная с версии 3.0 на базе Eclipse можно создавать свои программы. Называется Eclipse RCP. Есть русскоязычные сайты, посвященные Eclipse и Eclipse RCP. Рекомендую всем посмотреть следующие ссылки: [url]http://www.berdaflex.com/ru/[/url] [url]http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html[/url] - книга о создании своего RCP приложения [url]http://www.filearranger.com/[/url] - реальное RCP приложение [url]http://www.eclipse4you.com/[/url] - набор плугинов и пр. [url]http://wiki.eclipse.org/index.php/Rich_Client_Platform[/url] [url]http://net-confex.narod.ru/[/url] [url]http://ru.wikipedia.org/wiki/RCP[/url] [url]http://ru.wikipedia.org/wiki/Eclipse_RCP[/url] [url]http://www.ibm.com/developerworks/ru/edu/os-dw-os-ecl-rcpapp.html[/url] [url]http://www.ibm.com/developerworks/ru/opensource/top-projects/eclipse.html[/url] [url]http://www-128.ibm.com/developerworks/ru/opensource/[/url] Я встречал пример экспертной системы созданной на базе Eclipse, но к сожалению еще не успел скачать и изучить. Возможно этот проект можно будет использовать как платформу или как составную чать для системы AIAssistant. Сейчас я изучаю плугины и связи плугинов между собой в платформе Eclipse и пытаюсь подготовить список необходимых базовых плугинов и модулей для создания платформы AIAssistant. Платформа AIAssistant по моим соображениям должна являться платформой (средой) выполнения Агентов ("Субъектов" по терминологии Виктора). Текущую версию исходных кодов можно получить через SVN. Подробнее смотрите [url]http://sourceforge.net/projects/aiassistant/[/url] Я думаю, что работу по созданию Агентов нужно начинать только после после того как платформа AIAssistant будет создана и будет надежно работать. P.S. Eclipse хорошая штука и я сейчас думаю что база Eclipse может подойти для создания интеллектуальной системы, но я не буду утверждать этого наверняка.[/quote]
Заголовок сообщения: СообщениеДобавлено: 23 авг 2007, 15:18 [quote="Prof1983"][quote="AMS"]возможно ли краткое описание[/quote] Попробую ответить на вопросы. [quote]1. Движок OWL БЗ[/quote] Начнем с того что пока нет единого мнения по вопросу представлению знаний в машинно читаемом виде. Но, на сколько я понял, большинство профессионалов в ИИ (судя по зарубежным сайтам) говорит о семантических сетях, онтологиях и OWL. OWL - это стандартизованный формат представления онтологии. В простом виде онтология состоит из набора классов, индивидов, свойств и их связей. Движок OWL БЗ, как я понимаю, - это набор методов для работы с OWL файлами: чтение и разбор OWL файлов, формирование OWL файлов, поиск и выборка классов, индивидов и свойств. OWL - довольно интересный формат, но его недостаточно. Дело в том, что я не нашел в OWL как можно задать последовательность действий для выполнения. Т.е. OWL в чистом виде не получится использовать как язык инструкций для агентов. Последовательность действий для агентов можно записывать на любом современном языке программирования, но ни в одном языке я не нашел методов привязки последовательности действий с онтологией. Это необходимо для того, чтобы агент мог менять свою собственную последовательность действий (выполняемый код) или задавать/редактировать последовательность действий у другого агента. [quote]2. Reasoner[/quote] Машина логического вывода. Должна уметь делать прямой и обратный логический вывод по требованию (запросу) пользователя. Больше комментировать нечего. Читайте книги по экспертным системам. [quote]3. Eclipse 3.x[/quote] Начиная с версии 3.1 продвигается уже не только как IDE разработчика, но и как RCP - платформа для создания своих приложений по модульной архитектуре. Eclipse мультиплатформенная система (Win, Linux, Mobile, ...). и т.д... достоинств в общем много. [quote]4. IDE[/quote] Интегрированная среда разработки. Комментировать по моему нечего. Единственное что хочу еще добавить: было бы не плохо создать специальную IDE для разработки (программирования) агентов системы AIAssistant. В Eclipse есть JDT (Java Development Tool), CDT (C++ Development Tool) и др. Можно создать ADT (Agent Development Tool), но это отдельная тема для разговора. Если есть желание можно создать новую ветку. [quote]5. Если есть желание, то можно начать новую ветку обсуждения посвященную технологии модульного построения программ на примере Eclipse[/quote] Извините, но я не понял что тут нужно прокомментировать. [quote]6. SVN.[/quote] [url]http://svnbook.red-bean.com/nightly/ru/index.html[/url] Изучайте. [quote]7. Почему не попросить авторов http://www.zabaware.com - Ultra Hal Assistant право на перевод на русский язык их программы[/quote] Разработчики, как я понял, находятся в Израиле и они не русскоговорящие. Они зарабатывают на программе деньги и врятли будут делится разработками бесплатно. Кроме этого мне не нравится как организован проект UHA. У меня сложилось впечатление, что проект проектирован по принципу спагетти и из UHA не получится вычленить какую-либо полезную нам разработку или модуль. Поэтому я думаю UHA не стоит большого внимания. Возможно я ошибаюсь. [quote]ТЗ говорите?[/quote] ТЗ готовится на сайте wiki.aiassistant.org (для просмотра требуется регистрация) [quote]А какие у Вас требования на ТЗ?[/quote] [url]http://wiki.aiassistant.org/doku.php?id=техническое_задание[/url] Введение AIAssistant разрабатывается как микроядро с присоединяемыми модулями (плугинами). Прототипы: * Операционная система Minix (http://www.minix3.ru/ http://www.minix3.org/) * Среда разработки Eclipse (http://www.eclipse.org/) * Интернет-клиент для общения используя различные протоколы Miranda (http://www.miranda-im.org/) Содержание 1. Общие требования 2. Ядро 3. Графический интерфейс пользователя (GUI) 4. Плугины Последовательность разработки 1. Первый этап - ядро 2. Второй этап - главное окно 3. Третий этап - напоминалка 4. Четвертый этап (надоело копировать. заходите и смотрите, если интересно)[/quote]
Заголовок сообщения: СообщениеДобавлено: 23 авг 2007, 16:30 [quote="victorst"][quote="Prof1983"]OWL - довольно интересный формат, но его недостаточно. Дело в том, что я не нашел в OWL как можно задать последовательность действий для выполнения. Т.е. OWL в чистом виде не получится использовать как язык инструкций для агентов.[/quote]Возможно вы, Prof1983, ошибаетесь. С помощью OWL можно описать любую сущность, ее пространственные, временные и иные связи с другими сущностями. Т.е. выразить практически любую мысль. Другое дело, что не следует отождествлять OWL, физически записанную в виде XML и БЗ, построенную по принципу OWL. Конечно же реализации тут совершенно разные. От БЗ требуются другое.[/quote]
Заголовок сообщения: СообщениеДобавлено: 23 авг 2007, 22:43 [quote="daner"]Вопрос к victorst и Prof1983. А можете привести пример выражения мыслей на ОWL. КОНЕЧНО, я не прошу обычные мысли выражать. Дайте пример на МАЛЕНЬКОЙ проблемной области. Т.е. если это просто описание онтологий, то думаю мысли выражать не получиться, а если это что-то больше... очень было бы интересно. [quote="Prof1983"]Можно создать ADT (Agent Development Tool), но это отдельная тема для разговора.[/quote] Мы такую на работе пишем. Кстати под Eclipse. А еще есть JADE (ну вы его знаете уже), так он как известно на java написан, а значит если постараться, то можно без лишней мороки, запихнуть в тот-же Eclipse. Хотя особого преимущества я в этом не вижу. Кстати, точно так же можно использовать и Firefox и NetBeans.[/quote]
Заголовок сообщения: СообщениеДобавлено: 31 авг 2007, 13:42 [quote="victorst"][quote="daner"]Вопрос к victorst и Prof1983. А можете привести пример выражения мыслей на ОWL. КОНЕЧНО, я не прошу обычные мысли выражать. Дайте пример на МАЛЕНЬКОЙ проблемной области.[/quote]Нашел свой старый пример http://ai.obrazec.ru/forum/viewtopic.php?t=802&postdays=0&postorder=asc&start=0 А вот ссылка для загрузки картинки. http://ai.obrazec.ru/forum/download.php?id=265 Структура знаний там сильно упрощена, но дает представление о возможности описывать в виде онтологии различные мысли. Понятием может быть не только вещественный предмет - яблоко или автомобиль, но также любое действие или состояние объектов материального мира а также практически все, о чем может помыслить разум включая несущесвующие субстанции вроде числа вообще. Для представления в виде OWL иерархическую структуру, показанную на моем рисунке нужно лишь преобразовать по правилам языка OWL в текстовое представление.[quote="daner"]Т.е. если это просто описание онтологий, то думаю мысли выражать не получиться, а если это что-то больше... очень было бы интересно.[/quote]С помощью сообщений в виде онтологии можно передавать любую связную внутренне непротиворечивую мысль.[/quote]
Заголовок сообщения: СообщениеДобавлено: 01 сен 2007, 03:26 [quote="daner"]Нее, это не то! это описание онтологии, а вы пример предложения приведите! Т.е. например, простое предложение: "Что бы покрасить машину в красный цвет, надо ее закидать яблоками красного цвета". Добавьте к вашей онтологии то, что считаете нужным, а после расскажите : как красить машину. Только рассказывайте на ОWL'е (не обязательно в текстовом представлении)[/quote]
Заголовок сообщения: СообщениеДобавлено: 21 сен 2007, 18:26 [quote="victorst"][quote="daner"]Нее, это не то! это описание онтологии, а вы пример предложения приведите! ...Только рассказывайте на ОWL'е (не обязательно в текстовом представлении)[/quote]Сейчас я делаю в своем проекте такой модуль. Как сделаю и сам перепроверю насколько смогу, поделюсь результатами. Не хотелось бы обсуждать это лишь умозрительно.[/quote]
Заголовок сообщения: СообщениеДобавлено: 02 окт 2007, 23:55 [quote="victorst"]Я вот что подумал: что нам, энтузиастам ИИ хочется от этого самого ИИ? Вряд ли в первую очередь хочется, чтобы он немного лучше выполнял обычные функции других программ. Нам с вами нужно большее. Мы хотим ощутить в ИИ личность, сравнимую с нами, да не просто личность, а интересную нам, притягательную. Для этого многие идут по пути создания чат-ботов. Но обычно такие программы так и остаются лишь никудышними говорилками. Я предлагаю двигаться к программе, интересному собеседнику поэтапно, начиная с главного, временно отбрасывая компоненты, которые сейчас реализовать почти невозможно. Что нужно в первую очередь от такой программы? Понимание того, что мы ей сообщаем. Далее, нам хотелось бы, чтобы программа имела хотя бы некоторые интересные черты личности. И как итог, чтобы программа могла на понятном нам русском языке выводить ответы. Самый трудный узел такой программы - понимание связного текста, предлагаю временно заменить Визардом с набором меню, который бы помог нам сносно передавать программе наши мысли. Далее - можно создать примитивную в плане "движений души" личность, а также модуль оформления в словоформы мыслей этой личности. Если такой подход даст положительный экспериментальный результат, можно будет переходить к усложнению модулей, а впоследствии к добавлению модуля распознавания письменной речи. Вот такие мысли.[/quote]
Заголовок сообщения: СообщениеДобавлено: 18 янв 2008, 03:03 [quote="victorst"]Продолжаю размышлять вслух. На пути к программе- универсальному помощнику человека вижу следующий этап. Видимо, пользователям сейчас необходимы агенты, которые обладают конкретным набором умений. Пользователь заранее должен знать, за какой помощью обращаться к программе. А раз так, то вряд ли уместно делать программу, которая и редактирует фотографии и помогает сочинять музыку и ищет в интернете новости. Практика говорит о том, что такие сложные программные комбайны пользуются меньшим спросом, чем специализированные утилиты. Тут, видимо все дело в психологии пользователя. Поэтому немного тактически видоизменяю подход к созданию универсального помощника. Сначала нужно сделать набор специализированных помощников, совершенствуя которые, можно было бы, объединив их умения, впоследствии создать универсального. Ведь если человеку задан вопрос с небольшим набором вариантов ответа, то его поле поиска ограничено этим набором. В противном случае кол. вариантов становится огромным. Аналогично, задавая вопросы программе из небольшого набора, мы облегчаем ее задачу. А если при этом решение такой задачи относительно тривиально, то и потребная интеллектуальность программы невелика. Ну и какой смысл делать самую обычную программу, спросите вы. На самом деле программа должна быть не совсем обычной как по способу общения с человеком, так и по внутренней архитектуре.[/quote]
Заголовок сообщения: СообщениеДобавлено: 18 янв 2008, 05:22 [quote="daner"][quote="victorst"]рактика говорит о том, что такие сложные программные комбайны пользуются меньшим спросом, чем специализированные утилиты.[/quote] Я думаю вы не правы. Все зависит от того какие функции соединять. Конечно, если соединять, калькулятор и графический редактор, то толку будет не много. Особенно, если человек графикой не занимается, или считать ему нечего! Другое дело, когда совмещаются тематически удобные программы. Типа почтового клиента и каталога контактов, а так же разных заметок и календаря! И это как раз практика! У outlook столько поклонников, что многим другим программам даже не снилось. Я уже не говорю об офисе в целом. Не смотря на то, что программы разделены, они представляют нечто общее. И это не только микрософте! Есть еще несколько таких пакетов. Их успех связан с тем, что всеми программами из этого пакета (ну большей их частью) все равно нужно будет пользоваться. Если же пакет составлен глупо, то мне как пользователю, не нравиться скачивать монстра большей частью которого, я никогда не воспользуюсь.[/quote]
Заголовок сообщения: СообщениеДобавлено: 18 янв 2008, 14:44 [quote="Fractal"][quote="victorst"]Продолжаю размышлять вслух. На пути к программе- универсальному помощнику человека вижу следующий этап. Видимо, пользователям сейчас необходимы агенты, которые обладают конкретным набором умений. Пользователь заранее должен знать, за какой помощью обращаться к программе. А раз так, то вряд ли уместно делать программу, которая и редактирует фотографии и помогает сочинять музыку и ищет в интернете новости. Практика говорит о том, что такие сложные программные комбайны пользуются меньшим спросом, чем специализированные утилиты. Тут, видимо все дело в психологии пользователя[/quote]Так и в природе: вначале были разрозненные агенты, которые рефлекторно реагировали локально на раздражители, затем появился интегратор с общей моделью о выясненных закономерностях мира (мозг). А вообще пользователю нужна инфа и результат действия. Ему по-всеравному, откуда и как они берутся. Он может обратиться не к спецпроге, а к гуглю (для поиска) или универсальной проге (для беспосреднических услуг), выбор за скоростью получения результата. Если Гугля научится понимать "смысл" вопроса, то будут обращаться к нему, если универсальная будет делать все так, как специальные, то она и останется[quote="victorst"]Поэтому немного тактически видоизменяю подход к созданию универсального помощника. Сначала нужно сделать набор специализированных помощников, совершенствуя которые, можно было бы, объединив их умения, впоследствии создать универсального[/quote]1 человек такое не потянет. Маховик, как минимум, порядка Microsoft должен быть[/quote]
Заголовок сообщения: СообщениеДобавлено: 19 янв 2008, 01:47 [quote="БТР"]Вообще говоря, [quote="vicrorst"]Поэтому немного тактически видоизменяю подход к созданию универсального помощника. Сначала нужно сделать набор специализированных помощников, совершенствуя которые, можно было бы, [b]объединив их умения[/b], впоследствии создать универсального[/quote], лично я как раз озабочен моделью на основе которой такое объединение возможно. Для меня такие "умения" - это самоподобные контуры смысла, объединенные в гиперцикл. Объединение возможно если есть обобщающий таким умения контур, общая цель, общий смысл. Для меня в принципе интеллект - это способность воспринимать цели, которые раньше не были частью внутреннего спектра устремленностей, распознавание системы действий некоторых воспринимаемых объекты как результата определенных устремленностей, анализ выгоды от таких действий и интеграция выявляемых устремленностей в собственную систему целей, постоянное совершенствование спектра целей, т.е. того, что называется мировоззрением. Лично я не знаю ничего в деятельности живых организмов, что не являлось бы замкнутым циклом "цель1-устремление-действие-восприятие-цель2"[/quote]
Заголовок сообщения: СообщениеДобавлено: 19 янв 2008, 11:43 [quote="victorst"][quote="БТР"]Для меня такие "умения" - это самоподобные контуры смысла, объединенные в гиперцикл.[/quote]Давайте разберемся с тем, что такое агент и что такое его набор поведений. Сначала посмотрим на человека. Один человек (заказчик) просит другого человека (агента) выполнить какую-то работу, например, покрасить стену. Ясно, что не весь человек выпоняет эту работу, а лишь те его части, что нужны для данной работы в конкретный момент времени. Сложная работа обычно может быть разбита на несколько параллельных или последовательных более простых работ. Например, работа - макнуть кисть в емкость с краской нужного цвета. Вот это и есть примитивное действие- поведение. В программном агенте все аналогично. Очевидно, что можно такие примитивные действия объединять в более сложные комплексы. Их можно называть по - разному: пресеты, более сложные поведения и т.д.[quote="БТР"]Лично я не знаю ничего в деятельности живых организмов, что не являлось бы замкнутым циклом "цель1-устремление-действие-восприятие-цель2"[/quote]В общем и целом это правильно.[/quote]
Заголовок сообщения: СообщениеДобавлено: 19 янв 2008, 18:06 [quote="chaldonVpimah"][quote="БТР"]я не знаю ничего в деятельности живых организмов, что не являлось бы замкнутым циклом "цель1-устремление-действие-восприятие-цель2"[/quote] Небольшое уточнение: потребность — управление — действие — удовлетворение/неудовлетворение. (Цель не может возникать на пустом месте.) [quote="victorst"]примитивные действия объединять в более сложные комплексы[/quote] Действия — это результаты программ предстоящих действий. Эти программы у Вас будут стандартными? Если нет, тогда главное — выработка программ, то есть синтез информации. P.S. Kevin Warwick http://www.kevinwarwick.com/ недавно сказал, что за создание машины с интеллектом таракана изобретателю гарантирована Нобелевская премия. Это событие профессор ожидает не раньше, чем через 10 лет. (М. В. Биккель)[/quote]
Заголовок сообщения: СообщениеДобавлено: 19 янв 2008, 23:04 [quote="Fractal"][quote="victorstЯ же не на пустом место начинаю. Уже есть множество чужих наработок. Нужно лишь их творчески преобразовать для достижения собственных целей[/quote]Кажется понял ваши цели: нужен "интеллектуальный" агент, который сможет выяснить, что же пользователю нужно ("мозг"), а потом он даст команду "подчиненным" сделать то, что он понял. Но для этого нужно иметь в виду, что пользователь системы может быть разной подготовки (один сразу скажет - уменшить яркость на 100 и сохранить с потерей качества до 10). А другому нужно показать (т.е. еще обучать), что где и как происходит, называется[/quote]
Заголовок сообщения: СообщениеДобавлено: 19 янв 2008, 23:17 [quote="БТР"][quote]Небольшое уточнение: потребность — управление — действие — удовлетворение/неудовлетворение. (Цель не может возникать на пустом месте.) [/quote] Потребность и цель имеют номинальные различия между собой. Всякая цель - и есть потребность. Феноменально цель и потребность - тождественны. Ум не различает одно от другого в механизмах своей деятельности[/quote]
Заголовок сообщения: СообщениеДобавлено: 22 янв 2008, 20:53 [quote="Mad_God"]Хочется вставить и свои пять копеек. Я конечно понимаю, что вы все тут мультиязыковые программисты с большим опытом (но это я могу сказать только на основе того, как я себе представляю настоящего, опытного программиста), а я только учусь и все мои программы пока что в моей голове; вы тут делитесь алгоритмами своих программ, один другого краше. Но вот что я хочу сказать после долгих размышлений. Само программирование (язык программмирования) как таковое, существует как связующее звено между субъектом, который управляет и объектом управления (процессом). При этом, язык программирования должен управлять некоторым достаточным количеством объектов, чтобы обеспечить управление ЛЮБЫМ процессом, который только можно придумать(придумать в той системе, в которой вы программируете, ведь в компьютере ваша свобода ограничена)! Плюс возможность добавить управляемые объекты, если их оказывается недостаточно. Итак, когда Вы придумываете систему агентов, которые взаимодейтсвуют между собой, подразумевается, что Вы предопределяете их поведение в той или иной ситуации жестко, без возможности обучения, так сказать, на месте - или наоборот. Вы предопределяете, как они будут интерпретировать ситуации, в которых находятся и сведения о том, что им дальше делать уже должны где-то находится. а не создаваться ими самими. Так? Чем это отличается от написания модулей, подпрограмм на все случаи жизни, когда эти случаи происходят? То есть, как я обнаружил, ИИ для многих заключается в создании программ, которыми человек уже обладает и чем больше мы программ находим в нашем мозгу тем больше мы можем ввести их в компьютер. Давайте наконец пойдём по другому пути, иначе мы обречены писать и писать эти треклятые программы! Напишем, наконец программу, которая совершенствует сама себя, дописывает себе плагины, обрастает данными сама, без нашего явного приказа делать то или это, а из введенных нами в самом начале ее создания побуждений. Напишем язык, который способен работать одинаково как с реальными объектами, так и с виртуальными(это убирает ограничения свободы, так как умея работать с виртуальным объектом, можно сразу перейти к работе с реальным, только лишь появится средство взаимодействия), воображаемыми объектами, _необходимыми_ для полноценного моделирования ситуаций и представления знаний в форме тех или иных _моделей_ , которые вызываются, обрабатываются и выдают результат необходимый для _предсказания_, что в свою очередь необходимо для планирования и целеуказания. Что скажете?[/quote]
Заголовок сообщения: СообщениеДобавлено: 22 янв 2008, 22:03 [quote="Mad_God"]Я тоже ЗА инкрементальное программирование. Но скажите, было бы оно таким успешным, если бы не создали ранее ООП? БД? Модульное программирование? Событийное программирование? Виртуализацию. Мне почему то не верится что невозможно вначале обобщить все методы, на которые нужно опираться, а затем, постоянно наблюдая результаты своих трудов заниматься инкрементальным программированием. Но! Делать это в целях контроля самоорганизации а не ее заменении своим кодом. Конечно, можно и так. Но вот до чего я дошел. Я сделал (не совсем до конца но до того предела, который для меня продемонстрировал состоятельность метода) основу для моделирования любых процессов и объектов. И всё равно не могу решить, как избежать самостоятельного добавления подпрограмм до некоторого базового уровня. А это - работа многих человек и многих лет. Заниматься этим в одиночку - нецелесообразно. Единственный вариант - показывать это везде и всюду, всевозможно разукрашивая и показывая динамику. А даже для этого нехватает квалификации. Не пиарщик я. И не меценат, чтоб нанять пиарщика. С одной стороны - это память. С другой - само себе программа (что с этой памятью делать) С третьей стороны - возможность кемто- само- модификации. В четвертых - способ взаимодействия с внешней и внутренней средой. Но так как это сделано (сделано громко сказано конечно) не Майкрософт или Сан Микросистемз или Борланд, то это никому не нужно и никем замечено не будет. А жаль.[/quote]
Заголовок сообщения: СообщениеДобавлено: 22 янв 2008, 23:11 [quote="Mad_God"]Именно демонстрировать. И ключевое слово здесь - КАК демонстрировать. представьте себе? сумасшедший учёный с всклокоченными волосами выпученными глазами начинает что-то лепетать о синхрофазном гипердифузном диференциировании спинов в кортикальноганглиальном протополе (во я загнул). Короче о том, о чём никто не понимает. И там, где это никому не интересно. А когда попросят объяснить попроще - говорит : "ну вот эта штучка вот здесь на три деления подвинулась" все: "НУ И ЧТО?" а он: "А ДОЛЖНА НА ЧЕТЫРЕ!!!" Эффекта как понимаете - 0. ЗЕРО. Надо чтобы этим занимался тот кто умеет. Что нужно делать, зачем и как. Я говорю о языке. Я же не должен сам на нём писать? Я должен доказать что на нём НАДО писать.[/quote]
Заголовок сообщения: СообщениеДобавлено: 23 янв 2008, 00:34 [quote="Mad_God"]Хорошо, что формируется. Но зачем? XML, возможно, для кого-то полезен. Но как с него перейти на моделирование? На процесс воображения, вычисления, нахождения ответов? Для успешного моделирования нужно хранить информацию в виде, доступном для взаимодействия. Допустим, где-то хранится объект или процесс (моделируемый) в XML. Да хоть в текстовом документе, которым XML, собственно и является. Важна именно возможность и легкость чтения из этого документа, загрузка чего-то этой информацией для получения какой-то другой, новой или старой заново, по требованию, с какой-то заданной извне или изнутри целью. Так? Я предлагаю сосредоточится на том, ЧТО мы будем кормить информацией, для ЧЕГО мы составляем правила, на КАКОМ языке составлять правила чтобы они были понятны ЭТОМУ. Или будем обучать компьютер XML?[/quote]
Заголовок сообщения: СообщениеДобавлено: 23 янв 2008, 19:33 [quote="Mad_God"]"Он его знает" Давайте не будем тут создавать темы "знает ли компьютер XML", а раз и навсегда признаем, что XML существует для человека, мозги которого на время заимствует компьютер, чтобы выполнить задачи, поставленные человеком же. Никакого "Он" в компьютере нету. Есть то, что человек задумал и воплотил. Таким образом и XML использует человек дабы усложнить себе задачу. Я настаиваю: данные необходимо хранить в битах, в байтах, так не будет разницы, текст мы запоминаем, музыку, графику, код или ещё что, что вам в голову придёт. Задаёте тип и пользуетесь. Единственное что нужно человеку - удобный инструмент занесения данных в компьютер - а это ОС. Не нужно набивать слова в XML. Научите компьютер читать текстовые файлы, подразделением которых есть и XML. Поймите, как будет храниться информация не зависимо от типа, и как сделать так, чтобы работа с ней была универсальной. Задайте себе вопрос: как можно моделировать все типы данных сразу. Нужно хранить так, чтобы удобно было пользоваться. Чтобы сам способ хранения (динамический а не статический) задавал режимы обработки, постоянного накопления и создания знаний из имеющихся, расширения возможностей программы и так далее. Одна из составляющей такой программы - База Данных, которая хранит типы данных и записи, связанные списки сортируемых индексов и ссылки на файлы данных и кода. Вторая - виртуальная машина (так как хардварного устройства пока нет) для обеспечения интераций взаимодействия данных между собой по заданному экспериментальному алгоритму, который имеет доступ к самоизменению и работе по усовершенствованию этого изменения. На первых порах значительно интереснее (и эффективнее) будет получать реальные результаты путём самостоятельного занесения алгоритмов в память этой БД и дальнейшего тестирования, так как реальная эволюция может занять возможно многие тысячи лет. Для взаимодействия данных берутся элементарные операции сравнения и логического ветвления, перемещения данных из ячейки в ячейку, чем возможно получить все логические операции И ИЛИ НЕ (И ТАК ДАЛЕЕ ) а также арифметические действия над числовыми и символьными данными. Эти операции являются виртуальной машиной, которая позволит программе, находящейся внутри взаимодействовать только с теми элементами, с которыми позволит человек. Можно будет подключать программы и устройства, дающие доступ к познанию и изменению внешнего мира, например. В принципе всё готово, недостаёт лишь массовости, распределённых иследований и усовершенствования движка, который в силу моей небольшой квалификации сейчас на зачаточной стадии.[/quote]
Заголовок сообщения: СообщениеДобавлено: 23 янв 2008, 19:34 [quote="daner"]часть темы касающаяся обсуждения агентно-ориентированной терминологии перенесена в раздел [i]НП::Вопросы, Идеи и Предложения по изучению, использованию и развитию ИИ методов[/i] под названием [i]Что в агенте называется поведением?[/i] по адресу http://ai.obrazec.ru/forum/viewtopic.php?p=18600#18600[/quote]
Заголовок сообщения: СообщениеДобавлено: 27 фев 2008, 14:04 [quote="victorst"]На данный момент я пришел к тривиальному выводу: ИИ должен быть как можно незаметнее для пользователя. Ведь человеку необходимо удовлетворение какой- либо конкретной потребности, которое м.б. реализовано в программной утилите, а не ощущение интеллекта в чреве компьютера. Поэтому я делаю embedded AI. Проще говоря, пишу набор программ, которые должны выполнять самые обычные функции. Но в некоторых случаях ИИ позволил бы выполнить работу качественнее, комфортнее и гибче. Исходя из этого я первой программой делаю не какую- то замороченную диалоговую говорящую программу, а простую утилиту финальной обработки фотографий. Втроенный интеллект основан на системе CLIPS. Все пишется на C++ Builder. Этот язык пришлось изучать в связи с некоторыми обстоятельствами, хотя мне не очень то этого хотелось.[/quote]
Заголовок сообщения: СообщениеДобавлено: 27 фев 2008, 18:54 [quote="daner"][quote="gsvano"]С++ руль[/quote] C++ -- гов-о!!! :( ООП в нем раковый, синтакс не выразительный, внутренних и анонимных классов нет. С памаытью и segmentation foults вообще задол-ца можно. Фууууу..... гадость какая. Если бы не его скорость, давно бы уже сдох. Каждый день на нем пишу и плююсь. Думаю стекло-очистители на монитор установить. Так ведь что можно взять с практически первой реализации ООП, да еще и в виде надстройки к процедуральному языку!? [color=green][size=75]Добавлено спустя 7 минут 23 секунды:[/size][/color] [quote="victorst"]На данный момент я пришел к тривиальному выводу: ИИ должен быть как можно незаметнее для пользователя.[/quote] Кстати, хороший вывод. Офисный Агент от Микрософта, в основном на этом погорел, слишком много на себя внимания забирал, а это быстро раздражает при постоянной работе. Тут либо, агент не путается под ногами (ну как демоны и сервесы) или же он является интерфейсом (как ОС или Граф Оболочка), но тогда он должен быть удобнее существующих "не интеллектуальных" (и желательно во всем).[/quote]
Заголовок сообщения: СообщениеДобавлено: 27 фев 2008, 19:56 [quote="victorst"][quote="daner"]C++ -- гов-о!!! :( ООП в нем раковый, синтакс не выразительный, внутренних и анонимных классов нет. С памаытью и segmentation foults вообще задол-ца можно. Фууууу..... гадость какая. [/quote]Мне на самом деле по большому барабану на чем писать. И на Java и на С++. Только нужно некоторое время на изучение кривизны конкретного языка и студии. Я очень не хотел идти на С++ да еще в борландовской реализации. Но ничего не поделаешь. Пока другого варианта нет для тех целей. кот. хочу достичь. Утечки памяти? сборка мусора? Пофиг. все равно все баги не вычистить. Я почему опять на форуме писать стал? Нужна помощь. М.б. кто умные мысли выскажет. Вот есть задача: пользователь хочет украсить фотографию, чтобы подарить ее знакомым или внести в собственный архив. Конечно, можно сохранить и исходную, "сырую" фотографию. Но вряд ли это стоит делать. Лучше, если бы можно было обрезать ее до нужного размера, выровнять яркость и контрастность, добавить текст в теги, замутить края и т.д. Вполне, кстати, полезный инструмент. Программ таких много. Но взял такую утилиту в качестве пробы ИИ как наиболее наглядную. Итак, где же здесь д.б. ИИ? Допустим, у вас фоток 100. Или вы хотите пофантазировать в оформлении, но фантазии у вас в данный момент полный ноль. Или еще что. Тут вполне подойдет агент- эксперт, который смог бы взять на себя рутину, либо подбор вариантов. Т.е. можно вмонтировать в програму набор экспертных систем (набор агентов- экспертов). Но начать можно с какого-то одного. Тогда и станет ясно, нужен ли ИИ в такой программе или нет. Я вмонтировал в программу CLIPS, как уже говорил ранее. Мне понравился его подъязык COOL, особенно множественное наследование в нем. Вся гибкость ИИ включая самообучение будет построено на нем[/quote]
Заголовок сообщения: СообщениеДобавлено: 01 мар 2008, 21:04 [quote="Dimmy"]а не приходила мысль что экспертные системы на ПРОЛОГЕ - это устаревшая лет на 50 (с 60х) мысль? Вы знакомы с Perl, Ruby? там механизм работы с регулятрыми выраженями позволяет выражаться теми же операндами как и на прологе. а главное!!! можно сделать так, что скрипт на Ruby/Perl будет "обдумывая" создавать другой скрипт на основе своего, может анализировать свой код, создавать "дитя", дополненное с базой знаний и с исправленнием ошибок, а после всего этого запустить это дитя рядом в той же системе... если дитя работает - оно скажет об этом папе и папа может спокойно умереть или рождать далее... может то чего вы достигли, а в чем я не сомневаюсь, нужно применить немного по другому? на другом языке и новым взглядом на программирование сие дела. но, возможно, со старым взглядом на математику дела.[/quote]
Заголовок сообщения: СообщениеДобавлено: 07 мар 2008, 16:25 [quote="victorst"]Информацию о текущей версии программы можно узнать: http://www.aiwinsoft.com/aiassistant/download/file_id.diz Загрузить программу можно по ссылке: http://www.aiwinsoft.com/aiassistant/download/aiassistant.zip Текущий вариант программы основан на CLIPS. Постепенно надеюсь придать системе новые качества (добавить БД для работы с медиаинформацией и т.д.) а также улучшить интерфейс. В данной теме хотелось бы совместно исследовать возможности программы, заняться ее улучшением. Для этого хотел бы разработать несколько простых программ на языке CLIPS и его объектном расширении COOL, чтобы желающие смогли понять их суть и механизмы работы. Если кто-то заинтересуется написанием таких программ, я был бы рад. http://www.aiwinsoft.com/aiassistant/download/demo/rus/games/STICKS_Rus.zip Это простая игра, где каждый играющий берет палочки из кучи. Кто забирает последнюю - проиграл. Для запуска игровой программы нужно: 1. Запустить AIAssistant. 2. Выбрать в меню пункт File-> Load... 3. В появившемся окне Load AIAssistant Construct выбрать файл игры с расширением .CLP После загрузки в окне Dialog Window в предпоследней строке должно появиться TRUE. 4. В самой нижней строке где выводится сообщение "AI>" ввести ВМЕСТЕ С КРУГЛЫМИ СКОБКАМИ команду (reset) и нажать клавишу Enter. В ответ система выведет лишь новое сообщение AI> 5. Ввести ВМЕСТЕ С КРУГЛЫМИ СКОБКАМИ команду (run) и нажать клавишу Enter. Игровая программа должна запуститься. Можете посмотреть текст программы а также попытаться обыграть ее. А вот игра Камень, ножницы, бумага: http://www.aiwinsoft.com/aiassistant/download/demo/rus/games/RPC_Rus.zip[/quote]
Заголовок сообщения: СообщениеДобавлено: 09 мар 2008, 01:21 [quote="victorst"]Пример простой экспертной системы по поиску неисправностей автомобиля. Запускать ее нужно так же как и вышеприведенные игры. http://www.aiwinsoft.com/aiassistant/download/demo/rus/es/auto_ru.zip[/quote]
Заголовок сообщения: СообщениеДобавлено: 10 мар 2008, 03:29 [quote="victorst"][quote="С.Тарасов"]Виктор ваша экспертная система работает не правильно. Если дв.не заводится И двигатель не вращается И ак.заряжен, то скорее всего дело в стартере, а может его заклинило, а может залито летнее масло и в сибирские морозы оно замёрзло, и т.д. :([/quote]Спасибо за найденный баг. Я сделал исправления в ЭС по поиску неисправностей в автомомбиле, а также написал комментарии в тексте программы для тех, кто хочет разобраться в ней. Загрузить ЭС можно по прежнему адресу: http://www.aiwinsoft.com/aiassistant/download/demo/rus/es/auto_ru.zip При желании ее можно усовершенствовать, например, добавить возможность обучения по прецедентам или расширить количество симптомов неисправностей.[/quote]
Заголовок сообщения: СообщениеДобавлено: 31 мар 2008, 23:18 [quote="victorst"]Я обновил версию программы AIAssistant до V 1.0.1 http://www.aiwinsoft.com/aiassistant/download/aiassistant.zip Добавил новые команды для работы с графикой в язык CLIPS. Т.о. появился язык ECLIPS (Extended CLIPS) Демо- примеры можно попробовать: http://www.aiwinsoft.com/aiassistant/download/demo/rus/GraphicDemo.zip Однако еще не все указанные там команды работают как положено. Идет процесс отладки. [color=green][size=75]Добавлено спустя 4 дня 6 часов 35 минут 28 секунд:[/size][/color] Обновил версию программы AIAssistant до V 1.0.2 http://www.aiwinsoft.com/aiassistant/download/aiassistant.zip Исправил работу новых команды ECLIPS Для их проверки написал упрощенную версию программы Жизнь Дж. Конвея: http://www.aiwinsoft.com/aiassistant/download/demo/rus/games/Life.zip М.б. кто-то проявит интерес и модернизирует игру?[/quote]
Заголовок сообщения: СообщениеДобавлено: 05 апр 2008, 11:45 [quote="victorst"][quote="Василий"]А можно попросить Вас выполнить 2 пожелания? Очень хотелось бы чтобы Вы давали развернутые пояснения сделанного (типа новостей "с фронта")[/quote]Хорошо. На данном этапе я "обустраиваю территорию". По мере моего знакомства с языком CLIPS я все более и более проникаюсь к нему уважением. Не знаю почему, но мне нравится его синтаксис. А главное, что многие языковые конструкции включая классы и объекты с множественным наследованием выглядят очень продуманными. Но т.к. есть потребность использовать движок ЭС в нашем привычном компьютерном окружении, то в дополнение к командной строке приходится делать форточный интерфейс пользователя. Этим я по мере надобности и занимаюсь. Добавив всего несколько команд для работы с изображениями, появилась возможность делать наглядные эксперименты по ИИ. Например, можно создать нейросеть и наглядно отразить ее деятельность. Можно брать изображения и заниматься их распознаванием.[quote="Василий"].. вместо очень познавательных, но бесполезных файлов - дали что-нибудь исполняемое или хотя бы тривиальную (но точную) инструкцию шагов по запуску (например файлов из Life.zip).[/quote]Не знаю, что вообще на данном форуме полезное или бесполезное есть. Не мне судить. Но примеры даю лишь для пробуждения интереса к тому, чтобы люди смогли взять конкретный инструмент - AIAssistant и попробовать применить его в своей практической деятельности, глядя на эти примеры. Или вы ждете чтобы я написал сразу программу чат-бота, неотличимого от человека, кот. прошел бы тест Тьюринга? Или шахматную программу, побеждающую всех и вся? AIAssistant - платформа для самых разнообразных экспериментов в области ИИ особенно. Я вот с ее помощью хочу свой дом сделать немного поумнее. И нисколько не сомневаюсь, что мне это удастся. Сейчас прорабатываю программно-аппаратные интерфейсы для связи AIAssistant с оборудованием. Кстати, в файле Life.zip есть инструкция по ее запуску. Это файл Readme_ru.txt. Кому трудно его прочитать, даю его содержание: Игра Жизнь Дж. Конвея V1.0.0 2008.03.31 Для запуска игры нужно в меню программы AIAssistant выбрать File->Load Batch... В открывшемся диалоге выбрать файл Life.bat В игре "Жизнь" действие происходит на бесконечном клеточном поле, на клетках которого расставляются элементарные автоматы - виртуальные "организмы". Каждая клетка может находиться в одном из двух состояний: "живом" или "мертвом" (чему соответствует черный и розовый цвета клеток). Выживание: Каждый элементарный автомат, у которого есть 2 или 3 соседних автомата, выживает, то есть переходит в следующее поколение; Гибель: Каждый автомат, у которой число соседей больше трех, погибает от перенаселенности, а тот, у которого сосед один, или ни одного, погибает от одиночества; Рождение: Если число автоматов с которыми граничит пустая клетка в точности равно трем, то происходит рождение нового автомата; Чтобы запустить игру, необходимо разместить в клетках начальную конфигурацию, состоящую из совокупности элементарных автоматов а затем дать ей возможность развиваться по описанным правилам. При этом можно наблюдать как эти виртуальные огранизмы копошатся, растекаются, делятся, рождаются, умирают, одним словом - живут. Именно поэтому игра и получила такое название - "Жизнь".[/quote]
Заголовок сообщения: СообщениеДобавлено: 05 апр 2008, 21:17 [quote="victorst"][quote="Алхимик"]С "Жизнью" поигрался, но в целом не понял: в чем этот ассистент будет помогать. Методом тыка я его не осилю. :)[/quote]Сейчас я пишу на ECLIPS модуль администрирования онтологиями. Я много говорил на этом форуме об онтологиях, но только сейчас появилась возможность начать их практически использовать. Не обязательно вам писать программы на ECLIPS. Нужны хорошие идеи и желание тестировать и давать советы по улучшению программ. Т.к. коды программ открытые, то нет никаких проблем с их улучшением и использованием в личных целях кому угодно. Один из вариантов использования системы управления онтологиями - личная записная книжка. Я вот например хотел бы в нее записывать любую личную информацию в произвольном порядке. А программа чтобы сама: 1. упорядочивала бы ее при первой записи в БЗ. 2. переупорядочивала бы старую информацию при каждом новом поступлении иинформации. Иными словами, делала бы умозаключения, которые бы абстрагировали информацию. Побочным эффектом этого д.б. сжатие информации, легкость последующего поиска ее и т.д. Нечто вроде самообучения и самосовершенствования. Например, я записываю факт "телефон 33-44-55" а потом еще факт "телефон 33-76-21" и еще "телефон 83-49-45". Что тут общего? слово "телефон", у первых 2 фактов еще и первые 2 цифры номера. Это легко можно обобщить. Короче, мысль ясна? Но есть и еще масса приятных мелочей, которые смогла бы предоставить мне и вам такая персональная информационная система. ВОт где понадобятся принципы ИИ. М.б. вы смогли бы предложить свои требования к такой "умной" записной книжке? Но м.б. есть и радикально другие предложения? Я продолжаю работы над системой автоматизации создания мультфильмов. А там и такая записная книжка как отдельный модуль нужна. Память то у меня плохая. Одна надежда - на технику и программы. AIAssistant имеет возможность менять свои правила, руководствуясь другими правилами. К чему это может привести, не знаю. Буду исследовать.[/quote]
Заголовок сообщения: СообщениеДобавлено: 25 июл 2008, 14:28 [quote="victorst"]Обновил программу AIAssistant Теперь ее можно скачать по ссылке: http://www.aiwinsoft.com/aiassistant/download/aiassistant.zip Посмотреть список изменений можно в readme файле внутри этого архива. Пользоваться можно так: 1. Запускаем программу. 2. На тулбаре или в меню выбираем пункт Start. Запускается системная ЭС. 3. В главном меню выбираем пункт 1 - Вывод списка категорий плагинов. 4. В меню списка категорий плагинов выбираем 2 - Утилиты 5. В меню списка утилит выбираем 1- SimpleChatBot Плагин SimpleChatBot стартует и в ответ на приглашение User> вводим слово привет А дальше - по обстановке. Это - примитивный чат-бот и если кому интересно, может посмотреть текст его программы там же. Теперь я приступаю к работе над другим чат-ботом, кот. мог бы строить собственные онтологии под действием обучения, полученного через общение. Он должен иметь задатки черт личности, модель собеседника, себя и темы разговора, а также другие компоненты.[/quote]
Заголовок сообщения: СообщениеДобавлено: 18 апр 2009, 00:55 [quote="victorst"]Опубликовал AIAssistant version 1.1.0.3, build 2009-04-17 Загрузить можно с http://aiwinsoft.com/aiassistant/download/aiassistant.zip Сделал поддержку интернационализации плагинов на языке ECLIPS. Добавил команды работы с датой и временем.[/quote]
Заголовок сообщения: СообщениеДобавлено: 19 апр 2009, 10:39 [quote="victorst"][quote="daner"]ну.... вообще какой-то help или man к нему совсем бы не помешал....[/quote]Делаю. AIAssistant - программа универсального назначения. Как я писал выше в данной теме, она содержит язык ECLIPS, основанный на языке CLIPS, созданный NASA для решения задач, связанных с принятием решений и создания экспертных систем. Этот язык основан на продукционных правилах. Также содержит все необходимое для процедурного и объектно-ориентированного программирования включая множественное наследование классов. На этой основе я делаю практически полезную программу, в которой впоследствии создам множество плагинов на языке ECLIPS. Плагины могут создавать и пользователи программы. Для этого есть не менее 4-х источников информации о CLIPS: 1. Книга Частиков. Разработка ЭС. Среда CLIPS. 2. Книга Джарратано Экспертные системы. Принципы разработки и программирование. 3. Книга Джексон. Введение в экспертные системы. 4. Документация, включенная в поставку CLIPS. Специальная версия AIAssistant будет скомпилирована под Linux без использования GUI команд. Она будет предназначена для вмонтирования в простых роботов и др. бытовую технику.[/quote]
Заголовок сообщения: СообщениеДобавлено: 05 июн 2009, 13:31 [quote="victorst"]Опубликовал AIAssistant version 1.1.0.4, build 2009-06-05 Загрузить можно как и прежде с http://aiwinsoft.com/aiassistant/download/aiassistant.zip Что изменено в новой версии: 1. Исправлены некоторые баги. 2. Добавлены команды работы с GUI (кнопки, формы, чекбоксы, картинки (см файл \doc\ECLIPS_GUI_Commands_ru.txt). 3. Упрощено добавление новых плагинов. 4. Добавил плагин вычисления идеального веса KetliIndex[/quote]
Заголовок сообщения: СообщениеДобавлено: 16 ноя 2010, 13:21 [quote="victorst"]Мне в начале этого года удалось в моей программе AIAssistant основанной на языке ECLIPS (расширенный CLIPS) собрать поверх реляционной БД FireBird базовую онтологию SUMO и дополнение к ней WordNet. Я написал кое-какие классы запросов к этой БЗ. можно, например, показать все надклассы данного класса. А т.к. многие классы имеют множественное наследование от базового класса Вещь, то интересны стали даже некоторые запросы мне самому. Ведь они - по сути дела формальные ответы на вопрос вроде: "что такое дом?" В ответе - дом - это артефакт, то, где живут люди, предмет архитектуры и т.д. Но это я описал по памяти, неточно. Там довольно длинные цепочки разъяснений. На основе этой базовой онтологии можно уже создавать свои прикладные, добавляя конкретные факты. Но онтология даже в архиве составляет 300 мб. Поэтому мне предстоит ее дальнейшая переработка, ведь там есть множество комментариев, ссылок на ресурсы интернета и т.д. Я уже кажется придумал, как сжать базу без потери содержимного. Нет только одного - свободного времени чтобы все это допилить до качественного продукта. Прога имеет встроенного аватара и может говорить на 40 языках. Но это - чисто внешний атрибут. Если будет интересно кому- то я попробую хоть какую-то версию проги выложить. Можно, кстати, и без этой БЗ, которую можно скачать и установить отдельно. Но хотелось бы ее иметь в основном составе плагинов AIAssistant.[/quote]
Заголовок сообщения: СообщениеДобавлено: 20 ноя 2010, 05:33 [quote="Neman"]Меня немного затронула тема Виктора, и для общего развития хотел бы выложить сюда некоторую информацию. И подчеркнуть интересные для меня моменты. [quote]Онтология SUMO содержит наиболее общие и самые абстрактные концепты, имеет исчерпывающую иерархию фундаментальных понятий (около 1 тыс.), а также набор аксиом (примерно 4 тыс.), определяющих эти понятия. Назначение SUMO — содействовать улучшению [b]интероперабельности данных[/b], [b]извлечения[/b] и поиска [b]информации[/b], автоматического вывода и обработки естественного языка.[/quote] [img]http://www.intuit.ru/department/expert/ontoth/4/4_3.png[/img] [quote]WordNet — один из наиболее полно разработанных тезаурусов общего назначения... В целом WordNet можно представить как сеть, в узлах которой находятся синсеты — лексикализованные понятия. Основными типами связей между узлами являются гипонимия и меронимия.[/quote] [img]http://www.intuit.ru/department/expert/ontoth/4/4_4.png[/img] [quote][b]ТЕЗАУРУС[/b] - словарь, в котором слова, относящиеся к каким-либо области знания, расположены по тематическому принципу и показаны [b]семантические отношения[/b] (родо-видовые, синонимические и др.) между лексическими единицами. В информационно-поисковых тезаурусах лексические единицы текста заменяются [i]дескрипторами[/i]... В 70-х гг. 20 в. получили распространение информационно-поисковые тезаурусы. При [b]автоматизированном информационном поиске[/b] ищутся документы, у которых индекс содержит не только [i]дескрипторы[/i] запроса, но и те [i]дескрипторы[/i], которые находятся с ними в определённых [b]семантических отношениях[/b]. Иногда бывает полезно выделять в Т. конкретные ассоциативные отношения, специфичные для данной тематической области: болезнь — возбудитель, прибор — назначение (или измеряемая величина) и т. п. Положение лексической единицы (слова, словосочетания) в Т. характеризует его смысл в языке; [b]знание системы семантических отношений, в которые вступает данное слово (в том числе и рубрик, куда оно входит), позволяет судить о смысле этого слова.[/b] В широком смысле Т. интерпретируют как описание системы знаний о действительности, которыми располагает индивидуальный носитель информации или группа носителей. [/quote] [color=green][size=75]Добавлено спустя 14 минут 29 секунд:[/size][/color] Не совсем понимаю зачем сразу 2 онтологии? Я сначала подумал, что одна для определения части речи, а другая уже для "поиска смысла". Виктор, не проясните немного ситуацию? [color=green][size=75]Добавлено спустя 13 минут 58 секунд:[/size][/color] А вот что-то созвучное из "соседнего" форума: [quote="Anna"]Но вот есть у меня такое представление, что для имитации живости, то есть ЕЯ, бот потребует мощности не вообразимые. Я это говорю чисто декларативно, можете не верить. Я сама проходила имтитацию само-организации рекурсией при создании системы автоматического понимания текстов на естественном языке. Поначалу, на уровне первых "ботов" все было оптимистично. Система начала постепенно вытаскивать из текстов структурные смысловые единицы: группы слов, обозначающие объект, группы слов про типы отношения объектов. Начала становиться устойчивой к ошибкам в текстах (из интернета качали). Но энтузиазм наш умирал... лавинообразный процесс роста объема данных пошел, когда мы попробовали нарастить самостоятелное построение системой сложных структурных образцов для возможных ситуаций в тексте и для реальоной ситуации в них описанной. Потом мы даже немного посчитали (и по факту, и теоретически прикинули), какова же была эта лавина. Это была экспонента в какой-то нехилой степени. Хотели написать научную статью на эту тему, с описанием процессов роста оюъема данных. Но так устали от всего этого, что плюнули и ушли думать о принципиальных решениях.[/quote][/quote]
Заголовок сообщения: СообщениеДобавлено: 28 ноя 2010, 12:02 [quote="victorst"]Отвечу на вопросы Neman чуть позже, когда переделаю базу с онтологией в более компактный вид. А сейчас хочу сообщить, что скоро выложу самую последнюю версию свой программы AIAssistant в свободный доступ. Сейчас идет ревизия программы, т.к. я ею не занимался несколько месяцев из-за моей большой загруузки другими работами. надеюсь, что кому-нибудь будет интересен "сплав" компьютерного зрения, речевых технологий, баз данных. Все это основано на Rules Engine в языке ECLIPS. И для почти полного комплекта - прямая работа этой системы с GUI.[/quote]
Заголовок сообщения: СообщениеДобавлено: 28 ноя 2010, 19:32 [quote="victorst"]2DCV: немного огорчу вас, т.к. полной инструкции пока нет. Есть несколько книг по языку CLIPS, которые вы можете скачать по моим ссылкам или купить бумажные в магазине. Моя программа полностью соответствует этому языку. Мое расширение языка до ECLIPS представляет из себя несколько десятков дополнительных команд. Нужно создать общую инструкцию по пользованию программой AIAssistant, по созданию новых плагинов на языке ECLIPS, по использованию имеющихся плагинов, идущих в поставке, по библиотекам, прилагающимся к системе. Все это я в меру своих сил делаю, но процесс идет небыстро. Инструкции будут размещены на моем сайте. Если кому- то будет интересен процесс создания своих агентов, искусственной жизни, нейросетей, экспертных систем, программ управления "умным домом", роботом, торговой системы для FOREX и т.д.на основе моей программы, я помогу разработчику всеми своими силами прямо на этом форуме или в другой удобной для всех форме.[/quote]
Заголовок сообщения: СообщениеДобавлено: 28 дек 2010, 12:36 [quote="victorst"]После пары недель упорного труда я переделал базу данных, хранящую онтологии SUMO и WordNet. Сейчас занимаюсь программной частью, производящей мыслительные операции. Делаю самый низкий уровень мышления. Для этого я определил, что между всеми частями "мозга" ИИ должны курсировать мельчайшие частицы знаний. Такими частицами я считаю RDF триплеты онтологии: Subject, Predicate, Object. Кроме этого эти частички знаний должны нести в себе информацию о том, какое поведение (behavior) сейчас эту информацию обрабатывает. Есть также дополнительная информация, необходимая для синхронизации параллельных вычислений. (deftemplate onto-data ;шаблон текущего факта поведения (slot keyid) ;уникальный ключ (slot subject) ;данные (slot predicate) ;данные (slot object) ;данные (slot module) ;данные ... ) Кроме этих частиц знаний я создаю на основе продукционных правил узлы переработки этой информации. Их можно называть как угодно. Но вряд ли они полностью похожи на реальный нейрон. Хотя сходство есть. Это для меня не важно. Я их называю обычно демонами. Демоны могут извлекать знания из онтологий SUMO и WordNet, а также создавать и пользоваться собственными онтологиями. Первым делом я занялся созданием механизма доступа к онтологическому хранилищу знаний. Делаю демонический аналог SPARQL. Без этого вся система не сможет работать.[/quote]
Заголовок сообщения: СообщениеДобавлено: 11 янв 2011, 16:50 [quote="victorst"]На всякий случай напишу, хотя наверное, тема неинтересна никому. Я написал очередной библиотечный модуль на языке ECLIPS в свою систему AIAssistant. Этот модуль осуществляет синтаксический анализ (парсинг) входного сообщения на основе контекстно - независимых грамматик. Но т.к. для работы ИИ требуется обработка контекстно- зависимых грамматик, то я в настоящее время совершенствую этот модуль. Кроме того, я осуществляю соединение онтологий, имеющихся в программе с этим модулем. Это позволит все терминальные и нетерминальные символы а также правила их вывода брать из онтологий. Но что такое эти самые правила и символы? Это по сути есть онтологическое описание мира. Появилась мысль о том, что этот анализ для входной одномерной последовательности слов на некотором ЕЯ можно распространить на двухмерный и трехмерный случаи. Тогда получим анализаторы письменной речи, звука, изображений и 3D пространства на едином принципе. Но для подтверждения такой идеи придется написать специальный плагин - тестовую лабораторию, что я уже и начал осуществлять.[/quote]
Заголовок сообщения: СообщениеДобавлено: 12 янв 2011, 14:01 [quote="victorst"][quote="DCV"]Интересно, но не все понятно, потому что многие не знают программных продуктов, которыми Вы пользуетесь.[/quote]Я пользуюсь только одним программным продуктом - моей разработкой AIAssistant. И с радостью выложил бы эту свою разработку в свободный доступ хоть вчера. Но есть несколько препятствующих этому факторов. 1. Размер программы а точнее ее базы данных/знаний довольно большой. В сжатом зазипованном виде более 300 мб. 2. Основная фишка программы - набор плагинов, отвечающих за разумное поведение, еще в далеко незавершающей фазе. А без этого что-то показывать и объяснять я смог бы лишь тем, кто хотя бы захотел попробовать разобраться в моей программе как программист. Встроенный в систему язык я уже неоднократно называл. Это ECLIPS. Я пишу все плагины на нем. А если чего-то нехватает, то добавляю новые команды на этом языке, дописывая их на C++. Если все-таки кому-то действительно интересна программа даже в таком сыром и недоделаном виде, то я все- же ее выложу где-нибудь, например, на кухонном сервере для скачивания. Но , повторю, лишь для серьезного ознакомления с ее потрохами. Я уже несколько раз совершал ошибку - показывал недоделанный продукт. Говорил, что это будет так, а это - эдак. И терпел серьезные неудачи из-за непонимания. Вот почему ничего не выкладываю. На скриншоте - один из рабочих моментов работы с программой. Я задал запрос базе знаний на самодельном языке запросов BABYLON, который написал на ECLIPS. Запрос (class-select SUMO #Horse) означает: имеется ли в онтологии SUMO класс Horse - обобщенное описание всех лошадей. Заметьте, что я не слово "конь" запросил, а понятие, означающее это животное. И получил ответ: Ontology SUMO Subject #Horse Predicate http://www.w3.org/1999/02/22-rdf-syntax-ns#type Object http://www.w3.org/2002/07/owl#Class Record 1 Result-query-onto-class-select: key gen27 , Subject: #Horse , Count: 1 что означает что в онтологии SUMO содержится один такой класс (Count: 1). Формат ответа - название онтологии, Субъект, предикат, объект. Это означает, что #Horse имеет тип "OWL Класс" 2daner: Я веду разработку AIAssistant не чисто как программу- вещь в себе. Это может быть и отдельная пользовательская программа, и программа, в компьютере, соединенная с настольным роботом, программа, вмонтированная в бортовой компьютер мобильного робота. Глубинные принципы работы одинаковые. Есть, конечно, специфические различия. Но они непринципиальны. Вот мои результаты работы над 3D зрением и над 3D реконструкцией окружающего мира. Для этого на языке ECLIPS с использованием OpenCV пишу небольшой плагин - лабораторию по исследованию стереозрения. На скриншоте вы видите текущее положение дел. Нижнее изображение - карта дальностей наблюдаемых поверхностей от видеокамеры (16 бит на каждый пиксел). Полутоновое изображение немного замутил фильтром для выдачи лучших результатов. Думаю, что нужно сделать одновременно несколько каналов обработки стереоизображения - по разным цветам и по размеру зоны внимания. Затем нужно свести все полученные данные в единую картину видимой части мира.[/quote] RB_001.JPG [75.92 КБ] Class-select1.PNG [19.8 КБ]
Заголовок сообщения: СообщениеДобавлено: 12 янв 2011, 23:07 [quote="daner"][b]victorst[/b] я так понимаю, вы стерео зрение (поиск disparity) не сами писали, а использовали функцию openCV? но вы уже давно писали, что получаете картинку расстояний. С того времи роботом не занимались? Просто расстояние между получением диспарити и символьно логическими преобразованиями, которые вы собираетесь делать в надежде получить 3Д реконструкцию (да еще и предметную) достаточно большое (ОЧЕНЬ). Т.е. продолжаете, прыгать от одного конца проблемы в другой? Небоитесь, что если тунель копать с двух сторон, он может и не сойтись в ожидаемой середине? :)[/quote]
Заголовок сообщения: СообщениеДобавлено: 13 янв 2011, 01:40 [quote="victorst"][quote="awoland"]А в каком виде (формате) хранится у Вас сама база данных/знаний ?[/quote]В виде базы данных FireBird, поверх таблиц которой я расположил онтологии в виде триплетов как на примерах в предыдущем посте. Кроме онтологий там хранятся индексы для ускорения работы базы. Это 20-30% объема. В class-superclass-tree-select.txt - еще один пример запроса. где я запрашиваю подробности о классе лошадей. И мне выдается несколько ответов. #Horse-> #Livestock-> #AnimalAgriculturalProduct-> #AgriculturalProduct-> #Product->#Artifact-> #CorpuscularObject-> #SelfConnectedObject-> #Object-> #Physical-> #Entity-> #Thing #Livestock-> #DomesticAnimal-> #Animal-> #Organism-> #OrganicObject-> #CorpuscularObject> #SelfConnectedObject-> #Object-> #Physical-> #Entity-> #Thing #Organism-> #Agent-> #Physical-> #Entity-> #Thing #Horse-> #HoofedMammal-> #Mammal-> #WarmBloodedVertebrate-> #Vertebrate-> #Animal-> #Organism-> #OrganicObject-> #CorpuscularObject> #SelfConnectedObject-> #Object-> #Physical-> #Entity-> #Thing Самому часто становится интересно, как трактует онтология те или иные понятия. Из вышеприведенных цепочек видно, что конь (#Horse)- это одновременно скот (#Livestock), копытное млекопитающее (#HoofedMammal). В свою очередь, скот - животноводческая сельскохозяйственная продукция (#AnimalAgriculturalProduct). Скот еще и домашнее животное (#DomesticAnimal). Дальше сами сможете легко все понять.[/quote] class-superclass-tree-select.txt [13.74 КБ]
Заголовок сообщения: СообщениеДобавлено: 13 янв 2011, 20:45 [quote="victorst"]2awoland: Каждая онтология хранится в отдельной таблице и в моей базе нет реляций между таблицами. В дальнейшем можно хранить более компактно эти знания, так сказать, в скомпилированно - обфускированном виде. И даже не поверх таблицы, а в реальном древовидном хранилище на внешнем носителе. Я даже такое хранилище написал на ассемблере. Но я пока сам оказался к такому хранилищу не готов. Буду двигаться постепенно. Так как сейчас хотя бы для меня читабельно. Для перехода на чисто онтологическо хранилище требуется вникнуть в структуру каждого элемента триплетов и создать соответствующий тип элемента в этом хранилище. 2shuklin: я сейчас пытаюсь сообразить, как разложить правила N-мерных КЗ грамматик на КС или хотя бы на набор однотипных КЗ простых правил. М.б. что-то посоветуете? Под N-мерными грамматиками я понимаю грамматики, где заменяемый символ окружен неизменяемыми символами. И каждое такое окружение имеет параметр - измерение, в котором он "контачит". Само измерение - это какой-либо признак, не обязательно последовательность слова в строке текста или положение пиксела на изображении относительно соседних пикселов.[/quote]
Заголовок сообщения: СообщениеДобавлено: 14 янв 2011, 22:42 [quote="victorst"]Думаю, что противопоставление восходящего и нисходящего анализа - надуманное, т.к. требуется и то и другое. Но чаще всего не одновременно, а в разные моменты времени, когда это требуется программе. И они существуют для разных целей. Нисходящий анализ предполагает, что мы ожидаем найти в тексте предложение, которое затем разбиваем на составляющие части. Так же и в лесу, когда собираем грибы. Мы строим модель гриба в голове, начиная с его наиболее общего представления. Затем доходим уже до разновидностей. И тогда часто видим лишь один или немного видов грибов, не замечая других. Возвращаюсь к тексту. Если же мы не ставим задачу найти предложение, т.е. некоторый априорный, установочный образ, то ничего не остается, как получать поступающую информацию буква за буквой, слово за словом и уже апостериорно делать анализ. Этот анализ начинает строить какие-то невысокие деревья анализа, к которым мы можем применять нашу прагматику, т.е. строить "на ходу" догадки, прилаживая эти деревья к нашим деревьям- догадкам. Иными словами, в первом случае - чистом анализе сверху вниз, мы строим гипотезу с ожиданием одного или небольшого кол. образов, а в чистом восходящем анализе программа работает в почти бесконечном пространстве результирующих образов и не представляется возможным все эти образы начать проверять сверху вниз. Я собираюсь сделать систему, которая на каждом шаге анализа сначала добавляет узел или несколько узлов к дереву по направлению снизу вверх, а затем пытается надстроить эти деревья сверху вниз наиболее близкими хранимыми в онтологии ветвями деревьев. Не обязательно эти надстраиваемы деревья должны быть высокими конечными деревьями, например, предложением. Дополнительной помощью должно быть дерево контекста- уже построенной части модели мира/миров, содержимое которого анализируется. В случае с текстом миров два - это мир текста и мир того, о чем этот текст. В итоге получим высокоитеративный восходяще-нисходящий анализ. Восходящий - однозначно должен быть, иначе не получив никаких входных символов, мы попытаемся тогда угадать все сообщение. Нисходящий - его высоты и абстракции - в степени ожидания, настроенности, установки. Наличие встречного нисходящего анализа может дополнять и исправлять искажения, имеющиеся во входном сообщении, например, менять местами перепутанные буквы, домысливать пропущенное слово и т.д, т.е. уменьшать шум, улучшая фильтрацию неполных сообщений. Т.о. я веду речь о нечетком многомерном восходяще-нисходящем синтаксическом анализаторе, основанном на онтологии и деревьях текущих контекстов. То, о чем я написал, на самом деле не так уж сложно в понимании и в реализации. По крайней мере для одномерного случая. Главное - это не увязнуть во взрыве сложности вычислений и размерностей. И еще - я немного сумбурно все это написал, в кучу свалив разные виды анализов - морфологический, синтаксический, семантический, прагматический. Вот такое мое представление. Хотелось бы услышать и другие точки зрения.[/quote]
Заголовок сообщения: СообщениеДобавлено: 16 янв 2011, 15:53 [quote="daner"][quote="victorst"]Так же и в лесу, когда собираем грибы. Мы строим модель гриба в голове, начиная с его наиболее общего представления. Затем доходим уже до разновидностей. И тогда часто видим лишь один или немного видов грибов, не замечая других. Возвращаюсь к тексту. Если же мы не ставим задачу найти предложение, т.е. некоторый априорный, установочный образ, то ничего не остается, как получать поступающую информацию буква за буквой, слово за словом и уже апостериорно делать анализ. Этот анализ начинает строить какие-то невысокие деревья анализа, к которым мы можем применять нашу прагматику, т.е. строить "на ходу" догадки, прилаживая эти деревья к нашим деревьям- догадкам. [/quote] это не только не доказанный тезис, но я думаю что и совершенно не верный. Из личного опыта распознаваний (в прочем не очень большого) такие подходы вообще не работоспособные. Может быть в ЕЯ они еще и потянут (я ЕЯ вообще не занимался) но вот во всем остальном: в comp. vision в распознавании поведений и т.д. просто не реально. Если вы основываетесь на какой-то опубликованной работе, было интересно ее почитать.[/quote]
Заголовок сообщения: СообщениеДобавлено: 17 янв 2011, 13:51 [quote="victorst"][quote="daner"]это не только не доказанный тезис, но я думаю что и совершенно не верный.[/quote]Прошу вас пояснить, в чем и почему неверный по вашему мнению?[quote="daner"]Из личного опыта распознаваний (в прочем не очень большого) такие подходы вообще не работоспособные.[/quote]Какие походы вы забраковали на основании личного опыта?[quote="daner"]Может быть в ЕЯ они еще и потянут (я ЕЯ вообще не занимался) но вот во всем остальном: в comp. vision в распознавании поведений и т.д. просто не реально.[/quote]На чем основаны эти ваши категорические утверждения?[quote="daner"]Если вы основываетесь на какой-то опубликованной работе, было интересно ее почитать.[/quote]Я основываюсь на множестве книг и др. публикаций, которые изучал в течение моей жизни. К сожелению, сжато и конкретно привести наиболее точные прототипы не могу, т.к. крайне ограничен во времени. Возможно многое из того, что я изучил, уже давно безнадежно устарело. Но мне все равно нраятся наивные идеи первопроходцев ИИ и других наук 20-50 летней давности. [quote="shuklin"]Онтология - это слишком высокоуровнево.[/quote]Ничуть. Если в онтологии будет описание работы с мельчайшими элементами информации, поступающей по входным каналам, то почему бы этой онтологии не поучаствовать во всех интеллектуальных процессах напрямую? [quote="shuklin"]Если язык Русский то будет нужна нехилая Морфологическая, Синтаксическая и Семантическая БД правил анализа[/quote]См. ниже. Прототип четкого многомерного восходящего контекстно - зависимого синтаксического анализатора я сделал. Это, конечно, пока не совсем то, что требуется в итоге, а лишь очередной этап на данном пути. Но прежде чем приступить к серьезному тестированию, задумался о том, что не правильно было бы задавать извне всю грамматику. На это никаких сил не хватит. И смысла в этом не вижу. Каков же выход? Нужно из каждого поступающего на анализ образа будь то текст, 2D изображение, стереопара или звук, параллельно с восходящим анализом извлекать его собственную грамматику. Это позволит сразу создать самообучающуюся систему, в которой важным будет механизм обобщения, абстрагирования. Для этого требуется создавать узел надкласса для повторно встретившегося в анализируемом образе грамматическтого правила. Полученные узлы онтологического обобщения можно немедленно применять при последующем анализе других образов. В этом случае онтология станет динамической структурой, приспосабливающейся к изменениям окружающего мира, а не застывшей, неизменной.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 13 апр 2011, 11:06 [quote="victorst"]В настоящее время я продолжаю разработку программы AIAssistant. Добавил нового аватара, которого можете наблюдать на изображении, 2D игровой движок, чтобы можно было создавать динамические демонстрации, например управление умным домом с наблюдением на экране в реальном времени процессов, протекающих в различных установках (работа кондиционеров, очистки воды, распределение температур по комнатам и т.д.). Напомню, что в центре всей системы движок, основанный на продукционных правилах. Сейчас приступаю к соединению онтологической БЗ с данным типом системы общения. Попробую создать вопрос- ответную систему по этой БЗ. Затем наделю аватара некоторыми чертами личности и добавлю относительно несложное самообучение и распознавание пользователя по изображению с веб камеры. И позже займусь возможностью вести диалоги на ЕЯ с не очень глубоким пониманием смысла (в пределах заложенной в программу онтологии). [url]http://www.youtube.com/watch?v=QtMWlKGa4sg[/url][/quote] AIAssistant.PNG [111.29 КБ]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 20 апр 2011, 14:07 [quote="Prof1983"]Виктор, ваши разработки очень интересны. Но у меня есть вопрос. AIAssistant - это закрытый (коммерческий) продукт или он открыт? Если проект закрытый, то где и когда можно будет увидеть готовый продукт, как результат многолетней разработки? Если проект уже открыт, то где можно скачать саму программу или описание или другие файлы?[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 20 апр 2011, 21:08 [quote="victorst"]Название темы соответствует типу создаваемого программного продукта. C++ код , на котором написан язык ECLIPS будет закрытым, а код на интерпретаторе языка ECLIPS будет открытым. Это вовсе не означает, что у потенциальных пользователей возникнут какие-то дополнительные проблемы из-за неоткрытия части кода. Я рассматриваю это даже как своеобразное преимущество перед полностью открытыми системами. В частности, бОльшую ответственность меня как автора. Меньшую вероятность появления похожих но разных продуктов, что часто ведет к большим неудобствам пользователей. Кроме того, мои многолетние попытки найти желающих совместно поработать над проектом не увенчались успехом. Поэтому считаю, что закрытый код просто никому не нужен. И открывать, поддерживать эту открытость не имею возможности. Сейчас я работаю над попыткой реализации распознавания текста сообщений на естественном языке (русский, английский). Я общался несколько раз как-то с Э Хачукаевым, причастным к работе над проектом Диалинг (aot.ru) Он сообщил, что пришлось отбросить достижения того периода - начала 2000 гг. ввиду того, что все дело уперлось в движение от языка к семантическим сетям. И сообщил мне, что достиг полного понимания программой смысла текстов на основе единой модели мира. Но я так и не смог понять, какая у него модель, каковы принципы всего его нового проекта Думбот и открывающегося вскоре портала. Тут можно почитать его взгляды. http://zhurnal.lib.ru/h/hachukaew_e_m/cybersophy.shtml http://cybersophy.narod.ru/index.htm http://old.membrana.ru/articles/readers/2004/06/01/223400.html Но меня как-то все это не зацепило. Если в течение ближайшего времени я не смогу достичь хоть каких-то результатов с ЕЯ, то доделаю систему на основе общения с помощью меню. Хотя самое важное в диалоговой системе - это возможность общаться на обычном языке. Вот в чем причины задержек в выпуске первого релиза.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 12 май 2011, 22:14 [quote="victorst"]Сейчас отлаживаю Веб-сервер, который только что встроил в AIAssistant. Кроме этого, добавляю обычные TCP сервер/клиент. Полученные возможности позволят легко создавать и развертывать интеллектуальные веб-серверы и интеллектуальных агентов. Правда, все в моей системе основано на Windows. Но это не проблема, если арендовать виртуалку или выделенный сервер. Веб пробу проведу с кухонного компьютера. Можно создавать сеть из программ AIAssistant с помощью TCP/IP соединения, и эта сеть возможно, лучше сможет работать с большим количеством одновременных запросов, распределяя различные обязанности в такой сети. Да даже и без Веб-сервера хочу замутить какую-нибудь полезную сеть агентов. Их же можно располагать на разных компах. М.б. какой-нибудь сбор и интеллектуальную обработку информации из интернета. Стресс-тест на одиночный сервер я проведу скоро (типа DoS- атаки). О результатах сообщу.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 15 май 2011, 22:45 [quote="Prof1983"]Я сейчас думаю как лучше реализовать запись метаинформации (описания структур данных в самой БД) для DocumAssistant. Подумываю попробовать описать на языке онтологий (KIF или др.). Виктор, вы упоминали, что в AIAssistant используется онтология SUDO. Стало интересно как реализовано хранение онтологии SUDO в AIAssistant. Так же хочу спросить какими средствами читаете файл онтологии и какими структурами онтология записывается в оперативной памяти? Если не секрет, конечно.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 16 май 2011, 01:35 [quote="victorst"][quote="Prof1983"]Виктор, вы упоминали, что в AIAssistant используется онтология SUDO. Стало интересно как реализовано хранение онтологии SUDO в AIAssistant. Так же хочу спросить какими средствами читаете файл онтологии и какими структурами онтология записывается в оперативной памяти? Если не секрет, конечно.[/quote]Поправлю. Онтология называется SUMO (Suggested Upper Merged Ontology). Информация из нее находится в 2 состояниях - на жестком диске в БД и в оперативной памяти компьютера. В RAM хранятся в виде фактов - триплетов, к которым я добавил слот section для указания онтологии, например, SUMO. (deftemplate triple "Template representing a triple" (slot predicate (default "")) (slot subject (default "")) (slot object (default "")) (slot section (default "")) ;к какой секции принадлежит факт (пользовательские знания, дефолтные и т.д. ) ) Факты похожи на фреймы? Да это в общем то они и есть. Т.е. ECLIPS работает в основном с фреймами. Но я логически соединяю фреймы в иерархическую сеть с помощью продукционных правил. В БД - в виде отдельных таблиц с аналогичными триплетами (первые 3 слота). А четвертый слот - это имя таблицы БД. Реляций между таблицами нет, поэтому подойдут любые хранилища, даже без SQL. Фрагмент онтологической сети образуется при попадании запрашиваемых записей таблицы БД в RAM и после преобразования их в вышеуказанные триплетные факты triple. Вот и все. Вся эта и другая информация совершенно не секретна. Все, что я пишу на ECLIPS - несекретно и все тексты на этом языке в виде исходных кодов включены в дистрибутив. Я даже некоторые простые уроки программирования там сделал в виде примеров. Но пока дистрибутив в полном виде не опубликовал по техническим причинам.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 22 май 2011, 23:54 [quote="Prof1983"][quote="darkAlert"]Вот - AIAssistant Где скачать саму прогу то?[/quote] Вопрос не ко мне, а к Виктору. Пояснения ниже. [quote="victorst"][quote="darkAlert"]Вот - AIAssistant Где скачать саму прогу то?[/quote] Наверное было бы правильнее мне отвечать на этот вопрос в другой теме - про AIAssistant. Но т.к. наверное и Prof1983 что-то ответит, то я решил здесь. Случилось так, что я в 2006 году начал проект AIAssistant, перейдя к нему от другого более раннего проекта. И зарегистрировал доменное имя aiassistant.com. Затем в 2007 г. мы обсуждали с Prof1983 варианты совместной работы над ним. Но мы так и не смогли договориться о об общей идеологической платформе совместной работы. Он и тогда и сейчас был и есть сторонником предельно открытых лицензий. Я же хотел немного другого. Хотел обычной фрилансерной shareware работы, когда бы одним из мерил востребованности нашей деятельности было бы количество закачек и покупок. При этом я предполагал бесплатную раздачу лицензий на программу почти всем, кто обратится к нам с такой просьбой, особенно жителям экс-СССР, Но т.к. я начал искать соработников с 2005 г, и до сих пор не нашел, то понял, что придется тянуть лямку одному. В 2007 г. Prof1983 зарегистрировал aiassistant.info и aiassistant.org. И сделал свой эскиз открытого проекта AIAssistant, чем очень удивил меня, т.к. не согласовал со мной название этой его программы. Ведь она в точности повторяла название моей. Затем он его забросил. Я же с переменным успехом делаю свой первоначальный проект AIAssistant до сих пор. Не поймите меня неправильно. Я с очень большим уважением отношусь к вам, Prof1983 и никаких претензий не имел и не имею. просто к слову пришелся пример. Широкому его распространению мешают не лицензионные ограничения или еще какие-то, а две такие причины. 1. Это очень большой размер дистрибутива. Даже в сжатом виде он занимает около 300 мб. 2. Недоделаны и даже еще не придуманы некоторые плагины, по которым можно было бы судить о том, что данная программа в чем- то уникальна и потенциальному пользователю она очень нужна. Я то давно знаю, что ее потенциал огромен. Но сил очень мало для решения даже самых банальных вещей, например, дописать хелп или сделать видео презенташки или классную иконку. Поэтому до сих пор и не выкладываю самую свежую версию. Большой размер дистрибутива получился из-за добавления в проект огромной базы знаний о нашем с вами мире. Я уже несколько раз предпринимал попытки уменьшить размер файла без потери информации. но пока что терпел неудачу. Хотя мысли на счет уменьшения еще есть. Мне кажется, что уменьшить БЗ можно в несколько раз. Тогда от сотен останутся десятки мегабайт Setup файла. Правда, я нашел еще несколько сотен мегабайт знаний, которые хотел бы втиснуть в мою БЗ. Возможно, я ее размещу на сайте. Но тогда каждой программе AIAssistant потребуется постоянное подключение к интернету. В этом варианте можно чисто персональные и кешируемые знания хранить на локальном жестком диске. И размер дистрибутива тогда заметно снизится. Но увеличится задержка в работе системы, если будет обращение к удаленному хранилищу знаний. Старую версию от 2009 г можно скачать тут http://aiwinsoft.com/aiassistant/download/aiassistant.zip Кое-что от нее в новой версии программы осталось. Можно даже попробовать программирование на языке ECLIPS. Тут по ходу писанины у меня родилась идея. Но ее я запишу в своей теме, чтобы тут не флудить еще больше.[/quote] Меня задел комментарий Виктора по поводу проекта AIAssistant. Потому что, хотя идея создания проекта AIAssistant и принадлежит ему, но работали над проектом мы все вместе (в 2007 году). При этом работали бесплатно. Изначально было предложение работать вместе как партнеры, поэтому я и считал проект AIAssistant отчасти и своим. Из этого следует что, по крайней мере, странно говорить, что: "Prof1983 зарегистрировал aiassistant.info и aiassistant.org. И сделал свой эскиз открытого проекта AIAssistant, чем очень удивил меня, т.к. не согласовал со мной название этой его программы. Ведь она в точности повторяла название моей. Затем он его забросил." Здесь я могу сильно поспорить. 1. У меня действительно изначально была идея открытого проекта. После многочисленных обсуждений я пришел к мнению, что свои разработки я буду делать открытыми и тогда родились мои проекты Asisstant, AIKernel, ARAssistant. 2. На программу и продукт AIAssistant у меня претензий нет. 3. Но результаты моего собственного собственного труда буду отстаивать жестко! А именно, для того чтобы разобраться самому, и для того чтобы было более или менее понятно в чем суть проекта AIAssistant я создал сначала сайт aiassistant.org, а за тем aiassistant.info. На котором размещал открытую информацию, относящуюся к проекту AIAssistant. 4. Вся закрытая информация находится у Виктора и мне она не доступна включая саму прогрмму, исходные коды и другие разработки. 5. Мои разработки, которые велись в рамках проекта AIAssistant являются моими разработками! Я волен делать с ними что захочу. А именно я просто использовал некоторые мои идеи и реализации в открытых проектах. По поводу доменного имени aiassistant.info могу сказать следующее: там находится открытая информация о проекте AIAssisistant. Эту информацию я перенес сюда http://aikernel.org/projects/aiassistant/ . Я не видел раньше и не вижу сейчас причин, чтобы домен aiassistant.info был зарегистрирован на мое имя. Я готов бесплатно передать это доменное имя любому участнику проекта AIAssistant. Основные участники указаны тут: http://www.aiwinsoft.com/aiassistant/development/members.html (Виктор Казаринов; Mad_God; Prof; Corwin). Виктор естественно имеет все преимущества, как идеолог и организатор. Но другие участники наравне с остальными принимали участие в обсуждении и выработке начальной концепции проекта и программы AIAssistant. Это было в 2007 году. После того как команда распалась Виктор развивал проект и программу самостоятельно и концепция проекта не однократно корректировалась. Еще хочу написать несколько комментариев про проект AIKernel. Проект AIKernel был создан после неоднократных попыток уговорить Виктора развивать проект AIAssistant (или только ядро) как открытый. Но Виктор против открытых реализаций. Разработка AIAssistant велась на бесплатных основах. Но у кого-то может возникнуть мнение, что нельзя использовать свои бесплатные разработки в своих целях. Это абсурд. Нельзя вести закрытую разработку для кого-то без оплаты. Либо проект открыт, либо он коммерческий и труд оплачивается. Поэтому я разделил для себя работу и хобби. На работе я занимаюсь закрытыми коммерческими проектами не относящимся к ИИ, а дома, в свободное время, я занимаюсь открытыми проектами. Сейчас основным моим проектом является AIKernel. Никаких претензий на проект AIKernel от кого-либо, либо попыток каким-либо образом установить свои правила или контроль над проектом AIKernel, кроме как по принципам меритократии и по установленным правилам, я не потерплю. Прикладываю свой вариант развития истории проектов AR, AIAssistant, AIKernel в приложении. Мой вариант, возможно требует корректировки. Но основные события указаны более или менее четко. [quote="victorst"][quote="Василий"]И все-таки ответ дан не был. Можно ли скачать эти самые 300 мегабайт вместе с Вашей базой знаний?[/quote] Пока что-нет. Вот разберусь как с этой базой поступить, так и появится возможность. Но если вам все же очень хочется познакомиться с моей программой, могу выложить специально для вас все через пару дней. Вы только обозначьте здесь ваше желание исследовать незавершенный продукт. а то не очень хотелось бы недоделку выдавать "на гора". [quote="Василий"]Сколько это будет стоить и под какой лицензией Вы готовы это предоставлять?[/quote]К данному сообщению я приаттачил лицензию. Но если вам оно не подойдет, а вы непременно захотите воспользоваться моей программой, то можно совместно с вами выработать другое лиц. соглашение. Я предоставляю вам как всем заинтересованным в ИИ в первую очередь свои наработки совершенно бесплатно даже не требуя взамен какой-либо помощи в ее развитии или тестировании. Хот от всего этого не откажусь.[/quote][/quote] Комментарий к файлу: История развития проектов AR, AIAssistant, AIKernel. AIKernel-History-2011.png [20.98 КБ] Комментарий к файлу: Файл из http://ai.obrazec.ru/forum/viewtopic.php?p=28834#p28834 license_en.txt [6.67 КБ]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 23 май 2011, 00:27 [quote="victorst"]2Prof1983: если я хотя бы в какой-то мере задел вас своими высказываниями насчет AIAssistant, то прошу прощения. Совершенно этого не хотел. Еще раз уточню - две довольно разные программы с абсолютно одинаковым названием - такое уже было в моей жизни. Мой сын написал программу HotKey в 1999 году приблизительно. С точно таким же названием только номером версии другим кто-то позже написал и разместил в тех же программных архивах. Было весьма непросто разруливать вопросы введенных в заблуждение пользователей. Вот и все. Можно вообще-то еще множество разных названий напридумать. Главное - чтобы по ним могли различать сами программы. Конечно, мы вместе с вами в 2007 году работали над AIAssistant. И я ни в коей мере не посягаю на ваши наработки в этом направлении. Именно потому, что мы были равноправными, я и написал выше в тексте о согласовании, которе обычно в таких случаях предполагается. Только и всего. Меня, честно говоря, сильно напрягают все эти разговоры о лицензировании. Выбрали тип и пошли дальше работать по нему. Все. А то ситуация стала напоминать - "вокруг да около". Главное то - что и как делать, в какие сроки, какими силами и т.д. Написать MileStones и за работу. Я вот сейчас маюсь гигантизмом БЗ.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 23 май 2011, 01:47 [quote="victorst"]Тогда читайте. Вот задача. Как уже писал, нужно сделать предельно маленький дистрибутив программы AIAssistant. А он большой из-за БЗ. Но что в ней большое? Это файлы БД FireBird. Казалось бы - там всего несколько таблиц да еще и без реляций. Но дело в том, что потребовались ключи и индексы. А они то во много раз размер файла и увеличивают. Я тогда попробовал так: после инсталляции программы без БД, а лишь с текстовыми файлами онтологии в виде триплетов OWL N3 (думаю, найдете что про них почитать) запускаю плагин на языке ECLIPS - преобразователь этих триплетных текстовых файлов в БД. И даже этот процесс оптимизировал. Заметил, что если просто записать данные в БД, а лишь потом заставить ганерировать ключи и индексы, то этот процесс занимает гораздо меньше времени. Но недолго я радовался. Даже в этом случае времени затрачивается несколько часов. Кому захочется инсталлировать и разворачивать к действию программу несколько часов? Теперь я хотел бы попробовать такой вариант. Беру из книги с примерами обычное B++ быстрое дерево на С++ или Делфи (в C Builder делфийные файлы можно запихнуть). И с помощью такого хранилища key-value делаю БД. Но тут не обойтись без нескольких связанных файлов такой БД. Это не страшно. Можно их связать на уровне ECLIPS, а можно и на C++. Второй вариант быстрее. Но сначала сделаю первый. Его потом можно легко будет заменить на второй. При этом втором варианте я делаю простые новые команды ECLIPS, где параметрами будут параметры поиска или записи в БД. Сейчас я нарисую и опишу взаимосвязи в таких таблицах и сам формат таблиц БД, требуемых для храниения онтологии в требуемом виде. Опишу 2 варианта. Нужно из них выбрать один.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 23 май 2011, 04:02 [quote="victorst"]Вся онтология описывается таблицей из RDF триплетов Subject, Predicate, Object Картинка DB3.PNG: Создается две таблицы - справочника. Первая - по строке Subject, либо Predicate, либо Object в триплете. Вторая - по уникальному коду каждого элемента триплета. Далее - таблицы поиска по ключу. Думаю, из картинки все понятно. Там есть пример. Алгоритм работы БЗ. На вход подается Subject, Predicate или Object - что-то одно, либо какая-то пара из них. По ним производится поиск недостающих элементов триплета. Вначале по таблице 1 преобразуем строчный элемент триплета в его код. Затем в соответствующей желтой таблице производится поиск. Чтобы затем получить конечный результат поиска, требуется преобразовать результат поиска в желтых таблицах в строчный вид. Для этого требуется произвести поиск в таблице 2 для каждого элемента результата. Все это и возвращаем. Если результатов больше одного, то удобно иметь курсор - место в БД, где был получен предыдущий результат. И затем можно по одному результату извлекать из БД по мере необходимости. Картинка DB4.PNG: Здесь отсутствуют таблицы справочников. Поэтому в общем случае поиск должен происходить быстрее за счет меньшего количества обращений к жесткому диску. Но в несколько раз возрастает размер БД, т.к. в каждой таблице хранятся повторяющиеся строковые элементы триплетов. Все предыдущее рассмотрение БД было основано на строковых элементах триплетов. Но каждый элемент триплета также содержит определенные составные части. Их можно закодировать более короткими числами. Это значительно ускорит работу системы. Это можно сделать позднее, в какой-нибудь новой версии программы.[/quote] DB3.PNG [30.03 КБ] DB4.PNG [29.13 КБ]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 23 май 2011, 13:05 [quote="victorst"]Для реализации триплетного хранилища онтологии мне пришлось начать писать отдельную тестовую прогу на C Builderе. Нужно хорошенько протестировать его на хранение больших объемов данных и скорость работы при этом. И лишь потом имплантировать все в AIAssistant. Кстати, в VisualProlog есть собственное хранилище Key-value. Освежу память - гляну, какими комадами что там с ним делается.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 13 июл 2011, 13:55 [quote="victorst"]Я изменил статус проекта и теперь перехожу к Веб-сервису на основе сети SkyNet и одного из главных ее компонентов AIAssistant - персонального интеллектуального агента по взаимодействию с пользователями. Уже существует множество готовых структурированных знаний в виде онтологий. Часть этих онтологий я внес в свою БЗ: SUMO - онтология верхнего уровня, болезни, симптомы болезней. Это потому, что я совместно с другими занялся медицинской темой. На очереди OpenCyc, OpenDB и другие немаленькие онтологии по самым разным направлениям знаний. Для создания новых знаний можно либо создать свою онтологию, в которой в виде классов можно описать собственный словать понятий, либо воспользоваться ссылками на адругие онтологии и понятия в них. Работу по вводу собственных знаний в этом случае удобнее вести в специальном онтологическом редакторе, где легко было бы напрямую без предложений на ЕЯ увязывать понятия в мысли, а также можно добавлять и эмоциональную окраску в виде соотв. понятий. В этом случае потери смысла при передаче знаний от автора к потребителям не происходит. Работа над таким редактором мною ведется. А в текущей версии AIAssistant можно работать без редактора с пом. языка манипуляции знаниями Babylon. Действующая система расположена здесь [url]http://www.aiassistant.com[/url] Она пока далека от совершенства, но будет постоянно улучшаться. Сейчас можно выбрать цифру 1 и перейти в режим работы с онтологиями с помощью языка Babylon. Я пока не добавил туда справку. Поэтому можете воспользоваться неполной справкой, которую я размещаю здесь: (class-select ) где - имя онтологии, - класс в онтологии; Описание: поиск класса. пример: (class-select SUMO #Woman) (class-superclass-select ) где - имя онтологии, - класс в онтологии; Описание: поиск суперкласса класса. пример: (class-superclass-select SUMO #Woman) (comment-select ) где - имя онтологии, - класс или индивид в онтологии; Описание: поиск комментария класса или индивида. пример: (comment-select SUMO #Human) (label-select ) где - имя онтологии, - класс или индивид в онтологии; Описание: поиск названия класса или индивида. пример: (label-select SUMO #Human) (objectproperty-select ) где - имя онтологии, - свойство; Описание: поиск объектного свойства. пример: (objectproperty-select SUMO #address) (objectproperty-range-select ) где - имя онтологии, - свойство; Описание: поиск диапазона объектного свойства. пример: (objectproperty-range-select SUMO #address) (objectproperty-domain-select ) где - имя онтологии, - свойство; Описание: поиск домена для объектного свойства. пример: (objectproperty-domain-select SUMO #address) (domain-objectproperty-select ) где - имя онтологии, - класс или индивид в онтологии; Описание: поиск объектного свойства для домена. пример: (domain-objectproperty-select SUMO #Agent) (individ-select ) где - имя онтологии, - индивид в онтологии; Описание: поиск индивида. пример: (individ-select SUMO #EarthsMoon) (class-individ-select ) где - имя онтологии, - класс в онтологии; Описание: поиск индивидов для класса. пример: (class-individ-select SUMO #Moon)[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 14 июл 2011, 22:18 [quote="victorst"][quote="DCV"]Я так понимаю, что у Вас аналогичное Web-приложение, делающее запросы к БД SUMO на сайте SUMO? На каком языке делаются запросы? Это OWL? Какие технологии Вы использовали при создании сайта?[/quote]Нет, я беру онтологию SUMO или другую (сейчас работает 4 онтологии) и преобразую с помощью программ на языке ECLIPS, моей же системой AIAssistant ко внутреннему представлению и записываю результирующую онтологию в triplestore, основанной на SQL БД FireBird, расположенной у меня на том же компьютере где работает веб - сервер или на другом. Чтобы работать с внутренними онтологиями, находящимися на HDD и кешируемыми в RAM, я разработал и продолжаю улучшать собственный движок онтологического логического вывода, основанный на продукционных правилах языка ECLIPS.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 18 авг 2011, 22:26 [quote="victorst"]В настоящее время я, основываясь на онтологическом подходе к ИИ продолжаю разработку AIAssistant. После того, как я реализовал хранение на внешнем носителе (HDD) средствами обычнойй БД любого количества онтологий и простые операции доступа к этим онтологиям (поиск, запись, удаление), возникла потребность в полноценном пользовании этими онтологиями. Для этого я развиваю ранее созданные средства. Все это я называю онтологическим движком ИИ. Суть моего подхода в том, что все активное простраство такого движка в RAM я представляю в виде некоторого "бульона" мыслей. Такая парадигма существенно отличается от ООП. В моей системе существуют мысли в виде отдельных матриц онтологических знаний. Эти матрицы могут взаимодействовать друг с другом как в виде данных, так и в виде команд по обработке других таких матриц - мыслей. Каждая матрица - это не онтология. Каждый ее элемент может принадлежать разным онтологиям. Т.о. в одной матрице-мысли могут находиться обрывки - фрагменты самых разных знаний. Также в системе создаются разработанные мною шаблоны демонов. Каждая матрица обрабатывается параллельно - каждый ее элемент попадает на вход созданного непосредственно перед использованием экземпляра демона. После обработки демон немедленно разрушается, оставляя после себя лишь один или несколько новых элементов матрицы мысли. В итоге параллельно- последовательные цепочки преобразований мыслей образуют отдельные экземпляры поведений. Поведения могут быть как заранее запрограммированные так и созданные динамически другими поведениями. Я не реализовал пока поведения, которые создают другие поведения. На основе онтологического движка следующим этапом будет создание различных отделов мозга ИИ начиная с простейших. Вот пока в общих чертах состояние текущих моих работ.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 24 авг 2011, 02:55 [quote="daner"]а примером эти самые матрицы можете проиллюстрировать? а кто и почему создает демонов для обработки и как демон знает, какую из матриц обрабатывать?[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 25 авг 2011, 11:24 [quote="victorst"]2daner: Чтобы ответить на ваши вопросы хочу более подробно описать структуру и функционирование проектируемого мною онтологического движка. Хотел бы я его написать на чистом С, но пока это не под силу мне ввиду ряда причин. Поэтому я его основал на хорошо зарекомендовавшем себя в надежной работе движке продукционных правил CLIPS. Но т.к. он имеет динамическую типизацию, то скорость его работы не очень высока. Я решил так: сейчас важнее не скорость работы, а правильность функционирования. Позже попробую переписать на чем-нибудь более быстром, если получу хорошие результаты. Над этим продукционным движком я делаю надстройку во многом похожую на ядро операционной системы. Между этим ядром и вышележащим прикладным уровнем находится API. Т.к. система изначально разрабатывается в виде параллельной вычислительной системы, то для обеспечения этой параллельности я ввел следующие основные элементы: 1. Threads - параллельно выполняющиеся нити вычислений. 2. Keys - ключи идентификации линейного незацикленного участка треда. Это сделано для того, чтобы различать между собой разные части одного и того же треда в случае, если он где-то будет циклить. 3. Демоны. Это обычные продукционные правила, хотя довольно сложные. 4. Факты команд. Это специальный вид фактов, которые определяют всю последовательность и параллельность работы системы. Т.к. они свободно блуждают в вычислительном пространстве системы, то они кроме вышеуказанных элементов содержат указатели на демона - отправителя и демонов - получателей. Т.о. определяется явная цепочка передачи управления там где это необходимо. Факты команд используются только в ядре системы. Еще один элемент моей системы - матрицы. Это набор помеченных общим ключом фактов, каждый из которых содержит обычный RDF триплет, в котором находится OWL информация. Каждый триплет имеет ссылку на онтологию. Есть в нем еще ряд служебных слотов. В следующих сообщениях я продолжу описание моей системы и приведу примеры. Если что непонятно - спрашивайте.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 25 авг 2011, 17:34 [quote="daner"]не совсем понятно. 1. [...Keys - ключи идентификации линейного незацикленного участка треда....] 2. [...Факты команд. Это специальный вид фактов...] 3. [...матрицы. Это набор помеченных общим ключом фактов...] Так факты это незацикленные участки thread'а? т.е. это куски кода / вычислений? 4. [...Демоны. Это обычные продукционные правила...] 5. [...Факты команд ... содержат указатели на демона - отправителя и демонов - получателей...] это значит, что продукционные правила чего-то там отправляют другим правилам? Без примера не врубаюсь. Кстати, если кто-то, что-то отправляет, то это что-то "не свободно" блуждает, а весьма целеноправленно (и почему блуждает? они конкретно кому-то пересылаются или сами выбирают куда "прибиться"?) 6. [...Между этим ядром и вышележащим прикладным уровнем находится API...] А что представляет из себя это самое ваше API? в операционных системах API -- это в первую очередь команды управления процессами и памятью, а так же (если это монолитное ядро) управления всевозможными физическими устройствами компьютера. Чем помогает управлять ваш API?[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 26 авг 2011, 00:43 [quote="victorst"][quote="daner"]не совсем понятно...это значит, что продукционные правила чего-то там отправляют другим правилам?[/quote]Да, отправляют, если есть такая необходимость.[quote="daner"]Без примера не врубаюсь.[/quote]Если мы создадим в одном правиле факт (phase a), то при наличии другого правила, где факт (phase a) находится в левой части этого правила, оно сработает. Таким образом можно передавать различную информацию. Не только команды, но и флаги и т.д. и т.п.[quote="daner"]Кстати, если кто-то, что-то отправляет, то это что-то "не свободно" блуждает, а весьма целеноправленно (и почему блуждает? они конкретно кому-то пересылаются или сами выбирают куда "прибиться"?)[/quote]Если существует несколько правил, в которых в левой части наряду с другими условиями есть (phase a), то сработает то правило, у которого удовлетворяются все условия, находящиеся в этой левой условной части правила. Кроме того, можно в процессе работы системы создавать новые правила, шаблонов каоторых ранее не было в системе. Но я такое не использую ввиду очень сложной отладки. Вместо этого я применяю правила, которые по сути дела являются фактами в продукционной системе. Это - моя онтологическая надстройка над движком продукционных правил т.к. эти онтологические правила могут быть описаными с помощью моих матриц.[quote="daner"] А что представляет из себя это самое ваше API? в операционных системах API -- это в первую очередь команды управления процессами и памятью, а так же (если это монолитное ядро) управления всевозможными физическими устройствами компьютера. Чем помогает управлять ваш API?[/quote]В моем API есть разные элементы: 1. Операторы. Это по сути дела простейшие онтологические функции. Например, найти в онтологии определенный класс, создать индивид и т.д. 2. Более сложные функции. Например, найти в одной или нескольких онтологиях все суперклассы класса. Это не такая простая задача т.к. в онтологиях существует множественное наследование классов. Другая функция - по матрице идивидов и/или классов, являющихся диапазоном свойств найти все индивиды и/или классы, которые являются для этих свойств доменом. Проще - если я перечислю некий набор признаков отклонений в здоровье то система должна найти все заболевания, у которых есть такие признаки. Возможно, эта функция - простейшее, первичное распознавание образов. Будут созданы и другие элементы по управлению системой через этот API, но я пока это не разработал, поэтому могу говорить лишь предположительно. API можно пользоваться напрямую, вводя консольные команды на языке Babylon, но нужнее они будут для автономной работы системы, где прикладным уровнем будет управление всей работой с помощью самих матриц. Для этого нужно внутри ядра системы создать "отделы головного мозга" - модули, ответственные за различные функции личности. Я этим также сейчас занимаюсь[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 26 авг 2011, 23:50 [quote="victorst"][quote="Slava"]Нет, реально такой возможности нет. Так что самое простое - спрашивайте по существу. Что знаю - скажу.[/quote]Это - сказка про белого бычка. Насколько я помню, у нас с вами переписка 2005 года зациклилась ровно на этом же самом. Мне вспомнился 1983 год когда я работал на заводском ВЦ инженером. И как-то у кладовщика одного из цехов спросил, что у него есть на складе. Он ответил - а что тебе надо? И мы долго так общались пока он не пустил меня на свой склад. И только когда я глазами увидел что есть и чего нет, то легко и быстро нашел из того что есть то что мне надо. Это потому что я смог примерить имеющееся к своим потребностям. А если выбирать из бесконечного множества, то это означает палить из пушки в туман. Авось попадет куда надо. Вопросами на вопросы можно бесконечно общаться. Только смысла в этом не вижу никакого. Не нравятся вам онтологии? Это как в анекдоте: "- Не нравятся мне эти кошки. - А вы не умеете правильно их готовить" Я отчетливо представляю, что мой проект во многом тривиален. Ну и что? сейчас я преследую конкретные цели и поставленные задачи. Далеко не заглядываю. Делаю что смогу. Вы посмотрите, что произошло с ИИ- движением хотя бы по форумам? Одна болтовня ни о чем осталась. И меряние письками. Ну хоть бы кто-нибудь что-то пусть и плохо, но действующее другим дал пощупать. Поэтому я и решил сделать онлайн сервис из моей программы, чтобы любой желающий смог сам попробовать его в действии. Т.к. размеры баз велики и постоянно меняется программное обеспечение, то такой вариант я считаю на сегодняшний день простым и удобным.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 27 авг 2011, 04:21 [quote="daner"]>>>>>Виктор про пересылки понятно, я конечно предпологал... но мне кажется не совсем верно называть это пересылками. кстати, какой такой демон получатель, если при "посылки" не известно кем он будет? каждое правило получает свои инстанции "сообщения" и уже по факту ставить получателя? вы так и не ответили на первый вопрос. [ ... Так факты это незацикленные участки thread'а? т.е. это куски кода / вычислений? ... ] задачи которые вы помогаете решать (т.е. то что вы написали о твоем АПИ ... достаточно тривиальны, просто поиски по онтологии. почему не решать их обычными методами, зачем нужны все эти логические примочки? я не простив, просто интересно почему именно этот путь вам кажется перспективнее. Подозреваю что это сделано с прицелом на будующие возможности. Вот и интересно, куда целитесь? Что касается последней разведенной болтологии, совершенно согласен с Шуклиным : если делаешь громкие замечания о тупиковости целых парадигм, стоит иметь возможность предоставить обоснования таких замечаний или хотя бы не делать это с таким апломбом.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 27 авг 2011, 22:15 [quote="victorst"][quote="shuklin"]Виктор, где можно прочесть документацию по внутреннему устройству и архитектуре Вашей разработки?[/quote]Вспомните Дмитрий, как во время разработки вашего проекта Cerebrum довольно много желающих воспользоваться вашим продуктом слезно просили от вас доступную для понимания документацию. Вы отвечали отказом и приводили множество аргументов. Мой же проект находится на более низшей стадии готовности. И т.к. он имеет много экспериментальных компонент, то я могу обрисовать лишь контуры итогового изделия, если его создам. А то, что я делаю прямо сейчас в виде простых отчетов, примеров а также кусков документации я публикую в этой теме. Сейчас появляется возможность ставить эксперименты и отлаживать программу совместно с теми, кому это будет интересно. Для этого я и добавил в систему язык Babylon. С его помощью можно уже сейчас порыться в потрохах системы. По мере добавления функций в саму систему (API и др.) я постараюсь добавлять операторы в этот язык, чтобы можно было с помощью консоли в браузере всем этим пользоваться. И лишь после того, как в консольном варианте будут работать не только отдельные части, а большие модули системы, я оформлю это в более дружелюбном виде подобном обычным AJAX и др. приложениям.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 28 авг 2011, 10:51 [quote="victorst"][quote="daner"]>>>>>Виктор про пересылки понятно, я конечно предпологал... но мне кажется не совсем верно называть это пересылками. кстати, какой такой демон получатель, если при "посылки" не известно кем он будет? каждое правило получает свои инстанции "сообщения" и уже по факту ставить получателя?[/quote]В ООП сообщения между объектами проходят либо между одним источником и одним приемником, либо в широковещательном случае между одним источником и всеми приемниками. В моей системе сообщения - это факты в продукционной системе. И если какое-то правило сработало от этого факта, и не уничтожило этот факт, то от него могут сработать другие правила, в которых анализируется наличие этого факта в системе. Поэтому возможны кроме вышеперечисленных видов посылок сообщений и от одного источника к группе приемников. И эта группа размыта, а не полностью прописана заранее (в случае, если какое-то очередное правило в этой группе решит уничтожить факт и после этого остальные ожидающие своей очереди воспользоваться этим фактом правила удаляются из очереди).[quote="daner"] вы так и не ответили на первый вопрос. [ ... Так факты это незацикленные участки thread'а? т.е. это куски кода / вычислений? ... ][/quote]Различным типам фактов в моей системе я назначаю разную роль. Есть факты - триплеты, которые лежат в основе матриц, есть факты, которые являются онтологическими командами, есть факты, которые служат различными флагами, маркерами и т.д. И все они работают на принципах, описанных чуть выше в этом сообщении. Вот пример. Одно правило создало факт - комаду для другого правила - определить наличие в БД указанного онтокласса. Этот факт - команда несет в себе слоты - key и thread. Сочетание этих слотов должно быть уникальным. Это обеспечит достаточную идентификацию этого факта в системе в сочетании с заполненными слотами источника и приемника сообщений.[quote="daner"] задачи которые вы помогаете решать (т.е. то что вы написали о твоем АПИ ... достаточно тривиальны, просто поиски по онтологии. почему не решать их обычными методами, зачем нужны все эти логические примочки? я не простив, просто интересно почему именно этот путь вам кажется перспективнее. Подозреваю что это сделано с прицелом на будующие возможности. Вот и интересно, куда целитесь?[/quote]Конечно, изучив функцию удаления файла с жесткого диска API Windows можно сделать неверный вывод о том, зачем вообще нужна такая система, если эту тривиальную функцию можно сделать вообще без всякой ОС. Мне даже когда-то давно пришлось писать начальный загрузчик для 12 разрядного компьютера PDP-8 с магнитофонной ленты. Пришлось кодировать прямо на пульте машины группами тумблеров в машинных кодах. Сделал. Но это так, вспомнилось. Без простых базовых функций мне не обойтись. На их основе я начинаю делать более сложные функции. А на основе более сложных - еще более сложные. Куда я целюсь? Это не секрет. Сильный ИИ. Все мои усилия направлены на это. Поэтому в числе первых будут функции управления поведенческими элементами.[/quote]
Заголовок сообщения: Re: victorst - Shareware проект AIAssistant СообщениеДобавлено: 25 сен 2011, 11:57 [quote="victorst"][url]http://www.youtube.com/watch?v=aEJgc_JXbBI[/url] Сделал первый вариант подсистемы монокулярного зрения SuperTracker на основе моей программы AIAssistant. Модуль отслеживает любые объекты находя в выделенной зоне изображения инвариантные особенности. На самом деле он пока не работает с объектами, а лишь в тем, что человек выделяет в рамке. Это программа и считает объектом отслеживания. Следующий этап добавить самообучение. Есть чужой алгоритм который обучается по одному первому кадру, а затем на основе истории наблюдений в 50 кадров создает дополнительные шаблоны образов. Тем самым программа с каждым новым кадром улучшает надежность распознавания изменяющегося в пространстве и времени объекта наблюдения. В моей программе результаты простой зрительной обработки преобразуются в различные факты продукционной машинки моей программы. Это позволяет делать экспертные и другие системы ИИ. Я потихоньку связываю эту зрительную систему с модулем работы с онтологиями. Это позволит работать с неограниченным количеством ранее запомненных образов. Кроме того, это - фундамент для возможности проводить обобщения и другие виды логического вывода.[/quote]