JESS: [EXTERNAL] need help on Learning content management for JESS based Tutoring System

2013-05-16 Thread Rejaul Barbhuiya
Please bear with me as I am explaining in a bit details about my problem
status.

I am designing an Intelligent Tutoring System using JESS and J2EE.
My ITS's teaching cycle is as follows:
present learning material - present one/more examples - assess learning
outcome through MCQ or fill_in_gap type questions. In between there will be
feedbacks to maintain learner's positive motivation level.

My domain knowledge will structured hierarchically as
domain_subject - module- topic- concept. each concept consists of 3
types of Learning objects (theory, example and question).

The jess rules will decide the next learning object, which feedback message
to display and when, etc.

Below I am giving in brief some of my templates and jess rules in textual
format:

(deftemplate student
(slot stud-id) (multislot stud-name) (slot performance-history)
(multislot stud-clas) (slot session-no))

(deftemplate concept
(slot parent-topic) (multislot lo-names) (multislot lo-ids) (multislot
concept-name) (slot concept-id) (slot status) (slot stud-id) (multislot
pre-req-concept) (slot next-concept) (slot prev-concept))

(deftemplate learning-object
(slot parent-concept) (multislot lo-name) (slot lo-type) (slot lo-id)
(slot reqd-time)
(slot elapsed-time) (slot diff-level) (slot status) (slot attempt-count
(default 0))  (slot stud-id) (slot prev-lo) (slot next-lo))

Some of the rules in textual form
1. if learner succeeds in a problem of difficulty-level 'EASY', next
select a problem of difficulty-level 'MEDIUM'
2. if learner succeeds in a problem of difficulty-level 'MEDIUM', next
select a problem of difficulty-level 'TOUGH'
3. if learner fails in a problem of difficulty-level 'MEDIUM', next select
a problem of difficulty-level 'EASY'
4. if learner fails in a problem of difficulty-level 'TOUGH', next select
a problem of difficulty-level 'MEDIUM'


Now given this, I am not sure whether my approach is correct in terms of
tool selection or not? Also, how should I represent the learning materials?

Thanks,
-- 
*Rejaul Karim Barbhuiya*
Senior Research Fellow

Department of Computer Science
Jamia Millia Islamia
New Delhi, India
Phone: +91-9891430568


Re: JESS: [EXTERNAL] Adding facts that are instances of from-class deftemplates

2013-05-16 Thread Henrique Lopes Cardoso
Thanks for the dog analogy...

But going back to practical uses, one aspect that I like when creating a
fact directly from a from-class template (i.e., a doghouse without a dog --
I can still make some reasoning over the doghouse) is that the Jess code to
do it is much more readable and compact, since you provide values for named
slots.
Something like:


(deftemplate Person (declare (from-class Person)))
(assert (Person (name Henrique) (age 38)))

When using definstance, I would have to go:
(bind ?p (new Person Henrique 38)); assuming there is such a
constructor
(definstance Person ?p)

or
(bind ?p (new Person))
(?p setName Henrique)
(?p setAge 38)
(definstance Person ?p)

Now, when you have a class with many data members this becomes quite
complex.

Any comments? Thanks!

Henrique



On Fri, May 10, 2013 at 3:21 PM, Friedman-Hill, Ernest
ejfr...@sandia.govwrote:

  The **real** way to add shadow facts is using the “definstance”
 function. It has a number of options that aren’t available with “add”. The
 “add” function was added to Jess to support the simplified semantics of
 JSR-94 (the javax.rules API) but the intent is that most Jess users will
 use “definstance.”

 ** **

 Asserting a fact directly from a from-class template is like buying a
 doghouse; you don’t expect to go out the next morning and find that somehow
 it has a dog in it, right? It’s certainly something you can do, but in
 normal life it’s not very useful; usually you get a doghouse when you buy a
 dog, and “add” and “definstance” will both get you a doghouse for your Java
 object “dog” automatically.

 ** **

 *From:* owner-jess-us...@sandia.gov [mailto:owner-jess-us...@sandia.gov] *On
 Behalf Of *Henrique Lopes Cardoso
 *Sent:* Friday, May 10, 2013 4:54 AM
 *To:* jess-users
 *Subject:* JESS: [EXTERNAL] Adding facts that are instances of from-class
 deftemplates

 ** **

 Hi,

 ** **

 I am concerned with the at least two different ways in which you can add,
 to working memory, facts that are instances of from-class deftemplates.***
 *

 Lets say I have:

 ** **

 (deftemplate FC (declare (from-class FC)))

 ** **

 I can add a shadow fact like this:

 ** **

 (bind ?fc (new FC))

 (add ?fc)

 ** **

 This is the general approach described in Section 5.3.2 of the Jess manual.
 

 But I can also simply go like:

 ** **

 (assert (FC))

 ** **

 I guess in this case I do not get a shadow fact, since the OBJECT slot is
 nil.

 ** **

 So, my question is: if my facts are not supposed to be changed from Java
 code, is there any difference in using each of these approaches?

 Section 5.3 from the Jess manual does not even mention that instances of
 from-class deftemplates can be created using the second approach above.***
 *

 ** **

 Thanks!

 ** **

 Henrique

 ** **




-- 

- - - - - -  -  -  -  -  -   -   -

Henrique Lopes Cardoso
DEI/FEUP
Rua Dr. Roberto Frias | 4200-465 Porto
PORTUGAL
 VoIP: (+351) 220413355
Phone: (+351) 225081400 ext.1315...@fe.up.pt | www.fe.up.pt/~hlc
- - - - - -  -  -  -  -  -   -   -