Title of Invention

"SMART TOYS"

Abstract A plurality of toys for performing a simulated audible conversation therebetween, each of the toys comprising: a) an architecture including a physical layer, a messenger layer and an application layer, said physical layer communicating with said application layer through said messenger layer; b) said physical layer receiving and transmitting messages from and to compatible toys; c) said messenger layer receiving and verifying messages from the physical layer and passing verified messages to the application layer, said messenger layer also receiving messages from the application layer and passing the messages from the application layer to the physical layer for transmission; d) said application layer including: i. a forest of decision graphs, each of which correspond to a conversation, the messages received from the messenger layer being used by the application layer to select a conversation from the forest of decision graphs; ii. a participants list that lists the plurality of toys; and iii. an identification number of one of the plurality of toys that is designated as a conversation manager so that transmissions from the conversation manager relating to the participants list and the conversation are received by each toy that is not the conversation manager.
Full Text SMARTTOYS
BACKGROUND
The present invention generally relates to toys, and, more particularly, to a toys that may interact iwith one another so as to provide the appearance of carrying on a conversation^
In today's world of loys» interactbius vastly limited to simple movements and sentences are often repetitive, fixed and involve very little (if any) interaction with other toys. Conventional toys thai incorporate speech function in one of the following manners: sound recognition; light recognition^ infrared identification, and strict playback. These options allow for 'linear patterned" speed which follows a specific script mat is activated by a stimulus (i.e. drawstring, push-button, switch, etc.) This patterned speech is both repetitive and quickly tiresome for inventive! and imagmoy children who are fascinated by interactivity and peculiarity.
A deniaai therefore exists ffr it possible for toys to interact
with each other in witty, smart, interesting and conversationally diverse ways. Such toys would not be bound by a few short sentences, a lack of context or the same monotonic dialogue.
It is an object of the present invention to provide a toy that largely eliminates the disadvantages relative to conventional speech-related toys and electronic games by providing a toy fully capable of mtelligeni asynchronous speech with other toys.
It is afurther object of the present invention to provide a toy that is uninhibited with restrictions such as wiressiplatfonns, power supplies, etc. and fully durable to withstand the
These and other objects of the invention will be apparent from the remaining portion of the specification.
SUMMARY
The present invention is directed to toys that may interact so as to present the appearance of the toys conversing. The toys feature an architecture including a physical layer, a messenger layer and an application layer The physical layer communicates with the application layer through the messenger layer. The physical layer receives and transmits messages from and to compatible toys through a physical medium. The physical layer may be an infrared transceiver, radio transceiver or any other type of wireless communications. The messenger layer receives and verifies messages from the physical layer and passes verified messages to the application layer. The messenger layer also receives messages from the application layer and passes the messages from the application layer to the physical layer for transmission. The application and messenger layers may be implemented on micro-controllers or an application-specific integrated chip.
The application layer features a forest of decision graphs, where each of the'
decision graphs corresponds to a conversation. Each of the decision graphs includes a
number of nodes with at least some of the nodes corresponding to a portion of the conversation of the decision graph. Each of the nodes includes one or more contexts with each of the contexts corresponding to an edge leading to one or more child nodes. As a result, the selection of the context directs progression of the conversation between the toys. The application layer also includes a participants list that lists the toys participating in the conversation and a conversation manager. The participants list is utilized in selecting the conversation/decision graph and may be utilized in selecting the context The conversation manager broadcasts updates regarding the participants list and the identification number of the node of the current conversation/decision graph.
The messenger layer includes a receiver component and a transmitter component. When a message is received, by the receiver component, the transmitter component passes a message acteowledgement (MSG..ACK) containing a copy of at least a portion of the message to the physical layer for transmission to an originating toy that sent the message. The messenger layer passes the message to the application layer upon receipt of an acknowledgement acknowledgement (ACK.ACK) from the originating toy in response to
the transmission of the message acknowledgement (MSG_ACK) indicating that the originating toy has verified proper receipt of the message by the receiving toy.
This invention therefore provides a plurality of toys for performing a simulated audible conversation therebetween, each of the toys comprising:
a) an architecture including a physical layer, a messenger layer and an application layer,
said physical layer communicating with said application layer through said messenger
layer;
b) said physical layer receiving and transmitting messages from and to compatible toys;
c) said messenger layer receiving and verifying messages from the physical layer and
passing verified messages to the application layer, said messenger layer also receiving
messages from the application layer and passing the messages from the application
layer to the physical layer for transmission;
d) said application layer including:
i. a forest of decision graphs, each of which correspond to a conversation, the messages received from the messenger layer being used by the application layer to select a conversation from the forest of decision graphs;
ii. a participants list that lists the plurality of toys; and
iii. an identification number of one of the plurality of toys that is designated as a conversation manager so that transmissions from the conversation manager relating to the participants list and the conversation are received by each toy that is not the conversation manager.
This invention further provides a method for managing a simulated conversation between multiple toys, where the multiple toys include transmission and reception means, unique identification numbers and identical decision graphs with multiple nodes where the decision graphs correspond to conversations between the multiple toys and the multiple nodes correspond to portions of the conversations, said method comprising the steps of:
a) designating one of said toys, based on an identification number, as the conversation manager;
b) causing the conversation manager to select and broadcast a node of a decision
graph to the multiple toys; and
c) causing the conversation manager to broadcast a participants list including toys
involved in the conversation to the multiple toys;
whereby all of the multiple toys are synchronized with regard to the selected node and participants list.
The present invention also provides a plurality of toys for performing a simulated conversation there between comprising:
a) a first toy and a second toy, each including:
i. a transmission means;
ii. a reception means;
iii. a controller in communication with the speaker, transmission means and reception means and including at least one decision graph corresponding to the simulated conversation, said decision graph including a plurality of nodes with said plurality of nodes corresponding to portions of the simulated conversation; and
b) said first toy selecting one of said plurality of nodes via its controller without
manual intervention by a user and transmitting the selected node via its
transmission means without manual intervention by a user to the reception means
of the second toy, whereupon receipt, said second toy playing a portion of the
simulated conversation corresponding to the selected node.
This invention further provides a toy for performing a simulated conversation with at least one other toy comprising:
a) a transmission means;
b) a controller in communication with the transmission means and including at least one
decision graph corresponding to the simulated conversation between the toy and the other
toy, said decision graph including a plurality of nodes corresponding to portions of the
simulated conversation where each of the nodes has a probability assigned thereto and each
of the nodes includes one or more contexts with a probability assigned to each context and
said controller also including a participants list; and
c) said controller selecting one of said plurality of nodes based upon the context, the
participants list, the probabilities of the contexts and the probabilities of the nodes and
transmitting it to the other toy via the transmission means.
For a more complete understanding of the nature and scope of the invention, reference may now be had to the following detailed description of embodiments thereof taken in conjunction with the appended claims and .accompanying drawings.
gfilEF DESCRIPTION OF THBDRAWTNGS

