U.S. patent application number 15/870098 was filed with the patent office on 2018-05-17 for dynamically updating emoticon pool based on user targeting.
The applicant listed for this patent is EXCALIBUR IP, LLC. Invention is credited to Arpit GUPTA.
Application Number | 20180137468 15/870098 |
Document ID | / |
Family ID | 48136895 |
Filed Date | 2018-05-17 |
United States Patent
Application |
20180137468 |
Kind Code |
A1 |
GUPTA; Arpit |
May 17, 2018 |
DYNAMICALLY UPDATING EMOTICON POOL BASED ON USER TARGETING
Abstract
Embodiments are directed towards dynamically updating, in
real-time, an emoticon pool of a user based on a current personal
construct of the user. In one embodiment, real-time changes in the
current personal construct of a user may result in a real-time
update to the emoticon pool of the user, which can allow the user's
emoticon pool to dynamically track the user's current personal
construct. The current personal construct of a user may be
determined by examining user targeted information associated with
the user. In some embodiments, the user targeted information may
include, but not limited to, static user information, dynamic user
information, implicit user information, and/or dynamic external
information. In one embodiment, a user's emoticon pool may be
dynamically updated by modifying an appearance of one or more base
emoticons in a base emoticon pool and/or one or more existing
emoticons in the user's emoticon pool.
Inventors: |
GUPTA; Arpit; (New Delhi,
IN) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
EXCALIBUR IP, LLC |
New York |
NY |
US |
|
|
Family ID: |
48136895 |
Appl. No.: |
15/870098 |
Filed: |
January 12, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13276987 |
Oct 19, 2011 |
9870552 |
|
|
15870098 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 30/02 20130101;
H04L 69/329 20130101; G06Q 10/107 20130101; H04L 51/04 20130101;
H04L 29/06 20130101; H04L 29/08072 20130101; G06Q 10/101 20130101;
H04L 51/08 20130101 |
International
Class: |
G06Q 10/10 20120101
G06Q010/10; H04L 29/08 20060101 H04L029/08; H04L 12/58 20060101
H04L012/58; H04L 29/06 20060101 H04L029/06; G06Q 30/02 20120101
G06Q030/02 |
Claims
1-20. (canceled)
21. A method comprising: maintaining, by a computing device, user
information comprising dynamic user information, the dynamic user
information comprising information indicating a mood of a user;
providing, by the computing device, an electronic messaging user
interface at a client computing device of the user, the electronic
messaging user interface enabling a user to compose an electronic
message, the electronic messaging user interface comprising a first
set of emoticons, each emoticon of the first set of emoticons
selectable by the user for inclusion in the electronic message, the
first set of emoticons being selected from a plurality of
emoticons, the first set of emoticons comprising a number of
mood-based emoticons corresponding to the information indicating
the mood of the user; receiving, by the computing device and via
the electronic messaging user interface, feedback from the user
regarding the first set of emoticons presented to the user via the
electronic messaging user interface; determining, by the computing
device, a current mood of the user using the dynamic user
information comprising the information indicating the mood of the
user; automatically updating, by the computing device, the
electronic messaging user interface with an updated set of
emoticons selected from the emoticon pool, the updated set of
emoticons comprising a number of differences from the first set of
emoticons and reflecting the current mood of the user indicated by
the dynamic user information and the feedback received from the
user; and causing, via the computing device, the electronic message
composed by the user and including a number of emoticons selected,
by the user as composer of the electronic message from at least one
of the set of emoticons and the updated set of emoticons, to be
transmitted to a number of other users via a number of client
computing devices and over an electronic communications
network.
22. The method of claim 21, the updated set of emoticons comprising
at least one emoticon from the first set of emoticons having a
different visual appearance, in the updated set of emoticons,
reflecting at least one of a change in the mood of the user
indicated by the dynamic user information and the feedback received
from the user.
23. The method of claim 21, the automatic update of the electronic
messaging interface further comprising: automatically updating the
electronic messaging user interface using the dynamic user
information, the dynamic user information further comprising
electronic messaging content, the updated set of emoticons being
determined using the messaging content of the dynamic user
information.
24. The method of claim 23, the messaging content is content
composed by the user using the electronic messaging interface.
25. The method of claim 23, the messaging content is content
received by the user via the electronic messaging interface.
26. The method of claim 21, the feedback comprising explicit
feedback from the user regarding one or more of the emoticons in
the first set of emoticons.
27. The method of claim 21, the feedback comprising implicit
feedback from the user regarding one or more of the emoticons in
the first set of emoticons, the implicit feedback comprising
information indicating whether or not the user selected one or more
of the emoticons in the first set of emoticons.
28. The method of claim 21, the dynamic user information further
comprising information indicating online activities of the user,
the updated set of emoticons being determined using the information
indicating online activities of the user.
29. The method of claim 21, the user information used in
automatically updating the electronic messaging user interface with
the updated set of emoticons further comprising implicit user
information, the implicit user information comprising at least one
of a geographic location of the user, corresponding to a geographic
location of the client computing device of the user, and social
network information of the user.
30. The method of claim 29, the social network information of the
user comprising information indicating the mood of each of a number
of friends of the user and being used in maintaining the
information indicating the mood of the user.
31. The method of claim 21, the user information used in
automatically updating the electronic messaging user interface with
the updated set of emoticons further comprising demographic
information of the user and preferences of the user.
32. The method of claim 21, the user information used in
automatically updating the electronic messaging user interface with
the updated set of emoticons further comprising dynamic external
information, the dynamic external information comprising weather
information and calendar information.
33. The method of claim 21, the computing device is a server
computing device.
34. The method of claim 21, the computing device is the client
computing device.
35. A non-transitory computer-readable storage medium tangibly
encoded with computer-executable instructions that when executed by
a processor associated with a computing device perform a method
comprising: maintaining user information comprising dynamic user
information, the dynamic user information comprising information
indicating a mood of a user; providing an electronic messaging user
interface at a client computing device of the user, the electronic
messaging user interface enabling a user to compose an electronic
message, the electronic messaging user interface comprising a first
set of emoticons, each emoticon of the first set of emoticons
selectable by the user for inclusion in the electronic message, the
first set of emoticons being selected from a plurality of
emoticons, the first set of emoticons comprising a number of
mood-based emoticons corresponding to the information indicating
the mood of the user; receiving, via the electronic messaging user
interface, feedback from the user regarding the first set of
emoticons presented to the user via the electronic messaging user
interface; determining a current mood of the user using the dynamic
user information comprising the information indicating the mood of
the user; automatically updating the electronic messaging user
interface with an updated set of emoticons selected from the
emoticon pool, the updated set of emoticons comprising a number of
differences from the first set of emoticons and reflecting the
current mood of the user indicated by the dynamic user information
and the feedback received from the user; and causing the electronic
message composed by the user and including a number of emoticons
selected, by the user as composer of the electronic message from at
least one of the set of emoticons and the updated set of emoticons,
to be transmitted to a number of other users via a number of client
computing devices and over an electronic communications
network.
36. The non-transitory computer-readable storage medium of claim
35, the automatic update of the electronic messaging interface
further comprising: automatically updating the electronic messaging
user interface using the dynamic user information, the dynamic user
information further comprising electronic messaging content, the
updated set of emoticons being determined using the messaging
content of the dynamic user information.
37. The non-transitory computer-readable storage medium of claim
36, the messaging content is content composed by the user using the
electronic messaging interface.
38. The non-transitory computer-readable storage medium of claim
36, the messaging content is content received by the user via the
electronic messaging interface.
39. The non-transitory computer-readable storage medium of claim
35, the feedback comprising at least one of explicit feedback from
the user regarding one or more of the emoticons in the first set of
emoticons and implicit feedback from the user regarding one or more
of the emoticons in the first set of emoticons, the implicit
feedback comprising information indicating whether or not the user
selected one or more of the emoticons in the first set of
emoticons.
40. A computing device comprising: a processor; a non-transitory
storage medium for tangibly storing thereon program logic for
execution by the processor, the program logic comprising:
maintaining logic executed by the processor for maintaining user
information comprising dynamic user information, the dynamic user
information comprising information indicating a mood of a user;
providing logic executed by the processor for providing an
electronic messaging user interface at a client computing device of
the user, the electronic messaging user interface enabling a user
to compose an electronic message, the electronic messaging user
interface comprising a first set of emoticons, each emoticon of the
first set of emoticons selectable by the user for inclusion in the
electronic message, the first set of emoticons being selected from
a plurality of emoticons, the first set of emoticons comprising a
number of mood-based emoticons corresponding to the information
indicating the mood of the user; receiving logic executed by the
processor for receiving, via the electronic messaging user
interface, feedback from the user regarding the first set of
emoticons presented to the user via the electronic messaging user
interface; determining logic executed by the processor for
determining a current mood of the user using the dynamic user
information comprising the information indicating the mood of the
user; updating logic executed by the processor for automatically
updating the electronic messaging user interface with an updated
set of emoticons selected from the emoticon pool, the updated set
of emoticons comprising a number of differences from the first set
of emoticons and reflecting the current mood of the user indicated
by the dynamic user information and the feedback received from the
user; causing logic executed by the processor for causing the
electronic message composed by the user and including a number of
emoticons selected, by the user as composer of the electronic
message from at least one of the set of emoticons and the updated
set of emoticons, to be transmitted to a number of other users via
a number of client computing devices and over an electronic
communications network.
Description
TECHNICAL FIELD
[0001] The present invention relates generally to emoticons and,
more particularly, but not exclusively to dynamically updating an
emoticon pool based at least on current personal construct.
BACKGROUND
[0002] Instant messaging has become a commonly used application on
the Internet. Instant messaging programs generally allow users to
send and receive text-based messages. One typical shortfall of
text-based messages is that they generally lack an emotional
aspect. As a result, users sometimes convey their emotions and/or
moods to another user by adding emoticons' to a text-based message.
Generally, emoticons are icons (e.g. a smiley face) and/or a
sequence of characters, typically appearing inline with text (e.g.
;-) (wink)). In some cases, a sequence of characters can be
transformed into an icon that represents a similar emotion. In some
environments, emoticons can be grouped into an emoticon pool that
can allow a user to select emoticons for use in a text-based
message.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Non-limiting and non-exhaustive embodiments of the present
invention are described with reference to the following drawings.
In the drawings, like reference numerals refer to like parts
throughout the various figures unless otherwise specified.
[0004] For a better understanding of the present invention,
reference will be made to the following Detailed Description, which
is to be read in association with the accompanying drawings,
wherein:
[0005] FIG. 1 is a system diagram of an environment in which
embodiments may be implemented;
[0006] FIG. 2 shows an embodiment of a client device that may be
included in a system such as that shown in FIG. 1;
[0007] FIG. 3 shows an embodiment of a network device that may be
included in a system such as that shown in FIG. 1;
[0008] FIG. 4 illustrates a wheel diagram of a non-exhaustive
example of an embodiment of user targeted information;
[0009] FIG. 5 illustrates a logical flow diagram generally showing
one embodiment of an overview process for dynamically updating an
emoticon pool of a user based on a current personal construct of
the user;
[0010] FIG. 6 illustrates a logical flow diagram generally showing
one embodiment of a process for modifying one or more
emoticons;
[0011] FIG. 7 shows a non-exhaustive example of a use case of an
embodiment of a base emoticon pool;
[0012] FIG. 8 shows a non-exhaustive example of a use case of an
embodiment of a set of emoticon attributes; and
[0013] FIG. 9 shows a non-exhaustive example of a use case of an
embodiment of a dynamically updated emoticon pool.
DETAILED DESCRIPTION
[0014] Throughout the specification and claims, the following terms
take the meanings explicitly associated herein, unless the context
clearly dictates otherwise. The phrase "in one embodiment" as used
herein does not necessarily refer to the same embodiment, though it
may. Furthermore, the phrase "in another embodiment" as used herein
does not necessarily refer to a different embodiment, although it
may. Thus, as described below, various embodiments of the invention
may be readily combined, without departing from the scope or spirit
of the invention.
[0015] In addition, as used herein, the term "or" is an inclusive
"or" operator, and is equivalent to the term "and/or," unless the
context clearly dictates otherwise. The term "based on" is not
exclusive and allows for being based on additional factors not
described, unless the context clearly dictates otherwise. In
addition, throughout the specification, the meaning of "a," "an,"
and "the" include plural references. The meaning of "in" includes
"in" and "on."
[0016] As used herein, the phrase "user targeted information"
refers to any of a variety of information relating to a user. User
targeted information may include, but not limited to, static user
information, dynamic user information, implicit user information,
dynamic external information determined to be relevant to the user,
and/or any combination thereof. Static user information may
include, but is not limited to, user profile, user preferences,
user demographics, or the like. Dynamic user information may
include, but is not limited to, a user's online activities, message
content, a user's mood, or the like. Implicit user information may
include, but is not limited to, a user's location, a user's social
network trends, or the like. Dynamic external information may
include, but is not limited to, weather, time of day, time of year,
other calendar information, or the like.
[0017] As used herein, the phrase "current personal construct"
refers to an abstract and/or general idea pertaining to a user that
is inferred or otherwise derived from user targeted information. A
current personal construct may provide an indication of, for
example, a user's current interests, a user's current likes or
dislikes, a user's recent and/or real-time online and/or offline
activities, a user's mood, a user's physical environment,
activities and/or ambiance surrounding a current holiday and/or
festival determined to be relevant to the user (e.g. although it
may be Christmas season, the user may not celebrate Christmas, but
may celebrate Hanukkah, Eid ul-Fitr, or other religious holiday),
or the like. A current personal construct may also include specific
details, such as, for example, the user recently purchased a Nike
hat, it is snow at the user's location, and it is the Christmas
season.
[0018] As used herein, the term "emoticon attributes" refers to any
of a variety of items that can be added to an emoticon. Emoticon
attributes may include backgrounds, themes, sounds, animations,
text, clothes, props, or other accessories.
[0019] As used herein, the term, "features" refers to any of a
variety of aspects of an emoticon and/or emoticon attribute that
can be modified. Features may include visual aspects (e.g. shape,
size, color, orientation, text and/or fonts, or the like), audible
aspects (e.g. volume, duration, playback, animation, or the like),
or the like.
[0020] As used herein, the term "social network" refers to a
concept that an individual's personal network of friends, family
colleagues, coworkers, and the subsequent connections within those
networks, can be utilized to find more relevant connections for a
variety of activities, including, but not limited to dating, job
networking, service referrals, content sharing, like-minded
individuals, activity partners, or the like.
[0021] An online social network typically comprises a person's set
of direct and/or indirect personal relationships, including real
and virtual privileges and permissions that users may associate
with these people. Direct personal relationships usually include
relationships with people the user can communicated with directly,
including family members, friends, colleagues, coworkers, and other
people with which the person has had some form of direct contact,
such as contact in person, by telephone, by email, by instant
message, by letter, or the like. These direct personal
relationships are sometimes referred to as first-degree
relationships. First-degree relationships can have varying degrees
of closeness, trust, and other characteristics.
[0022] Indirect personal relationships typically include
relationships through first-degree relationships to people with
whom a person has not had some form of direct or limited direct
contact, such as in being cc'd on an e-mail message, or the like.
For example, a friend of a friend represents an indirect personal
relationship. A more extended, indirect relationship might be a
friend of a friend of a friend. These indirect relationships are
sometimes characterized by a degree of separation between the
people. For instance, a friend of a friend can be characterized as
two degrees of separation or a second-degree relationship.
Similarly, a friend of a friend of a friend can be characterized as
three degrees of separation or a third-degree relationship.
[0023] The following briefly describes embodiments of the invention
in order to provide a basic understanding of some aspects of the
invention. This brief description is not intended as an extensive
overview. It is not intended to identify key or critical elements,
or to delineate or otherwise narrow the scope. Its purpose is
merely to present some concepts in a simplified form as a prelude
to the more detailed description that is presented later.
[0024] Briefly stated, embodiments are directed towards dynamically
updating, in real-time, an emoticon pool of a user based on a
current personal construct of the user. In some embodiments, a
current personal construct may provide an indication of, for
example, a user's current interests, a user's current likes or
dislikes, a user's online and/or offline activities, a user's mood,
a user's physical environment, activities and/or ambiance
surrounding a current holiday and/or festival, or the like. In one
embodiment, real-time changes in the current personal construct of
a user may result in a real-time update to the emoticon pool of the
user, which can allow the user's emoticon pool to dynamically track
the user's current personal construct. In one, non-limiting,
non-exhaustive example, if it is raining at the user's location,
then the user's emoticon pool may include emoticons with umbrellas.
However, if the weather changes to sunny, then the user's emoticon
pool may be dynamically updated to remove the umbrellas and include
emoticons with sunglasses.
[0025] The current personal construct of a user may be determined,
in one embodiment, by examining user targeted information
associated with the user. In some embodiments, the user targeted
information may include, but not limited to, static user
information, dynamic user information, implicit user information,
dynamic external information, and/or any combination thereof. It is
envisaged that any information targeted and/or related to a user
can be utilized to determine a current personal construct of the
user.
[0026] In one embodiment, the emoticon pool of a user may be
dynamically updated by modifying an appearance of one or more base
emoticons in a base emoticon pool, one or more existing emoticons
in the emoticon pool of the user, or any combination thereof. In
some embodiments, the appearance of an emoticon can be modified by
adding one or more emoticon attributes to the emoticon, by
modifying one or more emoticon and/or emoticon attribute features,
or any combination thereof. In yet other embodiments, a user's
emoticon pool may be dynamically updated to include a subset of
base emoticons from a base emoticon pool. In one embodiment, the
base emoticon pool may not change based on the current personal
construct of the user, but the subset of base emoticons may be
selected based on the user's current personal construct.
[0027] The dynamically updated emoticon pool may be provided to the
user to enable the user to view the updated emoticon pool and to
select an emoticon for insertion into a message.
Illustrative Operating Environment
[0028] FIG. 1 shows components of one embodiment of an environment
in which the invention may be practiced. Not all the components may
be required to practice the invention, and variations in the
arrangement and type of the components may be made without
departing from the spirit or scope of the invention. As shown,
system 100 of FIG. 1 includes local area networks ("LANs")/wide
area networks ("WANs")--(network) 108, wireless network 107, client
devices 101-106, and Emoticon Service Device ("ESD") 109.
[0029] One embodiment of client devices 101-106 is described in
more detail below in conjunction with FIG. 2. Generally, however,
client devices 103-106 may include virtually any portable computing
device capable of receiving and sending messages over a network,
such as network 108, wireless network 107, or the like. Client
devices 103-106 may also be described generally as client devices
that are configured to be portable. Thus, client devices 103-106
may include virtually any portable computing device capable of
connecting to another computing device and receiving information.
Such devices include portable devices such as, cellular telephones,
smart phones, display pagers, radio frequency ("RF") devices,
infrared ("IR") devices, Personal Digital Assistants ("PDAs"),
handheld computers, laptop computers, wearable computers, tablet
computers, integrated devices combining one or more of the
preceding devices, and the like. As such, client devices 103-106
typically range widely in terms of capabilities and features. In
one non-limiting example, a cell phone may have a numeric keypad
and a few lines of monochrome liquid crystal display ("LCD")
display on which only text may be displayed. In another example, a
web-enabled mobile device may have a touch sensitive screen, a
stylus, and several lines of color LCD display in which both text
and graphics may be displayed.
[0030] Client device 101 may include virtually any computing device
capable of communicating over a network to send and receive
information, including instant messages, performing various online
activities, or the like. The set of such devices may include
devices that typically connect using a wired or wireless
communications medium such as personal computers, multiprocessor
systems, microprocessor-based or programmable consumer electronics,
network PCs, or the like. In one embodiment, at least some of
client devices 101-106 may operate over wired and/or wireless
network. Client device 102 may include virtually any device useable
as a television device. Today, many of these devices include a
capability to access and/or otherwise communicate over a network
such as network 108 and/or even wireless network 107. Moreover,
client device 102 may access various computing applications,
including a browser, or other web-based application.
[0031] A web-enabled client device may include a browser
application that is configured to receive and to send web pages,
web-based messages, and the like. The browser application may be
configured to receive and display graphics, text, multimedia, and
the like, employing virtually any web-based language, including a
wireless application protocol messages ("WAP"), and the like. In
one embodiment, the browser application is enabled to employ
Handheld Device Markup Language ("HDML"), Wireless Markup Language
("WML"), WMLScript, JavaScript, Standard Generalized Markup
Language ("SGML"), HyperText Markup Language ("HTML"), eXtensible
Markup Language ("XML"), and the like, to display and send a
message. In one embodiment, a user of the client device may employ
the browser application to perform various activities over a
network (online). However, another application may also be used to
perform various online activities.
[0032] Client devices 101-106 also may include at least one other
client application that is configured to receive and/or send
messages and/or content, including instant messages, between
another computing device. The client application may include a
capability to send and/or receive emoticons associated with an
instant message or other electronic message. In one embodiment, the
emoticons may include media content, textual content, graphical
content, audio content, or the like. The client application may
further provide information that identifies itself, including a
type, capability, name, and the like. In one embodiment, client
devices 101-106 may uniquely identify themselves through any of a
variety of mechanisms, including a phone number, Mobile
Identification Number ("MIN"), an electronic serial number ("ESN"),
or other mobile device identifier. The information may also
indicate a content format that the mobile device is enabled to
employ. Such information may be provided in a network packet, or
the like, sent between other client devices, ESD 109, or other
computing devices.
[0033] Client devices 101-106 may further be configured to include
a client application that enables an end-user to log into an
end-user account that may be managed by another computing device,
such as ESD 109, or the like. Such end-user account, in one
non-limiting example, may be configured to enable the end-user to
compose a message and select one or more emoticons from a personal
construct emoticon pool associated with the user to be inserted in
the message. However, participation in such message and emoticon
usage may also be performed without logging into the end-user
account.
[0034] Wireless network 107 is configured to couple client devices
103-106 and its components with network 108. Wireless network 107
may include any of a variety of wireless sub-networks that may
further overlay stand-alone ad-hoc networks, and the like, to
provide an infrastructure-oriented connection for client devices
103-106. Such sub-networks may include mesh networks, Wireless LAN
("WLAN") networks, cellular networks, and the like. In one
embodiment, the system may include more than one wireless
network.
[0035] Wireless network 107 may further include an autonomous
system of terminals, gateways, routers, and the like connected by
wireless radio links, and the like. These connectors may be
configured to move freely and randomly and organize themselves
arbitrarily, such that the topology of wireless network 107 may
change rapidly.
[0036] Wireless network 107 may further employ a plurality of
access technologies including 2nd (2G), 3rd (3G), 4th (4G)
generation radio access for cellular systems, WLAN, Wireless Router
("WR") mesh, and the like. Access technologies such as 2G, 3G, 4G
and future access networks may enable wide area coverage for mobile
devices, such as client devices 103-106 with various degrees of
mobility. In one non-limiting example, wireless network 107 may
enable a radio connection through a radio network access such as
Global System for Mobil communication ("GSM"), General Packet Radio
Services ("GPRS"), Enhanced Data GSM Environment ("EDGE"), Wideband
Code Division Multiple Access ("WCDMA"), and the like. In essence,
wireless network 107 may include virtually any wireless
communication mechanism by which information may travel between
client devices 103-106 and another computing device, network, and
the like.
[0037] Network 108 is configured to couple network devices with
other computing devices, including, ESD 109, client devices 101 and
102, and through wireless network 107 to client devices 103-106.
Network 108 is enabled to employ any form of computer readable
media for communicating information from one electronic device to
another. Also, network 108 can include the Internet in addition to
LANs, WANs, direct connections, such as through a universal serial
bus ("USB") port, other forms of computer-readable media, or any
combination thereof. On an interconnected set of LANs, including
those based on differing architectures and protocols, a router acts
as a link between LANs, enabling messages to be sent from one to
another. In addition, communication links within LANs typically
include twisted wire pair or coaxial cable, while communication
links between networks may utilize analog telephone lines, full or
fractional dedicated digital lines including T1, T2, T3, and T4,
and/or other carrier mechanisms including, for example, E-carriers,
Integrated Services Digital Networks ("ISDNs"), Digital Subscriber
Lines ("DSLs"), wireless links including satellite links, or other
communications links known to those skilled in the art. Moreover,
communication links may further employ any of a variety of digital
signaling technologies, including without limit, for example, DS-0,
DS-1, DS-2, DS-3, DS-4, OC-3, OC-12, OC-48, or the like.
Furthermore, remote computers and other related electronic devices
could be remotely connected to either LANs or WANs via a modem and
temporary telephone link. In one embodiment, network 108 may be
configured to transport information of an Internet Protocol ("IP").
In essence, network 108 includes any communication method by which
information may travel between computing devices.
[0038] Additionally, communication media typically embodies
computer-readable instructions, data structures, program modules,
or other transport mechanism and includes any information delivery
media. By way of example, communication media includes wired media
such as twisted pair, coaxial cable, fiber optics, wave guides, and
other wired media and wireless media such as acoustic, RF,
infrared, and other wireless media.
[0039] One embodiment of ESD 109 is described in more detail below
in conjunction with FIG. 3. Briefly, however, ESD 109 may include
any computing device capable of connecting to network 107 to
dynamically update, in real-time, an emoticon pool associated with
a user of client devices 101-106 based on a current personal
construct of the user. Dynamically updating the emoticon pool is
described in more detail below in conjunction with FIGS. 4-6.
[0040] In some embodiments, ESD 109 may also operate as website
servers to provide content, including emoticons and emoticon pools,
to client devices 101-106. Such content may include, but is not
limited to textual, graphical, and/or audio content, and/or any of
a variety of media content for access by, or any of a variety of
other interactions with the media content by, another client
device. ESD 109 may also operate as a messaging server such as a
Short Message Service ("SMS") message service, Instant Message
("IM") message service, email message service, alert service, or
the like. Moreover, ESD 109 may also operate as a File Transfer
Protocol ("FTP") server, a database server, music and/or video
download server, or the like. Additionally, ESD 109 may be
configured to perform multiple functions.
[0041] Devices that may operate as ESD 109 include various network
devices, including, but not limited to personal computers, desktop
computers, multiprocessor systems, microprocessor-based or
programmable consumer electronics, network PCs, server devices,
network appliances, and the like.
[0042] Although FIG. 1 illustrates ESD 109 as a single computing
device, the invention is not so limited. For example, one or more
functions of ESD 109 may be distributed across one or more distinct
network devices. Moreover, ESD 109 is not limited to a particular
configuration. Thus, in one embodiment, ESD 109 may contain a
plurality of network devices to dynamically update a user's
emoticon pool. Similarly, in another embodiment, ESD 109 may
contain a plurality of network devices that operate using a
master/slave approach, where one of the plurality of network
devices of ESD 109 operates to manage and/or otherwise coordinate
operations of the other network devices. In other embodiments, the
ESD 109 may operate as a plurality of network devices within a
cluster architecture, a peer-to-peer architecture, and/or even
within a cloud architecture. Thus, the invention is not to be
construed as being limited to a single environment, and other
configurations, and architectures are also envisaged.
Illustrative Client Device
[0043] FIG. 2 shows one embodiment of client device 200 that may be
included in a system implementing the invention. Client device 200
may include many more or less components than those shown in FIG.
2. However, the components shown are sufficient to disclose an
illustrative embodiment for practicing the present invention.
Client device 200 may represent, for example, one embodiment of at
least one of client devices 101-106 of FIG. 1.
[0044] As shown in the figure, client device 200 includes a central
processing unit ("CPU") 202 in communication with a mass memory 226
via a bus 234. Client device 200 also includes a power supply 228,
one or more network interfaces 236, an audio interface 238, a
display 240, a keypad 242, an illuminator 244, a video interface
246, an input/output interface 248, a haptic interface 250, and a
global positioning systems ("GPS") receiver 232. Power supply 228
provides power to client device 200. A rechargeable or
non-rechargeable battery may be used to provide power. The power
may also be provided by an external power source, such as an
alternating current ("AC") adapter or a powered docking cradle that
supplements and/or recharges a battery.
[0045] Client device 200 may optionally communicate with a base
station (not shown), or directly with another computing device.
Network interface 236 includes circuitry for coupling client device
200 to one or more networks, and is constructed for use with one or
more communication protocols and technologies including, but not
limited to, GSM, code division multiple access ("CDMA"), time
division multiple access ("TDMA"), user datagram protocol ("UDP"),
transmission control protocol/Internet protocol ("TCP/IP"), SMS,
GPRS, WAP, ultra wide band ("UWB"), Institute of Electrical and
Electronics Engineers ("IEEE") 802.16 Worldwide Interoperability
for Microwave Access ("WiMax"), session initiated
protocol/real-time transport protocol ("SIP/RTP"), or any of a
variety of other wireless communication protocols. Network
interface 236 is sometimes known as a transceiver, transceiving
device, or network interface card ("NIC").
[0046] Audio interface 238 is arranged to produce and receive audio
signals such as the sound of a human voice. For example, audio
interface 238 may be coupled to a speaker and microphone (not
shown) to enable telecommunication with others and/or generate an
audio acknowledgement for some action.
[0047] Display 240 may be an LCD, gas plasma, light emitting diode
("LED"), or any other type of display used with a computing device.
Display 240 may also include a touch sensitive screen arranged to
receive input from an object such as a stylus or a digit from a
human hand.
[0048] Keypad 242 may comprise any input device arranged to receive
input from a user. For example, keypad 242 may include a push
button numeric dial, or a keyboard. Keypad 242 may also include
command buttons that are associated with selecting and sending
images.
[0049] Illuminator 244 may provide a status indication and/or
provide light. Illuminator 244 may remain active for specific
periods of time or in response to events. For example, when
illuminator 244 is active, it may backlight the buttons on keypad
242 and stay on while the client device is powered. Also,
illuminator 244 may backlight these buttons in various patterns
when particular actions are performed, such as dialing another
client device. Illuminator 244 may also cause light sources
positioned within a transparent or translucent case of the client
device to illuminate in response to actions.
[0050] Video interface 246 is arranged to capture video images,
such as a still photo, a video segment, an infrared video, or the
like. For example, video interface 246 may be coupled to a digital
video camera, a web-camera, or the like. Video interface 246 may
comprise a lens, an image sensor, and other electronics. Image
sensors may include a complementary metal-oxide-semiconductor
("CMOS") integrated circuit, charge-coupled device ("CCD"), or any
other integrated circuit for sensing light.
[0051] Client device 200 also comprises input/output interface 248
for communicating with external devices, such as a headset, or
other input or output devices not shown in FIG. 2. Input/output
interface 248 can utilize one or more communication technologies,
such as USB, infrared, Bluetooth.TM., or the like. Haptic interface
250 is arranged to provide tactile feedback to a user of the client
device. For example, the haptic interface 250 may be employed to
vibrate client device 200 in a particular way when another user of
a computing device is calling.
[0052] GPS transceiver 232 can determine the physical coordinates
of client device 200 on the surface of the Earth. GPS transceiver
232, in some embodiments, may be optional. GPS transceiver 232
typically outputs a location as latitude and longitude values.
However, GPS transceiver 232 can also employ other geo-positioning
mechanisms, including, but not limited to, triangulation, assisted
GPS ("AGPS"), Enhanced Observed Time Difference ("E-OTD"), Cell
Identifier ("CI"), Service Area Identifier ("SAI"), Enhanced Timing
Advance ("ETA"), Base Station Subsystem ("BSS"), or the like, to
further determine the physical location of client device 200 on the
surface of the Earth. It is understood that under different
conditions, GPS transceiver 232 can determine a physical location
within millimeters for client device 200; and in other cases, the
determined physical location may be less precise, such as within a
meter or significantly greater distances. In one embodiment,
however, mobile device 200 may through other components, provide
other information that may be employed to determine a physical
location of the device, including for example, a Media Access
Control ("MAC") address, IP address, or the like.
[0053] Mass memory 226 includes a Random Access Memory ("RAM") 204,
a Read-only Memory ("ROM") 222, and other storage means. Mass
memory 226 illustrates an example of computer readable storage
media (devices) for storage of information such as computer
readable instructions, data structures, program modules or other
data. Mass memory 226 stores a basic input/output system ("BIOS")
224 for controlling low-level operation of client device 200. The
mass memory also stores an operating system 206 for controlling the
operation of client device 200. It will be appreciated that this
component may include a general-purpose operating system such as a
version of UNIX, or LINUX.TM., or a specialized client
communication operating system such as Windows Mobile.TM., or the
Symbian.RTM. operating system. The operating system may include, or
interface with a Java virtual machine module that enables control
of hardware components and/or operating system operations via Java
application programs.
[0054] Mass memory 226 further includes one or more data storage
208, which can be utilized by client device 200 to store, among
other things, applications 214 and/or other data. For example, data
storage 208 may also be employed to store information that
describes various capabilities of client device 200. The
information may then be provided to another device based on any of
a variety of events, including being sent as part of a header
during a communication, sent upon request, or the like. Data
storage 208 may also be employed to store social networking
information including address books, buddy lists, aliases, user
profile information, or the like. Further, data storage 208 may
also store messages, web page content, or any of a variety of user
generated content. At least a portion of the information may also
be stored on another component of network device 200, including,
but not limited to computer readable storage device 230, a disk
drive or other computer-readable storage device (not shown) within
client device 200.
[0055] Data storage 208, in other embodiments, may further store
emoticon pool 210 and/or emoticon attributes 212. Emoticon pool 210
may include a plurality of emoticons that can be selected by a user
of client device 200 to be inserted in a message. As described in
more detail below, emoticon pool 210 may be dynamically updated
based on a current personal construct of the user. In some
embodiments, emoticon pool 210 may include one or more emoticon
pools associated with a user of client device 200 and/or a base
emoticon pool. In one embodiment, emoticon pool 210 may be an
optional component within client device 200. For example, the
emoticon pool associated with the user may be hosted on another
network device, such as network device 300 of FIG. 3, which may be
accessible, in one embodiment, by client device 200.
[0056] Emoticon attributes 212 may include one or more emoticon
attributes that can be added to one or more emoticons to modify an
appearance of the emoticons. Emoticon attributes 212 may include
logos, images, graphics, sounds, text, animations, and/or other
digital content that can represent backgrounds, themes, clothes,
props, or other accessories associated with an emoticon. In one
embodiment, emoticon attributes 212 may be an optional component
within client device 200. For example, the emoticon attributes may
be hosted on another network device, such as network device 300 of
FIG. 3, which may be accessible, in one embodiment, by client
device 200.
[0057] Applications 214 may include computer executable
instructions which, when executed by client device 200, transmit,
receive, and/or otherwise process messages (e.g., SMS, Multimedia
Message Service ("MMS"), IM, email, and/or other messages), audio,
video, and enable telecommunication with another user of another
client device. Other examples of application programs include
calendars, search programs, email clients, IM applications, SMS
applications, voice over Internet Protocol ("VOIP") applications,
contact managers, task managers, transcoders, database programs,
word processing programs, security applications, spreadsheet
programs, games, search programs, and so forth. Applications 214
may include, for example, messenger 216, browser 218, and dynamic
augmentation selector ("DAS") 220.
[0058] Browser 218 may include virtually any application configured
to receive and display graphics, text, multimedia, and the like,
employing virtually any web based language. In one embodiment, the
browser application is enabled to employ HDML, WML, WMLScript,
JavaScript, SGML, HTML, XML, and the like, to display and send a
message. However, any of a variety of other web-based languages may
be employed. In one embodiment, browser 218 may enable a user of
client device 200 to provide and/or receive messages between
another computing device, such as another client device. Browser
218 may also be configured to enable a user to browse an emoticon
pool, such as emoticon pool 210, and select one or more emoticons
for insertion in a message.
[0059] Messenger 216 may be configured to manage a messaging
session using any of a variety of messaging communications
including, but not limited to email, SMS, IM, MMS, internet relay
chat ("IRC"), Microsoft IRC ("mIRC"), Really Simple Syndication
("RSS") feeds, and/or the like. For example, in one embodiment,
messenger 216 may be configured as an IM application, such as AOL
(America Online) Instant Messenger, Yahoo! Messenger, .NET
Messenger Server, ICQ ("I seek you"), or the like. In one
embodiment, messenger 216 may be configured to include a mail user
agent ("MUA") such as Elm, Pine, Message Handling ("MH"), Outlook,
Eudora, Mac Mail, Mozilla Thunderbird, or the like. In another
embodiment, messenger 216 may be a client application that is
configured to integrate and employ a variety of messaging
protocols, including, but not limited to various push and/or pull
mechanisms for client device 200. In one embodiment, messenger 216
may interact with browser 218 for managing messages. As used
herein, the term "message" refers to any of a variety of messaging
formats, or communications forms, including but not limited to
email, SMS, IM, MMS, IRC, or the like. Messenger 216 may also be
configured to enable a user to browse an emoticon pool, such as
emoticon pool 210, and select one or more emoticons for insertion
in a message.
[0060] DAS 220 is configured to dynamically update an emoticon pool
associated with a user, such as, in one embodiment, emoticon pool
210, based on a current personal construct of the user. In one
embodiment, DAS 220 obtains and examines user targeted information
to determine the user's current personal construct. DAS 220 may
also, in one embodiment, be configured to accept feedback from a
user of client device 200 to be used as additional user targeted
information. In some embodiments, DAS 220 may dynamically update
one or more emoticon pools of the user based on a subset of the
user's current personal construct. In yet other embodiments, DAS
220 may be configured to select a subset of base emoticons from a
base emoticon pool based on the user's current personal construct
and augment the user's emoticon pool to include the selected subset
of base emoticons.
[0061] DAS 220 may be configured to select one or more emoticons
from an emoticon pool, generate a personal construct emoticon by
modifying the selected emoticons, and update the emoticon pool with
the personal construct emoticon. In some embodiments, DAS 220 may
be configured to utilize emoticon pool 210 and/or an emoticon pool
hosted on another device, such as emoticon pool 310 of FIG. 3. In
some embodiments, each of the one or more emoticons may be selected
and/or modified based on a subset of the user's current personal
construct. In one embodiment, a different subset of the user's
current personal construct may be utilized to select and/or
generate different personal construct emoticons.
[0062] DAS 220 may, in some embodiments, be configured to modify an
appearance of one or more selected emoticons. In one embodiment,
DAS 220 may modify a selected emoticon by adding one or more
emoticon attributes to the selected emoticon. In some embodiments,
DAS 220 may utilize emoticon attributes 212 and/or emoticon
attributes hosted on another device, such as emoticon pool 312 of
FIG. 3. In other embodiments, DAS 220 may modify a feature of one
or more selected emoticons and/or a feature of one or more emoticon
attributes.
[0063] In one embodiment, DAS 220 may be an optional component
within client device 200. For example, a dynamic augmentation
selector hosted on another network device may be employed to
perform the dynamic update of an emoticon pool associated with the
user. In any event, DAS 220 may employ processes similar to those
described below in conjunction with FIGS. 5-6 to perform at least
some of its actions.
Illustrative Network Device
[0064] FIG. 3 shows one embodiment of a network device 300,
according to one embodiment of the invention. Network device 300
may include many more or less components than those shown. The
components shown, however, are sufficient to disclose an
illustrative embodiment for practicing the invention. Network
device 300 may be configured to operate as a server, client, peer,
or any other device. Network device 300 may represent, for example
ESD 109 of FIG. 1.
[0065] Network device 300 includes central processing unit 302,
computer readable storage device 328, network interface unit 330,
an input/output interface 332, hard disk drive 334, video display
adapter 336, and a mass memory, all in communication with each
other via bus 326. The mass memory generally includes RAM 304, ROM
322 and one or more permanent mass storage devices, such as hard
disk drive 334, tape drive, optical drive, and/or floppy disk
drive. The mass memory stores operating system 306 for controlling
the operation of network device 300. Any general-purpose operating
system may be employed. BIOS 324 is also provided for controlling
the low-level operation of network device 300. As illustrated in
FIG. 3, network device 300 also can communicate with the Internet,
or some other communications network, via network interface unit
330, which is constructed for use with various communication
protocols including the TCP/IP protocol. Network interface unit 330
is sometimes known as a transceiver, transceiving device, or
NIC.
[0066] Network device 300 also comprises input/output interface 332
for communicating with external devices, such as a keyboard, or
other input or output devices not shown in FIG. 3. Input/output
interface 332 can utilize one or more communication technologies,
such as USB, infrared, Bluetooth.TM., or the like.
[0067] The mass memory as described above illustrates another type
of computer-readable media, namely computer-readable storage media
and/or processor-readable storage medium. Computer-readable storage
media (devices) may include volatile, nonvolatile, removable, and
non-removable media implemented in any method or technology for
storage of information, such as computer readable instructions,
data structures, program modules, or other data. Examples of
computer readable storage media include RAM, ROM, Electrically
Erasable Programmable Read-only Memory ("EEPROM"), flash memory or
other memory technology, Compact Disc Read-only Memory ("CD-ROM"),
digital versatile disks ("DVD") or other optical storage, magnetic
cassettes, magnetic tape, magnetic disk storage or other magnetic
storage devices, or any other physical medium which can be used to
store the desired information and which can be accessed by a
computing device.
[0068] As shown, data storage 308 may include a database, text,
spreadsheet, folder, file, or the like, that may be configured to
maintain and store user account identifiers, user profiles, email
addresses, IM addresses, and/or other network addresses, or the
like. Data storage 308 may further include program code, data,
algorithms, and the like, for use by a processor, such as central
processing unit 302 to execute and perform actions. In one
embodiment, at least some of data storage 308 might also be stored
on another component of network device 300, including, but not
limited to computer readable storage device 328, hard disk drive
334, or the like.
[0069] Data storage 308 may further store emoticon pool 310 and/or
emoticon attributes 312. Emoticon pool 310 may be configured
substantially similar to emoticon pool 210 of FIG. 2, as described
above. Emoticon attributes 312 may be configured substantially
similar to emoticon pool 212 of FIG. 2, as described above. In some
embodiments, emoticon pool 310 and/or emoticon attributes 312 may
be optional components within network device 300. For example, the
emoticon pool and/or the emoticon attributes may be hosted on
another network device, such as client device 200 of FIG. 2, which
may be accessible, in one embodiment, by network device 300.
[0070] The mass memory also stores program code and data. One or
more applications 314 are loaded into mass memory and run on
operating system 306. Examples of application programs may include
transcoders, schedulers, calendars, database programs, word
processing programs, Hypertext Transfer Protocol ("HTTP") programs,
customizable user interface programs, IPSec applications,
encryption programs, security programs, SMS message servers, IM
message servers, email servers, account managers, and so forth.
Messaging server 316, web server 318, and dynamic augmentation
selector ("DAS") 320, may also be included as application programs
within applications 314.
[0071] Messaging server 316 may include virtually any computing
component or components configured and arranged to forward messages
from message user agents, and/or other message servers, or to
deliver messages to a local message store, such as data storage
308, or the like. Thus, messaging server 316 may include a message
transfer manager to communicate a message employing any of a
variety of email protocols, including, but not limited, to Simple
Mail Transfer Protocol ("SMTP"), Post Office Protocol ("POP"),
Internet Message Access Protocol ("IMAP"), Network New Transfer
Protocol ("NNTP"), or the like. Messaging server 316 may also be
managed by one or more components of messaging server 316. Thus,
messaging server 316 may also be configured to manage SMS messages,
IM, MMS, IRC, RSS feeds, mIRC, or any of a variety of other message
types. In one embodiment, messaging server 316 may enable users to
initiate and/or otherwise conduct chat sessions, VOIP sessions, or
the like. In some embodiments, messaging server 316 may be
configured to enable a user to access emoticon pool 310 (and/or
emoticon pool 210 of FIG. 2) to select an emoticon and insert the
selected emoticon in a message sent from the user.
[0072] Web server 318 represent any of a variety of services that
are configured to provide content, including messages, over a
network to another computing device. Thus, web server 318 includes,
for example, a web server, an FTP server, a database server, a
content server, or the like. Web server 318 may provide the content
including messages over the network using any of a variety of
formats including, but not limited to WAP, HDML, WML, SGML, HTML,
XML, Compact HTML ("cHTML"), Extensible HTML ("xHTML"), or the
like. Browser 318 may also be configured to enable a user to browse
an emoticon pool, such as emoticon pool 310, and select one or more
emoticons for insertion in a message.
[0073] DAS 320 operates substantially similar to DAS 220 of FIG. 2,
as described above, to dynamically update an emoticon pool
associated with a user based on a current personal construct of the
user. However, in one embodiment, DAS 320 may be configured to
operate over a plurality of communications between one or more
network devices to dynamically update an emoticon pool.
[0074] In some embodiments, DAS 320 may be configured to utilize
emoticon pool 310 and/or an emoticon pool hosted on a client
device, such as emoticon pool 210 of FIG. 2. In other embodiments,
DAS 320 may utilize emoticon attributes 312 and/or emoticon
attributes hosted on client device, such as emoticon pool 212 of
FIG. 2. For example, DAS 320 may, in one non-limiting embodiment,
select one or more emoticons, such as a base emoticon, from
emoticon pool 310. DAS 320 may, in one embodiment, modify an
appearance of the selected emoticons by adding one or more emoticon
attributes from emoticon attributes 312. DAS 320 may then
dynamically update emoticon pool 210 of FIG. 2 with the selected
and/or modified emoticons (i.e. personal construct emoticons). This
example should not be construed as being limiting; rather, DAS 320
may be configured to utilize other combinations of emoticon pools
and emoticon attributes from network device 300 and/or client
device 200 of FIG. 2. In any event, DAS 320 may perform actions
such as those described below in conjunction with FIGS. 5-6.
Illustrative User Targeted Information
[0075] FIG. 4 illustrates one embodiment of user targeted
information usable to generate a current personal construct for a
user. It should be understood that diagram 400 is one illustrative
example showing information that may be utilized as user targeted
information and one skilled in the art would readily understand
that other information related to a user may also be utilized as
user targeted information. As illustrated, user targeted
information 401 may include virtually any information relating to a
user, such as, but not limited to, dynamic user information 402,
static user information 404, implicit user information 406, dynamic
external information 408, and/or the like. User targeted
information 401 may include virtually any combination of
information depicted in FIG. 4; other, non-illustrated, information
that is related to the user; or any combination thereof.
[0076] Dynamic user information 402 may include dynamically
changing information provided by the user and/or about the user.
For example, dynamic user information 402 may include, but is not
limited to, a user's online activities 424, message content 426, a
user's mood 428, or the like. User's online activities 424 may
include any online activities performed by the user, such as, but
not limited to, online purchases, searches, browsing history,
blogging, sharing user generated content, web page click through
behavior, or the like. Message content 426 may include including
text, emoticons, or other content of a message sent from and/or
received by the user. User's mood 428 may be a mood or other status
indicator of the user, such as, for example, a mood of an avatar of
the user, a current social network mood of the user, or the
like.
[0077] Static user information 404 may include information that is
provided by the user and/or about the user that is unlikely to
change over time, although it may. For example, static user
information 404 may include, but is not limited to, a user's
profile 410, a user's preferences 412, or the like. User's profile
410 may include any of a variety of personal information about the
user, which may include, but is not limited to, age, gender, race,
profession, religious affiliation, designated home location (e.g.
home address), birth date, anniversary date, or the like. User's
preferences 412 may include preferences and/or favorites of the
user, such as, but not limited to, favorite websites, favorite
color, favorite sports team, favorite celebrity, favorite store,
favorite brand, group memberships, subscription information, or the
like.
[0078] Implicit user information 406 may include information
related to the user that can be used to infer other information
about the user. Implicit user information 406 may include, but is
not limited to, a user's social network trends 422, a user's
location 420, or the like. User's social network trends 422 may
include information inferred about a user based on friends of the
user. For example, it may be inferred that a user is happy because
social network trends 422 may indicate that a majority of the
user's friends set their mood to happy. User's location 420 may
include a physical location of the user, such as a location of
client device 200 of FIG. 2. For example, it may be inferred that
the user is on a boat because user's location 420 may indicate that
the user is in the middle of a lake.
[0079] Dynamic external information 408 may include information
from an external source that can change over time and is indirectly
related to the user. For example, dynamic external information 408
may include, but is not limited to, weather 414, calendar 416, time
of day 418, or the like. Weather 414 may include a current weather
report at the user's location (such as by using user's location
420) that may be updated daily, hourly, minutely, or at any other
suitable interval. Calendar 416 may include a variety of
information relating to a calendar. For example, calendar 416 may
include holidays, festivals, seasons, celebrations, and other
events associated with a day, month, and/or time of year. Time of
day 418 may include information related to a current time of day,
such as, for example, it is morning, afternoon, evening, lunchtime,
or the like.
[0080] As noted above, FIG. 4 illustrates one embodiment showing
information that may be utilized as user targeted information.
However, the invention is not so limited and other information that
is related to a user may also be utilized as user targeted
information.
General Operation
[0081] The operation of certain aspects of the invention will now
be described with respect to FIGS. 5 and 6. FIG. 5 illustrates a
logical flow diagram generally showing one embodiment of an
overview process for dynamically updating an emoticon pool of a
user based on a current personal construct of the user. In some
embodiments, process 500 of FIG. 5 may be implemented by and/or
executed on a single network device, such as network device 300 of
FIG. 3. In other embodiments, process 500 or portions of process
500 of FIG. 5 may be implemented by and/or executed on a plurality
of network devices, such as network device 300 of FIG. 3.
[0082] Process 500 begins, after a start block, at block 502, where
user targeted information associated with a user is obtained. The
user targeted information may include user targeted information 401
of FIG. 4. User targeted information may be obtained from a
plurality of sources.
[0083] In some embodiments, user targeted information may be
obtained from the user. In one embodiment, user targeted
information may be directly provided by the user and may include,
for example, static user information 404 of FIG. 4, user's mood 428
of FIG. 4, feedback from the user on a previously updated emoticon
pool, or the like. In another embodiment, user targeted information
may be indirectly provided by the user and may include, for
example, dynamic user information 402 of FIG. 4, implicit user
information 406 of FIG. 4, or the like. In other embodiments, user
targeted information may be obtained from an external source, such
as, for example, a website, database, or the like and may include,
for example, dynamic external information 408 of FIG. 4, user's
social network trends 422 of FIG. 4, or the like.
[0084] User targeted information may, in some embodiments, be
obtained based on user preferences, feedback from the user on a
previously updated emoticon pool, or the like. In one embodiment,
the user may be enabled to select which user targeted information
may be obtained and/or what sources to utilize to obtain the user
targeted information.
[0085] In some embodiments, user targeted information may be
obtained in real-time as the user targeted information changes. In
other embodiments, user targeted information may be obtained
randomly or periodically, such as minutely, hourly, or any other
suitable time interval. In one embodiment, if there is no change in
the user targeted information, then process 500 may loop (not
shown) to block 502 to obtain other user targeted information;
otherwise, processing proceeds to block 504.
[0086] At block 504, user targeted information is examined to
determine a current personal construct of the user. In one
embodiment, a subset of the user targeted information may be
examined. In some embodiments, the user targeted information may be
examined automatically, independent of direct user initialization.
In one embodiment, the automatic examination of the user targeted
information may occur randomly, periodically, when the user
targeted information changes, or the like. The examination of the
user targeted information may be based on user preferences,
feedback from the user on a previously updated emoticon pool, or
the like. In some embodiments, user targeted information may be
examined and a user's current personal construct may be determined
in real-time as the user targeted information changes and/or is
obtained. In one embodiment, if there is no change in the current
personal construct, then process 500 may loop (not shown) to block
502 to obtain other user targeted information; otherwise,
processing proceeds to block 506.
[0087] Examination of the user targeted information may, in some
embodiments, include an evaluation of text associated with the user
targeted information, a weighting of the user targeted information,
or the like. In some embodiments, user targeted information text
may be evaluated by, for example, but not limited to, evaluating a
title, subject, header, tag, body, or the like of a web page
visited by the user, message sent from and/or to the user, or the
like. In another embodiment, other content associated with the user
targeted information may be evaluated.
[0088] In other embodiments, user targeted information may be
weighted based on a relevancy and/or currency factor of the user
targeted information. In one embodiment, the currency factor may be
based on when the user targeted information changed, such as, for
example, user targeted information that changed more recently than
other user targeted information may have a currency factor with
higher weight than a currency factor of the other user targeted
information. In another embodiment, the relevancy factor may be
based on a comparison of different user targeted information. For
example, a calendar may indicate that it is December, but the
user's profile may indicate that the user is Jewish. As a result,
user targeted information related to Christmas may have a relevancy
factor with a lower weight than a relevancy factor of user targeted
information related to Hanukkah.
[0089] In any event, process 500 continues continuing at block 506,
which is described in more detail below in conjunction with FIG. 6.
Briefly, however, at block 506, an emoticon pool of the user is
dynamically updated based on the user's current personal construct.
In one embodiment, dynamically updating the emoticon pool of the
user may be performed automatically, independent of direct user
initialization. In some embodiments, one or more user emoticon
pools may be dynamically updated. In one embodiment, each of the
one or more user emoticon pools may be dynamically updated based on
a subset of the user's current personal construct.
[0090] Process 500 then proceeds to block 508, where the
dynamically updated emoticon pool is provided to the user. In some
embodiments, the dynamically updated emoticon pool may be provided
to the user in real-time, randomly, periodically, or the like. In
one embodiment, the emoticon pool may be dynamically updated in
real-time based on real-time changes in the user targeted
information and/or real-time changes in the user's current personal
construct.
[0091] In some embodiments, providing the updated emoticon pool to
the user may include displaying the updated emoticon pool to the
user and/or downloading the updated emoticon pool to a client
device of the user, such as client device 200 of FIG. 2. In one
embodiment, one or more emoticon pools of the user may be
selectively displayed to enable the user to select an emoticon from
at least one of the one or more emoticon pools for use in a
message.
[0092] Continuing to block 510, user feedback is obtained. In some
embodiments, block 510 may be optional and may not be performed.
User feedback may be explicit feedback and/or implicit feedback.
Explicit feedback may include, for example, but not limited to, an
accuracy of the updated emoticon pool, an indication whether the
user liked and/or disliked the updated emoticon pool, or the like.
Implicit feedback may include, in one non-limiting example, an
indication of the emoticons selected and/or not selected by the
user for use in a message.
[0093] In some embodiments, user feedback may be utilized as user
targeted information. In other embodiments, user feedback may be
utilized to determine what user targeted information to obtain
and/or examined. In yet other embodiments, user feedback may be
utilized to select and/or modify an emoticon.
[0094] In any event, process 500 then loops to block 502 to obtain
other user targeted information.
[0095] FIG. 6 illustrates a logical flow diagram generally showing
one embodiment of a process for modifying one or more emoticons. In
some embodiments, process 600 of FIG. 6 may be implemented by
and/or executed on a single network device, such as network device
300 of FIG. 3. In other embodiments, process 600 or portions of
process 600 of FIG. 6 may be implemented by and/or executed on a
plurality of network devices, such as network device 300 of FIG.
3.
[0096] Process 600 begins, after a start block, at block 602, where
an emoticon is selected. In some embodiments, the emoticon may be
selected from a base emoticon pool that includes a plurality of
base emoticons. In other embodiments, the emoticon may be selected
from a user emoticon pool associated with the user that includes a
plurality of emoticons.
[0097] In one embodiment, the emoticon may be selected based on a
user's current personal construct, such as, for example, the
current personal construct determined at block 504 of FIG. 5. In
another embodiment, the emoticon may be selected based on a subset
of the user's current personal construct. In yet another
embodiment, the emoticon may be selected based on user feedback. In
some embodiments, the emoticon may be selected based on a
comparison of the user's current personal construct and one or more
tags associated with the emoticon.
[0098] Continuing next to block 604, where a personal construct
emoticon is generated by modifying the selected emoticon. In some
embodiments, the selected emoticon may not be modified. In other
embodiments, an appearance of the selected emoticon can be
modified, such as, for example, modifying a feature of the selected
emoticon, adding an emoticon attribute to the selected emoticon,
modifying a feature of the emoticon attribute, or any combination
thereof. In some embodiments, an appearance of the selected
emoticon may be modified to mimic an avatar associated with the
user. In one embodiment, an appearance of an emoticon in the
emoticon pool of the user may be modified. In another embodiment,
an appearance of a base emoticon from a base emoticon pool may be
modified.
[0099] In some embodiment, a feature of the selected emoticon may
be modified. In one embodiment, one or more visual aspects of the
selected emoticon may be modified, such as, but not limited to,
size, color, shape, orientation, text, or the like. In another
embodiment, audible aspects of the selected emoticon may be
modified, such as, but not limited to, a volume, duration,
playback, animation, or the like. It should be understood that some
emoticons may not have all of these features or may have additional
features. As such, these features are examples, and other features
or combination of features of the selected emoticon may be
modified.
[0100] In other embodiments, one or more emoticon attributes may be
added to the selected emoticon. In one embodiment, the one or more
emoticon attributes may be selected based on the user's current
personal construct. In another embodiment, each emoticon attribute
may be selected from a subset of the user's current personal
construct. In some embodiments, the emoticon attribute may be
selected based on a comparison of the user's current personal
construct and one or more tags associated with the emoticon
attribute.
[0101] For example, if the user's current personal construct
indicates that it is Christmas and sunny, one emoticon attribute
that may be selected may be a Santa Claus hat because it is
Christmas and another emoticon attribute that may be selected may
be a pair of sunglasses because it is sunny. The resulting personal
construct emoticon may have both the Santa Claus hat and the
sunglasses. However, it should be understood that different subsets
of the user's current personal construct may be utilized
individually or in any combination to select the one or more
emoticon attributes.
[0102] In some embodiments, a feature of the one or more emoticon
attributes may be modified. In some embodiments, modifying the
features of the emoticon attributes may be similar to modifying the
features of the selected emoticon, as discussed above.
[0103] Process 600 next proceeds to block 606. At block 606, an
emoticon pool of the user is updated with the personal construct
emoticon. In one embodiment, the personal construct emoticon may be
augmented to the user's emoticon pool. In another embodiment, the
personal construct emoticon may replace or update an emoticon in
the user's emoticon pool, such as, for example, when the emoticon
utilized to generate the personal construct emoticon is selected at
bock 602 from the user's emoticon pool.
[0104] In some embodiments, an advertiser may bid and/or purchase
emoticons or emoticon attributes to be included in the dynamically
updated emoticon pool. In one embodiment, the advertiser may be
automatically billed if the purchased emoticon and/or emoticon
attribute is included in a dynamically updated emoticon pool. In
another embodiment, the advertiser may be automatically billed if a
user selects the purchased emoticon and/or an emoticon with a
purchased emoticon attribute for use in a message. For example,
Brand A may bid on a hat emoticon attribute that includes Brand A's
logo. Brand A may be billed one value if the hat is added to a
personal construct emoticon that is augmented to a user's emoticon
pool, and/or billed another value if the user selects the personal
construct emoticon that includes the hat with Brand A's logo.
[0105] In any event, process 600 proceeds to decision block 608. At
decision block 608, a determination is made whether or not to
select another emoticon. In one embodiment, another emoticon may be
selected based on a user preference indicating a total number of
dynamically updated emoticons in the emoticon pool, such as, in one
non-limiting example, between 10 and 50 emoticons. In another
embodiment, another emoticon may be selected based on changes to
the user's current personal construct. For example, an increase in
a number of changes in the user's current personal construct can
increase a number of emoticons selected to dynamically update the
user's emoticon pool. In yet another embodiment, another emoticon
may be selected based on a size of the user's emoticon pool. If
another emoticon is to be selected, then processing loops to block
602; otherwise, processing returns to a calling process to perform
other actions.
[0106] It will be understood that each block of the flowchart
illustration, and combinations of blocks in the flowchart
illustration, can be implemented by computer program instructions.
These program instructions may be provided to a processor to
produce a machine, such that the instructions, which execute on the
processor, create means for implementing the actions specified in
the flowchart block or blocks. The computer program instructions
may be executed by a processor to cause a series of operational
steps to be performed by the processor to produce a
computer-implemented process such that the instructions, which
execute on the processor to provide steps for implementing the
actions specified in the flowchart block or blocks. The computer
program instructions may also cause at least some of the
operational steps shown in the blocks of the flowchart to be
performed in parallel. Moreover, some of the steps may also be
performed across more than one processor, such as might arise in a
multi-processor computer system. In addition, one or more blocks or
combinations of blocks in the flowchart illustration may also be
performed concurrently with other blocks or combinations of blocks,
or even in a different sequence than illustrated without departing
from the scope or spirit of the invention.
[0107] Accordingly, blocks of the flowchart illustration support
combinations of means for performing the specified actions,
combinations of steps for performing the specified actions and
program instruction means for performing the specified actions. It
will also be understood that each block of the flowchart
illustration, and combinations of blocks in the flowchart
illustration, can be implemented by special purpose hardware-based
systems, which perform the specified actions or steps, or
combinations of special purpose hardware and computer
instructions.
Use Case Illustrations
[0108] FIGS. 7-9 illustrate one non-limiting and non-exhaustive
example of an embodiment that depicts an updated emoticon pool
(shown in FIG. 9) by adding emoticon attributes (shown in FIG. 8)
to base emoticons (shown in FIG. 7). Although FIGS. 7-9 illustrate
one embodiment of updating an emoticon pool of a user, the
invention is not so limited. Rather, these examples are intended to
illustrate one approach to updating an emoticon pool, and should
not be considered as exhaustive or limiting. Moreover, as described
above, other embodiments may be employed to update the emoticon
pool of the user, such as, for example, by selecting a subset of a
base emoticon pool. Additionally, FIGS. 7-9 primarily illustrate
smiley emoticons, which is not to be construed as limiting or
exhaustive; rather, other emoticons known to those skilled in the
art may also be employed.
[0109] FIG. 7 shows one non-exhaustive and non-limiting example of
a base emoticon pool. Base emoticon pool 700 may be a subset of
emoticon pool 210 of FIG. 2 and/or emoticon pool 310 of FIG. 3.
Base emoticon pool 700, as illustrated, includes base emoticons
701-706, where: base emoticon 701 is a happy emoticon; base
emoticon 702 is a sad emoticon; base emoticon 703 is a spiky hair
emoticon; base emoticon 704 is an excited emoticon; base emoticon
705 is a sleeping emoticon; and base emoticon 705 is a
flabbergasted emoticon. As noted above, it should be understood
that base emoticons 701-706 are examples, and are not intended to
be an exhaustive list of base emoticons; rather, other types,
shapes, sizes, numbers, or the like of base emoticons may be
included in base emoticon pool 700.
[0110] FIG. 8 shows one non-exhaustive and non-limiting example of
an emoticon attribute pool. Emoticon attribute pool 800 may be an
embodiment of emoticon attributes 212 of FIG. 2 and/or emoticon
attributes 312 of FIG. 3. As illustrated, emoticon attribute pool
800 includes emoticon attributes 801-804, where: emoticon attribute
801 depicts a Santa Claus hat; emoticon attribute 802 depicts an
umbrella hat; emoticon attribute 803 depicts a pair of sunglasses;
and emoticon attribute 804 depicts a banner. As noted above, it
should be understood that emoticon attributes 801-804 are examples,
and are not intended to be an exhaustive list of emoticon
attributes; rather, other types, shapes, sizes, numbers, or the
like of emoticon attributes may be included in emoticon attribute
pool 800.
[0111] In one embodiment, each of emoticon attributes 801-804 may
be associated with a particular current personal construct. For
example, emoticon attribute 801 may be utilized if the user's
current personal construct indicates that it is Christmas,
Christmas time, the user is at a Christmas party, the user recently
purchased Christmas gifts, or the like. Emoticon attribute 802 may
be utilized if the user's current personal construct indicates that
it is raining at the user's physical location, the user is in a
silly mood, or the like. Emoticon attribute 803 may be utilized if
the user's current personal construct indicates that it is sunny
and the user's physical location, the user is at the beach, the
user recently purchased a new pair of sunglasses, or the like.
Emoticon attribute 804 may be utilized if the user's current
personal construct indicates that the user's favorite sports team
is currently playing, the user recently visited a homepage of the
user's favorite sports team, or the like. Again, emoticon
attributes 801-804 are non-exhaustive and non-limiting examples.
Similarly, the example current personal construct associated with
emoticon attributes 801-804 are also non-exhaustive and
non-limiting examples, and other current personal constructs may be
utilized.
[0112] FIG. 9 shows one non-exhaustive and non-limiting example of
a dynamically updated emoticon pool. Dynamically updated emoticon
pool 900 may include personal construct emoticons 901-908.
Dynamically updated emoticon pool 900 may be generated by modifying
an appearance of one or more base emoticons (e.g. base emoticons
701-706 of FIG. 7) by adding one or more emoticon attributes (e.g.
emoticon attributes 801-804 of FIG. 8) to the one or more base
emoticons. In this example, a user's current personal construct
(e.g. as determined at block 504 of FIG. 5) may indicates that it
is Christmas, the user recently bought a new pair of sunglasses, it
is raining at the user's physical location, the user's favorite
sports team is currently playing, and the user's mood is happy.
However, it should be understood that other information may be
indicated by the current personal construct, which, in some
embodiments, may depend on the user targeted information utilized
to determine the current personal construct, as described in more
detail above.
[0113] Personal construct emoticon 901 may be generated based on
the user's current personal construct that indicates that it is
Christmas. Personal construct emoticon 901 may be generated by
selecting base emoticon 701 of FIG. 7 (e.g. as described at block
602 of FIG. 6) and adding emoticon attribute 801 of FIG. 8 to base
emoticon 701 (e.g. as described at block 604 of FIG. 6).
[0114] Personal construct emoticon 902 may be generated based on
the user's current personal construct that indicates that it is
Christmas, the user bought a new pair of sunglasses, and the user's
mood is happy. Personal construct emoticon 902 may be generated by
selecting base emoticon 704 of FIG. 7 and adding emoticon
attributes 801 and 803 of FIG. 8 to base emoticon 704.
[0115] Personal construct emoticon 903 may be generated based on
the user's current personal construct that indicates that it is
raining at the user's physical location and the user's mood is
happy. Personal construct emoticon 903 may be generated by
selecting base emoticon 701 of FIG. 7 and adding emoticon attribute
802 of FIG. 8 to base emoticon 701.
[0116] Personal construct emoticon 904 may be generated based on
the user's current personal construct that indicates that it is
raining at the user's physical location. Personal construct
emoticon 904 may be generated by selecting base emoticon 702 of
FIG. 7 and adding emoticon attribute 802 of FIG. 8 to base emoticon
702.
[0117] Personal construct emoticon 905 may be generated based on
the user's current personal construct that indicates that the user
bought a new pair of sunglasses. Personal construct emoticon 905
may be generated by selecting base emoticon 701 of FIG. 7 and
adding emoticon attribute 803 of FIG. 8 to base emoticon 701.
[0118] Personal construct emoticon 906 may be generated based on
the user's current personal construct that indicates that the
user's mood is happy. Personal construct emoticon 906 may be
generated by selecting base emoticon 704 of FIG. 7 and modifying a
feature of base emoticon 704, such as increasing a size of base
emoticon 704.
[0119] Personal construct emoticon 907 may be generated based on
the user's current personal construct that indicates that it is
raining at the user's physical location on Christmas. Personal
construct emoticon 907 may be generated by selecting base emoticon
706 of FIG. 7, modifying a feature of base emoticon 704, such as
decreasing a size of base emoticon 704, and adding emoticon
attribute 802 of FIG. 8 to base emoticon.
[0120] Personal construct emoticon 908 may be generated based on
the user's current personal construct that indicates that the
user's favorite sports team is playing. Personal construct emoticon
908 may be generated by selecting base emoticon 701 of FIG. 7 and
adding emoticon attribute 804 of FIG. 8 to base emoticon 701. In
some embodiments, the text "GO TEAM" may be replaced with virtually
any other text, such as the name of a user's favorite sports team,
a brand name, company slogan, happy birthday text, or any other
text suitable for the user's current personal construct.
[0121] The above specification, examples, and data provide a
complete description of the manufacture and use of the composition
of the invention. Since many embodiments of the invention can be
made without departing from the spirit and scope of the invention,
the invention resides in the claims hereinafter appended.
* * * * *