AI Zone Admin Forum Add your forum
New Loebner Prize Protocol announced
  [ # 46 ]

“The organisers typically rent Windows 7 computers for Bletchley Park so it’s not likely a problem there,...”

Hard to see real progress in using an 8 year old OS on which to run the latest, greatest Chatbots submissions.  Surely there is an easier, more efficient way for everyone to come up to speed.

Not trying to incite a riot but rather doing a bit of head scratching.


  [ # 47 ]

That’s odd, Don. I have Windows 10 on my computer and it still has a working install of IE. I use it quite regularly to test web pages that I’m developing. Perhaps this article might help?


  [ # 48 ]

I also had IE, but I upgraded to win 10 from an earlier OS.


  [ # 49 ]

One can type Internet Explorer in the text box at the lower left and it should display Internet Explorer Desktop App.

If one chooses this, it will open the browser with IE 11 and MSN of course.


  [ # 50 ]

No, I tried all that and more. The remaining program files are inoperable and Microsoft’s site literally says my system is incompatible. It still worked last month so this is just Microsoft’s typical manhandling. Anyway, if no-one else has this problem it’s not a problem.

Meanwhile I’ve hacked around a bit and got a potential cross-browser interface:
On the bot’s computer one would run a copy of confederate.html with a single line adjusted. It’s monitored by an additional exe program that converts any incoming input to folders/textfiles, and vice versa, relays your chatbot’s answer by pasting it into the html’s textbox and simulating a carriage return.
Downside: the html file must be kept in the foreground and the input box must retain keyboard focus in order to paste, and the judge’s message can not exceed 240 characters. I may be able to increase that but that gets trickier.
Upside: Doesn’t require specific browsers or ActiveX, and C++ users could use my code to monitor the html directly if they have the windows.h library.

Still, if there’s an easy way to interface directly with the server, that would be preferable.


  [ # 51 ]

The one problem here is that all browsers except IE consider file system manipulation to be a huge security risk (and with good reason), so this is going to be a really tough nut to crack without taking extraordinary measures. I thought that maybe HTML5 localStorage might be an option, but I have no idea on how to access that outside the browser. Flash might also be a viable option, but I don’t think there’s enough time this year to develop something useful.


  [ # 52 ]

Choosing a new round on the controlPanel after Round 3 crashes the server.
Trying to connect from a client that is not talking to a judge crashes the server.

If server crashes during a round, there does not appear to be a way to restart/continue.


  [ # 53 ]

Good to know, Merlin. Is the added debugging code showing any sort of cause for this?


  [ # 54 ]

Mostly unhandled exceptions.
I did a one-liner to max out the rounds at 3.
Not sure about how the client is crashing the server.


  [ # 55 ]
Don Patrick - Apr 21, 2017:

Still, if there’s an easy way to interface directly with the server, that would be preferable.

Interfacing directly with a c++ interface is not easy because io-socket uses a specific protocol with HTTP, base64, SHA1, etc… It is the RFC 6455, and I have abandonned the idea of writing an interface, too difficult. There is some projects that implements the protocol. I have tryed this one but not reached to make it work. There is this and this which uses c++ 11, boost. I dont had the time to try them.

An other way is to create an HTML page to manage the protocol, and embbed it with an IWebBrowser2 com object. It is pretty easy (there is a sample), and after, we can automate it with IWebBrowser2::get_Document, IHTMHDocument2::get_body, IHTMHDocument3::getElementById, IHTMHDocument3::innerText, etc… I am programming a sample in this direction. Obviously, in this case, we must know if the computer is connected at internet to know where to found jquery.js and


  [ # 56 ]
Denis Robert - Apr 25, 2017:

Obviously, in this case, we must know if the computer is connected at internet to know where to found jquery.js and

Actually, I’ve forked the LPP on GitHub and modified it to serve those files “locally” via server.js so that an Internet connection is unnecessary. I’ve even submitted a pull request to the original GitHub repository, but you can find my fork of the LPP at - it might be worth looking into.


  [ # 57 ]

For C++ users I now have an alternative interface with two components:
1. This html file that should be run in the foreground. It is just a copy of confederate.html with a few added lines that pass the judge’s messages to the window’s title:

alternateNR += 1;
window.document.title d.contents "|END|" alternateNR;

2. Four C++ functions to integrate in your program.
The function “direct_loebnerinput()” checks the foreground window title for new messages.
The function “direct_loebneroutput(text)” copy-pastes your program’s answer to the foreground window and simulates a carriage return. The javascript of the html file ensures that the input field doesn’t lose focus.

Downside: Works in all browsers except Internet Explorer and Edge, who don’t allow window titles longer than 145 characters. So I’d have to ask the organisers to install e.g. Mozilla Firefox.
Upside: You have direct and immediate access to the judge’s input without having to dismantle and reassemble it.
For non-C++ users, on request, I could make this into a stand-alone program that communicates between the html and the old protocol. The only thing is that that makes the chain of potential mishaps rather long: server->html->translator->old protocol->chatbot.

Now, Denis’ solution with IE and ActiveX also works on my other computer so it’s probably best to go with that for most people. I think I’ll go with my own solution however because it doesn’t break up the message, and because node.js won’t install on my other computer (32bit Vista), so even though I have IE there I still can’t test Denis’ solution fully.


  [ # 58 ]
Merlin - Apr 21, 2017:

Choosing a new round on the controlPanel after Round 3 crashes the server.

It is because the numbers of the 4 rounds are beginning to 0. Only informaticians can do something like that (there is only 10 types of people: informaticians and not informaticians smile )

I have found others bugs:

- If a confederate or a judge wait a too long time before validing a message (like “round has started”), there is a “ping timeout” and this client is disconnected.

- If another client try to send a message to this client disconnected, the server crashes:

TypeError: Cannot read property ‘emit’ of undefined

- This means that if a bot, for any reason, is disconnected, this will make crash the server and end the contest…

- Some judges have two times the same bot in two differents rounds. I know that this part will be randomly changed for the contest, but the sample should be Likelihood. It is like in sudoku: rows and columns should not have two times the same number :

//each round stores the confederate
//number and ai number for judge 0,0,1,2 respectively

- The message pane of judges is not cleaned between rounds.



  [ # 59 ]

What’s this about a new Loebner Prize Protocol with sockets?

Here is a C Language socket programming reference:


  [ # 60 ]

Tom, the new LPP is available on GitHub, and is written using Node.js, which means it’s server-side JavaScript. I’m even officially involved with its development now, as some of my proposed improvements have been accepted by the developer this morning. smile

Which brings me to my main reason for posting today. A new version of the LPP is now available on GitHub. It now can be run on a closed network, and all JS files (e.g. jQuery and are served from the same computer that runs server.js - IMHO a vast improvement. cheese


‹ First  < 2 3 4 5 6 >  Last ›
4 of 10
  login or register to react