Fig. 1 is a diagram illustrating an initiation broadcast by toy A, which is an embodiment of the toy of the present invention, in a 2-toy handshaking scenario;
Fig. 2 is a diagram illustrating a toy B performing an initiation acknowledgment of the initiation broadcast by toy A of Fig. 1;
Fig. 3 is a diagram illustrating a sustained conversation between the toys of Fig. 2;
Fig. 4 is a diagram illustrating an initiation of a 3-way interaction between the toys of Fig. 2 and an additional toy C;
Fig, 5 is a diagram illustrating initiatic«acknQwlethe3-toy interaction
scenario of Fig. 4;
Fig. 6 is a diagram illearating sustained 3-way conversation between the 3-toys of
Fig.4;
Fig. 7 U a diagram illustrating the removal of a toy iGrpni the conversation of Fig. 6;
Fig. 8 U^a.ttockdla8rioiOptbe giaierafized layertdiai^i^iffe for an embodiment of the; toy of; tte-prajentinveiatiott;
Fig. 9 is aidiagram -,oi the inftared transmission aol reception:cpmponents of an embodirnent '.of the toy of the present invention;
Fig. 10 isiablock ;diagram of thelmicrorconttoller architeicture in an embodiment of the tciy of the prr^entinyentidn;
Fig. 11 islotJcidiagia^6ftriefirstncroontro 10;
: Fig. 1 2 is a block diagram of the second micro-controller of the toy of Fig. 1 0;
Fig. 13 is a diagram illustraangth^riigh-icvel idealized the receiver and trapaminCTjcomponents of an embodiroeni^of ;the toy lof the present
invention;-
Fig, H is a;diagram illustrating the flow of the receiver component of the toy of FigJU;
Fig. 15 is a diagram illustrating the flow of the transmitter component 01 me iu ui Fig. 13;
Fig. 16 is an illustration of a decision graph of the type used by an embodiment of the toy of the present invention;
Fig. 17 is a detailed view of a node of the decision graph of Fig. 16;
Fig. 18 is an illustration of a forest of decision graphs;
Fig. 19 is a block diagram of a conversation process for an embodiment of the toy of the present invention;
Fig. 20 is a flowchart of the initiation transmission (part I) of an embodiment of the toy of the present invention;
Fig. 21 is a flow chart of the initiation transmission (part 2) of the toy of Fig. 20;
Fig. 22 is a diagram illustrating the initial state of the conversation flow framework for toys A; B and C constructed m accordance with die present invention;
Fig. 23 illustrates the decision graph of the toys of Fig. 26;
Fig. 24kis a diagram illustrating the conversation manager toy providing an initial notification to toy C of Fig. 22;
Fig. 25 is a diagram illustrating toy C transmitting a NEXTNODE message to toy AofFig.22;
Fig. 26 U a diagram iuustrating toy Cperfocming its action;
Fig;:27 isa diagram illujtrating toy C sending an ACTION^COMPLETED
message to joy JA;
Fig. 2& is a diagram illustratmganadditionaltoyD joining the toys of Fig. 22 and broadcasting an INITIATION request;
Hg; 2^iiadiagiaa
Fjgi 30 is a olagj illysteaimg toy A broadcasting the; current conversation
context!
Fig. 31;is a diagjluistconversational
•context;:-i of the translation mechanism of an embodiment of the
Fig.33bdiagramiUiiStntnigatoyAbyitself, Fig. M b adiagramiihtttratiraset of dcpUcaoreFig. 35 is a diagram illustrating two sets of dupiicate/reaunoam iuy.
PESCRIPTJON
The present invention its directed to a toy .that may interact with other toys so as to
present the appearance of the toys conversing. The interaction is provided by a toy that
incorpomtes several curdng^edge technologies such as artificial intelligence, advanced
communication protocols and hardware, the latest in speech storage, micro-controller
technologies and a host of others to achieve multi-modal collaborative agent communication.
This Is achieved: in both intra-series (within one particular toy product line) and inter-series
(spans across a number of toy product lines) asynchronous communal speech. The toy may
perform asynchronous speech with other toys within it's own toy line or series. This exists in
either 1:1 character conversation or ren characters (including duplicate characters) in a single
line or series of toys (i.e. toys ftoniachadrens' movie sitting around i§K telling ghost stories).
An alternative modality provides for tte collaborate speech of toys of completely separate
series (ie. toys from a children*' movie are approached by a fashion doll that was not a
character in the movie and act particularly shy and nervous, their conversation reflecting their
discomfort). The laderlying tMraoe . Of the conversation can range anywhere from dialogues
from a nwvie to^trategic plannmgroups of toys planning a war between
thernselves) or collaborative m
In trfim subsection of the Description a high-le'
of the toy of the present invention is presented. In the second subsection, the detailed functionality of the architecture of the toy of the present invention is presented.
'
as robust, dyriajruc, arjeilis between
toy s, spaced memory effidem Storage and generation of tho conversations, intra-ise^e«cc«Bii^
Geoeralized n
way interaction is an.exteimc of ttesceriarioarbdescobed ma subsequent
section.
Initially a single toy is turned on and begins to broadcast an UNi un UVIN m to notify any nearby toys of its awakening. The message is not directed toward any particular toy. Fig. 1 shows a single toy 50, Toy A, broadcasting the INITIATION message. The broadcast is repeated over a period of time until an acknowledgment is received from another toy or Toy A is turned off.
When another toy receives .the INITIATION message, it responds with an INIT_AqK message directed at i|the sender of the INITIATION message. In Fig. 2, Toy B (52) receives |he INITIATION;raessge from Toy A at time tl and responds with an INITAGK message at time t2(fci t2).
After iby A has receive the]Iirrj\CK message, bpth Toy A and Toy B have
updated the comma/few ;mcmflfr; jfC for ^current convetsatioa episodeas well as the
current oc/orj for the conversafibn (Toy A and Toy B). Every conversation episode has a
conversation manager which is in charge of selecting the conversation, managing
interactions between toys m tl^ normal flow of cpnversan'oiu and handling various error
conditions. Actors are toys whkh p^cipate in the current conversation episode. There
are many ways of selecting $* conversation manager given a set of participants in a
conversation episode, as weti 5u algorithms for selecting a conversation probabilistically
given a set of possible conversations and the set of actors. Examples are provided in a later
section.;'
After.-.dbii ccmvwsationrjjauiftger selects the wn^
of the actors for the c«nye3;sat a sustained conVersatipn takes place, as
illustrated in Fig. 3. jfjjp cwyapatio*
prescribed actiom (whichimay be speech, articulation, or even movement) which is supported by an urolertying ba^cbone of wireless communkations to order the sequence of
-: ' ' .. ' "' " • ;! \ "•'•'' J I " . . ' .
actionsThree-Wav and N-Wiay Toy Interaction
Tile two-way interaction scenario may be extended to handle three-way and n-way toy interaction, A sqjno'Mip and Toy C (54) enters irUo the yicinityaiuibroaa^su illustrated in Fig. 4.
At mis point, Toys A and B could ignore Toy C or seamlessly mcorporate Toy C into the conversation As tr*to optk«Btrrvial to implement, tte
described here. When Toy A receives the INITIATION message from Toy C it responds (without breaking the flow of conversation with Toy B) to Toy C with an FNTT^ACK message (Fig. 5),
Assuming that the INITIATION message was broadcast at time Toy A first sends an INIT_ACK message to Toy C at time t, ft, ). The INITACK message contains the context of the current conversation (e.g. the conversation manager identity, the actors in the conversation, and information about the current conversation). This updates Toy C's internal representation. The conversation manager (Toy A) then broadcasts a new member notification containing Toy C to all of the current actors in the conversation at time t, (t,, tj. As illustrated in Pig. 6, once the other actors (e.g. Toy B) receive the update message, all of the internal representations of the actors are synchronized. Toy C is now a full member of the conversation and can participate when directed.
It should be noted thai this process can be extended to the n-way case robustly. Reliability depends on the amount of bandwidth supported by die wireless communication technology. Removing a Tov
Another common scenario during a conversation is when a toy drops out of the conversation. This may be due to many reasons. For example, the toy may have moved out of range of the other toys, die child (or owner) may decide to remove it from the current conversation or it may run low on battery power. This scenario is shown in Fig. 7, where Toy C drops out of the conversation.
It should be poled thatthe absence of Toy C does not impact me conversation until it is sdected to perform the next action ui the conversation. This process can be extended to the n-way case robustly. Reliability depends on the amount of bandwidth supported by the wireless communication technology. andshaking (Three or more tovsl
As is apparent from the above, even when toys are involved in a conversation they are listening for new communications from other toys that want to "join-in" into the current conversation. This process cat
If (here are at least three toys at the start of a conversation, then the toys will follow their toy-number, or Global Identification Number (GIN), to detennine which two toys
have priority. The two toys with priority initiate the handshaking procedure as described above. At this point all that the third toy is doing is sending an INITIATION message. The INITIATION message is received by one of the first two toys that have already finished the handshaking stage and are now in the communication stage. The toy receiving the INITIATION message will send an ENIT*ACK, message as illustrated in Fig. 6. The processing will then proceed as described above with regard to Fig. 5.
Architecture Description
This subsection describes a general underlying architecture to implement the functionality described in the previous subsection.
Fig. 8 shows the layered architecture for two toys or units 60 and 62. It should be noted that every toy/unit has an identical architectural structure. The Physical Medium 64 consists of the technology which allows;for the transmission of data 65 between different toys. This medium may be infrared (ZRV ndio waves (RF) or other forms of wireless communication.
Fundamental to theiwl^ of mteraction between non-physically connected units is
a wireless transmissiott capability whick allows the transfer of well-structured chunks of
information from a seller to a set of receivers). The; Physical layer, indicated at 66 in
Figs. 8 and 9, consists of (he hardware (HW) and embedded software (SW) which allows
each toy to access and effect thelalan embodhnent of the toy of the
present mvenrictt ilhiste
69 and a transmitter 70 which sends data from a protocol/data pipeline 71. The protocol/data pipelines 6? and 71 communicate with me Messenger layer 72 of Fig. 8. The information that is transmitted and received by the IR transmission and reception circuitry is a protocol in binary sequence. That is, a series of well structured chunks of information in the form of Is and Os (binary) in sequential order. The IR reception and transmission circuitry may be incorporated into a single device such as a standard 60kHz IR transceiver.
After a toy recdves a message, a two-stage process occurs. First is the processing which involves the verification aol extraction of m&rmation from the message received. Second is the analysisofthis infbrmadon to determiJM what is the next thing that the toy must dp. The prosrin land analy are perfonm
layers of which are implemented on a controller, an
embodiment of which is fltostrited at 73 in Fig. 10. Controller 73 may be an integrated
circuit chip or any other electronic device, fig. lu uiusu-aics a conirouer wuu.d uuo microcontroller arrangement, featuring a first micro-controller 1, indicated at 74, and a second micro-controller 2, indicated at 76. Micro-controllers 74 and 76 are utilized to implement the Messenger and Application layers. 72 and 78 in Fig. 8, respectively.
With reference to Fig. 11, once a transmission has been received successfully by a toy, it is processed so that it is verified and the relevant fields that contain information needed in the analysis stage are extracted. This is handled by the first micro-controller 74. When a transmission is received, the: "Receiver" field is processed. If the message is not addressed to the receiving toy, the message is not addressed to everyone (a broadcast message) or it is not a special transmission, then the transmission will be discarded. If the message is addressed to the receiving toy, is a general transmission or is a special broadcast, then the message is further verified and is considered for the analysis stage. Upon completion of the further verification (described in greater detail with regard to the Messenger layer below), the appropriate fields (Sender, Receiver, Message ID, etc.) are extracted and by the Messenger layer and the composed strearn is passed to the second micro-controller (76 in Figs. 10 and 12).
In addition to verifying and extracting information from received messages, the Messenger layer 72 (Fig. 8) performs the low-level actions of sending and confirming
the Physical Medium. The Messenger layer manages message requests from the Application layer and cwtrols/monitors the data transmitted/received by the Physical layer. The Messenger layer performs flow control, error-handling, and supports both point-to-point (i.e. toy to toy) as well as. broadcast style communications. The Messenger layer may also interact directly with any specialized supporting hardware.
The Application layer 78 (Figs. 8 and 12) handles all high-level control of the system. It manages the toy's interaction with other toys, and enables all of the unique functionalities. In particular, die Application layer is able to negotiate and; sustain multi-way interacnons/conversations with other toys accessible through the Physical Medium. The Application layer for a particular toy communicates with the Application layer for other toys. Message requests are sent by the Application layer to the Messenger layer. The Application layer may also handle interactions with support hardware such as EEPROMs/meroory units and voice synthesis technologies.
As illustrated in Fig. 12, the information verified and extracted from the raw message in the Messenger layer is sent to the second micro-controller 76 for analysis by the Application layer 78 and whatever appropriate action needs to be taken. In the analysis phase, illustrated in Fig. 12, a conversation is selected from the Application layer Decision Graph forest (discussed later) to choose how the conversation is going to progress.
Once the conversation has been selected, retrieval of the indexed sentence occurs. The dialog for the toy is stored on some secondary storage medium. For example, the sentences may be stored on a voice storage chip. Once retrieved, the sentence is audibly played through speaker 75. Any storage medium can be used as long as the retrieval time is factored into the response-time for the toy and is under an acceptable limit.
The last stage of this process involves the compilation of a new message in the formatof the protocol using informatioQ retrieved from the conversation data and the toy's internal identification numbet/Global Identification Number (GIN). This new message is ; seat to the Messenger layer which routes the message for transmission,
As illustrated in Fig. 8, the architecture allows for Support HW 79 to be controlled by both the Applieat»n layer af well as the Messenger layer. As an example, Support HW may consist o£ but is not limited to, EEPROMs/ memory, voice synthesis technologies, electro-mechanical control and actuation unite.; With regard to the latter, simple animation of trie mouth based on the spoken votes can be achieved by using electromagnetic attractors on me tower side of the jaw of me toy. The greater me intensity of the sound, the more the mouth is forced to open. Pseudo-reaiistic movement can be achieved by using a simple cutoff mechanism fbr smaller fluctuations of the voice. Technology for smoothening (such as a Fourier transform) can be used.
There are ntany potential embodimentsof HW fer implementing the architecture of the toy of the present im/entwn including, but are not limited to, the following: Micro-controllerEmbodbnem •.
A natural way to implement the architecture is throughthe use of micro-controllers. An;example of this embodiment has been presented and described above with regard to Figs. KM2. Micro-conttollen are essentially small jprocessois, with limited processing power and memory,; which are used to control devices. The advantage of using microcontrollers is that they are easily (re)programroabte. Depending on the power of the
selected microcontroller, one or many micro-controllers may be used, along with the
necessary support hardware.
Applicationgpecific Integrated Circuit Chip ("ASIC") Embodiment
The "ASIC" embodiment covers any attempt to implement the above controller 73 (Fig. 10) or architecture directly as a chip or chipset. These implementations are more difficult but usually yield a lower-per-unit cost as well as potentially higher performance characteristics. Typical "ASIC" embodiments may be built from scratch or use some programmable architecture (i.e. field-programmable gate arrays, LASlCs, etc.).
The Messenger and Application layers will now be described in greater detail. Messenger Laver Functionality Overview
The Messenger layer represents, the unit of functionality which allows the different units to transmit and receive messages reliably. The Messenger layer implements the nuts and bolts of receiving messages asynchronously from an outside source (which it passes on to the Application layer), and transmitting messages given to it by the Application layer. The Messenger layer must perform the handshaking necessary to verify that the message it receives/transmits is cortect and complete, and must be scalable sufficiently to operate reliably and efficiently in an environment with multiple units. Data Structures and Formats
The Messenger layer implements one key data format: the Message. The Message represents the basic unit of communication between toys across the Physical Medium. A Message Imposes a methodology of interpreting the series of bits that compose the Message (which may be fixed or standard length). The- Message format is a series of "strings" of bits; each string or set of strings has a well-defined meaning. The key "strings"/sets of "strings" which form a message are: 1) Message Begin/Message End; 2) Sender, 3) Receiver, 4) Message ID; 5) Message Type; 6) State Data; 7) Message Content.
Message Begin/Message End represent strings which define the beginning or end of a Message. These strings are used by toys to determine when data read by the Physical layer is meaningful or not.
The Sender string identifies the sender of the Message.
The Receiver string identities the intended receiver 01 me message, in this field is blank (le. for broadcasts to the set of toys accessible through the Physical Medium).
Message ID is an optional string which is a unique identifier for a Message.
Message Type is an optional string which allows the receiver additional early interpretation capabilities.
State Data is an optional string which allows the transmitter to send state data about its internal representation to other units very efficiently; This string will have its own implementation-specific sub-string semantics.
Message Content is a fixed or variable-length string which encodes the body of the Message.
A potential embodiment of the above is to designate the following representation for Messages transmitted fcjy the Messenger layer, with each Message being no longer than MAXLENGTH (e.g, 300) bitt,total:
[M*tt«fi B«ftai| {Swfcrl [Receiver] [Message ID} {Message Typ*);(Cantext (St»te'i>att)jpvfe$sage Cootentl [Message End]
message, A«mple: 1111 HHOlOtO 101 A unique idttfiCT fa the uttft
Receiver
; v.; A UTuqije itdentifier for the umtrreceiving the message (8 bits). Starts from 1. Bro^k»st messages wm:nA unique identifier for the transmitted message (8 bits)
Message Type
One oft MSG, MSG_ACK, ACK_ACK (4 bits)
MessageType Meaning
MSG An original message from the
transmitter to the receiver
MSGjACK An acknowledgement of the original
message from the Receiver to the
transmitterACK_ACK An acknowledgement of the^ message
acknowledgementContext
A specific inbnentaoon of the State Data field, Context is a representation of sonveisational osMttexr ^vtoich may be emotion,
Variable-Jength 6eW whkh contains the contents of the message.
Its inteiptetatwo yariwaSome examptes:areMessageTypeContents
MSGMeaning of contents to be:deoia by Al. ModuleThe previous message'scontents
MSGACK
A series of 16 bits which indicates the end of a message. A sample:
Interface with Physical taper
The Messenger layer must interact with the Physical layer to transmit its Messages to the Physical Medium. This interface is technology-dependent and may be simple or complex, depending on the technology used to implement the Physical layer. A stream of bits may be required, or more sophisticated Physical layers may be able to access an entire unit of information (e.g. a Message) all at once.
A potential embodiment of this is an interface with an infrared (IR) transceiver unit. In this case, a common clock drives both the IR unit as well as the Messenger layer's interface component The IR unit is able to transmit/receive one bit per clock cycle. The Messenger layer transforms a Message into a stream of bits which is sent to the IR transceiver. For reception, during each clock cycle a bit of data is recorded from the IR transceiver and stored in a data buffer within the Messenger layer. This data buffer is constantly scanned for Message Begin bit strings. When a Message Begin is discovered, ail of the biti between it and a Message End bit string are saved in the buffer and interpreted as a Message. If the Message End is not received within MAXLENGTH bits then the MAXLENGTH bits within the buffer are interpreted as a Message, Numerous other error handling techniques are possible. Interface with Application Layer
The Messenger layer must:interact with the Application layer. On the basis of its internal state, the Application layer may request thai the Messenger layer send a Message to a particular toy or to all toys accessible through the Physical Medium. When it receives a Message transmission request, the Messenger layer may either make the Application layer wait until it has successfully seat the Message (blocking) or allow the Application layer to continue processing during the physical transmission of the Message (non-blocking). Advantages and disadvantages exist for blocking and non-blocking modes.
Blocking mode is simpler to implement ana aoes not require extra tecnnoiogy 10 ensure that the Messenger layer is not overburdened. Non-blocking mode allows for parallel processing (and enhanced performance) but is more complicated to implement. Data Flow and Algorithms.
Ail communications are modeled as single communication sessions between two units. A communication session between two units consists of: message transmission, error-checking,andpotentiai retransmissions.
The idealized data flow is shown by the heavy dotted tines in Fig. 13. As will be explained below, the Messenger layer features a Receiver component and a Transmission component. In the following.; description and Fig. 13, the Transmitter is a component of the unit/toy sending the message, and the Receiver is a component of the toy/unit receiving the message.
TransmitterReceiver
Get message from Application Module, Transmit message to Receiver pUSG) Receive message from Transmitter.Send msg ack to TransmitterReceive msg ack from Receiver. Compare content of msg ack with the Original message it transmitted If successful, send an ack of the msg ack to the Receiver (AOC_ACK)Receive ack of the msg ack itsent outPass the original message to theApplication Module,
It should be noted that .there are three message types sent out in this protocol: MSG ACK, and ACK.ACK. MSG (sent from the transmitter to the receiver) is the original message sent out. MSG_ACK (sent from the receiver to the transmitter) is the receiver's acknowledgment of MSG. MSG_ACK also allows the transmitter to perform error checking on what message the receiver has received. ACK-ACK (sent from the transmitter to the receiver) is an acknowledgment that MSG^ACK checked out and that the receiver indeed has the correct message. After the receiver gets the ACK_ACK message from the transmitter the receiver (Messenger layer) knows that it has the complete, correct message, and it passes the message to the Application layer for further processing.
Of course, not all data flows will be successful all the way through as shown above. The Messenger layer also needs to accommodate noisy communications channels, disappearing units, etc. These issues will be discussed in a later section. Control Flow/Finite State Machine Overview
The Messenger layer is implemented using a Finite-State Machine (FSM) with eight total states. The FSM is divided into two major components, a Receiver component (Fig. 14) and a Transmitter ^ component (Fig. 15). In Figs. 13-15, the Receiver and Transmitter states are indicated by the circles. It should be noted that transition between the Receiver component and the Transmitter component only occurs between the first two states of the components (i.e. State 0 of the Receiver and State 5 of the Transmitter). Once the Messenger layer proceeds along the Receiver or Transmitter path it stays there until u either succeeds or fails for the reception/transmission. State Descriptions - teethe* Component (Fig. 14)
State 0 (Receive)
The main receive state of the Messenger tayer/FSM. In this state, it watches only for messages with Message Type fields set to MSG and Receiver fields that are addressed to it or to "0". Saves die message for the duration of the communication session, including the message's msgjd (Message ID field).
Transition Rules:
Go to State S if the Application layer has data available and a message Begin Held hasn't been received yet.
Go to State 1 if we have a complete message (i.e. we've seen the message footer),
State 1 (Send MSG_ACK)
Create and send a MSGACK message after receiving a MSG. Keep track of the msgjd of the MSG_AGJC message sent out for future reference. Limit the total number of times the MSG_ACK has been sent out to 3 (keep count using ack_msg_rescndj:ount). Wait a random time before retransmissions (see Pragmatics section below). Transition Rules:Go,to State 0(and rtse»ack_msg_resend_count) if ack_msg_resend_count is greater than 3. Thjsisa transinission Mure condition.
State 2 (Waft for ACK_ACK)Wait for the ACK_ACK signal from the Transmitter (see State 6). Also test for a
Transition Rules:
Go to State 4 if an ACKjVCK signal is sent to the receiver fic6tn? me transmitter
containing (he same msg^id that was saved in State 1. This means that the
:;; transmididncrtfiiKi an error with the M in State I.
' Go to State: I if the transmitter has resent MSG to the receiver (sajn^ as that
saved during State 0).
Go to State 1 if timed out (retransmission of MSQACK) State 4 (Transmit to AppUcation Module)
Transmit the original message (from State 0) to the Application Module. Reset all relevant variables.
Transition Rules:
Go to State 0 always. State Descriptions- Transmission Component (Fig. IS)
State 5 (Send Msg)
Initial send sate. If data is available from the application module, create a new message
for it. Transmit the message. Keep track of the number of retransmissions of this message;
limit it to 3.
Wait a random period of time before retransmissions (see the Pragmatics section below). Transition Rules:
Go to State 0 if no data is available from the Application Module. Go u> State 0 if the number of retransmissions of the message exceeds 3. Go to State 6 after transmitting, State 6 (Waft forMSG.ACK)
Wait for MSG_ACK from receiver. When the MSG_ACK comes, compare its content against the original message contents. If they are the same, continue to the next state; else retransmit the message to the receiver.: Save the MSG.ACK msg_id-
Transition Rules:
Go to State 7 if the comparison is successful. Clear the ACK_ACK retransmission count.
Go to State 5 (retransmission) if the comparison is unsuccessful. Go to State 5 if time out State 7 (Send the ACK_ACK message)Create the ACK_ACK message (contents are the msgjdof the MSG_ACK) if not retransmission. Send the ACK_ACK message to the receiver. Keep track of the number of retransmissions; limit to 3. Watt a random amount of time before retransmissions (see Pragmatics section below).
Transition Rules:
Go to State8if the number of retransmissions is not greater than 3.
Go to State 5 (MSG retransmission) if the number of retransmissions is greater than
3. .
Clear the AQC_ACK retransmissioncount.
State 8 (Waft for a MSGACK retransmit)
Wait to make sure the Receiver has gotten the ACK_ACK. If the Receiver didn't get the ACK-ACK, it will timeout in State 2 and try to retransmit the MSG_ACK from State I. if a MSG^ACK is received then go back to State 7 and try resending the ACK_ACK,
Transition Rules:
Go to State 0 jf time out. (Success) Clear all relevant variables.
Go to Staw 7 if the M§G_ACK. from State I is received (compare against saved
-i. . • • •
MSO_ACKmsg.id from State 6). Clew die ACK-ACK retransmission count.
Pragmatics
Message Handling
Messages preferably aw stored ia the Messenger layer bit arrays. Preferably, a set
of accessor routines are programmed which, when given a message bit array, are able to
retrieve the seadtr, receiver, j)i5gJ4 oBfcjype, and ms'g^coctent fields. Routines which
are able to recognize & message bead* and footer witbia a stream of bits are preferably also
present. :
TtmeOttB
Most qf the states ant looking for very; particular raesMgesiathilr two-way
comfliunicaiion scsitott ft may be that: other Aotw sources (lose of transmission. Ooi«y
channel, other uai») will mangle the transmission. Thus, every "wait" state (i.e. States 2,
6, and 8) has* time out \rfucfc rev^ The time outs
should be of sufficient kagik to allow the other unit to at least send a message begin field lo the c\B«nt toy/unit.
A systematic error for garbled messages is when different units attempt tt transmit atihe sameituac That it is necessary To? retnnsmtooM to jwovioUi some variation start times. This is achieved by waiting a period of time between cetnuumissions with some randomness throMOi, in. For example, suppose, that the .maximum message tmsfnisston time is X seconds. Thtn a retransmission request may wait 5*X + U(0,l) seconds (wbere U(0,l) is- the uniform distribution between 0 and I) before commencing
Application
The Application layer is responsible for the overall control and enactment of the coy capabilities. The Application layer consists of two elements; a process which defines how multiple, independent toys may coordinate with each other to hold seemingly spontaneous conversations about various topics and a set of internal representations (i.e. data structures) which enable the above process. Every toy implements the process and internal representations. Internal Representations
The process determines how the toys interact but docs not define the basis of the interaction. This basis may be described by the internal representations, or data structures, which circumscribe the content of the interaction by their design. It should be noted that a particular toy's content is not being defined, but rather a framework in which content is defined and organized. Decuta Graphs
The key data structure utilized by the invention, a Decision Graph, is a compact representation of many possible conversations and the technology necessary to implement realistic conversations. Fig. & shows a high-level view of the form of a Decision Graph.
Decision Graphs consist of a set of nodes 80-96 (which represent pieces of conversation) connected together by a set of directed edges 100*114 (one-way edges) which define allowable transitions between nodes. Each node has a non-empty set of fanins (nodes connected to edges coming into the nod*) as well as fanouts (nodes connected to edgea going out of the node). The ianin set for a given node is called the node's parents, while the fanout set for a given node is called the node's children. In a Decision Graph, a node may have multiple fanins and farwuts, although they may not have a Cycle (i.e. the occurrence of a loop in the graph which allows visitation of a nods more than once during a graph traversal). Hence a Decision Graph has some of the key characteristics of a Directed Acyclic Graph (DAG). There are two types of special nodes in a Decision Graph: the top-most node in the graph 80 (Le. the node with an empcy fanin set) is called the root node; the bottom-most nodes in the graph 92, 94 and 96 (i.e. the nodes with empty fanout sets) are called the leaf nodes.
Each node represents a discrete, unit of conversation encoded by the Decision Graph. Complete conversations are constructed by traversing (i.e. going from node tonode) a Decision Graph from the root node to one of the leaf nodes of the graph. While ai a given node, any of the children of the node may be selected as the next node in the conversation. Thus a single Decision Graph may encode a number of distinct conversations that still make logical sense (given that the Decision Graph's content is defined properly by the manufacturer of the toy).
Pram the above description, the Decision Graph structure appears to be quite similar to that of Directed Acyclic Graphs. However, Decision Graphs' representation is for more powerful than that of DAGs. Decision Graphs implement Comexxs, which are flexible groupings of edges which organize the elements of a Decision Graph into smaller subgroupings. Contexts may be used to represent various emotional states of the toys, i.e. anger, sadness, surprise, fear, eic. Selection among the contexts in a given node may be deterministic (i.e. not left to chance) or nan-deterministic (subject to random variation). Non-determinism of cornea selection may be biased or* historical context (i.e. a history of the last n contexts selected coming into the current node, as in a Markov chain).
Fig. 17 is a detailed diagram of a node within a Decision Graph. Each node has data fields: Node ID, Actor, Action, and Other Data. Node ID is the unique identifier of the node. Actor is the set-of toys which perform an action for this node (i.e. speech or physical enactment). Action i* the set of actions teat the acton perform for this node. Finally, Other Data are all other associated data for the node. After these data fields comes the Context Set. In Fig. 17, there are n different contexts labeled Context I to Context n. There can be any number of contexts defined for a given node. Each context may have a probability associated with it, Prob(l) to Prob(n). It should be noted that these probabiihiet ait optional and an used only when a non-deterministic traversal of the Decision Graph is desired. Also, it should be noted that a number of embodiments of the probabilities associated with Contexts are possible, including, but not limited to: i) storing the probabilities wiihio each node, 2) storing th* probabilities within a global ubls available to all nodes; etc.
Each Context is linked to a set of Children Ids with their own associated probabilities. For example, in Fig, 17 Context 1 is linked to ChildO, 1) to Child(l, m,). These identifiers are the Node Ids of them, children for Context 1 for this node. Thus Cbild(k, I) represents a directed edge In ihe Decision Graph. Thus, the abovt node has m, + mj + mj +... 4- m, children distributed among its n Contexts.
Each child may also have a probability associawu ui,.,
mi) for Child(l, 1) to ChildO, mi) when non-deterministic traversal 13 desired. Each Context ha* its own act of •childnm, i.e. Child(2, 1) to Child(2, m^ for Context 2. and Child Each toy contains a set or "forest" of Decision Graphs. All of (hew Decision Graphs are linked wg«ther by, their root nodes to a top-level forest root node USfFijj. 18). Each Decision Graph (shown for simplicity as a triangle) represents a set of potential conversations. Special decision graphs may exist to implement particular conversational scenarios, for example welcoming a toy into an existing conversation, or dismissing a toy from an existing conversation. In this case, the conversational flow may jump from wiihio a given Decision Graph to another Decision Graph and then return to the original graph. Process
The process of controlling multiple toys interacting with each other may be divided Into tltrec sequential sub processes, as shown to Pig. 19:
Conversation Initiation 120 is the process by which a set of independent toys coordinate to initiate a conversation. In this context, the Conversation Initiation process covers the behavior of a toy starting from when it la turned on lo the point where a group of toys participating in a conversation (a Conversation Group) has been created, a "manager" has bean selected to initiait and to bandit error situations (the Conversation Manager), a conversation, for tb* Conversation Group has beta selected, and all of the toys have been notified Of tin conversation.
Conversation Progression 122 » the phase ia which the toys interact with each other to play out i conversation based on their internal representations of the conversation (a Decision Graph). This process, tike the other processes, must be robust enough to survive many error conditions.
Conversation Termination 124 is the process by which the current convocation ends and in which all of the toys are "reset" to the Conversation Initiation process.
Trie set of alt toys participating in a given conversation is called the Conversation Group. Each toy of a Conversation Group it an Actor, i.e. a toy which is called upon to perform actions during the course of a conversation.
Conversation Initiation process, the Conversation Manager is central to this process and the subsequent Application layer tasks illustrated in Fig. 19, The Conversation Manager is responsible for selecting, initiating and sustaining the conversation, and helps to resolve error situations. The Conversation Manager, may change dynamically during a conversation. Situations where the Conversation Manager may change are, but are not limited to: 1) the existing Conversation Manager is removed from the Conversation Group: 2) load-balancing purposes (i.e. the current Conversation: Manager is overloaded from its duties as an Actor). A Conversation Manager is also an Actor in its Conversation Group.
Once a toy is elected as the Conversation Manager, it will have to perform a number of talcs in addition to participating in the present conversation. For example, the Conversation Manager (CM) selects a conversation. More specifically, it is the CM's responsibility to pick a single Decision Graph that represents a "line of conversation" along with its deviations. The CM must pick a Decision Graph root node that corresponds to one of the acton in Us current active conversation group list This will ensure that the conversation always has an actor who is active start off the conversation.
The CM also maintain* the active actor USL During the conversation the CM will, at regular intervals, broadcast a CONVJLJPDATE Message, This Message has a reserved id field indicating that it is a CM transmission, the sender is assumed to be the current CM and the receiver U the current membership of the Conversation Group. This transmission, when received by a toy/actor will cause the receiving toy/actor to update its own list. There is no MSO_ACK to ibis message except for the case when an actor who believes itself to be on the Active Hst finds that it is not included on the tnutsmitted list. In this case it transmits its INITIATION Message to the CM and continues to do so after every CON V_UPDATE message that it finds itself not included in.
When a first toy firil* to communicate with a second toy that needs to carry on the conversation, the first toy shifts the second toy to its doubtfuls-Iist and then transmits this information to the current CM. All such modifications are received, processed and then reflect in the next CM's CONV_UPDATE message. All CONV.UPDATE Messages arc transmitted in triplicate with the «anw message tag (randomly generated).
Conversation Initiation
Conversation Initiation is the process by which a set of independent toys/units coordinate to initiate a conversation.
Conversation Initiation may be broken down into three phases:
1. Initiation Transmisslon/Conyroalion Manager Selection;
2. Conversation Selection by the Conversation. Manager,
3. Conversation Notification by the Conversation Manager to the Conversation
Group.The Initiation Tnnsninsion/Coaversatjon Manager Selection phase covers the initial stages of coordination between units. In this phase a number of units have been brought together and they must discover each other and sekct a Conversation Manager for the next phases of conversation initiation.
Given a set of units with unique -integer ids, or Global Identification Numbers
' f (GINs) the Conversation Manager is defined as the unit with the highest-valued id.
Figs. 20 and 21 show a flowchart of the initiation transmission phase. It should be noted that there are four types of messages being sent during this phase:
1. INITIATION - a message which is empty except for the Sender field/firomjd.
It is used as a "ping1* to locate other units. Note that this is a "broadcast"
message, i.e. one mat does not have a Receiver field/tojd specified.
2. IMT_ACK-&me3saga which is empty except for the ftom_idandto_id. It is
used to respond to an INITIATION message thaihtt been received and is used
to identify the recipient of the INITIATION message to the sender.
3. CQNV_PROPOSAL - amwaije which contains.-the from Jd and the node id
of a proposed conversation in the message content field. This is also a
broadcast message.
4. DONE - a message which contains a fromjd and which signifies the end of a
conversation (a broadcast message). The DONE message is never sent during
conversation initation, but when received during unit operation it restarts the
initiation transmission phase.
Several timer time periods walso specified in the flowchart:
1. MAXJ[WTUTION;J1ME: The amount of time that each unit spends actively
semiuig INITIATIONS and tNIT^ACKs to other units. The value of this time
period is fixed :
2. TK.TIME: The amount of time bctpre^next/rNrilATION wmsmission.
Cohsidferably less than MAX^INITIATION.TIWIE, TRlTIME has! a random
component which avoids INITIATION collisions between different units.
3. MAk_MSOLAlT: The maximum amount of time for a unit! lo wait between
messages which are not INITIATION, AGK, or DONE messages. This is used
as a timeout whei the unit initially detects a conversation in progress but for
some reason the conversation breaks up before a DONE message is sent, his
also used as;tbe first TR_TIME period
The initiation transmission flowchart implements a "Meek" interaction policy which involves the fbllowing^cbordinatioD tenets;
1. A iirut always "listera* before rransw If it detects a
conversation in progress it remains silent until a DONE message is received or it
tiroes out (MAX_MSG_WAIJ) between receiving conversation messages between
other units.
2. A unit keep* quiet (ie, stops transmitting INITIATIONS and INIT_ACK*) when it
knows thatit iaa't Ste conversation manager.
3. A unit always responds immediately to a CONV^iPROPOSAL. In effect, any new
CONV^PROPOSAL win ahvays trump the existing initiation transmission process.
The portions of the flowchart in Fig. 20 marked as u. .."represent the continuation of the Conversation Initiation process.
The "Select Conversation" box in Fig, 20 represents the act of selecting a conversation given a known set of participants. The conversation is selected by selecting a Decision Graph root node. This action is performed only by the Conversation Manager. The Conversation Manager selects a Decision Graph from the subset of all Decision
Graphs that contain a participant lUt thai is a subset of the acuve/cunreiu The Decision Graph, participant list contains the Actors for ail nodes that ate. accessed when the Decision Graph is selected. As an example, assuming that the Conversation Manager has toys A, B, C, and D in the active participants list, then the CM will select a Decision Graph from ail Decisioo Graphs that contain a subset of (A, 8, C, 0} (U. (A, Q, C] ,{ A, B}, or{A.B,C,D}).
The pseudocode for conversation selection picks a Decision Graph that is more likely to have contexts, with d larger number of participants matching the current/active participants list. The pseudocode assumes that DECGR_ARRAY contains a list of indices to all of the Decision Graphs in the database. Aa described previously, each Decision Graph had B number of nodes, each of which includes one or more Actors pr participants. Aa ft result, each Decision Graph has anumbet of participants associated with it Although the pseudocode does otrf specify a bit-wise encoding of the different participants it !s recomiaendedthatloyA-OOOOOD01,toyB = 00000010, toyC^-OOOQOlOO, etc. The pseudocode for conversation selection (selecting a Decision Graph root node) is as follows:
Select a context:Select the Decision Graph:
SetMATOLVALUBSloO
Iterate through DECGR_AHHAY;
For tach ekfim DCCGR of DECGR_ARRAY, dtwk to see if it has a
participial list thai i$ the SUM as or is a subgroup of the|cw»nt/acttve
pamcipamlist .
If it is, count the wunber of mawhts between DECOR: j»rticlpaBt list (a
the Qurrentparticipflat list
Divide the number of matthea by the size of th« current participant list.
Save the result in the appropriaic entry (between 0.0 and 1.0) in the float
Wi^MATCRVALUES.
Add tha rtsuktoMATCHJUM
Iterate through MATCH_VAL1JES
For each element VALUE of MATCH_VALUES, divide VALUE by
MATCH.SUM and resave it into the VALUE element. MATCHJ/ALUES i*aow a normalized vector of probabilities which *ums to 1.0 Select a random float between 0,0 and 1.0 (RAND _NUM), Iterate through MATCrLVAiUES;
For each element VALUE of MATCHJ/ALUES, see if RANDjftJM or
VALUE.
If it is. thea select the tool node of the Decision. Graph corresponding to the
element (using die indices In DECGR.ARRAY).
If it isn't, set RAND_NUM * RANDJ element in ^TOT VALUES.
Efficient indexing and matching of the active/current participant list and each Decision Graph participant list is essential. Preferably, bitwise representations for the Decision Graph and active/current participant lists are implemented. For example, Toy A with id I has a representation (00000001) and Toy F with id 6 has a representation (00100000). The active/current pMtkipant and Decision Graph participant lists are constructed by a bitwise OR of all of the different bitmasks for the units. For example, suppose the active participant list has Toys A, D, E, and G. Then the participant list would be encoded as 01011001. Then computing the intersection of the active/current and Decision Graph participant lists would be a simple bitwise AND of the two vectors and testing whether ihe Decision Graph participant list is a subset of tht active/current participant list would be (!X)Y, whew X is the participant list vector and Y U the Decision Graph participant vector. Computing the number of matches would be a loop counting the number of successful right shift* bitwise AND'edwith the 00000001 mask.
Once the conversation baa been selected, the Conversation Manager broadcasts the initial conversation information in triplicate. This notifies »U of the members of the Conversation Group of the selected Decision Graph, the identity of the Conversation Manager, the selected Context, the current node and the set of members participating in the conversation.
Conversation Progression
Owe UV Conversation Manager has been selected and the set of Actors in the Conversation Group notified of the conversation, tbe actual process of coordinating the traversal of the Decision Graph and of performing the conversation begins. The Conversation. Progression process defines a general means of performing the above activities in a robust and. efficient manner.
The key concepts within Conversation Progression are the following.
1. Control Methodology
2. Conversation Flow Framework
3. Error Handling
The Control Methodology specifies the nature of bow conversation flow is controlled during the conversation. Bemethodctefyniaybecenintiaedor^^
nature of toy interaction. A key concept is the locus of control. The locus of control is the element within the Conversation Group that direct* the flow of the conversation. In a centralized scheme, the focus ofcontrol tends to reside wim a particular toy member of the Conversation Group, la a distributed methodology, the locus of control tends to shift between members of the Conversation Group. Many potential embodiments of the above framework exi, combining dements of centralized and distributed control.
An example of a centralized methodology would be where a single toy/unit (i.e. the Conversation Manager) performs all of die coordination and other command activities during the conversation. For example, in a centralized control methodology, the Conversation Manager would start the conversation and would traverse the selected Decision Graph. AC each node tbe Conversation Manager would contact the Actor associated with the node and tell it to perform the action associated with the node. After the Actor completed the action, the Conversadon Manager would then select the next node in the Decision Graph and contact the Actor associated with that node, etc. The Conversation Manager would be in charge of handling all errors and conversation termination conditions.
An example of a distributed control methodology is one in which a token is passed among the Actors in the Conversation Group. The owner of the token is the Actorassociated with the current node in the Decision: Graph. After the owner of the token has completed its actions, it selects a child node of the current node, and sends the token to the Actor associated with the child node. The owner of the token may also act as the Conversation Manager, handling error situations and other issues.
The. embodiment described in detail below combines elements of a centralized1 and a distributed control methodology. It is centralized in that the Conversation Manager for this process is the one chosen during the Conversation Initiation process. This actor remains the Conversation Manager unless it is somehow removed from the Conversation Croup. When this happens, a new Conversation Manager is selected. The selection of a new CM is described in the discussion of Error Handling below. The embodiment is also a distributed process in thai the selcrobq of the next node and notification of the Actor associated with the child node at any point In the conversation is performed by the Actor associated with, the current node. This scheme reduces the burden of communication from the Conversation Manager. The Conversation Manager acts as a second line of defense if a problem is encountered with either the current Actor or die next Actor at any point in the conversation.
Having decided upon/*1 control methodology, the Conversation Flow Framework defines the aua and bolts of coordinating the actual conversation. It should be noted that there are two levels of "communication': the underlying Messages passed via the Physical Medium (e.g. IR, RF, etc.) and the outward observable (to the human eye and ear) actions performed by the toys.
The framework consists of a sequence of point-to-point transmissions and broadcasts between the Actors in the Conversation Group. The examples below demonstrate an embodiment of a conversation flow between acton in a Conversation using the serai-distributed control methodology described in the previous section. It should be noted that the purpose of this example is to demonstrate the Conversation Progression process for a "normal" conversation. Error conditions and other issues are addressed in a subsequent section.
The initial state of the Actors in the Conversation Group is shown in Fig. 22. There are three Actors: Toy A, Toy B, and Toy C, indicated al 130,132 and 134, respectively. Toy: A has been selected as the Convmatwn Manager, and all of the toys krtow that A is the CM (see the CM field values in each of the nodes). The current locus of control resideswith A, with the other toys waiting for a bounded period of time for a Message from A. After the bounded period of lime has passed, the toys assume that the Conversation Manager has been disabled and return'to Conversation Initiation.
The Decision Graph selected is shown in Pig. 23. This diagram is a combination of the high-level Decision Graph structure shown in Fig. 1$ combined with sume of the detail shown for each node in Pig. 17.
The current node 140 (Node I, Node ID I at the top of the Decision Graph) is the root node of the graph. It should be recalled from the previous discussion that all of the toys have the same complete Decision Graph and all have the current node set to the Node 1 During the conversation, all of the toys listen to the Messages passing between various toys and update their internal representation to reflect the current oode in the Decision Graph. Each node has a Node ID, an Actor, an Action, and an Action Duration. The Node ID is a unique identifier for each nod* (all nodes in all Decision Graphs have unique Ida). The Actor field contains the identifier of the Across) performing the Action for the current node. The Action field contains the identifier for the Action or Actions associated that the Actors) must perform for this node. Finally, the Action Dur (Action Duration) field contains the estimated tilhe. required for the Actor to perftwm the Acu'vn. The portion below these data fields contain the Contexts defined for each node. There are three overall Contexts, labeled Context 1. Context 2, and Context 3. Each node may not have every Context associated with it For example. Node 1 bos two associated Contexts, Context I and Context 2; Node 2 is associated with only Context l; the leaf nodes of the Decision Graph have no childteo end hence no associated Contexts at all. Each Context associated with a node has a probability assigned to it For example, in Fig. 12 Node 1 has probability 0.3 associated with Context I and probability 0.7 associated with Context 2. Note that the sum of the probabilities for all of the Contexts for a Decision Node sum up to 1.0. This means that during traversal one of the Contexts must be selected. Other representations of probabilities are possible and* of course, in the case of deterministic traversal the Contexts would have no associated probabilities.
The process uses these probability values to compute the next Context in the conversation. Each Context may link to one or more children. Again using Node 1 a* on example, Context 2 links to Nodes 3 and 4,142 and 144 in Fig. 23, as shown by the arrows and 148. respectively, from Context 2 to those nodes. The probability values labeling
each arrow are the probability of visiting the child node. Thus once Context 2 is selected th« traversal may go to Node 3 or Node 4 with equal probability (prob = 0.5 on the arrows). The sum of all the probabilities for all the children linked with a particular Context also sums to 1.0. This means that after a Context has been selected, one of its children must be visited. In the case of no children and/or Contexts, the node is a leaf node (see Nodes 6, 7. and 9 at 152, 154 and IS6, respectively, in Fig. 23).
To begin the conversation, as illustrated in Fig. 24, the Conversation Manager (Toy A) sends a point-to-point message addressed to the Actor associated with Node 1 (Toy C). As discussed previously, the Conversation Manager also selects a starting Context, tor example, Context 2. Pig. 24 shows the Message sent from Toy A to Toy C in a simplified fashion. XMIT(A, C, NEXT_NODE. Context 2, Node 1) means a point-to-point transmission with the following field values:
1. Send*r is A
2. Receiver is C
3. Message Type isNEXT.NODE
4. Context i& Context 2
5. Node is Model",
NEXT_NODE is the Message Type which the current toy uses to notify the selected Actor that it is the next b line. Since this is a point-to-point transmission, a successful transmission, means that the verification process defined in the Messenger layer was successfully completed. Thus A tod C have successfully synchronized their states In (he meantime, B listens on the Physical Medium and picks up the NEXT J40DE Message; it updates its current node pointer for the Decision Graph to be Node 1.
Since Node! is me rocinwk of the Decision Graph, and thus A has no action to complete, the locus of control immediately shifts to C. The fint action C performs is to select die next node in the Decision Graph. It has two Context* to select from, Context 1 (with probability 0.3) aiid Context 2 (wilh probability 0.7). C elects Context 2 based on the results of a randomly generated value. As indicated by the probabilities, the randomly generated value has a 30% chance of selecting Context I and a 70% chance of selecting Context 2, H should be noted tb*t this is a "stateless" process in which the previous Context doesn't count. Other embodiments on also possible. For example, a history of the
previous Contexts may be maintained and.a function computed to bias the probabilities in favor of (he most recently used Context the history may have length I to the entire history of the conversation.
Alternatively, the-context choice may be more heavily weighted towards contexts which involve more of the participants rather than fewer of them. As such, a context with nodes that involve {A, B, C} is more favored than a context with nodes which only involve {B, C}. Thus the context selection algorithm performs a probabilistic computation based on the "goodness of fit" of a given context to the cunentset of participants, "Goodness of fit" may be defined as: (number of matches between current participant list and context participant Hat) / (toial number of elements in the current participant list). For example, suppose that the current participant list is {A, B, C, D). For a context which contains (A, B. C}, the "goodness of fit" is % or 0,75. For a context which contains {A, B, C, OK the "goodness of fit*1 is I. If tbt context participant list includes a toy that to not in the current participant list, the dgMfchmartoOQtfciUy sets the "goodness of fit" *qual to zero,
Once Coottxt 2 has been selected, the child node under Context 2 is selected. For Node 1, there are two possibilities. Node 3 (with probability 0.5} and Node 4 (also with probability 0.5). Again, the child is selected based on the resuto of* randomly generated value, this time with a 50H chance of choosing Node 3 and a 50% chance of choosing Node 4. Suppose thai Node 3 is selected C retrieves the Actor for Node 3 (A) and transmits a NEXT_NODE message to A (Fig. 23). However, in this ease (be locus of control doesn't shift immediately to A since the node (Node 3) is not a root node of a Decision Graph, instead, A receives die Message and waits for an ACTION_COMPLETED Message from C. A also knows about bow long to wait for C, since « knows that the current node's Action Duration is 2 seconds. After successfully transmitting the NEXT_NQDE Message to A, C immcdiaely begins to perrorrn the Action associated with Node I, M shown in; Fig. 26.
In this case, the Action is a speech clip where C greets the other members of the Conversation Group. Onct the Action is completed, C sends an ACTION^COMPLETED Message to A, as shown in Fig: 27. At this point the locus of control shifts back to A. A now gets to select the next Context and child node. B also notices this Message and updates Its internal representation accordingly.
The Conversation! Manager also broadcasts the cumni conversation information at well-defined, regular intervals. This information may include the identificauon number of the current node of th« conversation, This is to keep the toys in the conversation up-to-date about the status of the conversation and the existence of the Conversation Manager. This periodic update improves the consistencies of the toys' internal representations and also handles the error condition when the Conversation Manager is disabled or disappears during the conversation. This error handling case is described in a later section,
Suppose : now another toy joins the conversation, Toy 0. Toy D, indicated at 160 to Fig. 28, is performing a Conversation Initiation process and thus is broadcasting transmission requests. However, since the toys always listen to the Physical Medium before broadcasting. D's broadcast has little impact on the existing conversation. In other words/Toys A, B and C will not interrupt a transmission in progress to broadcast a response to Toy D's transmissions.
Only the Conversation Manager is allowed to respond to INITIATION requests at this point A notices the-IMlTATION broadcast from D and responds with an [N1T_ACK, as shown in Fig. 29. Toy A's member list is now (A, B, C, D).
After sending the JNIT*ACK to D, A now broadcasts the current conversation context to aU of the members of the Conversation Group (Fig. 30). This broadcast may be repeated 2-3 times to maximize the probability that all of the group members receive it; other embodiments are possible (e,g. point-to-point Messages to all of the members of the Conversation Group). After this step* all of the members of the Conversation Group
irect status (Fig. 31. Toy D is now a Ml member of *e
Conversation Groq>, and may participate in future parts of the conversation; A new decision grapov(coov*rsarioa>th»t includes D may now be selected by the Conversation Manager unog the Conversation Initiation process described earlier.
Handling toys which an disabled or disappear and which are NOT the Conversation Manager is another common case. Referring back to Fig. 23, suppose thut the currenl node is Node5, indicated at 162, and that the locus of control i3 ourrently with B. Potential children for Node J are Node 7 (D), indicated at 154, and Node 8 (C), indicated at 156. Tr* assumption U made that C leaves the conversation. There are three possible scenarios aswming that B selects Node 8 as the next node (arrow: 164), These are discussed in the following three paragraphs:
If C leaves before B transmits the NEXT_NODE Message to it. In this case, the XM1T fails and B looks for another child in the selected Context (Context 3). Since there are no more children for Context 3, B selects another Context (Context 1) and the child linked with the Context (Node 7). B moves C from its Active list to its Inactive list.
If C leaves after B transmits the NEXHTNODE Message but before the ACTION_COVfi*LETED Message. This case is similar to the above case in (hat the ACT10N_COMPLETED Message transmission will fail, leading B to select another Contcxv'Cttild node. B moves C from its Active list to its Inactive list
If C leaves after the ACTION_COMPLETED Message. This case is different from the above because the locu* of control shifted to C and then it left the conversation. In this case a number of actions are possible; a potential embodiment IB to have the Conversation Manager notice tne lack of conversation progression and ask B to find another child node. Another method is to have B recognize that C is mining. Either the Conversation Manager or B moves C from its Active list to its Inactive list.
Cases where the Conversation Manager leaves the conversation are more complex and are described in ihe following section.
The Conversation Manager maintains a list of the currently active toys and a list of "doubtfitk". A toy U added to the latter list whenever it was once part of the convenation but now no longer is* This can be due to several reasons that will be explained in the following sections.
At the start of a«QBvecwtioa during the initiation phase, the active toys transmit their ids to broadcast their existence. Whenever a toy receives a broadcasted id, it updates its internal bit-string vector of the list of currently active toys. The second step of ihe initiation phase is to elect a conversation manager. This can be- chosen at random or according to some scripted hjeortby. In either case, every toy will be capable of taking on the role of a conversation manager if elected.
Every non-CM actor during a conversation has an internal counter that is reset every time it receives a "CMJ3RDCST_ME$G" message. After the counter expires, that Is, it has not heard from the CM, it will transmit a "IDjCURAEHT.CM" message. This message has a unique id (which would be a reserved id for this particular message) and identifies the actor who is asking the question. Upon receipt of this message, any actor, excluding only the broadcaster, wW transmit a "CURRENtSMID" &&»&- This
massage can be sent by any actor and Wili contain the actor id ot trie current L ivi to it. Upon the receipt of this message, the actor who asked who the CM was will reset its counter. Th« toy/actor that transmits the "CURRENTjCMJD" can only do so if it has heard from the cunem CM during Its past counter reset, Ihis will ensure thai erroneous reports of an alleged CM are not propagated.
When an actor does not receive any replies to the "ID_CVRRENT J-'M" transmission he then transmits a "AfPPOINTED_CURRENTjZM" message to the next actor in the hierarchy. Upon tht receipt of a "APPPOlNTEbJCU&RENTjCM" message, the recipient activates the CM routines and starts off by transmitting a "CbtJlRDCSTJfESG" message. Alternatively, if the selection process of the CM is not pre-scripted and is random in nature, then the actor, which did not receive a reply to its ID_CURRENT_CM transmission, does not transmit any "APPPOINTEDjCURRENTjZM" messages but instead appoints itself as the new CM and then transmits a "CMJBRDCST_MESG" message.
A case to be considered U tbe situation whereia a pre-scripted CM election paradigm and is used and some actor receives a "CM_BRDCSTJ4ESG" message from .sortie actor that is tower dovwj in the CM hierarchy. A point to note here is that if there are two acton in tbe hierarchy that are both higher up, then the highest one will elect to be the next CM. This is achieved by the toys consulting the active participant list before wanting to!bf CM. Upon receipt of toe CMJBRDCAST_MESG. the higher actor transmits a " REQUESTjCMjrTATUS" message to the current CM/lower actor. This is followed by a trftAsmiicioo fifth* "APPPOINTED^CURRENTJCM" message by the lower actor and die n«w CM then broadcasts th« ttCMJRDCST_MESG ". Cottvetiadoa TenBbwfou
When a leaf node is encountered in the Decision Graph, the coaversatiori has ended. tbe Actor associated with the leaf node (i.e. Actor D for Node 7) broadcasts a CON V JX)1slE Message: in triplicate. Any toy that encounters a CONV_DONE Message immediately returns to the Conversation Initiation process and waits a random interval of time before broadcasting its INITIATION Messages. Intervene! Communication
With reference to Pig. 32, the process of inter-series communication, or where the i toys of one series, 2 mechanism 204 quite similar to a human translator acting as a go-between between two speakers. A device capable of translation between two series of toys must have a complete understanding of the language of each series. In the case of the toys, that would mean that the translator has the complete forests of Decision Graphs For each series of toy. AS mentioned before, for a given toy series there a only one forest of Decision Graphs that is globally applicable across that series.
Further there must be links between the two forests of Decision Graphs thai the translator possesses (while the assumption is made that the translator can translate between two series only, the same principles may be applied to build a n-Janguage translator). Since links in each forest of Decision Graphs are context sensitive, the links across the forests of Decision Graphs must translate context as well.
Che. last icier-series translator component needed is the transmission/reception circuitry that will take the transmitted input from one toy and translate it into the transmission input for the other toy and vke versa. S pecial lorrateries C6ninujue«tuias IHMS
Important issues that need to be taken into consideration and specifically addressed are the coses where there it only one toy present, are only a number of the same toys present or two or mow sets of the same toys present These situations are illustrated in Figs. 33,34 and 35, respectively. Toy by itself
A situation whereioneToy A (2iO) »by itself is illustrated in Fig. 33. Such a sitaatkHnnay be accommodated by a toy wherein each of the nodes in its forest of Decision Graphs is equipped with a flag (an extra bit) that is set when a button on the toy, or some other activationdevfc*, is pressed. When me flag is set, the nodes point to a conversation index in the speech.storage area which could be associated with a "one liner" or a "punch line" specific to that toy. As a result, when the button is pressed, the toy will randomly select and play one of these sentences.
Alternatively, there day be special "monologue" Decision Graph which involves only a single toy. These monologues can be thought of as the many personalities that a character (toy) could have or the different viewpoints that the same toy could have over a topic of conversation (Whbia a context). These Decision Graph* an identical to the normalDecision Graphs that the toy has except they do not have probability values for selecting contexts. That is, they will not switch contexts. If only one toy is present, it will act out various parts of the monologue Decision Graph, On* K*t of redundant or duplicate toys
A scenario where a number of redundant or duplicate toys, 210,212 and 214, are present is illustrated in Pig. 34. In order to accommodate such a scenario, the toys of the present invention may be configured to simply ignore messages ftom a redundant or dupl icate toy as if they do not exist
An alternative approach may be implemented using the notion of "monologue" Decision Graphs described abovt with reference to Fig. 33. In addition, each character of a panicular toy series may come with a Global Identification Number (GIM). This is a simple series counter that can be issued at the time of manufacture that identifies a production number, In the case where there are multiple instances of the same toy present, the "Receiver" and "Sender" fields caa be the GIN for the appropriate toys. As a result, the strategies for choosing the CM described previously for accommodation of new toys joining a conversation (assuming that ihey are also of the same type), disappearance of toys ftom a conversation and the CKetection process may be utilized. Two or more sets of redundant or daplkate toys
fig, 35 illustrates a situation where there are two sets of redundaac or duplicate toys presem (210,212,220 and 222). Such s scenario may be handled by four alternative toy configurations or embodjtneno.
In ihe first, only a single instance of each toy type can interact with each other. This can be arranged by the Conversation Manager, which can reject the redundant or duplicate Toys from participating within a given conversation by issuing a special "suppress, conversation" message upon their detection that makes them "be quiet" (not issue conversation proposal messages) until the end of the conversation is detected.
In (he second ejobodimeot or conflgunttion, every instance of each toy for each toy type caa Interact with each other. This means that In Fig. 35, either instance of Toy A could potentially interact with either instance of Toy Bi This requires a mechanism for mediating between insancesof a given toy type when a node is reached in the selected conversation which specifies that toy type as actor.During conversation initiation, the elected Conversation Manager not only keeps track of the toy types in the conversation (via the active participant list), but also transmits the GEN for each toy. For example it is assumed that the toys in Fig. 35 have the
following ids:
Toy Type ToylD
Toy A (CM) 12 i
Toy A 1*002
ToyB 33123
ToyB 14002
The GINs may be distributed to each toy within broadcasts that the CM sends to each toy. The association, of toy types and toy GENs may be distributed when the CM broadcasts the set of active participants list to the toys in the conversation. Thus each toy in the conversation is uniquely addressed for the duration of the conversation, and the initiator and maintainer of the unique addresses is the Conversation Manager. Every toy in the network has a copy of the unique addresses so if the conversation manager disappears, then any potential successor also has the latest toy data. The Receiver field in the basic message structure can be used to hold the unique toy id rather than the toy type and the toy type can be passed as data within the body of the message.
Thus it is assumed that all At toys in the conversation know the above association When a toy selects the next node in the conversation Decision Graph, it also looks at the above association list to select a toy GIN. It then sends the message to that toy GIN thai is a unique toy in the network.
The third configuration or embodiment serializes the operation of the multiple toys for each toy type. The fundamental problem is that if there are two instances of Toy B in the conversation, how are they prevented from responding simultaneously to a request for "Toy Type B"? A way of handling this is to use token-passing. Each set of identical toys ia the conversation has a token which belongs to a single toy within the set at a time Only the toy with ihe token can respond to a message to thai coy type. When the toy Is finished with its processing, it passes the token to another member of the set of identical toyThus, in Fig. 35 there would be two Tokens - one thai is passed among the toys of type A, and another that would be passed among the toys of type B. The conversation manager is solely in charge of issuing tokens. If a toy disappears with a token, the conversation halts until the conversation manager issues another token to the surviving members of the toy set,
In a fourth embodiment or configuration, each set of redundant or duplicate toys
elects a CM and manages their own group, In this case, however, the CM of a particular
toy type will act as the IR (or other medium) transmission spokesperson for that group.
That is, the (R (or RF, etc.) transmission between groups of toys will take place only thru
their CM spokesperson. Once a spokesperson receives a transmission IT will randomly
choose a member of its group (using the internal GIN information for that group) to whom
the transmission will be addressed. There can be several variations on this process of
choice. Ii could be as simple as picking, at random from the local CM's GIN list or the
local CMs selecting multiple GINa (both toys say the same thing but only one of them
proceeds with the conversation). Alternatively, the ability of choice can be as complex as
sending the transmission to one toy and dummy transmissions to others within the sub
group. Conclusion
The potential for the toy* of the present invention is enormous due to all the factors mentioned above and the ability to use the technology in different series of toys. The latter allows the present invention to find use in toys of the past, present and the future.
fhe variety of applications for the toy of the present invention is also enormous. For example, the technology may be used to develop toys that behave like a teacher and a student so that a child will bo motivated to sit down (along with the student toy) and learn what the teacher toy instruct*. Language skills, grammar and mathematics are to name but a few of the subject* that may bt taught by the toy of the present invention. Series of these toys can enact various historical events thus helping thf child appreciate history add culture to a greater extent
While the preferred embodiments of the invention have been shown and described, : it will be apparent to those skilled in the art that changes and modifications may be made therein without departing from the,spirit of the invention, the scope of which is defined by the appended claims.







We Claim:
1. A plurality of toys for performing a simulated audible conversation therebetween,
each of the toys comprising:
a) an architecture including a physical layer, a messenger layer and an application
layer, said physical layer communicating with said application layer through
said messenger layer;
b) said physical layer receiving and transmitting messages from and to compatible
toys;
c) said messenger layer receiving and verifying messages from the physical layer
and passing verified messages to the application layer, said messenger layer
also receiving messages from the application layer and passing the messages
from the application layer to the physical layer for transmission;
d) said application layer including:
i. a forest of decision graphs, each of which correspond to a conversation, the messages received from the messenger layer being used by the application layer to select a conversation from the forest of decision graphs;
ii. a participants list that lists the plurality of toys; and iii. an identification number of one of the plurality of toys that is
designated as a conversation manager so that transmissions from the conversation manager relating to the participants list and the conversation are received by each toy that is not the conversation manager.
2. The plurality of toys as claimed in claim 1 wherein each of the decision graphs
includes a number of nodes with at least some of the nodes corresponding to
portions of the conversation.
3. The plurality of toys as claimed in 2 wherein each of said nodes including one or
more contexts with each of the contexts corresponding to an edge leading to a
child node so that a selection of a context by each toy directs progression of the
simulated conversation between the plurality of toys.
4. The plurality of toys as claimed in claim 1 wherein the messenger layer includes:
a) a receiver component and a transmitter component so that when a message
is received by the receiver component of a receiving toy, the transmitter
component passes a message acknowledgement (MSG_ACK) containing a
copy of at least a portion of the message to the physical layer for
transmission to an originating toy that originally sent the message; and
b) said messenger layer passing the message to the application layer upon
receipt of an acknowledgement to the message acknowledgement
(ACK_ACK) in response to the transmission of the message
acknowledgement (MSG_ACK) indicating that the originating toy has verified proper receipt of the message by the receiving toy.
5. The plurality of toys as claimed in claim 1 wherein the physical medium is infrared
and the physical layer includes infrared reception and transmission circuitry.
6. The plurality of toys as claimed in claim 1 wherein each of the decision graphs
includes a number of nodes, each of which includes a node identification number,
with at least some of the nodes corresponding to a portion of the conversation and said
transmissions from the conversation manager relating to the conversation including an
identification number for a node.
7. The plurality of toys as claimed claim 1 wherein the messenger and application
layers are implemented by micro-controllers.
8. The plurality of toys as claimed in claim 1 wherein the messenger and
application layers are implemented by an application-specific integrated circuit chip.
9. A toy for performing a simulated conversation with at least one other
compatible toy comprising:
a) a speaker;
b) a transmission and reception means;
c) a controller in communication with the speaker and the transmission and
reception means; and
d) said controller including:
i. at least one decision graph corresponding to a conversation between the toy and the compatible toy, said decision graph including a number of nodes with at least some of said nodes corresponding to portions of the conversation;
ii. a participants list that lists toys participating in the simulated conversation; and
iii. an identification number of a toy that is designated as a conversation manager so that transmissions from the conversation manager relating to the participants list and the simulated conversation are received by the toy whereby said toy
receives an information message from the compatible toy through the transmission and reception means, and
uses said message to select a node of the decision graph so that a portion is played through the speaker and
a message is transmitted to the compatible toy through the transmission and reception means.
10. The toy as claimed in claim 9 wherein each of the nodes includes one or more
contexts with each of the contexts corresponding to an edge leading to a child node so
that a selection of a context by the toy directs progression of the simulated
conversation.
11. The toy as claimed in claim 9 wherein
each of the nodes includes a node identification number, and
the transmissions from the conversation manager relating to the simulated conversation include an identification number of a node of the decision graph lists to select a decision graph corresponding to a conversation that involves the first, second and third toys.
12. The toy as claimed in claim 9 wherein the transmission and reception means
includes infrared transmission and reception circuitry.
13. The toy as claimed in claim 9 wherein the controller is a micro-controller.
14. The toy as claimed in claim 9 wherein the controller is an application-specific
integrated circuit chip.
15. A method for managing a simulated conversation between multiple toys, where
the multiple toys include transmission and reception means, unique identification
numbers and identical decision graphs with multiple nodes where the decision graphs
correspond to conversations between the multiple toys and the multiple nodes
correspond to portions of the conversations, said method comprising the steps of:

a) designating one of said toys, based on an identification number, as the
conversation manager;
b) causing the conversation manager to select and broadcast a node of a
decision graph to the multiple toys; and
c) causing the conversation manager to broadcast a participants list including
toys involved in the conversation to the multiple toys;
whereby all of the multiple toys are synchronized with regard to the selected node and participants list.
16. A method of integrating a third talking toy into a simulated conversation between
first and second talking toys comprising the steps of:
a) providing a first, second and third talking toys with participants lists,
where said participants lists include talking toys currently in the
simulated conversation,
b) updating the participants lists that initially include the first and second
talking toys to also include the third talking toy, and
c) providing each toy with an identical forest of decision graphs where
each decision graph corresponds to a conversation and utilizing the
participants
17. A plurality of toys for performing a simulated conversation there between
comprising:
a) a first toy and a second toy, each including:
i. a transmission means;
ii. a reception means;
iii. a controller in communication with the speaker, transmission means and reception means and including at least one decision graph corresponding to the simulated conversation, said decision graph including a plurality of nodes with said plurality of nodes corresponding to portions of the simulated conversation; and
b) said first toy selecting one of said plurality of nodes via its controller
without manual intervention by a user and transmitting the selected node
via its transmission means without manual intervention by a user to the
reception means of the second toy, whereupon receipt, said second toy
playing a portion of the simulated conversation corresponding to the
selected node.
18. The plurality of toys as claimed in claim 17 wherein said first toy receives a
message containing an earlier-selected node with its reception means prior to
selecting the node for transmission to the second toy.
19. The plurality of toys as claimed in claim 17 wherein plurality is defined as
including intra-series toys.
20. The plurality of toys as claimed in claim 19 wherein the first and second toys are
duplicates of one another.
21. The plurality of toys as claimed in claim 20 wherein the first and second toys each
have a unique Global Identification Number assigned thereto.
22. The plurality of toys as claimed in claim 19 further comprising a third toy where
the third toy is a duplicate of the first toy.
23. The plurality of toys as claimed in claim 22 further comprising additional toys and
wherein neither the first toy, the second toy nor any of the additional toys are
duplicates of one another.
24. The plurality of toys as claimed in claim 17 wherein plurality is defined as
including inter-series toys.
25. The plurality of toys as claimed in claim 24 wherein the first and second toys are
of a different series and further comprising a third toy where the third toy is of the
same series as the first toy.
26. The plurality of toys as claimed in claim 25 wherein the first and third toy are
duplicates.
27. The plurality of toys as claimed in claim 26 further comprising a fourth toy that is
the same series as the second toy.
28. The plurality of toys as claimed in claim 27 wherein the second toy and the fourth
toy are duplicates.
29. The plurality of toys as claimed in claim 17 wherein each of said nodes includes
one or more contexts with each of the contexts corresponding to an edge leading to
a child node so that a selection of a context directs progression of the simulated
conversation between the plurality of toys and wherein said first toy selects a
context in addition to selecting a node and where the selected context is
transmitted to the second toy along with the selected node.
30. The plurality of toys as claimed in claim 29 wherein the contexts are used by each
toy in the selection of a node.
31. The plurality of toys as claimed in claim 29 wherein each of said first and second
toys also includes a participants list that lists the plurality of toys, said participants
list used by each toy in the selection of a node corresponding to a toy present in the
participants list.
32. The plurality of toys as claimed in claim 31 wherein the participants list includes a
doubtfuls list that lists toys that have been removed from the simulated
conversation.
33. The plurality of toys as claimed in claim 29 wherein each of said contexts includes
a probability assigned thereto and the probabilities are used by each toy in the
selection of a node.
34. The plurality of toys as claimed in claim 29 wherein a default context is selected
by the first toy at the beginning of the simulated conversation.
35. The plurality of toys as claimed in claim 17 wherein said decision graphs may be
interchanged with alternative decision graphs.
36. A toy for performing a simulated conversation with at least one other toy
comprising:

a) a transmission means;
b) a controller in communication with the transmission means and including at
least one decision graph corresponding to the simulated conversation between the
toy and the other toy, said decision graph including a plurality of nodes
corresponding to portions of the simulated conversation where each of the nodes
has a probability assigned thereto and each of the nodes includes one or more
contexts with a probability assigned to each context and said controller also
including a participants list; and
c) said controller selecting one of said plurality of nodes based upon the context,
the participants list, the probabilities of the contexts and the probabilities of the
nodes and transmitting it to the other toy via the transmission means.

37. The toy as claimed in claim 36 wherein the participants list includes a
doubtfuls list that lists toys that have been removed from the simulated conversation.
38. The toy as claimed in claim 36 further comprising a reception means and
wherein the toy receives a message containing an earlier-selected node with the
reception means prior to selecting the node for transmission to the other toy.
39. A toy for performing a simulated conversation with at least one other toy
comprising:

a) a transmission means;
b) a controller in communication with the transmission means and including a
participants list and at least one decision graph corresponding to the
simulated conversation between the toy and the other toy, said decision
graph including a plurality of nodes corresponding to portions of the
simulated conversation where each of said nodes includes one or more
contexts with each of the contexts corresponding to an edge leading to a
child node so that a selection of a context directs progression of the
simulated conversation; and
c) said controller selecting one of said plurality of nodes using the participants
list so that a node corresponding to a toy present in the participants list is
selected and said controller also selecting a context of the selected node and transmitting the selected node and selected context to the other toy via the transmission means.
40. The toy as claimed in claim 39 wherein the contexts are used by the controller in
the selection of a node.
41. The toy as claimed in claim 39wherein the participants list includes a doubtful list
that lists toys that have been removed from the simulated conversation.
42. The toy as claimed in claim 39 wherein each of said contexts includes a
probability assigned thereto and the probabilities are used by the controller in the
selection of a node.
43. The toy as claimed in claim 39 wherein a default context is selected by the toy at
the beginning of the simulated conversation.
44. The toy as claimed in claim 36 wherein said decision graphs may be interchanged
with alternative decision graphs.
45. A method for simulating a conversation between a first toy and a second toy
comprising the steps of:

a) providing first and second toys, each including at least one decision graph
corresponding to the simulated conversation between the first toy and the second
toy, the decision graph including a plurality of nodes corresponding to portions of
the simulated conversation;
b) the first toy selecting a node from the decision graph of the first toy without
manual intervention by a user;
c) the first toy transmitting the selected node from the first toy to the second toy
without manual intervention by a user;
d) the second toy receiving the selected node; and
e) the second toy playing a portion of the simulated conversation corresponding to
the selected node.
46. The method as claimed in claim 45 further comprising the steps of:
a) providing each node of the decision graph with at least one context;
b) providing each of the toys with a participants list;
c) providing each of the contexts with a probability;
d) providing each of the nodes with a probability;
and wherein step b) is based upon the participants list, the contexts and their associated probabilities and the nodes and their associated probabilities.
47. The method as claimed in claim 46 further comprising the step of selecting a
default context at the beginning of the simulated conversation.
48. A method for managing a simulated conversation with a toy comprising the
steps of:
a) providing a decision graph corresponding to the simulated conversation, the
decision graph including a plurality of nodes corresponding to portions of
the simulated conversation;
b) selecting a node from the decision graph and
c) transmitting the selected node to the toy so that the toy plays a portion of
the simulated conversation corresponding to the selected node.
49. The method as claimed in claim 48 further comprising the steps of:
a) providing each node of the decision graph with at least one context,
b) providing a participants list
c) providing each of the contexts with a probability
d) providing each of the nodes with a probability
and wherein step b) is based upon the participants list, the contexts and their associated probabilities and the nodes and their associated probabilities.
50. The method as claimed in claim 49 further comprising the step of selecting a
default context at the beginning of the simulated conversation.
51. A method of managing a simulated conversation between a plurality of toys
comprising the steps of:
a) providing each of the plurality of toys with a participants list, said participants
list including a currently active toys list and a doubtfuls list;
b) including toys that are present in the simulated conversation in the currently
active toys list;
c) placing toys that are removed from the simulated conversation on the doubtfuls
list; and
d) placing toys that are added to the simulated conversation on the currently active
toys list.

52. The plurality of toys as claimed in claim 1 wherein the identification number of
one of the plurality of toys that is designated as a conversation manager is a Global
Identification Number.
53. The toy as claimed in claim 9 wherein the identification number of a toy that is
designated as a conversation manager is a Global Identification number


Documents:

402-delnp-2003-abstract.pdf

402-delnp-2003-assignment.pdf

402-delnp-2003-claims.pdf

402-delnp-2003-correspondence-others.pdf

402-delnp-2003-correspondence-po.pdf

402-delnp-2003-description (complete).pdf

402-delnp-2003-drawings.pdf

402-delnp-2003-form-1.pdf

402-delnp-2003-form-13.pdf

402-delnp-2003-form-19.pdf

402-delnp-2003-form-2.pdf

402-delnp-2003-form-3.pdf

402-delnp-2003-form-5.pdf

402-delnp-2003-gpa.pdf

402-delnp-2003-pct-101.pdf

402-delnp-2003-pct-210.pdf

402-delnp-2003-pct-409.pdf

402-delnp-2003-pct-416.pdf

402-delnp-2003-petition-138.pdf


Patent Number 199924
Indian Patent Application Number 402/DELNP/2003
PG Journal Number 44/2007
Publication Date 02-Nov-2007
Grant Date 08-Oct-2007
Date of Filing 17-Mar-2003
Name of Patentee AIDENTITY MATRIX ENTERTAINMENT, INC., a US corporation
Applicant Address 960 INDUSTRIAL DRIVE, SUITE 7, ELMHURST, IL 60126, U.S.A.
Inventors:
# Inventor's Name Inventor's Address
1 RAMACHANDRAN SURYA 3201 OVERLAND AVENUE, APT. 9122, LOS ANGELES, CA 90034, U.S.A.
2 KANCHERLAPALLI ANAND 241 SOUTH WESLEY AVENUE, OAK PARK, IL 60302, U.S.A.
3 FU MICHAEL C. 1538 BELLEVILLE WAY, SUNNYVALE, CA 94087, U.S.A.
PCT International Classification Number G09B 7/00
PCT International Application Number PCT/US00/25204
PCT International Filing date 2000-09-14
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 09/661,537 2000-09-14 U.S.A.