Hi Dr Hill,
Thank you very much for your reply. I should have done more research before
doing this project, looks like I'm in big trouble now...
Could you please help me to suggest a suitable method to get these facts out
of Jess? My Java program passes a "user" fact with health information to
Jess for processing. Afterwhich "recommended exercises" facts will be
created. I need to find a way for Java to pull up these facts and display
them in a table format in Java GUI.
Thank you so very much again
Rick
Below is a sample of the real facts created in the Jess working memory after
processing
1 match-cardio-machine fact
2 program-toning facts
9 match-muscle-machine facts
***************************************************************************************
(match-cardio-machine
(purpose cardio)
(station C1 C2 C8 C9))
(program-toning
(ident condition)
(dura 3) (rm 25) (rep 10-15) (set 1) (rest 0.5)
(explanation "This is the
conditioning stage"))
(program-toning
(ident improve)
(dura 6) (rm 30) (rep 15-20) (set 2-3) (rest 0.5-1)
(explanation "This is
the improving stage"))
(match-muscle-machine (body-part arms-upperfront) (station A2 A5 A7))
(match-muscle-machine (body-part arms-upperback) (station A2 A9 A10))
(match-muscle-machine (body-part shoulders) (station A4 W3 C6))
(match-muscle-machine (body-part chest) (station O1))
(match-muscle-machine (body-part abs) (station O5 O3))
(match-muscle-machine (body-part back) (station L3 L5))
(match-muscle-machine (body-part butt) (station A2 L0 L9))
(match-muscle-machine (body-part legs-upperfront) (station X10 T10))
(match-muscle-machine (body-part legs-upperback) (station D2))
****************************************************************************************
Below is their template
(deftemplate match-cardio-machine
(slot purpose)
(multislot station) );;close
(deftemplate program-toning
(slot ident)
(slot dura)
(slot rm)
(slot rep)
(slot set)
(slot rest)
(slot explanation) );;close
(deftemplate match-muscle-machine
(slot body-part)
(multislot station) );;close
**********************************************************************************
Ernest Friedman-Hill wrote:
>
> No, you can't. This was asked on this very list just a few weeks ago;
> see here for the explanation:
>
> http://www.mail-archive.com/[email protected]/msg09159.html
>
> On Mar 20, 2007, at 11:52 PM, ricktee wrote:
>
>>
>> Hi Dr Hill,
>> I just read your eg on queries at
>> http://herzberg.ca.sandia.gov/jess/docs/61/language.html#queries
>>
>> Im wonder if it's possible to search query via the fact's name
>> instead of
>> its slots and multislots
>>
>>
>> *****This is my "program-cardio" and "user" fact template
>> (deftemplate program-cardio
>> (slot ident)
>> (slot stageA-intesity%)
>> (slot stageA-duration-wks)
>> (slot stageB-intesity%)
>> (slot stageB-duration-wks) );;close
>>
>> (deftemplate user
>> (slot answer) );;close
>>
>>
>> ****this is my rule that asserts "program-cardion" fact if the user
>> answer
>> is "poor"
>> (defrule recommend-program-poor
>> (user (answer poor))
>> => (assert (program-cardio (ident cardio-low)
>> (stageA-intesity% 30) (stageA-duration-wks 3)
>> (stageB-intesity% 50) (stageB-duration-wks
>> 5)))
>> (printout t " Jess: recommends low-cardio running schedule " ) );close
>>
>>
>> ****** This is my query search taken from
>> http://herzberg.ca.sandia.gov/jess/docs/61/language.html#queries
>> (defquery search
>> (declare (variables ?tofind ))
>> (program-cardio (ident ?tofind)
>> (stageA-intesity% ?a-int) (stageA-duration-wks ?a-wks)
>> (stageB-intesity% ?b-int) (stageB-duration-wks ?b-wks)))
>>
>>
>> I try to replace "program-cardio" with ?tofind but I will get an
>> error. Is
>> there a way for me to query facts via its own name? like
>>
>> (defquery search
>> (declare (variables ?tofind ))
>> ( ?tofind (ident ?id)
>> (stageA-intesity% ?a-int) (stageA-duration-wks ?a-wks)
>> (stageB-intesity% ?b-int) (stageB-duration-wks ?b-wks)))
>>
>> below is the java code to run it, I need to replace "cardio-low" with
>> "program-cardio"
>>
>> //...
>> engine.store("RESULT", engine.runQuery("search",
>> new ValueVector().add(new Value("cardio-low" ,
>> RU.ATOM))));
>>
>> engine.executeCommand("(store RESULT (run-query search
>> cardio-low))");
>>
>> // Fetch the result (an Iterator).
>> Iterator e = (Iterator)
>> engine.fetch("RESULT").externalAddressValue(null);
>> //...
>>
>> Thank you very much
>> rick
>>
>
> ---------------------------------------------------------
> 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://www.jessrules.com
>
> --------------------------------------------------------------------
> 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]
> --------------------------------------------------------------------
>
>
>
--
View this message in context:
http://www.nabble.com/Retrieve-Fact-from-Java-tf3432213.html#a9596326
Sent from the Jess mailing list archive at Nabble.com.
--------------------------------------------------------------------
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]
--------------------------------------------------------------------