Re: JESS: [EXTERNAL] Question on QueryResult close() function

2013-06-28 Thread Peter Lin
Hi Daniel, How are you measuring the leak? It is important to look at the heap used and not the total heap allocated to the JVM process. What I've done in the past with JESS is write a function that uses java's runtime class to get actual memory used stats. Runtime rt =

Re: JESS: [EXTERNAL] Jess rule validation algorithm

2013-06-06 Thread Peter Lin
is it's very tough. The simplest approach is to generate facts for each rule, assert those facts and check the rule fired. Beyond that, you'd have to analyze the RETE network to calculate the rule dependency graph and compare the rules fired against the dependency graph. peter lin On Thu, Jun 6, 2013

Re: JESS: [EXTERNAL] Jess Licensing Question

2012-03-06 Thread Peter Lin
Back in 2002-2003 I used JESS to build a pre-trade compliance engine for a trading platform. JESS is a fantastic expert system shell. Like any other tool, the key is taking time to learn how to use it. Logic programming is different than imperative or OOP. The benefit is the result of how JESS is

Re: JESS: On the Performance of Logical Retractions

2011-06-13 Thread Peter Lin
I'll second that advice. There's other resources on TMS. I've used this page in the past, which provides a high level explanation of different types of TMS http://www.cis.temple.edu/~ingargio/cis587/readings/tms.html. Read as much as you can on TMS if that's critical to your research. ACMQueue

Re: JESS: On the Performance of Logical Retractions

2011-06-10 Thread Peter Lin
is implemented in jess? Do you solely rely on the Rete memory nodes and tokens for this purpose? On Fri, Jun 10, 2011 at 1:21 AM, Peter Lin wool...@gmail.com wrote: By performance of RETE what are you referring to? There are many aspects of RETE, which one must study carefully. It's good that you're

Re: JESS: On the Performance of Logical Retractions

2011-06-09 Thread Peter Lin
Although it may be obvious to some people, I thought I'd mention this well known lesson. Do not load huge knowledge base into memory. This lesson is well documented in existing literature on knowledge base systems. it's also been discussed on JESS mailing list numerous times over the years, so I

Re: JESS: On the Performance of Logical Retractions

2011-06-09 Thread Peter Lin
on the performance of the Rete. Lastly, I am not doing an RDF based mapping; rather, I follow the method of Description Logic Programs for translating each Class/Property of OWL into its corresponding template. --Oli. On Fri, Jun 10, 2011 at 12:03 AM, Peter Lin wool...@gmail.com wrote: Although it may

Re: JESS: Jess and Clojure

2011-06-03 Thread Peter Lin
I've also pondered the idea of clojure + jess with others. The benefits of doing full LISP is powerful, even if a significant percent of the users will never use features beyond the existing CLIPS functionality. The other benefit I see with clojure is the transactional memory. The STM model is

Re: JESS: Complex Event Processing

2011-03-14 Thread Peter Lin
By temporal operators, what are you referring to? it's pretty easy to add a function in JESS that does date comparison and then use them in a rule. for example, in the past I've implemented functions like between-time that takes 3 input values. another example is eq-hour that just checks if a

Re: JESS: Complex Event Processing

2011-03-14 Thread Peter Lin
I read the paper when it first came out. The arguments proposed in the paper are only applicable to rule engines that are object-oriented in design and not applicable to expert system shells like JESS, Clips or ART. The limitations are the result of the design of the rule engine and not a

Re: JESS: Re: calculating benefit costs

2011-01-09 Thread Peter Lin
In the interest of exploration and education, here's a few random thoughts. The approach wolfgang mentions is an old knowledge base technique. I like to use it for data that is constant-like. Things like code reference tables. One example of this is auto insurance rating. Many companies rate

Re: JESS: Hello To Jess User Group and How Is Jess Doing?

