US20120151381A1 - Defining actions for data streams via icons - Google Patents

Defining actions for data streams via icons Download PDF

Info

Publication number
US20120151381A1
US20120151381A1 US12/967,078 US96707810A US2012151381A1 US 20120151381 A1 US20120151381 A1 US 20120151381A1 US 96707810 A US96707810 A US 96707810A US 2012151381 A1 US2012151381 A1 US 2012151381A1
Authority
US
United States
Prior art keywords
user
incoming data
data stream
computing device
actions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US12/967,078
Other versions
US9449308B2 (en
Inventor
Rachel Schiff
Zhihong Mao
Richard Ignacio Zaragoza
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US12/967,078 priority Critical patent/US9449308B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAO, ZHIHONG, ZARAGOZA, RICHARD IGNACIO, SCHIFF, RACHEL
Publication of US20120151381A1 publication Critical patent/US20120151381A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Application granted granted Critical
Publication of US9449308B2 publication Critical patent/US9449308B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72436User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for text messaging, e.g. SMS or e-mail
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]

Definitions

  • Visual programming languages enable users without sophisticated programming knowledge to develop programs.
  • Existing systems provide the visual programming languages primarily for developing basic games and operate based on physical input from the user (e.g., moving a gaming entity around a screen).
  • Some existing systems enable the user to organize incoming email based on keywords in the messages (e.g., words in the subject line). However, these existing systems are typically not icon-based and are limited to organizing and storing the email messages.
  • Embodiments of the disclosure enable conditional formatting of an incoming data stream on a user computing device.
  • a plurality of icons is provided to a user of the user computing device.
  • Each of the icons corresponds to one or more visual programming constructs that include conditions and actions.
  • a selection of the provided icons is received from the user computing device. The selection corresponds to at least one of the conditions and to at least one of the actions.
  • the condition relates to at least one element in the incoming data stream. Without compilation of the received selection, at least one incoming data stream is analyzed based on the condition to detect a presence of the element within the incoming data stream. The action is performed based on the analysis.
  • FIG. 1 is an exemplary block diagram illustrating a content reader processing one or more incoming data streams based on rules.
  • FIG. 2 is an exemplary block diagram illustrating a user computing device storing rules, icons corresponding to visual programming constructs, and computer-executable components for applying the rules to incoming data streams.
  • FIG. 3 is an exemplary flow chart illustrating operation of a computing device to define rules based on selected conditions and actions.
  • FIG. 4 is an exemplary flow chart illustrating operation of a computing device to apply rules to an incoming data stream.
  • FIG. 5A is an exemplary user interface illustrating a set of rules for processing a social network feed.
  • FIG. 5B is an exemplary user interface illustrating application of the rules from FIG. 5A to a social network feed.
  • FIG. 6A is an exemplary user interface illustrating a set of rules for processing a social network feed.
  • FIG. 6B is an exemplary user interface illustrating application of the rules from FIG. 6A to a social network feed.
  • embodiments of the disclosure enable conditional performance of actions 210 in incoming data streams 102 .
  • a visual format of the social network feeds is altered per rules 106 defined by a user 108 .
  • aspects of the disclosure enable the user 108 to create a personalized view of content such as in microblog postings. For example, items (e.g., messages) from a selected person in the incoming data streams 102 may be displayed differently from the items from someone else.
  • an exemplary block diagram illustrates a content reader 104 processing one or more incoming data streams 102 based on rules 106 .
  • the content reader 104 receives the incoming data streams 102 via any network or combination of networks.
  • the incoming data streams 102 include one or more of the following: social network feeds, text messages (e.g., short message service), instant messages, and electronic mail messages.
  • the rules 106 represent a selection of visual programming constructs 214 .
  • the content reader 104 presents the processed, incoming data streams 102 to the user 108 .
  • applying the rules 106 alters the incoming data streams 102 .
  • applying the rules 106 signals actions 210 to occur (e.g. play audio, video, etc.).
  • an exemplary block diagram illustrates the user computing device 202 storing rules 106 , icons 212 corresponding to visual programming constructs 214 , and computer-executable components for applying the rules 106 to incoming data streams 102 .
  • the computing device associated with the user 108 represents a system for conditional formatting of at least one of the incoming data streams 102 on the user computing device 202 .
  • the user computing device 202 represents any device executing instructions (e.g., as application programs, operating system functionality, or both) to implement the operations and functionality associated with the user computing device 202 .
  • the user computing device 202 may include a mobile computing device or any other portable device.
  • the mobile computing device includes a mobile telephone, laptop, netbook, gaming device, and/or portable media player.
  • the user computing device 202 may also include less portable devices such as desktop personal computers, kiosks, and tabletop devices. Additionally, the user computing device 202 may represent a group of processing units or other computing devices.
  • the user computing device 202 has at least one processor 204 and a memory area 206 .
  • the processor 204 includes any quantity of processing units, and is programmed to execute computer-executable instructions for implementing aspects of the disclosure. The instructions may be performed by the processor 204 or by multiple processors executing within the user computing device 202 , or performed by a processor external to the user computing device 202 . In some embodiments, the processor 204 is programmed to execute instructions such as those illustrated in the figures (e.g., FIG. 3 and FIG. 4 ).
  • the user computing device 202 further has one or more computer-readable media such as the memory area 206 .
  • the memory area 206 includes any quantity of media associated with or accessible by the user computing device 202 .
  • the memory area 206 may be internal to the computing device (as shown in FIG. 2 ), external to the user computing device 202 (not shown), or both (not shown).
  • the memory area 206 further stores one or more of the rules 106 , such as rule # 1 through rule #N.
  • the rule 106 may be user-defined and/or defined by another entity.
  • Each of the rules 106 includes one or more conditions 208 and one or more corresponding actions 210 .
  • the conditions 208 may be nested or connected such as by a Boolean operator.
  • Each of the conditions 208 relates to at least one element possibly present in the incoming data stream 102 .
  • the conditions 208 also include one or more of the following: a timer, a variable, and a counter.
  • Exemplary elements include, but are not limited to, words, phrases, keywords, objects, images, or other patterns within the incoming data stream 102 .
  • Exemplary elements may also include properties describing the incoming data streams 102 , or user-initiated actions (e.g., a click or hover) during display of the incoming data streams 102 .
  • the memory area 206 further stores one or more icons 212 each representing one or more visual programming constructs 214 combined to form the conditions 208 and actions 210 .
  • Exemplary icons 212 are illustrated in FIG. 5 and FIG. 6 .
  • the visual programming constructs 214 comprise “if,” “then,” “else,” and other constructs including “not” and user-initiated actions (e.g., clicks).
  • the memory area 206 further stores one or more computer-executable components.
  • Exemplary components include a user interface component 216 , a communications interface component 218 , a content reader component 220 , and a memory component 222 .
  • the user interface component 216 when executed by the processor 204 , causes the processor 204 to display a plurality of the icons 212 to the user 108 .
  • Each of the icons 212 corresponds to one or more of the visual programming constructs 214 .
  • the user interface component 216 receives from the user 108 a selection of the displayed icons 212 .
  • the selection represents at least one of the conditions 208 and at least one of the actions 210 . In some embodiments, at least one of the conditions 208 relates to at least one element possibly present in the incoming data stream 102 .
  • the user interface component 216 includes a graphics card for displaying data to the user 108 and receiving data from the user 108 .
  • the user interface component 216 may also include computer-executable instructions (e.g., a driver) for operating the graphics card.
  • the user interface component 216 may include a display (e.g., a touch screen display) and/or computer-executable instructions (e.g., a driver) for operating the display.
  • the user interface component 216 may also include one or more of the following to provide data to the user 108 or receive data from the user 108 : speakers, a sound card, a camera, a microphone, a vibration motor, and one or more accelerometers.
  • the user 108 may input commands or manipulate data by moving the user computing device 202 in a particular way.
  • the memory component 222 when executed by the processor 204 , causes the processor 204 to store the condition 208 and the action 210 from the selection received by the user interface component 216 as one of the rules 106 in the memory area 206 .
  • the communications interface component 218 when executed by the processor 204 , causes the processor 204 to receive one of the incoming data streams 102 .
  • the communications interface component 218 includes a network interface card and/or computer-executable instructions (e.g., a driver) for operating the network interface card.
  • the content reader component 220 When executed by the processor 204 , the content reader component 220 causes the processor 204 to analyze the incoming data stream 102 based on the selected condition 208 to detect the presence of the element corresponding to the condition 208 . For example, the content reader component 220 scans the incoming data stream 102 for a particular word, keyword, phrase, or the like. The content reader component 220 analyzes the incoming data stream 102 without compilation of the selected condition 208 and/or the selected action 210 received by the user interface component 216 . That is, aspects of the disclosure do not separately compile the selected condition 208 and/or selection action 210 into executable code. Rather, aspects of the disclosure operate on the selected condition 208 and the selected action 210 as parameters, operands, arguments, or other input to perform the analysis.
  • the content reader component 220 performs the corresponding action 210 .
  • the content reader component 220 alters a visual format of the element in accordance with the action 210 .
  • the user interface component 216 displays to the user 108 the altered visual format of the element in the incoming data stream 102 .
  • the content reader component 220 may take no action and leave the incoming data stream 102 intact. Alternatively or in addition, the content reader component 220 may perform an alternative action 210 specified by the rules 106 .
  • the user 108 may decide to share one or more of the rules 106 with another user 108 .
  • the communications interface component 218 transmits the stored rule 106 to another user 108 , such as by transmitting a file such as in an extensible markup language (XML) format or other format.
  • XML extensible markup language
  • the receiving user is able to apply the shared rules to see the same formatting and action 210 as the sending user, to further share the rules 106 with others, or use or modify the rules.
  • the user interface component 216 , communications interface component 218 , and content reader component 220 are packaged as a downloadable application.
  • the user 108 navigates to a marketplace or a web site, downloads the package application, installs the application, and executes the installed application to perform the functionality described herein.
  • the content reader component 220 may execute as a client-side application communicating with a server-side counterpart application.
  • at least a portion of the functionality of the content reader is performed by the server-side counterpart application (e.g., in a cloud computing environment).
  • the server-side counterpart application operates as a network-accessible application that scans the incoming data stream 102 and provided output and determinations from the scanning operations to the client-side application.
  • an exemplary flow chart illustrates operation of the computing device to define the rules 106 based on selected conditions 208 and actions 210 .
  • one or more of the visual programming constructs 214 are provided to the user 108 as icons 212 .
  • the icons 212 may be presented in a library, menu, list, popup or hover window, or the like.
  • each of the available visual programming constructs 214 is provided to the user 108 .
  • a subset of the available visual programming constructs 214 is provided to the user 108 .
  • some of the visual programming constructs 214 may apply only to particular types of computing devices or operating systems.
  • the user 108 selects one or more of the incoming data streams 102 to which the rule 106 will apply. The selection is received at 304 .
  • the user 108 selects the icons 212 corresponding to the visual programming constructs 214 to define at least one condition 208 , and the computing device receives the selection of the condition 208 at 306 .
  • the defined condition 208 relates to at least one element that may be present in the incoming data stream 102 .
  • Exemplary conditions 208 relate to one or more of the following: the presence of a word in the incoming data stream 102 , a user associated with the incoming data stream 102 , a property of the user associated with the incoming data stream 102 , a time associated with the incoming data stream 102 , a type of operating system executing on the mobile computing device, and a model/type of the mobile computing device.
  • the user 108 selects the icons 212 corresponding to the visual programming constructs 214 to define at least one action 210 , and the computing device receives the selection of the action 210 at 308 . Based on the received selections, the rule 106 is created at 310 and stored, for example, in the memory area 206 .
  • an exemplary flow chart illustrates operation of the computing device to apply rules 106 to at least one of the incoming data streams 102 .
  • the operations illustrated in FIG. 4 are performed in real-time as the rules 106 are created, without any compilation of the created rules 106 .
  • the incoming data stream 102 is analyzed to determine whether any of the conditions 208 in the rules 106 are satisfied. For example, the incoming data stream 102 is scanned or otherwise searched for the presence of the element(s) identified by the conditions 208 . If the element is detected in the incoming data stream 102 at 404 , the corresponding action 210 is performed at 406 . In some embodiments, the incoming data stream 102 is altered due to performance of the corresponding action 210 in response to detection of the element. For example, a visual format of the detected element may be altered (e.g., font change, color change, background image displayed, etc.). In such embodiments, the altered incoming data stream 102 is presented to the user 108 at 408 . For example, the incoming data stream 102 is displayed to the user 108 with the altered format of the detected element therein.
  • a visual format of the detected element may be altered (e.g., font change, color change, background image displayed, etc.).
  • the altered incoming data stream 102 is presented to
  • the action 210 performed at 406 includes replacing text in the incoming data stream 102 with other text or an image.
  • the action 210 is to hide at least a portion of the incoming data stream 102 .
  • a parent user may wish to block or filter messages from a particular sender or pertaining, a particular topic, or a conversation thread.
  • performing the action 210 includes one or more of the following: displaying an animation, playing a sound, changing a font color of text in the incoming data stream 102 , and changing a background color of a user interface of the user computing device 202 .
  • customizations from one computing device may not carry over to another computing device.
  • embodiments of the disclosure enable the user 108 to define one of the selected conditions 208 to check a type (e.g., hardware and/or software) of the user computing device 202 before applying other rules 106 .
  • the same set of rules 106 may be used on a plurality of the user computing devices 202 .
  • the rules 106 specific to a particular type of user computing device 202 are applied only when the user computing device 202 is of the particular type.
  • Exemplary types of the user computing devices 202 include one or more of the following: a laptop, a mobile computing device, a gaming console, and a television.
  • an exemplary user interface 502 illustrates a set of rules for processing a social network feed.
  • the set of rules is associated with an application entitled “My own social feed.”
  • Three rules are shown in the user interface 502 in FIG. 5A .
  • the condition is represented by an eye icon followed by the word “boyfriend.”
  • the corresponding action is represented by the word “show” followed by an italicized letter “I.”
  • the first rule 504 corresponds to the following statement: “if see the word ‘boyfriend’ then show the word ‘boyfriend’ in italics.”
  • the condition of the second rule 506 is identical to the condition in the first rule.
  • the action for the second rule 506 is represented by the word “show” followed by an image of a heart.
  • the second rule 506 corresponds to the following statement: “if see the word ‘boyfriend’ then show an image of a heart.”
  • the condition is represented by an eye icon followed by “@jennyp”.
  • the corresponding action is represented by the word “replace” as an icon and then the word “JennyPenny.”
  • the third rule 508 corresponds to the following statement: “if see a message from jennyp, then replace with JennyPenny.”
  • the user 108 may also identify an action to be performed if the element is not found. For example, if the word “boyfriend” does not appear in one of the comments, then the user 108 may specify that another image be displayed.
  • the user 108 has created these three rules by selecting and arranging the icons in the user interface. For example, a drop-down menu of the icons may be available, or within a hover window (e.g., accessed via a single- or double-tap of a screen of the computing device).
  • a drop-down menu of the icons may be available, or within a hover window (e.g., accessed via a single- or double-tap of a screen of the computing device).
  • an exemplary user interface illustrates application of the rules from FIG. 5A to a social network feed.
  • two comments 510 , 516 from jennyp are indicated as being from JennyPenny per the third rule 508 .
  • Two comments 512 , 514 with the word “boyfriend” have been altered to show the word “boyfriend” in italics followed by a heart image per the first rule 504 and the second rule 506 .
  • an exemplary user interface 602 illustrates another set of rules for processing a social network feed.
  • Three rules are shown in the user interface of FIG. 6A .
  • the condition is represented by an eye icon followed by the “#worldcup” hash tag.
  • the corresponding action is represented by the word “show” followed by an image of a soccer ball.
  • the first rule 604 corresponds to the following statement: “if see the ‘#worldcup’ hash tag then show an image of a soccer ball.”
  • the condition is represented by an eye icon followed by the “#USA” hash tag.
  • the corresponding action is represented by the word “show” following by a bolded letter “B”.
  • the second rule 606 corresponds to the following statement: “if see the “#USA” hash tag then show the word “#USA” bolded.”
  • the condition of the third rule 608 is identical to the condition in the second rule.
  • the action for the third rule 608 is represented by the word “show” following by the word “red”.
  • the third rule 608 corresponds to the following statement: “if see the “#USA” hash tag then show the “#USA” hash tag in red color.”
  • an exemplary user interface illustrates application of the rules from FIG. 6A to a social network feed.
  • a comment 612 from Victor has been altered based on the second rule 606 and the third rule 608 from FIG. 6A to show “#USA” in bold and in red.
  • a comment 614 from Carlos including the “#worldcup” hash tag has resulted in the display of an image of a soccer ball per the first rule 604 from FIG. 6A .
  • Comment 610 from Scott is displayed without alteration because none of the conditions were satisfied by this comment.
  • While the icons 212 and lack of compilation described herein enable the user 108 to quickly and easily define the conditions 208 and actions 210 , aspects of the disclosure are operable with compiled rules.
  • embodiments of the disclosure may have built-in rules defined by a developer or other entity responsible for such embodiments.
  • the performance of the actions 210 alters the look of the content reader.
  • portions of the functionality or settings of the content reader may be enabled or disabled.
  • a reply button may be disabled or removed in a message from a particular sender.
  • functionality on the user computing device 202 such as location services, contact lists, and searching may be invoked.
  • An additional example of a statement made from the visual programming constructs 214 includes “if I don't see the word ‘awesome’ for time 1 hour then show message “1 boring hour.”
  • the actions 210 may also include computations such as in the following example: “when I see the word ‘love’ add 1 to counter, when counter equals 10 then play audio.”
  • FIG. 1 or FIG. 2 At least a portion of the functionality of the various elements in FIG. 1 or FIG. 2 may be performed by other elements in FIG. 1 and/or FIG. 2 , or an entity (e.g., processor, web service, server, application program, computing device, etc.) not shown in FIG. 1 or FIG. 2 .
  • entity e.g., processor, web service, server, application program, computing device, etc.
  • the operations illustrated in FIG. 3 and FIG. 4 may be implemented as software instructions encoded on a computer-readable medium, in hardware programmed or designed to perform the operations, or both.
  • aspects of the disclosure may be implemented as a system on a chip.
  • notice is provided to the users of the collection of the data (e.g., via a dialog box or preference setting) and users are given the opportunity to give or deny consent for the monitoring and/or collection.
  • the consent may take the form of opt-in consent or opt-out consent.
  • Exemplary computer readable media include flash memory drives, digital versatile discs (DVDs), compact discs (CDs), floppy disks, and tape cassettes.
  • computer readable media comprise computer storage media and communication media.
  • Computer storage media store information such as computer readable instructions, data structures, program modules or other data.
  • Communication media typically embody 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 include any information delivery media. Combinations of any of the above are also included within the scope of computer readable media.
  • embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations.
  • Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • aspects of the invention transform a general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.
  • inventions illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the invention constitute exemplary means for providing a visual programming language enabling the user 108 to define conditions 208 and corresponding actions 210 for processing incoming data streams 102 , and exemplary means for processing incoming data streams 102 to perform actions 210 based on conditions 208 detected in incoming data streams 102 .

