I think Henrique Lopes Cardoso wrote:
> 
> So, if I understood correctly, facts can only be asserted in the module 
> where their templates are defined 

Yes.

> 
> Therefore, if I have a template defined in MAIN, I cannot create a fact 
> based on that template in another module.

Right.

> Another observation: using a module name at a deftemplate definition 
> (e.g. (deftemplate m::the-facts ...)), if that module is the current 
> module, is irrelevant.

Redundant, yes. The effect will be the same without it.

A fact and a template are related in exactly the same way that a Java
object and a Java class are related. In this scheme, a module is like
a Java package. Every object must belong to a class; every class must
be in some package. Every fact must belong to a template; every
template must be in some module. So facts don't belong to modules any
more than Java objects belong to packages, right? You can't "create a
java.lang.String in the java.util package;" it just doesn't make
sense, in the same way that you can't "create an X::foo fact in the Y
module." You can use Strings in code in the java.util package, or you
can use X::foo facts in a rule in the Y module.


---------------------------------------------------------
Ernest Friedman-Hill  
Advanced Software Research          Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
PO Box 969, MS 9012                 [EMAIL PROTECTED]
Livermore, CA 94550         http://herzberg.ca.sandia.gov

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

Reply via email to