This description relates to exploiting the context of text messages for creating enhancements for the same or other messages. Along with determining the particular contexts of a message, content associated with the context can be identified and used in message creation.
Over the past years, text messaging has continued to evolve towards becoming the preferred manner of communicating, in particular among the younger segment of our society. Similar to younger users, older individuals are becoming more comfortable with using text messaging services and capable to addressing the ever increasing rate of text message delivery. With this ever increasing growth in the usage of this technology, more and more potential consumers are using text messaging services in professional aspects of their lives along with their personal lives.
The systems and techniques described herein can aid in efficiently creating messages such as text messages. By gleaming the context of a message (or messages) associated with a user, group, etc., additional content such as polling questions, surveys, etc. can be developed and integrated into messages without substantial user input. Along with user input (e.g., entered text), various other information sources may be employed to integrating additional content. Historical data, feedback from other users, etc. may be used along with predefined templates, etc. Information associated with services, products, brands, etc. may also be identified and used to supplement a message and further provide helpful information to message recipients while reducing the needed time and efforts from the message creator.
In one aspect, a computing device implemented method includes receiving data representing textual information input into a user device. The method also includes analyzing the data to determine the contextual meaning of the textual information, and producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information.
Implementations may include one or more of the following features. Analyzing the data to determine the contextual meaning of the textual information may include determining one or more input requesting queries for including in the one or more messages. The input requesting queries may include one or more poll questions. The produced one or more messages may present the poll questions in a nested manner. The method may further include receiving feedback information from the one or more other user devices in response to the input requesting queries. Analyzing the data to determine the contextual meaning of the textual information may include using historical data associated with producing previous messages. Analyzing the data to determine the contextual meaning of the textual information may include performing a natural language processing. Producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information may include identifying one or more graphics for including in the one or more messages. Producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information may include identifying links for including in the one or more messages. Analyzing the data to determine the contextual meaning of the textual information may include identifying information that complements the contextual meaning of the textual information. Complementary information may include event related information. Complementary information includes graphics associated with the contextual meaning of the textual information.
In another aspect, a system includes a computing device that includes a memory configured to store instructions. The system also includes a processor to execute the instructions to perform operations that include receiving data representing textual information input into a user device. Operations also include analyzing the data to determine the contextual meaning of the textual information, and producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information.
Implementations may include one or more of the following features. Analyzing the data to determine the contextual meaning of the textual information may include determining one or more input requesting queries for including in the one or more messages. The input requesting queries may include one or more poll questions. The produced one or more messages may present the poll questions in a nested manner. Operations may further include receiving feedback information from the one or more other user devices in response to the input requesting queries. Analyzing the data to determine the contextual meaning of the textual information may include using historical data associated with producing previous messages. Analyzing the data to determine the contextual meaning of the textual information may include performing a natural language processing. Producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information may include identifying one or more graphics for including in the one or more messages. Producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information may include identifying links for including in the one or more messages. Analyzing the data to determine the contextual meaning of the textual information may include identifying information that complements the contextual meaning of the textual information. Complementary information may include event related information. Complementary information includes graphics associated with the contextual meaning of the textual information.
In another aspect, one or more computer readable media storing instructions that are executable by a processing device, and upon such execution cause the processing device to perform operations that include receiving data representing textual information input into a user device. Operations also include analyzing the data to determine the contextual meaning of the textual information, and producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information.
Implementations may include one or more of the following features. Analyzing the data to determine the contextual meaning of the textual information may include determining one or more input requesting queries for including in the one or more messages. The input requesting queries may include one or more poll questions. The produced one or more messages may present the poll questions in a nested manner. Operations may further include receiving feedback information from the one or more other user devices in response to the input requesting queries. Analyzing the data to determine the contextual meaning of the textual information may include using historical data associated with producing previous messages. Analyzing the data to determine the contextual meaning of the textual information may include performing a natural language processing. Producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information may include identifying one or more graphics for including in the one or more messages. Producing one or more messages to present information at one or more other user devices using the contextual meaning of the textual information may include identifying links for including in the one or more messages. Analyzing the data to determine the contextual meaning of the textual information may include identifying information that complements the contextual meaning of the textual information. Complementary information may include event related information. Complementary information includes graphics associated with the contextual meaning of the textual information.
These and other aspects, features, and various combinations may be expressed as methods, apparatus, systems, means for performing functions, program products, etc.
Other features and advantages will be apparent from the description and the claims.
Referring to
By incorporating additional content into messages, additional information may be provided to the users as they exchange messages (for example, graphical information can be embedded into a message to convey information related to or unrelated to the message content). Interactive information in the form of pre-defined questions, polls, etc. may be added to efficiently collect information from users. Such graphical, interactive, etc. additional material may originate from a variety of sources, for example, graphical features associated with a brand of an entity (e.g., commercial company) may be incorporated into the messaging. Along with producing more eye-catching messages, such additional material may also assist the owner of the brand. By recognizing the stylistic features, the brand is exposed to the users as they focus upon the messages being exchanged. Interactive information such as polls, surveys, etc. can provide information (e.g., user responses) that may be useful for a number of entities. Along with assisting with the creation of messages (e.g., identifying a meeting location for a group of individuals), brand related information (e.g., product feedback) may be collected and provided to a brand owner. Further, by allowing the use of a brand style to propagate to others (e.g., a recipient of a message infused with the style of a brand can be allowed to send messages that use the brand style), text message users in effect become an advertising source for the brand.
Additional material may also be selected based upon other information sources. For example, information related to individual users such as historical information (e.g., user preferences, character traits, previous choices and selections, etc.), personal information (e.g., calendars entries, current location, etc.), etc. may be used for identify content for presentation. Provided access to an individual's calendar (e.g., electronically stored on the user's smartphone), information can be attained to efficiently assist with event planning or other things without significantly engaging the user (e.g., calendars can be analyzed to determine availability).
In this illustrated example, another interface 106 is presented on the smartphone 100 that allows text messages to include stylistic features of commercial brands and other sources. In this example, a series of text messages 108-112 are received by the smartphone 100. Two of the messages 110, 112 include just text entered by the sender while another message 108 uses an icon to represent an emotion (e.g., that the user is tired) and is absent any text (often referred to as “emoticons”). The user of the device 100 first sends a reply message 114 that similarly uses an icon to convey an emotion. The sender that initiated the exchange of text messages then sends a message 116 that includes textual content that employs the stylistic brand features associated with the Reese's Peanut Butter Cup of the Hershey Company (of Hershey Pa.). Through the use of the brand's style, multiple messages may be conveyed by the single text message 116. For example, along with the message provided by the textual content (e.g., asking if the other user is hungry), the message 116 can also be suggesting a food of interest. By using this brand style, the message 116 can be considered as advertising the brand (e.g., Reese's Peanut Butter Cups) based on instructions from the message creator (e.g., the brand style is user-selected for message creation). Further, embedded within the message, the brand is more likely to be noticed by the users compared to brand information (or advertisement material) being presented outside of the message listing (e.g., banner advertisements located on the periphery of the listing).
These stylistic features can provide various types of information to a viewer; for example pictures, video, etc. types of stylistic features can provide style information associated with the imagery of a brand. One or more particular fonts associated with the brand can include a stylistic feature that provides visual style information of the brand to a viewer. A jingle, audible slogan, etc., or other similar stylistic feature (provided by one or more files, etc.) can provide audible stylistic information to a viewer. In this example, style features are associated with a particular product of a brand owner, however other sources may provide such stylistic features. For example, various types of entities associated with products, services, etc. may provide a brand style. Stylistic features may also be developed by individuals not associated with a product or service and may simply develop as stylistic effects on their own. By allowing text messaging users to somewhat control the distribution of brand information, brand knowledge may be distributed among large numbers of text message users (e.g., by being circulated rapidly over the Internet) and potentially advertise the brand in a viral manner compared to conventional advertisement campaigns.
Along with the brand style, other information may be conveyed through the use of such styles. For example, locations associated with brands may be subliminally suggested by the appearance of the brand style. With reference to the illustrated example, the sender and/or recipient of the text message 116 may associate a particular location (e.g., candy store, ice cream shop, etc.) with the presented brand. Along with reducing the effects of banner-blindness, smaller displays (e.g., of mobile devices) may be better suited for presenting the brand styles within messages compared to other locations of the display (which may not be easily readable by the user of a mobile device). With user interaction needed (e.g., to select a brand style for embedding), users are given an option whether to “opt in” or “opt out” of allowing such style information to take part in text messaging conversations. Various types of functionality may also be provided to complement the text messaging capability. For example, information sources may be exploited to supplement the content of a text message. Such sources may be associated with individuals involved the text message exchange (e.g., information related to the text message sender, one or more message recipients, etc.), sources independent of the message exchange (e.g., e-commerce websites, weather data sources, etc.), etc. Additional functionality may include processing user-supplied information such as the text messages; for example, information may be extracted from an entered text message and processed to identify the context of the message (e.g., the topic of the message). By providing context, the extracted information can provide the meaning of a portion of the message, the entire message, etc. Once identified, additional processing may be executed to assist the individuals involved in the message exchange. For example, further information related to the context may be collected and presented to one or more of the individuals. Such information can be collected from sources completely separate from the individuals (e.g., the current weather at a location identified in a text message), sources associated with the individuals (e.g., calendar entries of each individual to identify potential conflicts with a meeting be scheduled through the text message exchange, etc.), etc. By using the content of the messages, additional information can be attained and presented to text message users without substantial input from them, thereby allowing the users to focus on exchanging text message and not pausing to collect related information (e.g., weather conditions, potential calendar conflicts, etc.). Along with improving efficiency of exchanging messages between two or more individuals, the automated technique of providing related information frees users from having to identify and execute the appropriate applications (e.g., a weather information application), access appropriate websites (e.g., an e-commerce company's webpage), etc.
Referring to
Along with creating text messages for delivery and presenting received text messages, the text messenger 200 may provide other functionality for using styles, such as brand styles, with text messaging. For example, multiple styles may be stored (in memory) and managed by the text messenger 200. The use of interactive information (e.g., queries, polls, etc.) in messages may also be managed by the text messenger 200. From a received message (that includes style information), other messages may be created that use the style information (e.g., style features may be stored and later retrieved to create a new message that employs some or all of the features). Similarly, information received (e.g., query or poll responses, feedback etc.) may also be used creating new messages (e.g., a lunch meeting time may be finalized). Along with allowing styles to be created, edited, deleted, stored, etc., the text messenger 200 may request style information, style features (e.g., fonts, graphics) etc., as needed. For example, style information, style features, interactive information (e.g., queries, polls), etc. may be requested from external sources and stored on the user device (and retrieved as needed to prepare a message). One or more techniques and methodologies may be implemented for attaining such information. For example, font information may be provided in an incremental manner (e.g., as font characters are needed) from one or more locations (e.g., remotely located servers) using transfer techniques as described in “Font Data Streaming”, U.S. Pat. No. 9,319,444 issued Apr. 29, 2016, the entire contents of which are hereby incorporated by reference.
Along with the ability to download font information along with other types of information (e.g., style information, interactive information), the smartphone 100 may also execute operations to provide style information to other devices, locations, etc. For example, upon creating style information that may be embedded into a text message, data may be uploaded to other locations for various activities such as storing the style information, allowing it to be used by other devices for presenting stylized messages, etc. The text messenger 200 may also interact with one or more applications being executed by the smartphone. Through such interactions, the text messenger can exchange data with the application (e.g., for using the data with a stylized text message). The execution of an application (e.g., application 204) can also be initiated through operations of the text messenger 200. In some arrangements, the text messenger 200 may produce a stylized message that includes objects (e.g., radio buttons, links, etc.) that allow viewers of the message to initiate the execution of an application located on the viewing device (e.g., a smartphone) or other device (e.g., a remotely located server in communication with a viewing device).
In some arrangements the application 204 may operate to integrate the operations of the text messenger 200 with other functionality. For example, assisting user decision-making along with providing text messaging capabilities. Polling, surveying, and other types of techniques for collecting user decisions may be employed by the application 204. In one example, functionality of the application 204 can assist with event planning (e.g., selecting attendees, identifying event location, time, event length, etc.). Polling may also be executed by the application 204 to assist with event planning; for example, information may be solicited from a group of individuals for event planning (e.g., select event type, location, availability, etc.) or another type of situation in which polling a group would be helpful. To provide such capability, application 204 may take one or more forms on the smartphone 100 or other type of computing device. The application 204 may be an “app”—that can be considered a self-contained program, piece of software, etc. designed to provide a particular purpose (e.g., for a mobile device). The application 204 may also be provided in a form conducive for network environments such as a program that executes over a network (e.g., the Internet), e.g., in a repetitive and automatic manner, triggered for execution, etc. and which can be considered a “bot” program. In some arrangements, the application 204 operates in concert with one or more other applications (e.g., Internet-based applications) such as text messaging environments like Facebook Messenger, Kik Messenger, etc.
Referring to
Referring briefly to
Returning to
To convey a text message that includes information (e.g., style information, polling information, etc.) to a recipient device (or multiple devices), one or more techniques may be employed. For example, the text message 302 may include data (e.g., links) for accessing appropriate style information being stored at the publisher 308 and potentially at other locations (e.g., links included in the message provide access to fonts stored at the font service provider 312). Upon receiving the text message 302, operations can be executed by the recipient device to request needed style information (e.g., immutable style information, style features, etc. associated with a brand). For example, by using a link included in the received message, one or more files containing style information 320 can be sent to the recipient device (e.g., the smartphone 304) for presenting the contents of the text message 302. Other information such as polling information may be provided with a link included in a message. Similarly, font information may be provided in one or more files 322 to the recipient device (e.g., as initiated by links included in the text message). Correspondingly, polling data and other types of information may be exchanged among the device, entities, etc. using one or more files.
To appropriately control the distribution of style information, a style manager 324 is executed by a server 326 that is located at the publisher 308 (although the functionality of the style manager may be distributed across multiple locations in some arrangements). The style manager 324 may manage the style information (e.g., immutable style information, style features, etc.) for multiple brands. In managing the information, the style manager 324 may also apply conditions for allowing the information to be accessed. For example, conditions may include rules that grant access for a period of time, based on a subscription being valid, based upon one or more particular products or services being purchased, etc. As illustrated in the figure, style information 328 (which can be included in the file 320) is stored at the publisher 308 and is accessible by the server 326. Other architectures may be implemented for storing style information; for example, all of the information, portions of it, etc. can be stored at locations external to the publisher 308 (e.g., in a cloud-based architecture accessible by the publisher 308). In some instances, additional content may be provided with the style information (e.g., based upon the text message received at the recipient device) such as imagery, video, audio, etc. As illustrated in the figure, such content 330 may be stored at the publisher 308, however, the content may be stored at one or more other locations (e.g., in a distributed manner), such as multiple locations that include the publisher 308. In some arrangements, content delivery to a user device (or other type of recipient) may initiate the sending of style information (e.g., immutable style information, style features, etc.).
As illustrated in
In a typical text messaging interaction, a text message is created by one device (e.g., the smartphone 100) and is sent via a file (e.g., text message 302) to a recipient device (e.g., the smartphone 304) over one or more networks (e.g., the Internet 306, a wireless network, SMS systems, etc.). To create a message, style information which has been previously requested from and provided by the publisher 308 is selected for use by the operator of the device. In a similar manner, information (e.g., interactive information) provided by the application 204 (e.g., weather information, polling information, etc.) can be aggregated into the message. One or more other sources may provide interactive information (e.g., queries, polls, etc.) for inclusion in messages. Upon receipt of the message, operations are executed by the recipient device to prepare and present the stylized message; for example, style information is requested and received from the publisher 308 and corresponding font information included in the style information is requested and received from the font service provider 312. Additional information to be aggregated into the message may be provided by the font service provider 312, one or more other sources, etc. For example, information associated with users (e.g., user preference data) may be attain from the storage device 318 (of the font service provider 312) and/or other sources and used to identify polling options based on the preferences (e.g., a user's top four favorite lunch locations). In some instances the style information (or other type of information) may already be present at the recipient device, thereby removing the need to request the information from the publisher 308, the font service provider, or other entity. In some arrangements, based upon received information (e.g., style information etc.), operations may be executed at the device to determine (e.g., estimate, speculate, etc.) other font information that may be needed in the near future. For example, an agent executed at the recipient device may monitor the data present at the device for presenting particular characters of a font. Based upon the characters present, the agent may determine which characters would soon likely be needed. For example, rules may be checked (e.g., is the most used character, “e”, present for this font?) to identify one or more characters to request from the font service provider 312. Such subsetting techniques, incremental subsetting techniques, etc. are described in “Network Based Font Management for Imaging Devices”, U.S. patent application Ser. No. 13/692,593 filed on Dec. 3, 2012, the entire contents of which are hereby incorporated by reference. Similarly, agent actions may be used for requesting other types of style information, for example, based upon the types of styles previously selected by a user (e.g., a style associated with particular brands) the agent may identify similar styles and accordingly send a request (or requests) to the publisher 308. Upon receiving the text message file 302, the recipient device can interrogate the file and appropriately request style information as needed (e.g., one or more font characters from the font service provider 312, style information from the publisher 308, etc.). In some instances subsets of information (e.g., font characters) are requested in an incremental manner to complement previously received data (and reduce redundant transmissions).
Software agents (e.g., as illustrated in
In some arrangements, predictive operations may be executed at one or more locations to identify information (e.g., style information, user preference data, etc.) in advance of need. For example, upon a series of messages being exchanged between two or more user devices, predictive operations (e.g., executed by the publisher 308, the font service provider 312, etc.) can identify future needs such as graphics, fonts, font characters, font subsets, etc. Such predictive operations may utilize information (e.g., style information, fonts, etc.) present at one or more of the devices. For example the presence of fonts, font characters, etc. may be monitored at each user device to predict style information that may be soon needed (e.g., font characters to complete a font set). In some instances, predictive operations may be executed using the message content exchanged (e.g., identify font characters already present at a user device from messages and provide characters not yet used in a message, incrementally send font characters based on previously used characters, etc.), or predictions may be made independent of message content (e.g., send font characters that have a historically high frequency of use, etc.). Similar methodologies may also be utilized.
In some arrangements, the information sources (e.g., style information sources) may also execute operations to determine the data that should be provided to a user device (e.g., smartphone 100). For example, the style manager 324 executed at the publisher 308 may monitor brand styles present and accordingly send style information. The font service provider 312 may perform similar operations by monitoring the fonts, font characters, etc., present at a user device (e.g., the smartphone 100). For example, the font service manager 316 may determine that a certain percentage of font characters (e.g., 90%) are present at a user device and initiate the transmission of the remaining 10% to complete the font set (without any request being sent from the device). The font service provider 312, a software agent (being executed at a user device), one or more application (also executed at the user device), etc. operating alone or in concert may determine the fonts, font characters, etc. being supported by the user device and appropriately initiate transmission of lacking fonts, font characters, etc. if one or more thresholds are broached.
While information (e.g., style information, user preferences, etc.) may be provided to user devices in order to properly present text messages, such information may also be provided for other types of content presenting applications. For example, content 330 stored at the publisher 308 may be sent (e.g., broadcast) to one or more devices and include style information as needed for presenting the content. For instance, content may be sent in a sequence of data packets (e.g., a data stream) to present content, such as video, audio, graphics, etc., to an viewer (of a user device). Information (e.g., style information) may be incorporated into the sequence of content packets to enhance the content presentation. Such information, style information, may also be selected for downloading from the publisher 308, the font service provider 312, etc. For example, prior to preparing a text message, a user may interact with an interface of the text messenger 200 (or another application) in order to select one or more styles (associated with one or multiple brands) and initiate the downloading of the corresponding style information to the user device (e.g., smartphone 100). Such interactions may initiate a request being sent to the font service provider 312 for appropriately downloading one or more fonts as determined from the user selections. Similar to using an interface provided by the text messenger 200 to select a style for downloading, other vehicles may be utilized for style selection. For example, upon receiving and presenting a stylized message on a recipient device (e.g., smartphone 304), a user can interact with the message to initiate the downloading of the style information. For the situation in which the style information is downloaded for presenting the message (as initiated by a link included in the stylized text message), user interaction with the message may result in the style information being installed (e.g., stored) on the device for local operations (e.g., creating a message that is infused in this style).
By downloading different styles and related information, a style library may be initiated, grown and shared with others. For example, by sending a text message that employs a particular style (e.g., associated with product or service brand), the recipient may be encouraged to request the style for themselves and propagate the style to still more users (e.g., by sending individual messages, broadcasting messages to many users, etc.). Along with collecting different style types through use, operations of the text messenger 200, the publisher 308, etc. may assist with developing such style libraries. For example, the text messenger 200, an agent, etc. executed by the smartphone may monitor the locally residing styles and may recommend additional styles that may be downloaded from the publisher 308 or from other sources. Recommendations may also be based upon other information such as characteristics, demographics, geographic location, etc. of the user (e.g., based upon one or more user profiles stored at the device, publisher 308, etc.). Along with assisting the requesting of styles, the text messenger 200 may also perform library functions such as deleting, moving, manipulating style information, stylistic features, etc. locally stored at the device. As such, libraries of immutable style information, style features, etc. may be developed and used to access such brand-related information for use in text messages. Such functionality may also be utilized for architectures in which the style information is stored by using one or more remotely located computing devices (e.g., servers) such as in a cloud computing system.
Along with providing style information to user devices and other types of computing devices, the publisher 308 interacts with style owners (and/or their agents) to collect information representative of the style (e.g., graphics, video, audio, color templates, etc.). Additionally, the brand owner 310 may provide other information to the publisher 308 that is associated with the use of this style information. For example, conditions can be provided to control user access to style information (e.g., immutable style information, style features, etc.). For example, one or more restrictions may control access based upon factors such as user characteristics (e.g., age, user profile information, etc.), periods of time (e.g., an access period), geography (e.g., restrict use to particular regions), one or more business rules (e.g., check for a valid and active subscription, etc.), device capabilities (e.g., user device model, display size and resolution, etc.). Conditions may also include temporal aspects; for example, users may be granted access to style information associated with a product that is marketed over a particular time period (e.g., the run up period until a motion picture is released, the period the motion picture is in theaters, the season of a television series, etc.). Similar to restrictions, incentives may be used.
One or more techniques may be utilized for interacting with style owners (and/or their agents) for exchanging such information with publishers. For example, various types of editors, interfaces, wizards, software suites etc. may be utilized to assist with providing, selecting, etc. graphics, such as colors, imagery, video, audio, fonts and other types of stylistic features. Typically the style owners interact primarily with the publishers, however, in some arrangements the information may be exchanged with other entities (e.g., the font service provider 312) for preparing style information that may be accessible by end users. Along with providing information (e.g., selecting graphics and fonts), the style owners may also receive information from the environment 300. For example, as style information is employed in text messages, feedback data may be provided to the style owners for monitoring use and further analysis (e.g., determine if the brand is gaining traction in a marketplace, with a particular type of user, etc.). Such feedback (e.g., text message sender identification, recipient identification, etc.) may first be received by the publisher 308, font service provider 312, etc. and then forwarded to the style owner for potentially processing prior to delivery. In other arrangements, feedback data may be directly received by the style owners from end users (e.g., provided from smartphone 100 and 304). For example, agents being executed by user devices may collect and provide use data to the style owners. Operations associated with delivering and presenting text messages may initiate the sending of feedback information to the style owner. For example, when a recipient user device (e.g., smartphone 304) requests information from the publisher 308 and/or the font service provider 312, feedback information (e.g., an indication that the style is being used) may be provided to the style owner (or an agent of the style owner). Upon receiving this information, further analysis may be executed, for example; adjustments to style information may be initiated based upon user feedback. In some instances such feedback may assist with finalizing selections of style features. For example, different types of styles may be provided to a variety of users and based upon their feedback, particular feature variants may be selected for branding use by the style owner. Feedback may also assist with distributing style information; for example, based upon the feedback provided to the publisher 308 and/or the style owner 310, adjustments (e.g., restrictions) may be applied to the distribution of the style information (e.g., targeting particular user types for allowing access to the style information, identifying particular geographical regions, etc.).
Along with interacting with style owners (and potentially their agents), publishers, such as publisher 308, may use one or more techniques for providing style information to the user devices in need, that have requested the information, etc. For example, upon receiving a text message, the recipient user device (smartphone 304) may interact with the publisher (e.g., via a link in the text message) to request and retrieve needed information. Similarly, the text message may include information for the recipient user device to interact with the font service provider 312 (e.g., for retrieving one or more needed fonts, font characters, character subsets, etc., for presenting the content of the text message). The publisher 308 can also manage the resident style information 328 (e.g., that is locally stored). For example, as the style owner provides updated data (e.g., different graphics, use time periods, restrictive conditions, etc.), the style information 328 stored at the publisher 308 can be correspondingly updated (e.g., appended, added to, deleted, etc.) by the style manager 324. Various events may trigger updating; for example, feedback information regarding a brand, style information, style features, etc. may be received (e.g., by a brand/style owner) that contributes to having a brand updated (e.g., update/create new style information, style features, etc. associated with the brand). The feedback may be provided by one or more entities, for example, end users (via their devices), publishers, and other potential information sources. Such information may also be provided to other entities internal to the environment (e.g., the font service provider 312) or external to the environment. The publisher 308 may also manage data associated with users; for example, subscriptions for being allowed access to the stored style information may be managed (e.g., checked for valid subscriptions, request subscriptions renewals, etc.).
Interactions with the publisher 308 may also include exchanging data with the font service provider 312. For example, font information stored at the font service provider 312 may be updated as new materials (e.g., adjustments to font characters) become available (e.g., from font developers, etc.). However, information may also be sent to the font service provider (e.g., at a style owner's request) to adjust a font. In some instances, the update request may be sent from the publisher to the font service provider upon indication that style information is being used (e.g., a request from a user device is received at the publisher for the corresponding style information). Such update requests to the font service provider 312 can be initiated by the style manager 324, for communicating with the font service manager 316, both of which can be implemented in software, hardware, or a combination of software and hardware. Similar to the publisher and/or style owner, the font service provider may also receive feedback information based upon the exchanging of stylized text messages. For example, font characters and font character subsetting needs may be determined from information provided to the font service provider 312. Based upon the received information, the font service provider 312 can determine and provide the needed font characters, character subsets, etc. to a user device. Feedback information may be provided to the font service provider 312 from one or more entities; for example, the publisher 308, the style owner (or agent of a style owner) 310, individual user devices, etc. may provide feedback individually or in one or more combinations. Font usage information can be of particular interest to the font service provider 312. Along with determining which fonts are used frequently, less frequently used fonts can be identified; usage trends and estimates can be calculated, etc. Such information can be useful in decisions about allowing access to fonts (e.g., setting subscription rates, etc.). In some arrangements, fonts can reside at the publisher 308 (rather than at the font service provider 312) and correspondingly font requests from user devices can be directed to the publisher. To attain usage information, feedback from the publisher 308 to the font service provider 312 would be needed. Such feedback regarding font usage (e.g., request for individual fonts, etc.) can assist the font service provider 312 in making determinations (e.g., providing similar fonts for availability, removing fonts from availability, adjusting subscription rates, etc.). The font service provider 312 may perform additional operations such as speculating which font sets, font characters, character subsets, etc. may be needed in the future based upon previously provided data and correspondingly send relevant data based upon these speculations. For example, if a relatively small portion of characters (e.g., less than 10%) are needed to complete a font set, the font service manager 316 may initiate the transmission of these remaining characters. In some arrangements, such proactive (or eager) loading techniques may be implemented, or alternatively techniques may be implemented that defer taking action until data is needed (e.g., lazy loading techniques).
One or more information sources may be utilized to provide information such as interactive information (e.g., queries, polls, etc.) to device such as the smartphone 100 for creating interactive messages. For example, an interactive data provide 332 may be accessed via the internet 306 by user devices to attain such information. In some arrangements, such interactions may be initiated during message creation (e.g., by the text messenger 200) to request/collect interactive information (e.g., queries, polls, etc.) needed for preparing a message. Other user device applications such as the application 204 may also be employed to access such information at the interactive data provider 332. In some instances, a message recipient device (e.g., smartphone 304) may access the provider 332; for example, to present a set of selectable options data may be retrieved from the interactive data provider 332 by the user device (e.g., the smartphone 304 retrieves data from the provider 332 as directed by the received message 302). To provide this functionality, a server 334 executes an interactive service manager 336 that is capable of accessing a storage device 338 that contains various types of interactive information (e.g., queries, polls, polling templates, etc.). Sources external to the interactive data provider 332 may also be accessed, via the interactive service manager 336, to collect interactive information. For example, publishers (e.g. the publisher 308), style owners and their agent 310, etc. may be contacted to provide information needed to prepare interactive information (e.g., queries, polls, etc. associated with a particular brand. Data may also be collected from individual users, user devices, etc. For example, responses to queries, polls, etc. may be provided to the interactive data provider 334 for further processing of the results. Data may be appended, edited, etc. and stored in the storage device 338 that reflects the feedback from poll-takers. In some arrangements, a portion (including all) of the functionality of the interactive data provider 332 may be provided by the font service provider 312, another entity, etc. In one example, the interactive data provider functionality may be provided by a messaging service (e.g., an internet-based service for managing the creation, delivery, etc. of text messages). In another instance, the functionality of the interactive data provider 332 may be distributed among multiple entities; for example, such a service may be provided by operations being executed by the font service provider and individual user devices.
Along with being capable of using different types of files and employing different types of data transmission techniques for exchanging text messages among the devices within the environment 300, various transmission techniques may be used for exchanging style information, font information, interactive information, etc. For example, cloud architectures, distributed processing techniques, etc. can be implemented within the environment. Other functionality, executable operations, etc. may be employed by the environment 300, such as techniques described in “Selectable Styles for Text Messaging System User Devices”, U.S. patent application Ser. No. 09/862,356 filed Sep. 23, 2015, “Selectable Styles for Text Messaging System Publishers”, U.S. patent application Ser. No. 14/862,404 filed Sep. 23, 2015, “Selectable Text Messaging Styles for Brand Owners”, U.S. patent application Ser. No. 14/862,499 filed Sep. 23, 2015, and “Selectable Styles for Text Messaging System Font Service Providers”, U.S. patent application Ser. No. 14/862,626 filed Sep. 23, 2015, the entire contents of each are hereby incorporated by reference.
Referring to
In this particular example, the interface 500 also includes a portion 508 that presents additional data (e.g., interactive information) to be included in the message asset. Taking various forms (e.g., characters, graphics, etc.), this information supplements the text content of the message asset and can assist the creator and recipient(s) with information that complements the message based on its context. One or more techniques may be employed to identify such complementary information; for example, such information may be identified by analyzing the content of the text field. Such analysis operations may be executed by the device used to create the message (e.g., the smartphone 100), at a remote location (e.g., at the font service provider 312, the interactive data provider 332), executed in a distributed manner (e.g., by the smartphone and the font service provider 312), etc. To perform the analysis, operations such as filtering the message into segments and individually analyzing the segments, combinations of segments, etc. may be executed. For example, one or more predefined rules, relational databases, etc. may be employed to identify the context (or contexts) of the textual content and then determine additional information that would complement the content of the message asset. In this example, the textual content of the message asset relates to scheduling a business trip and polling the message recipients for an appropriate departure date. Through this analysis, this context of the message is identified and operations are then executed to identify possible departure dates. In one arrangement, relevant information is collected from one or more sources; for example, the font service provider 312 may access data (e.g., an electronic scheduling calendar) associated with the creator of the message and determine potential dates from various information (e.g., travel distance and locations, needed mode of travel, etc.). Such information can be accessed from one or more locations; for example, relevant information may be stored on the user device (e.g., the user's calendar stored on the smartphone 100), remotely located storage devices (e.g., the storage device 338 located that the interactive data provider 332), etc. As illustrated in the figures, six potential departure dates have been identified from the analysis and are presented in portion 508 of the interface. Along with determining potential departure dates other type of information may be identified from a contextual analysis of the created text message. Such contextual analysis of a message may be executed in a variety of manners; for example, the analysis may occur upon a previously created message (e.g., text message) or messages retrieved from storage.
With the analysis complete, and the potential dates identified and presented to the creator of the message, one or more operations may be executed. For example, the message creator can adjust the presented options prior to the message asset being sent out. Along with deleting, editing, etc., further options may be added to the option collection listed in interface portion 508. One or more recipients may be selected for including in the distribution of the message asset. Individuals, predefined groups of individuals, etc., may be selected by operations executed on the user device (smartphone 100), at the font service provider 312, etc. While this particular message asset includes one page for polling individuals to determine an appropriate departure date, message assets may also include multiple pages, e.g., to address other options.
Once the creator deems the message asset complete, the message (including the aggregate of text and interactive information) can be sent to each of the identified recipients for review and for selecting from the potential departure dates, in this example. Once received, one or more operations may be executed as the recipients select from the presented options. Generally, to make a selection, a recipient can interact with (e.g., press) the display portion presenting the option of interest (e.g., a particular date). Typically, only one option can be selected, however, in some instances multiple options may be selected (e.g., selecting a first choice, second choice, etc.). Once selected, a visual confirmation may be presented on the device display to ensure that the desired option has been selected. In situations in which an unwanted option has been inadvertently selected, the option can be deselected by a subsequent interaction with the interface portion presenting the option. In some instances, a recipient of the message asset may rather not select (or not be ready to select) one of the potential options (being presented) but make a suggestion. Or in other situations, the recipient may just want to provide a suggestion but not take part in the subject matter (e.g., event) described in the message asset. In such situations, the recipient can entry data (e.g., text), for example into the message asset, a reply message asset, etc. and send it to the creator of the original message asset. The creator can then decide whether to promote this suggestion (e.g., update the message asset to include another option, replace an option, etc.) and send an updated version of the message asset. In some arrangements, a suggestion of one recipient can be sent and viewed by other recipients (of the originally sent message asset) along with creator of the original message asset. Viewing the suggestion, the other recipients may send feedback information regarding the suggestion to the creator (and potentially the other recipients of the original message asset). For example, one or more of the other recipients may positively reflect on the recipient-provided suggestion and the creator may take this information into account (e.g., to update the options of the message asset).
Communications among the individuals associated with the message assets is secure and information is not shared (e.g., sent) with individuals not identified as being associated. One or more security techniques may be used to assure that message asset content is not provided to individuals not selected for receipt; for example, passwords, hashing, public/private key, and/or other types of security techniques may be employed. In some arrangements, each communication (e.g., the originally created message assets, reply messages, recipient suggestions, etc.) is secured prior to transmission. In some instances, received communications can be checked for being improperly accessed prior to being used to present content on a user device. If an improper access is detected, correction action may be triggered, such as further processing of the message asset to determine the nature of the accessing, the identity of the infiltrator, etc.
Messages assets such as the one illustrated in the figure can be configured to include a variety of different type of content. Along with textual content, which may be presented in a selected style (of a brand), graphics and imagery (e.g., photos, video, etc.) may be included. In some instances, such graphics, imagery, etc. may be provided by the creator of the message asset (e.g., photos, video, etc. are taken by the individual creating the message asset for inserting in the asset). Graphics, imagery, etc. may also be attained from other sources; for example, the creator of a message asset may retrieved from one or more sources such as device storage, provided or shared by other individuals, retrieved from various types of networked sources (e.g., social network services such as Facebook, Instagram, etc. from which photographs can be attained), etc. Audio content may also be included, for example, by attaching an audio file, a link (e.g., a uniform resource locator (URL)), etc. Such content may be used for providing options as determined by the message asset creator, such as attempting to identify the most appropriate departure date for attending an event. Additional content may also be included in the message asset and presented to the recipient; for example, upon selecting one presented option (e.g., a particular departure date), other options may be presented which may or may not depend upon the just-selected option. In some instances, actions related to the just-selected option can be executed on the user device; for example, a calendar marking may be entered into an electronic calendar to reserve the date for the event. Related actions can also include preparing for activities associated with the scheduled event. For example, a selectable graphic is presented for transportation details (e.g., airline tickets, automobile rental, etc.), arranging a pre-departure meal (e.g., making dinner reservations), attend to matters at the destination location (e.g., making hotel and rental car reservations). By providing such additional options, the recipients can be guided to many issues that should be addressed before the scheduled event. In some arrangements, such levels of options can be identified during the context analysis of the originally entered text (during message asset creation) and included in the message, for example, in a nested manner. Other types of materials may also be presented to each recipient; for example, local sites of interest can be identified from the destination included in the message (e.g., identified from the analysis) and related information presented to each user (e.g., notification of special events, potential savings such as electronic coupons, etc.).
While the message assets are highly configurable to provide a variety of content, particular configurations may be used over and over to the point of being considered a type of standard configuration. For such configurations, template data may be created and stored (e.g., at user devices, the font service provider, the interactive data provider, etc.) for relatively easy access. For example, the text messenger 200, the application 204, etc. being executed by the smartphone 100 may present different types of templates for selection by the user. Once selected, the application 204 may retrieve the template of interest from local storage (e.g., located on the smartphone) or from a remote storage location (e.g., at the font service provider, the interactive data provider, or other location accessible through the Internet 306). User created templates may also be stored locally, remotely, etc. for ease of retrieval by the creator of the template or other individuals. For example, one or more libraries of templates may be stored on a storage device (e.g., device 318, storage device 338, etc.) located that the font service provider 312, the interactive data provider 332, etc. Various techniques may be employed for accessing such libraries of templates, for example, rental periods, template purchase agreements, service agreements, etc. may be utilized to define template access conditions.
Referring to
In this example, based upon the user-selection (to schedule a lunch 604) a message asset 616 is created and presented on the user device (e.g., smartphone 100) to assist with planning the lunch event. Options for the event are determined and presented on the message asset 616 based upon a variety of information that can be accessed by the executed application (e.g., text messenger 200, application 204). For example, previous message assets created by the user (some for similar events) may be accessed (e.g., from local device memory, from a service site such as the interactive data provider 332) to identify previous options selected by the user, event attendees, etc. Along with the previously generated message assets and related information (e.g., option selections), other type of data (e.g., historical data) may be employed. For example, user interaction with the executed application (e.g., selections made for other events) may be used. Historical data associated with other events may be processed and used; for example, the travel distance considered acceptable by the user for similar events, the mode of transportation employed by the user for such events, generally acceptable costs, etc. Historical data associated with others may also be utilized for developing options. For example, upon identifying potential attendees (e.g., the user selects other individuals, selects a predefined group, etc.), similar or different historical data may be retrieved (e.g., from local storage, remote storage, etc.). For example, travel distance for each potential attendee may be analyzed and used to identify possible options for the message asset 616. Other types of information may also be collected and analyzed; for example, weather conditions, types of faire, etc. Once one or more potential venues are identified, other information may be identified for inclusion in the message asset. For example, commerce related information (e.g., discounts, day-of-the-week specials, Internet accessible coupons, etc.) can be identified from a variety of sources (e.g., websites, previously collected data, attendee reviews, etc.). Upon performing the analysis and data collection, the relevant data may be aggregated and presented in the message asset 616. As illustrated in the example, two potential lunch locations have been identified and a selectable page is created for each and presented on the message asset 616.
Referring to
Such machine learning techniques operate on a large set of “features” generated from the input data. Some techniques use decision trees, rules (e.g., if-then rules) while other techniques such as more statistical based techniques implement statistical models capable of making soft, probabilistic decisions based on applying weights (e.g., real-valued weights) to input features. Rather than computing a single result, such statistical based techniques express relative certainty of multiple different results. Through learning techniques, most common cases are automatically focused upon and make use of statistical inference algorithms to produce models capable of addressing unfamiliar input (e.g. containing less familiar words, phrases, etc.), potentially erroneous inputs (e.g. containing misspelled words, inadvertently missing words), etc. In general, accuracy of such machine learning techniques can increase with being supplied more input data, increasing the number of rules, rule complexity, etc. Statistical natural-language processing generally uses stochastic, probabilistic, and statistical methods to resolve complexities that can arise, for example, from ambiguous words, phrases (e.g. long sentences), etc. Such natural language processing techniques include quantitative approaches to automated language processing, including probabilistic modeling, information theory, and linear algebra. Statistical natural language modeling generally comes from machine learning and data mining, both of which are fields of artificial intelligence that involve learning from data.
As illustrated in the figure, a user device 700 (e.g., a smartphone) includes an interface 702 that displays an interactive keyboard 704 for allowing the user to create a message asset. In this example, a relatively simple term 706 (i.e., “Lunch?”) is entered by the user to determine if one or more recipients would be interested going to lunch with the user (the creator of the message asset). Provided this term 706, natural language processing operations are executed to translate this one-word phrase into a more understandable context (e.g., a full sentence) for the recipient(s). In this example, the executed operations produce a sentence 708 that is presented on an interface 710 of a recipient user device 712. From a single term entered, a message asset may be created in an automated manner. Along with providing this expanded message, other information is included in the message asset, e.g., to assist with the recipient in efficiently answering the presented request of the message asset. As illustrated in the figure, a phrase 714 is included in the message asset that identifies the individual that created the message asset and that this individual has directed the question to the recipient. Additionally, a user-selectable graphic 716 allows the recipient to quickly realize what options (e.g., potential start times) are available for this event. One or more information sources may be used for identifying these options; for example, information stored at user devices (e.g., a smartphone), a remote service location such as a cloud-based service (e.g., the font service provider 312, the interactive data provider 332) such as a cloud-based Internet service, etc. In this example, two potential start times are determined from information associated with the creator of the message asset and the recipients. For example, respective calendars of the creator and the recipient (e.g., local electronic calendars stored on user devices, remote locations—such as cloud-based storage, etc.) may be checked. One or more techniques may be employed to arrive at such options; for example, comparisons of availability (via the calendars) may be used to arrive at the option times. Rules may be utilized, for example, to assist with determining availability; for example, a particular window may be defined (e.g., from 11:00 AM to 2:00 PM) for reasonable start times for the event. After review, the recipient can select either of the options provided by the graphic 716 and an indication of the selection is sent (e.g., to the interactive service provider, the creator's user device, to user devices of other recipients, etc.) for further processing. For example, the options may be compared to identify the most popular starting time, etc. Additionally in some arrangements the recipient may be allowed to suggest a time other than the options provided in the graphic 716. Such a suggestion can then be provided in a message to the asset creator (e.g., for adoption and re-circulation) and/or the other recipients (e.g., for feedback). In this example, a graphic 718 is presented on the message asset for adding another option and notifying the others.
Along with arriving at possible start times, other types of information may be determined and presented to recipients of the message asset, the creator, etc. For example, based upon historical data (e.g., location of previously attended events, travel distance, modes of transportation, etc.) complementary information can be determined and presented in the message asset (e.g., potential event location, transportation mode, etc.). In this illustrated example, a user selectable graphic 720 (e.g., a radio button) provides a suggested location (again based on historical data), transportation time, and a methodology for reaching the suggested location in an efficient manner. In this example, the message asset also provides other information that may be useful for the recipient, in particular, a graphic readout 722 presents both the number of individuals sent the message asset (e.g., that are members of a predefined group) along with the number of individuals that have responded. In some examples, upon selecting the graphic 722, identification of each recipient is presented along with an indication whether the recipient has sent a response.
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Similar to using purchased goods and services as a trigger event for being provided a message asset (developed for the general public), other information associated with individuals may be used. For example, historical data associated with an individual (e.g., click data, types of websites visited or interacted with, etc.) may be used to warrant delivery of a message asset. As illustrated in the figure, historical data may reflect a particular interest of an individual and a message asset may be prepared for delivery (e.g., a predefined message asset template may be used to create the message asset). In this instance, upon being identified as having a strong interest in motion pictures (e.g., through click data, website viewing habits, etc.), a message asset 1410 is presented that provides access to polling questions (and response options), for example. To provide feedback, a text string 1412 (labeled “4 questions”) can be selected by the recipient. Based upon the feedback provided, information being presented on the message asset can be updated; for example, a graphical representation of the currently most popular motion picture (e.g., a representation of a scene from the motion picture) is presented along with a numerical count 1414 of the current motion picture leading the polls. Similar to the message asset above 1404, a graphical representation of a brand (e.g., a logo 1416) may also be presented that is related to the created message asset, etc. Presented in the lowest position of the listing, another message asset 1418 similarly requests for user feedback regarding a service recently experienced by the recipient. The feedback can be provided upon selecting a text string 1420 and an endorsement count 1422 is updated, for example, for each instance that feedback is provided. To promote the brand of this business entity (an airline, in this example), a logo 1424 including a stylized font associated with the brand and a graphical representation of the service provided in also included in the message asset.
Referring to
Referring to
Operations of the text messenger may include receiving 1602, receiving data representing textual information input into a user device. For example, a user interested in sending information to one or more recipients can enter a textual phrase (e.g., the phrase “Lunch?”) into a user device such as a smartphone. Operations may also include analyzing 1604 the data to determine the contextual meaning of the textual information. For example, the entered phrase (e.g., “Lunch”) may be processed to identify related information (e.g., using previously prepared messages, preferences of the user such as locations and times of interest, previous interactions with potential recipients, etc.) that provide context (e.g., translates the phrase “Lunch” into “What time would you like to go out for lunch?”). Operations may also include producing 1606 one or more messages to present information at one or more other user devices using the contextual meaning of the textual information. For example, an expanded message (e.g., “What time would you like to go out for lunch?”) may be provided to one or more individually that may be interested in sending a response to the message creator and attending the lunch event. Along with efficiently providing information with enough detail to be understandable by the recipients, additional information (e.g., potential locations, modes of transportation, etc.) can be determined from the contextual information and provided. By identifying this information in an automatic manner, messages can be sent from one individual to one or multiple others without a substantial amount of time and focus needed from the message creator. Additionally by adding queries, polls, etc. to the delivered message (based upon the contextual information), responses such as feedback and input from others can be efficiently and effectively collected without excessively exchanging messages.
Computing device 1700 includes processor 1702, memory 1704, storage device 1706, high-speed interface 1708 connecting to memory 1704 and high-speed expansion ports 1710, and low speed interface 1712 connecting to low speed bus 1714 and storage device 1706. Each of components 1702, 1704, 1706, 1708, 1710, and 1712, are interconnected using various busses, and can be mounted on a common motherboard or in other manners as appropriate. Processor 1702 can process instructions for execution within computing device 1700, including instructions stored in memory 1704 or on storage device 1706 to display graphical data for a GUI on an external input/output device, including, e.g., display 1716 coupled to high speed interface 1708. In other implementations, multiple processors and/or multiple busses can be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 1700 can be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
Memory 1704 stores data within computing device 2000. In one implementation, memory 1704 is a volatile memory unit or units. In another implementation, memory 1704 is a non-volatile memory unit or units. Memory 1704 also can be another form of computer-readable medium (e.g., a magnetic or optical disk. Memory 1704 may be non-transitory.)
Storage device 1706 is capable of providing mass storage for computing device 1700. In one implementation, storage device 1706 can be or contain a computer-readable medium (e.g., a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, such as devices in a storage area network or other configurations.) A computer program product can be tangibly embodied in a data carrier. The computer program product also can contain instructions that, when executed, perform one or more methods (e.g., those described above.) The data carrier is a computer- or machine-readable medium, (e.g., memory 1704, storage device 1706, memory on processor 1702, and the like.)
High-speed controller 1708 manages bandwidth-intensive operations for computing device 1700, while low speed controller 1712 manages lower bandwidth-intensive operations. Such allocation of functions is an example only. In one implementation, high-speed controller 1708 is coupled to memory 1704, display 1716 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 1710, which can accept various expansion cards (not shown). In the implementation, low-speed controller 1712 is coupled to storage device 1706 and low-speed expansion port 1714. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet), can be coupled to one or more input/output devices, (e.g., a keyboard, a pointing device, a scanner, or a networking device including a switch or router, e.g., through a network adapter.)
Computing device 1700 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as standard server 1720, or multiple times in a group of such servers. It also can be implemented as part of rack server system 1724. In addition or as an alternative, it can be implemented in a personal computer (e.g., laptop computer 1722.) In some examples, components from computing device 1700 can be combined with other components in a mobile device (not shown), e.g., device 1750. Each of such devices can contain one or more of computing device 1700, 1750, and an entire system can be made up of multiple computing devices 1700, 1750 communicating with each other.
Computing device 1750 includes processor 1752, memory 1764, an input/output device (e.g., display 1754, communication interface 1766, and transceiver 1768) among other components. Device 1750 also can be provided with a storage device, (e.g., a microdrive or other device) to provide additional storage. Each of components 1750, 1752, 1764, 1754, 1766, and 1768, are interconnected using various buses, and several of the components can be mounted on a common motherboard or in other manners as appropriate.
Processor 1752 can execute instructions within computing device 1750, including instructions stored in memory 1764. The processor can be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor can provide, for example, for coordination of the other components of device 1750, e.g., control of user interfaces, applications run by device 1750, and wireless communication by device 1750.
Processor 1752 can communicate with a user through control interface 1758 and display interface 1756 coupled to display 1754. Display 1754 can be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. Display interface 1756 can comprise appropriate circuitry for driving display 1754 to present graphical and other data to a user. Control interface 1758 can receive commands from a user and convert them for submission to processor 1752. In addition, external interface 1762 can communicate with processor 1742, so as to enable near area communication of device 1750 with other devices. External interface 1762 can provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces also can be used.
Memory 1764 stores data within computing device 1750. Memory 1764 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 1774 also can be provided and connected to device 1750 through expansion interface 1772, which can include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 1774 can provide extra storage space for device 1750, or also can store applications or other data for device 1750. Specifically, expansion memory 1774 can include instructions to carry out or supplement the processes described above, and can include secure data also. Thus, for example, expansion memory 1774 can be provided as a security module for device 1750, and can be programmed with instructions that permit secure use of device 1750. In addition, secure applications can be provided through the SIMM cards, along with additional data, (e.g., placing identifying data on the SIMM card in a non-hackable manner.)
The memory can include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in a data carrier. The computer program product contains instructions that, when executed, perform one or more methods, e.g., those described above. The data carrier is a computer- or machine-readable medium (e.g., memory 1764, expansion memory 1774, and/or memory on processor 1752), which can be received, for example, over transceiver 1768 or external interface 1762.
Device 1750 can communicate wirelessly through communication interface 1766, which can include digital signal processing circuitry where necessary. Communication interface 1766 can provide for communications under various modes or protocols (e.g., GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.) Such communication can occur, for example, through radio-frequency transceiver 1768. In addition, short-range communication can occur, e.g., using a Bluetooth®, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 1770 can provide additional navigation- and location-related wireless data to device 1750, which can be used as appropriate by applications running on device 1750. Sensors and modules such as cameras, microphones, compasses, accelerators (for orientation sensing), etc. may be included in the device.
Device 1750 also can communicate audibly using audio codec 1760, which can receive spoken data from a user and convert it to usable digital data. Audio codec 1760 can likewise generate audible sound for a user, (e.g., through a speaker in a handset of device 1750.) Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, and the like) and also can include sound generated by applications operating on device 1750.
Computing device 1750 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as cellular telephone 1780. It also can be implemented as part of smartphone 1782, a personal digital assistant, or other similar mobile device.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor. The programmable processor can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms machine-readable medium and computer-readable medium refer to a computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a device for displaying data to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor), and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be a form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in a form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a backend component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a frontend component (e.g., a client computer having a user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or a combination of such back end, middleware, or frontend components. The components of the system can be interconnected by a form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
In some implementations, the engines described herein can be separated, combined or incorporated into a single or combined engine. The engines depicted in the figures are not intended to limit the systems described here to the software architectures shown in the figures.
A number of embodiments have been described. Nevertheless, it will be understood that various modifications can be made without departing from the spirit and scope of the processes and techniques described herein. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps can be provided, or steps can be eliminated, from the described flows, and other components can be added to, or removed from, the described systems. Accordingly, other embodiments are within the scope of the following claims.
This application claims benefit of priority under 35 U.S.C. § 119(e) to U.S. Provisional Patent Application Ser. No. 62/371,484 filed on Aug. 5, 2016, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62371484 | Aug 2016 | US |