GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.3 (6)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
shuklin
Сообщений: 2053
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 26 сен 08 11:23
Цитата:
Автор: tac
Мы разобрались что количество узлов нужно для лучшей оптимизации, если бы не это всю информацию вообще можно было бы хранить в одном узле.

В первую очередь не для оптимизации, а для свободы творчества в построении архитектуры. Контейнейрные узлы предоставляют собственную реализацию адресного пространства, такой концепции адресного пространства Вы не найдете в обычном языке программирования. Допустим применение .NET, в этом случае адресное пространство предлагаемое Ц потребуется эмулировать на основе множества HashTable, По одной HashTable на узел. Это потребует затрат на реализацию. Я называю этот механизм Сетевой Моделью Данных (СМД). Оптимизатор, он уже существует за ширмой, так же как и сборщик мусора в .NET , это уже средство поддержки реализации, а не концепции. А еще требуется признать, что оптимизатор в Ц не есть вершина оптимизации. Его можно улучшать и улучшать. Хотя, даже то что уже есть в текущей версии, имхо очень даже вещь ))


Цитата:
Далее как я понимаю, вы как и в реляционных базах используете понятие таблицы, в которой имеются колонки и записи. При этом в ячейке может хранится произвольный объект (узел). Записи отражают разные объекты одного класса, колонки можно использовать как разнотипные классы (узлы). Встает один вопрос - зачем иметь более одной таблицы ? Что дает этот уровень абстракции ? В реляционных базах все ясно - там храним то, что привели к нормальной форме, а в объектной казалось бы именно этого и не нужно ?

Похоже, но причинность расставлена неверно. Я не использую таблицы, а реализую таблицы средствами сети. Таблица - это программный табличный интерфейс к участку сети. Концепция интерфейса данных - удобная вещь. У узлов есть аттрибуты (= тоже узлы). Однотипные узлы (=экземпляры классов) обладают идентичными по семантике аттрибутами и образуют множеством аттрибутов интерфейс. Каждый однотипный узел предоставляет интерфейс своего типа. Интерфейс данных - множество однотипных аттрибутов с единой семантикой. Возможна ситуация, когда узел реализует некоторый интерфейс не полностью. Тогда отсутствующие аттрибуты считаются равными null. Эта структура естественно отображается на коллекцию(=таблицу) экземпляров с фиксированным набором полей (=колонок таблицы). Таблица в Ц это уже не элемент физической реализации, а элемент абстрактного уровня представления данных. Можно рассматривать таблицу Ц как аналог реляционного VIEW, но развернутого не поверх других таблиц, а развернутого поверх фрагментов сети. В связи с тем что таблицы==view абстрагируют сети а не другие таблицы, то и свойства их весьма разнятся по сравнению с РБД-шными view. Такой интерфейс к данным значительно экономит колличество строк в программе. За счет наличия метоинформации, описывающей аттрибуты, появляется возможность автоматического управления аттрибутами узлов, входящих в коллекции узлов(таблицы). Рекомендация, держать в таблице узлы одного типа является всего лишь рекомендацией. В одной таблице следует держать узлы с совместимыми интерфейсами, что тоже самое с некоторым общим подмножеством аттрибутов, общим для всей коллекции и объявленных в шапке таблици. Т.к. это рекомендация, то ее можно, а иногда даже нужно нарушать. Таблицы - тоже узлы, их можно прицепить значением аттрибута любого узла, находящегося в какойто другой таблице, получится, что значением поля таблицы будет выступать другая таблица, или даже та же самая таблица. Очень важно обратить внимание, что различные узлы могут ссылаться на один и тот же экземпляр узла в качестве своего аттрибута. Таким образом ячейки в таблице можно мержить способом, похожим на объединение ячеек в экселе. Однако объединять можно произвольные ячейки, не обязательно даже в одной таблице. Это уже работа в обход табличного интерфейса, с сетью узлов. Табличный интерфейс являясь view над фрагментом сети, будет соответственно отображать изменения в сети так, как будто ячейки таблицы объединились в одну.


Цитата:
В реляционных базах все ясно - там храним то, что привели к нормальной форме, а в объектной казалось бы именно этого и не нужно ?

