Robot Invaders: terrible SDKs, please allow others/self-written ?

I think it's a great idea to have a contest about creating bots. Bots are growing very popular, and a contest like this is a great way to show off what messenger can do.
The criteria are very acceptable too, especially integrating activities would be a lot of fun.
I had some great bot ideas, and I was very very eager to work them out, but there was one major thing that spoilt it all:
You are forced to use one of the three SDKs on the site to be eligible for the prizes. This might not appear to be a very controversial rule, after all it's Microsoft's contest, so microsoft makes up the rule. However, I am quite certain that anyone that actually tried all the SDKs will agree with me that it's just not possible to create a serious entry with these SDKs. Let's go over them one by one:
  • Akonix L7 Builder. (see a full review here)
    This platform does not include basic messenger functionality like Display Pictures, Emoticons, Winks, etc. The trial license only allows you to run a bot for 180 days, and it will watermark each outgoing message with a trailing X. It also has a few very dodgy things in their license, for example they can patent your bot idea if you agree to host it on their trial hosting service.
  • Incesoft Bot Platform SDK
    This platform is the smallest in filesize, but there's a reason for that. You're not actually getting a platform: It's run on a chinese server, and all you get are DLLs interfacing with it. The website is in both English and chinese, yet there's no way to switch between them and there seems to be no logical explanation why sometimes you get the english and other times the chinese version. The english documentation is very limited and very difficult to read. Apart from that the so-called activities are limited to opening an URL in their sandbox, and there is no way to communicate back with the bot.
  • Conversagent BuddyScript SDK
    Apparently the most advanced platform, but it forces you to learn a new obscure language mainly focused at being an answering machine. The syntax is completely different to other languages like C++ or VB, and it's very difficult to get to know it. Furthermore display pictures and custom emoticons are not supported by default, but apparently they can somehow be coded manually if you know how to (haven't even gotten to the point of being able to test this).
