Hi Jason,

Please bear in mind that the following is a "thinking out loud" exercise.

Given that we want to use a rule engine as a main component, we would
(probably) need to use

different rules engineering approach

 (1) to determine which objects the rule in question is matching on.

 (2) and use Java reflection to list the object methods used for the
predicates.

 (3) then retrieve from within some repository all the objects that fit  (1)
and (2),
  and assert them into working memory.

For (1), if we use a class-based approach to encapsulate the rule logic,
i.e., the conditional

tests being performed on the different objects, then we could certainly
identify the objects

being tested.

For (2), Java reflection on the objects being tested in (1) would give us a
list of the methods

used for the predicates, what parameters are supplied to them and their
potential values. The

values give us a range of cases to look for that are "testable" by the given
rules. Ironically,

rules that are written in a parameterized manner do NOT have this
limitation - the rules are NOT

hardcoded with specific test values and they can be supplied with almost any
parameter values

that you want. In this case, the parameter "specifications" that the rules
match on have to be

examined to determine actual values.

For (3), we would want to find within the repository all the (data) objects
that are "testable"

and assert them into working memory. Obviously, we could bring back a set of
objects with a wide

range of values, but since the goal is to find "something close" this is all
right. And,

different combinations of objects represent different cases.

Last, but not least, remains the problem of trying to (dynamically) modify
the rule in hopes of

getting a hit by the rule matching some case. A combination of class-based
rule programming with

parameterized rules would give us this capability.

At some point in the future, I'm going to look at Aspect-oriented
programming again to see where

the dynamic modification (for class-based rules) fits in.

Thanks,

Rich Halsey

----- Original Message -----
From: "Jason Morris" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, February 27, 2004 6:04 PM
Subject: RE: JESS: Case Based Reasoning with Rules


> Hi Rich,
>
> Hybrid (case-based/rule-based) systems are an absolutely fascinating
> concept, and I have been wondering about their implications and
> possibilities for some time also.
>
> My original interest in expert systems came by way of involvement in
> developing online performance-support tools for mid-range, computer-aided
> design software.  My though was:  Why can't CAD software really help an
> engineer do "engineering" while he or she is creating geometry.  Right
now,
> CAD tools are reaching a feature-functionality parity where they basically
> do all the same things inside the same performance envelope.  I was
looking
> for innovative product differentiators, and I saw an opportunity to add
real
> design intelligence to the tools.
>
> As an example, picture a CAD tool that could:
>
> []  Interactively and in real-time monitor your geometry creation and
point
> out potential stress concentrations, point out violations of ASME  or
> company standards, or other conflicts with other design constraints not
> related to geometry.
>
> [] Apply "design patterns" from existing designs or "best-practices" (use
> cases), or compare geometry creation intent to standard
> design-for-manufacturing (DFM) or design-for-assembly (DFA) principles to
> catch problems before they occur, or deduce a best design approach given
> company standards and methods (use rules).
>
> Does this sound too far fetched?  I didn't think so then... and with tools
> like Jess and FuzzyJess, I certainly don't now.  Is it a big undertaking?
> Without question!  I have no illusions about how huge this would be to do.
>
> Management will always say, "That's cool, but what's the business case?
> What customer problem are you trying to solve?"  I think that one could
> claim that such a system, by folding actual engineering knowledge into the
> geometry creation process and leveraging accumulated corporate knowledge,
> would:
>
> * Reduce time-to-market by collapsing the overall time to design and
> prototype a viable system (promote design reuse).
> * Reduce manufacturing and assembly costs by catching conflicts before
they
> hit the production floor.
> * Push risky processes further up the development process where they can
be
> caught and eliminated quickly before they cause problems down-stream.
>
> Given the esoteric and very non-conventional nature of the proposal,
> convincing management about the ROI enough that it ever got funded as a
> project was impossible.  I hate to accuse management of being
narrow-minded,
> but as in most industries, there are long-established ways of doing things
> in CAD, and the powers that be were (and are) loath to deviate from
> following them.
>
> So, at the time, I didn't have the programming or knowledge engineering
> experience to even prototype such a system, but now I do.  I'd give my
> eye-teeth to work on such a project!  I'd be very interested to hear your
> further thoughts as well as anyone else's on the general hybrid subject.
>
> Q. What companies are applying hybrid systems to mechanical design?  Does
> anyone have some examples?
>
> BTW - thanks for all your replies on other threads so far.
>
> -JM
> ------
> Jason Morris
> Morris Technical Solutions
> [EMAIL PROTECTED]
> www.morristechnicalsolutions.com
> fax/phone: 503.692.1088
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Behalf Of Rich Halsey
> Sent: Friday, February 27, 2004 8:51 AM
> To: [EMAIL PROTECTED]
> Subject: JESS: Case Based Reasoning with Rules
>
>
> Hi All,
>
> I have been thinking about Case Based Reasoning (CBR) and it would seem
that
> if a rule-based system could (1) determine which objects it was matching
on,
> (2) use Java reflection to list the object methods used for the
predicates,
> and (3) retrieve within some repository all the objects that fit  (1) and
> (2)  and assert them into working memory, then CBR would be a natural
> extension of a rule-based system.
>
> Any thoughts ??
>
> Rich Halsey
>
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> (use your own address!) List problems? Notify [EMAIL PROTECTED]
> --------------------------------------------------------------------
>

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to