|
Posted: Sep 27, 2011 |
[ # 31 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
Thanks Robert,
You answered my question.
By ‘normalize’ I meant if 2 agents return a result then how do you judge between the 2 scores. If a math agent and a AIML agent both had an answer to ‘1+1’ then how is the competition resolved. Since the Alice AIML set doesn’t have scores, I was interested in how you were scoring responses. I like your ability to modify scoring at run time. I have been hesitant to try to score individual responses based on the sheer size that a response database could be and the fact that context would influence the actual scores. In Skynet-AI, I implemented an analog priority system that works pretty well, but as size grows I have been considering how I might have individual modules compete in parallel.
|
|
|
|
|
Posted: Sep 27, 2011 |
[ # 32 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
Depending on the function, method, module (whatever you want to call it) you use to handle the AIML responses, obtaining or creating a “confidence score” shouldn’t be all that difficult. Recently, I cam across this page, written by Dr. Wallace (or his crew) that outlines the Graphmaster method of “scoring” patterns for selection of the “most correct” response template for a given input. The score used to choose the response should be easily converted into a usable value for the Agent Controller to judge with. At least, that’s what I would do.
|
|
|
|
|
Posted: Mar 21, 2013 |
[ # 33 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
If you could create the perfect AI/Chatbot language, what would be in it?
OR
What do you now find difficult to do in your favorite AI/Chatbot language?
|
|
|
|
|
Posted: Mar 21, 2013 |
[ # 34 ]
|
|
Senior member
Total posts: 697
Joined: Aug 5, 2010
|
here are a few things I’d still like to add to my language:
-compile to native CIL for more speed improvements (possibly optimize some items to VC++‘s new massive parallel processing library (so use the GPU for certain tasks)
-add the ability to create ‘new types’ that can be instantiated (like a class is a type definition for an object).
|
|
|
|
|
Posted: Mar 21, 2013 |
[ # 35 ]
|
|
Member
Total posts: 16
Joined: Feb 16, 2013
|
I don’t think a standard language is needed. Everyone has their own opinion on a language and its syntax, some of which they may or may not like for various reasons. Although I don’t know much about the languages you listed in the original post Merlin, it seems as if most of those languages have similar functionality. So why not instead of having a standard language have a standard library or definition of tools and algorithms that could be implemented in any language (Java, C/C++/C#, Python, ect.) that would make it easy for developers to use. On top of that then if they wanted, he or she could have a custom scripting language (AIML, ChatScript, RiveScript, JAIL, ect.) of their choice.
|
|
|
|
|
Posted: Mar 21, 2013 |
[ # 36 ]
|
|
Senior member
Total posts: 697
Joined: Aug 5, 2010
|
So why not instead of having a standard language have a standard library or definition of tools and algorithms that could be implemented in any language (Java, C/C++/C#, Python, ect.) that would make it easy for developers to use. On top of that then if they wanted, he or she could have a custom scripting language (AIML, ChatScript, RiveScript, JAIL, ect.) of their choice.
That’s pretty much what I did (except of course that it’s a platform, not a generic set of algorithms, although you could refactor it to that if you like). I created the neural network engine: a db & interpreter. On top of which it is easy to implement any type of chatbot system. I have built my own ‘chatbot’ language on top of this and as an example, it’s also already able to import AIML. But it’s not restricted to this type of system.
|
|
|
|
|
Posted: Mar 21, 2013 |
[ # 37 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
Chad J - Mar 21, 2013: it seems as if most of those languages have similar functionality. So why not instead of having a standard language have a standard library or definition of tools and algorithms that could be implemented in any language (Java, C/C++/C#, Python, ect.) that would make it easy for developers to use. On top of that then if they wanted, he or she could have a custom scripting language (AIML, ChatScript, RiveScript, JAIL, ect.) of their choice.
Chad,
As you say, since most of the languages have similar functionality, I thought it might help to create a standard. As you can see by the age of the first post, I did not get a lot of enthusiasm from the community. My latest post was prompted by Noah’s request for input on enhancements to RiveScript. As Jan did with his language, many of us have gone off and implemented languages/features in our own systems. I had thought we all might make progress faster by pooling our resources on a common standard that could codify best practices. In lieu of that, each of us writes input/output converters for his own system. That means instead of just 1 input/output system, you write 1 for every format you want to interface to. Not a big deal, but more of a sideways activity than progress.
My background is in graphics technology. Before PostScript, each vendor had his own language to interface between the front-end and the output device. Before SVG, people created all sorts of interesting techniques to do vector graphics in the browser. Before JPEG, vendors used proprietary graphics formats.
There are Defacto standards. AIML 1.0 has a lot of data floating around and many of us have written converters for it. Flattened AIML 2.0 is much more similar to what I created in JAIL, and many of the the best features of a language will be picked up by all of the systems.
So far the community has not felt the activity to be worth the effort, so each of us has gone off in his own direction.
|
|
|
|
|
Posted: May 7, 2013 |
[ # 38 ]
|
|
Senior member
Total posts: 308
Joined: Mar 31, 2012
|
I do tend to view both sides. While standards are nice, there’s so many from which to choose! Should people be forced into choosing / learning one (possibly new) programming language. If so, would this language be able to do practically everything they desire?
I think the best we can hope for is for each to work toward a common goal using whichever method best suits them and with that in mind, new roads and relationships will be formed. Sharing of ideas, methods and like-minded processes, will lead to newer discoveries and enhancements in the way we do things and the way in which out conversational agents behave.
AIML is a great foundation from which to build. How best to get more “mileage” from it? Where does or should it go from here? Is there a better approach and if so, what?
Interesting topic, Merlin.
|
|
|
|
|
Posted: May 8, 2013 |
[ # 39 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
Adopting a single standard doesn’t necesarily require using a single programming language, Art. For example, both Pandorabots and Program O (more or less) follow the AIML standard, even though Pandorabots uses the Common LISP programming language and Program O is written in PHP. Granted, both use AIML, but AIML isn’t a programming language, but a data language. There are probably vast differences between the ways both Pandorabots and Program O access, manipulate and parse the AIML data, as well, but I’m not familiar with the structure or syntax of Pandorabots’ language, so I couldn’t say for sure.
One strong advantage to having a common standard to use, regardless of the programming language employed is that development can be pursued across disciplines (which provides diversity), while still giving a certain level of continuity and conformity at the same time. In a sense, this (at least partially) gives us the best of both worlds.
I agree that AIML is a great foundation, and the new AIML 2.0 standard promises the potential for more complex chatbots (though it still lacks any potential for “reasoning”). I also see the possibility for using AIML as a form of “abstraction layer” to go in between an NLP/grammar analyzer and the user, though the logistics of such a setup will take a lot of planning.
|
|
|
|
|
Posted: May 8, 2013 |
[ # 40 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
I agree with you Dave, I was expressing the need for an AI data language that could be used for import/export and library building. If is a shame the community was not more interested.
Although there are still limitations, I like AIML 2.0 much better than 1.0. There were many things in JAIL that just could not be expressed in the original language. I built a tool to import AIML 1.0, and I still believe progress might be better if we all collaborated on some of the basic data that all bots should include. I went off and built math and time modules (which I think all bots need). History, spatial concepts and named entities could all be standardized just like math or physics libraries or clip art and fonts.
|
|
|
|
|
Posted: May 8, 2013 |
[ # 41 ]
|
|
Administrator
Total posts: 2048
Joined: Jun 25, 2010
|
Dave Morton - May 8, 2013: ... the new AIML 2.0 standard promises the potential for more complex chatbots (though it still lacks any potential for “reasoning”)...
Hi Dave - Could you give me an example of reasoning which AIML cannot handle?
|
|
|
|
|
Posted: May 8, 2013 |
[ # 42 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
Sure, Steve.
When I was much younger, I used to love doing a type of puzzle called “Logic Problems”. With such puzzles, one is given the task of determining specific things, based on an incomplete listing of “clues”. You can find some really good examples of such puzzles at http://www.logic-puzzles.org
I guess what I’m trying to say here is that AIML chatbots don’t have much (if any) in the way of capability when it comes to deduction or inference. That’s what I meant when I used the term “reasoning”.
|
|
|
|
|
Posted: May 8, 2013 |
[ # 43 ]
|
|
Administrator
Total posts: 2048
Joined: Jun 25, 2010
|
I see what you mean but I see no reason that with a bit of clever coding, AIML couldn’t do fairly simple examples of those puzzles.
For example, if I say to Mitsuku that my parents are called Chris and Sue, it reasons the following:
1) Chris is both a male and female name and so could be either your mother or your father.
2) Sue is a female name and so must be your mother.
3) That leaves Chris who must be your father.
It is just a few extra steps to add more facts and deductions to solve those logic grid puzzles.
|
|
|
|
|
Posted: May 8, 2013 |
[ # 44 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
Well, perhaps you could. Just thinking about trying to code that within AIML categories makes my ears smoke.
|
|
|
|
|
Posted: May 8, 2013 |
[ # 45 ]
|
|
Administrator
Total posts: 2048
Joined: Jun 25, 2010
|
lol mine too but it is certainly possible. As an aside, does any chatbot language have a built in mechanism to do those kind of puzzles?
|
|
|
|