As you can see, those SDKs aren't really useful for creating contest entries, and it makes me wonder if someone at Microsoft actually tested them before launching the Bot contest. I think the success behind the Worlds Best App contest was the fact that it only required some basic understanding of JavaScript, and that allowed access to partically everything you could or wanted to do with Activities. The top two SDKs might have support for basic languages like C# or VB.Net, yet they lack so much in functionality that it's pretty difficult to use them for a serious entry in the contest :(

Basically I would like to ask if an amendment could be made to the rules to allow self-written platforms to be used (There are a lot of people that are very familiar with the protocol already, and would prefer writing their own platform over a pre-existing one), or maybe add a few decent SDKs that we can use for development

If you agree with this, please do leave a message. I can't imagine me being the only one with objections against these existing platforms.



Answer this question

Robot Invaders: terrible SDKs, please allow others/self-written ?

  • Anindita

    Hi Pierre, good to see you responding in these forums.
    I haven't really got the time to try the CA platform seriously yet, so I cannot judge on it's capabilities or easyness to learn. The language platform seems to be quite interesting, and I'm sure it works pretty well.
    However, -as FW already said- it does seem your platform mainly focusses on 'being an answering machine' (an intelligent answering machine, that is). Please correct me if I'm wrong. If we keep using this metaphor, then I suppose the people above would like to be able to create entire new phones. There are other applications for bots imaginable then just answering machines.
    This brings us to the question: are we able to use common programming technologies together with the CA platform. For example, could we use tcp sockets, image libraries, or other libraries
    Maybe this is what the CA 'plugins' can be used for. But unfortunately, 'The API to write your own BuddyScript plugins in C++ is not public yet.'... This brings us to the CA-docs, could you add a search function

    PS: Chatman is Dutch, so it seems you're supporting other languages as well


  • uyht

    I agree with Frans-Willem.

    Like he says, the platforms are very, very, limited, not to mention that I can't get ConversAgent to work. The Akonix platform is huge, it's over a hundred megs in download size, making it very difficult for people with dial up or something similar to download it. This leaves only the Incesoft platform, which has severe limitations as well.

    Writing your own platform would be the best solution, unless Microsoft steps in and offers a new platform, one which does offer all the features available in 7.5 (MSNP11/12, or so).


  • Mai Lan

    So the bottom line is we cannot write our own systems

    A natural language processor is not neccessary in every context... a text parser that is domain specific can be a much lighter weight solution that accomplishes everything one would want. A developer also might use their own system based on their own natural langauge processor or using something like Microsofts English Query with a domain specific database.

    So what is the bottom line here



  • BryanDOwen

    When this thread started, I decided to stay on the background and just read, but now it's getting interesting.
    In the first place, I do like the Conversagent SDK. I've said it before, it is a really "rich" program with lots of possibilities, and it works just like the systems used in linguistics. I totally agree with pierre that you can build very good "answering machines" with this.
    However, I also think that Juzzi is right. The robot invaders contest is judged based on:
  • User interaction (25%);
  • Usefulness (25%);
  • Creativity (25%); and
  • Use of Windows Live Services (25%)
What Frans-Willem probably wants to do is build a system in C++ (or a language of his choice) that can start a conversation, can send standard texts, can respond to standard text, can start activity's, can send custom emoticons, etc. To score on the above 4 points, you do not need to have a good language system in your bot...
I think that is the point that Frans-Willem wants to make. Personally, I will use the Conversation SDK and I think it is even a part of the contest to learn the language. I've worked with natural language systems before, so I may have a little bit avantage, but I think it is possible to learn it in the 4 months of the contest.
It might be a good idea to base the scoring also on the score of a "Turing test". I'm absolutely sure nobody will pass the Turing test with his bot, but there will definatly be difference between the bots. The users of Conversagent will have an advantage then for sure...
Jeroen
PS. Of course Conversagent support Dutch... You can build your bots in any language you like!

  • Jim Schultz

    To score on the above 4 points, you do not need to have a good language system in your bot...

    I think a good language system can definitely help with 'User interaction'.
    The users of Conversagent will have an advantage then for sure...

    Then, that's certainly not what should happen. The scoring chances shouldn't rely on the sdk used.
    Of course Conversagent support Dutch... You can build your bots in any language you like!

    I suppose the language systems differentiate between different languages, I was wondering whether there's support for a dutch language system.

    Anyway, let's try to stay a bit ontopic.



  • buguyaga

    I totally agree with Frans Willem , there is no doubt about it , the SDK's are too limited. I , myself, have tried out both conversagent and incesoft , now incesoft is not bad since it uses .NET as a language , still it is way too limited , bots made with that SDK won't be interesting at all , while conversagent has a language of it's own, it is hard to learn a totally new language in the few months given to us.
    I wasn't able to download Akonix since it is too big , it would take almost a whole day on a connection like mine.

    Therefore, the idea of a contest about creating bots is definitely interesting and challenging but using those SDK's makes it impossible. If you want real bots , there should be no limitations whatsoever , then you will be able to see the creativity of some coders. Hopefully , a lot of people agree with us too , and I know that our point of view will not be ignored. Thanks.

  • GlipNBA

    @Gerald: check out Todd's post (please look around next time before you reply).


  • Gabriele Bertolucci

    Hi all,

    Let me first quickly introduce myself. I am part of the Conversagent engineering team. You might be familiar with some of the bots developed with our technology, like SmarterChild, Encarta Instant Answers, Chatman, Spleak to name a few.

    All the engineering team here at Conversagent is very excited about the contest. We will do our best to support all contestants in using our platform.

    We are always very interested in any feedback we get from new developers. This is one of the reasons we committed to provide a 50,000 monthly sessions license on the MSN network to the users of our SDK/Developer edition.

    I wanted to address some of the comments above.

    The challenge in building bots is not just connectivity to the network. You also need a:

    • Natural Language Engine
    • Conversational System
    • User Profile
    • Messenger network faceless client supporting latest large range of features

    While I understand why you are reluctant to learn a new language, you need to take into account that existing programming languages lack the features required to efficiently deal with these issues in the context of an IM robot.

    Let me focus on one key part of the Conversagent server which is the natural language and conversational engine, because bots end users expect them to be able to answer questions they enter in plain English. Conversagent Server provides:

    • Comprehensive natural language processing engine
      • Efficient Natural Language definition syntax
      • Support for both Static , dynamic (data-driven) and procedural lexical items
    • Automatic binding of user input data to variables
    • Dialog handling
      • Ability to handle complex conversational dialogs
    • Context awareness
      • Giving preference to the current conversation subject
      • Anaphora ( Ex: Can you show it to me }
    • Ambiguity resolution
      • recognizes ambiguous queries
      • Prompts user to clarify intent
    • Language Libraries
      • Language Parsing Rules
      • Lexicons
      • Industry specific Extensions
    • Spell Correction

    Another part is the support for advanced MSNP features, it currently supports:

    • Display Pictures
    • Emoticons
    • Dynamic Display Pictures
    • Pretty Name
    • Winks
    • Nudges
    • Personal Message
    • Backgrounds
    • MSN Activities
      • Ability to invite
      • Accept invitation
      • Transfer information between the bot and the user
      • Page driving

    You can find a more complete list of features at : http://www.conversagent.com/solutions/bsserver.html

    I encourage you to give a chance to our solution and see what you can do there. Please note that it also integrates easily with Web services, SOAP and RSS feeds and so makes it easy to access other systems you would like to use in your bot.

    Do not hesitate to ask questions through our forum. We answer them as quickly as possible.



  • Irving S.

    1) Thanks

    2) I did look around

    3) If I wanted to be preached to I would go to church

    4) Thanks



  • Robot Invaders: terrible SDKs, please allow others/self-written ?