2011-01-02 Thread Peter Lin
edson is a member of drools team for those who don't know. On Sat, Jan 1, 2011 at 6:01 PM, dc tech dctech1...@gmail.com wrote: Thank's Edson. Will check it out. Drools seems to have come a long compared to when I last looked at it - given that you have a foot in both camps, any wisdom and

Re: JESS: inference / rule engine

2010-05-01 Thread Peter Lin
A production rule engine like JESS is an inference engine. Business process engine is not an inference engine A validation rule engine is not an inference engine A workflow engine is not an inference engine There's many definitions for rule engine and many vendors claim their bpm, workflow, or

Re: JESS: shadow facts which contains collections

2010-03-19 Thread Peter Lin
The only way to get around java collection limitations would be to use AspectJ and weave in java beans property change support. You'd have to assert each list to jess.rete. Not sure if that will work, but it's a thought. peter On Fri, Mar 19, 2010 at 8:31 AM, Ernest Friedman-Hill

Re: JESS: trying to write a jess telnet wrapper..

2009-10-05 Thread Peter Lin
Said and I did something similar to this several years back. What I did was I wrote a JMS client and passed messages between engine instances via JMS. I've been thinking about making that code available to others on my jess contrib project site. I'm happy to clean it up and post if others find it

Re: JESS: JESS for Complex Event Processing

2009-10-01 Thread Peter Lin
If I understand the rules correctly. the example is using a fact to define intervals. Doing it that way incurs a huge cost, since the engine has to retract the fact at the end of the time window. It would be more efficient to write a time function(s) and use them in the LHS. That avoids hammering

Re: JESS: assertion - exception out of memory

2009-09-30 Thread Peter Lin
you can use the match function to see the matches the other option is to calculate the average cost of the RETE network to get an estimated cost. peter On Wed, Sep 30, 2009 at 11:21 AM, jo etaoi...@yahoo.com wrote: Is there a way to coax some statistics out of jess to see the impact of

Re: JESS: Exception in thread main java.lang.OutOfMemoryError: Java heap space

2009-09-14 Thread Peter Lin
the simplest solution is to start JESS with the appropriate heap settings -Xms256m -Xmx1024m the default heap in java is 64mb peter On Mon, Sep 14, 2009 at 9:42 AM, jo etaoi...@yahoo.com wrote: Hi I got following error, which surprises me as I try to keep the amount of facts to a minimum.

JESS: RETE Topology Function for JESS

2009-09-04 Thread Peter Lin
free to email me directly. peter lin To unsubscribe, send the words 'unsubscribe jess-users y...@address.com' in the BODY of a message to majord...@sandia.gov, NOT to the list (use your own address!) List problems? Notify owner

Re: JESS: jess and IM

2009-06-19 Thread Peter Lin
that's pretty cool. I did something similar a few years back for a W3C demo using JMS to remotely execute rules in JESS peter On Fri, Jun 19, 2009 at 1:56 PM, Lorenzo Miguel Elguea Fernandezlelg...@up.edu.mx wrote: Hi, excuse my english... i have a proyect, to use services over instant

Re: JESS: No-loop issue

2009-05-28 Thread Peter Lin
This is just my bias opinion, but the bigger issue is this. Rule programming is logic programming. Therefore you need to think in those terms. What you need to do is check if the item is already in the box before firing the rule. That can be done with either TESTCE. The rule you have tells the

Re: JESS: JSR-94 and JessListener

2009-05-08 Thread Peter Lin
unfortunately, JSR94 is very limited and isn't worth the hassle. it's really there so that vendors can check off JSR94 from their list. JSR94 really has no value, so just use JESS API directly. peter 2009/5/8 Henschel, Jörg j.hensc...@itcampus.de: I'm trying to use Jess in a JSR-94

Re: JESS: JSR-94 and JessListener

2009-05-08 Thread Peter Lin
writing your own rule engine wrapper is simple, so that is definitely a better solution than using JSR94. I've done that several times since 2000. On Fri, May 8, 2009 at 9:59 AM, Wolfgang Laun wolfgang.l...@gmail.com wrote: Harsh words have been said about JSR-94, which I won't repeat here.

