You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
(13) |
Mar
(24) |
Apr
(40) |
May
(25) |
Jun
(62) |
Jul
(1) |
Aug
(4) |
Sep
(7) |
Oct
(8) |
Nov
(4) |
Dec
(4) |
2004 |
Jan
(27) |
Feb
(18) |
Mar
(4) |
Apr
(14) |
May
(17) |
Jun
(10) |
Jul
(20) |
Aug
(16) |
Sep
(23) |
Oct
(26) |
Nov
(8) |
Dec
(13) |
2005 |
Jan
(10) |
Feb
(5) |
Mar
(9) |
Apr
(2) |
May
(13) |
Jun
(13) |
Jul
(10) |
Aug
(6) |
Sep
|
Oct
(5) |
Nov
(4) |
Dec
(2) |
2006 |
Jan
(11) |
Feb
(4) |
Mar
(5) |
Apr
(1) |
May
|
Jun
(2) |
Jul
(5) |
Aug
(1) |
Sep
(3) |
Oct
(17) |
Nov
(23) |
Dec
(21) |
2007 |
Jan
(25) |
Feb
(21) |
Mar
(16) |
Apr
(21) |
May
(8) |
Jun
(10) |
Jul
(9) |
Aug
(7) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(3) |
Nov
(4) |
Dec
|
2009 |
Jan
(5) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2010 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2011 |
Jan
(2) |
Feb
(2) |
Mar
(1) |
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Robert S. <rob...@ho...> - 2003-03-03 17:59:51
|
At this point, just understand how Mandarax works. I am clumsily trying to point out that you are chaining rule 3 to rule 1 since the fact of rule 1 is the prerequisite of rule 3. I personal think it is reads easier, or is easier to learn from if you say //RULE 1 IF spending (<a customer>, greater 200) THEN resultOfRule1 //RULE3 IF resultOfRule1 THEN discount=12.5 My real question is you are chaining rules together. In this case IF rule1 true then rule3 is true... Right? The output of one rule can be feed into another rule. ----- Original Message ----- From: "Jochen Hiller" <joc...@ba...> To: "Robert Searle" <rob...@ho...> Cc: <man...@li...> Sent: Monday, March 03, 2003 12:47 PM Subject: RE: [Mandarax-user] Do I understand this example crm rule found in KBServer > > Sorry I should have named prereq1 > > final Prerequisite prereq1 = prereq ( > > something better like resultOfRule1... > > > > > So, I think rule3 says > > > if rule1 is true do fact3 > > > Do my changes make sense? > > > > > > Robert > > > The effect is as you described, but I would name if better: > > IF category (<a customer>, Category.PLATINUM) > THEN getsDiscount (<a customer>, 12.5%) > > Try to use the toString () Method of fact, rule etc, which gives you a > readable description. > > Can you describe, what you want to do with Mandarax ? That could help to > understand your questions better. > > Bye, Jochen > > > > > > > > ////////////////////////////////////////////////////////////////// > > ////////// > > > ////// > > > //since Prerequisite extends Fact > > > final Prerequisite prereq1 = prereq ( > > > /* > > > * Get the "customer is in a certain category" predicate > > > * @return a predicate > > > */ > > > //private static Predicate getPredicateHasCategory() { > > > //using public static Category getCategory(String > > > description) { > > > getPredicateHasCategory (), > > > c, //Customer class > > > DB.getCategory (Category.PLATINUM) //Category class > > > ); > > > > > > > > > > > > > > > > > > final Rule rule1 = > > > rule ( > > > //"if the turnover of a customer > > > // in the last 12 months and payed with COMPANY VISA > > > // is greater than 200.00 > > > prereq ( > > > DoubleArithmetic.GREATER_THAN, > > > cplx ( > > > /* > > > * Get the turnover in the last numberOfMonth > > > * using the kind of payment. > > > * @return double > > > * @param numberOfMonth int > > > * @param kop KindOfPayment > > > * public double getTurnover(int numberOfMonth, > > > KindOfPayment kop) > > > */ > > > getFunctionTurnoverPayment (), //using > > Customer.getTurnover > > > c, //double Customer.getTurnover(int months, > > KindOfPayment > > > paymentType) > > > new Integer (12), //12 months > > > DB.getKindOfPayment (KindOfPayment.COMPANY_VISA) //visa > > > ), > > > new Double (200) > > > ), > > > > > > > > > //then a customer > > > // category is set to Platinum > > > prereq1 > > > ); > > > : > > > : > > > : > > > : > > > : > > > : > > > : > > > > > ////////////////////////////////////////////////////////////////// > > ////////// > > > ////// > > > //if a customer > > > // has customer category Platinum > > > // then a customer gets a discount of 12.5% > > > Rule rule3 = > > > rule ( > > > //if a customer > > > // has customer category Platinum > > > //Or if Rule 1 is true... > > > prereq1, > > > > > > //then a customer gets a discount of 12.5% > > > /* > > > * Get the "customer gets a certain discount" predicate > > > * @return a predicate > > > */ > > > fact ( > > > // SimplePredicate ("getsDiscount", par); > > > getPredicateGetDiscount (), > > > c, //Customer.class > > > new Discount (12.5) //Discount.class > > > ) > > > ); > > > > > > > |
From: Jochen H. <joc...@ba...> - 2003-03-03 17:47:21
|
> Sorry I should have named prereq1 > final Prerequisite prereq1 = prereq ( > something better like resultOfRule1... > > > So, I think rule3 says > > if rule1 is true do fact3 > > Do my changes make sense? > > > > Robert > The effect is as you described, but I would name if better: IF category (<a customer>, Category.PLATINUM) THEN getsDiscount (<a customer>, 12.5%) Try to use the toString () Method of fact, rule etc, which gives you a readable description. Can you describe, what you want to do with Mandarax ? That could help to understand your questions better. Bye, Jochen > > > ////////////////////////////////////////////////////////////////// > ////////// > > ////// > > //since Prerequisite extends Fact > > final Prerequisite prereq1 = prereq ( > > /* > > * Get the "customer is in a certain category" predicate > > * @return a predicate > > */ > > //private static Predicate getPredicateHasCategory() { > > //using public static Category getCategory(String > > description) { > > getPredicateHasCategory (), > > c, //Customer class > > DB.getCategory (Category.PLATINUM) //Category class > > ); > > > > > > > > > > > > final Rule rule1 = > > rule ( > > //"if the turnover of a customer > > // in the last 12 months and payed with COMPANY VISA > > // is greater than 200.00 > > prereq ( > > DoubleArithmetic.GREATER_THAN, > > cplx ( > > /* > > * Get the turnover in the last numberOfMonth > > * using the kind of payment. > > * @return double > > * @param numberOfMonth int > > * @param kop KindOfPayment > > * public double getTurnover(int numberOfMonth, > > KindOfPayment kop) > > */ > > getFunctionTurnoverPayment (), //using > Customer.getTurnover > > c, //double Customer.getTurnover(int months, > KindOfPayment > > paymentType) > > new Integer (12), //12 months > > DB.getKindOfPayment (KindOfPayment.COMPANY_VISA) //visa > > ), > > new Double (200) > > ), > > > > > > //then a customer > > // category is set to Platinum > > prereq1 > > ); > > : > > : > > : > > : > > : > > : > > : > > > ////////////////////////////////////////////////////////////////// > ////////// > > ////// > > //if a customer > > // has customer category Platinum > > // then a customer gets a discount of 12.5% > > Rule rule3 = > > rule ( > > //if a customer > > // has customer category Platinum > > //Or if Rule 1 is true... > > prereq1, > > > > //then a customer gets a discount of 12.5% > > /* > > * Get the "customer gets a certain discount" predicate > > * @return a predicate > > */ > > fact ( > > // SimplePredicate ("getsDiscount", par); > > getPredicateGetDiscount (), > > c, //Customer.class > > new Discount (12.5) //Discount.class > > ) > > ); > > > > |
From: Robert S. <rob...@ho...> - 2003-03-03 17:28:21
|
Sorry I should have named prereq1 final Prerequisite prereq1 = prereq ( something better like resultOfRule1... Robert ----- Original Message ----- From: "Robert Searle" <rob...@ho...> To: "Jochen Hiller" <joc...@ba...> Cc: <man...@li...> Sent: Monday, March 03, 2003 12:23 PM Subject: Re: [Mandarax-user] Do I understand this example crm rule found in KBServer > So, I think rule3 says > if rule1 is true do fact3 > Do my changes make sense? > > Robert > > //////////////////////////////////////////////////////////////////////////// > ////// > //since Prerequisite extends Fact > final Prerequisite prereq1 = prereq ( > /* > * Get the "customer is in a certain category" predicate > * @return a predicate > */ > //private static Predicate getPredicateHasCategory() { > //using public static Category getCategory(String > description) { > getPredicateHasCategory (), > c, //Customer class > DB.getCategory (Category.PLATINUM) //Category class > ); > > > > > > final Rule rule1 = > rule ( > //"if the turnover of a customer > // in the last 12 months and payed with COMPANY VISA > // is greater than 200.00 > prereq ( > DoubleArithmetic.GREATER_THAN, > cplx ( > /* > * Get the turnover in the last numberOfMonth > * using the kind of payment. > * @return double > * @param numberOfMonth int > * @param kop KindOfPayment > * public double getTurnover(int numberOfMonth, > KindOfPayment kop) > */ > getFunctionTurnoverPayment (), //using Customer.getTurnover > c, //double Customer.getTurnover(int months, KindOfPayment > paymentType) > new Integer (12), //12 months > DB.getKindOfPayment (KindOfPayment.COMPANY_VISA) //visa > ), > new Double (200) > ), > > > //then a customer > // category is set to Platinum > prereq1 > ); > : > : > : > : > : > : > : > //////////////////////////////////////////////////////////////////////////// > ////// > //if a customer > // has customer category Platinum > // then a customer gets a discount of 12.5% > Rule rule3 = > rule ( > //if a customer > // has customer category Platinum > //Or if Rule 1 is true... > prereq1, > > //then a customer gets a discount of 12.5% > /* > * Get the "customer gets a certain discount" predicate > * @return a predicate > */ > fact ( > // SimplePredicate ("getsDiscount", par); > getPredicateGetDiscount (), > c, //Customer.class > new Discount (12.5) //Discount.class > ) > ); > > |
From: Robert S. <rob...@ho...> - 2003-03-03 17:24:32
|
So, I think rule3 says if rule1 is true do fact3 Do my changes make sense? Robert //////////////////////////////////////////////////////////////////////////// ////// //since Prerequisite extends Fact final Prerequisite prereq1 = prereq ( /* * Get the "customer is in a certain category" predicate * @return a predicate */ //private static Predicate getPredicateHasCategory() { //using public static Category getCategory(String description) { getPredicateHasCategory (), c, //Customer class DB.getCategory (Category.PLATINUM) //Category class ); final Rule rule1 = rule ( //"if the turnover of a customer // in the last 12 months and payed with COMPANY VISA // is greater than 200.00 prereq ( DoubleArithmetic.GREATER_THAN, cplx ( /* * Get the turnover in the last numberOfMonth * using the kind of payment. * @return double * @param numberOfMonth int * @param kop KindOfPayment * public double getTurnover(int numberOfMonth, KindOfPayment kop) */ getFunctionTurnoverPayment (), //using Customer.getTurnover c, //double Customer.getTurnover(int months, KindOfPayment paymentType) new Integer (12), //12 months DB.getKindOfPayment (KindOfPayment.COMPANY_VISA) //visa ), new Double (200) ), //then a customer // category is set to Platinum prereq1 ); : : : : : : : //////////////////////////////////////////////////////////////////////////// ////// //if a customer // has customer category Platinum // then a customer gets a discount of 12.5% Rule rule3 = rule ( //if a customer // has customer category Platinum //Or if Rule 1 is true... prereq1, //then a customer gets a discount of 12.5% /* * Get the "customer gets a certain discount" predicate * @return a predicate */ fact ( // SimplePredicate ("getsDiscount", par); getPredicateGetDiscount (), c, //Customer.class new Discount (12.5) //Discount.class ) ); |
From: Jochen H. <joc...@ba...> - 2003-03-03 16:20:42
|
Hi Robert, there have been an overlap reading/writing emails... > > Hi, > > Warning the lines are really long..... > 1) Did I comment the code correctly? > 2) What really happens during the fact? > 2.1) An association between a customer, a discount, and a > category is > formed in the engine, right? The fact method of the LogicFactorySupport will create a fact with the following logic notation: category (<a customer>, Category.PLATINUM) category is the predicate <a customer> is an VariableTerm, means a logical variable Category.PLATINUM is an instance of the class Category There is no explicit Java association between these classes modelled within the example. > 2.2) I can not find any reference to a discount or > category object in > the customer class. How does the engine remember what category a customer > has? The engine does NOT remember the category. Is is the responsibility of the object model, to store the information if required. Typically, this property is dynamic, as it can change always dependent of the current transactions. So, one idea could be, to provide a methode calculateCategory () which calls then the inference engine with a query based on the current knowledge base. This is the basic idea, not to duplicate information, but to replace with online queries against the actual data, represented in Java, database, or other storages. > 2.3) The engine never changes or modifies the objects it > receives, it > always uses them as read-only objects, right? Yes, correct. Hope this helps, Jochen |
From: Robert S. <rob...@ho...> - 2003-03-03 15:56:56
|
Hi, Warning the lines are really long..... 1) Did I comment the code correctly? 2) What really happens during the fact? 2.1) An association between a customer, a discount, and a category is formed in the engine, right? 2.2) I can not find any reference to a discount or category object in the customer class. How does the engine remember what category a customer has? 2.3) The engine never changes or modifies the objects it receives, it always uses them as read-only objects, right? Thanks, Robert //////////////////////////////////////////////////////////////////////////// Taken from examples/crm/KBServer.java //////////////////////////////////////////////////////////////////////////// final Rule rule1 = rule ( //"if the turnover of a customer // in the last 12 months and payed with COMPANY VISA // is greater than 200.00 prereq ( DoubleArithmetic.GREATER_THAN, cplx ( /* * Get the turnover in the last numberOfMonth * using the kind of payment. * @return double * @param numberOfMonth int * @param kop KindOfPayment * public double getTurnover(int, KindOfPayment) */ getFunctionTurnoverPayment (), //using Customer.getTurnover c, //double Customer.getTurnover(int, KindOfPayment) new Integer (12), //12 months DB.getKindOfPayment (KindOfPayment.COMPANY_VISA) //visa ), new Double (200) ), //then a customer // category is set to Platinum fact ( /* * Get the "customer is in a certain category" predicate * @return a predicate */ //private static Predicate getPredicateHasCategory() { //using static Category getCategory(String description) getPredicateHasCategory (), c, //Customer class DB.getCategory (Category.PLATINUM) //Category class ) ); |
From: Jochen H. <joc...@ba...> - 2003-03-03 15:39:45
|
Hi Robert, as Jens just mentioned, please use the mailing list for any questions regarding Mandarax. The comments are in general ok. What do you mean with "call a set method" ? The methods rule(...), cplx(...), fact (...) are only convenient classes to construct a rule, fact, simple or complex with some more easy code. When using the knowledgebase, which refers to the facts and rules, the "functions" will be replaced by the call to the corresponding java method (via reflection). The body ("THEN a customer category is set to platinum") means in logic notation: category (<a customer>, Category.PLATINUM) so, it will be resolved as a part of the rule. When you expect, there will be a call to Customer.setCategory (), this is NOT the case. The whole inference engine does NOT change any state of the underlying java objects, it is ONLY working within the knowledgebase. In general, it is not yet intended, to automatically change some object state. If it is required, you have to set it explicitly after quering the knowledgebase. Hope this helps, Jochen -----Original Message----- From: Robert Searle [mailto:rob...@ho...] Sent: Monday, March 03, 2003 6:21 AM To: jen...@un...; joc...@ma... Subject: Do I understand the sample rules right? Hi Jens or Jochen, Warning the lines are really long..... Did I comment the code correctly? Does the fact really call a set method? What really happens during the fact? Taken from examples/crm/KBServer.java /////////////////////////////////////////////////////////////////////// final Rule rule1 = rule ( //"if the turnover of a customer // in the last 12 months and payed with COMPANY VISA // is greater than 200.00 prereq ( DoubleArithmetic.GREATER_THAN, cplx ( /* * Get the turnover in the last numberOfMonth * using the kind of payment. * @return double * @param numberOfMonth int * @param kop KindOfPayment * public double getTurnover(int numberOfMonth, KindOfPayment kop) */ getFunctionTurnoverPayment (), //using Customer.getTurnover c, //double Customer.getTurnover(int months, KindOfPayment paymentType) new Integer (12), //12 months DB.getKindOfPayment (KindOfPayment.COMPANY_VISA) //visa ), new Double (200) ), //then a customer // category is set to Platinum fact ( /* * Get the "customer is in a certain category" predicate * @return a predicate */ //private static Predicate getPredicateHasCategory() { //using public static Category getCategory(String description) { getPredicateHasCategory (), c, //Customer class DB.getCategory (Category.PLATINUM) //Category class ) ); Thanks, Robert _________________________________________________________________ Add photos to your messages with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail |
From: Erwan T. <e.t...@cl...> - 2003-02-28 08:13:44
|
Dear sir, I have made a little screening of the open source projetcs concerning rule engines and I have found some different ones, such as : Mandarax/Oryx, Jess, info-sapient, drools. The problem is that I don't make the fundamental difference between Mandarax and the others. Could you advise me , of course from your point of view, a little bit about all that staff : langage code (prolog/java), algorythm used, etc. Thank you in advance, Best regards, Erwan Tesson, Clipack |
From: Jens D. <jen...@un...> - 2003-02-26 09:48:40
|
Changes from v2.2 to 2.2.1: 1. Two bug fixes / improvements in NAF handling and unification. Thanks to Hans-Henning Wiesner for the respective test cases and proposals. Robinson's unification algorithm has been extended in order to have a reference to the semantic evaluation policy. This policy can be used to simplify (resolve) complex terms, and to unify the terms resulting from this. 2. There is a new Function implementation DynaBeanFunction. This function wraps accessors in map like objects where properties are accessed with generic get methods that have one parameter representing the property name. There are various test cases for this new class as well. 3. The getName() method has been implemented in various xkb driver classes. 4. The current test case count is 431. download directly from here: http://www.mandarax.org/builds/release/v2.2/mandarax_2_2_1.zip download from sourceforge will be possible later today. Kind regards, Jens |
From: Jens D. <jen...@un...> - 2003-02-14 05:55:42
|
The correct URL to download is: http://www.mandarax.org/builds/release/v2.2/mandarax_2_2.zip Sorry for the inconvenience, Jens |
From: Jens D. <jen...@un...> - 2003-02-14 05:47:16
|
Hi all, Mandarax 2.2 has been released. Please use this link to download: http://www.mandarax.org/builds/release/v2.1/mandarax_2_1_1.zip Download from source forge will be available soon. Note that mandarax now depends on JDK 1.4 classes (XML encoder/decoder). New features in a nutshell: 1. A totally redesigned persistency layer called ZKB. Knowledge bases are stored in a rule ml xml file, references objects are serialized/deserialized separately using an object persistency service (OPS). OPS implementations based on binary serialization and (JDK 1.4 !) XML serialization are provided. Custom OPSs are possible, e.g. representing data sources by their JNDI names. The overall design of an OPS is similar to a naming service context (bind/lookup). The two file (kb, objects) are stored together with additional meta info in a zip file, an approach similar to the appoach taken in modern office software. With this approach we shift the responsibility to serialize arbitrary objects from mandarax to core java classes! The API is very simple: see class ZKBManager. There are numerous test cases for this new functionality. 2. Knowledge bases have a new functionality to arrange rules, facts and other types of knowledge automatically. This is achieved by a comparator, a default comparator is provided. Using comparator, certain types of non-monotonic reasoning can be expressed. There are numerous test cases for this new functionality. 3. Redesign for cut, many cut related bugfixes. Thanks to Alexander Kozlenkov from City University London for this contribution! 4. The current test case count is 384. 5. There is a new comprehensive example that shows how to use mandarax together with a relational database. See the package org.mandarax.examples.db for details. 6. Jochen Hiller from Bauer&Partner contributed a wrapper mechanism in the SQL package. Using this utility, connections can be used directly (instead of datasources). Kind regards, Jens |
From: Jens D. <jen...@un...> - 2003-02-11 05:25:08
|
Hi all, I had another thought about this. Are you aware that there is a flag in SQLClauseSet whether the connection should be closed (when the clause set iterator closes?). Wouldn't this do the job? If no, why? If yes, just write a DataSource wrapper for the connections. Cheers, Jens -----Original Message----- From: Jochen Hiller [mailto:joc...@ba...] Sent: Monday, February 10, 2003 11:45 PM To: dolson Cc: 'Mandarax-User'; 'Mandarax-Develop'; 'Jens Dietrich' Subject: RE: Can Connection be used instead of DataSource? Hi Doug, I just started implementation of the SQLConnectionManager. I think, I can send latest Wednesday a first beta of the connection management support, as part of the 2.2 beta version. Cheers, Jochen > -----Original Message----- > From: dolson [mailto:do...@tp...] > Sent: Montag, 10. Februar 2003 17:42 > To: 'Jochen Hiller'; 'Jens Dietrich' > Cc: 'Mandarax-User'; 'Mandarax-Develop' > Subject: RE: Can Connection be used instead of DataSource? > > > Jochen, > > This sound good, our system distributes data over many databases > and maintains connection pools at a very low level to shield higher > level systems from connection management issues. The concern I have is > the closing of the connection. It appears that the current > implementation requires some understanding of the connection semantics. > > from Jens message: > > "Here there is an option not to close the actual connection but to > release it so that it can be re-used (employing a connection pool)" > > Because our system hides all connection management issues at a lower > level, higher level systems are not allowed to perform connection > management operations. > > Having said that, I think the approach you describe will work well for > our case because it allows the caller to turn off connection management. > > > Thanks for the help, > > Doug > > -----Original Message----- > From: Jochen Hiller [mailto:joc...@ba...] > Sent: Saturday, February 08, 2003 9:38 AM > To: dolson; Jens Dietrich > Cc: Mandarax-User; Mandarax-Develop > Subject: RE: Can Connection be used instead of DataSource? > > Hi Doug, > > the current implementation of the SQL package has been driven to support > application servers, like IBM, BEA, jBoss and others. These app servers > want > to manage the resources via the DataSource extension. This make life > easier > to separate coding and configuration as part of deployment. > > In principle, there are only 3-4 lines of code which would have to be > changed. You may change the implementation of these classes to set a > java.sql.Connection instead of a javax.sql.DataSource, and change the > fetchStructure method, which creates a connection via > dataSource.getConnection (). > > Jens implemented to support the behaviour how to release the > connections. > So, you have some, not all, influence on the connection handling. > > Jens, what do you think ? I could image to generalize the requirements > in > the sense, that the SQL package defines an interface > (SQLConnectionManager) > with an default implementation, based either on a given DataSource, or a > plain java.sql.Connection ? The SQLPredicate and SQLFunction will > require > then a SQLManager instead of an DataSource. And, it would allow the > users to > develop their individual managers. > > The SQLConnectionManager can be like that: > > public interface SQLConnectionManager { > /** > * Gets a connection. > */ > public java.sql.Connection getConnection (); > > /** > * Release a connection. > */ > public void releaseConnection (); > } > > The behaviour, when to close the connection can be implemented within > the > DefaultConnectionManager: > > public class DefaultConnectionManager implements SQLConnectionManager { > > /** > * Constructor for a given DataSource. > */ > public DefaultConnectionManager (javax.sql.DataSource ds) { > ... > } > > /** > * Constructor for a given sql connection. > */ > public DefaultConnectionManager (java.sql.Connection con) { > ... > } > > /** > * sets connection release mode > */ > public void setReleaseConnectionMode (boolean closeConnection) { > ... > } > } > > What do you think ? Something which could be done for the 2.2 ? If you > agree, I could do it on Tuesday. Does we have to ensure api > compatibility, > or can we change the interface of these classes ? > > Bye, Jochen > > > -----Original Message----- > > From: dolson [mailto:do...@tp...] > > Sent: Samstag, 8. Februar 2003 00:39 > > To: 'Jochen Hiller' > > Cc: 'Jens Dietrich'; 'Mandarax-User'; 'Mandarax-Develop' > > Subject: Can Connection be used instead of DataSource? > > > > > > I am evaluating Mandarax for use in and application I am working on > > which will require JDBC access to very large SQL databases. The > current > > Mandarax API requires DataSource objects for SQLPredicate() and > > SQLFunction() objects. In our system DataSource objects are managed at > a > > low level and only Connection objects are exposed to higher level > > subsystems. Is there a specific reason that DataSource objects are > being > > used in the Mandarax API? If not, I believe that leaving the > connection > > management issues to the caller would simplify the implementation and > > would have the added benefit of working within the system I am > > evaluating Mandarax for ;-). What do you think? Would it be worth me > > changing the API to use Connection objects or are there obvious issues > > that you have already encountered that preclude this? > > > > Doug Olson > > Senior Member Technical Staff > > TPS Software > > do...@tp... > > > > > > > > > > |
From: Jochen H. <joc...@ba...> - 2003-02-10 21:44:41
|
Hi Doug, I just started implementation of the SQLConnectionManager. I think, I can send latest Wednesday a first beta of the connection management support, as part of the 2.2 beta version. Cheers, Jochen > -----Original Message----- > From: dolson [mailto:do...@tp...] > Sent: Montag, 10. Februar 2003 17:42 > To: 'Jochen Hiller'; 'Jens Dietrich' > Cc: 'Mandarax-User'; 'Mandarax-Develop' > Subject: RE: Can Connection be used instead of DataSource? > > > Jochen, > > This sound good, our system distributes data over many databases > and maintains connection pools at a very low level to shield higher > level systems from connection management issues. The concern I have is > the closing of the connection. It appears that the current > implementation requires some understanding of the connection semantics. > > from Jens message: > > "Here there is an option not to close the actual connection but to > release it so that it can be re-used (employing a connection pool)" > > Because our system hides all connection management issues at a lower > level, higher level systems are not allowed to perform connection > management operations. > > Having said that, I think the approach you describe will work well for > our case because it allows the caller to turn off connection management. > > > Thanks for the help, > > Doug > > -----Original Message----- > From: Jochen Hiller [mailto:joc...@ba...] > Sent: Saturday, February 08, 2003 9:38 AM > To: dolson; Jens Dietrich > Cc: Mandarax-User; Mandarax-Develop > Subject: RE: Can Connection be used instead of DataSource? > > Hi Doug, > > the current implementation of the SQL package has been driven to support > application servers, like IBM, BEA, jBoss and others. These app servers > want > to manage the resources via the DataSource extension. This make life > easier > to separate coding and configuration as part of deployment. > > In principle, there are only 3-4 lines of code which would have to be > changed. You may change the implementation of these classes to set a > java.sql.Connection instead of a javax.sql.DataSource, and change the > fetchStructure method, which creates a connection via > dataSource.getConnection (). > > Jens implemented to support the behaviour how to release the > connections. > So, you have some, not all, influence on the connection handling. > > Jens, what do you think ? I could image to generalize the requirements > in > the sense, that the SQL package defines an interface > (SQLConnectionManager) > with an default implementation, based either on a given DataSource, or a > plain java.sql.Connection ? The SQLPredicate and SQLFunction will > require > then a SQLManager instead of an DataSource. And, it would allow the > users to > develop their individual managers. > > The SQLConnectionManager can be like that: > > public interface SQLConnectionManager { > /** > * Gets a connection. > */ > public java.sql.Connection getConnection (); > > /** > * Release a connection. > */ > public void releaseConnection (); > } > > The behaviour, when to close the connection can be implemented within > the > DefaultConnectionManager: > > public class DefaultConnectionManager implements SQLConnectionManager { > > /** > * Constructor for a given DataSource. > */ > public DefaultConnectionManager (javax.sql.DataSource ds) { > ... > } > > /** > * Constructor for a given sql connection. > */ > public DefaultConnectionManager (java.sql.Connection con) { > ... > } > > /** > * sets connection release mode > */ > public void setReleaseConnectionMode (boolean closeConnection) { > ... > } > } > > What do you think ? Something which could be done for the 2.2 ? If you > agree, I could do it on Tuesday. Does we have to ensure api > compatibility, > or can we change the interface of these classes ? > > Bye, Jochen > > > -----Original Message----- > > From: dolson [mailto:do...@tp...] > > Sent: Samstag, 8. Februar 2003 00:39 > > To: 'Jochen Hiller' > > Cc: 'Jens Dietrich'; 'Mandarax-User'; 'Mandarax-Develop' > > Subject: Can Connection be used instead of DataSource? > > > > > > I am evaluating Mandarax for use in and application I am working on > > which will require JDBC access to very large SQL databases. The > current > > Mandarax API requires DataSource objects for SQLPredicate() and > > SQLFunction() objects. In our system DataSource objects are managed at > a > > low level and only Connection objects are exposed to higher level > > subsystems. Is there a specific reason that DataSource objects are > being > > used in the Mandarax API? If not, I believe that leaving the > connection > > management issues to the caller would simplify the implementation and > > would have the added benefit of working within the system I am > > evaluating Mandarax for ;-). What do you think? Would it be worth me > > changing the API to use Connection objects or are there obvious issues > > that you have already encountered that preclude this? > > > > Doug Olson > > Senior Member Technical Staff > > TPS Software > > do...@tp... > > > > > > > > > > |
From: dolson <do...@tp...> - 2003-02-10 16:41:54
|
Jochen, This sound good, our system distributes data over many databases and maintains connection pools at a very low level to shield higher level systems from connection management issues. The concern I have is the closing of the connection. It appears that the current implementation requires some understanding of the connection semantics. from Jens message: "Here there is an option not to close the actual connection but to release it so that it can be re-used (employing a connection pool)" Because our system hides all connection management issues at a lower level, higher level systems are not allowed to perform connection management operations. Having said that, I think the approach you describe will work well for our case because it allows the caller to turn off connection management. Thanks for the help, Doug -----Original Message----- From: Jochen Hiller [mailto:joc...@ba...] Sent: Saturday, February 08, 2003 9:38 AM To: dolson; Jens Dietrich Cc: Mandarax-User; Mandarax-Develop Subject: RE: Can Connection be used instead of DataSource? Hi Doug, the current implementation of the SQL package has been driven to support application servers, like IBM, BEA, jBoss and others. These app servers want to manage the resources via the DataSource extension. This make life easier to separate coding and configuration as part of deployment. In principle, there are only 3-4 lines of code which would have to be changed. You may change the implementation of these classes to set a java.sql.Connection instead of a javax.sql.DataSource, and change the fetchStructure method, which creates a connection via dataSource.getConnection (). Jens implemented to support the behaviour how to release the connections. So, you have some, not all, influence on the connection handling. Jens, what do you think ? I could image to generalize the requirements in the sense, that the SQL package defines an interface (SQLConnectionManager) with an default implementation, based either on a given DataSource, or a plain java.sql.Connection ? The SQLPredicate and SQLFunction will require then a SQLManager instead of an DataSource. And, it would allow the users to develop their individual managers. The SQLConnectionManager can be like that: public interface SQLConnectionManager { /** * Gets a connection. */ public java.sql.Connection getConnection (); /** * Release a connection. */ public void releaseConnection (); } The behaviour, when to close the connection can be implemented within the DefaultConnectionManager: public class DefaultConnectionManager implements SQLConnectionManager { /** * Constructor for a given DataSource. */ public DefaultConnectionManager (javax.sql.DataSource ds) { ... } /** * Constructor for a given sql connection. */ public DefaultConnectionManager (java.sql.Connection con) { ... } /** * sets connection release mode */ public void setReleaseConnectionMode (boolean closeConnection) { ... } } What do you think ? Something which could be done for the 2.2 ? If you agree, I could do it on Tuesday. Does we have to ensure api compatibility, or can we change the interface of these classes ? Bye, Jochen > -----Original Message----- > From: dolson [mailto:do...@tp...] > Sent: Samstag, 8. Februar 2003 00:39 > To: 'Jochen Hiller' > Cc: 'Jens Dietrich'; 'Mandarax-User'; 'Mandarax-Develop' > Subject: Can Connection be used instead of DataSource? > > > I am evaluating Mandarax for use in and application I am working on > which will require JDBC access to very large SQL databases. The current > Mandarax API requires DataSource objects for SQLPredicate() and > SQLFunction() objects. In our system DataSource objects are managed at a > low level and only Connection objects are exposed to higher level > subsystems. Is there a specific reason that DataSource objects are being > used in the Mandarax API? If not, I believe that leaving the connection > management issues to the caller would simplify the implementation and > would have the added benefit of working within the system I am > evaluating Mandarax for ;-). What do you think? Would it be worth me > changing the API to use Connection objects or are there obvious issues > that you have already encountered that preclude this? > > Doug Olson > Senior Member Technical Staff > TPS Software > do...@tp... > > > |
From: Hiller, J. <Joc...@ba...> - 2003-02-10 12:02:10
|
Hi Jens and Doug, if you agree both, I will extend the sql package for a pluggable = connection manager, as described. I will ensure backward compatibility, = and make the previous methods deprecated. I plan to do it on Tuesday, based on the 2.2 beta. Jens, any changes in = this package the last days ? Bye, Jochen -----Urspr=FCngliche Nachricht----- Von: Jens Dietrich [mailto:jen...@un...] Gesendet: Mo 10.02.2003 08:48 An: Hiller, Jochen; dolson Cc: Mandarax-User; Mandarax-Develop Betreff: RE: [Mandarax-develop] RE: Can Connection be used instead of = DataSource? Hi, Yes, we could do this. Another approach is just to write your own = connection wrapper implementing DataSource. How does this sound? Indeed, the handling of how connections are closed was one of the main reasons to use data sources. Here there is an option not to close the = actual connection but to release it so that it can be re-used (employing a connection pool). Regards, Jens -----Original Message----- From: man...@li... [mailto:man...@li...]On Behalf Of Jochen Hiller Sent: Saturday, February 08, 2003 5:38 PM To: dolson; Jens Dietrich Cc: Mandarax-User; Mandarax-Develop Subject: [Mandarax-develop] RE: Can Connection be used instead of DataSource? Hi Doug, the current implementation of the SQL package has been driven to support application servers, like IBM, BEA, jBoss and others. These app servers = want to manage the resources via the DataSource extension. This make life = easier to separate coding and configuration as part of deployment. In principle, there are only 3-4 lines of code which would have to be changed. You may change the implementation of these classes to set a java.sql.Connection instead of a javax.sql.DataSource, and change the fetchStructure method, which creates a connection via dataSource.getConnection (). Jens implemented to support the behaviour how to release the = connections. So, you have some, not all, influence on the connection handling. Jens, what do you think ? I could image to generalize the requirements = in the sense, that the SQL package defines an interface = (SQLConnectionManager) with an default implementation, based either on a given DataSource, or a plain java.sql.Connection ? The SQLPredicate and SQLFunction will = require then a SQLManager instead of an DataSource. And, it would allow the = users to develop their individual managers. The SQLConnectionManager can be like that: public interface SQLConnectionManager { /** * Gets a connection. */ public java.sql.Connection getConnection (); /** * Release a connection. */ public void releaseConnection (); } The behaviour, when to close the connection can be implemented within = the DefaultConnectionManager: public class DefaultConnectionManager implements SQLConnectionManager { /** * Constructor for a given DataSource. */ public DefaultConnectionManager (javax.sql.DataSource ds) { ... } /** * Constructor for a given sql connection. */ public DefaultConnectionManager (java.sql.Connection con) { ... } /** * sets connection release mode */ public void setReleaseConnectionMode (boolean closeConnection) { ... } } What do you think ? Something which could be done for the 2.2 ? If you agree, I could do it on Tuesday. Does we have to ensure api = compatibility, or can we change the interface of these classes ? Bye, Jochen > -----Original Message----- > From: dolson [mailto:do...@tp...] > Sent: Samstag, 8. Februar 2003 00:39 > To: 'Jochen Hiller' > Cc: 'Jens Dietrich'; 'Mandarax-User'; 'Mandarax-Develop' > Subject: Can Connection be used instead of DataSource? > > > I am evaluating Mandarax for use in and application I am working on > which will require JDBC access to very large SQL databases. The = current > Mandarax API requires DataSource objects for SQLPredicate() and > SQLFunction() objects. In our system DataSource objects are managed at = a > low level and only Connection objects are exposed to higher level > subsystems. Is there a specific reason that DataSource objects are = being > used in the Mandarax API? If not, I believe that leaving the = connection > management issues to the caller would simplify the implementation and > would have the added benefit of working within the system I am > evaluating Mandarax for ;-). What do you think? Would it be worth me > changing the API to use Connection objects or are there obvious issues > that you have already encountered that preclude this? > > Doug Olson > Senior Member Technical Staff > TPS Software > do...@tp... > > > ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld =3D Something 2 See! http://www.vasoftware.com _______________________________________________ Mandarax-develop mailing list Man...@li... https://lists.sourceforge.net/lists/listinfo/mandarax-develop |
From: Jochen H. <joc...@ba...> - 2003-02-08 15:38:00
|
Hi Doug, the current implementation of the SQL package has been driven to support application servers, like IBM, BEA, jBoss and others. These app servers want to manage the resources via the DataSource extension. This make life easier to separate coding and configuration as part of deployment. In principle, there are only 3-4 lines of code which would have to be changed. You may change the implementation of these classes to set a java.sql.Connection instead of a javax.sql.DataSource, and change the fetchStructure method, which creates a connection via dataSource.getConnection (). Jens implemented to support the behaviour how to release the connections. So, you have some, not all, influence on the connection handling. Jens, what do you think ? I could image to generalize the requirements in the sense, that the SQL package defines an interface (SQLConnectionManager) with an default implementation, based either on a given DataSource, or a plain java.sql.Connection ? The SQLPredicate and SQLFunction will require then a SQLManager instead of an DataSource. And, it would allow the users to develop their individual managers. The SQLConnectionManager can be like that: public interface SQLConnectionManager { /** * Gets a connection. */ public java.sql.Connection getConnection (); /** * Release a connection. */ public void releaseConnection (); } The behaviour, when to close the connection can be implemented within the DefaultConnectionManager: public class DefaultConnectionManager implements SQLConnectionManager { /** * Constructor for a given DataSource. */ public DefaultConnectionManager (javax.sql.DataSource ds) { ... } /** * Constructor for a given sql connection. */ public DefaultConnectionManager (java.sql.Connection con) { ... } /** * sets connection release mode */ public void setReleaseConnectionMode (boolean closeConnection) { ... } } What do you think ? Something which could be done for the 2.2 ? If you agree, I could do it on Tuesday. Does we have to ensure api compatibility, or can we change the interface of these classes ? Bye, Jochen > -----Original Message----- > From: dolson [mailto:do...@tp...] > Sent: Samstag, 8. Februar 2003 00:39 > To: 'Jochen Hiller' > Cc: 'Jens Dietrich'; 'Mandarax-User'; 'Mandarax-Develop' > Subject: Can Connection be used instead of DataSource? > > > I am evaluating Mandarax for use in and application I am working on > which will require JDBC access to very large SQL databases. The current > Mandarax API requires DataSource objects for SQLPredicate() and > SQLFunction() objects. In our system DataSource objects are managed at a > low level and only Connection objects are exposed to higher level > subsystems. Is there a specific reason that DataSource objects are being > used in the Mandarax API? If not, I believe that leaving the connection > management issues to the caller would simplify the implementation and > would have the added benefit of working within the system I am > evaluating Mandarax for ;-). What do you think? Would it be worth me > changing the API to use Connection objects or are there obvious issues > that you have already encountered that preclude this? > > Doug Olson > Senior Member Technical Staff > TPS Software > do...@tp... > > > |
From: dolson <do...@tp...> - 2003-02-07 23:38:53
|
I am evaluating Mandarax for use in and application I am working on which will require JDBC access to very large SQL databases. The current Mandarax API requires DataSource objects for SQLPredicate() and SQLFunction() objects. In our system DataSource objects are managed at a low level and only Connection objects are exposed to higher level subsystems. Is there a specific reason that DataSource objects are being used in the Mandarax API? If not, I believe that leaving the connection management issues to the caller would simplify the implementation and would have the added benefit of working within the system I am evaluating Mandarax for ;-). What do you think? Would it be worth me changing the API to use Connection objects or are there obvious issues that you have already encountered that preclude this? Doug Olson Senior Member Technical Staff TPS Software do...@tp... |
From: Jochen H. <joc...@ba...> - 2003-02-07 21:30:46
|
Hi Doug, thanks for clarification of the problem. I think, your explanation seems to be correct. I will take your corrections in build.xml, check the behaviour of junit classpath (would be surprising !), and correct the tests target. No problem for our communication, I hope you will enjoy your further work using or testing Mandarax. Dont hesitate to contact me or Jens for other questions. Bye, Jochen > -----Original Message----- > From: dolson [mailto:do...@tp...] > Sent: Freitag, 7. Februar 2003 21:23 > To: 'Jochen Hiller' > Subject: RE: Problem running junit suite + Mandarax progress > > > Jochen, > > Ok, I have figured this out. I had an old version, 3.5, of junit > in my $ANT_HOME/lib. Without the 'fork' flag for the junit task the > classpath provided is ignored and the task is run in the current VM > using the junit library from $ANT_HOME/lib. I have put the junit.jar > provided by the Mandarax distribution, version 3.7, into my > $ANT_HOME/lib and the tests now run cleanly without the fork flag. > > Having the classpath information in the junit task is a little > bit confusing because it is being ignored. For what it's worth, I would > suggest either adding the fork flag or removing the classpath > information from the junit task in the build.xml file. > > Sorry for any confusion, > > Doug Olson > Senior Member Technical Staff > TPS Software > do...@tp... > > -----Original Message----- > From: Jochen Hiller [mailto:joc...@ba...] > Sent: Friday, February 07, 2003 11:28 AM > To: dolson > Cc: Jens Dietrich; Jochen Hiller; Mandarax-User; Mandarax-Develop > Subject: RE: Problem running junit suite + Mandarax progress > > Hi Doug, > > I did a build using Cygwin (>2.13) too, and everything is working fine. > > See my bash log: > > > $ . ./build.sh clean > Buildfile: build.xml > > clean: > [delete] C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\classes not found. > > BUILD SUCCESSFUL > Total time: 1 second > > I have no name!@DEST-LT20-009 ~/tmp/Mandarax-Bug-Build/mandarax_2_1_1 > $ . ./build.sh tests > Buildfile: build.xml > > check_for_optional_packages: > > prepare: > [mkdir] Created dir: C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build > [mkdir] Created dir: > C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build\classes > [mkdir] Created dir: > C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build\lib > > compile: > [javac] Compiling 344 source files to > C:\tmp\Mandarax-Bug-Build\mandarax_2_1 > _1\build\classes > > jar: > [copy] Copying 1 file to > C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\logs > [jar] Building jar: > C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build\lib\man > darax-2.1.1.jar > > tests: > [junit] Running test.org.mandarax.testsupport.TestAll > [junit] Tests run: 336, Failures: 0, Errors: 0, Time elapsed: 3,265 > sec > [delete] Deleting 18 files from > C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1 > > BUILD SUCCESSFUL > Total time: 22 seconds > > I have no name!@DEST-LT20-009 ~/tmp/Mandarax-Bug-Build/mandarax_2_1_1 > $ > > > Your logfile makes no sense for me. Very strange... > > Can you help me to identify your problem ? > > 1. Enable the log4j debugging > copy the attached file log4.properties to ./src directory > Will enable debugging while running Mandarax. > > 2. Please run the build with verbose option > ./build.sh -verbose clean tests > So I have the chance, to see the CLASSPATH when calling Junit. > > Can you send me the test.log.txt and the output of the build back ? > > Thanks, Jochen > > > > > -----Original Message----- > > From: dolson [mailto:do...@tp...] > > Sent: Freitag, 7. Februar 2003 16:37 > > To: 'Jochen Hiller' > > Subject: RE: Problem running junit suite + Mandarax progress > > > > > > Jochen, > > > > Thanks for the help. I am running everything under a bash shell > > using cygwin. The following is my environment information and another > > attempted run with the resulting log file attached (I have included my > > complete environment in the attached env.txt file). I have also tried > > running the tests under a dos command window with the same results: > > > > ~/src/rulesEngineTest [507] env |grep JAVA_HOME > > JAVA_HOME=c:/jdk1.3.1_06 > > ~/src/rulesEngineTest [508] env |grep ANT_HOME > > ANT_HOME=c:/Java/ant-1.5.1 > > ~/src/rulesEngineTest [509] env|grep MANDARAX > > > MANDARAX_CLASSPATH=/olson/src/rulesEngineTest/lib/crimson.jar:/olson/src > > > /rulesEngineTest/lib/jaxp1.1.jar:/olson/src/rulesEngineTest/lib/jdom.jar > > > :/olson/src/rulesEngineTest/lib/junit.jar:/olson/src/rulesEngineTest/lib > > /log4j.jar:/olson/src/rulesEngineTest/lib/sqlx.jar > > MANDARAX_HOME=/olson/src/rulesEngineTest > > ~/src/rulesEngineTest [510] env|grep CLASSPATH > > > CLASSPATH=/olson/src/rulesEngineTest/lib/crimson.jar:/olson/src/rulesEng > > > ineTest/lib/jaxp1.1.jar:/olson/src/rulesEngineTest/lib/jdom.jar:/olson/s > > > rc/rulesEngineTest/lib/junit.jar:/olson/src/rulesEngineTest/lib/log4j.ja > > r:/olson/src/rulesEngineTest/lib/sqlx.jar > > > MANDARAX_CLASSPATH=/olson/src/rulesEngineTest/lib/crimson.jar:/olson/src > > > /rulesEngineTest/lib/jaxp1.1.jar:/olson/src/rulesEngineTest/lib/jdom.jar > > > :/olson/src/rulesEngineTest/lib/junit.jar:/olson/src/rulesEngineTest/lib > > /log4j.jar:/olson/src/rulesEngineTest/lib/sqlx.jar > > ~/src/rulesEngineTest [511] ./build.sh clean > > Buildfile: build.xml > > > > clean: > > [delete] Deleting 1 files from C:\olson\src\rulesEngineTest\logs > > [delete] Deleting 1 files from C:\olson\src\rulesEngineTest\logs > > [delete] Deleting directory C:\olson\src\rulesEngineTest\build > > > > BUILD FAILED > > file:c:/olson/src/rulesEngineTest/build.xml:183: > > C:\olson\src\rulesEngineTest\classes not found. > > > > Total time: 1 second > > ~/src/rulesEngineTest [512] ./build.sh clean > > Buildfile: build.xml > > > > clean: > > > > BUILD FAILED > > file:c:/olson/src/rulesEngineTest/build.xml:183: > > C:\olson\src\rulesEngineTest\classes not found. > > > > Total time: 1 second > > ~/src/rulesEngineTest [513] ./build.sh tests > > Buildfile: build.xml > > > > check_for_optional_packages: > > > > prepare: > > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build > > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build\classes > > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build\lib > > > > compile: > > [javac] Compiling 344 source files to > > C:\olson\src\rulesEngineTest\build\classes > > > > jar: > > [copy] Copying 1 file to C:\olson\src\rulesEngineTest\logs > > [jar] Building jar: > > C:\olson\src\rulesEngineTest\build\lib\mandarax-2.1.1.jar > > > > tests: > > [junit] Running test.org.mandarax.testsupport.TestAll > > [junit] Tests run: 336, Failures: 0, Errors: 334, Time elapsed: > > 2.047 sec > > > > BUILD FAILED > > file:c:/olson/src/rulesEngineTest/build.xml:112: Test > > test.org.mandarax.testsupport.TestAll failed > > > > Total time: 12 seconds > > ~/src/rulesEngineTest [514] > > > > > > This is the directory listing after the tests fail: > > > > ~/src/rulesEngineTest [519] l > > total 49 > > -rwx------+ 1 dolson None 482 Feb 7 09:32 > _xkb_test1.xml* > > -rwx------+ 1 dolson None 2119 Feb 7 09:32 > _xkb_test10.xml* > > -rwx------+ 1 dolson None 1078 Feb 7 09:32 > _xkb_test11.xml* > > -rwx------+ 1 dolson None 1645 Feb 7 09:32 > _xkb_test12.xml* > > -rwx------+ 1 dolson None 1643 Feb 7 09:32 > _xkb_test13.xml* > > -rwx------+ 1 dolson None 1721 Feb 7 09:33 > _xkb_test14.xml* > > -rwx------+ 1 dolson None 577 Feb 7 09:33 > _xkb_test15.xml* > > -rwx------+ 1 dolson None 1084 Feb 7 09:33 > _xkb_test16.xml* > > -rwx------+ 1 dolson None 1084 Feb 7 09:33 > _xkb_test17.xml* > > -rwx------+ 1 dolson None 1553 Feb 7 09:33 > _xkb_test18.xml* > > -rwx------+ 1 dolson None 550 Feb 7 09:32 > _xkb_test2.xml* > > -rwx------+ 1 dolson None 505 Feb 7 09:32 > _xkb_test3.xml* > > -rwx------+ 1 dolson None 675 Feb 7 09:32 > _xkb_test4.xml* > > -rwx------+ 1 dolson None 1584 Feb 7 09:32 > _xkb_test5.xml* > > -rwx------+ 1 dolson None 696 Feb 7 09:32 > _xkb_test6.xml* > > -rwx------+ 1 dolson None 585 Feb 7 09:32 > _xkb_test7.xml* > > -rwx------+ 1 dolson None 939 Feb 7 09:32 > _xkb_test8.xml* > > -rwx------+ 1 dolson None 1854 Feb 7 09:32 > _xkb_test9.xml* > > drwx------+ 4 dolson None 0 Feb 7 09:32 build/ > > -rwx------+ 1 dolson None 225 Apr 3 2002 build.bat* > > -rwx------+ 1 dolson None 112 Apr 3 2002 build.sh* > > -rwx------+ 1 dolson None 9950 Nov 28 10:26 build.xml* > > drwx------+ 3 dolson None 0 Feb 6 09:24 config/ > > drwx------+ 2 dolson None 0 Feb 6 13:09 data/ > > -rwx------+ 1 dolson None 3037 Feb 7 09:26 env.txt* > > drwx------+ 2 dolson None 0 Feb 6 09:24 lib/ > > drwx------+ 2 dolson None 0 Feb 7 09:32 logs/ > > -rwx------+ 1 dolson None 147 Feb 6 13:45 runTest* > > -rwx------+ 1 dolson None 2362 Feb 7 09:33 sertest.ser* > > -rwx------+ 1 dolson None 994 Apr 3 2002 setenv.bat* > > drwx------+ 4 dolson None 0 Feb 6 09:24 src/ > > > > > > Doug Olson > > Senior Member Technical Staff > > TPS Software > > do...@tp... > > > > > > > > |
From: Jochen H. <joc...@ba...> - 2003-02-07 17:27:48
|
Hi Doug, I did a build using Cygwin (>2.13) too, and everything is working fine. See my bash log: $ . ./build.sh clean Buildfile: build.xml clean: [delete] C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\classes not found. BUILD SUCCESSFUL Total time: 1 second I have no name!@DEST-LT20-009 ~/tmp/Mandarax-Bug-Build/mandarax_2_1_1 $ . ./build.sh tests Buildfile: build.xml check_for_optional_packages: prepare: [mkdir] Created dir: C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build [mkdir] Created dir: C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build\classes [mkdir] Created dir: C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build\lib compile: [javac] Compiling 344 source files to C:\tmp\Mandarax-Bug-Build\mandarax_2_1 _1\build\classes jar: [copy] Copying 1 file to C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\logs [jar] Building jar: C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1\build\lib\man darax-2.1.1.jar tests: [junit] Running test.org.mandarax.testsupport.TestAll [junit] Tests run: 336, Failures: 0, Errors: 0, Time elapsed: 3,265 sec [delete] Deleting 18 files from C:\tmp\Mandarax-Bug-Build\mandarax_2_1_1 BUILD SUCCESSFUL Total time: 22 seconds I have no name!@DEST-LT20-009 ~/tmp/Mandarax-Bug-Build/mandarax_2_1_1 $ Your logfile makes no sense for me. Very strange... Can you help me to identify your problem ? 1. Enable the log4j debugging copy the attached file log4.properties to ./src directory Will enable debugging while running Mandarax. 2. Please run the build with verbose option ./build.sh -verbose clean tests So I have the chance, to see the CLASSPATH when calling Junit. Can you send me the test.log.txt and the output of the build back ? Thanks, Jochen > -----Original Message----- > From: dolson [mailto:do...@tp...] > Sent: Freitag, 7. Februar 2003 16:37 > To: 'Jochen Hiller' > Subject: RE: Problem running junit suite + Mandarax progress > > > Jochen, > > Thanks for the help. I am running everything under a bash shell > using cygwin. The following is my environment information and another > attempted run with the resulting log file attached (I have included my > complete environment in the attached env.txt file). I have also tried > running the tests under a dos command window with the same results: > > ~/src/rulesEngineTest [507] env |grep JAVA_HOME > JAVA_HOME=c:/jdk1.3.1_06 > ~/src/rulesEngineTest [508] env |grep ANT_HOME > ANT_HOME=c:/Java/ant-1.5.1 > ~/src/rulesEngineTest [509] env|grep MANDARAX > MANDARAX_CLASSPATH=/olson/src/rulesEngineTest/lib/crimson.jar:/olson/src > /rulesEngineTest/lib/jaxp1.1.jar:/olson/src/rulesEngineTest/lib/jdom.jar > :/olson/src/rulesEngineTest/lib/junit.jar:/olson/src/rulesEngineTest/lib > /log4j.jar:/olson/src/rulesEngineTest/lib/sqlx.jar > MANDARAX_HOME=/olson/src/rulesEngineTest > ~/src/rulesEngineTest [510] env|grep CLASSPATH > CLASSPATH=/olson/src/rulesEngineTest/lib/crimson.jar:/olson/src/rulesEng > ineTest/lib/jaxp1.1.jar:/olson/src/rulesEngineTest/lib/jdom.jar:/olson/s > rc/rulesEngineTest/lib/junit.jar:/olson/src/rulesEngineTest/lib/log4j.ja > r:/olson/src/rulesEngineTest/lib/sqlx.jar > MANDARAX_CLASSPATH=/olson/src/rulesEngineTest/lib/crimson.jar:/olson/src > /rulesEngineTest/lib/jaxp1.1.jar:/olson/src/rulesEngineTest/lib/jdom.jar > :/olson/src/rulesEngineTest/lib/junit.jar:/olson/src/rulesEngineTest/lib > /log4j.jar:/olson/src/rulesEngineTest/lib/sqlx.jar > ~/src/rulesEngineTest [511] ./build.sh clean > Buildfile: build.xml > > clean: > [delete] Deleting 1 files from C:\olson\src\rulesEngineTest\logs > [delete] Deleting 1 files from C:\olson\src\rulesEngineTest\logs > [delete] Deleting directory C:\olson\src\rulesEngineTest\build > > BUILD FAILED > file:c:/olson/src/rulesEngineTest/build.xml:183: > C:\olson\src\rulesEngineTest\classes not found. > > Total time: 1 second > ~/src/rulesEngineTest [512] ./build.sh clean > Buildfile: build.xml > > clean: > > BUILD FAILED > file:c:/olson/src/rulesEngineTest/build.xml:183: > C:\olson\src\rulesEngineTest\classes not found. > > Total time: 1 second > ~/src/rulesEngineTest [513] ./build.sh tests > Buildfile: build.xml > > check_for_optional_packages: > > prepare: > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build\classes > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build\lib > > compile: > [javac] Compiling 344 source files to > C:\olson\src\rulesEngineTest\build\classes > > jar: > [copy] Copying 1 file to C:\olson\src\rulesEngineTest\logs > [jar] Building jar: > C:\olson\src\rulesEngineTest\build\lib\mandarax-2.1.1.jar > > tests: > [junit] Running test.org.mandarax.testsupport.TestAll > [junit] Tests run: 336, Failures: 0, Errors: 334, Time elapsed: > 2.047 sec > > BUILD FAILED > file:c:/olson/src/rulesEngineTest/build.xml:112: Test > test.org.mandarax.testsupport.TestAll failed > > Total time: 12 seconds > ~/src/rulesEngineTest [514] > > > This is the directory listing after the tests fail: > > ~/src/rulesEngineTest [519] l > total 49 > -rwx------+ 1 dolson None 482 Feb 7 09:32 _xkb_test1.xml* > -rwx------+ 1 dolson None 2119 Feb 7 09:32 _xkb_test10.xml* > -rwx------+ 1 dolson None 1078 Feb 7 09:32 _xkb_test11.xml* > -rwx------+ 1 dolson None 1645 Feb 7 09:32 _xkb_test12.xml* > -rwx------+ 1 dolson None 1643 Feb 7 09:32 _xkb_test13.xml* > -rwx------+ 1 dolson None 1721 Feb 7 09:33 _xkb_test14.xml* > -rwx------+ 1 dolson None 577 Feb 7 09:33 _xkb_test15.xml* > -rwx------+ 1 dolson None 1084 Feb 7 09:33 _xkb_test16.xml* > -rwx------+ 1 dolson None 1084 Feb 7 09:33 _xkb_test17.xml* > -rwx------+ 1 dolson None 1553 Feb 7 09:33 _xkb_test18.xml* > -rwx------+ 1 dolson None 550 Feb 7 09:32 _xkb_test2.xml* > -rwx------+ 1 dolson None 505 Feb 7 09:32 _xkb_test3.xml* > -rwx------+ 1 dolson None 675 Feb 7 09:32 _xkb_test4.xml* > -rwx------+ 1 dolson None 1584 Feb 7 09:32 _xkb_test5.xml* > -rwx------+ 1 dolson None 696 Feb 7 09:32 _xkb_test6.xml* > -rwx------+ 1 dolson None 585 Feb 7 09:32 _xkb_test7.xml* > -rwx------+ 1 dolson None 939 Feb 7 09:32 _xkb_test8.xml* > -rwx------+ 1 dolson None 1854 Feb 7 09:32 _xkb_test9.xml* > drwx------+ 4 dolson None 0 Feb 7 09:32 build/ > -rwx------+ 1 dolson None 225 Apr 3 2002 build.bat* > -rwx------+ 1 dolson None 112 Apr 3 2002 build.sh* > -rwx------+ 1 dolson None 9950 Nov 28 10:26 build.xml* > drwx------+ 3 dolson None 0 Feb 6 09:24 config/ > drwx------+ 2 dolson None 0 Feb 6 13:09 data/ > -rwx------+ 1 dolson None 3037 Feb 7 09:26 env.txt* > drwx------+ 2 dolson None 0 Feb 6 09:24 lib/ > drwx------+ 2 dolson None 0 Feb 7 09:32 logs/ > -rwx------+ 1 dolson None 147 Feb 6 13:45 runTest* > -rwx------+ 1 dolson None 2362 Feb 7 09:33 sertest.ser* > -rwx------+ 1 dolson None 994 Apr 3 2002 setenv.bat* > drwx------+ 4 dolson None 0 Feb 6 09:24 src/ > > > Doug Olson > Senior Member Technical Staff > TPS Software > do...@tp... > > > |
From: Jochen H. <joc...@ba...> - 2003-02-07 14:50:58
|
Hi Doug, I got your message from Jens, but the logfile missed. I did an complete build and running tests of the 2.1.1 version, using - JDK 1.3.1_06 - JDK 1.4.1 - ANT 1.4.1 - ANT 1.5.1 Everything works fine in my environment. I just do: - starting a plain shell (I am using Windows, starting a CMD.exe) - setting JAVA_HOME to the used jdk - setting ANT_HOME to the ANT version - setting the CLASSPATH to include ./lib/junit.jar - in windows, set it via set CLASSPATH=./lib/junit.jar;%CLASSPATH% or use the setenv.bat - or set it in Unix via CLASSPATH=./lib/junit.jar:$CLASSPATH ; export CLASSPATH - if junit is not within the classpath, ANT cannot start the junit test runner. But this will give you a different error message as you described. We are using JUnit 3.7 which made a change from the assert () method to assertTrue () to be compliant to the new JDK 1.4 assert mechanism. I also checked usage of JUnit 3.5, which does NOT include the assertTrue (e.g. to a strange CLASSPATH), but this will result in compile errors, and no runtime failures. So, if you send me your logfile, I will have a look into. And, please describe your environment. I would be happy to help you, Bye, Jochen > -----Original Message----- > From: Doug Olson [mailto:do...@tp...] > Sent: Thursday, February 06, 2003 7:50 PM > To: 'jen...@un...' > Subject: Problem running junit suite > > > Jens, > > I am evaluating Mandarax for a project I am working on that required > a rules engine and I am having difficulty running the junit test > suite from > the > > "Mandarax 2.1.1 source code + ant build script + required libs (1272 k)" > > download. The following is the output from standard out: > > ~/src/rulesEngineTest [535] ./build.sh tests > Buildfile: build.xml > > check_for_optional_packages: > > prepare: > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build\classes > [mkdir] Created dir: C:\olson\src\rulesEngineTest\build\lib > > compile: > [javac] Compiling 344 source files to > C:\olson\src\rulesEngineTest\build\classes > > jar: > [copy] Copying 1 file to C:\olson\src\rulesEngineTest\logs > [jar] Building jar: > C:\olson\src\rulesEngineTest\build\lib\mandarax-2.1.1.jar > > tests: > [junit] Running test.org.mandarax.testsupport.TestAll > [junit] Tests run: 336, Failures: 0, Errors: 334, Time elapsed: 2.172 > sec > > BUILD FAILED > file:c:/olson/src/rulesEngineTest/build.xml:112: Test > test.org.mandarax.testsupport.TestAll failed > > Total time: 12 seconds > ~/src/rulesEngineTest [536] > > > I have attached the log file for your information in the hope that you can > diagnose the problem. I have looked at the code being run and it appears > that the junit method assertTrue() is what in being complained about? > > Thanks for any help you can provide, > > Doug Olson > Senior Member Technical Staff > TPS Software > do...@tp... > > |
From: Jochen H. <joc...@ba...> - 2002-11-14 22:33:48
|
Hallo Mathias, sorry dass ich mich erst jetzt melde, war beruflich die ganze Woche unterwegs. Das Prinzip hinter Mandarax ist folgendes: Fakten und Regeln lassen sich entweder per - Java API - XML Sprache (Mandarax-eigen, RuleML) - GUI (z.B. per Oryx, oder RuleML Editor, siehe auch die www.mandarax.org) definieren. Man kann dabei einfach Fakten/Regeln definieren (wie z.B. auch in Prolog), und dann Fragen an die Wissensbasis stellen. Fuer ein Beispiel, wie das recht einfach in Java zu machen ist, siehe auch das Mandarax Tutorial. Ich habe auch auf dem Java Forum Stuttgart 2002 (www.jfs2002.de) einen Vortrag mit einem kleinen Tutorial gehalten. Das Bsp. entspricht aber ziemlich dem CRM Beispiel, was mit Mandarax mitkommt. Du willst dann ja die Fakten / Regeln mit vorhandenen Java Objekten verknuepfen. Das ist genau die Staerke von Mandarax. Du kannst über - Java Reflection - SQL-Package - eigene Adapters deine Objektwelt mit der Fakten/Regel Welt ganz transparent verknuepfen. Ich lege dir die Toturials bei (sind Scrapbooks fuer VisualAge oder Eclipse). Wie kommt das nun mit dem XML zusammen ? Man kann über die XML Schnittstelle von Mandarax eine Wissensbasis (Fakten/Regeln) nach XML importieren / exportieren. Dabei kann man auch diese Verknuepfung zu den Fakten/Regeln per Zuordnung zu Java-Klassen herstellen. Bsp, Auszug aus einer XML Datei (die ganze XML Datei liegt bei): <_body> <and> <atom> <_opr> <mandarax_lib_predicate name="org.mandarax.lib.math.DoubleArithmetic$GreaterThan" /> </_opr> <terms> <complex_term> <jfunction name="turnover/payment"> <method name="getTurnover"> <declaring_type> <type class_name="de.jfs2002.mandarax.crm.Customer" /> </declaring_type> <parameter_types> <type class_name="int" /> <type class_name="de.jfs2002.mandarax.crm.KindOfPayment" /> </parameter_types> </method> </jfunction> <terms> <var name="a customer"> <type class_name="de.jfs2002.mandarax.crm.Customer" /> </var> <ind> <type class_name="java.lang.Integer" /> <object data="12" object_type="primitive" class="java.lang.Integer" id="175b59:eead3e1bfb:-8000" /> </ind> <ind> <type class_name="de.jfs2002.mandarax.crm.KindOfPayment" /> <object object_type="bean" class="de.jfs2002.mandarax.crm.KindOfPayment" id="175b59:eead3e1bfb:-7ffe"> <properties> <object data="Company Visa Card" object_type="primitive" class="java.lang.String" id="175b59:eead3e1bfb:-7fff" property_name="description" /> </properties> </object> </ind> </terms> </complex_term> <ind> <type class_name="java.lang.Double" /> <object data="200.0" object_type="primitive" class="java.lang.Double" id="175b59:eead3e1bfb:-7ffd" /> </ind> </terms> </atom> </and> </_body> Mit dem Mandarax eigenen XML Format geht das prima. Einschraenkungen hat nur das RuleML Format, da dort einfach diese Konstrukte nicht vorgesehen sind. RuleML unterstuetzt keine Typsierung, damit auch kein Binden an die Java Typen. Ich lege dir eine zweite XML Datei bei, die dieselbe Wissenbasis als RuleML enthaelt. Die Grundidee ist aber, dass man mit GUI Tools wie z.B. dem RuleML Editor, bzw. Oryx als Addon Produkt diese Regeln komfortabel definieren kann. Schau doch mal bei www.jbdietrich.de vorbei, und lade dir mal Oryx runter. Das kann ja deine Anforderunge vielleicht sehr einfach loesen. Ich hoffe das hilft dir, sonst melde dich wieder bei mir. Gruss, Jochen PS: Um was geht es bei der Diplomarbeit ? -----Original Message----- From: Mathias Haushofer [mailto:Mat...@ra...] Sent: Montag, 11. November 2002 16:55 To: joc...@ma... Subject: Simples mandarax-RuleML-beispiel gesucht hallo jochen! ich bin diplomand bei Ray Sono AG (www.raysono.com) und evaluiere im moment mehrere rule-engines die wir fuer die verwirklichung eines projektes benoetigen koennten. gibt es irgendwo ein ganz simples beispiel, wie ich aus einer java-applikation mittels mandarax-engine regeln aus einer ruleML-Datei einlese und diese auf java-objekte anwende? ich konnte in der dokumentation zu mandarax kein wirklich hilfreiches beispiel dazu entdecken. danke im voraus, mathias |
From: Jochen H. <joc...@ba...> - 2002-11-04 14:39:24
|
Mandarax v2.0 is available !!! New features are: - Negation ("negation as failure" like in prolog) has been added. There is a new inference engine ResolutionInferenceEngine3 supporting negation and several NAF test cases. In the object model, there is a new interface Prerequisite. - New pluggable semantic evaluation policy. - There is a new close() method for ClauseSetIterator. While this method does nothing for clause sets such as facts and rules, it can release resources in cases like SQLClauseSet. This is crucial when using mandarax in server applications where database connections should be released back to the connection pool. SQLFunction also has a flag specifying whether to close the connection after invocation. - There are some new methods in DerivationNode supporting a more detailed analysis of the derivation tree, in particular to mark nodes and branches that support a certain result. - Clause sets and query support additional properties, i.e. simple key value associations. This is useful in many situations, e.g. to store information about who created a certain rule, when was the rule created, or to store ie configuration information with a query. - A new XKB driver (2.0) supporting the respective new features (close connection flag, negation, properties). For details see http://www.mandarax.org/news.html Much fun, Jochen |
From: Jochen H. <joc...@ba...> - 2002-11-04 14:39:24
|
Event Condition Action (ECA) Portfolio Agent available: An Event Condition Action (ECA) based example is available online st sourceforge.net or www.mandarax.org. For details see http://www.mandarax.org/eca.html. Much fun, Jochen |
From: Jochen H. <joc...@ba...> - 2002-07-12 16:32:48
|
Just for everyone -----Original Message----- From: Jens Dietrich [mailto:jen...@un...] Sent: Donnerstag, 11. Juli 2002 16:27 To: Jochen Hiller Subject: FW: [Mandarax-develop] other results in InferenceEngine2 F.Y.I. -----Original Message----- From: Cornel Koch [mailto:cor...@ba...] Sent: Thursday, July 11, 2002 3:03 PM To: 'Jens Dietrich' Subject: AW: [Mandarax-develop] other results in InferenceEngine2 Hello Jens, I've just tried my example with your ResultSetFilter class. And it perfectly worked. thanks, Cornel -----Urspr=FCngliche Nachricht----- Von: Jens Dietrich [mailto:jen...@un...] Gesendet: Mittwoch, 10. Juli 2002 11:55 An: Cornel Koch Betreff: RE: [Mandarax-develop] other results in InferenceEngine2 Sorry for this, Clearly an error. The import statement can just be removed. I attach the source file. Jens -----Original Message----- From: Cornel Koch [mailto:cor...@ba...] Sent: Wednesday, July 10, 2002 11:40 AM To: 'Jens Dietrich' Subject: AW: [Mandarax-develop] other results in InferenceEngine2 Hello Jens, I tried your version 1.8.1 beta and it almost worked: Using IE2, I got 2 results (the two results were the same..) and with the (old) IE, I got 1 result (the same as the two others from IE2). So it actually worked, but IE2 listed two identical results. I suppose, y= our ResultSetFilter class would fix that problem, but cause you import a clas= s from oryx I was unable to compile it. thanks, Cornel -----Urspr=FCngliche Nachricht----- Von: Jens Dietrich [mailto:jen...@un...] Gesendet: Mittwoch, 10. Juli 2002 11:13 An: Cornel Koch Cc: Jochen Hiller Betreff: RE: [Mandarax-develop] other results in InferenceEngine2 Cornel, Please find attached version 1.8.1 beta. There are two changes in the inference engine. I also added plenty of log4j DEBUGs to trace the infere= nce process. The old test cases all make it, I will see whether I can more te= st cases to reflect the latest changes. Also have a look to the new class .. util.ResultSetFilter !! I don't have much time, please try to replace mandarax by the attached version and let me know whether this solves the problem. Cheers, Jens -----Original Message----- From: Cornel Koch [mailto:cor...@ba...] Sent: Wednesday, July 10, 2002 9:05 AM To: 'jen...@un...' Subject: AW: [Mandarax-develop] other results in InferenceEngine2 Hello Jens, I send you this example where this strange behaviour occurred. Just unzip the attached file and run $>build tests Thanks, Cornel -----Urspr=FCngliche Nachricht----- Von: Jochen Hiller [mailto:joc...@ba...] Gesendet: Freitag, 5. Juli 2002 09:11 An: Cornel Koch Cc: Jens Dietrich; Mandarax-Develop Betreff: RE: [Mandarax-develop] other results in InferenceEngine2 Hi Cornel, if you have a case like described above, if assume there will be any "bug= " in one the engines, probably in the InferenceEngine2, as it is very new (= and probably not tested throurough as the previous one). Can you send the examples to me and Jens (mailto:jen...@un...) ? Thanks, Jochen -----Original Message----- From: man...@li... [mailto:man...@li...]On Behalf Of Cornel Koch Sent: Sonntag, 30. Juni 2002 09:06 To: 'man...@li...' Subject: [Mandarax-develop] other results in InferenceEngine2 Hello, Question: is it possible, that your new InferenceEngine2 gives no results for a query but the InferenceEngine (which always gives only one result) gives a result? If yes, I what cases? If no, I could give you an example, where this happens. I use (the very nice) Mandarax version 1.8. thanks, Cornel ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Mandarax-develop mailing list Man...@li... https://lists.sourceforge.net/lists/listinfo/mandarax-develop |
From: Jochen H. <joc...@ba...> - 2002-06-08 21:04:15
|
Jens, kannst du nicht alle Emails an die Mandarax-Mailing Lists posten (C= C), entweder die Developer oder die User-List, je nach Fragestellung ? Dann kapieren es vielleicht auch die Leute, dass Sie sich primaer da hinwenden sollen. Du kannst ja auch jeden darauf aufmerksam machen. Gruss, Jochen PS: Willst du oder soll ich noch ein paar nachtraeglich hinposten ? Just als Reminder: man...@li... man...@li... -----Original Message----- From: Jens Dietrich [mailto:jen...@un...] Sent: Donnerstag, 6. Juni 2002 12:50 To: 3??=A1=EA2=A1=A7 Cc: Jochen Hiller; die...@mw... Subject: RE: bug for mandarax! Thanks for the info, I will check it asap!! thx, Jens -----Original Message----- From: =B3=C2=BD=A3=B2=A8 [mailto:ch...@gs...] Sent: Thursday, June 06, 2002 12:26 PM To: jen...@un... Subject: bug for mandarax! Importance: High Hi I'm a chinese programmer.your mandarax is a great software! i'm n= ow using it to develop a access control system.it is very easy to use your soft.much thx to you! i find a bug in SqlClauseSet.java line 291(method equals) i think this line should be : (result && ((whereClause =3D=3D null) ? (c.whereClause =3D=3D null) : whereClause.equals(c.whereClause))); ch...@gs... 2002/6/6 |