Abstract

Embodiments provide visual programming constructs including icons representing conditions and actions for processing incoming data streams. A user selects icons corresponding to at least one of the conditions and at least one of the actions to define a rule. The selected condition relates to at least one element possibly present in the incoming data stream. Without compilation of the rule, at least one incoming data stream is analyzed based on the condition to detect a presence of the element within the incoming data stream. The action is performed based on the analysis. In some embodiments, formatting of the incoming data streams is altered according to the conditions and actions to personalize the incoming data stream.

Description

    BACKGROUND
  • Visual programming languages enable users without sophisticated programming knowledge to develop programs. Existing systems provide the visual programming languages primarily for developing basic games and operate based on physical input from the user (e.g., moving a gaming entity around a screen).
  • Some existing systems enable the user to organize incoming email based on keywords in the messages (e.g., words in the subject line). However, these existing systems are typically not icon-based and are limited to organizing and storing the email messages.
  • SUMMARY
  • Embodiments of the disclosure enable conditional formatting of an incoming data stream on a user computing device. A plurality of icons is provided to a user of the user computing device. Each of the icons corresponds to one or more visual programming constructs that include conditions and actions. A selection of the provided icons is received from the user computing device. The selection corresponds to at least one of the conditions and to at least one of the actions. The condition relates to at least one element in the incoming data stream. Without compilation of the received selection, at least one incoming data stream is analyzed based on the condition to detect a presence of the element within the incoming data stream. The action is performed based on the analysis.
  • This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is an exemplary block diagram illustrating a content reader processing one or more incoming data streams based on rules.
  • FIG. 2 is an exemplary block diagram illustrating a user computing device storing rules, icons corresponding to visual programming constructs, and computer-executable components for applying the rules to incoming data streams.
  • FIG. 3 is an exemplary flow chart illustrating operation of a computing device to define rules based on selected conditions and actions.
  • FIG. 4 is an exemplary flow chart illustrating operation of a computing device to apply rules to an incoming data stream.
  • FIG. 5A is an exemplary user interface illustrating a set of rules for processing a social network feed.
  • FIG. 5B is an exemplary user interface illustrating application of the rules from FIG. 5A to a social network feed.
  • FIG. 6A is an exemplary user interface illustrating a set of rules for processing a social network feed.
  • FIG. 6B is an exemplary user interface illustrating application of the rules from FIG. 6A to a social network feed.
  • Corresponding reference characters indicate corresponding parts throughout the drawings.
  • DETAILED DESCRIPTION
  • Referring to the figures, embodiments of the disclosure enable conditional performance of actions 210 in incoming data streams 102. In some embodiments, a visual format of the social network feeds is altered per rules 106 defined by a user 108. Aspects of the disclosure enable the user 108 to create a personalized view of content such as in microblog postings. For example, items (e.g., messages) from a selected person in the incoming data streams 102 may be displayed differently from the items from someone else.
  • Referring again to FIG. 1, an exemplary block diagram illustrates a content reader 104 processing one or more incoming data streams 102 based on rules 106. The content reader 104 receives the incoming data streams 102 via any network or combination of networks. In some embodiments, the incoming data streams 102 include one or more of the following: social network feeds, text messages (e.g., short message service), instant messages, and electronic mail messages. The rules 106, as described herein, represent a selection of visual programming constructs 214. After applying the rules 106 to the incoming data streams 102, the content reader 104 presents the processed, incoming data streams 102 to the user 108. In some embodiments, applying the rules 106 alters the incoming data streams 102. Alternatively or in addition, applying the rules 106 signals actions 210 to occur (e.g. play audio, video, etc.).
  • The content reader 104 executes, for example, on a user computing device 202. The content reader 104 may be a standalone application, executing within a browser, or have other structure. In other embodiments, the content reader 104 is accessible by the user computing device 202 via a network such as the Internet. In such embodiments, the content reader 104 is accessible via a network address such as a uniform resource locator (URL). Similarly, the rules 106 may be stored locally with the content reader 104, or may be stored remotely such as in a cloud computing environment.
  • Referring next to FIG. 2, an exemplary block diagram illustrates the user computing device 202 storing rules 106, icons 212 corresponding to visual programming constructs 214, and computer-executable components for applying the rules 106 to incoming data streams 102. In the example of FIG. 2, the computing device associated with the user 108 represents a system for conditional formatting of at least one of the incoming data streams 102 on the user computing device 202. The user computing device 202 represents any device executing instructions (e.g., as application programs, operating system functionality, or both) to implement the operations and functionality associated with the user computing device 202. The user computing device 202 may include a mobile computing device or any other portable device. In some embodiments, the mobile computing device includes a mobile telephone, laptop, netbook, gaming device, and/or portable media player. The user computing device 202 may also include less portable devices such as desktop personal computers, kiosks, and tabletop devices. Additionally, the user computing device 202 may represent a group of processing units or other computing devices.
  • The user computing device 202 has at least one processor 204 and a memory area 206. The processor 204 includes any quantity of processing units, and is programmed to execute computer-executable instructions for implementing aspects of the disclosure. The instructions may be performed by the processor 204 or by multiple processors executing within the user computing device 202, or performed by a processor external to the user computing device 202. In some embodiments, the processor 204 is programmed to execute instructions such as those illustrated in the figures (e.g., FIG. 3 and FIG. 4).
  • The user computing device 202 further has one or more computer-readable media such as the memory area 206. The memory area 206 includes any quantity of media associated with or accessible by the user computing device 202. The memory area 206 may be internal to the computing device (as shown in FIG. 2), external to the user computing device 202 (not shown), or both (not shown).
  • The memory area 206 further stores one or more of the rules 106, such as rule # 1 through rule #N. The rule 106 may be user-defined and/or defined by another entity. Each of the rules 106 includes one or more conditions 208 and one or more corresponding actions 210. For example, the conditions 208 may be nested or connected such as by a Boolean operator. Each of the conditions 208 relates to at least one element possibly present in the incoming data stream 102. In some embodiments, the conditions 208 also include one or more of the following: a timer, a variable, and a counter.
  • Exemplary elements include, but are not limited to, words, phrases, keywords, objects, images, or other patterns within the incoming data stream 102. Exemplary elements may also include properties describing the incoming data streams 102, or user-initiated actions (e.g., a click or hover) during display of the incoming data streams 102.
  • The memory area 206 further stores one or more icons 212 each representing one or more visual programming constructs 214 combined to form the conditions 208 and actions 210. Exemplary icons 212 are illustrated in FIG. 5 and FIG. 6. In some embodiments, the visual programming constructs 214 comprise “if,” “then,” “else,” and other constructs including “not” and user-initiated actions (e.g., clicks).
  • The memory area 206 further stores one or more computer-executable components. Exemplary components include a user interface component 216, a communications interface component 218, a content reader component 220, and a memory component 222. The user interface component 216, when executed by the processor 204, causes the processor 204 to display a plurality of the icons 212 to the user 108. Each of the icons 212 corresponds to one or more of the visual programming constructs 214. The user interface component 216 receives from the user 108 a selection of the displayed icons 212. The selection represents at least one of the conditions 208 and at least one of the actions 210. In some embodiments, at least one of the conditions 208 relates to at least one element possibly present in the incoming data stream 102.
  • In some embodiments, the user interface component 216 includes a graphics card for displaying data to the user 108 and receiving data from the user 108. The user interface component 216 may also include computer-executable instructions (e.g., a driver) for operating the graphics card. Further, the user interface component 216 may include a display (e.g., a touch screen display) and/or computer-executable instructions (e.g., a driver) for operating the display. The user interface component 216 may also include one or more of the following to provide data to the user 108 or receive data from the user 108: speakers, a sound card, a camera, a microphone, a vibration motor, and one or more accelerometers. For example, the user 108 may input commands or manipulate data by moving the user computing device 202 in a particular way.
  • The memory component 222, when executed by the processor 204, causes the processor 204 to store the condition 208 and the action 210 from the selection received by the user interface component 216 as one of the rules 106 in the memory area 206.
  • The communications interface component 218, when executed by the processor 204, causes the processor 204 to receive one of the incoming data streams 102. In some embodiments, the communications interface component 218 includes a network interface card and/or computer-executable instructions (e.g., a driver) for operating the network interface card.
  • When executed by the processor 204, the content reader component 220 causes the processor 204 to analyze the incoming data stream 102 based on the selected condition 208 to detect the presence of the element corresponding to the condition 208. For example, the content reader component 220 scans the incoming data stream 102 for a particular word, keyword, phrase, or the like. The content reader component 220 analyzes the incoming data stream 102 without compilation of the selected condition 208 and/or the selected action 210 received by the user interface component 216. That is, aspects of the disclosure do not separately compile the selected condition 208 and/or selection action 210 into executable code. Rather, aspects of the disclosure operate on the selected condition 208 and the selected action 210 as parameters, operands, arguments, or other input to perform the analysis.
  • If the element is detected within the incoming data stream 102, the content reader component 220 performs the corresponding action 210. In some embodiments, the content reader component 220 alters a visual format of the element in accordance with the action 210. The user interface component 216 displays to the user 108 the altered visual format of the element in the incoming data stream 102.
  • If the element is not detected, then the content reader component 220 may take no action and leave the incoming data stream 102 intact. Alternatively or in addition, the content reader component 220 may perform an alternative action 210 specified by the rules 106.
  • In some embodiments, the user 108 may decide to share one or more of the rules 106 with another user 108. The communications interface component 218 transmits the stored rule 106 to another user 108, such as by transmitting a file such as in an extensible markup language (XML) format or other format. After sharing the rules 106, the receiving user is able to apply the shared rules to see the same formatting and action 210 as the sending user, to further share the rules 106 with others, or use or modify the rules.
  • In embodiments in which the user computing device 202 is a mobile computing device such as a mobile telephone, the user interface component 216, communications interface component 218, and content reader component 220 are packaged as a downloadable application. In such embodiments, the user 108 navigates to a marketplace or a web site, downloads the package application, installs the application, and executes the installed application to perform the functionality described herein.
  • The content reader component 220 may execute as a client-side application communicating with a server-side counterpart application. In such embodiments, at least a portion of the functionality of the content reader is performed by the server-side counterpart application (e.g., in a cloud computing environment). For example, the server-side counterpart application operates as a network-accessible application that scans the incoming data stream 102 and provided output and determinations from the scanning operations to the client-side application.
  • Operation of embodiments of the disclosure to create the rules 106 is next described.
  • Referring next to FIG. 3, an exemplary flow chart illustrates operation of the computing device to define the rules 106 based on selected conditions 208 and actions 210. At 302, one or more of the visual programming constructs 214 are provided to the user 108 as icons 212. For example, the icons 212 may be presented in a library, menu, list, popup or hover window, or the like. In some embodiments, each of the available visual programming constructs 214 is provided to the user 108. In other embodiments, a subset of the available visual programming constructs 214 is provided to the user 108. For example, some of the visual programming constructs 214 may apply only to particular types of computing devices or operating systems.
  • To create one of the rules 106, the user 108 selects one or more of the incoming data streams 102 to which the rule 106 will apply. The selection is received at 304. The user 108 selects the icons 212 corresponding to the visual programming constructs 214 to define at least one condition 208, and the computing device receives the selection of the condition 208 at 306. The defined condition 208 relates to at least one element that may be present in the incoming data stream 102. Exemplary conditions 208 relate to one or more of the following: the presence of a word in the incoming data stream 102, a user associated with the incoming data stream 102, a property of the user associated with the incoming data stream 102, a time associated with the incoming data stream 102, a type of operating system executing on the mobile computing device, and a model/type of the mobile computing device.
  • The user 108 selects the icons 212 corresponding to the visual programming constructs 214 to define at least one action 210, and the computing device receives the selection of the action 210 at 308. Based on the received selections, the rule 106 is created at 310 and stored, for example, in the memory area 206.
  • Referring next to FIG. 4, an exemplary flow chart illustrates operation of the computing device to apply rules 106 to at least one of the incoming data streams 102. In some embodiments, the operations illustrated in FIG. 4 are performed in real-time as the rules 106 are created, without any compilation of the created rules 106.
  • At 402, without compiling the rules 106, the incoming data stream 102 is analyzed to determine whether any of the conditions 208 in the rules 106 are satisfied. For example, the incoming data stream 102 is scanned or otherwise searched for the presence of the element(s) identified by the conditions 208. If the element is detected in the incoming data stream 102 at 404, the corresponding action 210 is performed at 406. In some embodiments, the incoming data stream 102 is altered due to performance of the corresponding action 210 in response to detection of the element. For example, a visual format of the detected element may be altered (e.g., font change, color change, background image displayed, etc.). In such embodiments, the altered incoming data stream 102 is presented to the user 108 at 408. For example, the incoming data stream 102 is displayed to the user 108 with the altered format of the detected element therein.
  • In some embodiments, the action 210 performed at 406 includes replacing text in the incoming data stream 102 with other text or an image. In other embodiments, the action 210 is to hide at least a portion of the incoming data stream 102. For example, a parent user may wish to block or filter messages from a particular sender or pertaining, a particular topic, or a conversation thread. In other examples, performing the action 210 includes one or more of the following: displaying an animation, playing a sound, changing a font color of text in the incoming data stream 102, and changing a background color of a user interface of the user computing device 202.
  • With reference to FIG. 3 and FIG. 4, customizations from one computing device may not carry over to another computing device. Rather than creating separate rule sets for each computing device, embodiments of the disclosure enable the user 108 to define one of the selected conditions 208 to check a type (e.g., hardware and/or software) of the user computing device 202 before applying other rules 106. In this manner, the same set of rules 106 may be used on a plurality of the user computing devices 202. In such embodiments, the rules 106 specific to a particular type of user computing device 202 are applied only when the user computing device 202 is of the particular type. Exemplary types of the user computing devices 202 include one or more of the following: a laptop, a mobile computing device, a gaming console, and a television.
  • Referring next to FIG. 5A, an exemplary user interface 502 illustrates a set of rules for processing a social network feed. The set of rules is associated with an application entitled “My own social feed.” Three rules are shown in the user interface 502 in FIG. 5A. In the first rule 504, the condition is represented by an eye icon followed by the word “boyfriend.” The corresponding action is represented by the word “show” followed by an italicized letter “I.” As such, the first rule 504 corresponds to the following statement: “if see the word ‘boyfriend’ then show the word ‘boyfriend’ in italics.” The condition of the second rule 506 is identical to the condition in the first rule. The action for the second rule 506, however, is represented by the word “show” followed by an image of a heart. As such, the second rule 506 corresponds to the following statement: “if see the word ‘boyfriend’ then show an image of a heart.”
  • In the third rule 508, the condition is represented by an eye icon followed by “@jennyp”. The corresponding action is represented by the word “replace” as an icon and then the word “JennyPenny.” As such, the third rule 508 corresponds to the following statement: “if see a message from jennyp, then replace with JennyPenny.”
  • In another rule (not shown), the user 108 may also identify an action to be performed if the element is not found. For example, if the word “boyfriend” does not appear in one of the comments, then the user 108 may specify that another image be displayed.
  • In the example of FIG. 5A (and FIG. 6A below), the user 108 has created these three rules by selecting and arranging the icons in the user interface. For example, a drop-down menu of the icons may be available, or within a hover window (e.g., accessed via a single- or double-tap of a screen of the computing device).
  • Referring next to FIG. 5B, an exemplary user interface illustrates application of the rules from FIG. 5A to a social network feed. In the example of FIG. 5B, two comments 510, 516 from jennyp are indicated as being from JennyPenny per the third rule 508. Two comments 512, 514 with the word “boyfriend” have been altered to show the word “boyfriend” in italics followed by a heart image per the first rule 504 and the second rule 506.
  • Referring next to FIG. 6A, an exemplary user interface 602 illustrates another set of rules for processing a social network feed. Three rules are shown in the user interface of FIG. 6A. In the first rule 604, the condition is represented by an eye icon followed by the “#worldcup” hash tag. The corresponding action is represented by the word “show” followed by an image of a soccer ball. As such, the first rule 604 corresponds to the following statement: “if see the ‘#worldcup’ hash tag then show an image of a soccer ball.” In the second rule 606, the condition is represented by an eye icon followed by the “#USA” hash tag. The corresponding action is represented by the word “show” following by a bolded letter “B”. As such, the second rule 606 corresponds to the following statement: “if see the “#USA” hash tag then show the word “#USA” bolded.” The condition of the third rule 608 is identical to the condition in the second rule. The action for the third rule 608, however, is represented by the word “show” following by the word “red”. As such, the third rule 608 corresponds to the following statement: “if see the “#USA” hash tag then show the “#USA” hash tag in red color.”
  • Referring next to FIG. 6B, an exemplary user interface illustrates application of the rules from FIG. 6A to a social network feed. In the example of FIG. 6B, a comment 612 from Victor has been altered based on the second rule 606 and the third rule 608 from FIG. 6A to show “#USA” in bold and in red. A comment 614 from Carlos including the “#worldcup” hash tag has resulted in the display of an image of a soccer ball per the first rule 604 from FIG. 6A. Comment 610 from Scott is displayed without alteration because none of the conditions were satisfied by this comment.
  • Additional Examples
  • While the icons 212 and lack of compilation described herein enable the user 108 to quickly and easily define the conditions 208 and actions 210, aspects of the disclosure are operable with compiled rules. For example, embodiments of the disclosure may have built-in rules defined by a developer or other entity responsible for such embodiments.
  • In some embodiments, the performance of the actions 210 alters the look of the content reader. Alternatively or in addition, portions of the functionality or settings of the content reader may be enabled or disabled. For example, a reply button may be disabled or removed in a message from a particular sender. In another example, functionality on the user computing device 202 such as location services, contact lists, and searching may be invoked.
  • An additional example of a statement made from the visual programming constructs 214 includes “if I don't see the word ‘awesome’ for time 1 hour then show message “1 boring hour.” The actions 210 may also include computations such as in the following example: “when I see the word ‘love’ add 1 to counter, when counter equals 10 then play audio.”
  • At least a portion of the functionality of the various elements in FIG. 1 or FIG. 2 may be performed by other elements in FIG. 1 and/or FIG. 2, or an entity (e.g., processor, web service, server, application program, computing device, etc.) not shown in FIG. 1 or FIG. 2.
  • In some embodiments, the operations illustrated in FIG. 3 and FIG. 4 may be implemented as software instructions encoded on a computer-readable medium, in hardware programmed or designed to perform the operations, or both. For example, aspects of the disclosure may be implemented as a system on a chip.
  • While no personally identifiable information is tracked by aspects of the disclosure, embodiments have been described with reference to data monitored and/or collected from users such as user 108. In such embodiments, notice is provided to the users of the collection of the data (e.g., via a dialog box or preference setting) and users are given the opportunity to give or deny consent for the monitoring and/or collection. The consent may take the form of opt-in consent or opt-out consent.
  • Exemplary Operating Environment
  • Exemplary computer readable media include flash memory drives, digital versatile discs (DVDs), compact discs (CDs), floppy disks, and tape cassettes. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media store information such as computer readable instructions, data structures, program modules or other data. Communication media typically embody 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 include any information delivery media. Combinations of any of the above are also included within the scope of computer readable media.
  • Although described in connection with an exemplary computing system environment, embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
  • Aspects of the invention transform a general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.
  • The embodiments illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the invention constitute exemplary means for providing a visual programming language enabling the user 108 to define conditions 208 and corresponding actions 210 for processing incoming data streams 102, and exemplary means for processing incoming data streams 102 to perform actions 210 based on conditions 208 detected in incoming data streams 102.
  • The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
  • When introducing elements of aspects of the invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
  • Having described aspects of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the invention as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.