Re: JESS: changing facts in a fact file

2009-03-11 Thread Peter Lin
JESS simply loads the file and forgets about it. If you want to monitor a file, you'll have to do that yourself and then call clear and batch. If you don't want to reload the entire file, you'll have to maintain state and keep track of the last line and then only assert the new facts. why not

Re: JESS: changing facts in a fact file

2009-03-11 Thread Peter Lin
Instead of modifying the existing file, why not create a new file? that way you can just load each new file at the set interval? the other approach I've used in the past is to sent facts to JESS using JMS messaging peter On Wed, Mar 11, 2009 at 1:00 PM, Jason Morris jason.c.mor...@gmail.com

Re: JESS: Jess speed issue! Help please?

2009-02-19 Thread Peter Lin
If you're talking about dynamically loading rules at runtime and doing fuzzy reasoning. You'll find that using drools in compiled mode won't scale very well due to PermGen issues with SUN and IBM JDK. In a dynamic environment, the system could add tens of thousands of rules over a long period of

Re: JESS: Jess speed issue! Help please?

2009-02-18 Thread Peter Lin
A couple of important things to consider. By default drools uses compiled mode, which means it compiles code to pure java when the ruleset is loaded. To be fair, you'd have to run Drools in interpreted mode and force drools to use mvel to evaluate the mod test. the other option is to write a

Re: JESS: JESS Performace while emulating Event Stream Processing

2009-02-18 Thread Peter Lin
without a sample of the rules, it's difficult to know what is happening. peter On Wed, Feb 18, 2009 at 6:21 PM, Lars Ermert lar...@web.de wrote: Hello, i am currently writing a paper about the applicability of JESS as a Event Stream Processing Engine to evaluate its usefulness as a solution

Re: JESS: Performance

2008-11-17 Thread Peter Lin
without seeing an example of the rules, it's hard to know what is going on. if you provide an example, it will be easier for others to provide tips peter On Mon, Nov 17, 2008 at 3:53 AM, Jessica Kampmann [EMAIL PROTECTED] wrote: Dear all, i have performance problems asserting 11000 Facts in

Re: JESS: Preferred rules formulation using NOT CE

2008-11-17 Thread Peter Lin
I haven't tried running the rules, but the second format doesn't mean the same thing as the first format. normally, if I start a rule with a NOT CE, I have it match against a literal value. Having a NOT CE that declares a binding isn't really valid, if I'm not mistaken. peter On Mon, Nov 17,

Re: JESS: multilevel backward chaining

2008-08-26 Thread Peter Lin
what about implementing the approach Paul Haley used in ART for backward chaining? http://haleyai.com/wordpress/2008/03/11/goals-and-backward-chaining-using-the-rete-algorithm/ paul recently posted his old paper on his blog. peter On Tue, Aug 26, 2008 at 12:40 PM, Ernest Friedman-Hill [EMAIL

Re: JESS: functions as values and calling them

2008-08-24 Thread Peter Lin
if I understand what you're trying to do, you will need to use method cal in the test pattern like the catch is function-fact.func needs to return boolean true/false if you want to use it in the LHS. peter On Thu, Aug 14, 2008 at 11:23 AM, Hal Hildebrand [EMAIL PROTECTED] wrote: I would like

Re: JESS: Modal logic in Jess

2008-08-07 Thread Peter Lin
I'm not aware of any that came close. I don't know if anyone tried to extend JESS for modal logic. If you want to discuss this further, feel free to email me directly. peter On Thu, Aug 7, 2008 at 5:07 AM, Martijn Tromm [EMAIL PROTECTED] wrote: Thanks for you answer and sorry for my late

Re: JESS: Modal logic in Jess

