«Слух о том, что это неточная реализация Rete» относится к давней проблеме, касающейся заявления о том, что механизм бизнес-правил, включенный в BizTalk Server, не может правильно реализовать алгоритм Rete. Утверждение, кстати, было неверным. BRE, безусловно, реализует Rete. Механизм правил WF — это совершенно другая технология, отличная от BRE. Как говорит Карл, движок правил WF вообще не реализует Rete ни правильно, ни неправильно. Это пример того, что можно условно назвать «последовательным» двигателем. Он реализует форму прямой цепочки. Однако настоящие проблемы немного сложнее, чем это. Бит «вперед» относится к типу логических рассуждений, которые может выполнять движок. Этот термин на самом деле ничего не говорит вам о механизмах, задействованных во время выполнения. Настоящая проблема заключается в том, насколько хорош двигатель в рассуждениях. Да, WF может пересылать цепочки и да, он может рассуждать, но только весьма ограниченными способами. Механизм Rete предлагает более сильные возможности рассуждения, НО на самом деле это не имеет ничего общего с использованием алгоритма Rete, который на самом деле представляет собой просто оптимизацию для определенного класса механизма правил, называемого «производственной» системой. Это связано с тем, как производственная система может рассуждать над всей «базой фактов», тогда как последовательный механизм правил WF может напрямую рассуждать только о приблизительном эквиваленте одного факта. Проблемы иногда возникают из-за того, что люди путают конкретный механизм времени выполнения, обеспечивающий прямую цепочку, с логическим процессом самой прямой цепочки (в конце концов, это довольно тонкое различие). Соответствующий механизм в WF, безусловно, можно использовать для «прямого» рассуждения в ограниченной степени, но его основное применение состоит в том, чтобы позволить последовательным правилам выражаться полудекларативным способом, т. е. правила могут быть выражены в любой последовательности. независимо от процедурных зависимостей между этими правилами. Это не имеет ничего общего с опережающими рассуждениями или даже с логическим процессом прямой цепочки.
Проблема немного сложная и неясная, и я знаю, что некоторые ребята из MS не согласны со мной в этом (мы обсуждали это достаточно часто), но это мое мнение.
person
Charles Young
schedule
19.05.2011