Quote:
Originally Posted by NuclioN
Ok but these ? ? etc. are all over the place. How to make these aiml files xml compliant?
|
Basically do a find and replace of all of these not xml compliant characters... As you know xml compliance is a big benefactor on the web especially with how and what to display in xml for an example the ones above you would find their soundings and put them in plain English format.
Then one day, I found the extras on Tim's forums (The coder of this program) and found their translation aiml file "dev-translation.aiml" it had massive errors in it with all the
and etc.. so I had to go through and clean it up for xml compliant:
Hence the
HTML Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
HTML Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<aiml version="1.0">
<!-- Free software (c) 2001 ALICE AI Foundation -->
<!-- This program is open source code released under -->
<!-- the terms of the GNU General Public License -->
<!-- as published by the Free Software Foundation. -->
<meta name="language" content="en"/>
<category>
<pattern>SAY * TO ME IN SPANISH</pattern>
<template>
<srai>SAY <star/> IN SPANISH</srai>
</template>
</category>
<category>
<pattern>SAY * TO ME IN GERMAN</pattern>
<template>
<srai>SAY <star/> IN GERMAN</srai>
</template>
</category>
<category>
<pattern>SAY * TO ME IN FRENCH</pattern>
<template>
<srai>SAY <star/> IN FRENCH</srai>
</template>
</category>
<category>
<pattern>SAY * TO ME IN ITALIAN</pattern>
<template>
<srai>SAY <star/> IN ITALIAN</srai>
</template>
</category>
<category>
<pattern>SAY * TO ME IN JAPANESE</pattern>
<template>
<srai>SAY <star/> IN JAPANESE</srai>
</template>
</category>
<category>
<pattern>WHAT IS SPANISH FOR *</pattern>
<template>
<srai>SAY <star/> IN SPANISH</srai>
</template>
</category>
<category>
<pattern>WHAT IS GERMAN FOR *</pattern>
<template>
<srai>SAY <star/> IN GERMAN</srai>
</template>
</category>
<category>
<pattern>WHAT IS FRENCH FOR *</pattern>
<template>
<srai>SAY <star/> IN FRENCH</srai>
</template>
</category>
<category>
<pattern>WHAT IS ITALIAN FOR *</pattern>
<template>
<srai>SAY <star/> IN ITALIAN</srai>
</template>
</category>
<category>
<pattern>WHAT IS JAPANESE FOR *</pattern>
<template>
<srai>SAY <star/> IN JAPANESE</srai>
</template>
</category>
<category>
<pattern>SAY * IN SPANISH</pattern>
<template>
<javascript>
var word = '<star/>';
var language = 'es'
var _url = java.net.URL;
var _connection = java.net.URLConnection;
var _in = java.io.BufferedReader;
var _inReader = java.io.InputStreamReader;
var _line = java.lang.String;
var _inputLine = java.lang.String;
var _reply = "Sorry, I can't speak that language.";
url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&doit=done&BabelFishFrontPage=yes&bblType=urltext&urltext=" + java.net.URLEncoder.encode(word) + "&lp=en_" + language);
connection = url.openConnection();
_inReader = new java.io.InputStreamReader(connection.getInputStream());
_in = new java.io.BufferedReader(_inReader);
_inputLine = new java.lang.String();
_reply = new java.lang.String();
var _line = 0;
var _match = "<textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\">";
while ((_inputLine = _in.readLine()) != null) {
_line++;
if (_inputLine.trim().startsWith(_match)) {
_reply = _inputLine.substring(_match.length + 4);
break;
}
}
_in.close();
_reply;
</javascript>
</template>
</category>
<category>
<pattern>SAY * IN GERMAN</pattern>
<template>
<javascript>
var word = '<star/>';
var language = 'de'
var _url = java.net.URL;
var _connection = java.net.URLConnection;
var _in = java.io.BufferedReader;
var _inReader = java.io.InputStreamReader;
var _line = java.lang.String;
var _inputLine = java.lang.String;
var _reply = "Sorry, I can't speak that language.";
url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&doit=done&BabelFishFrontPage=yes&bblType=urltext&urltext=" + java.net.URLEncoder.encode(word) + "&lp=en_" + language);
connection = url.openConnection();
_inReader = new java.io.InputStreamReader(connection.getInputStream());
_in = new java.io.BufferedReader(_inReader);
_inputLine = new java.lang.String();
_reply = new java.lang.String();
var _line = 0;
var _match = "<textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\">";
while ((_inputLine = _in.readLine()) != null) {
_line++;
if (_inputLine.trim().startsWith(_match)) {
_reply = _inputLine.substring(_match.length + 4);
break;
}
}
_in.close();
_reply;
</javascript>
</template>
</category>
<category>
<pattern>SAY * IN FRENCH</pattern>
<template>
<javascript>
var word = '<star/>';
var language = 'fr'
var _url = java.net.URL;
var _connection = java.net.URLConnection;
var _in = java.io.BufferedReader;
var _inReader = java.io.InputStreamReader;
var _line = java.lang.String;
var _inputLine = java.lang.String;
var _reply = "Sorry, I can't speak that language.";
url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&doit=done&BabelFishFrontPage=yes&bblType=urltext&urltext=" + java.net.URLEncoder.encode(word) + "&lp=en_" + language);
connection = url.openConnection();
_inReader = new java.io.InputStreamReader(connection.getInputStream());
_in = new java.io.BufferedReader(_inReader);
_inputLine = new java.lang.String();
_reply = new java.lang.String();
var _line = 0;
var _match = "<textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\">";
while ((_inputLine = _in.readLine()) != null) {
_line++;
if (_inputLine.trim().startsWith(_match)) {
_reply = _inputLine.substring(_match.length + 4);
break;
}
}
_in.close();
_reply;
</javascript>
</template>
</category>
<category>
<pattern>SAY * IN ITALIAN</pattern>
<template>
<javascript>
var word = '<star/>';
var language = 'it'
var _url = java.net.URL;
var _connection = java.net.URLConnection;
var _in = java.io.BufferedReader;
var _inReader = java.io.InputStreamReader;
var _line = java.lang.String;
var _inputLine = java.lang.String;
var _reply = "Sorry, I can't speak that language.";
url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&doit=done&BabelFishFrontPage=yes&bblType=urltext&urltext=" + java.net.URLEncoder.encode(word) + "&lp=en_" +language);
connection = url.openConnection();
_inReader = new java.io.InputStreamReader(connection.getInputStream());
_in = new java.io.BufferedReader(_inReader);
_inputLine = new java.lang.String();
_reply = new java.lang.String();
var _line = 0;
var _match = "<textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\">";
while ((_inputLine = _in.readLine()) != null) {
_line++;
if (_inputLine.trim().startsWith(_match)) {
_reply = _inputLine.substring(_match.length + 4);
break;
}
}
_in.close();
_reply;
</javascript>
</template>
</category>
<category>
<pattern>SAY * IN JAPANESE</pattern>
<template>
<javascript>
var word = '<star/>';
var language = 'ja'
var _url = java.net.URL;
var _connection = java.net.URLConnection;
var _in = java.io.BufferedReader;
var _inReader = java.io.InputStreamReader;
var _line = java.lang.String;
var _inputLine = java.lang.String;
var _reply = "Sorry, I can't speak that language.";
url = new java.net.URL("http://babel.altavista.com/translate.dyn?enc=utf8&doit=done&BabelFishFrontPage=yes&bblType=urltext&urltext=" + java.net.URLEncoder.encode(word) + "&lp=en_" + language);
connection = url.openConnection();
_inReader = new java.io.InputStreamReader(connection.getInputStream());
_in = new java.io.BufferedReader(_inReader);
_inputLine = new java.lang.String();
_reply = new java.lang.String();
var _line = 0;
var _match = "<textarea rows=\"3\" wrap=virtual cols=\"56\" name=\"q\">";
while ((_inputLine = _in.readLine()) != null) {
_line++;
if (_inputLine.trim().startsWith(_match)) {
_reply = _inputLine.substring(_match.length + 4);
break;
}
}
_in.close();
_reply;
</javascript>
</template>
</category>
</aiml>
I'm not going to teach any "how to xml complaint 101"

, Just wanted to give you a heads-up that you want everything in plain ole english terms if you are using the encoding ISO-8859-1 in your xml (aiml) files, it's relatively simple if you know html and also just convert all the others with find and replace also you can go a faster route using any *nix flavor and know how to use sed and awk, which is faster...
As you see above in my example I cleaned that whole file up to become xml compliant to work using the ISO-8859-1!
Hope this helps...