Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Винитарху (большие объемы БД фактов и правил)
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
LKS LKS вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.05.2005
По умолчанию Винитарху (большие объемы БД фактов и правил) - 03.05.2005, 11:46

Опишу задачу:
Имеется большая кабельная сеть:
- 150-200 тыс. элементов (отрезки кабеля)
- несколько тысяч узлов
узлы и секции содержат каждые по несколько десятков атрибутов
- топология соединений в основнов иерархическое дерево
(впрочем есть и петли)
- В день меняется до нескольких десятков позиций

способ хранения всей этой информации это SQL сервер, интерфейс ко всему этому будет написан вероятнее всего на Delphi.
Запросы будут включать нахождение путей, оценки их по разным правилам и т.д.

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

интересует такие вопросы:
1. Как разные прологи (в частности интересует SWI-prolog) работают с такими объемами.
2. Как вообще строится такая работа
2.1. Мне требуется как-то передать этот объем в пролог-машину и только потом она начнет работать? ()
2.2. Или прологи как-то умеют сами работать с SQL базами
(возможно есть какие-то метаправила)?
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,955
Сказал(а) спасибо: 2
Поблагодарили 302 раз(а) в 302 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 04.05.2005, 10:09

Цитата:
1. Как разные прологи (в частности интересует SWI-prolog) работают с такими объемами.
Самый быстрый из всех Прологов - это VIP. SWI-пролог работает медленней, а насколько медленней - мы на форуме недавно выяснили: в разы и десятки разов, можете сами посмотреть сравнительные результаты:
http://www.hardforum.ru/t57937

Цитата:
2.1. Мне требуется как-то передать этот объем в пролог-машину и только потом она начнет работать?
2.2. Или прологи как-то умеют сами работать с SQL базами
VIP может спокойно работать с SQL-базами. У него для этого есть свои собственные предикаты. Скорость работы с SQL-базой определяется не Прологом, а интерфейсом самой БД. А вот скорость "нахождения путей, и оценки их по разным правилам" будет определяться именно Прологом. А так как база немаленькая, то я Вам рекомендую остановить свой выбор именно на VIP. VIP во ВСЕХ ОТНОШЕНИЯХ мощнее всех других Прологов. Кроме этого, на нём можно просто и легко сделать интерфейс Вашей программы не привлекая к этому Delphi.

Мои вопросы:
1. Как часто изменяется сожержимое БД?
2. Прога должна работать в реальном времени или у неё в распоряжении будут секунды-минуты?

