MINDMAKERS Forum
Welcome, Guest. Please login or register.
September 09, 2010, 09:08:06 AM

Login with username, password and session length
Search:     Advanced search
NB: Spam bots are becoming smarter every day - we had to turn off regular registration. To become member, please send email to Kris Thorisson ([kris'_lastname] att ru dott is).
337 Posts in 99 Topics by 99 Members
Latest Member: peterwit
* Home Help Search Login Register
+  MINDMAKERS Forum
|-+  Projects
| |-+  SAIBA Multimodal Behavior Generation Framework
| | |-+  Behavior Markup Language
| | | |-+  Remove 'BML Performance Request Message' from core-BML?
« previous next »
Pages: [1] Print
Author Topic: Remove 'BML Performance Request Message' from core-BML?  (Read 118 times)
herwin
Newbie
*
Posts: 39


View Profile Email
« on: July 25, 2010, 11:38:44 AM »

From draft 1.0:

BML Performance Request Message

A BML performance request must include at least:
    *  A character identifier
    *  A performance identifier (should be related to the id attribute of the <bml> block)
    *  A single BML block, either as a XML document or XML DOM.


It seems this discusses a message format to direct a specific BML block to a specific virtual human? I don't think this is really a part of BML, or something a realizer should bother to handle. It seems specific to the SmartBody ACT XML? Many of us use one planner+realizer per virtual human and don't need such redirection.

I suggest to remove it from the standard.

Logged
amarshal
Jr. Member
**
Posts: 55


View Profile WWW Email
« Reply #1 on: July 27, 2010, 04:56:11 AM »

It seems this discusses a message format to direct a specific BML block to a specific virtual human?

Yes, but this is a message, but only in the broadest of form of the word.  Rather than a network message, it could be a function call to a realizer library:
Code:
  agent.perform( bml )
Here, the agent object fills the role of the character identifier.  Thus, the BML spec as is, does not add much overhead, but rather specifies the assumptions of the realizers input and outputs.  The same goes for feedback messages like errors.  Specifying the message contents helps keep the concepts portable so that wrapper layers can effectively translate between different methods.

Quote
I don't think this is really a part of BML, or something a realizer should bother to handle.

If it's not a part of BML, then it is a part of the SAIBA pipeline standards documentation.  Unfortunately, that document does not exist.

Quote
Many of us use one planner+realizer per virtual human and don't need such redirection.

I don't see that invalidating the need for message.  I suspect that message still exists in the system (such as a function call above).  I'd love to hear about a more detailed example if you think I'm wrong.


Logged
herwin
Newbie
*
Posts: 39


View Profile Email
« Reply #2 on: August 01, 2010, 10:21:29 AM »

Our BML requests are more or less of the 'realizer.perform( bml )' form or consist of the realizer receiving BML requests through a socket connection. The key difference is that the agent (I prefer ECA or virtual human, should we set a fixed term in the BML standard?) is bound to a single realizer at initialization time, and that each realizer steers only the single agent that was bound to it. Therefore it is not necessary to send agent ids or BML performance identifiers to the realizer, simply sending the bml request will suffice. If you use the form agent.perform(bml), there is no need for a  BML performance identifier either.

What use do you envision for the BML performance id that cannot be achieved with the BML id?

Anyways, the current BML Performance Request Message section is quite unclear. If we want to keep it, perhaps it should be moved elsewhere and it should outline where exactly in the message architecture these messages are used. Is your main point there that there is not necessarily a direct link between the behavior planner and the realizer and that some redirection based on agent id might occur? I will agree to that and it might be interesting to mention that somewhere. It could be interesting to add some examples from SmartBody, the SEMAINE API and/or Elckerlyc or from the messaging strategies used. Or perhaps renaming the messaging architecture section and make it deal only with messages that are to be sent and received by a realizer.

As a side note: it could be interesting to discus how we envision the SAIBA architecture to deal with multiple agents.
Does a realizer steer a single agent? Then how can we achieve inter-agent synchronization of behavior? Only through wait/emit?
What about the behavior planner? Can we make one behavior planner that steers multiple realizers (for example to model group behavior?)? Or do we want to enforce one behavior planner per realizer?

« Last Edit: August 01, 2010, 10:26:24 AM by herwin » Logged
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!