Rebecca

25 views
Skip to first unread message

Habbit

unread,
Nov 14, 2010, 5:09:52 AM11/14/10
to Discuss a Human Project
I need a help - after a while I reworked aiml control to the style I
think can fit aiengine design.
I named all as rebecca and placed all binaries, configs and runtime
dlls into:
aiengine/bin
aiengine/etc/rebecca
aiengine/include/rebecca

No change in actions were implemented though.

But I found that some files (xml ones) were not commited to limaiml.
That's why I tried to download missing from RebeccaAIML-9871.zip.
Then it went stuck on calling builder -> createGraph(), then after a
while, exception occured.

I replaced all files from downloaded package.
Now it raises exception even earlier - in builder -> setAIMLSchema().

Could you pls commit to new location adequate versions of required
files so I can try it.

Thank you.

Phoenix

unread,
Nov 15, 2010, 8:38:32 AM11/15/10
to Discuss a Human Project
I have uploaded the files in the root of repository in folder 'Aiml
Files'.

About calling createGraph(), it takes long time for the first time.
Next time onwards it does not take too long.

I think the reason it was not working for you is that I added some
more AIML files before checking in, may be due to soem reason those
are not compatible. Anyways you can replace the old aiml files with
the new one from the location where I uploaded the files.

You need to delete the old database which is created in location 'C:
\Documents and Settings\All Users\Application Data\.RebeccaAIMLDB'.
Delete all the files in the location. My system is winxp this location
can differ on your system.

Let me know if this solves your problem.

-Sarbjit

Habbit

unread,
Nov 15, 2010, 2:08:20 PM11/15/10
to Discuss a Human Project
Sarbjit,

Problem is
->
some files (xml ones) were not commited to limaiml.
<-

