[comp.sys.mac.hypercard] XCMD and XFCN questions

mary@chaos.cs.brandeis.edu (Mary F Wentworth) (09/14/90)

Hi- I'm a new HyperCard programmer. I've got a couple of questions that I've
not been able to find answers to. Maybe someone can help???

I am designing a HyperCard-based intelligent tutoring system that will need to access a
database of previous cases or episodes to explain a current situation to the user.(In AI
terminology, I'm using case-based reasoning techniques). I having existing
code written in LISP that takes situation features as input by the user
and use some fancy techniques to decide which cases with partially-matching
features from the database should be retrieved. Is it possible to modularize
this LISP code to segments of 32K in size and create XCMDs and XFCN's out of
it or must I rewrite this code in C or Pascal? Since we're pre- System 7 and
have no interapplication communication, I also have been considering launching
HyperCard (or a double-clickable application if I switch to SuperCard) and
Allegro Common LISP together under MultiFinder. I would have LISP "polling" a
memory location(??) and when my application needed the LISP program to do some
processing on the user's input features, it would store those features in that
location. LISP would access those features, operate on them, and place a
value, corresponding to a card id. no. back in that "mailbox" for HyperCard to
retrieve. This seems very awkward and will eat up a lot of RAM (making the
idea seem like very poor design). Any alternative approaches?

I'm also not clear about what kind of data structure would be appropriate for
this database and how to write the XCMD's or XFCN's to create. It was
suggested to me that as long as my database fits into 30K, I could store all of
its information as text in a field in HyperCard, and when the user inputs
features with which to reason and retrieve a new case from the database an XFCN call such as
querydb(query, databasestuff) would parse the query, create a data structure in the
heap and read database stuff into it, and return a card id. no. The card,
which would show the text describing that particular case, would then be shown
to the user. Any thoughts on this or other ideas?

Finally, I would like to allow the user to select features from a collection
of scanned images. I envision the user dragging them and assembling some sort
of montage. This would require HyperTalk code (or XCMDs or XFCNs) to generate
and accumulate some sort of textual representation of the objects selected, so
that these features can then be used for the database retrieval. Someone told
me they saw a stack where a person assembled pizza ingredients graphically
while a running total of the pizza's price was displayed. Anyone know either
how to do this trick or where to access that or a similar stack?


Thank you in advance from a very enthusiastic HyperCard beginner.

Mary Wentworth

 


-- 
                               Mary F. Wentworth