0% found this document useful (0 votes)
75 views28 pages

United States Patent: (10) Patent No.: US 9.245,253 B2

a

Uploaded by

Choo Wei sheng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views28 pages

United States Patent: (10) Patent No.: US 9.245,253 B2

a

Uploaded by

Choo Wei sheng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

US00924.

5253B2

(12) United States Patent (10) Patent No.: US 9.245,253 B2


Markman et al. (45) Date of Patent: Jan. 26, 2016
(54) SOFTSENDING CHAT MESSAGES (56) References Cited
(75) Inventors: Vita Markman, Los Angeles, CA (US); U.S. PATENT DOCUMENTS
Sean O'Dell, West Hills, CA (US); 5,678,051 A 10/1997 Aoyama
Arkady Trestman, Sherman Oaks, CA 6,139,201 A * 10/2000 Carbonell et al. ................ TO4/2
(US); Drew Beechum, Pasadena, CA 7,027,974 B1 4/2006 Busch et al.
(US); Paul Pak, North Hollywood, CA 8,015,051 B2 * 9/2011 Chen et al. ................... 705/723
(US); Christian Shrigley, Simi Valley, 8,606,726 B2 * 12/2013 Wurzer ........................... TO6, 12
CA (US) 8,965,982 B1* 2/2015 Sanjeev .................. G06F 15/16
455,412.1
2001/00294.55 A1 10, 2001 Chin et al.
(73) Assignee: Disney Enterprises, Inc., Burbank, CA 2002.00498.05 A1 4/2002 Yamada et al.
(US) 2002/00593.79 A1 5/2002 Harvey et al.
2002/0062349 A1 5/2002 Maehiro et al. ............... TO9,206
(*) Notice: Subject to any disclaimer, the term of this (Continued)
patent is extended or adjusted under 35
U.S.C. 154(b) by 652 days. FOREIGN PATENT DOCUMENTS

(21) Appl. No.: 13/214,093 WO 02070088 A1 9, 2002


WO 2004.001558 A2 12/2003
WO 200810968.0 A1 9, 2008
(22) Filed: Aug. 19, 2011
(65) Prior Publication Data OTHER PUBLICATIONS
US 2013/OO47099 A1 Feb. 21, 2013 Ghayoomi Metal: "An overview on the existing language models for
prediction systems as writing assistant tools'. Systems, Man and
(51) Int. C. Cybernetics, 2889. SMC 2889. IEEE International Conference on,
G06F 9/44 (2006.01) IEEE, Piscataway, NJ,USA, Oct. 11, 2889, pp. 5883-5887.
G06Q 99/00 (2006.01) (Continued)
G06F 7/27 (2006.01)
G06F 3/048 (2013.01)
G06O 10/10 (2012.01) Primary Examiner — Jordany Nunez
G06O 50/00 (2012.01) (74) Attorney, Agent, or Firm — Patterson & Sheridan LLP
HO4L 12/58 (2006.01)
(52) U.S. C.
CPC ................ G06O 10/10 (2013.01); G06O 50/01 (57) ABSTRACT
(2013.01); A63F2300/5553 (2013.01); H04L Techniques are disclosed for Supplying users in an online
5 1/04 (2013.01) environment with a safe and effective chat facility. The chat
USPC ............. 715/758; 704/10; 709/202; 709/206; facility is “safe' in the sense that the ability of users to
71.5/7O6
compose inappropriate messages is greatly restricted, while
(58) Field of Classification Search “effective' in the sense that users are still allowed a broad
CPC ........ G06Q 10/10; G06Q 50/01: A63F 13/12: range of expressivity in composing and exchanging chat mes
A63F2300/5553; H04L 51/04 Sages.
USPC .................. 455/456.3; 704/10; 715/758, 706;
709/202, 206
See application file for complete search history. 21 Claims, 16 Drawing Sheets

500
Website HomeWhat's NewHelpparents|Membership SmallScreen sel Log Of a
NEWS
US 9.245,253 B2
Page 2

(56) References Cited 2011/O1847 18 A1* 7, 2011 Chen ................................. TO4/2


2011/02O1387 A1 8, 2011 Paek et al.
U.S. PATENT DOCUMENTS 2011/0270771 A1 11/2011 CourSimault et al.
2011/0270820 A1 1 1/2011 Agarwal
2002fO140726 A1 10, 2002 Schwartz et al. 2012/0036147 A1 2/2012 Borst et al. .................... 707/769
2003/00974.06 A1 5, 2003 Stafford 2012/0054645 A1 3/2012 Hoomani et al.
2003/0187632 A1* 10, 2003 Menich ............................. TO4f1 2012,0072404 Al 3, 2012 Murphy et al.
2004/0102957 A1* 5, 2004 Levin ................................ TO4/3 2012/0101970 A1 4/2012 Zernik et al.
2004/011 1479 A1 6, 2004 Borden et al. 2012fO191445 A1 T/2012 Markman et al.
2005/0038650 A1 2/2005 Bellegarda et al. 2012/0323565 A1 12/2012 Hildreth et al. ................. TO4/10
2005/0076247 A1* 4, 2005 Wittkotter ..................... T13/202
2005/0137851 A1 6/2005 Ryu et al. OTHER PUBLICATIONS
2005/O154580 A1 7/2005 Horowitz et al.
2005/02O3747 A1 9, 2005 Lecoeuche Hunnicutt SED Tubach J Petal: "Using Syntactic and Semantic
2005/0240439 A1 * 10, 2005 Covit et al. ....................... 705/2 Information in a WordPrediction Aid'. Proceedings of the European
2005/0278413 A1* 12/2005 Tannenbaum ................ TO9,202 Conference on Speech Communication and Technology
38.63 A. 1298 E. al (Eurospeech). Paris, Sep. 26-28, 1989; Proceedings of the European
2006/0129633 A1 6, 2006 Potluri et al. Conference on Speech Communication and Technology
2007/0016401 A1 1/2007 Ehsani et al. (Eurospeech). Edinburgh, CEP Consultants, GB, vol. 1, Sep. 26.
2007/01 18357 A1 5, 2007 Kasravi et al. 1989, pp. 191-193.
2007. O150426 A1 6, 2007 Asher et al. Mine et al. “Building a massively Multiplayer Game for the Million:
38.s A. 38. Bish
aWe
et al. Disney's Toontown Online'. Computers in Entertainment (CIE) 1.1,
Oct. 2003, pp. 1-20.
2008.0137629 A1* 6/2008 KO .......................... "1999
370,338 M.ax Kaufmann.
RansvntacticSyntactic Nomalization
Normalization of
or Twitter
witter M
Messages,s
2008/O1955.71 A1 8, 2008 Furuuchi et all The 8-th International Conference on Natural Language Processing,
2008/0215519 A1 9/2008 Runge et al. Jan. 1, 2010.
2008, 0221998 A1 9, 2008 Mendelsohn et al. Park et al. “Communication Supports for Building World Wide
2008, 0288241 A1 11, 2008 Noda Internet Game Communities”. Entertainment Computing-ICEC
2009/0132528 A1* 5/2009 Albornoz et al. ................. 707/5 2006, pp. 370-373.
2009, 0210803 A1 8/2009 Brignullet al. Method for Chat Spam Prevention in a Virtual World, Oct. 31, 2008,
2009/0245500 A1 10/2009 Wampler IP.com.
2009/0253513 A1 10, 2009 Ducheneaut et al. Boehret, Katherin; “The Mossberg Solution: Rating the New Instant
2009/0271180 Al 10/2009 Balegaret al. Messaging Programs'; Feb. 7, 2007; Wall Street Journal; Eastern
388 A .338g its edition; New York, N.Y. (0099-9660). P.D. 1.
2010, 0010800 A1 1, 2010 R. European Search Report for application No. 12180938.8; Oct. 2,
2010.0050.074 A1* 2, 2010 Nachm tal. ............ 71.5/257 2013.
2010.0057463 A1 3, 2010 WE ne al European Search Report for application No. 12180939.6; Oct. 2,
2010, 0169769 A1 7, 2010 Jimenez et al. 2013.
2011/0092221 A1* 4/2011 Zubas et al. ............... 455,456.1
2011/O154224 A1 6, 2011 Bates et al. * cited by examiner
U.S. Patent Jan. 26, 2016 Sheet 1 of 16 US 9.245,253 B2

||TY
||
0

G£1,
ETOILAJECW

30 L,
L>HIENTld|WO
U.S. Patent Jan. 26, 2016 Sheet 2 of 16 US 9.245,253 B2

111
205
ENVIRONMENT SERVER