В объектной БД и в сетевой МД нормальные формы столь же важны как и в РБД, но выполняют несколько иную функцию. ИМХО и удобно и правильно нормализовать классы пользуясь нормальными формами. Когда стоит задача разработать некоторую объектную модель для представления некоторой сущности внешнего мира, то для разделения аттрибутов по классам следует пользоваться нормальными формами. Как и в РБД нормализация, всего лишь рекомендация, облегчающая разработчику жизнь и экономящая рессурсы. Ограничением же свободы разработчика является "физический" с точки зрения приложения уровень хранения информации. В РБД физическим уровнем выступают таблицы, а в Cerebrum - сеть узлов. Если нужна сеть в РБД то ее требуется эмулировать с помощью таблиц, если нужны таблицы в Ц, то их нужно эмулировать сетью, что в Ц и сделано. Таблицы в Ц - эмуляция для удобства, а так же для совместимости со стандартами .NET Data Binding

[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 27 сен 08 0:16
Цитата:
Автор: shuklin
Допустим применение .NET, в этом случае адресное пространство предлагаемое Ц потребуется эмулировать на основе множества HashTable, По одной HashTable на узел. Это потребует затрат на реализацию. Я называю этот механизм Сетевой Моделью Данных (СМД).


Это образная аналогия. Следует читать:

Если допустить, что мы полностью отказались от Ц, и пользуемся стандартными для .NET средствами, чтобы релизовать абстрактный аналог адресного пространства Ц, то какая модель была бы ближайшей? Ближайшей будет модель, в которой узел Warden это HashTable, и хранит в себе неявные указатели на другие узлы/HashTable, исспользуя в качестве ключей Int32. Вот эти Int32 на пользовательском уровне представляют собой "адреса"=="указатели"==идентификаторы узлов. Понятное дело, что на один и тот же экземпляр HashTable можно ссылаться под разными Int32, а в разных HashTable один и тот же Int32 может адресовать разные узлы.
В действительности же в Ц в каждом узле строится дерево индексов, подгружаемое из хранилища частями по требованию, но с абстракной точки зрения аналогия с HashTable более красивая, т.к. HashTable допускает в качестве ключа любое скалярное значение, а Ц - тлько Int32. Исходя из изначальной модели СНС, в которой узел обладает некоторой семантикой, и может устанавливать "окрашенные" ключами связи с другими узлами модель с HashTable получается ближе к чистой СНС, но индексировать любой ключ техническая задача более сложная. Поэтому в текущей версии Ц следует создать скалярный узел, хранящий настоящее значение ключа, а идентифицировать исходящие связи не внешним значением ключа, а тем уникальным ИД, который был присвоен узлу, хранящему это внешнее значение ключа. Я называю эту модель Сетевой Моделью Данных (СМД).
[Ответ][Цитата]
tac
Сообщений: 2601
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 29 сен 08 19:37
Цитата:
Автор: shuklin
1. В первую очередь не для оптимизации, а для свободы творчества в построении архитектуры.

2. Похоже, но причинность расставлена неверно. Я не использую таблицы, а реализую таблицы средствами сети. Таблица - это программный табличный интерфейс к участку сети. Концепция интерфейса данных - удобная вещь.

3. В объектной БД и в сетевой МД нормальные формы столь же важны как и в РБД, но выполняют несколько иную функцию. ИМХО и удобно и правильно нормализовать классы пользуясь нормальными формами.


Дорогой мой, вы совершенно не последовательны ... то вы кричите надрываясь как хороши объекты, и соответственно объектные базы (в чем я с вами могу согласится), то ВДРУГ почему-то "для свободы творчества" используете таблицы, заявляя что это удобно. Я смею Вас заверить, что в ООП вообще таблицы не нужны, и если нет какой-либо технической причины почему вы использовали таблицы - то мне вообще они не нужны - буду иметь миллион колонок в одной таблице в каждой из которых будет храниться своя иерархия сильно связанных объектов - и все. Нормальзация в ОО это что-то новое !? По мне это называлось абстракцией - и усё.
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 30 сен 08 18:10
Цитата:
Автор: tac


Дорогой мой, вы совершенно не последовательны ... то вы кричите надрываясь как хороши объекты, и соответственно объектные базы (в чем я с вами могу согласится), то ВДРУГ почему-то "для свободы творчества" используете таблицы, заявляя что это удобно. Я смею Вас заверить, что в ООП вообще таблицы не нужны, и если нет какой-либо технической причины почему вы использовали таблицы - то мне вообще они не нужны - буду иметь миллион колонок в одной таблице в каждой из которых будет храниться своя иерархия сильно связанных объектов - и все. Нормальзация в ОО это что-то новое !? По мне это называлось абстракцией - и усё.


Я Вас не заставляю применять таблицы )) я говорю, что мне удобно собирать однотипные объекты в таблицы. Таблицы - такие же объекты, как и другие объекты ООБД, они "живут" в БД на тех же правах, как и остальные экземпляры, мирно, без ссор разделяя доступное им пространство файлового хранилища )) Захотите, включите некоторые экземпляры своих объектов в стандартные таблицы, захотите, добавите в БД еще несколько узлов типа таблицы, захотите, сделаете в таблице миллиард колонок, или вообще проигнорируете возможность их существования ))) Более того, инфраструктура WinForms предлагает уже встроенный механизм DataBinding, имея табличный интерфейс к участкам нейросети, удобно пользоваться Microsoft-овскими наработками. Там где более удобно, я уже это обсуждал, я использую собственный механизм ObjectBinding|Mapping. Однако я так же не заставляю отказываться от таблиц тех разработчиков в тех сценариях, когда им таблицы удобны. Cerebrum - это свобода. Мы еще далеки до обсуждения всех его возможностей. Например мы еще даже не цепляли оптимизатор декларативных объектных запросов (концепция аналогична SQL), реализованный для Cerebrum-овских таблиц Сергеем Бойко ( http://www.shdsoftware.com/go/00000000002isiikmenu1nnv14.html ), я эту разработку активно применяю на своем веб сайте http://www.shdsoftware.com для динамической генерации страниц по содержимому ООБД.
Пролистайте на досуге по диагонали этот узел СУБЗ, в нем собраны эссе на различные темы по архитектуре Cerebrum : http://www.shdsoftware.com/go/00000000002ishs42e75c42u84.html

[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 17 окт 08 22:43
Опубликовал Cerebrum version 1.0.300.13, build 2008-10-17

Основные изменения:

- Проведенна небольшая оптимизация кода и рефакторинг;

- Добавлена консольная утилита Cerebrum.Expert.Console.exe , позволяющая запускать экспертную систему Elex без интерфейса пользователя.

Cerebrum.Expert.Console.exe выполняет следующие комманды:
-c компилирует базу знаний на основе исходного текста,
-lv загружает значения в именованные узлы БЗ,
-r запускает механизм логического вывода,
-so сохраняет значения выходных узлов в текстовый файл формата CSV,
-sh сохраняет значения промежуточных узлов в текстовый файл формата CSV,
-si сохраняет значения входных узлов в текстовый файл формата CSV.

Пример использования консольной утилиты расположен архиве cerebrum_bin_20081017_beta_2.zip с исполняемыми файлами в папке Cerebrum\Elex\ . Пример содержит следующие командные файлы
00_create.bat
01_load.bat
02_run.bat
03_save.bat

Для запуска примера, их и следует запускать в этой последовательности.
00 - создает файл новой БЗ на основе текста примера
01 - загружает в БЗ входные данные
02 - производит расчет значений
03 - сохраняет результаты расчета в выходные файлы.

Для удобства создания файла с входными данными в утилите предусмотрена
дополнительная опция -si сохраняющая в файл значения входных нейронов.
Алгоритм использования системы следующий.
- создать и отладить БЗ в среде Cerebrum.DesktopClient.exe
- сохранить файл входных значений пользуясь опцией -si утилиты
Cerebrum.Expert.Console.exe
- модифицировать по необходимости этот файл, он представляет собой
стандартный CSV совместимый с Excel, разделителем служит точка с запятой,
- загрузить этот файл в БЗ опцией -lv (пример 01)
- выполнить расчет (пример 02)
- сохранить требуемый результат (пример 03).

[Ответ][Цитата]
гость
89.208.11.*
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 18 окт 08 14:14
"я говорю, что мне удобно собирать однотипные объекты в таблицы. Таблицы - такие же объекты, как и другие объекты ООБД, они "живут" в БД на тех же правах, как и остальные экземпляры"

а разве можно иначе?

зачем?
даже логика, и та в таблицах истинности находтся, а функция выглядит как один объект.

по моему это естесственно...
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 18 окт 08 16:12
Цитата:

а разве можно иначе?

зачем?

Можно, часто удобно. Таблицы в Cerebrum составляют не основной и даже не базовый а побочный функционал. При этом "таблицы" не являются таблицами в терминологии SQL баз данных. Они ближе по поведению к SQL Views.
Здесь есть интересный момент. И он демонстрирует интересную особенность СУБЗ Cerebrum. Эта особенность в некоторых сценариях является достоинством, в других сценариях может оказаться ограничением и недостатком. Для снятия этого недостатка требуется решить проблему трансформационных декларативных запросов к ООБД, меня эта тематика на данный момент не сдерживает, поэтому теоретических разработок в этом направлении я не веду.

В SQL views представляют собой концептуальные коллекции. Правила принадлежности объекта к некоторому view задаются декларативным предикатом, что с точки зрения семантики представляет собой концептуальное описание. В Cerebrum таблицы формируются денотативно, т.е. принадлежность объекта к некоторой таблице нужно задать императивно для каждого конкретного объекта. С одной стороны теряется динамичность SQL-евских view с другой стороны появляется возможность управлять содержимым таблицы независимо от текущего состояния входящих в нее объектов.

Цитата:

даже логика, и та в таблицах истинности находтся, а функция выглядит как один объект.

по моему это естесственно...

Задание функций через отношение, представляющее собой подмножество декартового произведение домена входных параметров на домен значений есть стандартная математическая практика и широко применяется во всех реляционных СУБД. Здесь очень легко залететь в парадокс Рассела. Функция представляет собой множество. Т.е. задав функцию с отрицанием получаем парадокс. Задание той же функции средствами вне системы множеств позовляет получить корректный результат - перечислить денотативно, а не концептуально все множества, не содержащие в себе ссылок на себя. При этом перечисление не должно быть названно множество, т.е. не входить в контекст (СО) для которого оно формируется.

[Ответ][Цитата]
гость
89.208.11.*
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 18 окт 08 19:40
"Т.е. задав функцию с отрицанием получаем парадокс."

а закон инверсии причинности на что?

нет никакого парадокса.

" Задание той же функции средствами вне системы множеств позовляет получить корректный результат"

с правилами инверсии причинности тоже корректный получается.

"- перечислить денотативно, а не концептуально все множества, не содержащие в себе ссылок на себя."

так и там также будет.

" При этом перечисление не должно быть названно множество, т.е. не входить в контекст (СО) для которого оно формируется."

правильно, контекст то меняется спереходом из одной системы в другую.


мне кажется, вы просто ищете парадоксы там, где их нет и применяете слишком кривой и длинный путь, вместо того, чтобы корректно пользоваться таблицами в разных СО.


таблицы рулят.

используй то что под рукою и не ищи себе другое. (с) фелиас фогг
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 18 окт 08 23:44
Цитата:
Автор: гость
а закон инверсии причинности на что?

Опять лажа, не стоящая даже этих нажатий клавиатуры для ответа

Цитата:
Автор: гость
правильно, контекст то меняется спереходом из одной системы в другую.

неправильно. нет другой СО, по определению. переходить некуда. вселенная - она одна и едина по определению. любые СО локальны, включены в универсум, из которого выхода нет по определению. любая локальная СО будучи ограничина сама в себе - примитив не достойный внимания.
[Ответ][Цитата]
гость
89.208.11.*
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 19 окт 08 1:33
"Опять лажа, не стоящая даже этих нажатий клавиатуры для ответа"

ты просто не понимаешь как осуществляется переход из одной системы в другую. это твои проблемы, и парадоксы тоже только в твоей недоразвитой голове. в логике НЕТ и не может быть парадоксов. когда наконец это до тебя дойдет баран?
Любая логическая операция в ПРИНЦИПЕ не может привести к парадоксу!!!!
функцию он с обратным знаком берет и к парадоксу приходит...гы-гы-дибил, что еще можно сказать?

"Цитата:
Автор: гость
правильно, контекст то меняется спереходом из одной системы в другую.



неправильно. нет другой СО, по определению. "

это тебе кто сказал? сам выдумал?

"переходить некуда. вселенная - она одна и едина по определению."

тоже сам выдумал?


" любые СО локальны, включены в универсум, из которого выхода нет по определению."

откуда такая уверенность? хочешь нарушить закон достаточного основания в логике?

люди, жаждующие это сделать всегда приходят к парадоксам.



"любая локальная СО будучи ограничина сама в себе - примитив не достойный внимания."

вот вселенную ты и ограничил (она ведь тоже локальна), для тебя вселенная приметив?


приметивно выглядишь ты, как впрочем и всегда.
мой тебе совет. не плюй в закон достаточного основания и будет тебе счастье.
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 19 окт 08 11:13
Цитата:
в логике НЕТ и не может быть парадоксов. когда наконец это до тебя дойдет баран?

Этот вопрос не интересен, мы его уже выяснили. Твоей деревянной башке не осилить концепцию принципа дополнительности в силу уже известного ограничения.

Цитата:

неправильно. нет другой СО, по определению. "

это тебе кто сказал? сам выдумал?

написанно же "по определению". впрочем смысл этого термина для Т понять невозможно.
[Ответ][Цитата]
гость
89.208.11.*
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 19 окт 08 21:35
логике НЕТ и не может быть парадоксов. когда наконец это до тебя дойдет баран?


Этот вопрос не интересен, мы его уже выяснили."

да, и вы слили...


" Твоей деревянной башке не осилить концепцию принципа дополнительности в силу уже известного ограничения."

нет никакого принципа дополнительности.

парадоксов нет и быть не может. все. конец..
[Ответ][Цитата]
гость
89.208.11.*
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 19 окт 08 21:38
пока такие идиоты, как шуклин, будут проповедовать наплевательство на логику, с мертвой точки ничего не сдвинется.
неужели это до сих пор комуто не понятно еще?
[Ответ][Цитата]
tac
Сообщений: 2601
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 20 окт 08 6:10
Кстати, shuklin, обратите внимание на мое последнее предложение здесь http://gotai.net/forum/Default.aspx?postid=12656 . Возможно открытие такого сайта и размещения в том числе вашей информации про ваши разработки, помогут решить как минимум вопрос с документацией, я даже готов вам в этом несколько помощь, т.к. в свое время проявлял интерес к вашим разработкам, да и общая деятельность над вашей технологией при условии, что вы все же уделите время не только ей, но тому, что интересует вновь созданное сообщество ... пойдем мне кажется в гору ... там же сможете и делать постоянный отчеты о свох обновлениях и наконец собрать все в кучу ... когда же это только на вашем форуме (а их с десяток наверное, или на вашем личном сайте) то согласитесь, что стороним людям это не удобно, а помощь вам поработать над тем или другим они ни как не могут - они остаются наедене с вашим продуктом, в котором без вас никто не может разобраться ...
В общем я на вас расчитываю, не смотря на то, что сам вики-движок, на котором я хотел бы это организовать написан не на С#

[Ответ][Цитата]
гость
89.208.11.*
На: Создание искусственного интеллекта на основе сетевой объектно-ориентированной базы знаний
Добавлено: 20 окт 08 10:56
принципы дополнительности и иной бред, рождается только у тех, кто не знает и не умеет пользоваться логикой, такие как шуклин например, яростно отрицающий закон исключенного третьего, а также закон достаточного основания.
Логический набор НЕ НУЖДАЕТСЯ в заплатках. он и так совершенен и объективен (АБСОЛЮТЕН балда), нужно просто пользоваться им уметь и все.

принципы дополнительности, это заплатки не на законы логики, а на вашу тупую голову.


И этот человек чего то там хочет создать?
тихий ужас...

иди логику зубри, барашка.
[Ответ][Цитата]
 Стр.3 (6)1  2  [3]  4  5  6<< < Пред. | След. > >>