2008-07-29 Thread Peter Lin
by modal operators, what do you mean? Do you mean modal logic? http://en.wikipedia.org/wiki/Modal_logic Are you looking for temporal logic support, or modal logic support. I'm not an expert on modal logic, but many people have tried to implement a general purpose modal logic engine. to my

Re: JESS: using annotations

2008-07-17 Thread Peter Lin
The idea of adding annotations for JESS goes back several years, so I don't think anyone questions the value of using it. The question is really about backward compatability for those stuck with jdk1.4.2. a few years back I ported JESS to .NET and added support for attributes, which is the .NET

Re: JESS: using annotations

2008-07-16 Thread Peter Lin
using annotation isn't hard. The only issue is backward compatability for those stuck using IBM jdk 1.4. even with things like backport, it may still leave some people out. I know several people still stuck on IBM jdk1.4. peter On Tue, Jul 15, 2008 at 11:54 PM, Skeptic 2000 [EMAIL PROTECTED]

Re: JESS: Slot name restrictions

2008-07-14 Thread Peter Lin
I could be wrong, but the restriction is needed because of the java dot notation functionality. http://www.jessrules.com/jess/docs/71/rules.html#patterns_simple Jess (defrule two-same-age-different-name ?person1 - (person) ?person2 - (person {age == person1.age lastName !=

Re: JESS: Slot name restrictions

2008-07-14 Thread Peter Lin
- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Peter Lin Sent: Monday, July 14, 2008 12:43 PM To: jess-users@sandia.gov Subject: Re: JESS: Slot name restrictions I could be wrong, but the restriction is needed because of the java dot notation functionality. http

Re: JESS: Modifying a fact from the current activation

2008-07-08 Thread Peter Lin
In the past, what I've done is have a generic function, which logs which rule + facts fired. In my case, the business user writes/edits rules through a custom rule editor. I wrote a rule compiler to compile the business rules to executable JESS rules. When I generate the rule, every action calls

Re: JESS: A question of optimisation

