Comments Requested: Ideas on storing Drools Knowledge: The argument for JIRA as a knowledge store as well
by Premkumar Stephen
Hello all,
As a new user to Drools, I have been frustrated often and unable to find
much information. Below is an IM session where a couple of us discuss what
is missing and how we can fix it?
A lot of knowledge imparted in the IRC channels does not get recorded. I
believe it is the same with the mailing lists. They contain a lot of code
samples and fixes to them.
We also could utilize http://drools.pastebin.com/ for our code samples that
do not need persistence.
I would like to hear from the members ( and most importantly) from the core
group on what they think of this. Since they are meeting together anyways, I
hope that this is one of the discussions they have over beer.
==============================================================
mallen: Calling all BRMS / Guvnor experts! Does anyone know how to upload
multiple (50+) rules packages in one go? either through the web interface or
perhaps even programatically so we could knock a maven task together for it?
[06:05am] krisv left the chat room. (Ping timeout)
[06:06am] wheter_: mallen: I will be interested in such a solution as well?
jarek, can we start open JIRAs for such knowledge sharing too. If you ( or
others) update the JIRA, this will be more visible. there is a lot of stuff
that is posted on this IRC channel that just goes away. How about a JIRA
category called "FAQ" or "Knowledge sharing"? Will it pollute the JIRA
process?
[06:08am] wheter_: The nice thing would be that as bugs are fixed and
workarounds are found, they could be moved to the "FAQ" category as well so
that others who get the same problems can search and find it there
[06:08am] bjornelo: sounds like something that belongs on a wiki or
something else that isn't an issue tracker
[06:08am] wheter_: right, but see the state of our wiki
[06:08am] bjornelo: it's empty, afaik
[06:09am] wheter_: bjornelo: people will not go and update the wiki after
something is posted/a solution is found
[06:09am] wheter_: mostly
[06:09am] wheter_: we need to make the process easier and as automated as
possible
[06:09am] bjornelo: but people will go and update JIRA?
[06:10am] wheter_: In this idea, the conversation itself is tracked and no
further updates are needed.
[06:11am] wheter_: No, mallen has to create a JIRA and bring that to the
attention of the IRC folks bjornelo. When you have a solution, instead of
typing it into the chat channel, you update the JIRA and the conversation
should continue there for subjects that are really useful
[06:12am] bjornelo: aha
[06:12am] wheter_: bjornelo, if i was not around at this time, I would not
have known that there are others like mallen who are interested in this
solution
[06:12am] wheter_: some conversation does belong here in IRC but for example
see how me and Jaroslaw (jarek) communicated in GUVNOR-353
[06:12am] jarek: wheter_: sounds like a 'feature request' - which can be
also created in jira (besides bugs and tasks); however I wouldn't use jira
as a FAQ/wiki
[06:12am] bjornelo: what mallen posted sounds to me like what should be a
feature request on JIRA
[06:13am] wheter_: we used both the IRC and JIRA
[06:13am] wheter_: I beleive now that GUVNOR-353 is very well documented
[06:13am] wheter_: bjornelo: I suggest lets give it a try
[06:14am] wheter_: If it looks too bad, you can always blow it away
[06:15am] wheter_: bjornelo: I agree; but someone might post such a solution
on IRC, and this knowledge just goes away
[06:15am] bjornelo: i'm not trying to be adversarial. i want to see a more
structured source of information about drools as much as the next guy. i'm
just not sure JIRA is the place to put it
[06:15am] wheter_: I am suggesting a way to steadily improve our knowledge
collection
[06:16am] wheter_: bjornelo: the wiki is an awesome idea but needs effort.
The JIRA i believe is the current best way to go about it. I am going to
take this conversation of ours and post in the dev mailing list to see how
others think about it
[06:16am] bjornelo: how about if there's an interesting thread of
conversation on IRC, we create a new page on the drools wiki and paste in
the conversation there? then give it a headline that describes the subject.
link to it from some index of informal rule engine conversations?
[06:16am] wheter_: yes bjornelo; but see, it requires an active action; how
many people follow up
[06:17am] wheter_: the devs are so busy
[06:17am] bjornelo: then, if someone wants to formalize and clean up the
information in the conversation, that person can edit the page or create a
replacement
[06:17am] wheter_: the rest of the users have their own problems
[06:17am] bjornelo: how do you plan to avoid an active action for posting
stuff on JIRA? if nothing else, the registering process for jboss community
is a PITA
[06:18am] wheter_: i have GUVNOR-353 resolved, but do you think I am going
to take the time to load it into the wiki right now? My immediate problem is
over and I am looking to solve my next one
[06:18am] bjornelo: i suppose we could have an irc bot in here that we could
send triggers to that would autogenerate something on a webpage.. how does
bash.org work, for example?
[06:18am] wheter_: bjornelo, it really is one time, and your argument is
defeated, since you update the wiki, you need to register too
[06:19am] bjornelo: hmmm
[06:19am] wheter_: bjornelo: I am not familiar with IRC bots' capability
[06:20am] wheter_: reg. your comment about structured source of information,
I think the JIRA is highly structured
[06:20am] wheter_: since it has its own category, it will not come in the
way of developers looking for bugs to fix or feature requests
[06:20am] wheter_: and we can cross-link FAQs to other bugs / feature
requests
[06:21am] bjornelo: difficult to search through, though. i guess if you
could have a category of 'issues' that are just knowledge exchange, it would
be easier to find, but that would also require someone opening a new issue
or something
[06:22am] wheter_: that is what I suggested at the very beginning
[06:22am] wheter_: a new category like "bug" or "feature request"
[06:22am] wheter_: it really is not hard..JIRA also allows you to put in the
version of drools it is eligible for
[06:23am] wheter_: i believe the JIRA has more structure for adding
information that the wiki does ( in the wiki, you need to enter everything
manually)
[06:23am] wheter_: you can search better on a JIRA
[06:23am] bjornelo: so you mean that the devs should look at the comments on
the issue and move it to a 'knowledge' category when they solve the issue,
if they feel that it's an interesting topic?
[06:24am] wheter_: now, maybe the search engines might not index it.
[06:24am] wheter_: bjornelo: Agreed
[06:24am] wheter_: yes
[06:24am] wheter_: see my comments above on that
[06:24am] wheter_: me, being new to Drools am really stuck and could use the
wide body of information
[06:25am] wheter_: this also frees up the devs, since people do not come
back asking for the same issue
[06:26am] bjornelo: i'd suggest that this new category is another type of
'unresolved' or something, signalling that the information contained in the
issues is stuff that needs to be structured and moved into some kind of
documentation. be it either wiki or the manual or whatever else
[06:26am] bjornelo: 'due for documentation' or something
[06:26am] wheter_: To integrate the wiki with the JIRA, we could categorize
knowledge based on subcomponents, like Guvnor, Core, Solver, Chance etc in
wiki, under that the wiki should have different FAQs and then under that, a
link to the JIRA in question
[06:27am] wheter_: bjornelo: documentation that is pushed off for later,
especially for minor things, in my experience does not happen...it does not
have the urgency and in open source projects, people participate for the
urgency
[06:28am] bjornelo: true, but in that case it would still be available on
jira. the category is just named slightly differently
[06:28am] wheter_: I can start off on the initial integration of the wiki
and JIRA if conan and the rest of the folks ok it..my small bit for the
community
[06:29am] wheter_: right - so information is available from wiki, but in a
very structure format...
[06:29am] bjornelo: i think of it a bit like forums online. if you want to
find some old piece of information, you often have to go digging through 20+
pages of old threads to find what you're looking for. and often it's hiding
in a thread that isn't really relevant to what you're looking for
[06:29am] wheter_: also, people can add to that body of knowledge in the
JIRA as well
[06:30am] wheter_: right, but the main info can be summarized and put on the
wiki, if someone will do it, with a link to the JIRA
[06:30am] wheter_: bjornelo: very few JIRAs run like comment threads
[06:30am] bjornelo: i'm picturing a bunch of JIRA issues containing irc
convos and other interesting bits of information. the issues are 'open' in
the sense that they are waiting for someone to pick them up and write an
article or whatever about it and stick it on the wiki. if and when they do,
they close the corresponding JIRA issue, since the wiki now has structured
information to replace it
[06:31am] wheter_: I agree, if the wiki has captured all this information,
then this JIRA can be moved to a closed state, but the link still kept
[06:31am] bjornelo: and the wiki could be divided into expert, guvnor, flow
etc. each headlined with a link to the corresponding list of open JIRA
issues
[06:32am] wheter_: now, we are echoing each other
[06:32am] bjornelo: so, the user starts by looking at the wiki. if the
information is not found there, the user follows the link to the JIRA issue
list and can look further
[06:32am] wheter_: agree
[06:32am] bjornelo: yep
[06:32am] wheter_: Here's what I am going to do
[06:32am] bjornelo: now we just need someone to implement it
[06:33am] wheter_: I am going to send a mail to the mailing lists with our
chat conversation out there, and see the responses to it, specifically from
the core team.
[06:33am] wheter_: bjornelo: are you core?
[06:33am] bjornelo: not at all. relatively newbie user
[06:33am] wheter_: well, we are doing our bit I guess
[06:34am] bjornelo: i'll be quite interested in seeing responses to this
[06:34am] wheter_: the funny part is we buried mallen's question and no one
will see it now
[06:34am] wheter_: sorry mallen
[06:34am] bjornelo: lemme just do this, then.
[06:34am] bjornelo: 12:04 < mallen> Calling all BRMS / Guvnor experts! Does
anyone know how to upload multiple (50+) rules packages in one go? either
through the web interface or perhaps even programatically so we could knock
a maven task together for it?
==============================================================
Regards,
Prem
16 years, 9 months
Default rule
by Malenfant, Andre
Anyone knows if it is possible to have a `default` rule that would fire only if others have not?
Also, is there a way, using decision tables in XLS, to look if the value of a field is contained in a list elsewhere in the XLS?
Thanks
André
16 years, 9 months
Re: [rules-users] Why are MVEL rules compiled on first access?
by Greg Barton
If I recall correctly the HashMap churn issue I pointed out with mvel on the dev list was due to mvel expressions being repeatedly compiled. I'll have to double check, but if that's the case and it can be avoided it would be awesome. :)
--- On Thu, 6/4/09, Edson Tirelli <tirelli(a)post.com> wrote:
> From: Edson Tirelli <tirelli(a)post.com>
> Subject: Re: [rules-users] Why are MVEL rules compiled on first access?
> To: "Rules Users List" <rules-users(a)lists.jboss.org>
> Date: Thursday, June 4, 2009, 1:40 PM
>
> Sobhana,
>
> This is very important feedback. Would you be able to
> create an isolated test case showing this problem? This
> would be the quickest way for us to fix it.
>
> On a related note, everything should be compiled at
> compile time, including MVEL stuff. If that is not
> happening, we need to check what mvel is doing internally.
>
>
> Thanks,
> Edson
>
> 2009/6/4 Sobhana <sobhanarich(a)yahoo.com>
>
>
>
> hi,
>
>
>
> Our application uses Drools 4.0.7 and Hibernate 3.x. We use
> the BRMS to
>
> compile the rules from drl files (using java dialect) into
> rule packages
>
> which are updated into the rule base using the rule agent.
>
>
>
> We have seen that MVEL rules are compiled when the rules
> are fired for the
>
> first time. If the fact passed at the first run contains a
> Hibernate proxy
>
> (subclass of the original object) and we later re-use the
> compiled rule on
>
> the fact containing the original object, we get a
> ClassCastException.
>
> However, if we pass the fact containing the original object
> in the first
>
> run, there is no problem for further runs.
>
>
>
> Why are the rules not compiled when we create the package
> using the BRMS?
>
> How can we enable precompilation so that the type is taken
> as the original
>
> object itself?
>
>
>
> Thanks,
>
> Sobhana
>
>
>
> --
>
> View this message in context: http://www.nabble.com/Why-are-MVEL-rules-compiled-on-first-access--tp2387...
>
>
> Sent from the drools - user mailing list archive at
> Nabble.com.
>
>
>
> _______________________________________________
>
> rules-users mailing list
>
> rules-users(a)lists.jboss.org
>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
> JBoss, a division of Red Hat @ www.jboss.com
>
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
16 years, 9 months
Why are MVEL rules compiled on first access?
by Sobhana
hi,
Our application uses Drools 4.0.7 and Hibernate 3.x. We use the BRMS to
compile the rules from drl files (using java dialect) into rule packages
which are updated into the rule base using the rule agent.
We have seen that MVEL rules are compiled when the rules are fired for the
first time. If the fact passed at the first run contains a Hibernate proxy
(subclass of the original object) and we later re-use the compiled rule on
the fact containing the original object, we get a ClassCastException.
However, if we pass the fact containing the original object in the first
run, there is no problem for further runs.
Why are the rules not compiled when we create the package using the BRMS?
How can we enable precompilation so that the type is taken as the original
object itself?
Thanks,
Sobhana
--
View this message in context: http://www.nabble.com/Why-are-MVEL-rules-compiled-on-first-access--tp2387...
Sent from the drools - user mailing list archive at Nabble.com.
16 years, 9 months
RE: questions on guvnor and drools 5.0
by Garner, Shawn
Sorry it's been a few days and I haven't gotten any response on any questions/statements below.
I've used drools in the past but am pretty new to some features of drools still and new to Guvnor. I wrote a proof of concept drools/Guvnor app and these are the things I don't like or have questions around.
I was wondering if other people have the same problems or am I going about things wrong? Are there work arounds or is there plans to expand/change functionality? Maybe I should ask the dev list?
SG
-----Original Message-----
From: G, S
Sent: Monday, June 01, 2009 3:28 PM
To: 'rules-users(a)lists.jboss.org'
Subject: questions on guvnor and drools 5.0
I was wondering if somebody can help me with some questions:
1) Is there any more detail on how to setup Guvnor with a database?
2) How do you use the test scenarios with complex object structures?
-eg Create a fact in working memory that has another Object in it which in turn has a list of Objects in it.
-Seems like any Fact in working memory is assumed to only have only primitive values like Strings or numbers.
-We would like a more depth of objects where objects have a deep relationship to other objects at least 2-4 levels deep.
3) Why add ruleflow-group to the rule definition instead of adding the rule to a ruleflow-group? If the ruleflow-group is part of the rule then you can't use the same rule in multiple ruleflow-groups and leads to copy and maintaining the rule in two different spots.
4) DSL seems to be very inconvenient to edit in a text box especially when it wraps. Why not a table where you can add rows and each row is a translation. Also there are no examples how to do translation into Drools syntax that is multiple lines long and not just a single line.
5) Is Java 5 Type Enumerations supported? I was assuming I'd get a list of values if a field was an Enumeration.
6) There seems to be a vast functionality difference between the Guvnor decision tables and examples that use spreadsheets.
7) Guvnor lost the ability to select variables for use in other statements. Functionality was in BRMS of drools 4.0.7
8) I was not able to insert a fact using a constructor that needed parameter values. Seems like it assumes everything is a bean but I couldn't find this requirement stated in the documentation anywhere. Examples in documentation show inserting facts with constructor parameters.
9) It would be nice when you upload a domain model jar that you could explore the objects and fields somehow.
10) When you write a rule using one particular editor it would be nice if you could switch to another editor. Switch between Guided, DSL, Technical, etc.
11) It seems hard to reorder the statements in a when or then block. If I put them in the wrong order I have to delete them all. Would be nice if a statement could be moved up or down.
12) When calling a method on an object the choices only showed me public methods that take in one parameter. I had a method with two parameters and it wouldn't show me the method. I had to do a DSL or custom drools statement to get around it.
13) Guvnor seems to limit the drools syntax. I couldn't do a "from $collection" statement without a custom drools statement line.
14) It would be nice if I could declare a global dialect "java" for all the rules.
15) It would be nice to define an existing agenda-group as part of a ruleflow-group without adding the ruleflow-group on the rules in that agenda-group.
Thanks,
SG
-----Message Disclaimer-----
This e-mail message is intended only for the use of the individual or
entity to which it is addressed, and may contain information that is
privileged, confidential and exempt from disclosure under applicable law.
If you are not the intended recipient, any dissemination, distribution or
copying of this communication is strictly prohibited. If you have
received this communication in error, please notify us immediately by
reply email to Connect(a)principal.com and delete or destroy all copies of
the original message and attachments thereto. Email sent to or from the
Principal Financial Group or any of its member companies may be retained
as required by law or regulation.
Nothing in this message is intended to constitute an Electronic signature
for purposes of the Uniform Electronic Transactions Act (UETA) or the
Electronic Signatures in Global and National Commerce Act ("E-Sign")
unless a specific statement to the contrary is included in this message.
While this communication may be used to promote or market a transaction
or an idea that is discussed in the publication, it is intended to provide
general information about the subject matter covered and is provided with
the understanding that The Principal is not rendering legal, accounting,
or tax advice. It is not a marketed opinion and may not be used to avoid
penalties under the Internal Revenue Code. You should consult with
appropriate counsel or other advisors on all matters pertaining to legal,
tax, or accounting obligations and requirements.
16 years, 9 months
Help creating a GUI for an example
by Edson Tirelli
Hey people,
To achieve a list of short term goals related to Drools, I am
implementing a fairly interesting new example using as many features from
the Drools 5 platform as I see fit. Among other things, this example will
serve as a basis for a few tutorials on the engine capabilities that I want
to create.
To keep the example accessible to everyone, and at the same time keeping
things a bit more fun, I dropped the idea of developing a business
application and decided to go with a board game implementation, so that at
the same time it is easy enough for people to understand but complex enough
to demonstrate the engine features. At this point, I have a bit more than 50
rules already implemented for this example, it uses drools flow, custom
evaluators and custom accumulate functions. I will still add work items, DSL
and fusion features. In the end, I estimate the example will have between
120 and 150 rules, what is pretty decent for an example, I think.
Anyway, digressions aside, I could really use some help from someone
willing to develop a GUI for it. The GUI is basically a diamond shaped board
(or a square board with a 45 degrees rotation, if you prefer), 18 square
pieces and 18 cards. I have images for most of the components, but you are
free to create new if you fancy. The game will be played by 2 AI players,
against each other, so there is no need for user commands on the game
itself. Instead, the user should be able to control the game pace (i.e., see
the game move-by-move, slow or fast-forward).
The game already works from start to end, although players are still in
the Artificial Dumbness state (they will move to Artificial Intelligence in
the future). So, if anyone is willing to help, we can start plugging in the
GUI asap. Please send me a private mail and I will send you the details.
Thanks,
Edson
--
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @ www.jboss.com
16 years, 9 months
Using StatelessSession session
by Meny Kobel
Hi,
I have a number of services(threads) sharing the same RuleBase instance.
Each service is calling execute method and waiting for the results.
should each service call StatelessSession session =
ruleBase.newStatelessSession() Or I can create one StatelessSession and
share it between the services (probably will improve performance)?
Meny
16 years, 9 months
Is there a doc on Guvnor's JCR layout ?
by uglything
Hie everyone.
I'm trying to use Drools 5 with Guvnor.
But I'm trying to create a simplified Guvnor-like application tied down to
what my particular domain problem is. That is, I'm not going to author my
rules myself. I'd rather let that to my end-user whose knowledge upon rules
processing is even far from poor...
Nevertheless, I'm willing to keep the JCR idea, and I'm striving to produce
a repository 100% compatible with Guvnor so I can pick up here and then some
functionalities out of Guvnor into my application in a straightforward way.
I looked deeply into the Guvnor JCR as well as Guvnor src and I think I have
a quite good understanding of what it does. But I don't want to miss
anything that could break the compatibility.
So is there a detailed documentation on the Guvnor JCR and if so where to
grab it ?
Thanks in advance for any hint !
--
View this message in context: http://www.nabble.com/Is-there-a-doc-on-Guvnor%27s-JCR-layout---tp2386993...
Sent from the drools - user mailing list archive at Nabble.com.
16 years, 9 months