Механизм правил конфигурации - альтернативы?

Я занимаюсь разработкой программного обеспечения, которое принимает правила вида «A запрещает B» или «X требует Y» для создания приложения, которое позволит вам настроить сложный элемент.

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

Таким образом, фактические правила больше похожи на «Все (A, B, C) Disallows Any (X, Y, Z)», в котором говорится, что если пользователь выбирает A, B и C, он не может выбрать ни один из X, Y или Z. Это просто логическая логика.

Существуют дополнительные типы, например, те, которые говорят, что если вы выберете A, вы также должны выбрать B, но не стоит вдаваться в подробности всего этого.

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

Реальный вопрос: есть ли какая-то система или фреймворк, который имеет дело с таким поведением во время выполнения? Я знаю, что у Oracle есть вещь, называемая «Oracle Configurator», которая делает именно то, о чем я говорю, но я думаю, что это слишком дорого.

Проект почти завершен, и я построил «рабочую» систему, но я пытаюсь провести вскрытие, чтобы посмотреть, можно ли было сделать лучше / быстрее / дешевле.


person Anthony Compton    schedule 10.01.2011    source источник


Ответы (3)


Возможно, вас заинтересует Пролог.

person orlp    schedule 10.01.2011
comment
Я еще не проработал все детали, но после чтения о Prolog и экспериментов с некоторыми простыми КБ, он показывает многообещающие. Я продолжу изучать это и возьму пару книг, чтобы прочитать. А пока ставьте галочку! - person Anthony Compton; 14.01.2011

Я считаю, что Oracle Configurator - это всего лишь модуль в E-Business Suite. Это не то, что вы можете просто загрузить в существующую базу данных и приложение.

Вы можете проверить DBMS_RULE, чтобы узнать, будет ли это делать то, что вы хотите.

person JOTN    schedule 10.01.2011

Sterling Configure, Price, Quote, SAP Configurator и Oracle Configurator - вот лишь некоторые из доступных вариантов.

person Albert T. Wong    schedule 05.11.2014