Помогите советом по проектированию...
От: aleyush Россия  
Дата: 22.04.05 20:40
Оценка:
Всем привет.

Хочу спроектировать следующую систему (релизация на c#, местами с использованием MSSQL2000).
(проектируется в научно-исследовательских целях)

Система крутится вокруг анализа некоторых сущностей (все экземпляры одного класса Entity).

У сущности может быть от 1 до нескольких значений (Meaning). Трактовка: одно значение ("сущность") есть всегда, но оно может быть на несколько уровней вниз конкретизировано (например, "мебель" -> "табуретка"). В принципе, такая конкретизация может ветвиться, а иногда даже сходиться обратно — то есть, это ориентированный граф без циклов (например, "мебель" -> "мебель для дома", "деревянная мебель" -> "табуретка").

У каждого Meaning есть набор свойств (Property). Каждое свойство характеризуется типом и способом вычисления (например, у мебели бывает цвет, у кастрюли — объем, у процессора — тактовая частота, и т.д.). Способ вычисления — некая функция на c#, на вход которой подается сущность, имеющая соответствующее значение Meaning.

И, наконец, есть "функции перехода" — этой самой конкретизации значений. Такая функция задается для пары (Meaning1, Meaning2). Ей на вход подается сущность, имеющая значение Meaning1, на выходе же получается бинарное значение — имеет ли она значение Meaning2. (Предполагается, что вычисление происходит на основе значений свойств Meaning1 для данной сущности.) Для заданной пары значений таких функций может быть несколько — тогда они складываются логическим или.


Все три описанных выше компонента должны быть расширяемыми — то есть, возможность добавлять новые Meaning, новые Properties с функциями их нахождения и новые функции перехода. То есть, они должны добавляться в виде плагинов (с некоторым "контролем целостности", чтобы не было, например, определено Property у не существующего Meaning).


Помогите, пожалуйста, с составлением объектной модели.


P.S. Основная идея системы — искать сходные наборы сущностей на основе их значений. Планирую применить для анализа содержимого незнакомых баз данных.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
---
Александр Ющенко
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.