Claims (20)

1. A system for conditional visual formatting of an incoming data stream on a mobile computing device, said system comprising:
a memory area associated with a mobile computing device, said memory area storing at least one user-defined rule, said rule including a condition and a corresponding action, wherein the condition relates to at least one element in the incoming data stream; and
a processor programmed to:
display, to a user of the mobile computing device, icons representing one or more available conditions and one or more actions corresponding thereto;
receive, from the user on the mobile computing device, a selection of the icons representing at least one of the available conditions and at least one of the corresponding actions;
define a rule including the selected condition and the selected action, wherein the defined rule is stored in the memory area;
scan the incoming data stream based on the condition in the user-defined rule to detect said at least one element in the incoming data stream;
alter a visual format of the detected element based on the action in the user-defined rule;
display, to the user, the altered visual format of the detected element in the incoming data stream; and
provide, upon request from the user, the user-defined rule to at least one other computing device, wherein said other computing device applies the user-defined rule to visually format data streams incoming to said other computing device.
2. The system of claim 1, wherein the processor is programmed to define the rule without compiling the selected condition and corresponding action.
3. The system of claim 1, wherein at least one of the available conditions relates to one or more of the following in the incoming data stream: presence of a word, a user associated with the incoming data stream, a property of the user associated with the incoming data stream, a time associated with the incoming data stream, a type of operating system executing on the mobile computing device, and a model of the mobile computing device.
4. The system of claim 1, wherein the processor is further programmed to transmit the user-defined rule to at least one other user.
5. The system of claim 1, wherein the processor is programmed to scan the incoming data stream by receiving the incoming data stream scanned by an application program executing on a computing device other than the mobile computing device.
6. The system of claim 5, wherein said application program comprises an interactive content reader accessible by the mobile computing device via a network.
7. The system of claim 1, further comprising means for providing a visual programming language enabling the user to define conditions and corresponding actions for processing incoming data streams.
8. The system of claim 1, further comprising means for processing incoming data streams to perform actions based on conditions detected in incoming data streams.
9. A method comprising:
providing a plurality of icons to a user of a user computing device, each of said icons corresponding to one or more visual programming constructs, said constructs forming conditions and actions;
receiving a selection of the provided icons from the user computing device, said selection corresponding to at least one of the conditions and to at least one of the actions, wherein said at least one of the conditions relates to at least one element in at least one incoming data stream;
without compilation of the received selection, analyzing the incoming data stream based on said at least one of the conditions to detect a presence of the element within the incoming data stream; and
performing said at least one of the actions based on said analyzing.
10. The method of claim 9, wherein performing said at least one of the actions comprises hiding a conversation thread from a particular sender.
11. The method of claim 9, wherein analyzing the at least one incoming data stream comprises analyzing one or more of the following: a social network feed, a web feed, a text message, an electronic mail message, and an instant message.
12. The method of claim 9, wherein performing said at least one of the actions comprises replacing text in the incoming data stream with an image.
13. The method of claim 9, wherein performing said at least one of the actions comprises one or more of the following: displaying an animation, playing a sound, changing a font color of text in the incoming data stream, and changing a background color of a user interface of the user computing device.
14. The method of claim 9, wherein the received selection of the provided icons is associated with a type of the user computing device, and wherein said analyzing and said performing operate based on the received selection only when the user computing device is of the associated type.
15. The method of claim 14, wherein the type of the user computing device comprises one or more of the following: a laptop, a mobile computing device, a gaming console, and a television.
16. One or more computer-readable media having computer-executable components, said components comprising:
a user interface component that when executed by at least one processor causes the at least one processor to display a plurality of icons to a user of a user computing device, each of said icons corresponding to one or more visual programming constructs, said constructs forming conditions and actions, wherein said user interface component further receives from the user a selection of the displayed icons, said selection representing at least one of the conditions and at least one of the actions, wherein said at least one of the conditions relates to at least one element in an incoming data stream;
a communications interface component that when executed by at least one processor causes the at least one processor to receive the incoming data stream; and
a content reader component that when executed by at least one processor causes the at least one processor to analyze, based on the condition and without compilation of the selection received by the user interface component, the incoming data stream received by the communications interface component to detect a presence of the element within the incoming data stream, said content reader component further performing the action based on the detected presence of the element.
17. The computer-readable media of claim 16, wherein the communications interface component receives a plurality of incoming data streams, and wherein the content reader component analyzes each of the received plurality of data streams.
18. The computer-readable media of claim 16, wherein the content reader component alters a visual format of the element based on the action, and wherein the user interface component displays to the user the altered visual format of the element in the incoming data stream.
19. The computer-readable media of claim 16, further comprising a memory component that when executed by at least one processor causes the at least one processor to store the condition and the action from the selection received by the user interface component as a rule in a memory area, and wherein the communications interface component transmits the stored rule to another user.
20. The computer-readable media of claim 16, wherein the user interface component, the communications interface component, and the content reader component are packaged as a downloadable application.
US12/967,078 2010-12-14 2010-12-14 Defining actions for data streams via icons Active 2032-10-06 US9449308B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/967,078 US9449308B2 (en) 2010-12-14 2010-12-14 Defining actions for data streams via icons

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/967,078 US9449308B2 (en) 2010-12-14 2010-12-14 Defining actions for data streams via icons

