AI Zone Admin Forum Add your forum
ChatScript Open source engine released- basis of 2010 Loebner winner
 
 
  [ # 31 ]

yes, you can put topics, outputmacros, concepts, etc in any file. NORMALLY however, you do not access data in zone 1 from zone 0 (:build 0 and :build 1)


Also, there are :patternmacro you can define for sharing pattern-side code.

And finally, I cheated you, so you would learn about macros, as they are the FIRST place to think of shared code.
Your instinct to create a concept set for your responses was perfectly sound. What you then needed was merely:
^pick(~randomdoyoulikeme)
?: (I like you) pick(~randomdoyoulikeme)

 

 
  [ # 32 ]

You have my humble thanks for that, Bruce. smile The mark of a good teacher is that they encourage their students to pursue new and different avenues of knowledge. I don’t feel cheated at all, since I now know two methods, rather than one. You rock!

BTW, once I’m done with this script, I’m going to make it available to others who wish to transfer their AIML files into chatScript code. If you wish, you’re more than welcome to include it in the chatScript package at that point.

 

 
  [ # 33 ]

Well, it would have been easier for you had I DOCUMENTED pick’s use with concepts. I only documented it for facts. I have revised the documentation.

Your trancoder sounds like it would be useful and I’d be happy to include it (giving YOU as the point of reference for questions and bugs).

Aren’t you the guy who wasn’t going to have time to look at ChatScript til after the CBC?  smile

 

 
  [ # 34 ]
Bruce Wilcox - Mar 22, 2011:

Aren’t you the guy who wasn’t going to have time to look at ChatScript til after the CBC?  smile

Well, since the “collection” phase of the judging is completed, I have no more need to “sit on top” of Morti, and that has freed up a significant block of time for me. Thus, I thought I’d spend an hour or so of time per day working out a translation of AIML to chatScript, so that I don’t have to spend an ungodly amount of time creating new rules from scratch. thus, I consider this to be time well spent. smile

 

 
  [ # 35 ]

I should point out, however, that function files must be read in before they are used (unlike concepts and topics). So your filesxxx.txt will need to load your functions on the sooner side.

 

 
  [ # 36 ]

I had more or less guessed that to be the case. I’ve run afoul of PHP dependencies before, so I know how much of a pain it is to have files load in the wrong order. smile

 

 
  [ # 37 ]

I’m going to start a new thread that outlines my progress with this project of translating AIML to ChatScript. While the main components are in place, I still have a lot of tags to deal with. So I’ll create a “ToDo List”, and try to knock them out, one tag at a time. smile

 

 
  [ # 38 ]

A really great scripting language, I think it has huge potential for various applications.

I was especially impressed by the ease of installation on my Ubuntu - just download, untar and run - without a single “make”!

I am now working on a tutorial for complete beginners (such as myself), and would love to get some feedback. Is there a wiki where I can post it for review?

Also, while working on the tutorial, I ran into some bugs. I reported them in sourceforge, but they seem to be unnoticed. Is there another way to report bugs?

 

 
  [ # 39 ]

the sourceforge project SHOULD be saying the way to report bugs is to email me….. .(JavaScript must be enabled to view this email address)
at present….

Of course, if there gets to be enough general interest, then I should open up sourceforge forums, etc.  But I am taking slow steps.

There currently is no wiki to post for review.  Another task to open up perhaps….
In the meantime you could send it to me, I could review it and add it to the documentation as a new document.

 

 
  [ # 40 ]

I’ve been through the documentation and couldn’t find a way to run external commands and/or communicate with other programmes.  For example, I could run a separate service on the same machine that returns relevant facts when queried.  Is this possible? How would you recommend doing it?

 

 
  [ # 41 ]

there is a system() function you can call to command the OS to do things, but it can only return a status code (the system command doesnt have the ability to return a text string).  There is currently no mechanism for importing data resulting from that activity.  Mostly because I haven’t thought about a good mechanism for that and that is isn’t really compatible with a high-performance server that I’m trying to maintain. The closest I’ve thought of is being able to read a file where the answers are stored, but then I have to specify “how” to read it, and if it has any real size it will slow down the chatbot as server.

 

 
  [ # 42 ]

I’ve given it some more thought.  While you haven’t told me what you actually want to do (which might help), the following is consistent with the engine design and easy for me to implement.

Provide functions to read and write files of text files of facts (one fact per line). The current code already reads fact files on startup (eg see DICT/facts.txt) . I would make it possible to call the read function from script, with arguments that tell it to
a) mark the facts as transient or not so they would either disappear at the end of the volley after being processed by the script or remain around, written into user fact space.
b) leave the file alone or erase it when done.

The write function would write out the contents of a fact set.

bruce

 

 
  [ # 43 ]

Thanks Bruce.  I was actually going to post a follow-up along these lines - i.e. the outside process would update a fact file and then the script would “recompile” these facts. It sounds similar to what you describe here, although using new and/or transient files would be cleaner.

The sort of thing I was thinking of was to augment the chatbot’s knowledge on-the-fly, so if the conversation turns to Charles Dickens, the chatbot could call on a helper, which would provide facts - either to answer questions or even provide “did you know” type gambits.  I think it should be possible to extract facts from Wikipedia, for example.

 

 
  [ # 44 ]

OK.  You are probably a long ways off from actually trying to do this…. but I’ll implement my concept and put it in the next release (probably this weekend, maybe next week)

 

 
  [ # 45 ]

Since you raised the subject - I also need a similar feature.

My project is a bot that can negotiate effectively in natural language. For example, the bot can play the role of an employer, negotiating with a job candidate (the human) about his job conditions.

Automatic negotiation is an active research subject, and there are several algorithms and software agents that can negotiate effectively, but they don’t use natural language, they use structures describing the “bids”, such as “salary=20000, work-hours=10, with car”.

I would like to use ChatScript for managing the dialog, and whenever the user wants to make a bid - send the bid to the software agent, receive the bid from the software agent, and display it to the user.

For this project, it could help if a ChatScript bot could use a TCP/IP connection, or maybe use a “system” command that can return a string.

 

3 of 5
3
 
  login or register to react