2008-07-02 Thread Peter Lin
the example confuses me a bit. If I had to do the same thing the rule might look like this. (defrule assignBed ?patient - (patient (id ?p) (unit ?u) (bed ?b:(eq ?b 0) ) ;; if the patient hasn't been assinged. assuming unassigned is zero ) (care-unit (id

Re: JESS: NRL for Jess

2008-06-25 Thread Peter Lin
. peter On Wed, Jun 25, 2008 at 1:50 AM, Michael Smith [EMAIL PROTECTED] wrote: On Jun 24, 2008, at 8:53 AM, Peter Lin wrote: I'm going to disagree that NRL is an anti-pattern. OK. It all depends on how you use it. Agreed... though since I having a tendency to be querolous, I'd change how

Re: JESS: NRL for Jess

2008-06-24 Thread Peter Lin
I'm going to disagree that NRL is an anti-pattern. It all depends on how you use it. I've successfully designed and built custom business rule languages in the past. The key is keeping the domain well defined and narrow. Don't try to make a DSL that is a general purpose language. For example, say

Re: JESS: NRL for Jess

2008-06-23 Thread Peter Lin
I've done this before using a custom domain specific language. What I did was define a syntax and grammar for a business rule language, which was then compiled and stored as RuleML. At execution time, I translated the RuleML to JESS clips. in terms of storage, the rules were stored in the dsl

Re: JESS: Optimization Problem Solving with Jess

2008-06-20 Thread Peter Lin
the solution looks pretty pretty straight forward. it could probably be generalized to allow for n number of lathes. peter On Fri, Jun 20, 2008 at 3:02 AM, Jason Morris [EMAIL PROTECTED] wrote: Hi All, Peter Lin sent me a manual for Xpress-MP (a Fair Isaac product), since we'd been

Re: JESS: Optimization Problem Solving with Jess

2008-06-20 Thread Peter Lin
is different, and you have to choose which machines to operate and for how long and / or which workers to assign to which machines. All in all, I was pretty happy with my solution :-) On Fri, Jun 20, 2008 at 8:55 AM, Peter Lin [EMAIL PROTECTED] wrote: the solution looks pretty pretty straight forward

Re: JESS: [Jess] Visual programming.

2008-05-28 Thread Peter Lin
Here's my 2 cents on visual rule programming. Building a visual programming tool for rules is feasible, but it depends on the scope. Take lego mindstorm for example. It uses icons to denote an action or sensor, when the program is load on the mindstorm control, it's converted to executable code.

Re: JESS: DJESS

2008-02-20 Thread Peter Lin
that's one of the performance limitations with full fact replication approach for distributed pattern matching. In a situation where a significant percent of the facts always change, the most optimal method is to replicate just the indexes. Most modern RETE implementation like JESS already index

Re: JESS: DJESS

2008-02-20 Thread Peter Lin
mnoor On Wed, Feb 20, 2008 at 2:43 PM, Peter Lin [EMAIL PROTECTED] wrote: that's one of the performance limitations with full fact replication approach for distributed pattern matching. In a situation where a significant percent of the facts always change, the most optimal method

Re: JESS: Matching on multi-slot length

2008-02-20 Thread Peter Lin
sounds like the rule is handling join/fork from a BPM graph? On Feb 20, 2008 10:24 AM, Hal Hildebrand [EMAIL PROTECTED] wrote: I only posted an abstraction to figure out my problem, leaving out the other details. What I'm doing is essentially modeling workflow which manages to some target

Re: JESS: Matching on multi-slot length

2008-02-19 Thread Peter Lin
I believe you need to use (length$ multifield-expression) and then do a test to compare the two lengths. so the rule might look like this (defrule myrule (foo (my-list ?list1) ) (foo (my-list ?list2) ) (test (eq (length$ ?list1) (length$ ?list2) ) ) =

Re: JESS: Distributed Jess Engine?

2008-02-06 Thread Peter Lin
In theory it is possible to build a distributed RETE rule engine. The catch is no rule engine today supports that capability. I filed a patent for it back in 2003/2004. anyone interested in details can email me directly. peter lin On Feb 6, 2008 11:57 AM, Mohd. Noor [EMAIL PROTECTED] wrote: Hi

Re: JESS: Accelerator Doc

2005-06-22 Thread Peter Lin
What I tend to do is to write a specific function to handle cases where a rule uses numerous nested functions. This way, it's reusable and avoid using the accelerator. On 6/22/05, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: I think Negoita, Cristian wrote: Hi *, I'm considering

Re: JESS: jess and JDBC

2005-03-02 Thread Peter Lin
you really should write a function to do this and make it more generic. doing a line for line translation from java to JESS isn't desirable. write a custom function that implements the UserFunction interface and put your jdbc code in there. peter On Wed, 2 Mar 2005 05:45:25 -0800 (PST), sivan

Re: JESS: medical ES

2005-01-12 Thread Peter Lin
You may want to contact the computer science department at UMass Amherst. I know the CKC group work on a similar tool for emergency rooms using rule engines. If I remember correctly, they used rule engines to recommend potential treatments and help diagnose patients. The project was a

Re: JESS: Jess on the server side - how many engines/data sharing/threading? * Newbie Alert*

2004-12-14 Thread Peter Lin
, load up 20 engines and measure how much RAM it takes. Then stress test it under varying loads. Once I get a base line of how my rules + JESS perform, I then do a real application test and see what is realistic. peter lin On Tue, 14 Dec 2004 14:13:31 -0800 (PST), [EMAIL PROTECTED] [EMAIL PROTECTED

RE: JESS: RE: Jess and C#

2002-12-31 Thread Peter Lin
final and a couple others are minor. peter -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Tuesday, December 31, 2002 10:24 AM To: [EMAIL PROTECTED] Subject: Re: JESS: RE: Jess and C# I think Peter Lin wrote: [Charset iso-8859-1 unsupported, filtering to ASCII