Publications (2)

Publication Number Publication Date
US20120151381A1 true US20120151381A1 (en) 2012-06-14
US9449308B2 US9449308B2 (en) 2016-09-20

Family

ID=46200748

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/967,078 Active 2032-10-06 US9449308B2 (en) 2010-12-14 2010-12-14 Defining actions for data streams via icons

Country Status (1)

Country Link
US (1) US9449308B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2963555A4 (en) * 2013-02-28 2016-02-24 Gree Inc Server, control method for server, and program
US20160267156A1 (en) * 2015-03-10 2016-09-15 Microsoft Technology Licensing. LLC Transforming data to share across applications
US20160350398A1 (en) * 2010-12-17 2016-12-01 Microsoft Technology Licensing, Llc Hash tag management in a microblogging infrastructure
EP3107247A4 (en) * 2014-03-06 2017-03-08 Huawei Technologies Co., Ltd. Display style adjustment method, device, and system
USD800760S1 (en) * 2015-10-30 2017-10-24 Honeywell International Inc. Display screen or portion thereof with graphical user interface
US10140274B2 (en) * 2017-01-30 2018-11-27 International Business Machines Corporation Automated message modification based on user context

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9746990B2 (en) * 2012-09-28 2017-08-29 Intel Corporation Selectively augmenting communications transmitted by a communication device
US11012403B1 (en) * 2018-09-04 2021-05-18 Facebook, Inc. Storylines: collaborative feedback system