И ещё. Работа с деревьями и графами такой размерности - мой конёк. У меня есть собственные, опробованные на практике в течении нескольких лет, уникальные алгоритмы для поиска субоптимальных решений на громадных графах. Если Вы представляете организацию в границах России, то я Вам готов оказать конкретную помощь в рамках хоздоговора с моим политехом. "Конкретность №1" будет заключаться в передаче исходников для быстрого поиска на графах того, чего Вы сами скажете. "Конкретность №2" будет заключаться в правилах для работы с SQL-базой. Всё с подробными пояснениями. Размер оплаты - минимален. Для меня главное - акт реализации.
Ответить с цитированием
  (#3 (permalink)) Старый
LKS LKS вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.05.2005
По умолчанию 04.05.2005, 20:46

Цитата:
Originally posted by Винитарх
[b]
Цитата:
2.1. Мне требуется как-то передать этот объем в пролог-машину и только потом она начнет работать?
2.2. Или прологи как-то умеют сами работать с SQL базами
VIP может спокойно работать с SQL-базами. У него для этого есть свои собственные предикаты. Скорость работы с SQL-базой определяется не Прологом, а интерфейсом самой БД. А вот скорость "нахождения путей, и оценки их по разным правилам" будет определяться именно Прологом. А так как база немаленькая, то я Вам рекомендую остановить свой выбор именно на VIP. VIP во ВСЕХ ОТНОШЕНИЯХ мощнее всех других Прологов. Кроме этого, на нём можно просто и легко сделать интерфейс Вашей программы не привлекая к этому Delphi.

Мои вопросы:
1. Как часто изменяется сожержимое БД?
2. Прога должна работать в реальном времени или у неё в распоряжении будут секунды-минуты?

И ещё. Работа с деревьями и графами такой размерности - мой конёк. У меня есть собственные, опробованные на практике в течении нескольких лет, уникальные алгоритмы для поиска субоптимальных решений на громадных графах. Если Вы представляете организацию в границах России, то я Вам готов оказать конкретную помощь в рамках хоздоговора с моим политехом. "Конкретность №1" будет заключаться в передаче исходников для быстрого поиска на графах того, чего Вы сами скажете. "Конкретность №2" будет заключаться в правилах для работы с SQL-базой. Всё с подробными пояснениями. Размер оплаты - минимален. Для меня главное - акт реализации.
Спасибо за ответ (несколько не ожидал о SWI-prologe...)
1. Содержимое будет изменятся (после первоначального заполнения) я полагаю примерно со скоростью несколько десятков фактов(записей SQL) в день. (Добавление/исправление).
2. Это ни в коей мере не система реального времени. В распоряжении будут минуты (в общем это скорее инструмент отчетов и анализа информации для планирования ремонтов, анализа проектов и т.д и т.д.). Сам характер этих запросов и выводов пока еще просматривается неотчетливо (аппетит приходит во время еды).

Дополнительно:
1. "в рамках хоздоговора с моим политехом"
Если честно, то мое предприятие очень большое, неповоротливое, медлительное и имеет большое кол-во ступеней управления и это не очень реально, но тем не менее я буду Ваше предложение держать в загашнике.
2. "Кроме этого, на нём можно просто и легко сделать интерфейс Вашей программы не привлекая к этому Delphi." Чувствую себя обязанным прокомментировать.
Будет делать два человека:
Один отвечает за интерфейс с пользователем, редактор БД. Эта задача будет входить составной частью в другую крупную систему (уже существующую и написанную на Delphi) поэтому эта часть будет на Delphi.
другой хорош как программист сложных вопросов и в качестве первопроходца в нашем коллективе, но имеет трудности в общении с людьми. Т.е. первый будет для второго постановщиком задачи.
Ответить с цитированием
  (#4 (permalink)) Старый
LKS LKS вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.05.2005
По умолчанию 12.05.2005, 11:47

После чтения (конечно несколько поверхностного) вернусь к своему вопросу, и уточню кое-что у знающих людей:

1. В VP (я читал HELP к 5.2) существует понятие External Database. Видно, что предназначение ее - хранение термов. Имеются предикаты по управлению ей. Неясно однако как операции логического вывода её используют. Прямо? И с другой стороны в ограничениях VP (5.2) есть ограничения на кол-во claus, fact и т.д. довольно существенные. А если у меня кол-во фактов под пару миллионов, а общий объем пара гигабайт? В External DB они то поместятся (указано огр. ключа 16 млн.), но как лог. вывод работает с ней?
Т.е. я вполне понимаю, что все это можно обойти (например запросив из SQL базы необходимое подмножество и сформировав из него требуемый набор), но все же хотелось бы (по возможности) не дробить работу...

2. В AMZI прямо проводится аналогия с СУБД и это очень воодушевляет, однако что-то не обнаружил я там возможности держать БД на диске. Может кто-то просветит на эту тему?

P.S. Попутно замечу, что HELP VP 5.2 написан как-то более по человечески, чем 6.2, структурирован лучше и т.д.
Ответить с цитированием
  (#5 (permalink)) Старый
Alexei A. Morozov Alexei A. Morozov вне форума
Member
 
Сообщений: 138
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 26.05.2004
По умолчанию 12.05.2005, 15:04

Здравствуйте, LKS

Так называемые внешние базы данных в VIP – это разработанный PDC механизм работы с большими наборами фактов, не имеющий никакого отношения к SQL и пр., а, следовательно, более быстрый и эффективный. Лишь бы в него влезли, конкретно, ваши объёмы данных. При этом физически такая “внешняя база данных” может находиться на диске, в EMS (под ДОС ) или в оперативной памяти (что есть хорошо, если данных не очень много). Для работы с “внешними базами данных” служат специальные предикаты типа db_create, db_open и др. В общем, вещь хорошая, особенно если у разработчика нет желания тратить время на процеживание данных через SQL.

С уважением,

Алексей
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,955
Сказал(а) спасибо: 2
Поблагодарили 302 раз(а) в 302 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 13.05.2005, 11:23

Цитата:
Неясно однако как операции логического вывода её используют. Прямо?
Бэктрекинг присутствует на элементах БД, например в предикате:
Код:
chain_terms(DbaseSelector, ChainName, <domainName>, Term, RefNumber)
Цитата:
в ограничениях VP (5.2) есть ограничения на кол-во claus, fact и т.д. довольно существенные.
Откуда Вы это взяли? По моему никаких чисто проложных ограничений на РЕАЛЬНОЕ количество предикатов и фактов БД нет.

Цитата:
А если у меня кол-во фактов под пару миллионов, а общий объем пара гигабайт?
Ну и пожалуйста. Однако вызывает удивление размер Вашего среднего факта = 1 Кб.

Цитата:
В External DB они то поместятся (указано огр. ключа 16 млн.),
Про ограничение в 16 млн. впервые слышу. Единственное ограничение, которое я знаю - это ограничение на длину ключа - 255.

Цитата:
но как лог. вывод работает с ней?
А это зависит от того, что именно Вы хотите делать с фактами БД. Одно дело - отсортировать, другое - найти что-то. Как я понял, Вам потребуется выборка из БД группы фактов по какому-то признаку и решение определённой задачи над этой группой уже средствами логического вывода. Это всё вполне можно сделать и без SQL.

Цитата:
В AMZI прямо проводится аналогия с СУБД и это очень воодушевляет, однако что-то не обнаружил я там возможности держать БД на диске. Может кто-то просветит на эту тему?
Често говоря, я не слышал, чтобы кто-то написал серъёзные промышленные проги на AMZI. VIP - лучший проложный инструмент для разработки крупных проектов.

Цитата:
Попутно замечу, что HELP VP 5.2 написан как-то более по человечески, чем 6.2, структурирован лучше и т.д.
Это потому, что пятёрка - завершённый продукт и под неё написано много примеров и пояснений (и продолжает писаться). А шестёрка - новый развивающийся продукт. Посмотрите тему "Новости из мира Пролога":
http://www.hardforum.ru/t56741
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правил вывода родственных отношений RuslanTM Prolog 2 16.12.2011 20:46
Загрузка фактов и правил из внешних файлов tumanovalex Prolog 2 01.10.2011 20:22
Скорейшего выздоровления Винитарху VictorY Prolog 16 27.04.2010 00:13
Для каких целей на серверах устанавливают большие объемы памяти? Лиза88 Любые вопросы от новичков 2 14.12.2009 16:09
Использование рекурсивных правил Михаил_1987 Prolog 10 09.02.2009 17:23
Производители памяти сокращают объемы Ledokol О производителях 0 15.01.2009 00:07
Есть ли бесплатный хостинг без строгих правил? artishok Любые вопросы от новичков 24 08.09.2008 18:34
Разработчик правил проектирования топологии (Product Engineer) 2000-2500$ youth Работа 0 24.07.2007 13:04
Ввод правил от пользователя rogue_uss Prolog 15 07.10.2006 20:21
Как создать целые большие числа deniska С/С++ 1 09.11.2005 02:18
Большие числа как с ними работать Vad95 Офтопик 19 23.02.2005 23:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов