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