Andreas,

I see.. "forall" conditional element is scheduled to be released in next version.
  Meanwhile, can you go with something like this?

rule R1
when
 $r : Relation()
 $a : Attribute( relation == $r, evaluated == false )
 InclusionDependency( r1 == $r, a1 != $a )
then
 $a.setNotOK( true );
 $a.setEvaluated( true );
 modify( $a );
end

rule R2
when
 $r : Relation()
 exists ( Attribute( relation == $r, evaluated == true, notOk == true ) )
then
 ..
end

  Not sure if it is the best way... just came up with this "thought"...

  []s
  Edson

Andreas Langegger wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

ah, sure ;-) thanks Edson,

but it seems that my rule is even not what I want...

actually I would need something like:
 $r : Relation()
 forall $a : Attribute( relation == $r ) {
     not InclusionDependency ( r1 == $r, a1 != $a )
 }

I know that cascading is not possible. However, I want to fetch all
Relations $r for which the further constraints hold.

Is this possible with drools?
thanks,
Andy

Edson Tirelli wrote:
 Andreas,

 "Not" conditional element means "Not exists"... so just do:

not InclusionDependency ( r1 == $r, a1 != $a )

 []s
 Edson


Andreas Langegger wrote:

thank you Mark.

But how can I then negate the 3rd condition?
This would mean drools cannot handle a logical forall with field
constraints by negating applying De Morgan.

How can I say, there must not be any InclusionDependency object with r1
== $r and a1 != $a?

like "! exists ( InclusionDependency ( r1 == $r, a1 != $a ) )"

thanks,
Andy

ps: sorry for the second post


Mark Proctor wrote:


You can use bound variables in an 'exists', you can't put an 'exists'
inside of  a 'not'. 'exists' and 'not' can only take Fact patterns as
their children.
Andreas Langegger wrote:
Hi,

the docs say: the not yet implemented "Existential quantifiers [...] is
supported with 'not' and 'exists' conditional elements."

Hence, I tried to formulate a rule like that:

when
  $r : Relation()
  $a : Attribute( relation == $r )
  not ( exists ( InclusionDependency ( r1 == $r, a1 != $a ) ) )
then ...

this is equiv to "forall ( InclusionDependency ( r1 == $r, a1 == $a ) )"

However, Drools doesn't allow to use BOUND VAR CONSTRAINTS together with
EXISTS, right? Can anybody help me out?

Thank you very much,
Andy

---------------------------------------------------------------------
To unsubscribe from this list please visit:


  http://xircles.codehaus.org/manage_email


--
This email has been verified as Virus free
Virus Protection and more available at http://www.plus.net





---------------------------------------------------------------------
To unsubscribe from this list please visit:


 http://xircles.codehaus.org/manage_email
--
----------------------------------------------------------------------
Dipl.-Ing.(FH) Andreas Langegger
Institute for Applied Knowledge Processing
Johannes Kepler University Linz
A-4040 Linz, Altenberger Straße 69


http://www.faw.at
http://www.langegger.at
- ---------------------------------------------------------------------
To unsubscribe from this list please visit:
  http://xircles.codehaus.org/manage_email



---------------------------------------------------------------------
To unsubscribe from this list please visit:

  http://xircles.codehaus.org/manage_email


- --
- ----------------------------------------------------------------------
Dipl.-Ing.(FH) Andreas Langegger
Institute for Applied Knowledge Processing
Johannes Kepler University Linz
A-4040 Linz, Altenberger Straße 69
http://www.faw.at
http://www.langegger.at
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFP3gaKk9SuaNc5+IRAnmiAJ9Pr8ERWaFKTZ7ceL2Wzf4GNJtnHwCglcOu
h5wvYLm80qAPd5Fo0Eg1a9A=
=aj7u
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email




---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to