Hi David, the rule engine in my application must provide some essential features like: -Backward/Forward chaining support:Which used in inference engine -rule prioritizing. -rule dependency. -must allow complex conditions. And my app will have a lot of rules like this: rule example: if(cos(x)>y and/or sin(x)<z) then z=y Not if-else statements. so my question is : Is it possible with NxBRE( Inference engine )to write this rule with ruleML syntax?
Hi David, the rule engine in my application must provide some essential features like: -Backward/Forward chaining support:Which used in inference engine -rule prioritizing. -rule dependency. -must allow complex conditions. And my app will have a lot of rules like this: rule example: if(cos(x)>y and/or sin(x)<z) then z=y Not if-else statements. so my question is : Is it possible with NxBRE( Inference engine )to write this rule with ruleML structure?
Hi David, I already figured it out , I used the following code: //I create a TextWriterTraceListener for the log file TextWriterTraceListener ctl = new TextWriterTraceListener(logfilepath); //I assign this listener to FlowEngineSource to get log messages from code execution : // Logger.FlowEngineSource.TraceInformation(logMessage) NxBRE.Util.Logger.FlowEngineSource.Listeners.Clear(); NxBRE.Util.Logger.FlowEngineSource.Listeners.Add(ctl); //I assign this listener to FlowEngineRuleBaseSource to get...
Hi Safa - What have you tried?
Hi, I want to do the exact same thing as Rajesh but I didn't understand how to do it. I want to trace information for the flow engine execution in a text file. How can I do that? Thanks. Regards, Safa
Hi, I want to do the exact same thing as Rajesh but I didn't understand how to do it. I want to trace information for the flow engine execution in a rule file. How can I do that? Thanks. Regards, Safa
maybe :p I am going to put NxBRE architecture in my report so i will change it to avoid confusing.
Here is the original image : https://github.com/ddossot/NxBRE/blob/master/Misc/architecture-overall.png The overlap with the Flow Engine is probably to show that one can use it as a binder for the Inference Engine, I guess? I can't remember, this was so long ago :P
I didn't find anywhere mentioned that the flow engine uses binders but in the architecture figure in this link https://www.safaribooksonline.com/library/view/windows-developer-power/0596527543/ch04s02.html ( please find attached the architecture picture), the binder is placed above both engines so it appears like if the flow engine also use it, this is why i am confused.
Here it is: https://github.com/ddossot/NxBRE/blob/master/NxBRE3/Source/Util/PseudoCodeRenderer.cs It's used for rendering rules into a human friendly pseudo-code, for documentation purposes, to let, say, business experts, verify the rules are correct.
I've looked for all mentions of "binder" in the chapter and can't find a place where it says it's used with the flow engine. So either I can't search (and it's possible!) or you may have misread. Please point to the specific sentence that says so.
Hi, In NxBRE architecture presented in this link https://www.safaribooksonline.com/library/view/windows-developer-power/0596527543/ch04s02.html show that the flow engine uses binder. I didn't understand how it uses binders and what for? As I understood, binders are used by the inference engine to assert facts based on business objects, but i didn't understand what the flow engines uses it for.
Hi, In NxBRE architecture presented in this link https://www.safaribooksonline.com/library/view/windows-developer-power/0596527543/ch04s02.html show that the flow engine uses binder. I didn't understand how it uses binders and what for? As I understood, binders are used by the inference engine to assert facts based on business objects, but i didn't understand what the flow engines uses it for.
Hi, I read that The Flow Engine contains an HTML-rendering engine that offers a convenient way to navigate through rules and read them transformed into pseudocode. in this link: https://www.safaribooksonline.com/library/view/windows-developer-power/0596527543/ch04s02.html I was wondering where can I find it and how to use it? and what it is used for? Thanks,
Hi, I read that The Flow Engine contains an HTML-rendering engine that offers a convenient way to navigate through rules and read them transformed into pseudocode. in this link: https://www.safaribooksonline.com/library/view/windows-developer-power/0596527543/ch04s02.html I was wondering chere can I find it and how to use it? and what it is used for? Thanks,
yes I have already checked the ResultsMap but didn't find anything helpful.
Ah sorry, I misunderstood, I thought you wanted to know exactly which set/rule had...
My goal was to know when the engine have modified the input data, so i just added...
Even if the logic block had an ID, this wouldn't be what you want because you want...
your suggestion is interesting, i will try to look at it. But I still didn't know...
https://github.com/ddossot/NxBRE/blob/master/NxBRE3/Test/FlowEngine/TestBackward...
Do you have an example working with the BackwardChainer class?
your suggestion is interesting, i will try to look at it. But I still didn't know...
Unfortunately there's no way to know the set ID from within the set. So you would...
I think you didn't understand what i am trying to do. I have a Set with id="Set1"...
The objectId would be the ID of the List that you've put in the context before calling...
and what the objctId will be? I didn't understand your suggestion.
Have you tried placing an <ObjectLookup> as the first element in <Set>?
I don't need to have an id for each rule, i just want to have the Set id that's all,...
Just a string you make up, like "Reject-People-With-Bad-Debt"
I tried it now and it works. Thank you. How to i get the set Id to add it to the...
Have you tried using the Add member method on it?
I don't need the testObj , but I didn't know how to add elements to the list with...
ERROR! The markdown supplied could not be parsed correctly. Did you forget to surround...
ERROR! The markdown supplied could not be parsed correctly. Did you forget to surround...
What you're doing with ObjectLookup is equivalent to this in C#: testObj.list("elt1",...
ERROR! The markdown supplied could not be parsed correctly. Did you forget to surround...
Congrats on learning further the internals of the Flow Engine, seriously it's great...
I looked at it but there is nothing helpfull ther. But i tried to debug how the execution...
Have you checked IBRERuleMetaData.IBRERuleFactory? I was hoping it would help pinpointing...
I looked at MetaDataproperty but i didn't find anything about the fired rule. My...
Hi i wanted to know what is this Id property https://github.com/ddossot/NxBRE/blob/724f63a976ecdf6247a2d2c02471c81c7807b1cf/NxBRE3/Examples/Login/Login.cs#L60...
ERROR! The markdown supplied could not be parsed correctly. Did you forget to surround...
ok thank you i will look at it, and post the solution if i find it.
Maybe: if you look at the fields in IBRERuleMetaData, you get a lot of information...
Thank you. Is there a way to detect the firing of a rule in a specific set?
You don't need to implement it, registering a delegate is enough: https://github...
Hi , is there an example on how to use the IBREDispatcher to detect rule firing ?...
A dynamic invoke set gets the set ID from a context object (via valueId) instead...
ERROR! The markdown supplied could not be parsed correctly. Did you forget to surround...
You are attempting a dynamic set invocation with valueId when what you wanted was...
You are attempting a dynamic set invocation with valueId when what you wanted was...
Hi, I want to use the InvokeSet but i keep getting an error : can not invoke set...
Hi, I want to use the InvokeSet but i keep getting an error : can not invoke set...
Hi, can you send it to me too please?
yes I read the documentation but I didn't really understand how that works. Actually...
Did you read chapter 3.3 of the user guide? Binders can be written in C# VB.NET and...
Hi, I wanted to use the inference engine as you suggested but I am having trouble...
The IBREDispatcher interface allows you to receive notifications when rules are fired....
Hi , I want to ask if there is a way to know when no rule have been fired after the...
Hi , I want to ask if there is a way to know when no rule have been fired after the...
thanks a lot , i will try it.
It would be indirect: 1) expose object.prop as fact1 2) have a rule that infers fact2...
how can i say for example, if object.prop=value then execute object.method with inference...
You can but indirectly, via facts, either with binding or on events. It's more involved...
thank you, but i want the forward chaining. in fact i chose the flow engine because...
You are correct. Use either the Inference Engine or the Flow Engine + Backward Chainer...
that means that it executes the flow of rules only one time, and don't check if the...
By default, the Flow Engine doesn't use any chaining, it's just an imperative processor...
Thank you for the clarification.
Right, the old archives contain an outdated README, I can't really fix that. The...
in fact , i have another question , it's regarding the flow engine, does it use forward...
thanks. It says LGPL in the README.txt file that we get when downloading Nxbre-3_2_0.zip...
NxBRE was initially licensed under LGPL but has been switched to MIT almost 5 years...
Hi, I want to know what's the license of NxBRE: at sourceforge.net they are indicating...
NxBRE provides a bunch of static utils to help with relfection calls. NxBRE.Util.DataAccess.GetArrayColumnValue...
I didn't understand how the example you showed me is a solution to my problem, do...
Check this out: https://github.com/ddossot/NxBRE/blob/master/NxBRE3/Rulefiles/te...
thanks for the reply. after i located the index with <Increment> how can I acces...
Use an <Increment> rule alongside the <ForEach> to keep track of the index.
Hi, I am new to NxBRE, and i am trying to work with the flow engine, i read the documentation...
NxBRE.Util.Logger exposes several TraceSource that you can listen to, using standard...
Hi, How can i enable tracing in nxbre for rule execution. I want to trace information...