Заголовок сообщения: Проект Neuronium СообщениеДобавлено: 08 май 2011, 12:32 [quote="victorst"]Много раз я собирался взяться за новый проект, несколько лет. Но вот - решился. Предыстория. С 2000 года приблизительно я разрабатывал вплоть до 2009 года проет AIGod. Центральной частью там было ядро виртуальной 64 битной машины демонов. Само ядро написано на Masm. Но т.к. оно совсем небольшое, то была идея сделать портирование на несколько разных ОС. Однако демоны - это хоть и не очень большие, но полноценные программные процессоры с собственной системой команд. Получалось, что виртуальная машина сначала интерпретировала каждую команду демона, затем выполняла ее. Далее - переходила к следующему демону. И так далее по циклу. Несмотря на то, что я принял все возможные меры по обеспечению быстродействия, этого быстродействия все же не хватало. Кроме того, немного напрягало то, что в памяти каждый демон должен был занимать одинаковое по размеру с другими демонами место. Это приводило к тому, что в ОЗУ можно было размещать не очень много демонов. Кроме того, неясным был ответ на вопрос- как же организовать эффективную совместную работу множества демонов для выполнения полезной работы. Тогда в 2006 году я обратил внимание на CLIPS - движок экспертных систем на основе продукционных правил. В нем я рассматривал некий эквивалент моим демонам в виде правил и фактов. Эта система мне и сейчас очень нравится своей продуманностью и я ее буду развивать. Но применить в реальных роботах или других сложных задачах CLIPS вряд ли удастся - правила интерпретируются довольно медленно, отсутствует реальный параллелизм. Есть и еще ряд неустраивающих меня недостатков. Поэтому я решил приступить к новому проекту Neuronium как сплаву моих познаний и опыта создания AIGod, а также исследования изнутри системы CLIPS. Мне кажется, что он совместит в себе все лучшие черты нейросетей, продукционных правил, микромультиагентности и работы с онтологиями посредством сети нейроподобных элементов. Основы. Neuronium состоит из двух основных частей: 1. Система программирования/компиляции/отладки/наполнения дефолтными знаниями. 2. Run-time система выполняющая реальную работу. Эта система в свою очередь состоит из: 2.1. MainSystem - управляющая подсистема. Она организует весь вычислительный процесс, создание и уничтожение Engines, загрузку и выгрузку текущего состояния или дефолтных нейросетей, общий сброс системы, инициализацию, взаимодействие всех Engines между собой. 2.2. Набор NeuroEngines. 2.3. Набор IOEngines. Главным элементом проекта является нейроподобный компонент. Но это вовсе не искусственный нейрон в обычном понимании этого слова. Скорее всего это предельно упрощенный демон из моего проекта AIGod, который может выполнять самые разные операции вплоть до создания и уничтожения других такиже уомпонентов как он. Но особенность его в том, что выполнять в каждый такт времени он должен всего одно элементарное действие, а не очередную команду программы на своем виртуальном машинном языке, как это было в AIGod. Тогда практически весь алгоритм будет не внутри демона а снаружи него. Особое внимание обращу на получение предельной скорости работы системы, а также - ясности и удобства человека в процессе проектирования прикладных систем на основе Neuronium. Хочу также обеспечить легкую встраиваемость моей системы в проекты на различных языках программирования. Run-time систему собираюсь писать на C, чтобы можно было легко портировать под разные ОС или даже в микроконтроллеры. Систему программирования/компиляции/отладки писать буду наверное на C Builder. Мне он нравится больше чем MSVS. Но я тут еще до конца не определился. М.б. что-то кроссплатформенное выберу. Например, QT или даже Java. Вот общая суть вкратце. Если кому- то будет интересно поучаствовать - я совершенно не против. Пишите в личку. Но, думаю, таких не найдется. Поэтому буду хотя бы сообщать о текущем состоянии работ.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 09 май 2011, 14:39 [quote="Prof1983"][quote="victorst"]Если кому- то будет интересно поучаствовать - я совершенно не против.[/quote] 1. Проект закрытый, открытый или частично открытый? 2. Какие правила участия в проекте? 3. Какие именно требования предъявляются к желающим участвовать?[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 09 май 2011, 21:19 [quote="victorst"][quote="Prof1983"]1. Проект закрытый, открытый или частично открытый?[/quote]Я решил делать проект Neuronium на основе проекта AIGod, довольно сильно его модернизировав. Не буду с нуля делать новый проект. Сил не хватит. Негоже пропадать работающему добру. Как и в проекте AIAssistant хотел бы сделать ассемблерную часть закрытой по ранее озвученным причинам и по причине того, что в ассемблере разбираться вряд ли кто захочет. Поэтому собственно ядро системы в общем то уже есть. Нужно будет писать еще код для демонов- нейронов, который на виртуальном ассемблере и прошивается в их виртуальные ROM (ПЗУ). Тут можно либо вместе с кем-то делать, либо я сам попишу код. Специфика тоже в языке есть. Думаю, и на эту писанину желающих не найдется. А вот придумать язык высокого прикладного уровня, который описывает сети демонов - это запросто можно колхозом делать. Но, думаю, и тут никого желающего не найдется. Так что судя по всему - тянуть лямку придется одному. Таким образом - язык высокого уровня - открытый. Низкого - закрытый. И еще - на этом параллельном языке высокого уровня нужно что-то реально работающее написать для демонстрации возможностей системы и выявления ее отличий от других аналогичных систем. Лицензия - да фиг ее знает - эту лицензию. Для личного употребления СНГ- совместимым юзерам- бесплатно, остальным платно. Вроде бы что-то такое.[quote="Prof1983"]2. Какие правила участия в проекте?[/quote]Не знаю. Предлагайте.[quote="Prof1983"]3. Какие именно требования предъявляются к желающим участвовать?[/quote]Никаких особых требований. Было бы желание. А работы на любого энтузиаста хватит. Только где они, эти энтузиасты? Ауу. Начинаю перепахивать ассемблерный код и рисовать структурную схему проекта. Думаю, что все энжины могут соединяться между собой даже в одном адресном пространстве компьютера по TCP протоколу. Несмотря на некоторые недостатки такой соединение модулей позволяет добиться максимальной гибкости и независимости этих модулей. А язык их взаимодействия тоже уже есть. За основу взята рекомендация FIPA - язык ACL. Я на робофоруме его немного перевел http://roboforum.ru/wiki/RoboBrain_Interchange_Language. Но м.б. и другой язык обмена выбран. Кроме того, ACL язык - это все равно обертка. Внутри сообщения будут видимо на каком- нибудь онтологическом языке знаний.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 10 май 2011, 23:46 [quote="Prof1983"][quote="victorst"]Neuronium состоит из двух основных частей: 1. Система программирования/компиляции/отладки/наполнения дефолтными знаниями. 2. Run-time система выполняющая реальную работу. Эта система в свою очередь состоит из: 2.1. MainSystem - управляющая подсистема. Она организует весь вычислительный процесс, создание и уничтожение Engines, загрузку и выгрузку текущего состояния или дефолтных нейросетей, общий сброс системы, инициализацию, взаимодействие всех Engines между собой. 2.2. Набор NeuroEngines. 2.3. Набор IOEngines.[/quote] Вот ваша цитата с другого форума: [quote]Neuronium состоит из трех основных частей: 1. Система программирования/компиляции/отладки/наполнения дефолтными знаниями. 2. Run-time система выполняющая реальную работу. Эта система в свою очередь состоит из: 2.1. Набор NeuroEngines. 2.2. Набор IOEngines. 3. Консоль управления. С ее помощью происходит управление всеми NeuroEngines и IOEngine.[/quote] :) Чтобы меня правильно поняли, говорю сразу: я не хочу никого подловить или обидеть. Однако, было бы лучше разместить информацию по проекту в одном месте, чтобы не было разночтений и разрозненности информации. Впрочем это не только проекта Neuronium касается. [quote="victorst"]Никаких особых требований. Было бы желание. А работы на любого энтузиаста хватит.[/quote] Я предлагаю сотрудничество. Времени у меня свободного мало, поэтому писать основной программный код не смогу. Однако, если есть какая-то небольшая работа на несколько часов в неделю - постараюсь помочь. Но с одним условием: мои разработки будут выполнятся в рамках проекта AIKernel (то есть под открытой лицензией (BSD)). Чем именно я могу помочь: * Составлять документацию по проекту; * Могу написать какие-то небольшие утилитки или функции (Delphi и немного Си); * Могу проводить сравнительные анализы той или иной технологии, библиотеки функций или платформы с описанием и обоснованием того или иного выбора. * Возможно еще будет какая-то интересная работа. Например заполнение маленькой онтологической БД.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 11 май 2011, 00:01 [quote="Prof1983"]Вот создал страничку. http://aikernel.org/ai/projects/024/index.ru.html - Neuronium Постараюсь отслеживать развитие проекта.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 11 май 2011, 00:07 [quote="victorst"][quote="Prof1983"]Чтобы меня правильно поняли, говорю сразу: я не хочу никого подловить или обидеть. Однако, было бы лучше разместить информацию по проекту в одном месте, чтобы не было разночтений и разрозненности информации.[/quote]Все так и есть. Я разместил информацию на других форумах позже чем на данном. Поэтому за это время кое-что поразмыслил и "допилил". А т.к. нехорошо менять задним числом тексты - не в моем стиле, то на этом форуме я оставил первое сообщение как есть. Если пойдет обсуждение, все свои сообщения и мысли на разных форумах синхронизирую в дальнейших сообщениях. 2Prof1983: спасибо за собирание моей писанины в единую опубликованную страничку на вашем сайте. Еще бОльшее спасибо за предложение совместно поработать. Мы ведь однажды уже вместе работали над ИИ. Но та работа была крайне трудна и неподсильна нам. Возможно, новое взаимодействие приведет к практическим результатам. Я сейчас работаю над кодом AIAssistant, его плагинами. И начал работу над Neuronium. Думаю - или сделать его отдельным проектом, или частью единого общего проекта, где язык ECLIPS проекта AIAssistant дополнился бы движком Neuronium. Я ведь добавляю множество команд в ECLIPS по работе со звуком, изображениями, GUI и др. Почему бы AIAssistant не сделать визуальной студией и консолью для работы с Neuronium? Все это можно оформить в виде ECLIPS плагинов. Удобно, что Neuronium - отдельное приложение. И связать можное его с AIAssistant по TCP/IP. Тогда консоль и студию Neuronium было бы легче писать.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 11 май 2011, 07:52 [quote="Prof1983"][quote="victorst"]Думаю - или сделать его отдельным проектом, или частью единого общего проекта, где язык ECLIPS проекта AIAssistant дополнился бы движком Neuronium.[/quote]Ход ваших мыслей понятен, но я бы не рекомендовал делать монолитную программу и монолитный проект. Лучше писать отдельные библиотеки и утилиты, которые связать между собой GUI программой. Такие библиотечки, утилиты и отдельные программки я называю общим понятием "модули системы". По идее, каждый такой "модуль" может быть использован не только в данном проекте, но и в других. Так что лучше делать отдельный проект, но он может быть как-то связан с проектом AIAssistant через "точки взаимодействия". На сколько я понимаю проект Neuronium должен состоять из следующих "модулей": 1. Система программирования/компиляции/отладки/наполнения дефолтными знаниями - GUI программа. 2. Run-time система выполняющая реальную работу. 3. Набор NeuroEngines - это "демоны" из AIGod. "Демон", на сколько я понимаю - это или что-то вроде [url=http://ru.wikipedia.org/wiki/%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4]агента[/url] в МАС (Мульти-Агентной системе) или что-то вроде [url=http://ru.wikipedia.org/wiki/%CF%E5%F0%F1%E5%EF%F2%F0%EE%ED]перцептрона[/url]. В систему (в Runtime часть системы) будет включен функционал, обеспечивающий работу "демонов" ну и т.д. Я правильно все понимаю?[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 11 май 2011, 11:20 [quote="victorst"][quote="Prof1983"]Ход ваших мыслей понятен, но я бы не рекомендовал делать монолитную программу и монолитный проект. Лучше писать отдельные библиотеки и утилиты, которые связать между собой GUI программой.[/quote]Поясню. Neuronium.exe, run-time система выполняющая реальную работу - это отдельно запускаемая программа. С ней может по протоколу TCP/IP связаться любая другая программа на любом другом или этом же компьютере, которая может это сделать физически (есть TCP/IP соединение) и поддерживает общий протокол обмена сообщениями прикладного уровня (например, язык ACL). В качестве внешней программы по отношению к Neuronium может быть программа - система программирования/компиляции/отладки/наполнения дефолтными знаниями. А может и консоль для оперативного управления Neuronium во время ее работы. Также могут быть соединены и программы IOEngines. Они - также совершенно независимые программмы на любых языках, периферийные модули системы. Чтобы Neuronium.exe можно было запускать одновременно много в одном ПК, можно им при запуске передавать определенные параметры в командной строке. Все довольно тривиально. Мне проще сделать консоль, а также студию по работе с Neuronium и даже м.б. некоторые периферийные модули на основе AIAssistant. Т.о. плагины на ECLIPS позволили бы сделать единую среду для работы с Neuronium с не очень большими усилиями. Если кто-то захочет сделать аналогичное на другом языке, то это можно будет сделать. Только мне нужно будет в ясном виде оформить протокол взаимодействия модулей.[quote="Prof1983"] На сколько я понимаю проект Neuronium должен состоять из следующих "модулей":... Я правильно все понимаю?[/quote]В общих чертах - правильно. В общем случае одному нейрону в различных видах НС может соответствовать один демон моей системы. Но я планирую сделать довольно много различных типов демонов. Тогда из них можно собирать как из кирпичиков блок-схемы алгоритмов. И делать не только это. Ведь демоны могут очень быстро (гораздо быстрее чем происходит создание нового thread в компьютере) создавать и уничтожать других демонов. Это позволит реплицировать новые подсети, реструктуризировать имеющиеся сети, а значит - производить адаптацию всей системы к текущему состоянию внешнего мира.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 11 май 2011, 23:26 [quote="Prof1983"][quote]В общем случае одному нейрону в различных видах НС может соответствовать один демон моей системы.[/quote]Все-таки очень похоже на мульти-агентную систему. Может быть стоит использовать какое-то готовое популярное решение? Вот например на AILab в теме "Технология коллективного моделирования агентов (ТКМА)" обсуждается что-то подобное. [quote]В настоящее время план работ таков: 1) выбрать движок (Blendr, Unity, что то третье) 2) освоить минимально движок 3) решить какой мир 2.5-Д или 3-Д и какое животное 4) создать мир 5) создать животное 6) освоить скриптовый язык 7) создать контроллер для животного обеспечивающий связь животного с ПО агента написанным на любом языке. 8) проработать вопросы многопользовательского моделирования по сети. 9) .....[/quote] [quote]Загрузить бесплатную (для не коммерческого использования) версию Unity можно отсюда: http://unity3d.com/unity/download/ Загрузить урок и мир с танком управляемым с клавиатуры можно отсюда : http://gamecreatingcommunity.ru/forum/70-1770-1 Основные форумы по Unity: http://unity3d.ru/distribution/index.php ( на данном форуме есть видео уроки на русском для начинающих, а возможно и не только для начинающих) gamecreatingcommunity.ru/forum/69 http://gcup.ru/forum/59[/quote] [quote]По визуальному программированию роботов/автоматики накопал следующее: http://digital.ni.com/worldwide/bwcontent.nsf/w...t&node=166840_ru - серьезно и платно http://www.cogniteam.com/IDE.aspx - платно (?), на данном форуме присутсвует разработчик ПО - Данер. http://ru.wikipedia.org/wiki/CoDeSys [url=http://ru.wikipedia.org/wiki/%D0%94%D0%A0%D0%90%D0%9A%D0%9E%D0%9D_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29]http://ru.wikipedia.org/wiki/ДРАКОН_(язык_программирования)[/url] - Разработка данного языка была начата в 1986 г. под руководством Владимира Паронджанова. В разработке языка принимали участие Федеральное космическое агентство (НПЦ автоматики и приборостроения им. акад. Н.А. Пилюгина, г. Москва) и Российская академия наук (Институт прикладной математики им. акад. М.В. Келдыша). http://ru.wikipedia.org/wiki/HiAsm на русском, бесплатно, Delphi Может действительно попробовать скрестить Юнити и такую визуальную среду?[/quote] Посты от пользователя Придатко Д.Ю. (Nemo). Извиняюсь, что не привожу ссылку - не уверен, что ссылки на странички обсуждения будут работать.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 12 май 2011, 12:33 [quote="Prof1983"][quote="victorst"]Что-то мне проект ТКМА не очень нравится.[/quote]В любом случае, перед началом реализации, лучше сделать анализ существующих аналогичных проектов. Можно составить список таких проектов с указанием недостатков, которые не позволят их использовать для проекта Neuronium. Вот на этой страничке есть небольшой список мульти-агентных систем. http://aikernel.org/ai/agents/index.ru.html Это список устаревший. Но я попробую поискать информацию по этой теме и составить более обширный список с указанием особенностей проектов.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 13 май 2011, 08:35 [quote="Prof1983"][quote="victorst"]А язык их взаимодействия тоже уже есть. За основу взята рекомендация FIPA - язык ACL. Я на робофоруме его немного перевел http://roboforum.ru/wiki/RoboBrain_Interchange_Language. Но м.б. и другой язык обмена выбран. Кроме того, ACL язык - это все равно обертка. Внутри сообщения будут видимо на каком- нибудь онтологическом языке знаний.[/quote]Вчера у меня появилась мысль по этому поводу. Решил ее записать, пока не забыл. :) [quote="http://roboforum.ru/wiki/RoboBrain_Interchange_Language"] Message = Header MessageType MessageParameter* EndofMsg. Header = MessageId Version. Version = Byte. MessageType = PredefinedMsgType | UserDefinedMsgType. 3. Все типы сообщения, определенные в этой спецификации имеют предопределенный код. Если кодирующее устройство посылает RBIL сообщение с типом сообщения, который не имеет никакого предопределенного кода, нужно использовать механизм расширения, который добавляет новый тип сообщения в кодовую таблицу (если кодовые таблицы используются).[/quote] То же самое будет удобно применить не только для передачи управляющих команд и т.п., но и для для хранения информации и знаний. А именно представлять в виде сущностей, про которые я писал ранее. [code]Entity = EntityId EntityType Data. EntityId = Integer. - Уникальный идентификатор EntityType = Integer. - Идентификатор сущности, в которой описан тип Data = Param*.[/code] [code]EntityType = EntityId EntityType Data. В данном случае: EntityId = Integer. - Уникальный идентификатор EntityType = const Integer. - Определенное значение, например = 1 Data = ParamDescriptionCount ParamDescription*. ParamDescriptionCount = Integer. ParamDescription = ParamType ParamName ParamDefValue ParamTags. ParamType = (Float, Integer, String). - Базовые примитивные типы данных ParamName = String. - Наименование параметра ParamDefValue - значение по умолчанию ParamTags - Дополнительные поясняющие теги параметра[/code] По сути все это является фреймовым видом представлением данных. И с помощью такого вида записи можно хранить и передавать любые данные, в том числе информацию и знания. Под информацией я понимаю данные с описанием. А под знаниями я понимаю некоторую взаимосвязанную информацию высокого уровня. То есть знания - это несколько больше, чем просто информация.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 13 май 2011, 11:15 [quote="victorst"][quote="Prof1983"][quote="http://roboforum.ru/wiki/RoboBrain_Interchange_Language"] Message = Header MessageType MessageParameter* EndofMsg...[/quote] То же самое будет удобно применить не только для передачи управляющих команд и т.п., но и для для хранения информации и знаний. А именно представлять в виде сущностей, про которые я писал ранее.[/quote]Давайте отделим "котлеты от мух". Язык ACL - это язык - контейнер, предназначенный для передачи любого контента внутри себя. Поэтому его словарь - это "отправитель", "получатель" и т.д. И структура сообщения (предложения) в этом языке полностью подчинена наилучшему способу доставки сообщения. Но для описания всего того, что не входит в континуум понятий этого языка, он не подходит. Его полный синтаксис и семантику я описал по вышеприведенной ссылке с робофорума. Для передачи сообщений, с помощью которых можно было бы передавать суждения о нашем мире существуют другие языки. Их то и нужно использовать в качестве контента языка ACL. В ACL есть даже тег, отвечающий за контентный язык: "Language" и даже есть тег для указания общего контекста - набора общих смысловых понятий общающихся источника и приемника сообщения - Ontology. Вот и она, любимая онтология всплыла! Есть такие язык передачи смысла: 1. KIF и SUO-KIF http://www-ksl.stanford.edu/knowledge-sharing/kif/ http://sigmakee.cvs.sourceforge.net/viewvc/sigmakee/sigma/suo-kif.pdf 2. OWL 3.... находил еще несколько языков. И тут всплыла одна проблема. Все они чаще всего предназначены для передачи смысла в логике первого порядка. А человек может общаться и в логике высших порядков. Но как известно, логика порядка больше чем 1 не преобразуется в логику первого порядка. Для этого разработали языки, передающие и такую логику. Один из такх языков - RIF. Он передает правила. А теперь добираемся до главного. KIF, OWL - это тоже контейнеры для смысла. Ха-ха. Т.е. в них ничего не описано, например, про Солнце, время, деревья. Все это описывается в содержимом конкретных онтологий, созданных с помощью этих языков. Так вот. Если одним из таких элементов содержимого будет "правило" или другие структурные элементы - понятия нашего мира, то уже с пом. этих конструкций можно описать сообщения высшего порядка. Например, можно записать, что "кто-то сказал, что про него сказали другие, что он говорил про них неправду". Вот как. Итого в сухом остатке: Чтобы передать какое-то осмысленное сообщение от одного разумного агента другому, кроме всего того, что требуется заполнить в ACL- кто отправил, кому отправил сообщение, время отправки, тип сообщения (запрос, ответ на предыдущее сообщение, информирование и т.д.), требуется указать в ACL - какой контентный язык используется. Например, OWL, далее - заполняем ссылку на онтологию, которая служит для толкования сообщения - контекст. Далее - заполняем контент на OWL, каждый элемент которого ссылается на понятия в онтологии толкования. К примеру, где-то в интернете располагается онтология товаров, где описано что такое цена, вес товаров, что такое прайс, товарная накладная, а также есть и более индивиальная информация об определенных товарах. Тогда мы можем передать в сообщении прайс. Или накладную на отгруженные товары. Или еще что-нибудь аналогичное. Короче - можем вести деловую переписку. при этом в каждом соообщении мы можем ссылаться на эту онтологию.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 13 май 2011, 12:50 [quote="Prof1983"][quote="victorst"]Есть такие язык передачи смысла: 1. KIF и SUO-KIF 2. OWL 3. ...[/quote]Это я все понимаю. Хотя с языками KIF и SUO-KIF пока не знаком, но про OWL читал, разбирался. OWL базируется на XML+RDF. Мне RDF и OWL кажутся довольно сложными для понимания и для редактирования без использования специализированных программ (вроде Protege). Поэтому я и пытаюсь изобрести "свой велосипед" с которым работать будет попроще. По моему, передача и хранение данных, информации и знаний в виде сущностей (фреймов) ни чуть не хуже, чем передача и хранение в виде OWL. Сегодня, на работе, в очередной раз всплыл вопрос про базу нормативной документации. Решали как сделать так, чтобы можно было удобно пользоваться документацией, хранить в одном месте. А так же было бы не плохо сделать поиск по ключевым словам (по тегам) и, желательно, по смыслу. Планирую сделать хранение данных в виде отдельных параграфов в которые могут включаться картинки, формулы, ссылки, файлы и пр. Хочу попробовать использовать для хранения такой информации БД в виде сущностей. На выходных планирую начать делать небольшую программку для первичного наполнения БД. Саму программу планирую делать в рамках проекта AIKernel, а сама нормативная база будет, наверное, распространяться на коммерческой основе.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 13 май 2011, 14:01 [quote="victorst"][quote="Prof1983"]OWL базируется на XML+RDF. Мне RDF и OWL кажутся довольно сложными для понимания и для редактирования без использования специализированных программ (вроде Protege). Поэтому я и пытаюсь изобрести "свой велосипед" с которым работать будет попроще.[/quote]Возьмите нотацию N3 http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F_3 Она много проще.[quote="Prof1983"]По моему, передача и хранение данных, информации и знаний в виде сущностей (фреймов) ни чуть не хуже, чем передача и хранение в виде OWL.[/quote]В вышеуказанном примере по ссылке это и есть фрейм - кусочек онтологии. Разницы я не замечаю. Дело в том, что чистый фрейм без дополнительных примочек не сможет хорошо отражать все то, что с его помощью нужно выразить. Зачем переизобретать то, что уже давно изобретено? Чтобы понять чужое через изобретение своего аналога? Можно итак. А можно и просто изучить это чужое.[quote="Prof1983"]Сегодня, на работе, в очередной раз всплыл вопрос про базу нормативной документации. Решали как сделать так, чтобы можно было удобно пользоваться документацией, хранить в одном месте. А так же было бы не плохо сделать поиск по ключевым словам (по тегам) и, желательно, по смыслу.[/quote]Важность смыслового представления деловой документации огромна. Я представляю это так. Пользователь собирается написать новый документ. Письмо, инструкцию и т.д. Он может взять специальную программу, в которю вводит текст. Этот текст интерактивно программа немедленно переводит во фрагмент единой онтологии предприятия. С этого момента документ может понимать не только получатель- человек, но и специальный программный агент, который легко может им пользоваться.[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 13 май 2011, 19:49 [quote="Prof1983"][quote]Важность смыслового представления деловой документации огромна. Я представляю это так. Пользователь собирается написать новый документ. Письмо, инструкцию и т.д. Он может взять специальную программу, в которю вводит текст. Этот текст интерактивно программа немедленно переводит во фрагмент единой онтологии предприятия. С этого момента документ может понимать не только получатель- человек, но и специальный программный агент, который легко может им пользоваться.[/quote]Чтобы не разводить обсуждение не по теме этой ветки ответил здесь: http://ai.obrazec.ru/forum/viewtopic.php?p=28752#p28752 [quote="DCV"]Я уже делал картотеку, в которой карточки можно помечать ключевыми словами. Ключевые слова могут образовывать иерархию. В карточки можно добавлять вложенные файлы. Можно скачать тут: http://www.trizway.com/art/cards/212.html Размер файла 190 мб, потому что содержит FrameWork 3.5, необходимый для работы программы.[/quote]Ответил здесь: http://ai.obrazec.ru/forum/viewtopic.php?p=28754#p28754[/quote]
Заголовок сообщения: Re: Проект Neuronium СообщениеДобавлено: 13 май 2011, 20:21 [quote="Prof1983"][quote="victorst"]Возьмите нотацию N3 http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F_3 Она много проще.[/quote]Посмотрел спецификацию N3 (http://www.w3.org/TeamSubmission/n3/). Возможно вы правы. И стоит использовать N3. Однако хочу заметить, что XML, RDF, OWL и N3 созданы w3c для организации передачи данных, информации и знаний в глобальной сети Internet. Я же хочу применить "сущности" в виде фреймов, в первую очередь, для локальной БД (БЗ) и, возможно, для локальной передачи данных, информации и знаний между отдельными составными частями ИИ системы (между агентами). Я не настаиваю на использовании записи информации в виде сущностей, но в своих проектах хотел бы попробовать такой подход. Время покажет что из этого получится.[/quote]