Citations (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572233A (en) * 1993-10-14 1996-11-05 Casio Computer Co., Ltd. Data storage apparatus capable of searching and displaying character data according to corresponding pictorial symbol data
US5918238A (en) * 1995-04-13 1999-06-29 Fuji Xerox Co., Ltd. Document processing apparatus which evaluates elements of a document and changes the color/format of elements that satisfy user-defined parameters
US6441836B1 (en) * 1998-06-05 2002-08-27 Casio Computer Co., Ltd. Display apparatus and display control method of displaying data together with icon representing contents of data
US20020133522A1 (en) * 2001-03-19 2002-09-19 Greetham Laurence Raymond Apparatus for facilitating access to information
US20020193996A1 (en) * 2001-06-04 2002-12-19 Hewlett-Packard Company Audio-form presentation of text messages
US20030011643A1 (en) * 2000-02-18 2003-01-16 Minoru Nishihata Representation data control system, and representation data control device constituting it, and recording medium recording its program
US20030227568A1 (en) * 2000-05-12 2003-12-11 Stahl Thomas Anthony Appratus and method for improved device interoperability
US20040024822A1 (en) * 2002-08-01 2004-02-05 Werndorfer Scott M. Apparatus and method for generating audio and graphical animations in an instant messaging environment
US20040162877A1 (en) * 2003-02-19 2004-08-19 Van Dok Cornelis K. User interface and content enhancements for real-time communication
US20050081150A1 (en) * 2001-11-02 2005-04-14 Beardow Paul Rowland Method and apparatus for text messaging
US20050078804A1 (en) * 2003-10-10 2005-04-14 Nec Corporation Apparatus and method for communication
US20050107127A1 (en) * 2003-10-30 2005-05-19 Nec Corporation Data processing device, data processing method, and electronic device
US20050116956A1 (en) * 2001-06-05 2005-06-02 Beardow Paul R. Message display
US20050143108A1 (en) * 2003-12-27 2005-06-30 Samsung Electronics Co., Ltd. Apparatus and method for processing a message using avatars in a wireless telephone
US20050156873A1 (en) * 2004-01-20 2005-07-21 Microsoft Corporation Custom emoticons
US20060068766A1 (en) * 2004-09-15 2006-03-30 Min Xu Communication device with operational response capability and method therefor
US20060167992A1 (en) * 2005-01-07 2006-07-27 At&T Corp. System and method for text translations and annotation in an instant messaging session
US20060282503A1 (en) * 2005-06-14 2006-12-14 Microsoft Corporation Email emotiflags
US7207009B1 (en) * 2000-11-01 2007-04-17 Microsoft Corporation Method and system for displaying an image instead of data
US20070094156A1 (en) * 2005-09-28 2007-04-26 Microsoft Corporation User defined components for content syndication
US20070094330A1 (en) * 2002-07-31 2007-04-26 Nicholas Russell Animated messaging
US20070101005A1 (en) * 2005-11-03 2007-05-03 Lg Electronics Inc. System and method of transmitting emoticons in mobile communication terminals
US20070171192A1 (en) * 2005-12-06 2007-07-26 Seo Jeong W Screen image presentation apparatus and method for mobile phone
US20080039124A1 (en) * 2006-08-08 2008-02-14 Samsung Electronics Co., Ltd. Apparatus, a method, and a system for animating a virtual scene
US20080120258A1 (en) * 2006-11-21 2008-05-22 Hee-Sook Shin Method for expressing emotion and intention in remote interaction and real emoticon system thereof
US20080134282A1 (en) * 2006-08-24 2008-06-05 Neustar, Inc. System and method for filtering offensive information content in communication systems
US20080158334A1 (en) * 2006-12-29 2008-07-03 Nokia Corporation Visual Effects For Video Calls
US20080319746A1 (en) * 2007-06-25 2008-12-25 Kabushiki Kaisha Toshiba Keyword outputting apparatus and method
US20090019107A1 (en) * 2007-07-10 2009-01-15 International Business Machines Corporation Adding syndication feeds to calendar data exchange enabled programs
US20090117922A1 (en) * 2007-11-01 2009-05-07 David Rowland Bell Alerts based on significance of free format text messages
US20090164573A1 (en) * 2007-12-20 2009-06-25 International Business Machines Corporation Method for forming ad hoc social networks in two dimensional collaboration
US20090181651A1 (en) * 2008-01-16 2009-07-16 Research In Motion Limited Method of managing inbound communications based on the current location of a wireless communications device
US20090233632A1 (en) * 2008-03-11 2009-09-17 Kyocera Corporation Mobile Communication Terminal Apparatus
US7631260B1 (en) * 2006-10-23 2009-12-08 Adobe Systems Inc. Application modification based on feed content
US20100050090A1 (en) * 2006-09-14 2010-02-25 Freezecrowd, Inc. System and method for facilitating online social networking
US20100123724A1 (en) * 2008-11-19 2010-05-20 Bradford Allen Moore Portable Touch Screen Device, Method, and Graphical User Interface for Using Emoji Characters
US20100179991A1 (en) * 2006-01-16 2010-07-15 Zlango Ltd. Iconic Communication
US20100279667A1 (en) * 2007-05-22 2010-11-04 Wehrs Michael E Keyword-based services for mobile device messages
US20110135071A1 (en) * 2009-12-04 2011-06-09 David Milstein System And Method For Converting A Message Via A Posting Converter
US20110296324A1 (en) * 2010-06-01 2011-12-01 Apple Inc. Avatars Reflecting User States
US8117102B1 (en) * 2004-09-27 2012-02-14 Trading Technologies International, Inc. System and method for assisted awareness

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819284A (en) 1995-03-24 1998-10-06 At&T Corp. Personalized real time information display as a portion of a screen saver
US20050125375A1 (en) 2003-07-10 2005-06-09 Lee Patrick R. System and method for customizing web-enabled data in ticker format
US8756228B2 (en) 2006-02-16 2014-06-17 Moreover Acquisition Corporation Method and apparatus for creating contextualized feeds
US7900149B2 (en) 2007-06-08 2011-03-01 Apple Inc. Methods and systems for editing of web pages in an application capable of displaying web page content
US8015141B2 (en) 2008-02-18 2011-09-06 Microsoft Corporation Rule-based programming languages for entities in environments
US20100161547A1 (en) 2008-12-23 2010-06-24 David Carmel Personalized Web Feed Views

Patent Citations (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572233A (en) * 1993-10-14 1996-11-05 Casio Computer Co., Ltd. Data storage apparatus capable of searching and displaying character data according to corresponding pictorial symbol data
US5918238A (en) * 1995-04-13 1999-06-29 Fuji Xerox Co., Ltd. Document processing apparatus which evaluates elements of a document and changes the color/format of elements that satisfy user-defined parameters
US6441836B1 (en) * 1998-06-05 2002-08-27 Casio Computer Co., Ltd. Display apparatus and display control method of displaying data together with icon representing contents of data
US20030011643A1 (en) * 2000-02-18 2003-01-16 Minoru Nishihata Representation data control system, and representation data control device constituting it, and recording medium recording its program
US20030227568A1 (en) * 2000-05-12 2003-12-11 Stahl Thomas Anthony Appratus and method for improved device interoperability
US7207009B1 (en) * 2000-11-01 2007-04-17 Microsoft Corporation Method and system for displaying an image instead of data
US20020133522A1 (en) * 2001-03-19 2002-09-19 Greetham Laurence Raymond Apparatus for facilitating access to information
US20020193996A1 (en) * 2001-06-04 2002-12-19 Hewlett-Packard Company Audio-form presentation of text messages
US20050116956A1 (en) * 2001-06-05 2005-06-02 Beardow Paul R. Message display
US20050081150A1 (en) * 2001-11-02 2005-04-14 Beardow Paul Rowland Method and apparatus for text messaging
US20120030038A1 (en) * 2002-07-31 2012-02-02 Nicholas Russell Animated Messaging
US20070094330A1 (en) * 2002-07-31 2007-04-26 Nicholas Russell Animated messaging
US20040024822A1 (en) * 2002-08-01 2004-02-05 Werndorfer Scott M. Apparatus and method for generating audio and graphical animations in an instant messaging environment
US20040162877A1 (en) * 2003-02-19 2004-08-19 Van Dok Cornelis K. User interface and content enhancements for real-time communication
US20050078804A1 (en) * 2003-10-10 2005-04-14 Nec Corporation Apparatus and method for communication
US20050107127A1 (en) * 2003-10-30 2005-05-19 Nec Corporation Data processing device, data processing method, and electronic device
US20050143108A1 (en) * 2003-12-27 2005-06-30 Samsung Electronics Co., Ltd. Apparatus and method for processing a message using avatars in a wireless telephone
US20050156873A1 (en) * 2004-01-20 2005-07-21 Microsoft Corporation Custom emoticons
US20060068766A1 (en) * 2004-09-15 2006-03-30 Min Xu Communication device with operational response capability and method therefor
US8117102B1 (en) * 2004-09-27 2012-02-14 Trading Technologies International, Inc. System and method for assisted awareness
US20060167992A1 (en) * 2005-01-07 2006-07-27 At&T Corp. System and method for text translations and annotation in an instant messaging session
US20060282503A1 (en) * 2005-06-14 2006-12-14 Microsoft Corporation Email emotiflags
US20070094156A1 (en) * 2005-09-28 2007-04-26 Microsoft Corporation User defined components for content syndication
US20070101005A1 (en) * 2005-11-03 2007-05-03 Lg Electronics Inc. System and method of transmitting emoticons in mobile communication terminals
US20070171192A1 (en) * 2005-12-06 2007-07-26 Seo Jeong W Screen image presentation apparatus and method for mobile phone
US20100179991A1 (en) * 2006-01-16 2010-07-15 Zlango Ltd. Iconic Communication
US20080039124A1 (en) * 2006-08-08 2008-02-14 Samsung Electronics Co., Ltd. Apparatus, a method, and a system for animating a virtual scene
US20080134282A1 (en) * 2006-08-24 2008-06-05 Neustar, Inc. System and method for filtering offensive information content in communication systems
US20100050090A1 (en) * 2006-09-14 2010-02-25 Freezecrowd, Inc. System and method for facilitating online social networking
US7631260B1 (en) * 2006-10-23 2009-12-08 Adobe Systems Inc. Application modification based on feed content
US20080120258A1 (en) * 2006-11-21 2008-05-22 Hee-Sook Shin Method for expressing emotion and intention in remote interaction and real emoticon system thereof
US20080158334A1 (en) * 2006-12-29 2008-07-03 Nokia Corporation Visual Effects For Video Calls
US20100279667A1 (en) * 2007-05-22 2010-11-04 Wehrs Michael E Keyword-based services for mobile device messages
US20080319746A1 (en) * 2007-06-25 2008-12-25 Kabushiki Kaisha Toshiba Keyword outputting apparatus and method
US20090019107A1 (en) * 2007-07-10 2009-01-15 International Business Machines Corporation Adding syndication feeds to calendar data exchange enabled programs
US20090117922A1 (en) * 2007-11-01 2009-05-07 David Rowland Bell Alerts based on significance of free format text messages
US20090164573A1 (en) * 2007-12-20 2009-06-25 International Business Machines Corporation Method for forming ad hoc social networks in two dimensional collaboration
US20090181651A1 (en) * 2008-01-16 2009-07-16 Research In Motion Limited Method of managing inbound communications based on the current location of a wireless communications device
US20090233632A1 (en) * 2008-03-11 2009-09-17 Kyocera Corporation Mobile Communication Terminal Apparatus
US20100123724A1 (en) * 2008-11-19 2010-05-20 Bradford Allen Moore Portable Touch Screen Device, Method, and Graphical User Interface for Using Emoji Characters
US20110135071A1 (en) * 2009-12-04 2011-06-09 David Milstein System And Method For Converting A Message Via A Posting Converter
US20110296324A1 (en) * 2010-06-01 2011-12-01 Apple Inc. Avatars Reflecting User States

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160350398A1 (en) * 2010-12-17 2016-12-01 Microsoft Technology Licensing, Llc Hash tag management in a microblogging infrastructure
US10417260B2 (en) * 2010-12-17 2019-09-17 Microsoft Technology Licensing, Llc Hash tag management in a microblogging infrastructure
EP2963555A4 (en) * 2013-02-28 2016-02-24 Gree Inc Server, control method for server, and program
US10122821B2 (en) 2013-02-28 2018-11-06 Gree, Inc. Server, method of controlling server, and program
US11115495B2 (en) 2013-02-28 2021-09-07 Gree, Inc. Server, method of controlling server, and program
US11743361B2 (en) 2013-02-28 2023-08-29 Gree, Inc. Server, method of controlling server, and program
EP3107247A4 (en) * 2014-03-06 2017-03-08 Huawei Technologies Co., Ltd. Display style adjustment method, device, and system
US20160267156A1 (en) * 2015-03-10 2016-09-15 Microsoft Technology Licensing. LLC Transforming data to share across applications
US10909138B2 (en) * 2015-03-10 2021-02-02 Microsoft Technology Licensing, Llc Transforming data to share across applications
USD800760S1 (en) * 2015-10-30 2017-10-24 Honeywell International Inc. Display screen or portion thereof with graphical user interface
US10140274B2 (en) * 2017-01-30 2018-11-27 International Business Machines Corporation Automated message modification based on user context

Also Published As

Publication number Publication date
US9449308B2 (en) 2016-09-20

Similar Documents

Publication Publication Date Title
US9449308B2 (en) Defining actions for data streams via icons
US11343303B2 (en) Techniques for identifying issues related to digital interactions on websites
Hashimi et al. Pro Android 3
US10762277B2 (en) Optimization schemes for controlling user interfaces through gesture or touch
US9152219B2 (en) Creation and context-aware presentation of customized emoticon item sets
JP6806894B2 (en) Systems and methods for detecting improper enforcement of content item presentations by applications running on client devices
RU2541191C2 (en) Content recommendations based on browsing information
US8996648B2 (en) Social networking feed extensibility based on data types
EP2915031B1 (en) Apparatus and method for dynamic actions based on context
US20120166522A1 (en) Supporting intelligent user interface interactions
JP2014131736A (en) Systems and methods for tagging content of shared cloud executed mini-games and tag sharing controls
US8775554B2 (en) Cloud-based web page applications for extending functionality
EP3090357B1 (en) Hosted application marketplaces
US9477399B1 (en) Automated interaction for mobile applications
US20150205767A1 (en) Link appearance formatting based on target content
TW202125255A (en) Applet code scanning method and device
CN105872767A (en) Method and apparatus for guiding sharing based on user behaviors
US11811718B2 (en) System and method for generating and rendering intent-based actionable content using input interface
WO2016200715A1 (en) Transitioning command user interface between toolbar user interface and full menu user interface based on use context
Cardoso et al. Creating web-based interactive public display applications with the PuReWidgets toolkit
WO2021183140A1 (en) System for filtering displayed content at the os level
Ramnath Android 3 SDK Programming for Dummies
Korhonen et al. Creating Mashups with Adobe Flex and AIR
Beltran Getting Started with PhantomJS
EP3394806A1 (en) Providing task oriented organization of communications

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHIFF, RACHEL;MAO, ZHIHONG;ZARAGOZA, RICHARD IGNACIO;SIGNING DATES FROM 20101208 TO 20101209;REEL/FRAME:025497/0044

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034544/0001

Effective date: 20141014

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8