CLAIM OF PRIORITYThis application is a continuation-in-part of and claims priority to patent application Ser. No. 12/422,313 filed on Apr. 13, 2009 which claims priority from provisional application 61/161,763 filed on Mar. 19, 2009. patent application Ser. No. 12/422,313 is a continuation-in-part of patent application Ser. No. 11/519,600 filed Sep. 11, 2006, issued as U.S. Pat. No. 7,551,935. patent application Ser. No. 11/519,600 is a continuation-in-part of patent application Ser. No. 11/231,575 filed Sep. 21, 2005, issued as U.S. Pat. No. 7,580,719.
FIELD OF TECHNOLOGYThis disclosure relates generally to a communication system, and, more particularly, to a system, a method and an article of manufacture of context-enriched microblog posting.
BACKGROUNDA social networking website may include a number of features that allow users to interact. For example, a user can post a message to either the user's social networking webpage and/or another user's social networking webpage. Example interaction features may include microblogging applications such as status updates, tweets, wall posts and other types of message posts. Microblog posts can include such formats as plain text, hypertext, digital video and/or digital audio.
Microblog posts can be generated with a mobile device. The post itself can refer to a context of the user and/or the mobile device. A user's context can also increase the interest of other users in the microblog post by providing more information. Moreover, other users may be interested in certain categories of contexts. Furthermore, because the mobile device changes location, in some cases, the context can be dynamic. Thus, associating context data with message postings can augment the user experience of a social networking website.
SUMMARYA system, method, and article of manufacture of context-enriched microblog posting are disclosed. In one aspect, a message component is provided. A context data related to a context of a computing device used to generate the message component is provided. The message component and the context data are associated in a microblog post. The context data may be communicated to a web browser. The message component may be communicated to the web browser. The message component may be rendered in a format for communication as a short message service (SMS) message that includes a reference to the context data. The message component and the context data may be rendered in a format for communication as a multimedia messaging service (MMS) message.
In another aspect, a short message is provided. A location data of a sending device of the short message is provided. The short message is associated with the location data. The short message and the location data are rendered into a format accessible by a web browser. The short message may be posted as a microblog post.
In yet another aspect, SMS text is decoded and parsed. A meaning of a SMS text term is determined. A context data of a sending device related to the meaning SMS text term is determined. The SMS text is annotated with a markup language. The context data is annotated with the markup language. The context data and the SMS text are linked together in a web page document.
BRIEF DESCRIPTION OF THE DRAWINGSThe embodiments of this invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
FIG. 1 is a block diagram showing a schematic view of an exemplary system for context-enriched microblog posting that can implement one or more embodiments.
FIG. 2 is a block diagram that illustrates an exemplary context-data analysis server, according to one or more embodiments.
FIG. 3 is a block diagram that illustrates an alternative context data manager, according to some embodiments.
FIG. 4 is a block diagram that illustrates an exemplary social networking website server, according to one or more embodiments.
FIG. 5 shows a database table correlating a text message component with a type of context data, according to one embodiment.
FIG. 6 shows a simplified block diagram of a portable electronic device, in accordance with one or more embodiments.
FIG. 7 is a functional block diagram of an exemplary computing device, according to one or more embodiments.
FIG. 8 illustrates a block diagram of an exemplary computing environment in accordance with one or more embodiments.
FIG. 9 illustrates a methodology of incorporating a message component and a context data into a webpage as a microblog post, according one embodiment.
FIG. 10 illustrates a methodology that implements one or more embodiments of context-enriched microblog posting.
FIGS. 11A-B illustrates another methodology that implements one or more embodiments of context-enriched microblog posting.
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.
DETAILED DESCRIPTIONDisclosed are a system, method, and article of manufacture of context-enriched microblog posting. Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes can be made to these embodiments without departing from the broader spirit and scope of the various claims.
FIG. 1 is a block diagram showing a schematic view of an example system for context-enriched microblog posting that can implement one or more embodiments. Communication network(s)100 can include any suitable circuitry, device, system or combination of these (e.g., a wireless communications infrastructure including communications towers and telecommunications servers, an IP network, the Internet, and the like) operative to create a computer network. For example, communication network(s)100 can provide wireless communications using any suitable short-range or long-range communications protocol. In some embodiments, communication network(s)100 can support, for example, Wi-Fi (e.g., an 802.11 protocol), Bluetooth™, high frequency systems (e.g., 900 MHz, 2.4 30 GHz, and 5.6 GHz communication systems), infrared, other relatively localized wireless communication protocols, or any combination thereof.
In some embodiments, communication network(s)100 can support protocols used by wireless and cellular phones and personal email devices. Such protocols can include, for example, GSM, GSM plus EDGE, CDMA, UMTS, quadband, and other cellular protocols. In another example, a long-range communications protocol can include Wi-Fi and protocols for placing or receiving calls using VOIP or LAN. Furthermore, in some embodiments, communication network(s)100 can include an internet protocol (IP) based network such as the Internet. In this way, the systems and devices ofFIG. 1 can transfer data between each other as well as with other computing devices (e.g. third party servers and databases) not shown for the purposes of clarity.
Communication network(s)100 operatively couples the various computer systems ofFIG. 1, such as the mobile devices102A-N, thecontext data server106, thesocial networking server110 and any other servers that support themashup applications114. In some embodiments, mobile devices102A-N can include mobile computing devices (e.g. a smart phone such as the iPhone™, Motorola Droid™, Blackberry™, or Nexus One™) such as the one described in conjunction withFIG. 6 infra. As provided infra, mobile devices102A-N can include smart phone capabilities such as a web browser to access and post messages (e.g. microblog posts, status updates, in-application text messages, SMS messages, MMS messages, EMS messages, etc and/or media content messages such as voice, digital images) on a social networking website hosted by thesocial networking server110. For example, mobile devices102A-N can support a client application that interacts with a server application supported by thesocial networking server110 and/or thecontext data server106 in order to transmit and receive files that include messages.
In some embodiments, mobile devices102A-N can also include an application for transmitting and receiving files that include context data and/or context metadata to thesocial networking server110 and/or thecontext data server106. Mobile devices102A-N include context data acquisition and analysis capabilities. In some embodiments, mobile devices102A-N can then communicate the context data to thecontext data server106.
It should be noted that in some example embodiments, another type of computing device (e.g. a personal computer, a tablet computer such as the iPad™, a portable media player, personal digital assistant, and/or Wi-Fi mobile platform) can be configured to perform the same functionalities of the mobile devices102A-N as described supra. Consequently,FIG. 1 should not be interpreted as being exclusive only to mobile devices with regards to other example embodiments.
Social networking server110 can provide at least one social networking website. In some embodiments, the social networking website can include at least one webpage where message components of microblog posts can be linked with context data. For example, a microblog post can include a text with an associated context data such as the location of the mobile device102A-N when the microblog post was communicated to thesocial networking server110. It should be noted that in some embodiments, the functionalities ofservers106 and110 can be integrated into a single server or set of servers managed by a single entity. Moreover, in some embodiments, certain functionalities ofservers106 and110 can be implemented in a cloud computing environment.
Mashup application(s)114 can reside onservers106,110 and/or third-party servers operatively coupled with the communication network(s)100. Mashup application(s)114 can include a web application that combines data and/or functionality from more than one source. An example mashup application includes a mapping website (e.g. Google maps™) that includes representations of geolocation metadata of the sending mobile device. Other mashup applications can be utilized that are relevant to specific types of context data provided and the particular meaning of associated message audio content, image content, terms and/or phrases posted to the social networking website.
FIG. 2 is a block diagram that illustrates an exemplary context-data analysis server106 according to one or more embodiments. As shown, the context-data analysis server106 can analyze a component of a microblog posts well as context data (e.g. geolocation data) from a mobile device. The context-data analysis server106 can utilize the results of the analysis to associate the component with a relevant context data. The context-data analysis server106 can then communicate the association data, the context data and the microblog post (and in some embodiments, context metadata, historical data and/or cultural data) to the socialnetworking website server110.
More specifically, in some embodiments, the context-data analysis server106 can include acontext data manager202. Thecontext data manager202 can include a context-data puller204, aparser206,textual analysis module208 and acontext analysis module210. Context-data puller204 can acquire context data. For example, in some embodiments, context-data puller204 can query a mobile device and/or third-party system for context data relevant to a user and/or a sending device. Context-data puller204 can store the context data in a database (such as database108). Context data puller204 can interact with a third-party system via an applied program interface (API), such as thegeolocation API client200, to acquire the context data.
For example, context data puller204 can acquire geolocation data. Geolocation can be performed by associating a geographic location with the Internet Protocol (IP) address, MAC address, RFID, hardware embedded article/production number, embedded software number (such as UUID, Exif/IPTC/XMP or modern steganography), invoice, Wi-Fi connection location, or device GPS coordinates, or even user-disclosed information. Context data puller204 can perform geolocation operations automatically on a periodic basis (e.g. maintain a substantially current geolocation of a particular user via multiple geolocation data vectors) and/or on a per-message basis. For example, context data puller204 can utilize thegeolocation API client200 to look up an IP address on a WHOIS service and retrieve a registrant's physical address. In another example, context data puller204 can query the source of the message for GPS data. It should be noted that in some embodiments, thecontext analysis module210 can also determine the geolocation of a message source by such methods as analyzing the context data of a message.
Parser206 can parse a microblog post (e.g. perform a set of syntactic analysis operations).Textual analysis module208 can then analyze the message to determine the meaning of the message components. In some embodiments, certain words and/or phrases may have been assigned a predetermined meaning.Textual analysis module208 can then look up the words and/or phrases in a table. In some embodiments, the meaning of the words and/or phrases may include a cultural dependency variable. For example,textual analysis module208 can also access databases that include cultural and/or user historical information to determine additional words definitions that depend on the cultural and/or historical usage of the word or phrase. In some embodiments, a user can preset the meaning of a word and/or phrase with an application of the mobile device102A-N. In some embodiments, thecontext data manager202 can also include a digital audio analyzer (e.g. includes a voice to text utility) and/or a digital image analyzer (not shown).
In some embodiments,textual analysis module208 can utilize one or more pattern recognition algorithms to determine the meaning of a word and/or phrase. Suitable types of pattern recognition algorithms can include neural networks, support vector machines, decision trees, K-nearest neighbor, Bayesian networks, Monte Carlo methods, bootstrapping methods, boosting methods, or any combination thereof.
Context analysis module210 can analyze context data acquired by the context data puller204 to associate a relevant context data with a microblog post component according to the meaning of the microblog post component. For example, if the microblog post includes a text message that states “COME PARTY HERE WITH US”. Thetextual analysis module208 can determine that the message component “HERE” meant the geolocation of the sending device. Context data puller204 can query the sending device for its GPS data with a time stamp that matches the time stamp of the text message.Context analysis module210 can then provide metadata instructions for a website server to associate the microblog post component with the GPS data. In some embodiments,context analysis module210 can determine the geolocation data of the sending device from the context metadata of the microblog post. In some embodiments, thetextual analysis module208 can determine the meaning of the microblog post component “WITH US” means the set of social networking friends present at the same location. Context data puller204 can, for example, then query the mobile devices of the sender's social networking friends to determine the location of each at the time indicated by the time stamp included in the microblog post. Additionally and/or alternatively,context analysis module210 can determine the identity of the users of any mobile devices included in the context metadata of the microblog post by the sending mobile device. User identity and/or other mobile device data can be stored indatabase108. In some embodiments,context analysis module210 can then generate an instruction for a website server to link the user's identities with the message component “WITH US” on a webpage. In some embodiments,context analysis module210 can provide the information to the website server without the instruction.
In some embodiments, thecontext analysis module210 can be set to associate a particular type of context data (e.g. geolocation data of a sending device) with a microblog post regardless of the meaning of a microblog post component. In some embodiments, thecontext analysis module210 can also perform such operations as determine the quality of the context data (e.g. geolocation accuracy), quality of service of context data sources, and the like.
Thecontext data manager202 can interact with a social networking website via the social networkingwebsite API client212. For example, thecontext data manager202 can provide information, instructions and queries to the socialnetworking website server110 ofFIG. 1 via social networkingwebsite API client212. Thecontext data manager202 can also receive information (such as microblog posts), instructions and queries from the socialnetworking website server110 via the social networkingwebsite API client212 as well. For example, in some embodiments, the socialnetworking website server110 can provide a text message to thecontext data manager202.Context data manager202 can then analyze the microblog post to determine a context data type to associate with a particular microblog post component.Context data manager202 can then acquire the context data and provide the context data to the socialnetworking website server110 via the social networkingwebsite API client212.
FIG. 3 is a block diagram that illustrates an alternativecontext data manager202′, according to some embodiments.Context data manager202′ can incorporate the functionalities of the system described in U.S. Pat. No. 7,580,719 (incorporated herein by reference) into the environment ofFIG. 1. Moreover, in some embodiments,context data manager202′ can be utilized to perform the operations shown inFIGS. 9-11B.
In particular, in a specific example embodiment,context data manager202′ can analyze context information (such as context data) and short messages (e.g. SMS messages).Context data manager202′ can also store (e.g. in data108), compare, augment, translate, and forward the context information and short messages. In the specific example embodiment,Parser300 can consult with both linguistic and cultural databases to generate the intended meaning for the text of a short message.Comparative analyzer302 can analyze previously-established and stored links and patterns from prior like short messages and then associate further specific context information without requiring input from the sender.Comparative analyzer302 can forward the base short message text to the recipient along with a means (e.g. a hyperlink) for the recipient to also pull up, on request, the associated information (contextual and comparative) in order to allow the recipient to comprehend the intended meaning of the sender's original text.Context associator304 can associate and makes explicit at the user-level the contextual information associated with the short message. In the specific example embodiment,context associator304 can also match and incorporate into a short message previous short messages of a sender and/or recipient of the short message.Text analyzer306 can determine personal and/or cultural obligations from the short message text.
FIG. 4 is a block diagram that illustrates an exemplary socialnetworking website server110, according to one or more embodiments. Socialnetworking website server110 can host a collection of related web pages, images, videos or other digital assets. Socialnetworking website server110 can also host various API servers. In some embodiments, a web page can be associate with a user (e.g. a home page). The user can utilize a web browser to post messages (such a microblog posts), such as status updates, microblog posts (e.g. a ‘tweet’) to the web page. In some embodiments, socialnetworking website server110 can provide a messaging application that the user can utilize to post the message. In some embodiments, the user can post the message to the web site with a text messaging service (such as SMS, MMS, EMS, IMS, IRC). In some embodiments, socialnetworking website server110 can publish the message via a text messaging service as well. Socialnetworking website server110 can utilize thecontext data manager202 and/or202′ to associate context data related to a sending device with the message (e.g. with a hyperlink to a mashup webpage). In some embodiments, the context data can be related to a receiving device.
In a specific example, socialnetworking website server110 can include anauthentication module400.Authentication module400 manages user confirmation operations such as user login.Authentication module400 can also control access to the resources of the social networking website by placing restrictions on the established identities.Mobile gateway402 can include standards (e.g. REST and WebService) that allows smart phone messaging applications to access the web pages hosted by the socialnetworking website server110. Moreover, in some embodiments, socialnetworking website server110 can utilize themobile gateway402 to communicate microblog posts to a mobile device in the form of a message such as an SMS message, and the like.Search engine404 includes functionalities that allow for the search of information including, inter alia, user identities, user account information, metadata tag, context-data metadata tags, microblog posts and/or context data. Such information can be stored indatabase112. Example search engine methods can include web crawling, indexing and web search query.Posting system406 can manage integrating the messages of microblog posts (such as ‘posting’ operations) onto a webpage hosted by the socialnetworking website server110.Message management component408 can manage parameters for microblog posting such as maximum message length, message media types and/or inclusion of hyperlinks and/or hypertext to context data information. Social network API server(s)410 enable interaction between the modules and other functionalities of the socialnetworking website server110 and other applications such mashup applications116 and those of thecontext data server106.
In some embodiments, the socialnetworking website server110 can also include acontext data manager202 or202′. Thus, in some embodiments, the socialnetworking website server110 can perform the functionalities of thecontext data server106. For example, the socialnetworking website server110 can interact and acquire message and context data from the mobile devices102A-N.
Context-data metadata tags can also be generated by context-data tag manager412. In some embodiments, a context-data metadata tag can represent at least one context data associated with the microblog post provided by thecontext data manager202 or202′. In some embodiments, a context-data metadata tag can include the number sign (hash tag) ‘#’ as a prefix and a textual description of particular type of context data (e.g. # Giants stadium, # with Mike G., # SFO, # Stan's party, # decreasing barometric pressure, # during take off!, etc.). Textual descriptions can be descriptive of the context data (e.g. # freezing cold!). The textual description can be preset by a user and/or social networking system administrator according to specified parameters. In some embodiments, a description can be limited to context data, sometimes with a standardized unit (e.g. #35.16533-106.60946, #300 mph, #30,000 ft.). Socialnetworking website server110 can utilize context-data tag manager412 to link context-data metadata tags to a microblog post. Socialnetworking website server110 can then place the message into a category according to its context-data metadata tags. For example, a microblog post can display that it has been tagged with # moving over 45 mph and/or #85 degrees. A context metadata tag can include a web link leading to an index page listing other microblog posts associated with the context metadata tag. The microblog webpage can include a sidebar listing all the tags in use on that the microblog, with each tag leading to an index page: In some embodiments, connections between microblog posts can be automatically tracked and updated by the context-data tag manager412. In some embodiments, the context-data tag manager412 can also render a visual depiction of context-data metadata tags such as a context-data metadata tag cloud.
In one embodiment, context-data tag manager412 can periodically update a context-data metadata tag. For example, context-data tag manager412 can periodically instruct thecontext data manager202 to query a context data source (such as a mobile device) and provide updated context data. Context-data tag manager412 can then generate a new context-data metadata tag that is associated with a microblog post. Context-datametadata tag manager412 can also store older context-data metadata tags indatabase112.
In some example embodiments, the socialnetworking website server110 can include a persistent queue server that uses a memcached protocol (e.g. Starling, Kestrel) to post microblog posts. The socialnetworking website server110 can also present a web interface using a Ruby on Rails framework.
FIG. 5 shows a database table correlating a text message component with a type of context data, according to one embodiment. Column l includes fields fortext message components500. Columns two to seven504-514 include fields for correlating thetext message component500 with acontext data502 such as the particular context data504-514 types shown. In one example embodiment, the context data manager202 (and/or in someembodiments202′) may access the database table to determine which types of context data to associate with particulartext message components500.
FIG. 6 shows a simplified block diagram of a portableelectronic device600 constructed and used in accordance with one or more embodiments. In some embodiments, portableelectronic device600 can be a portable computing device dedicated to processing multi-media data files and presenting that processed data to the user such as the mobile device102A-N ofFIG. 1. For example, portableelectronic device600 can be a dedicated media player (e.g., MP3 player), a game player, a remote controller, a portable communication device, a remote ordering interface, a tablet computer or other suitable personal device. In some embodiments, portableelectronic device600 can be a portable device dedicated to providing multi-media processing and telephone functionality in single integrated unit (e.g. a smart phone).
Portableelectronic device600 can be battery-operated and highly portable so as to allow a user to listen to music, play games or videos, record video or take pictures, place and take telephone calls, communicate with other people or devices, control other devices, and any combination thereof. In addition, portable electronic device can be sized such that it fits relatively easily into a pocket or hand of the user. By being handheld, portableelectronic device600 is relatively small and easily handled and utilized by its user and thus can be taken practically anywhere the user travels.
Portableelectronic device600 can includeprocessor602,storage604,user interface606,display608,memory610, input/output circuitry612,communications circuitry614,web browser616, and/orbus622. In some embodiments, portableelectronic device600 can include more than one of each component or circuitry, shown inFIG. 6, but for the sake of clarity and illustration, only one of each is shown inFIG. 6. In addition, it will be appreciated that the functionality of certain components and circuitry can be combined or omitted and that additional components and circuitry, which are not shown inFIG. 6, can be included in portableelectronic device600.
Processor602 can include, for example, circuitry for and be configured to perform any function.Processor602 can be used to run operating system applications, media playback applications, media editing applications, and/or any other application.Processor602 can drivedisplay608 and can receive user inputs fromuser interface606.
Storage604 can be, for example, one or more storage mediums, including for example, a hard-drive, flash memory, permanent memory such as ROM, semipermanent memory such as RAM, any other suitable type of storage component, or any combination thereof.Storage604 can, store, for example, media data (e.g., music and video files), application data (e.g., for implementing functions on mobile devices102A-N), firmware, preference information data (e.g., media playback preferences), lifestyle information data (e.g., food preferences), exercise information data (e.g., information obtained by exercise monitoring equipment), transaction information data (e.g., information such as credit card information), wireless connection information data (e.g., information that can enable the mobile devices102A-N to establish a wireless connection), subscription information data (e.g., information that keeps track of podcasts or television shows or other media a user subscribes to), contact information data (e.g., telephone numbers and email addresses), calendar information data, any other suitable data, or any combination thereof.
User interface606 can allow a user to interact with portableelectronic device600. For example, the device foruser interface606 can take a variety of forms, such as at least one a button, keypad, dial, a click wheel, a touch screen or any combination thereof.
Display608 can accept and/or generate signals for presenting media information (textual and/or graphic) on a display screen, such as those discussed above. For example, display608 can include a coder/decoder (CODEC) to convert digital media data into analog signals.Display608 also can include display driver circuitry and/or circuitry for driving display driver(s). The display signals can be generated byprocessor602 ordisplay608. The display signals can provide media information related to media data received fromcommunications circuitry614 and/or any other component of portableelectronic device600. In some embodiments,display608, as with any other component discussed herein, can be integrated with and/or externally coupled to portableelectronic device600.
Memory610 can include one or more different types of memory that can be used for performing device functions. For example,memory610 can include cache, Flash, ROM, RAM, or one or more different types of memory used for temporarily storing data.Memory610 can be specifically dedicated to storing firmware. For example,memory610 can be provided for storing 30 firmware for device applications (e.g., operating system, user interface functions, and processor functions).
Input/output circuitry612 can convert (and encode/decode, if necessary) data, analog signals and other signals (e.g., physical contact inputs, physical movements, analog audio signals, etc.) into digital data, and vice-versa. The digital data can be provided to and received fromprocessor602,storage604, andmemory610, or any other component of portableelectronic device600. Although input/output circuitry612 is illustrated inFIG. 6 as a single component of portableelectronic device600, a plurality of input/output circuitry can be included in portableelectronic device600. Input/output circuitry612 can be used to interface with any input or output component. For example, portableelectronic device600 can include specialized input circuitry associated with input devices such as, for example, one or more microphones, cameras, proximity sensors, accelerometers, ambient light detectors, magnetic card readers, etc. Portableelectronic device600 can also include specialized output circuitry associated with output devices such as, for example, one or more speakers, etc.
Communications circuitry614 can permit portableelectronic device600 to communicate with one or more servers or other devices using any suitable communications protocol. For example,communications circuitry614 can support Wi-Fi (e.g., a802.11 protocol), Ethernet, Bluetooth™ (which is a trademark owned by Bluetooth Sig, Inc.) high frequency systems (e.g., 900 MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, TCP/IP (e.g., any of the protocols used in each of the TCP/IP layers), HTTP, BitTorrent, FTP, RTP, RTSP, SSH, any other communications protocol, or any combination thereof. The portableelectronic device600 can include a sensor. Additionally, the portableelectronic device600 includes a client program, such asweb browser616, for retrieving, presenting, and traversing information resources on the World Wide Web.
Context data application618 can time stamp acquired context data. Additionally,context data application618 can also encode format context data for communication according to a protocol utilized by the communications network(s)100. Moreover,context data application618 can receive context data inquiries from and provide the context data to a remote application (e.g. such as a context data puller204). Text message application(s)619 provides applications for the composing, sending and receiving of text messages.
The portableelectronic device600 further includes at least onesensor620. In one embodiment, thesensor620 can be a device that measures, detects or senses an attribute of the mobile device's environment and then converts the attribute into a machine-readable form that can be utilized by an application such as the context data manager202). In some embodiments, asensor620 can be a device that measures an attribute of a physical quantity and converts the attribute into a user-readable or computer-processable signal. In certain embodiments, asensor620 can also measure an attribute of a data environment, a computer environment and a user environment in addition to a physical environment. For example, in another embodiment, asensor620 may also be a virtual device that measures an attribute of a virtual environment such as a gaming environment. Example sensors include, inter alia, global positioning system receivers, accelerometers, inclinometers, position sensors, barometers, WiFi sensors, RFID sensors, near-filed communication (NFC) devices, gyroscopes, pressure sensors, pressure gauges, time pressure gauges, torque sensors, ohmmeters, thermometers, infrared sensors, microphones, image sensors (e.g. digital cameras), biosensors (e.g. photometric biosensors, electrochemical biosensors), capacitance sensors, radio antennas and /or capacitance probes. It should be noted that the other sensor devices other than those listed can also be utilized to ‘sense’ context data.
FIG. 7 is a functional block diagram of an exemplary computing device, according to one embodiment. In some embodiments, the computing device can function asserver700 such as contextdata analysis server110, social networking website server(s)110 and/or a third-party server supporting amashup application114. In a basic configuration,server700 typically includes at least oneprocessing unit702 andsystem memory704. Depending on the exact Configuration and type of computing device,system memory704 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two.System memory704 typically includes anoperating system706, one ormore program modules708, and may includeprogram data710. In some embodiments, thesystem memory704 may also include thecontext data manager202 or202′.Server700 can also include additional features or functionalities. For example,server700 can include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG. 7 byremovable storage712 andnon-removable storage714. In some embodiments,data stores108 and112 can function as additional storage. Computer storage media can include volatile and 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. Thesystem memory704,removable storage712 andnon-removable storage714 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which storage media may be part ofserver700.Server700 can also include input device(s)716 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s)718 such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here.
Server700 can also include communication connections720 that allow the device to communicate with other computing devices over a network. Communication connections720 are one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media can include wired media such as a wired network or direct-wired connection, and/or wireless media such as acoustic, radio frequency, infrared and other wireless media. The computer readable media as used herein can include both storage media and communication media according to various example embodiments.
FIG. 8 illustrates a block diagram of anexemplary computing environment800 in accordance with the methods and operations described inFIGS. 9-11B, infra. Thesystem800 includes one or more client(s)804. The client(s)804 can be hardware circuitry and/or software applications (e.g., threads, processes, computing devices), that initiates communications with the server(s)806 according to the client-server communication paradigm. The client(s)804 can house cookie(s) and/or associated contextual information to perform the methods and operations described inFIGS. 9-11B, infra, for example.
Thesystem800 also includes one or more server(s)806. In some embodiments, the server(s)806 can also be hardware circuitry and/or software applications (e.g., threads, processes, computing devices). The server(s)806 can house threads to perform the methods and operations described inFIGS. 9-11B, infra, for example. One possible communication between aclient804 and aserver806 can be in the form of a data packet adapted to be transmitted between two or more computer processes. The data packet can include a cookie and/or associated contextual information, for example. Thesystem800 includes a communication framework802 (e.g.,communications network100, the Internet, etc) that can be employed to facilitate communications between the client(s)804 and the server(s)806.
Communications can be facilitated via a wired (including optical fiber) and/or wireless technology. The client(s)804 can be operatively connected to one or more client data store(s)810 that can be employed to store information local to the client(s)804 (e.g., cookie(s) and/or associated contextual information). Similarly, the server(s)806 can be operatively connected to one or more server data store(s)812 that can be employed to store information local to the server(s)806. It should be noted that, in some embodiments, a particular application can function as a client in one context or operation and as a server in another context or operation.
RegardingFIG. 9-11B, for purposes of simplicity of explanation, the one or more methodologies shown herein, e.g., in the form of a flow chart, are shown and described as a series of acts, it is to be understood and appreciated that the subject innovation is not limited by the order of acts, as some acts may, in accordance with some embodiments, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be required to implement a methodology in accordance with some embodiments.
FIG. 9 illustrates a methodology of incorporating a message component and a context data into a webpage as a microblog post, according one embodiment. Inoperation900, a message component is provided. In some embodiments, a mobile gateway can be utilized to link a server (e.g.106 and110) to a cellular network. In some embodiments, the message component can be in the form of an IP packet. The server can received the IP packet via an IP network connection. In some embodiments, the message can be a text message generated by thetext message component619. Inoperation902, a context data related to a context of a computing device used to generate the message component is provided. For example, the context data can be acquired by asensor620 integrated into the portableelectronic device600. In another example, context data can be derived from other sources such as cellular network server and/or those methods described supra. Inoperation904, the message component and the context data are associated in a microblog post. For example, in some embodiments, thecontext data manager202 can generate metadata that provide the association. In some embodiments, the association can include a hyperlink embedded in a text message to a mashup application with information about the context data. Inoperation906, the context data is communicated to a web browser. Inoperation908, the message component is communicated to a web browser. For example, a web browser operating on a mobile device102A-N can request a microblog webpage. The server (e.g. the social network website server110) can integrate the message and the context data into a microblog post with a markup language (e.g. html) and provide a web page to the mobile device102A-N. In another example, the server can integrate a hyperlink to another webpage with information about the context data.
FIG. 10 illustrates a methodology that implements one or more embodiments for context-enriched microblog posting. Inoperation1000, a short message is provided. Inoperation1002, a location data of the sending device of the short message is provided. Inoperation1004, the short message is associated with the location data. Inoperation1006, a short message and a location data is rendered into a format accessible by a web browser. The elements ofFIGS. 1-8 can be utilized to perform operations1000-1006. For example, a mobile device102A-N can provide a short message and/or location data. Thecontext data manager202 or202′ can associate the location data with the short message. The socialnetworking website server110 can render a web page that includes at least one of the short message and the location data (e.g. as a social networking personal webpage status update) as well as hyperlinks to other web pages with additional information about the short message and/or the location data.
FIGS. 11A-B illustrate another methodology that implements one or more embodiments for context-enriched microblog posting. Inoperation1100, an SMS text is decoded. Inoperation1102, the SMS text is parsed. Inoperation1104, a meaning of an SMS text term is determined. Inoperation1106, a context data related to the meaning of the SMS text term is determined. Inoperation1108, the SMS text is annotated with a markup language. Inoperation1110, the context data is annotated with a markup language. Inoperation1112, the SMS text and the context data are linked together on a web page document. The elements ofFIGS. 1-8 can be utilized to perform operations1100-1112, according to various embodiments.
Although the present embodiments have been described with reference to specific example embodiments, various modifications and changes can be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices, modules, etc. described herein can be enabled and operated using hardware circuitry, firmware, software or any combination of hardware, firmware, and software (e.g., embodied in a machine-readable medium).
In addition, it will be appreciated that the various operations, processes, and methods disclosed herein can be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer system), and can be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.