You were referencing them from code, but nothing in svn there.
builder->setAIMLSchema("resources\\schema\\AIML.xsd");
builder->setCommonTypesSchema("resources\\schema\\common-
types.xsd");
builder->setBotConfigurationSchema("resources\\schema\\bot-
configuration.xsd");
builder->parseSubstitutionFile("conf\\substitutions.xml");
builder->parseSentenceSplitterFile("conf\\sentence-
splitters.xml");
builder->parsePropertiesFile("conf\\properties.xml");

Aiml files are present in libaiml subtree - not a question really.

Also better not to duplicate files.
When rebecca items will work in aiengine, libaiml better drop from
project as it is not our development item in fact.

Phoenix

unread,
Nov 15, 2010, 3:12:36 PM11/15/10
to Discuss a Human Project
Hi,

ohh.. Those files were present in location '\workspace.human
\aiengine.vc" but i have also commited them to libaiml folder and we
need to refer to that location only to get files. For simplicity sake
i added to '\workspace.human\aiengine.vc' which can be removed as per
your configuration.

Thanks

Habbit

unread,
Nov 21, 2010, 3:14:45 AM11/21/10
to Discuss a Human Project
Hi Sarbjit,

I have tried several times to make rebecca working - but it looks to
me that I do not understand something or our files are not consistent.
Last state that running builder -> createGraph(); results in long loop
raising exceptions:

First-chance exception at 0x75d59617 in aiengine.vc.exe: Microsoft C++
exception: xercesc_2_8::TraverseSchema::ExceptionCodes at memory
location 0x0012e3e8..
First-chance exception at 0x75d59617 in aiengine.vc.exe: Microsoft C++
exception: xercesc_2_8::TraverseSchema::ExceptionCodes at memory
location 0x0012e3e8..
First-chance exception at 0x75d59617 in aiengine.vc.exe: Microsoft C++
exception: xercesc_2_8::TraverseSchema::ExceptionCodes at memory
location 0x0012e3e8..
...

I have tried to drop rebecca database folder - does not help.
I have tried to remove all aiml files - then functions returned
immediately but output still contains the same exceptions.
After all it generates unknown exception and rebecca chat
initialisation is incomplete.
In debug this function takes much more time:

10:58:14,880 [INFO, 0x0fdc] - prepare rebecca chat engine database...
10:59:14,428 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
10:59:14,436 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:00:14,458 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
11:00:14,465 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:01:14,473 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
11:01:14,479 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:02:14,484 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
11:02:14,491 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:03:14,495 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
11:03:14,514 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:04:14,519 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
11:04:14,526 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:05:14,530 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
11:05:14,537 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:06:14,548 [INFO, 0x0cc0] - disconnectSocket: disconnected name=loc
11:06:14,554 [DEBUG, 0x0cc0] - connectSocketProtected: successfully c
11:07:14,557 [INFO, 0x0cc0] - disconnectSocket: disconnected
name=localweb [ActiveSocket.localweb]
11:07:14,563 [DEBUG, 0x0cc0] - connectSocketProtected: successfully
connected to host=www.google.com, port=80, n
11:08:14,566 [INFO, 0x0cc0] - disconnectSocket: disconnected
name=localweb [ActiveSocket.localweb]
11:08:14,575 [DEBUG, 0x0cc0] - connectSocketProtected: successfully
connected to host=www.google.com, port=80, n
11:09:14,583 [INFO, 0x0cc0] - disconnectSocket: disconnected
name=localweb [ActiveSocket.localweb]
11:09:14,588 [DEBUG, 0x0cc0] - connectSocketProtected: successfully
connected to host=www.google.com, port=80, n
11:10:14,591 [INFO, 0x0cc0] - disconnectSocket: disconnected
name=localweb [ActiveSocket.localweb]
11:10:14,597 [DEBUG, 0x0cc0] - connectSocketProtected: successfully
connected to host=www.google.com, port=80, n
11:10:41,520 [ERROR, 0x0fdc] - CALL STACK:
...skipped...
::_rfc_thr_stackgetforthread (aiengine.vc, 0x5c186b)
::_rfc_thr_stackget (aiengine.vc, 0x5c1729)
Logger::printStack (aiengine.vc, 0x4ba41a)
Physiology::onBrainStart (aiengine.vc, 0x573f03)
AIBrainImpl::runService (aiengine.vc, 0x589386)
AIEngineImpl::runServices (aiengine.vc, 0x4b34e9)
AIEngineImpl::runInternal (aiengine.vc, 0x4b0c46)
AIEngine::run (aiengine.vc, 0x4b0064)
::_main (aiengine.vc, 0x57323f)
...skipped...
[Physiology]
11:10:41,552 [ERROR, 0x0fdc] - onBrainStart: unexpected unknown
exception, cannot start control name=RebeccaChat

in vc output window I see:
...
The thread 'Win32 Thread' (0xf38) has exited with code 0 (0x0).
First-chance exception at 0x75d59617 in aiengine.vc.exe: Microsoft C++
exception: xercesc_2_8::TraverseSchema::ExceptionCodes at memory
location 0x0012e3e8..
First-chance exception at 0x75d59617 in aiengine.vc.exe: Microsoft C++
exception: xercesc_2_8::TraverseSchema::ExceptionCodes at memory
location 0x0012e3e8..
First-chance exception at 0x75d59617 in aiengine.vc.exe: Microsoft C++
exception: xercesc_2_8::TraverseSchema::ExceptionCodes at memory
location 0x0012e3e8..
First-chance exception at 0x75d59617 in aiengine.vc.exe: Microsoft C++
exception: rebecca::impl::InternalProgrammerErrorExceptionImpl at
memory location 0x0012efc8..

Current configuration uses all files from human\libaiml.
I copied:
- referenced xsd files from human\libaiml\resources\schema\ to human
\aiengine\etc\rebecca\xsd\
- referenced xml files from human\libaiml\conf\ to human\aiengine\etc
\rebecca\
- all aiml files from human\libaiml\include\aiml\annotated_alice\ to C:
\projects\ai2svn\human\aiengine\etc\rebecca\aiml\
- all libs from human\libaiml\lib\ to human\aiengine\lib\rebecca\
- all dlls from human\libaiml\lib\ to human\aiengine\bin\
- all header files, except framework subdirectory, from human\libaiml
\include\rebecca\ to human\aiengine\src\include\rebecca\
aiengine is now referencing only relative paths for build and debug
and does not have inter-project links.
I have added msvcp71.dll and msvcr71.dll as looks like they are
required for rebecca.

I would like to finish with this.
Could you please investigate and let me know what is wrong?

Phoenix

unread,
Nov 22, 2010, 8:47:58 AM11/22/10
to Discuss a Human Project
Hi Habbit,

I will work on it and will finish it, leave it on me. You can focus on
what you were doing. Sorry for all this hassle. Now that you had
properly coded rebecca according to framework, I will make it work.

Thanks

Phoenix

unread,
Nov 22, 2010, 9:44:18 AM11/22/10
to Discuss a Human Project
I looked into this issue and I think some of the aiml files we added
in the aiml folder are not compatible with the framework. I actually
updated the standard set of aiml files that is shipped with Rebecca
with some extra files that I downloaded from internet that could be
the cause of problem. For now I deleted those extra files and it
should work fine now. Let me know in case you are still getting some
problems.

Before running aiengine delete the older database from path :

C:\Documents and Settings\All Users\Application Data\.RebeccaAIMLDB

All you have to do it update aiengine/etc folder to delete the extra
aiml files and delete rebecca database from above mentioned path and
you should be good.

Thanks



On Nov 21, 3:14 am, Habbit <vsavc...@gmail.com> wrote:

Habbit

unread,
Nov 22, 2010, 1:33:44 PM11/22/10
to Discuss a Human Project
Yes, I see it is starting now:
21:26:25,094 [INFO, 0x0fc4] - start rebecca chat engine... [.]
21:26:25,098 [INFO, 0x07a8] - workerStarted: thread started
name=SensesTracker, threadId=0x7a8 [.]
21:26:25,155 [INFO, 0x0fc4] - prepare rebecca chat engine database...
[.]

btw, I wonder why you have created 2 listeners for one chat.
This is the root cause for session problem - as each connection to
listener generates different session - as intended to serve several
parallel connections.
Response should be sent to the same socket - and therefore filter
session will work properly - if 2 telnet connections established -
each will hear response to its own question.

Phoenix

unread,
Nov 22, 2010, 5:33:57 PM11/22/10
to Discuss a Human Project
The reason i created two listeners is that logically the mouth and ear
are two sensors that should not be coupled. Just to avoid any future
design problem i thought of keeping them separate as in future we
might need to integrate hardware for sensors.

And another update aHuman has voice NOW!!....

I integrated espeak lib and whatever rebecca chat engine outputs, it
is fed to espeak and it speaks in the computer speakers. You can try
it and let me know in case of any issues.

The code is written in lyrnx.h file in modbody/physiology.

You might need to install espeak-1.44.05-win for now but we can fix it
as it only refers to data files installed in programfiles/espeak which
we can copy in some location in project and refer to that. I will do
that in future.

For espeak .lib file was not available so I had to compile the source
to create one, the project for the sam ein uploaded in /trunk/
libespeak

I code right now is bit crude, i will fix it or if you have some
bandwidth you can also fix it.

Let me know in case of any issues.

Note: I check in cv project files but it might refer to some location
on my computer, fix it to avoid any compilation problems. Sorry for
this but I am short of time right now else I would have fixed it.

Thanks
> ...
>
> read more »
Reply all
Reply to author
Forward
0 new messages