DYNAMIC PHRASE
GENERATOR

PHRASE PARSING
COMPONENT

PHRASE SUGGESTION
COMPONENT

WORD/PHRASE 215
COMBINABILITY RULES

MULT-USERVIRTUAL ENVIRONMENT APPLICATION

WORD CORPUS

WORD META DATA

STATIC PHRASE CORPUS

CHAT LOGS

FIG. 2
U.S. Patent Jan. 26, 2016 Sheet 3 of 16 US 9.245,253 B2

(STARD 300
PARSE CHAT LOGS TO DENTIFY WORD CORPUS 305
(E.G., TOP 20,000 WORDS USED BY CHAT PARTICIPANTS)

DETERMINE GRAMMATICAL CATEGORIES FOREACHWORD 310


(E.G., NOUNS, VERBS, ADJECTIVES, ADVERBS, PREPOSITIONS)

ANNOTATE EACHWORD WITH SEMANTIC INFORMATION 315


RELATED TO WORD COMBINABILITY RULES

STORE WORD CORPUS AND WORD ANNOTATED 320


WORD METADATA

FIG. 3
U.S. Patent Jan. 26, 2016 Sheet 4 of 16 US 9.245,253 B2

(STARD 400
PRESENT CHAT INTERFACE TO USER; MONITOR USER 405
COMPOSING CHAT PHRASE

410
HAS USER
COMPLETED TYPING
FULL WORD?
NO
YES

ADD WORD TO POTENTIAL 415


PHRASE

EVALUATE POTENTIAL PHASE 420


FOR ALLOWED COMBINABILITY

425
PHRASE
COMBINABLE

YES
430

YES

SEND PHRASE TO ONE ORMORE RECIPIENTS (E.G., OTHER 435


USERS IN SAME VIRTUAL SPACE)

FIG. 4
U.S. Patent Jan. 26, 2016 Sheet 5 of 16 US 9.245,253 B2

N442
N

c
S
C

CD
n

CD
Sa
-

CD
S3

R
3 vs.
U.S. Patent Jan. 26, 2016 Sheet 6 of 16 US 9.245,253 B2
U.S. Patent Jan. 26, 2016 Sheet 7 of 16 US 9.245,253 B2

(STARD 600
605
PRESENT CHAT INTERFACE TO USER; MONITOR
USER COMPOSING CHAT PHRASE

610
USER
REQUESTS
TO SEND PHRASE
NO
YES

PARSE PHASE TO DETERMINE TEST PHRASE FOR 615


CANDIDATE MATCHING

620
DOES
NO TEST PHRASE
MATCHONE IN
CORPUS?
YES
625
SEND PHRASE ID TO ONE ORMORE RECIPIENTS
(E.G., OTHER USERS IN SAME VIRTUAL SPACE)

RENDER PHRASE BASED ON ID FOREACH 630


RECIPIENTS

RENDER SUBMITTED PHRASE FOR SENDING USER 635

FIG. 6
U.S. Patent Jan. 26, 2016 Sheet 8 of 16 US 9.245,253 B2

S
U.S. Patent Jan. 26, 2016 Sheet 9 of 16 US 9.245,253 B2

O
v
t N
CD
N4

O
CfO

d
D
O

E
O N.
f
N
.C.
R
2 O
CD
d
C
E
O
d
2
2
b
O
C N
D

1.
gro
w

R
s
d
E
ed

92
s

s
U.S. Patent Jan. 26, 2016 Sheet 10 of 16 US 9.245,253 B2

S.

D
D

:
f
s
E
f
C
S
2d
C
E
d
2
2
9B
C
D
3
1.
gro
w

s
d
E
d

92
s
s
s
U.S. Patent Jan. 26, 2016 Sheet 11 of 16 US 9.245,253 B2

(STARD 800
805
PRESENT CHAT INTERFACE TO USER; MONITOR
USER COMPOSING CHAT PHRASE

810
USER
SELECTED
NEXTPHRASE (O
TERM?
NO
YES

IDENTIFY TOPNPHRASE COMPLETION SUGGESTIONS 815


BASED ON CURRENT CHAT SESSION METADATA

PRESENT TOPNPHRASE COMPLETIONSUGGESTS TOUSERS -


825
USER
SELECTS
COMPLETED
PHRASE
YES

SEND PHRASED TO ONE ORMORE RECIPIENTS 830


(E.G., OTHER USERS IN SAME VIRTUAL SPACE)

(END)
FIG. 8
U.S. Patent Jan. 26, 2016 Sheet 12 of 16 US 9.245,253 B2
U.S. Patent Jan. 26, 2016 Sheet 13 of 16 US 9.245,253 B2
U.S. Patent Jan. 26, 2016 Sheet 14 of 16 US 9.245,253 B2

:
©
ºra</ […]º
U.S. Patent Jan. 26, 2016 Sheet 15 of 16 US 9.245,253 B2

1012
TODATA
I/O DEVICES COMMUNICATIONS
NETWORK

I/O DEVICE NETWORK


INTERFACE INTERFACE

INTERCONNECT (BUS)

MEMORY STORAGE

CHAT 205 WORD CORPUS 220


SERVER
VIRTUAL 210
WORD ONTOLOGY 222
ENVIRONMENT SERVER
VIRTUAL ENVIRONMENT
APPLICATION 111

SERVER COMPUTER

130

FIG. 10
U.S. Patent Jan. 26, 2016 Sheet 16 of 16 US 9.245,253 B2

1112
TODATA
I/O DEVICES COMMUNICATIONS
NETWORK

1105
I/O DEVICE NETWORK
INTERFACE INTERFACE

INTERCONNECT (BUS)

MEMORY STORAGE

WEB-BROWSER 132
o
USER ACCOUNT
DATA o

CHAT CLIENT 1125

CLIENT COMPUTING SYSTEM

130

FIG. 11
US 9,245,253 B2
1. 2
SOFTSENDING CHAT MESSAGES text phrase against a corpus of allowed chat phrase. Upon
determining the modified text phrases matches one of the
BACKGROUND allowed chat phrases in the corpus, an identifier correspond
ing to the matched text phrase is sent to at least a second user.
1. Field In a particular embodiment, the method may also include,
Embodiments of the invention are generally directed to rendering, for view by the first user, the text phrase on an
computer-based online communication. More specifically, interface presenting an avatar representing the first user. And
embodiments of the invention are directed to a variety of also include, rendering, for view by the second user, the
techniques for managing the content of chat messages modified text phrase on an interface presenting an avatar
exchanged between users in online gaming and Social envi 10 representing the first user.
rOnmentS. Other embodiments include, without limitation, a com
2. Description of the Related Art puter-readable medium that includes instructions that enable
Multiplayer video games and virtual worlds have rapidly a processing unit to implement one or more aspects of the
become popular forms of online entertainment. Both gener disclosed methods as well as a system configured to imple
ally provide users with access to a virtual environment where 15 ment one or more aspects of the disclosed methods.
they may interact with one another. For example, avatars are
frequently used to provide a graphical representation of each BRIEF DESCRIPTION OF THE DRAWINGS
user present within a virtual environment and users interact
with one another through their avatars. Users control the So that the manner in which the above recited aspects are
actions of their avatar to navigate the virtual environment, attained and can be understood in detail, a more particular
e.g., achieve gaming objectives as well as to communicate or description of embodiments of the invention, briefly summa
chat with other users. Such an environment may be persistent rized above, may be had by reference to the appended draw
where events occur and users interact with each other regard ings. It is to be noted, however, that the appended drawings
less of the presence of any particular user. Alternatively. Such illustrate only typical embodiments of this invention and are
an environment may be game or session based, e.g., where a 25 therefore not to be considered limiting of its scope, for the
group of users participate in a match of a first-person shooter invention may admit to other equally effective embodiments.
game. FIG. 1 illustrates a computing infrastructure configured to
User-to-user communication (i.e., chatting) is often a provide a safe and effective chat environment, according to
prominent feature within these kinds of online environments. one embodiment of the invention.
For example, a user may chat directly with other users present 30 FIG. 2 illustrates an example of a multi-user virtual envi
in the same virtual location by typing characters into a text ronment application, according to one embodiment of the
field on a user interface. To promote civility and safety among invention.
users, a service provider hosting an online environment may FIG.3 illustrates a method for generating a dynamic phrase
desire to prevent the use of obscene language or other inap chat corpus, according to one embodiment of the invention.
propriate communication, particularly in online environ 35 FIG. 4 illustrates a method for dynamically suggesting
ments developed for minors. In Such a case, chat Software and/or evaluating allowable phrase chat messages for users of
may filter chat messages by removing Swear words, slurs, or an online environment, according to one embodiment of the
other known terms of disparagement. However, simply filter invention.
ing “bad” words is inadequate as inappropriate messages are FIGS. 5A-5B illustrate an example of a chat message
plainly not limited to simply “bad” words. 40 evaluated using the methods of FIGS. 3 and 4, according to
Accordingly, in some cases, a chat interface may not Sup one embodiment of the invention.
port users freely composing chat messages. Instead, users FIG. 6 illustrates a method for Soft sending chat messages
may chat by selecting messages from a pretended set of words to users in an online environment, according to another
or phrases. One constraint of Such a system is that the set of embodiment of the invention.
allowed words or phrases must be defined by the online 45 FIGS. 7A-7C illustrate an example of chat messages being
environment provider in advance. In such cases, however, exchanged in an online environment using the method of FIG.
users may have to type a chat message that exactly matches 6, according to one embodiment of the invention.
one of the allowed ones. In practice, this greatly restricts the FIG. 8 illustrates a method for suggesting allowed chat
expressivity of users within the virtual environment. For phrase possibilities to a user in an online environment,
example, if the allowed messages includes the phrase “I want 50 according to one embodiment of the invention.
to play chess, but does not contain the phrase “I want to play FIGS. 9A-9C illustrate an example of a chat message being
checkers, the second phrase cannot be made as a selection. composed in an online environment using the method of FIG.
At the same time, entering all possible phrases is costly and 8, according to one embodiment of the invention.
time consuming and not a feasible option. Furthermore, even FIG. 10 is a more detailed view of the client computing
automatically generating new phrases and storing them in a 55 system of FIG. 1, according to one embodiment of the inven
static database is not a complete Solution, since most phrases tion.
are rarely repeated again, they will simply occupy space FIG. 11 is a more detailed view of the server computing
without contributing to overall user experience. system of FIG. 1, according to one embodiment of the inven
tion.
SUMMARY 60
DETAILED DESCRIPTION OF THE PREFERRED
One embodiment of the invention provides a computer EMBODIMENTS
implemented method for facilitating communication
between users. This method may generally include receiving, Embodiments of the invention provide a variety of tech
from a first user, a text phrase, and modifying the first text 65 niques for Supplying users with a safe and effective chat
phrase to remove one or more syntactic features of the text facility. The chat facility is “safe' in the sense that the ability
phrase. This method may also include matching the modified of a user to compose inappropriate messages is greatly
US 9,245,253 B2
3 4
restricted, while “effective' in the sense that users are still “random' to be combined with both “people” and “food”
allowed a broad range of expressivity in composing and words as either an object or a subject. Of course, the catego
exchanging chat messages. In one embodiment, the users ries and combinability rules may be tailored to the chat
exchange message while participating in an online virtual Vocabulary of a particular cohort as well as to the messages
environment. Alternatively, users may be exchanging mes that are (and are not) allowed to be built using that chat
sages in an asynchronous manner (e.g., as SMS messages sent Vocabulary.
between mobile telephones). Dynamic phrase generation also offers a way to easily
A phrase chat interface may be used to compose and send interpolate avatar names into phrases, something that is not
messages, where users select approved phrases as chat mes possible when relying on a static database of phrases. Inter
sages. The phrase chat interface is more interactive than menu 10 polating approved avatar names into phrases is not something
chat, where, instead of selecting from a predefined menu of we can do with a static phrase chat database because avatar
phrases, a user may receive suggestions of possible allowed names change dynamically: new names enter the system all
completions or matches for what he/she is typing. The user's the time and can be used in a large variety of possible con
selection may still be required to be an exact full phrase from texts. (e.g., “AWSomePenguin please come to my igloo' or
the list of suggestions, thus ensuring that the phrase cannot be 15 “AwsomePenguin meet meat coffee shop' where Awesome
manipulated to say something inappropriate. For example, if Penguin' is another player's avatar name).
a user types "hel’ the phrase chat interface may suggest In another embodiment, the chat system is configured to
“hello, hello how are u?”“hello there, etc. However, the user "soft’ send certain messages sent by one user to others. One
is not allowed to send a message with the word “hell, as it is particular aspect of on-line chat language that significantly
not one of the options presented in the phrase chat interface. contributes to the explosion of new phrases—particularly for
This approach allows the server to offer phrase Suggestions children is the extensive use of interjections, text-speak
to help identify known allowed phrases while a user types a words such as "lol,” “hehe.” “ok, etc., as well as use of
message into their chat client. As the user begins to type in a non-conventional spelling (e.g., “ur vs. “you are”). Such
phrase that they want to use, a suggestion list appears and words/expressions may be referred to as “optionals' because
dynamically changes as more and more of the phrase is typed. 25 they do not generally provide a semantic contribution to the
Once the phrase suggestion list contains the phrase (or partial phrase. In addition, another factor that increases the number
phrase or even two-three characters) the user wants to send, of possible phrases users can enter is the use of upper case
they can stop typing the phrase and select it from the offered (e.g., “that's AWESOME' vs. “that’s awesome”), word rep
list. Doing so allows the kids to access a large number of etition “this is really really really cool vs. “this is really
known good phrases without having to navigate through a 30 cool”, use of repeated letters, (e.g., “this is so coooooooool
cumbersome multi-tiered menu selection. Instead, the user vs. “this is so cool”), and the use of punctuation marks, (e.g.,
interface becomes more natural metaphor for chatting and “this is so cool!!!!!!!!! vs. “this is so cool!'). Clearly, all of the
allows the expressivity of known good phrases to be substan features above can exist in any combination, thus compound
tially increased. In one embodiment, phrases presented while ing the problem even more, e.g., “this is soooooooooo sooo
a user types are ranked by their frequency of usage, thus 35 coO1111111
offering the most used phrases. Because the phrases are In one embodiment, messages Such as these are parsed or
indexed by usage it would benefit the user based on probabil normalized into a semi-canonical form for matching with the
ity determined by usage of phrases in the rest of the commu static word phrase database. For example, some of the varia
nity. Additionally, users could be provided with an option to tions listed above can be reduced to “this is so cool” by
Suggest a phrase to add to the Suggestion list. 40 removing more than two repeated letters, removing repeated
Further, in one embodiment, the allowability of given words, and limiting the number of exclamation points to two.
phrase (or Suggested phrase) is determined dynamically as a Similar rules can expand contractions (e.g., “ur vs. 'you
user types a phrase (or requests to send a phrase) based on a are’), reformat case or letter substitutions (e.g., “h1 thir3 for
set of word combinability rules. For example, if a typed “hi there'). Once a potential chat phrase is reduced to a
phrase is not found in a static database (e.g., a database of 45 semi-canonical form, it can be matched with a static phrase
common phrases that can be matched quickly), it may be database (or in other cases evaluated using the dynamic
evaluated dynamically. For example, Suppose a user types phrase chat process mentioned above). If a match is found,
“random” and the only phrase in the static database that starts then an identifier associated with the matched phrase can be
with this word is “random numbers.” However, suppose fur sent to message recipients. That is, the phrase typed by the
ther that the user wants to say "random people.” The two 50 user is not sent to others—ensuring control over what mes
words are safe and appropriate to combine, and the system sage is actually received by recipients. That is, the phrase is
“builds' this phrase and presents it to the user (or sends it to “soft-sent to the recipients. To soft-send the phrase means to
other users) on the fly. In this example, the words “random' send the recipients the core phrase, not the exact form of the
and “people' are combined into a phrase using a set of gram phrase, provided the sent phrase differs from users input in
matical rules configured to ensure that words are combined 55 the ways outlined in above, e.g., it contains optional expres
into syntactically well-formed phrases (in this case announ sions, non-conventional spelling, more than three punctua
phrase composed from an adjective and a noun). A set of tion marks, and word/letter repetitions. Thus, if the user types
semantic annotations on the words ensures that words are “LOL, that’s funny!!!!!! what is soft-sent and shown to other
combined into phrases that are appropriate and safe. For users is “that’s funny!!!” Note, the sending user might be
example, semantic annotations for the word “eat” are used 60 presented with the original message in the chat interface (e.g.,
along with a combinability rule indicating that this verb may in a text-bubble hovering over their avatar).
be combined with words from a “food category as an object, Additionally, the “soft send' could allow some variations
but not as on object for words from a “people' category. phrase to be sent with the phrase identifier. For example, if the
Continuing with this example, another combinability rule user included a majority of letters in upper case, then the
could indicate that words in the “people' category are 65 phrase could be presented to recipients in all caps. Similarly,
allowed to be combinable as a subject with the verb, “eat” as the phrase could be decorated with same number of exclama
in the phrase “girl eats pizza.” Such rules could also allow tion points presented by the user. While this approach does in
US 9,245,253 B2
5 6
Some ways limit user expressivity, it still allows users to etc.) or an embodiment combining Software and hardware
communicate using a broad range of semantically equivalent aspects that may all generally be referred to herein as a “cir
content. Further, this approach prevents a variety of inappro cuit,” “module' or “system.” Furthermore, aspects of the
priate messages from being embedded in the semantic Vari present invention may take the form of a computer program
ants. Consider, e.g., the phrase “I like gRAPEs.” product embodied in one or more computer readable
As noted, in one embodiment, phrase Suggestions are made medium(s) having computer readable program code embod
to a user while they compose a chat message. In one embodi ied thereon.
ment, in addition to the phrase typed or chosen by a user, a Any combination of one or more computer readable medi
large set of extra textual data may be applied to provide more um(s) may be utilized. The computer readable medium may
accurate (and therefore better) suggestions. Examples 10 be a computer readable signal medium or a computer read
include: the popularity of the phrase, the user's chat history, able storage medium. A computer readable storage medium
guests avatar level and current activities, quests, locations may be, for example, but not limited to, an electronic, mag
and items held within the game. For example, kids located in netic, optical, electromagnetic, infrared, or semiconductor
a virtual pizza parlor are more likely to talk about pizza. This system, apparatus, or device, or any Suitable combination of
data could be used to aggressively favoring phrases contain 15 the foregoing. More specific examples (a non-exhaustive list)
ing "pizza' in the Suggested phrases as it is more like the user of the computer readable storage medium would include the
intends to say “I like pizza' instead of “I like penguins.” The following: an electrical connection having one or more wires,
chat software may identify the Suggestions using relevance a portable computer diskette, a hard disk, a random access
data derived from a variety of Sources, e.g., chat history memory (RAM), a read-only memory (ROM), an erasable
analysis, online environment, in-game Social interactions, programmable read-only memory (EPROM or Flash
user-specific data (e.g., age, gender, location), expert tagging, memory), an optical fiber, a portable compact disc read-only
Semantic tagging, external game data (e.g., quests). The result memory (CD-ROM), an optical storage device, a magnetic
is a small set of returned suggestions that may be more likely storage device, or any suitable combination of the foregoing.
to reflect the user's intended statements, yielding reduced In the context of this document, a computer readable storage
typing, faster results and less frustration for users. 25 medium may be any tangible medium that can contain, or
Note, while discussed separately, the techniques for Sup store a program for use by or in connection with an instruction
plying users in an online environment with a safe and effec execution system, apparatus or device.
tive chat facility, one of ordinary skill in the art will recognize The flowchart and block diagrams in the Figures illustrate
that the disclosed techniques may be combined, to operate in the architecture, functionality and operation of possible
conjunction with one another as well as combined with other 30 implementations of systems, methods and computer program
techniques for managing a chat facility provided to users of a products according to various embodiments of the present
virtual environment. Further, while some functionality is invention. In this regard, each block in the flowchart or block
described as being provided by server components and some diagrams may represent a module, segment or portion of
by client components, such distinctions are made to facilitate code, which comprises one or more executable instructions
the following description. Further still, while virtual online 35 for implementing the specified logical function(s). In some
environments are described as an environment where moni alternative implementations the functions noted in the block
toring chat functionality may be useful, the approaches may occur out of the order noted in the figures. For example,
described herein may be adapted for use in variety of situa two blocks shown in Succession may, in fact, be executed
tions where individuals use software to send chat messages to Substantially concurrently, or the blocks may sometimes be
one another. For example, in addition to a chat facility within 40 executed in the reverse order, depending upon the function
a virtual world, embodiments may be used to manage chat ality involved. Each block of the block diagrams and/or flow
messages exchanged between individuals sent as SMS mes chart illustrations, and combinations of blocks in the block
sages on mobile telephones or messages sent using a variety diagrams and/or flowchart illustrations can be implemented
of different software applications and/or chat protocols. by special-purpose hardware-based systems that perform the
Additionally, the following description references embodi 45 specified functions or acts, or combinations of special pur
ments of the invention. However, it should be understood that pose hardware and computer instructions.
the invention is not limited to specific described embodi FIG. 1 illustrates a computing infrastructure 100 config
ments. Instead, any combination of the following features and ured to provide a safe and effective chat environment, accord
elements, whether related to different embodiments or not, is ing to one embodiment of the invention. As shown, the com
contemplated to implement and practice the invention. Fur 50 puting infrastructure 100 includes a server computing system
thermore, although embodiments of the invention may 105, and client systems 130s, each connected to a commu
achieve advantages over other possible solutions and/or over nications network 120. Illustratively the server system 105,
the prior art, whether or not a particular advantage is achieved includes a web server 110, a multi-user virtual environment
by a given embodiment is not limiting of the invention. Thus, application 111, and a database 112. As described in greater
the following aspects, features, embodiments and advantages 55 detail below, the database 112 may store user account data,
are merely illustrative and are not considered elements or chat histories, a word corpus, word metadata, and combin
limitations of the appended claims except where explicitly ability rules used to manage chat interactions among users of
recited in a claim(s). Likewise, reference to “the invention the multi-user virtual environment application 111.
shall not be construed as a generalization of any inventive The client systems 130 communicate with the web
subject matter disclosed herein and shall not be considered to 60 server 110 over the network 120 to access multi-user virtual
be an element or limitation of the appended claims except environment application 111, i.e., to access an online virtual
where explicitly recited in a claim(s). environment or game hosted by the server system 105. Of
Aspects of the present invention may be embodied as a course, other approaches for network communication could
system, method or computer program product. Accordingly, be used instead of (or in addition to) a web server and the
aspects of the present invention may take the form of an 65 well-known HTTP protocol.
entirely hardware embodiment, an entirely software embodi In this particular example, client system 130 represents a
ment (including firmware, resident Software, micro-code, computer system running a web-browser 132. Accordingly,
US 9,245,253 B2
7 8
client system 130 is representative of desktop PCs, laptop tive, categorized as being a color. More generally, the word
computers, home-theater PCs (HTPCs), and other computing metadata 222 may provide a collection of information
systems capable of running a web-browser. Similarly, client describing grammatical function and use for words in word
system 130 represents a mobile device such as a mobile corpus 220 as well as an ontology characterizing the semantic
telephone, tablet computer, or portable MP3 player, etc. As meaning of words in the word corpus 220 as well the semantic
shown, the mobile device 130 includes a mobile web meaning of larger phrases in the static phrase corpus 224.
browser 135 as well as dedicated chat “apps' 131. Further, the word/phrase combinability rules 215 could
In one embodiment, the virtual environment (or user chat indicate what word categories (i.e., a color category for adjec
facility) provided by the application 111 may be accessed tives) are allowed to be combined. For example, the word/
using the web browser 132 or mobile browser 135. Alterna 10 phrase combinability rules 215 could indicate that words
tively, virtual environment provided by the application 111 categorized by the metadata 222 as being “colors' can be
may be accessed using a stand-alone application programs (or combined with nouns of a certain type (e.g., words catego
chat “app' 131) executed on the mobile device 130. In addi rized by the metadata 222 as being food, or more specifically,
tion to accessing a virtual environment, mobile device 130 fruit) to form a noun phrase, but not with the words catego
may be used to send chat or text messages from one user to 15 rized as referring to “persons.” Thus, if the user continued to
another (as can client system 130 using web browser 132 or type “apple, the phrase generator 211 could generate a chat
other application software. Similarly, client device client sys message that included the phrase “red apple” but would not
tem 130 represents a computer system executing a client do the same if the user typed “red girl.” Additionally, even
application 136 configured to access the access the multi-user prior to the user typing “apple, the phrase suggestion com
virtual environment application 111. For example, client sys ponent 213 could identify words in the category “food (or
tem 130 could be a computer system or a video game console “fruit) as being combinable with words categorized as being
executing a video game application that includes a multi-user “colors' and make suggestions about what words could be
component along with user-to-user chat facilities. combined with the first word (i.e., with “red). In many cases,
In each of these cases, a user interface may provide a the categories could allow for large numbers of words to be
mechanism for a user to compose chat messages sent to other 25 combined. Accordingly, the phrase Suggestion component
users within the virtual environment provided by the applica 213 could be configured to select which ones to present as
tion 111. Further, the application 111 may include compo Suggestions using a variety of criteria, including, e.g., chat
nents configured to manage chat messages sent by a given history analysis, online environment, in-game social interac
user in order to provide an appropriate online environment for tions, user-specific data (e.g., age, gender, location), expert
a given user community. For example, for a virtual environ 30 tagging, semantic tagging, external game data (e.g., quests).
ment developed for pre-teen children, the chat phrases Additionally, as described in greater detail below, the Sug
allowed to be sent among users could be limited so as to gestions for a given phrase may change as elements are added
prevent users from sending, e.g., offensive, bullying, or inap to the phrase. For example, a first set of relevant Suggestions
propriate messages. may be determined for the word “red' and if the user typed
FIG. 2 illustrates a logical view of components of the 35 “apple a second set of relevant Suggestions may be deter
multi-user virtual environment application 111, according to mined for the phrase “red apple.” Such a process could con
one embodiment of the invention. As shown, the virtual envi tinue creating Suggestions for larger and larger phrases (e.g.,
ronment application 111 includes an environment server 205, as the user typed (or selected) the verb “are and object
a chat server 210, and a set of word/phrase combinability "tasty”). That is, whether selected by a user typing out the
rules 215. Additionally, the virtual environment application 40 word 'apple' or by a user selecting the Suggestion to add
111 may interact with a database 112. In this example, the “apple' to “red, resulting in the phrase “red apple.” (a noun
database 112 stores a word corpus 220, word metadata 222, phrase) being dynamically generated, the phrase generator
static phrase corpus 224 and chat logs 226. 211 could further suggest additional words which this noun
The environment server 205 provides a software applica phrase could be combined with.
tion configured to host a particular virtual environment. For 45 Thus, the process for dynamically generating phrases can
example, environment server 205 could provide a virtual ski be nested, where first the individual words of 'red' and
resort allowing users to interact and play or provide virtual “apples' are evaluated relative to the word/phrase combin
shopping mall again allowing users to interact with one ability rules 215 resulting in the phrase “red apples. The
another but also allowing users to purchase virtual (or real) combinability rules 215 could indicate that a noun phrase of
goods and services. Other examples include online gaming 50 type “food” or “fruit” could be further combined with an
environments (e.g., a virtual car race track or first-person intransitive verb or with a transitive verb and an object (e.g.,
shooter). Regardless of the particular virtual environment, the are tasty). More generally, the combinability rules 215 can be
chat server 210 may allow users to compose (or select) chat applied to the word corpus 220 to build allowed chat phrases
massages to communicate to other users. To facilitate Such out of smaller components (e.g., individual nouns and verbs)
communication, the chat server 210 may include a phrase 55 as well as larger grammatical elements (e.g., what categories
generator 211, a phrase parsing component 212, and a phrase of adjective phrases are combinable with words/phases in
Suggestion component 213. Of course these (or other compo other categories).
nents) may be combined or further subdivided in a particular In one embodiment, the phrase parsing component 212
CaSC. may be configured to parse and edit a chat message typed by
In one embodiment, the phrase generator 211 provides a 60 a user. For example, the phrase parsing component 212 may
Software component configured to dynamically generate be configured to remove so-called “optionals' from a chat
allowed chat message phrases from content composed by (or message. Doing so may reduce a chat phase down to a semi
Suggested to) a user. For example, assume a user types “red.” canonical form used for matching with the phrase corpus 224
In Such a case, the phrase generator 211 may identify this or for evaluating using the dynamic phrase generator 211. If a
word in the word corpus 220 and retrieve word metadata 222 65 match is found, then an identifier corresponding to the user's
associated with this word. In this example, the metadata 222 chat message may be sent to other users present within the
could indicate that the word 'red' is grammatically an adjec virtual environment.
US 9,245,253 B2
10
The chat logs 226 may store chat histories for users. The words in a “people' category (e.g., “girl.” boy.” “you” or 99 &g

chat logs 226 may be used to periodically determine the word avatar names.). This helps avoid inappropriate phrases from
corpus 220. For example, the logs 226 may be evaluated to being created.
determine the most frequently used words (or phrases) for a Some combinable phrases may nevertheless be unusual,
given online environment or given user community within an e.g., "random pear,” “serious apple.” or "orange orange.”
online environment—up to a given number of words (e.g., However, nonsensical phrases are encouraged, particularly in
20,000). Periodically regenerating the word corpus 220 online environments where children interact with one
allows it to evolve as the language patterns of users change
over time. another. In such cases, as children play “pretend all the time
FIG. 3 illustrates a method 300 for generating a dynamic 10 and often chat using unusual word combinations. At the same
phrase chat corpus, according to one embodiment of the time, only allowing words in certain categories to be com
invention. As shown, the method 300 begins at step 305 where bined helps ensure that the resulting communications are
a word corpus is generated. The word corpus provides a chat limited to ones deemed in advance to not result in inappro
Vocabulary for chat messages in a given virtual environment. priate, offensive, or otherwise unwanted chat phrases.
For example, the chat server may identify the 20,000 top-used 15
Tables I-III, below, provide a small example that illustrates
words in the current chat logs. Note, experience has shown a set of allowable word combinations generated from steps
that 20,000 words generally corresponds to the size of the 310 and 315. Of course, the words and categories in Tables
chat Vocabulary pre-teen users exhibit in composing chat I-III are by no means exhaustive. Instead, this approach is
messages in online environments (after most of the spelling is readily extended with more words and thus translates into a
corrected and punctuation/capitalization is removed). Of robust methodology for dynamically generating new safe
course, for other user cohorts, a different number of words phrases that may be served up as Suggestions for phrases, e.g.,
may be used.
In addition to evaluating a chat log, the content of the chat when no matches are found for the user's input in the static
Vocabulary may be modified manually. For example, a mod database.
erator may monitor the interactions between users of an 25
TABLE I
online environment to identify phrases that should be allowed
(with words that need to be added to the vocabulary) as well
as identify phrases that carry an inappropriate message that Adjective Combinability Example:
are nevertheless allowed by the system to be sent. Similarly,
as users’ language evolves or specializes within a given com 30 Nouns types can Predicates can Examples of
munity or environment, the moderator may add words to the Adjectives combine with combine with allowable phrases
vocabulary.
At step 310, the words identified at step 305 are divided Red food, natural is, are, become, Isred, becomes red, go
into grammatical categories, e.g., nouns, Verbs, adjectives, events, clothing go, turn red, red apple, red pear,
adverbs, prepositions, etc. At step 315, the words in each 35
turn red, red Snow
grammatical category are annotated with broad semantic Green food, natural is, are, become, Is green, becomes green,
information (e.g., whether a given word denotes a food item, events, go, turn go green, green apple,
clothing item, or action, etc.) and with its grammatical func
tion (e.g., whether it is a verb, noun or adjective). For clothing green pear, green
example, the word "orange' may be annotated as being a 40 avalanche
noun belonging to both a category of “food” and a Sub Yellow food, natural is, are, become, Is yellow, becomes
category of “fruit, as well as annotated as being an adjective events, go, turn yellow, go yellow, turn
belonging to a category of "color. Thus, the annotations clothing yellow, yellow apple
create an ontology of semantic meaning for the words in the Orange food, natural is, are, become, Is orange, becomes
word corpus. Note, preferably, the semantic categories should 45
events, go, turn Orange, go Orange, turn
be relatively narrow, without being too fine grained. For clothing orange, orange apple,
example, while a “food” and a “drink” category are likely to
be appropriate in Scope for an ontology of words used by Orange pear,
children in composing chat messages, a category of "cheese
burger' or a 'soda category are likely to be too fine-grained. 50
In one embodiment, the scope of the categories may be tai TABLE II
lored to result in categories having a certain minimum (and/or
maximum) number of members. Noun Combinability Example:
For each word category, other categories that a given word
category can be combined with are specified. Further, an 55
Noun
Nouns
types
Object of Examples of
Subject of predicate predicate allowable phrases
allowed word order for combining words/phrases may be
specified as well. That is, the world/phrase combinability Apple Food, is blue, is green, is Eat, see Apple grows here,
rules for the word categories are also specified at step 315. For Subtype red, is orange, is like red apple, green
example, adjectives in a "color” category red, green, Fruit awesome, is serious apple, eat apples,
See apples, like
orange may be specified as being combinable when preced 60
apples,
ing nouns tagged as being “food” or “fruit” apple, tangerine, Sky natural is blue, is green, is See, like Sky is blue, sky is
pear. Doing so results in allowed possible phrases such as events red, is orange, is green, sky is
{red apple, red tangerine, red pear... }, but not apples red or Girl
awesome, is serious
People Runs, likes, walks, See
8WCSOc
Girl runs around,
pears green}. Similarly, a category "disparaging” which Girl likes apples,
included the nouns fat, ugly could be limited to being 65 See girl
combinable with a Small range of phrases, e.g., nouns in an
“animal category such as “penguin” or "cat' but not with
US 9,245,253 B2
11 12
TABLE II phrase “red apple is awesome is generated. To evaluate this
longer phrase, semantic data from the current phrase “red
Predicates Example: apple' is extracted. In this example, the phrase “red apple'
Subject Subject Examples of could be tagged with: "red apple: tag-adjective, noun, third
Predicates Subject person number allowable phrases person, singular, food, subject/object}. This means that the
phrase involves an adjective, a noun, the noun is third-person,
Is Food, Third-person Singular Apple is awesome, sky is it is singular, it is a food object.
awesome natural 8WCSOc.
event, Girl is awesome When the user continues typing the longer phrase “red
People apple is awesome, the predicate of “is awesome' can be
10 searched for in the list of allowable predicates for a noun
As further part of step 315, chat phrases generated by phrase having the semantic tag of adjective, noun, third
combining words in the categories may themselves be tagged person, singular, food, Subject/object}. As this phrase is
allowable, it could be suggested (e.g., after the user typed 'is'
with grammatical information. Doing so allows a base phrase or fully typed by the user and Subsequently sent to message
to be combined with other words the user may type. For 15 recipients within the online community.
example, if “red apple' is tagged with a tag “noun, adjective, If the user types their own phrase following “red apple, the
3rd-person, singular, Subject/object, food, this indicates the word/phrase elements in the potential chat phrase may be
phrase can be put in the Subject position of a noun phrase or evaluated for combinability according to the word/phrase
object position of a predicate and has grammatical properties combinability rules (step 425). If the complete phrase is com
Such as 3rd-person and singular, and semantically catego binable, and the user selects to send the message (step 430),
rized as being a kind of food. At step 320, the resulting word then at step 435, the phrase is sent to one or more recipients.
corpus and annotated word metadata may be stored in a That is, once an allowable phrase is generated (either through
database. Once stored, the chat server may evaluate user input the user selecting Suggestions or typing out a complete mes
to dynamically generate allowable chat parse messages sent sage), the user may select to send the resulting message to
to users of an online environment or community. 25 other members of the online community. Note, in one
FIG. 4 illustrates a method 400 for dynamically suggesting embodiment, the interface may indicate when an allowable
and/or evaluating phrase chat messages for users of an online message has been identified, e.g., by changing the color of
environment, according to one embodiment of the invention. text of the potential message or activating a send button.
As shown, the method 400 begins at step 405 where a chat Further, when sending messages to a recipient, the message
interface is presented to a user as part of accessing an online 30 may be the text content, but other graphical representations
environment. For example, the user may log on to a virtual could be made to a message as well. For example, assume a
online community, where the presence of that user is indi user sends the message"I like to eat pizza” or “Let’s visit the
cated by an avatar visible to other users of the community and castle. In these cases, elements of the message could be
where the user sees the avatars representing other users of the replaced with graphical representations, such as a picture
online community present at any given time. 35 representing the pizza or castle in the previous message.
The interface to such an online environment may allow the Otherwise, if the user has not typed (or selected Sugges
user to compose chat messages to send to other users. As tions) that create an allowable chat phrase according to the
described above, the range of available chat phrases may be combinability rules, then the method 400 returns to step 410
limited to words in a predefined word corpus and word cat until additional words/phrases are typed or Suggested words
egorizations indicating what words in Such a corpus can be 40 are selected and a combinable chat phrase is dynamically
combined with one another (and the order in which such generated.
words in different categories can be combined with one FIGS. 5A-5B illustrate an example of a dynamic chat
another). In addition to allowable chat phrases determined phrase generated according to the methods of FIGS. 3 and 4,
dynamically, a given phrase may also be compared to a static according to one embodiment of the invention. As shown in
corpus of allowed phrases. 45 FIG. 5A, a rendering 500 presents a virtual environment
At step 410, the chat server may determine whether a user where users can interact with one another via avatars. In this
has completed typing a word (or other portion of a chat particular example, the virtual environment presents users
message) or selected to augment a current phrase with a with a virtual ski resort where the avatars are cartoon pen
suggested word (or phrase) derived from the combinability guins. Illustratively, a number of avatars are shown present at
rules. For example, given the noun phrase “red apple.’ Table 50 the base of a virtual ski lift. Additionally, each avatar shows
III indicates that this phrase (a food, 3" person singular noun the corresponding user name. For this example, assume the
phrase) is combinable with the predicate “is awesome.” avatar 520 “purplePengiun” corresponds to the user viewing
Accordingly, the phrase “is awesome could be suggested to rendering 500, while the other avatars represent other users
the user. If the user then selected to add a suggested word (or also present in this virtual environment.
phrase), that word (or phrase) is added to a potential chat 55 The user controlling avatar 520 can compose a chat mes
phrase (step 415). sage using interface 505. In this example, the user has typed
More specifically, assume again that the user types the the phrase “I like fat penguins. Once completed, the user can
phrase “red apple.” (or after typing the word “red selects the attempt to send this message by pressing send button 515. In
Suggestion of “apple' over Suggestions “peach.” “sky” or response, the chat server evaluates this phrase using the com
“hat”). The phrase “red apple' is combinable according to the 60 binability rules. For example, the phrase “I like” would be
rules shown in Table I, above. As noted, the resulting allow combinable itself and combinable with an allowed predicate.
able chat phrase “red apple' can be tagged with semantic Further, the predicate in this case “fat penguins' could be
information and compared with Subsequent user input. For allowed if the combinability rules allowed the use of the word
example, if, after typing “red apple' the user continues typing 'fat' as an adjective, e.g., in a "disparagement category to
“is awesome these additional phrase elements can be evalu 65 modify nouns in an “animal' category. In one embodiment,
ated to determine whether “red apple' can be further com the chat server could suggest combinable phrases to add to the
bined with the predicate “is awesome' and if it can, the longer current phrase. For example, the chat server could suggest
US 9,245,253 B2
13 14
“penguins' after the user types “I like fat, along with other online community present at any given time. At step 610, a
elements of the “animal” category. Assuming this is the case, user requests to send a typed chat phrase to recipients. Note,
and the user selected penguin' (instead of, e.g., “cat,” “dog” the recipients may be anyone present in the same area of the
or “fish'), the chat server builds the phrase “I like fat pen virtual environment (as shown in FIG. 5B) or the sending user
guins' to send to other users of this virtual environment. This could specify one or more intended message recipients.
result is shown in FIG. 5B, where avatar 520 is rendered with Once the user requests to send a chat message, the chat
a text bubble 550 presenting this chat message. In contrast, if server may parse the phrase to derive a test phrase for match
the user had typed a phrase that was not combinable accord ing with phrases in a static word corpus (step 615). The test
ing to the rules, e.g., “I like fat girls, the chat serer would not phrase may remove one or more syntactic features of the
send this message to other users present in the virtual envi 10
received phrase without Substantially changing the semantic
ronment. While the behavior of the interface may vary, in one meaning of the phrase. For example, in one embodiment, the
embodiment, the send button 515 could be rendered in an chat server may remove more than two repeated letters,
inactive state until an allowed message has been identified. remove repeated words, and limiting the number of exclama
Alternatively, the interface could present the text bubble, to
just the user attempting to send the message not allowed by 15 tion points (or other punctuation marks). Similarly, the chat
the combinability rules. server could reformat a phrase to standardize case, replace
In addition to generating Suggestions using the dynamic letter substitutions, remove numbers within text characters,
phrase chat corpus, chat Suggestions may also be generated etc. The resulting test phrase provides a message in a semi
form static phrase corpus as well. For example, a phrase may canonical form which can be matched with phrases in the
be matched against a static set of phrases raked by popularity. static phrase corpus (step 620). At step 625, if a match is
In one embodiment, a chat client monitors a user typing a found, then an identifier associated with the matched phrase
phrase and sends it to the server which contains a phrase can be sent to message recipients. Once received, each recipi
fragment that the server will compare against its database of ent renders the message in the semi-canonical form (step
top phrases. The “top” phrases may be selected as the most 630). Either way, the message is rendered for viewing by the
popular for a given site, cohort of users, or using any other 25 sending user (step 635).
criteria as appropriate in a particular case. However deter FIGS. 7A-7C illustrate an example of chat messages being
mined, a Suitable set of phrases that contain the phrase frag “soft sent in an online environment using the method of FIG.
ment or equivalent context phrases will be returned to the chat 6, according to one embodiment of the invention. As shown in
client. These phrases may be presented to the user. The user FIG. 7A, a rendering 700 presents a virtual environment
can then select the appropriate phrase. Additional client side 30 where users can interact with one another via avatars. In this
scrubbing of the list of phrases returned from the server would particular example, the virtual environment presents users
happen as the user continues to type the phrase until the with a virtual clothing store where the avatars are cartoon
proper phrase is displayed. penguins. For this example, assume the avatar 720 "Flippers'
For example, once a user typed the initial phrase "do you corresponds to the user viewing rendering 700, while the
want to the following set of possible responses could be 35 otheravatars represent other users also present in this virtual
identified and presented to the user. environment.
do you want to come over to my house The user controlling avatar 720 can compose a chat mes
do you want to come to my party sage using interface 705. In this example, the user has typed
do you want to play with me a phrase 710 of “LOL!!1 thats SOOO cooolll!!!.” The user
Further, once presented, if the user typed “play” then the first 40 controlling avatar 720 can send phrase 710 using button 715.
two phrase Suggestions would be removed. Conversely, if the Once the user requests to send phrase 710, it may be evaluated
user typed “come' then the third phrase suggestion would be by the chat server. For example, removing the optional phrase
removed, allowing the user to select between them or type “LOL 1.” replacing “thats' with “that’s and removing
Something else entirely. repeated letters results in the semi-canonical phrases “that’s
In addition to generating chat messages to Suggest and/or 45 so cool.” The resulting phrase “that’s so cool is emulated
send to users of a virtual environment, the chat server may against a static phrase corpus. Alternatively, the resulting
maintain a static phrase corpus of allowed phrases. For phrase could be evaluated using the dynamic phrase chat
example, rather than build common phrases (e.g., “hithere!) process discussed above. Assume a match is found in the
to Suggest (or send) dynamically, Suchphrases could be added static phrase corpus. In Such a case, the chat server sends a
to an allowed “white list.” In one embodiment, when a user 50 phrase ID corresponding to the phrase" “that’s so cool”
created message can be mapped to Such a pre-approved mes to each recipient. In addition, the chat server may restore
sage, the pre-approved message is sent and presented to mes some of the “optionals' to the phrase. For example, the trail
sage recipients, regardless of any "optional typed in the ing exclamation points could be added, and the phrase could
message by the user. be sent in uppercase letters (assuming the phrase composed
For example, FIG. 6 illustrates a method for soft sending 55 by the user had a majority of letters in an uppercase format).
chat messages to users in an online environment, according to The result of “soft-sending the phrase to recipients is
another embodiment of the invention. Note, the method 600 shown in FIG. 7B.. As shown in this Figure, avatar 720 is
may be combined with approaches for dynamically generat rendered with a text bubble 730 which includes the phrase
ing phrase chat messages discussed herein, method 600 from the static phrase word corpus, with the trailing excla
evaluates user-typed messages against a static phrase corpus 60 mation points. Text bubble 730 is rendered with the phrase
as an example. corpus for each user with an avatar in the virtual environment
As shown, method 600 begins at step 605, where a chat shown in FIG. 7B. In contrast, FIG. 7C shows the phrase
interface is presented to a user as part of accessing an online rendered for the sending user. Again, avatar 720 is now ren
environment. For example, the user may log on to a virtual dered with a text bubble 730. However, the content of the text
online community, where the presence of that user is indi 65 bubble 730 shows the chat message, as typed by the user
cated by an avatar visible to other users of the community and controlling avatar 720. That is, the phrase is rendered for the
where the user sees the avatars representing other users of the sending user with all of the “optionals' intact.
US 9,245,253 B2
15 16
In addition to dynamically generating chat messages to shown in the word-stack 930 are determined relative to the
Suggest and/or send to users of a virtual environment, and to complete current phrase “party at not just the last word “at”
"soft-sending certain chat messages, the chat server may be That is, the “best choices are determined relative to the
further configured to build a set of Suggestions as a user current phrase, not individual words.
composes a chat message. However, given the large combi 5 Continuing with the present example, FIG. 9C shows a
nations of possible allowed chat messages, in one embodi third word-stack 940 determined for the current phrase “party
ment, the chat server may attempt to determine the “best at igloo' composed form word-blocks 910, 925, and 945.
choice to present to a user when building a chat message. If Note, in this example, the user did not select any of the “best
none of the presented words are correct, the user can type out choices from word-stack 930 shown in FIG.9B. Instead, the
the next element of the desired chat message, and the chat 10 user typed out a new word “igloo' to be added to the chat
server can again evaluate to resulting partial phrase to deter message. At the same time, the chat server responds by evalu
mine another set of “best choices to present to the user. ating the complete phrase “party at igloo' to determine the
While the criteria for selecting the “best choices may be words to include in word-stack 940. This example illustrates
tailored for a particular community of users or virtual envi that the “best choices are determined relative to the current
ronment, examples of factors that may be used include the 15 phrase, not individual words, even when the words are added
popularity of the phrase, demographics of a given user base, to the phrase by the user typing, instead of selecting one of the
the user's chat history, guest's avatar level and current activi “best” words from a current word-stack. This process contin
ties, (quests, locations, etc.). For example, returning to the ues until a user completes composing a phrase and decides to
example of a store shown in FIGS. 7A-7C, users may be more send it to one or more recipients, such as all the people in the
likely to chat about items in the store (or topics related to same location of the virtual environment as the sending user.
same. This data could be used to aggressively favoring FIG. 10 is a more detailed view of the server computing
phrases containing “wigs’ or “hats' in the Suggested phrases system of FIG. 1, according to one embodiment of the inven
as it is more like the user intends to say “I want a hat over “I tion. As shown, the server system 105 includes, without limi
want pizza.” tation, a central processing unit (CPU) 1005, a network inter
FIG. 8 illustrates a method 800 for suggesting chat phrase 25 face 1015, a bus 1017, a memory 1020, and storage 1030. The
possibilities to a user in an online environment, according to server system 105 also includes an I/O device interface 1010,
one embodiment of the invention. As shown, method 800 connecting the server system 105 to I/O devices 1012 (e.g.,
begins at step 805, where a chat interface is presented to a user keyboard, display and mouse devices). As described above,
as part of accessing an online environment. For example, the the server system 105 provides a computing system config
user may log on to a virtual online community, where the 30 ured to hosta multi-user virtual environment application 111.
presence of that user is indicated by an avatar visible to other CPU 1005 retrieves and executes programming instruc
users of the community and where the user sees the avatars tions stored in the memory 1020. Similarly, CPU 1005 stores
representing other users of the online community present at and retrieves application data residing in the memory 1020.
any given time. Once a user selects (or types) a next term to The bus 1017 is used to transmit programming instructions
include in a chat message (step 810), the chat server identifies 35 and application data between the CPU 1005, I/O devices
the top N Suggested terms to add to the phrase being com interface 1010, storage 1030, network interface 1015, and
posed by the user (step 815). Once identified, the top N memory 1020. CPU 1005 is included to be representative of
choices may be presented to the user (step 820). The process a single CPU, multiple CPUs, a single CPU having multiple
(steps 810, 815 and 820) continues until a user selects to send processing cores, and the like. And the memory 1020 is gen
a completed chat phrase (step 825.) At step 830, the resulting 40 erally included to be representative of a random access
phrase can be sent to message recipients. Once received, each memory. The storage 1030 may be a disk drive storage device.
recipient renders the message. Although shown as a single unit, the storage 1030 may be a
FIGS.9A-9C illustrate an example of a chat message being combination offixed and/or removable storage devices, such
composed in an online environment using the method of FIG. as magnetic disc drives, solid state drives (SSD), removable
8, according to one embodiment of the invention. As shown in 45 memory cards, optical storage, network attached storage
FIG. 9A, a rendering 900 presents a virtual environment (NAS), or a storage area-network (SAN).
where users can interact with one another via avatars. In this Illustratively, the memory 1020 includes the multi-user
particular example, the virtual environment presents users virtual environment application 111, which includes a chat
with an outdoor street, where the avatars are cartoon pen server 205 and virtual environment server 210. As noted,
guins. For this example, assume the avatar 920 (with a user 50 virtual environment application 111 and chat server 205 pro
name of "Flippers') corresponds to the user viewing render vides a software application configured to implement any of
ing 900, while the other avatars represent other users also the approaches discussed above for managing chat commu
present in this virtual environment. nications shared among users of the hosted virtual environ
Illustratively, the user controlling avatar 920 is typing a ments. The storage 1030 includes the current word corpus
chat message in the interface 905 that begins with the word 55 (the individual words from which chat messages may be
“party.” A word-block 910 shows the word entered by the composed) and a word ontology 222. As described above, the
user. Further, a word-stack 915 shows a set of choices to word ontology 222 may provide semantic annotations for the
extend the phrase being composed. As described, the particu individual words in the word corpus 222.
lar words in the word-stack 915 may be determined as the FIG. 11 is a more detailed view of the client computing
“best choices relative to the current phrase “party' and rela 60 system 130 of FIG. 1, according to one embodiment of the
tive to other criteria such as the most popular words or based invention. As shown, the client computing system 130
on the current location of the user. In this particular example, includes, without limitation, a central processing unit (CPU)
the user selects one of the suggestions—the word “at.” This 1105, a network interface 1115, a bus 1117, a memory 1120,
result is shown in FIG.9B, where word-blocks 910 and 925 and storage 1130. The computing system 130 also includes an
represent the current state of the chat message as it is being 65 I/O device interface 1110 connecting I/O devices 1112 to the
composed. A second word-stack 930 shows a second set of computing system 130 (e.g., a keyboard, mouse, or remote
choices which the user can select. Importantly, the choices control, along with a monitor (e.g., an LCD panel).
US 9,245,253 B2
17 18
Like CPU 1005, CPU 1105 is included to be representative 3. The method of claim 1, further comprising, rendering,
of a single CPU, multiple CPUs, a single CPU having mul for view by the first user, the text phrase on an interface
tiple processing cores, etc., and the memory 1120 is included presenting an avatar representing the first user.
to be representative of a random access memory. The bus 4. The method of claim 1, further comprising, rendering,
1117 connects CPU 1105, I/O devices interface 1110, storage for view by the second user, the modified text phrase on an
1130, network interface 1115, and memory 1120. The net interface presenting an avatar representing the first user.
work interface 1115 is configured to transmit data via the 5. The method of claim 1, further comprising, upon deter
communications network 120, e.g., to access a virtual envi mining the modified text phrase does not match any of the
ronment hosted by the server system 105. Storage 1130, such allowed chat phrases in the corpus, rendering, for view by the
as a hard disk drive or solid-state (SSD) storage drive, may 10
first user, the text phrase on an interface presenting an avatar
store game data files along with other content. representing the first user.
Illustratively, the memory 1120 includes a web browser 6. The method of claim 5, further comprising, presenting
132, which itself includes a chat client 1125. And storage an indication to the first user that the chat message was not
1135 stores user account data 1135 and user configuration sent to the second user.
setting as needed to facilitate a user interacting with a hosted 15
online virtual envenomed. For example, described above, the 7. The method of claim 1, wherein an indication of at least
web browser 132 may access a server access the virtual envi one of the removed syntactic features of the text message is
ronment and chat client, allowing a user to participate in game sent to at least the second user.
play, as well as communicate with other users via chat client 8. A nontransitory computer-readable storage medium
1125. storing a program, which, when executed by a processor
Advantageously, embodiments of the invention provide a performs an operation for facilitating communication
variety of techniques for Supplying users in an online envi between users, the operation comprising:
ronment with a safe and effective chat facility. For example, in receiving, from a first user, a text phrase;
one embodiment, the allowability of given phrase (or Sug modifying the text phrase to remove one or more syntactic
gested phrase) is determined dynamically as a user types a 25 features of the text phrase while maintaining a semantic
phrase (or requests to send a phrase) based on a set of word meaning of the received text phrase, wherein at least one
combinability rules. In another embodiment, the chat system of the syntactic features comprises a repeated alphanu
is configured to “soft’ send certain messages sent by one user meric character, a repeated word, or one or more punc
to others. A message is “soft-sent when the actual message tuation characters included with the text phrase:
sent the recipients removes “optional from the user-supplied 30
matching the modified text phrase against a corpus of
message. In yet another embodiment, phrase Suggestions are allowed chat phrases; and
made to a user while they compose a chat message, where the upon determining the modified text phrases matches one of
selections are determined relative to a variety of factors, the allowed chat phrases in the corpus:
including, e.g., the popularity of the phrase, the user's chat
history, guests avatar level and current activities, quests, 35 sending an identifier corresponding to the matched text
locations and items held within the game. phrase to at least a second user, and
While the foregoing is directed to embodiments of the sending, with the identifier corresponding to the
present invention, other and further embodiments of the matched text phrase, an indication of at least one
invention may be devised without departing from the basic Syntactic feature removed from the text phrase,
scope thereof, and the scope thereof is determined by the 40 wherein the at least one syntactic feature removed
claims that follow. from the text phrase is restored into the matched text
What is claimed is: phrase.
1. A computer-implemented method for facilitating com 9. The computer-readable storage medium of claim 8.
munication between users, comprising: wherein the words in the chat vocabulary are determined from
receiving, from a first user, a text phrase; 45 a chat history of chat messages exchanged between users in
modifying the text phrase to remove one or more syntactic an online virtual environment.
features of the text phrase while maintaining a semantic 10. The computer-readable storage medium of claim 8.
meaning of the received text phrase, wherein at least one wherein the operation further comprises, rendering, for view
of the syntactic features comprises a repeated alphanu by the first user, the text phrase on an interface presenting an
meric character, a repeated word, or one or more punc 50 avatar representing the first user.
tuation characters included with the text phrase: 11. The computer-readable storage medium of claim 8.
matching the modified text phrase against a corpus of wherein the operation further comprises, rendering, for view
allowed chat phrases; and by the second user, the modified text phrase on an interface
upon determining the modified text phrases matches one of presenting an avatar representing the first user.
the allowed chat phrases in the corpus: 55 12. The computer-readable storage medium of claim 8.
sending an identifier corresponding to the matched text wherein the operation further comprises, upon determining
phrase to at least a second user, and the modified text phrase does not match any of the allowed
sending, with the identifier corresponding to the chat phrases in the corpus, rendering, for view by the first
matched text phrase, an indication of at least one user, the text phrase on an interface presenting an avatar
Syntactic feature removed from the text phrase, 60 representing the first user.
wherein the at least one syntactic feature removed 13. The computer-readable storage medium of claim 12,
from the text phrase is restored into the matched text wherein the operation further comprises, presenting an indi
phrase. cation to the first user that the chat message was not sent to the
2. The method of claim 1, wherein the words in the chat second user.
vocabulary are determined from a chat history of chat mes 65 14. The computer-readable storage medium of claim 8.
sages exchanged between users in an online virtual environ wherein an indication of at least one of the removed syntactic
ment. features of the text message is sent to at least the second user.
US 9,245,253 B2
19 20
15. A system, comprising: 16. The system of claim 15, wherein the words in the chat
a processor; and vocabulary are determined from a chat history of chat mes
a memory, wherein the memory includes an application sages exchanged between users in an online virtual environ
program configured to perform an operation for facili ment.
tating communication between users, the operation 5 17. The system of claim 15, wherein the operation further
comprising:
receiving, from a first user, a text phrase, comprises, rendering, for view by the first user, the text phrase
modifying the text phrase to remove one or more Syn on an interface presenting an avatar representing the first user.
tactic features of the text phrase while maintaining a 18. The system of claim 15, wherein the operation further
semantic meaning of the text phrase, wherein at least 10 comprises, rendering, for view by the second user, the modi
one of the syntactic features comprises a repeated fied text phrase on an interface presenting an avatar represent
alphanumeric character, a repeated word, or one or ing the first user.
more punctuation characters included with the text 19. The system of claim 15, wherein the operation further
phrase,
matching the modified text phrase against a corpus of comprises, upon determining the modified text phrase does
allowed chat phrases, and 15 not match any of the allowed chat phrases in the corpus,
upon determining the modified text phrases matches one rendering, for view by the first user, the text phrase on an
of the allowed chat phrases in the corpus: interface presenting an avatar representing the first user.
sending an identifier corresponding to the matched 20. The system of claim 19, wherein the operation further
text phrase to at least a second user, and comprises, presenting an indication to the first user that the
sending, with the identifier corresponding to the chat message was not sent to the second user.
matched text phrase, an indication of at least one 21. The system of claim 15, wherein an indication of at
Syntactic feature removed from the text phrase,
wherein the at least one syntactic feature removed least one of the removed syntactic features of the text message
is sent to at least the second user.
from the text phrase is restored into the matched
text phrase. k k k k k

You might also like