The present invention relates to computer messaging and more particularly to management thereof. In particular, an apparatus and method are disclosed for improving computer operational efficiency through digital message management.
Electronic communication, including messaging, provides a very efficient manner of information exchange. In such forms of electronic communication, messages are exchanged between multiple parties to convey information. In one known form of messaging, two users operate respective client devices and effectively engage in conversation by transmitting messages between each other. Such communication may be in the form of a single continuous stream of back-and-forth messaging. Also, in some situations, more than two users (operating, for example, more than two respective client devices) may be communicating in a single continuous stream. While a single stream of messages may be transmitted in an ongoing sequence, it is also possible to have multiple channels, each with their own respective stream of messages. A “conversation” of messages may be short, or it may occur over an extended period of time. Such a period of time can last for hours, days, or even years. During the process of such a conversation, a large quantity of messages may be transmitted between multiple users. In some cases, to quote an earlier message within a stream of messages, it may be desirable to allow users to specify the earlier message, add a reply message, and display the quoted message together with the reply message as a further message.
With regard to exemplary embodiments of the present invention, a method and apparatus are for use with a group messaging system. A First Message is received in a message stream on a First Device, wherein the First Message originates from a Second Device remote from the First Device. A Further Message is displayed on the First Device, wherein the Further Message is displayed as a quote of at least a portion of the First Message and a reply to the First Message which is a Reply Message and which is entered on the First Device. The quote and the Reply Message are displayed together so that the Reply Message is displayed as replying to the First Message. The Reply Message is transmitted from the First Device to the Second Device. The Further Message appears in the message stream chronologically later than where the First Message appears in the message stream. Selection of the First Message is received by interacting with an area or object that is displayed on the Second Device and is associated with the First Message, so that the First Message is a selected First Message. Responsive to at least the selection, a first determination is made as to whether the selected First Message was previously quoted and at least partially displayed by another message in the message stream. A second determination is made as to whether the selected First Message is eligible for editing. The selected First Message is allowed to be edited based on at least the first determination and the second determination.
In an exemplary embodiment of this invention, a First Message is sent by on a second device to a first device. The First Message is displayed in a message stream in a message channel. A Further Message is formed on the first device when a First Message is selected on the first device for quoting and a response called a Reply Message to the selected First Message is entered on the first device. The Further Message is comprised of a quote of at least a portion of the First Message (a “Redisplayed Message”) and a Digital Connection Link to the First Message, and is displayed chronologically later than the First Message. The display of the Further Message includes both a Redisplayed Message, which is the at least a portion of the quoted First Message, and the Reply Message.
Once a First Message has been quoted and replied to in a Further Message, an edit to the First Message that causes a corresponding change to the Redisplayed Message portion of a Further Message can render the existing Reply portion of the Further Message inapplicable or misleading. In other words, the Reply portion of the Further Message may have been obsoleted by the edit to the quoted First Message (displayed as the Redisplayed Message portion of the Further Message) and may no longer be responsive, relevant and/or reflect the intent of the quote-replying user.
In an exemplary embodiment of this invention, it is determined whether a First Message may be edited after it has been previously quoted and displayed as a Redisplayed Message portion of a Further Message on a first device. Based in part on this determination, messaging system functionality is enhanced and channel member confusion avoided by, for example, informing message editors that the message they are about to edit has been previously quoted and replied to; providing the editor the option to abandon the edit or continue with the edit; causing the overt display of an edit indication associated with the Further Message; affording the editor options such as the option to have replies stricken that are already associated with Further Message quotes of the to-be-edited-message; providing replying-users with notification that a message to which they has replied has been edited; providing replying-users with the option to strike their reply to a message that has since been edited, and is displayed in a Further Message; and/or providing replying-users with the option to edit their reply to a message that has since been edited, and is displayed in a Further Message.
The present invention relates to messaging and in particular to the ability of one message to reference another message. With regard to messaging, what is referred to is the ability for one or more users to provide a series of messages. Messages typically occur in a stream, wherein each message comprises data. The data included in messages is often text, but this is merely exemplary as messages can include other content, including possibly any kind of data (e.g. audio, video, animation, graphics, web links, photos, etc.).
In one or more exemplary embodiments of the present invention, a method and apparatus improves the operation of a computer device, by providing links that enable a computer device to operate with greater efficiency. In particular, in several exemplary embodiments, when one message references another message, and time has elapsed between the two messages, the invention enables a computer device to operate with advantages over the prior art. For example, in the prior art, to enable one message to reference an earlier message, a search for the earlier message can be inefficient, time consuming, can delay message response while an earlier message is located, and can request that data stored in memory be duplicated. By contrast, in accordance with exemplary embodiments of the present invention, the use of visual display of an earlier message (or portions thereof) and selection (in various manners to be described below), enables message referencing in a manner that enables faster computer processing and more efficient use of computer devices for exemplary forms of communication such as messaging.
Messaging (such as chat messaging) has become a very popular form of electronic communication due to its affordability and ease of use. On any given day, users may exchange numerous messages regarding a diverse range of topics. The users may use the messages to discuss, for example, group activities, to solicit opinions about various topics, or simply exchange short conversations with friends or co-workers. One of the drawbacks to using typical chat messaging systems is the sequential nature of the messages sent and received. For example, messages often appear in a channel or log in chronological order. If a user in a group chat session comes back from a meeting after several hours, they may be confronted with a bunch of messages. In this regard, the group chat sessions are often characterized by short bursts of dialog around a given topic. By the time a user views the messages, the topic may have changed several times. This makes it difficult for a user to post a response to a previous message that is within context of the ongoing message conversation.
Methods and systems for providing references (such as context-based references) to link messages (such as chat messages) are disclosed herein. This allows a user to generate and insert a (reference) object into a (chat) message stream that links or otherwise references (i.e. via a digital connection) a chat message (such as a prior message or later message) the user intended to send. It is contemplated that the techniques disclosed herein may be particularly beneficial in certain types of communication platforms. However, so as to illustrate the method and system functionality, and not by way of limitation, the communication platform described herein is an exemplary chat messaging platform. It is envisioned that one skilled in the art could make and use the methods and systems described herein with other types of communication platforms. Some of these communication platforms may include, for example, text messaging, short message services (SMS), e-mails and other types of similar on-line communication platforms for facilitating electronic information exchanges between client devices of a plurality of users. The use of chat messaging described herein is merely exemplary, as other forms of messaging may also be used in accordance with exemplary embodiments of the present invention.
With respect to chat messaging platforms, a message (for example in a chat message session) that a user wishes to respond to or reference occurred as a standalone comment or as part of a previous and unrelated (to a most recent discussion chain) discussion. A chat message session, as used herein, refers to a series of messages that are exchanged between one or more users, wherein for more than one user the users are in a group of users. When one of the users in the group adds a new message to a chat message session, the new message is sent to other users in the group. For example, if a first user adds a new message to the chat message session between three users in a group, then the new message may be sent to other selected users of the group, such as the second user and/or the third user. Thus, the chat message session may simulate a real-life conversation because users may communicate to the group at large, or to a specific person or a subset of the people in the group.
In some situations, a user may want to add a new message that is related to a previous message in the chat message session. When replying to the previous message at the current point in time in the session, the reply message may appear out of context and could be confusing to other users in the session. This is because the chat message sessions often include numerous messages that may have been entered over a short period of time. Some group messaging users employ various strategies to minimize the effect of their writing messages when trying to refer to or reply to a previous message in the session. In one example, a user may copy and paste the prior message into the text message entry bar and then add additional text. In another example, the user may include addition information in the new message to make it clear what is being responded to. In yet another example, the user may specify the message being referenced by identifying and referencing something unique about the message such as who sent it, the date and/or the time it was sent. One problem with using these types of techniques is that extra text entry space may not be available in a chat message system that limits the amount of data that can be entered into a given message. Moreover, the user may miss some important information if they cut and paste only a portion of the previous message or the identifying information regarding the previous message may not be complete or accurate.
To put it another way, a First Message may be one of several messages. A Second Message (“Further Message”) may also be one of the several messages. It may be desirable for the Second Message to reference the First Message. By “reference” what is meant is that there is a digital connection between the Second Message and the First Message. The digital connection may be for example a link. With such a link, while the Second Message is being viewed, some aspect of the First Message may also be viewed. The aspect of the First Message may be, for example, all of the First Message, part of the First Message, a modified form of all or part of the First Message, and/or data associated with the First Message. Exemplary associated data may include a user (or some form of identification of the user) associated with the First Message, a date and/or time associated with the First Message, and/or some other data associated with the First Message.
In an exemplary embodiment of the present invention, the First Message and the Second Message are part of a stream of messages. A stream of messages includes a plurality of messages sent one after another, i.e. one message appears, another message appears after the earlier message, etc. Multiple messages may exist between the First Message and the Second Message, or the First Message and the Second Message may be adjacent to each other in the stream. The stream of messages may exist, for example, in a single channel of communication (although messages across multiple channels of communication are also contemplated. Assume, for example, that one conversation is occurring in one channel and another conversation is occurring in another channel. Thus, a Second Message can be created in one channel based on a First Message that appears in another channel.) This concept is described with reference to exemplary embodiments below (see also
In one exemplary embodiment of the present invention, a “Reference Object” is inserted into a text entry box that is being used to form a Second Message so that (after the Second Message is transmitted) a “Display Object” can be displayed (with the Second Message) that references the First Message. In one embodiment of the present invention the reference and Display Object are the same while in another embodiment of the present invention the Reference Object and Display Object are different. The Reference Object, or the Display Object, or both, references the First Message as more clearly described below.
Chat messages (as an example of messages) are thus beneficially enhanced to provide users with additional information related to the meaning of their electronic conversations without introducing expensive overhead or burdensome retrieval mechanisms. For example, a user may make a selection associated with a First Message which then automatically inserts a Reference Object into a text entry bar of a chat message system. The Reference Object may provide a digital connection such as a link to automatically identify and access data from the First Message. The user may then add additional text in the text message box before or after the Reference Object. When the message is sent, a Display Object associated with the First Message is included in the newly posted Second Message. If multiple messages are referenced, then one or more of the Display Objects are displayed in the newly posted message. It is also possible for the same message to be referenced multiple times by different new messages at any time in the chat message session. In addition, in some exemplary embodiments, computer processing efficiency is improved through the use of links and without managing duplicated data that was previously inputted. Therefore, since there is no duplicated data, the link can be included in the message instead of including actual text that was inputted by a user. This feature provides numerous technical advantages, including synchronicity when messages are edited (discussed below) and more efficient data management (discussed below). Also, in some embodiments, efficiency is improved by enabling access to at least a portion of previously available data without a need to manually locate the previously available data.
Each Display Object can then be activated in the chat session in several ways. For example, by hovering over and/or selecting the Display Object, text data (or other data or portions thereof) associated with the referenced First Message may be displayed (e.g., above, to the side of, below) with respect to the newly posted message. The information thus provides the reader with immediate and useful context relating to the message they are reading by allowing them to see the message that is referenced. In some implementations, other visual or audio mechanisms can be added to highlight the Display Object. For example, the Display Object may be displayed in a different text color, font size, or a change to a portion or all of the background of the referred message or include various type of animation effects.
Permitting editing of messages in a messaging system that also permits quote-replying of messages introduces significant challenges and issues that merit careful consideration. For example, updating a Redisplayed Message (the portion of a Further Message that displays an instance at least part of a quoted First Message) to match an edited First Message, may render inapplicable or misleading the pre-edit Reply Message portion of an associated Further Message.
While the above description is with regard to First and Second Messages, it is understood that “First” and “Second” (or “First Message” and “Further Message”) are merely being used to identify two messages that have been separately entered into a computer system (and then, for example, sent). In an exemplary embodiment, the First and Second Message are entered by different users on respectively different devices.
In an exemplary embodiment, a computer program product may be installed and/or a service may be selected from a cloud-computing environment in order to obtain the benefits of the techniques described herein. In an implementation, the computer program product may be downloaded onto a client device. For example, a user may elect to download the computer program product from a service associated with an online server. The client device may transmit a request for the computer program product over a network and, in response, receive the computer program product from the service. The computer program product may be installed locally on the client device or stored at the service and may be accessed through the client device, for example, via a mobile web browser. In one exemplary embodiment, software to achieve the above results is stored in a cloud computing environment. In another exemplary embodiment, the software is stored in local client devices. In a further exemplary embodiment of the present invention, the software is stored in a combination of a cloud computing environment and (one or more) local client device(s).
The above description is with regard to at least two users (or more) communicating with each other with respective client devices. In a further exemplary embodiment of the present invention, the “First Message” and the “Second Message” are both entered into the same computing device. In a further exemplary embodiment of the present invention, Further Messages may or may not be included from a source outside of the computing device from which the “First Message” and “Second Message” are entered. In yet another exemplary embodiment of the invention, a single user may enter the “First Message” on one computing device and the “Second Message” on another computing device.
Optionally, with (or thereafter) the selection of the area or object associated with the First Message, other action(s) may also be taken. The additional action(s) may be, for example, sending communication (i.e. a message or other data) to a location that is predefined or defined by data associated with the First Message. The action may occur with the selection, at optional step 420 (below), or at other times.
At optional step 420, an indication is provided that the selection of step 410 has been received. The indication may be in many exemplary forms including a visual indication. The visual indication may include for example the display of a dot on a screen. Alternatively, for example, the indication of receipt of the selection may include the insertion of a Reference Object in a text input box. This will be further described below.
While step 420 is included in some exemplary embodiments, it may be omitted (or temporarily omitted) in other exemplary embodiments. Thus, for example, in one exemplary embodiment, no visible indication is provided that the selection of step 410 has occurred (or has been received).
At step 430, a Second Message is allowed to be formed with a Digital Connection Link to the First Message. The Digital Connection Link may be a Reference Object, a Display Object, or a Reference Object which is the same as the Display Object. The Digital Connection Link is associated with the Second Message and references the First Message. Furthermore, the Digital Connection Link is created responsive to the receipt of the selection of step 410. This Digital Connection Link is further described below. Since the message is formed with a Digital Connection Link, the message need not be formed with the actual text of the First Message. This feature results in efficiencies in data management, for example when a message is edited.
In a further exemplary embodiment of the present invention, a text entry box is provided. Although the text entry box is optional, the text entry box may appear on a screen as a place where the Second Message is formed before transmitted. Selection of the area or object (i.e. First-Message-Selection Display Object) associated with the First Message may result in the visual indication described with reference to step 420, or may result in another indication. For example, the indication may be (or additionally may be) insertion (and/or display) of the Reference Object into the text entry box.
At step 440, display of information is caused responsive to selection of a further area or object associated with a) the First Message and b) the Digital Connection Link. Thus, for example, the Second Message may be displayed with a Display Object (i.e. the area associated with the Second Message and associated with the link to the First Message) after the Second Message is transmitted. Selection of the Display Object will cause information to be displayed. The information may be some or all of the First Message, or some type of identifying information or user information associated with the First Message, for example.
In some embodiments a tag, flag, metadata or other data is added to a database record associated with the selected First Message to indicate that the selected First Message has been quoted. In some embodiments other and/or additional information such as a user ID of a user that is quoting the First Message, date/time of quote, or Further Message record number (i.e. a record number of a Further Message that includes the quote of the First Message), is added to the database record associated with the selected First Message. This added data can be useful, in some cases, such as certain cases of determining the eligibility of a message to be edited.
In some embodiments the illustrated order of performing the above steps may vary.
Next, at step 520, a user clicks on an area or portion of a First Message to be referenced by a Second Message. The area may include a First-Message-Selection Display Object as more fully described below. A “click” may refer to some sort of selection. The area being clicked may include text that is included in the First Message itself, an area occupied by the First Message as it appears on a screen, a First-Message-Selection Display Object with a defined border, a First-Message-Selection Display Object where the border is not clearly defined, etc. The process of clicking or selection will cause the Second Message to be able to reference the First Message.
At step 530, a Reference Object is inserted into a text entry bar. By inserting the object into the text entry bar, intent to reference the First Message is indicated. Display of an indication of the selection is optional.
In one exemplary embodiment of the present invention, the “selection” described in step 520 causes automatic insertion of the Reference Object into the text entry bar in step 530. In other words, in response to a selection (such as clicking on a First-Message-Selection Display Object in the First Message), the Reference Object that includes the link to the First Message appears in the text entry bar. This “one click” process of having the Reference Object be displayed (or be inserted) into the text message bar enables advantageous computer processor performance. By contrast, one could manually insert a Digital Connection Link to the First Message in the Second Message, but creation and insertion of such a Digital Connection Link is time consuming and subject to errors. The inventor has determined that such a Digital Connection Link could be created by selecting (i.e. highlighting) data (i.e. a Digital Connection Link to the First Message) associated with the First Message, copying the selection (performed for example with a mouse right click), moving a cursor to the text entry bar, selecting a location in the text entry bar, and pasting the selection (of the Digital Connection Link) into the text entry bar. This procedure assumes that a Digital Connection Link (that references the First Message) is visually displayed in some manner so that the above procedure can be performed. One advantage of exemplary embodiments of the present invention is that the process has been automated, so that selection of a First-Message-Selection Display Object (as it appears or may be selected on the display) causes the Reference Object to appear in the text entry bar, preferably with no other steps performed by the user (or with fewer steps performed by the user than with the select/copy/select/paste procedure outlined above).
The ability to insert the Reference Object into the text entry box through a single click (or with fewer operations than with other methods) enables information associated with a message to be easily available (i.e. displayable) by reference to another message.
At step 540, the Second Message is completed. Subsequently, an instruction is provided to transmit the Second Message. In some embodiments a tag, flag, metadata, or other data is added to the database record associated with the selected First Message to indicate that the selected First Message has been quoted. In some embodiments identifying information such as a user ID of a user that is quoting the First Message, date/time of quote, or Further Message record number (i.e. a record number of a Further Message that includes the quote of the First Message), is added to the database record associated with the selected First Message. This added data can be useful, in some cases such as certain cases of determining the eligibility of a message to be edited.
At step 550, the Second Message is displayed. The Second Message may be displayed in various places including, for example, a client device from which the message was transmitted, a client device to which the message is transmitted, a device where a message is displayed without being transmitted outside of the device, etc.
At step 560, after the Second Message is displayed (with the Display Object), selection of the Display Object causes display of the First Message, a portion of the First Message, data associated with the First Message, etc.
Generation of a Reference Object, and subsequent generation of a Display Object, may be accomplished in accordance with a further exemplary embodiment of the present invention. For example, (as an alternative or in addition to a Digital Connection Link) a unique identifier may be assigned to each message. There are numerous ways to generate unique identifiers, including sequential numbering, numbering based on a system clock, numbering based on a chronological clock, etc. Generation of a Reference Object may be initiated by an event that occurs and is detected by software (that is causing or related to the display of the messages on the client device). Put another way, for each First-Message-Selection Display Object on a plurality of messages that are displayed, interaction with the First-Message-Selection Display Objects can either be identified via polling or acted upon via an interrupt mechanism. When a particular First-Message-Selection Display Object is selected (i.e. clicked, hovered, etc.), the selection of the First-Message-Selection Display Object is routed to software that will create a Reference Object, and ultimately a Display Object. Furthermore, selection of the First-Message-Selection Display Object causes the unique identifier of the message associated with the First-Message-Selection Display Object to be stored in a database. That unique identifier will then be associated with the Reference Object as the Reference Object is created. When the Reference Object is indeed created, a visual icon (for example) that represents the Reference Object may be inserted in a place to indicate that that the First-Message-Selection Display Object has been selected. The visual icon that represents the Reference Object is thus inserted, for example, into the text entry bar. Furthermore, the Reference Object is linked to the identifier that has been stored for the message associated with the First-Message-Selection Display Object that has been selected. After the message (i.e. the “Second Message” described above) has been transmitted, the Display Object is created and, again, the Display Object may be associated with the identifier that has been stored in the database for the message associated with the earlier First-Message-Selection Display Object that has been selected.
The above description has been with regard to a Reference Object and both a First-Message-Selection Display Object and a Display Object. It is understood that the First-Message-Selection Display Object may be represented by a visual icon with defined borders, or it may be represented by some other visual method, such as text associated with a message or space (i.e. space that appears on a display) that overlaps or is adjacent to a message.
In the example shown in
In the above explanation, the First Message is displayed on a first display. As an example, the First Message has been selected by selecting an area or object of the First Message that is displayed and that is associated with the First Message.
While
It is noted in this explanation that a Reference Object is inserted into a message when a message is created, and a Display Object is displayed after the Second Message is received and displayed to the 1st user (or any user). Both the Reference Object and the Display Object reference (i.e. via a Digital Connection Link) the First Message. For example, the Reference Object and the Display Object may both be a link (i.e., Digital Connection Link) to the First Message. In one embodiment, the Reference Object and the Display Object both include the same Digital Connection Link to the First Message. In another exemplary embodiment, the Reference Object may include a 1st Digital Connection Link to the First Message, wherein the 1st Digital Connection Link is replaced in the Display Object with a 2nd Digital Connection Link to the First Message. Alternately, or in addition, the Reference Object and the Display Object both link to the First Message but differ in how they appear on a display. This is further described below.
In the above explanation, a Further Message is allowed to be formed responsive to the selection that was described with regard to
After the 2nd user has completed entering text into the text message box (Reply Message) and causing the Reference Object to be added into the text message box, the 2nd user is then able to transmit the Second Message (“Further Message”) from the first device. After transmitting the Second Message from the first device, the Second Message will then appear as part of the chat. Thus, as shown, the First Message is received on the first device and the Further Message is transmitted from the first device at respectively different times. Also, the Further Message is caused to be displayed in the message stream chronologically later than where the First Message that received the selection appeared in the message stream. This is shown in
In some embodiments a tag, flag, metadata, or other data is added to the database record associated with the selected First Message to indicate that the selected First Message has been quoted. In some embodiments identifying information such as user ID of a user that is quoting the First Message, date/time of quote, or Further Message record number (i.e. a record number of a Further Message that includes the quote of the First Message), is added to the database record associated with the selected First Message. This added data can be useful, in some cases such as certain cases of determining the eligibility of a message to be edited.
In
By selecting the Display Object, the First Message (or portion thereof) may appear (Redisplayed Message) on the screen. This is illustrated in
The above examples have included illustrations and descriptions of illustrative Reference Objects and Display Objects. It is understood, however, that the displays associated with Reference Objects and Display Objects are not limited to the examples provided above.
Assume, for example, that a Reference Object has the visual appearance “Sona G. 10:15 am” in the text entry box. In this regard, the label portion “Sona G.” represents identifying information of the user that entered the previous chat message and the label “10:15 am” identifies the time the message was entered into the chat messaging system. In some implementations, other identifying information, such as the date on which the chat message was sent, can be included in the Reference Object display label. It should be noted that the above-described visual appearance is merely an illustrative example. The identifying information for the Reference Object may include various other types of information, for example, plain text, images, audio/video mediums and other types of identifying information. The identifying information can also be inferred, derived or looked-up info. For example, the Digital Connection Link could provide information over and above that which was included in the actual message—i.e., message author's on-line status and phone number—or even an advertisement or coupon based on the content or some known attributes of the First Message. Ex. “First 10 people who Reference this message get 25% discount coupon good for admission” the Ref Pop can be an ad-this is a desirable way to have an ad embedded by known users into messages other users will see.
The Reference Object, in one or more exemplary embodiments, can be inserted anywhere in the text entry box. For example, the Reference Object can be inserted to the left or right of the text entry box cursor either initially or at any time after the user has initiated their message. In this regard, the location of the insertion of the Reference Object is controlled by the location of the text box cursor. The Reference Object can also be in another form, such as a highlighted background color that serves to indicate that the Second Message is linked to the First Message (i.e. clicking anywhere the background color appears) would reveal the popup message. In some exemplary embodiments, the user may include additional text that can be entered into the text entry box either before or after the placement of the Reference Object.
In one or more exemplary embodiments, multiple previous messages (i.e., multiple First Messages) can be referenced and included in the message stream. If multiple messages are referenced, then one or more of the Reference Objects are displayed. For example, the user may select a First-Message-Selection Display Object associated with the date/time field of a second chat message. The interaction of the user with the First-Message-Selection Display Object may activate the reference generation module of the chat messaging system for the second chat message. A second Reference Object noting certain identifying information of the chat message may be inserted in the text entry box of the interface portal. The second Reference Object, in one or more exemplary embodiments, can be inserted anywhere in the text entry box. As noted above, the user may include additional text that can be entered into the text entry box either before or after the placement of the second Reference Object. It is possible for the same message to be referenced multiple times by different new messages at any time in the future (or in the past).
In a further exemplary embodiment of the present invention, nested references may be available. For example, if a reference is made to a prior message which also contains a Display Object (and so on), a feature may be available to view all nested messages together. In other words, assume one Display Object references a message with a Display Object, and that Display Object references another message with a Display Object. I this exemplary embodiment, all the messages referenced by Display Objects (in nested formation) may be displayed together.
In the above explanation, the result of the actions described is the display of a popup that includes a link which, when clicked, results in access to a discount coupon (for example). This is merely exemplary. Other actions may occur upon selection of a field in such an exemplary popup, or instead of or in addition to display of the popup. Exemplary actions include initiation of an SMS text message, saving messages to an application (such as Evernote), popping up an additional window (which may also include a link that can be selected for further action to occur), and/or other actions.
In several exemplary embodiments, a First Message is displayed before a Second Message is formed with a Reference Object (that may be converted to a Display Object). In those embodiments, after the Second Message is formed, when the Display Object associated with the Second Message is selected, the information associated with the First Message that is displayed is at least a portion (e.g. text) of the First Message that was displayed. The examples illustrated in
While
It is noted in this explanation that a Reference Object may be inserted into a Second Message when a Second Message is created and a Display Object is displayed after the Second Message is received and displayed to the first user (or any user). Both the Reference Object and the Display Object reference the First Message or in some embodiments, are simply a copy of the First Message. For example, the Reference Object and the Display Object may simply be a copy of the text of the First Message (or alternatively both may be a link to the First Message). Thus, for example, in an embodiment, the copy of the text of the First Message is displayed as the Display Object. Thus, the Redisplayed Message may be a Display Object. In an embodiment, the content of all or a portion of the display of a Display Object is dynamically updated and displayed via a Digital Connection Link and maintains synchronicity with the First Message.
In an embodiment, the Reference Object and the Display Object both include the same link to the First Message.
In another exemplary embodiment, the Reference Object may include a first link to the First Message, wherein the first link is replaced in the Display Object with a second link to the First Message. Alternately, or in addition, the Reference Object and the Display Object both link to the First Message but differ in how they appear on a display.
In a further alternative embodiment, the Reference Object and Display Object are both copies of the First Message. Copies of the First Message may include a link (i.e. Digital Connection Link) to the First Message for the purpose of maintaining synchronicity between the First Message and the Redisplayed Message. This is further described below.
In an exemplary embodiment of the present invention, the Second Message maintains a Digital Connection Link with the First Message. So, if the First Message is edited the “Ref Pop” (what a user sees when selecting the Reference Object) displays the First Message with its edits. In addition to the benefit of displaying the most recently edited version of a referenced message (i.e. the referenced message is in sync on the respective devices of each message stream participant), another benefit of this approach is the fact that embedded links and files that are part of the First Message remain actionable and/or downloadable when the Reference Object is selected.
It is understood, however, that in some exemplary embodiments text can be added into the text message box before the Reference Object is added into the text message box.
After the second user has completed entering text into the text message box and causing the Reference Object to be added into the text message box, the second user is then able to transmit the Second Message. After transmitting the Second Message, the Second Message will then appear as part of the chat. This is shown in
In particular, these exemplary embodiments are with regard to an edit enabled and quote-reply enabled messaging system.
In
As shown (top left quadrant) of the figure, the First Message is stored in a database record [10025179]. Information associated with the First Message is stored in fields associated with the record. The content of the First Message, “Is anyone able to drive me to the airport tomorrow at 7AM?” is stored in a field named “Msg1.” In addition, in this embodiment, “D” to indicate that the message is of the type “Default” is stored in a field associated with the First Message named “Msg1Type.” Additional fields associated with the message, such as sender identifying information, channel name, message transmission date and time, and edit data, may be provided. The content of the First Message, in this example, based on its Database Record Number and “Msg1” field, is displayed both as part of the initial First Message and again when the First Message is quoted as part of the Further Message (i.e., the “Redisplayed Message”).
The bottom left quadrant and bottom right quadrant of
Thus, in this example, when the First Message is edited by the second user, the edit and associated data, if any, such as date and time of the edit, are reflected in the appropriate fields associated with the First Message (database at record number [10025179]) and is automatically incorporated into the quoted portion of the First Message in the Further Message because the first occurrence of the First Message (the original message) and the second occurrence of the First Message (being quoted in the Further Message) are both displayed based on the contents of the shared database resource in the cloud server. Again, the edit itself of the First Message causes the value of the shared database resource to be updated. This has the effect of causing all occurrences of the First Message to reflect the update (as illustrated, bottom right quadrant of
In this embodiment the Further Message (Database Record Number [11589610]) stores the Database Record Number [10025179] of the associated quoted First Message in its “IsReplyTo” field. In this embodiment the Further Message's Reply Message content is stored in the “Msg1” field. In this example a field named “Msg1Type” is included to identify the type of message stored in the “Msg1” field. So, for example, in the box labeled “First Message” (left-bottom quadrant) below the words “After Edit” the Msg1Type is “D” (a Default type message) and the Message type (Msg1Type) of the Further message is “R” (a Quote-Reply type message). Because the message type is “R” it is determined that the message stored in its own “Msg1” field (a Reply Message) should be displayed with the content of the “Msg1” field of the Record Number stored in its ([11589610]) “IsReplyTo” field (the number stored in the “IsReplyTo” field is 10025179]. By using this approach, the Reply Message is also a First Message in its own right, meaning that for the purpose of displaying the Further Message, the Reply Message will be displayed with the referenced First Message, but the Reply Message stored in the field “Msg1,” “I'd be happy to!,” can also be “quoted,” i.e., a selected First Message, and included, in a further, Further Message.
In some embodiments information relating to the edit history of a message is stored and associated with the edited message so that, for example, users can review the edit history of an edited message.
Note that in
In some embodiments using message identifiers, for example, to establish correspondence between messages stored both locally and on a cloud server (for example), can be used to synchronize an instance of a First Message on a cloud server and in local storage, when or after that First Message is edited. For example, as illustrated in
Note that in
In this exemplary embodiment, an edit to a First Message can cause an application routine to run on for example, the mobile phone, which in turn can locate instances in the local store of the mobile phone of the message identifier associated with the edited message. This in turn can cause the update in the local storage of messages corresponding to the message identifier of the edited message.
In some embodiments message identifiers are used to establish correspondence between messages stored both locally and on a cloud server (for example), and various approaches can be applied to cause the synchronization of those stored instances, when or after a First Message is edited. For example, message synchronization could be caused to occur periodically, such as based on elapsed time, when a user scrolls, switches channels, or otherwise causes the display of messages in the message stream to change. Message synchronization could thus occur after polling to identify an edit, or based on an interrupt.
To achieve synchronicity between a newly edited message stored on, for example, a cloud server, and a device with its own independent message store, the receiving device (e.g., a mobile phone) desirably recognizes that an edit to the First Message has taken place on, for example, the sending device (e.g., the server) to then cause a process of locating and updating any instances of the edited message in its local store of corresponding messages (in this example, correspondence is identified based on Message Identifiers).
In the embodiment illustrated in this
This
In an exemplary embodiment of the present invention, the First Message can have associated permissions for sharing the First Message via a Further Message outside of the channel in which the First Message was sent. Various permissions may exist, such as permissions associated with the user that originated the First Message, permissions associated with the device that originated the First Message, permissions associated with an account from which the First Message originated, permissions associated with the First Message regardless of whether it has been edited, permissions associated with the First Message after it has been edited, permissions associated with whether edits to the First Message may be shared outside of the channel in which the First Message originated, etc.
In some exemplary embodiments such as what is illustrated in
In a further exemplary embodiment of the present invention, a text entry bar is capable of retaining data entered (e.g. text, and associated data, such as a Reference Object) while viewing one channel even though the data was previously entered while viewing another channel. This feature permits various messaging options such as inter-channel message referencing. Thus, a “connection” is retained between one channel (in which one or more “first” messages are selected) and another channel (from which the “further” message is transmitted). Put another way, in some embodiments, a message may be referenced (i.e., a First Message selected) from a channel in a network that is different from the channel and network in which it is ultimately transmitted. For example, a user may subscribe to two different networks; for example, their own company's messaging network in addition to one or more other networks such as a client's network. It is anticipated that a user may want to quote a First Message from a channel on a first network and create and transmit a Further Message (i.e., includes a Reference Object and reply text) associated with the selected First Message from the first network to a channel associated with a second network.
In some exemplary embodiments, users are able to send a message to a group in a channel while at the same time sending the message to an external email address or addresses. This functionality is further described in U.S. Pat. 9,712,466, which is incorporated by reference herein for its teachings regarding messaging and other forms of electronic communication.
In some embodiments an emailed reply is expressed as a message. In some embodiments an emailed reply can be accessed via a link such as a hyperlink. In the exemplary embodiment illustrated in
In this example, the email included a PDF file attachment which is presented and available for access through a further action such as a double-click on the PDF file icon (#1735). The Further Message (#1705) depicted in
For example,
One aspect of the present invention relates to “quoted” messages. With regard to one or more exemplary embodiments of the present invention, when a first user replies to a message placed in the message stream by a second user, the first user may wish to “quote” the second user's message. The message placed in the message stream by a second user, and received by a first user, may be referred to as a First Message. The reply to the quoted First Message may be referred to as a Reply Message. When the Further Message is displayed in the message stream, an example of what is displayed is the “quoted” portion of the First Message (sometimes called the “Redisplayed Message”) and the first user's reply to the First Message (sometimes called the “Reply Message”).
Further to the above explanation, is the following issue: what happens if the second user edits the First Message? For example, if the second user edits the First Message where it initially appeared in the message stream, does the edit “flow through” to the quoted part of the First Message that is displayed when the Further Message is displayed? In exemplary embodiments of the present invention, “flow through” is achieved. In other words, an edit to the First Message is reflected in the Redisplayed Message. Put another way, there is “synchronicity” between the First Message and the Redisplayed Message.
One way to achieve synchronicity in accordance with the present invention is to include a link (i.e., a Digital Connection Link) between the First Message and the Further Message. An example of this is when the Redisplayed Message appears as part of the Further Message when a user clicks on a Ref object included with the Further Message. By clicking on the Ref object, a “Ref Pop” (i.e. the First Message) appears as the Redisplayed Message. However, it may be desirable for the Redisplayed Message to appear with edits that were made to the First Message. Therefore, a link (Digital Connection Link) is maintained between the Further Message and the First Message so that edits to the First Message “flow through” to the Redisplayed Message.
There are technical advantages achieved by providing the above described “flow through” (or “remaining in sync”).
In addition to the benefit of displaying the most current edited version of a first (referenced) message by remaining in sync, another benefit of remaining in sync is the fact that embedded links and files remain actionable and/or downloadable from the Ref object. Put another way, after the First Message appears in the message stream, if the first (referenced) message is subsequently edited, updated or deleted, the inserted representation (e.g., text) of the referenced message may, be updated to match, approximate or indicate such update or change.
Other technical advantages are achieved through the above described “flow-through.” One advantage is that the above-described process ensures that an entered Reply Message is being directed to the most current version of the First Message. Without the above process, if a First Message is edited and a reply is sent, it may be unknown whether the Reply Message is being directed to the most recent version of the First Message. Another achieved advantage is that a Further Message that had been sent prior to a subsequent editing of the associated First Message can reflect the edit to the First Message. Another achieved advantage is that when the Redisplayed Message is displayed with the Reply Message, the Redisplayed Message is the most recent version of the First Message. Without the features above, the Redisplayed Message being displayed with the Reply Message may not be the most recent version of the First Message. In other words, without the above described features the Redisplayed Message may be incorrect. Exemplary embodiments of the present invention thus provide technical advantages over the prior art in which display of an edited First Message (or portion thereof) in combination with a Reply Message to the edited First Message was not contemplated.
Thus, in an exemplary embodiment of the present invention, the Reference Object (or Display Object or Further Message (whether verbatim or otherwise) maintains a link (Digital Connection Link) with the first (original) message. So, for example, if someone edited the first (original) message (with or without prior edits)—the “Ref Pop” or other display of the Redisplayed Message—(what a user sees when they click on the REF object) shows the updated, changed or edited message. Again, in addition to the benefit of displaying the most current edited version of a referenced message by remaining in sync, another benefit of this approach is the fact that embedded links and files remain actionable and/or downloadable from the Ref object.
In some embodiments, it is desirable to maintain synchronicity between an original message and the quoted portion of said original message in a Further Message.
In some embodiments, and/or in some scenarios in some embodiments, it may be undesirable to maintain synchronicity between an original message and the quoted portion of said original message in a Further Message. In such an exemplary embodiment, synchronicity may be desirable in some situations and undesirable in other situations. Alternatively, synchronicity may be initially desirable, but later undesirable. An exemplary scenario is a messaging platform directed towards auctions or sales whereby, message editing is generally permitted, or conditionally permitted based on, for example, a specified period of time after an original message is posted. In this example, once a subscriber posts an item for sale in a channel and channel subscribers have made offers and purchases, it could be undesirable to permit edits to the description of an item after the item had been bid on or purchased.
In contrast to the messaging system described above and depicted in
More specifically, exemplary embodiments of the present invention include features for facilitating simultaneous or near simultaneous edits to an original message in a quote-reply enabled messaging system.
In an exemplary embodiment of the present invention, an indication of said edit is displayed associated with the edited First Message in addition to the display of one or more edit indications associated with the Further Message. One indication of the edit associated with the Further Message is the change in the display of the “Redisplayed Message” itself (i.e., the portion of the Further Message that is the quoted portion of the quoted message). An example of a second edit indication is the display of an “Edited” icon or added text such as “EDITED”. In some exemplary embodiments, the edit indication associated with the Further Message can include a control that when activated can cause an action such as the launching of an “edit my reply” modal or the displaying of the history of edits to the First Message (e.g., a control that when activated allows a user to view a list—or to page through—previous edits to the associated edited First Message.)
In some exemplary embodiments, a sender of a quote-reply message, (i.e., a user that selected a First Message for quoting, added a reply, and transmitted a Further Message) would be alerted if the selected First Message associated with their quote-reply message (the “Further Message”) had been edited, and provided the opportunity to edit their own reply associated with said Further Message. (
A solution to maintaining synchronicity between corresponding data elements could be through the use of a shared data resource location (
A computer link is processed by a computing device. Exemplary computing devices include the devices and/or servers (such as cloud servers) illustrated in
The above explanation has been with regard to a shared data resource. A shared data resource can be, for example, a shared memory location. The shared data resource can be at a physical address or at a virtual address. The shared data resource can be in multiple locations (e.g. multiple servers and/or redundant servers in a cloud environment, or other multiple locations). The shared data resource may be a physical location (such as a server) or a logical/virtual location such as a variable or a field in a database.
In several of the examples provided above, with regard to exemplary embodiments of the present invention, the First Message is displayed as a Redisplayed Message in a message that includes a Reply to the First Message (variously referred to for example as a “quote-reply message,” “Further Message,” or sometimes a “Second Message”). Thus, in the Further Message, what is typically visible is the First Message and the Reply to the First Message. For clarity, the combination of the reference (i.e., Digital Connection Link) and the Reply Message are referred to as a Further Message. When the First Message appears in the Further Message, the First Message may be referred to as the quoted message.
In the WhatsApp® example above, referring again to
Thus, in
In accordance with an exemplary embodiment of the present invention, the display of a quoted message (displayed associated with the further message) is not a copied [static] version of the First Message (i.e., the First Message “as-is”) at the time the First Message is selected. But rather the associated quoted message is an instance of the current state of the value of the First Message. Said instance being for example stored in a variable: wherein the value of the First Message is a stored value that is pointed to by a Digital Connection Link associated with a Further Message. In an embodiment, a change to the value of the variable, itself, has immediate/current effect on the display of said variable in all occurrences of said display of the content of said variable.
In some embodiments a process can be put in place to prevent the automatic “immediate/current effect” from occurring. In some exemplary embodiments, where use of a shared data resource is applied (such as a record in a shared database or a declared variable), it may be desirable not to have all instances pointing to the shared data resource updated. In other words, in some exemplary embodiments, it may not be desirable to keep the respective instances that point to a common variable in sync. In such cases, an edit function can be created that causes the “disconnection” of one or more instances that point to the common variable (i.e., shared data resource). An example of an approach that could facilitate such a disconnection could be a subroutine that recognizes that an edit is occurring, (e.g., “on message edit”, spawn a new variable containing the current value of a shared data resource, and repoint one or more instances of messages that point to the old shared data resource (e.g., variable) to the newly spawned variable (i.e., the newly spawned variable that retains the original message content).
One advantage of transmitting a computer link (i.e., Digital Connection Link) that points to a shared data resource is that the approach is non duplicative, i.e., in some cases (such as the copying the entirety of the content associated with a quoted First Message) the approach reduces transmission time, bandwidth requirements, and storage overhead. E.g., data such as quoted text, images and/or video information need not be duplicated, transmitted, and stored. In some embodiments, data may be stored in different places. For example, some data may be stored locally while other data may be stored on a cloud server. In some embodiments, the Digital Connection Link references data stored locally, or references data stored in a cloud server, or references data stored locally and in a cloud server.
In some exemplary embodiments that permit both quote-reply messaging and message editing, implementation of a shared data resource approach may not be desired. In some embodiments, updating corresponding elements may not be desired and other approaches should be devised or considered. For example, users modifying an image (editing a group photo for example) that was initially shared via a quote-reply message, may each want to apply and maintain their own respective local version of their own edits. Another example is a messaging platform directed towards auctions or sales whereby sellers post items for sale in a channel and whereby channel subscribers can monitor listings as they are posted. In an embodiment, sellers may be afforded a limited window (e.g., 15 minutes) during which they may edit their listing and wherein for that initial period of time quote-replies of bids or orders associated with an offered item are not permitted. Once the window has closed and bids and purchases begin, edits to an original description may be prevented by the system in some manner such as preventing display of an editing modal after an “allowed-to-edit” time period.
In some embodiments, where synchronicity between a First Message and a quoted portion of said First Message in a Further Message is achieved by use of a shared data resource, such as a database record, it may be desirable to provide an additional indication that an edit has occurred (an indication in addition to the indication provided by the display of the text itself being changed).
In some embodiments, a modified version of the edited quoted text may be useful, or an “edited” icon, symbol added. For example, added text such as “Edited” could be displayed in an area proximate to the displayed updated display of the First Message associated with the Further Message.
Since in some systems, the modification of the value stored in the shared data resource occurs without regard to what effect the update has in cases where the stored value is displayed, it may be desirable in an exemplary embodiment to monitor (e.g., via polling or an interrupt) the messaging system for instances of a modification of the shared data resource so that modifications can be indicated to users. For example, it may be desirable to provide an additional indication (i.e., a “second edit indication”) to instances of edits of First Messages associated with previously transmitted Further Messages. In some embodiments it could be beneficial to add an additional, more overt indication, such as an “edited” icon associated with the displayed edited (all or a portion of the) quoted First Message (associated with the displayed Further Message).
Other examples of added additional indications include, new text, message pinning, animation, font change, edited text highlighting, or other indicator added to or replacing the content of the shared data resource. The additional indication can be a visual indication that differs from how other Redisplayed Messages appear in order to call heightened attention to the fact that the Redisplayed Message has been edited. For example, if the First Message text “It was good to see you today” was edited to read, “It was lovely to see you today”, new text such as “EDITED: ” could be added to the pre-existing content. In this example the stored content of the shared data resource becomes “EDITED: It was lovely to see you today.”
In some embodiments artificial intelligence (“AI”) can be applied by the messaging system to determine the, for example, materiality, of an edit (e.g., semantically distinct, or other analysis of attributes and/or effect of an edit) and base whether an edit should be permitted and/or whether an additional edit indication should be added, and if an edit is allowed and an additional edit indication added, the form and substance of such edit indication. For example, if the AI applied rules/parameters determine that the edit described in the immediately preceding example (“good” to “lovely”) is immaterial then the system may determine against adding an edit indication associated with the edited messages and/or Redisplayed Message/s. The rules applied relating to what constitutes a material edit as opposed to an immaterial edit could vary from messaging system to messaging system, channel to channel or even user to user. In some embodiments the rules can be static. In some embodiments the rules may be dynamic, for example, evolve based on AI experience and/or user input.
In the above described embodiments, for example, an NLM (Natural Language Model) based AI system may be implemented to classify edits as “material” or “immaterial.” Such implementation may be performed, for example, as follows:
1) A large data set of text messages may be collected along with their edited versions. When collecting such a large data set, the data set may be formed with a combination of examples of both “material” and “immaterial” edits. Each pair of original and edited text messages are then labeled to indicate whether the edits are “material” or “immaterial.” As an example, text messages with spelling corrections may be labelled as “immaterial” while text messages with changes to the start date/time of a calendared event may be labelled as “material.” Additional steps may be performed in this data collection phase. For example, text within text messages may be tokenized so that the text is split into individual words or sub words. The original and edited text messages may be aligned to identify the changes between the two. Features may be extracted to capture the nature of the changes such as the type of edit (for example spelling error, change in the start time or a date of a calendar event, etc.) and the context in which the edit occurs.
2) A pre-trained neural language model (for example BERT, GPT, etc.) is chosen as the base model. Feature vectors may be created to capture the semantic difference between the original and edited text messages. The model may then be trained on the collected dataset. In this training, the model learns to classify edits as “material” or “immaterial” based on the labeled examples. A loss function and optimization algorithm may be used to train the model.
3) Metrics such as FI score may be used to evaluate the model's performance. Cross validation is performed to confirm the model is generalizing well.
4) The trained model is then deployed to review messages both before and after editing. At least some of the example steps set forth above (e.g. indicate an error has occurred, indicate a material or non-material edit has occurred, characterize an edit as affecting start date/time of a calendared event) then occur based, for example, on whether the NLM model has determined that the edit is “material”, “non-material”, affecting a start date/time, etc.
5) In some exemplary embodiments, the NLM model is periodically retrained to ensure continued accuracy. In some exemplary embodiments, users are permitted to provide feedback regarding the model's accuracy, wherein the feedback is used to further fine-tune the model.
In some embodiments, other approaches to adding an additional indication to the portion of the Further Message displaying all or a portion of the edited First Message associated with the Further Message can be applied.
For example, if a new message is created and transmitted that reads “Can someone take me to the airport tonight a 6 PM,” it can be determined that the time of transmission (for example) is the moment of allocation of the shared data resource for the new message. At a later point if, for example, the First Message associated with the existing message identification number is edited, it can be determined that this is not the moment of allocation for the shared data resource (i.e. the shared data resource has been edited, and is not being initially allocated) and by recognizing this fact, content could be added to the field such as “EDITED.” In this manner all instances of the shared data resource could reflect the edited message along with the text “EDITED.” In some exemplary embodiments, rules could be applied as to when and if added text or an icon are to be added.
In some exemplary embodiments, other and/or additional rules could be applied to limit or change the displayed representation of the shared data resource. For example, in one exemplary embodiment, distinguishing between types of messages (and applying different rules) occurs, and a different representation of the edited quoted text is displayed depending upon the type of message that is associated with the resource.
In an exemplary embodiment of the present invention, a messaging channel user constructs a quote-reply message by selecting a First Message, entering a Reply Message, and transmitting the Reply Message, along with a Digital Connection Link to the First Message, as a Further Message. The further message is transmitted from the user's client device to one or more receiving client devices (each a “receiving device”) [typically via a cloud server]. In some embodiments, the transmitting device is also a receiving device. In some embodiments, the transmitting device is not a receiving device.
Quote-Replies, in a messaging system that also facilitates message editing, is an example of a use-case that can benefit from feature interoperability and first-message instance to second first-message instance synchronicity, i.e., a concurrent or near concurrent change in corresponding elements. In an exemplary messaging embodiment that permits both message editing and quoted replies, it could be advantageous to have the First Message and the quoted portion of that First Message automatically and simultaneously update, upon the editing of a, in this example, previously quoted, First Message.
In
In
In
In
In some embodiments text entered into the text entry box (in some cases, in combination with displayed text, such as in cases when an original message is displayed while text insertions and/or deletions are being made) can be analyzed while the text is being entered and before the editing user indicates that it should be posted (i.e., effectuated). In some embodiments text entered and displayed in the text entry box can be analyzed prior to the user pressing “send” by for example, the user tapping, clicking on another control, e.g., a “quick check” icon or button.
In some embodiments text entered into the text entry box is analyzed (using, for example, AI) prior to the user indicating their desire to “post” the edit (by for example, pressing “send”), as a result of fulfilling a condition such as a lapsed period of time.
In some embodiments, it is determined if the pending edit (e.g., the current state of the text being displayed in the edit text entry field, but not yet “posted”) changes the meaning of the pre-edit First Message. For example, is the pending edit a simple fix of a typo or is the edit material as determined by system rules (e.g., does the edit change the meaning of the First Message?)
In some embodiments AI's determination of whether or not an edit is immaterial as opposed to material could cause the system to initiate or not initiate a further step. For example, if the system determines that the edit was immaterial, perhaps something such as a spelling correction, then the system may accept the edit without introducing a further prompt to the user (e.g., the user may not be offered an opportunity to characterize their edit). On the other hand, if it is determined that the meaning of the now edited First Message has changed—for example, if the original pre-edited message read “We're going to move forward with ABC Company after all” was edited to read “We're not going to move forward with ABC Company after all” then the system may go down a different path; for example, prevent the edit, suggest an alternative—non-meaning-changing edit, or provide the editor with options such as, notify the senders of quote-replies, i.e., senders of replies associated with the now edited but previously quoted First Message, or provide an option to strike replies associated with the previously quoted, subsequently edited [redisplayed] message (e.g., display reply text with a line drawn through it).
Thus,
After sending his message, Sam D realized that he made a mistake in his original message (he meant to say 5 AM, not 7 AM). Upon realizing his mistake, Sam D edited his original message to read, “Is anyone able to drive me to the airport tomorrow at 5 AM?”
Again,
Referring again to
The following is an example of a messaging system implementation that may inadequately inform message recipients that an edit to a quoted and replied to message has occurred. Also such a messaging system may fail to consider or address the ramifications that an edited message can have on a quoted instance of that edited message and on the reply message displayed together with it.
The aforementioned example will now be delineated:
In the above example, it can be stated that the display of the edited redisplayed First Message itself is an indication that an edit has occurred. When a First Message schedules a meeting for 5 AM, and the First Message (after being quoted in a quote-reply message) is edited to change the meeting time to 7 AM, it can be stated that the displayed modification of the redisplayed message itself is an “indication” that the message has been edited. This particular “edit indication” however is subtle and may be overlooked. Is there another way to advise message channel participants that the redisplayed message portion of a further message has been edited? Is there another way to convey to channel members that a reply message displayed together with a modified redisplayed message may no longer be responsive to the post-edit) redisplayed message?
It may be desirable for a further indication to be provided (that a message has been edited). This further indication is overt and different than the subtle “edit indication” described above. It may be desirable to automatically strike or allow an editing user to direct the striking of reply messages in effected further messages. It may be desirable to add a “reply-out-of-date” icon proximate to the reply message portion of a further message. It may be desirable to notify quote-reply generating users that a message they had replied to has been edited. It may be desirable to provide editors with the ability to add a characterization indication to displayed of instances of their edit to aid channel members to convey the significance of an edit. It may be desirable to prevent editors from editing a message that has previously been quoted.
Exemplary embodiments for achieving such a further indication are set forth herein.
A further indication that editing has occurred (a second edit indication) is to display the “further indication” so it appears associated with the Redisplayed Message. In
Referring again to
In some embodiments one or more of the displayed edit indications associated with the edited First Message and the one or more displayed edit indications associated with the Redisplayed Message associated with the Further Message are the same. In some embodiments one or more of the displayed edit indications associated with the edited First Message and the one or more displayed edit indications associated with the Redisplayed Message associated with the Further Message are different.
In some embodiments the type and or number of indications associated with the First Message and the Redisplayed Message associated with the Further Message are the same. In some embodiments the type and or number of indications associated with the First Message and the Redisplayed Message associated with the Further Message are different.
In some embodiments one or more of the displayed edit indications associated with the edited First Message and/or the one or more displayed edit indications associated with the Redisplayed Message associated with the Further Message are receptive to interaction in order to cause an action (e.g., review edit history, mark as seen, pin the message, add a reaction such as an emoji to an area associated with the edited message or the edit indication).
In some exemplary embodiments, a quote-replying user can edit and/or delete their reply text that was transmitted in connection with their reply to a quoted First Message.
In some exemplary embodiments, one or more attributes of the reply text and/or the area associated with the reply text associated with a Further Message is modified (or deleted) automatically. For example, the color of the reply text changed, font italicized, or a line drawn [e.g., horizontally] through the reply text. This form of edit notification could be useful, for example, to alert channel members that a Reply Message may no longer be responsive to the displayed First Message which was edited after the Reply Message (as part of the Further Message)—was transmitted).
In some exemplary embodiments, an indication clearly associated with the reply text included in the Further Message is displayed, to convey to users that the reply text occurred prior to the edit to the First Message.
Utilizing a message identifier as the basis of correspondence between an original First Message and the quoted portion of said First Message associated with a Further Message can be another successful approach. This approach, in an embodiment where, for example, message storage is distributed (e.g., sever message data storage and respective local device message data storage), as opposed to being based on the use of a shared data resource, has some benefits such as providing a messaging system with an enhanced approach to controlling/restricting First Message propagation. It also, arguably, has some detractions such as complexity, immediacy, and concurrency.
In some exemplary embodiments, the characterization of the edit may not result in an edit indication that the message has been edited. An example could be a minor spelling error. If, for example, a minor spelling error is corrected in the First Message after the First Message has been (at least partially) quoted in a Further Message, the correction of the spelling error in the First Message does not necessarily alter the responsiveness of the Reply Message to the First Message. Functionality may therefore be provided to control whether indication of the editing of the First Message occurs.
In some exemplary embodiments, controlling whether notification of the editing of the First Message occurs is achieved manually, for example based on the characterization that is selected in the embodiments corresponding to
In this embodiment the editing user is warned if the message they have selected for editing has been previously quoted (2200). In some embodiments if it is determined that a First Message has already been quoted, then editing of the already quoted First Message may be prevented (
In some embodiments, a user interaction with, for example, an “Edit” option in a menu, or interaction with an “Edit” control (e.g., an edit icon) associated with a message intended for editing causes determining if the message intended for editing has been previously quoted. Various approaches for determining whether a First Message selected for editing has been previously quoted may be applied.
For example, in an embodiment where the Redisplayed Message relies on a Digital Connection Link that shares a shared data resource with the First Message selected-for-editing, initiation of a lookup, search, or performance of another action may occur to determine if the shared data resource is being pointed to by one or more Further Messages. If, for example, it is determined that the shared data resource is being pointed to by, for example, one or more Redisplayed Messages associated with one or more Further Messages, then it may be determined that the First Message intended-for-editing has been previously quoted. Other approaches, for determining if a message selected for editing has been previously quoted, such as searching for text matching the text of a selected intended-for-editing message in combination with its associated meta data can be applied. A further example would be a quote-reply messaging system wherein when a Further Message is created data is added to a database record associated with the selected First Message to indicate that the First Message has been quoted and/or to indicate that the First Message may not be edited.
In addition, in an embodiment where the Redisplayed Message relies on a Digital Connection Link that relies on a message identifier as a basis for correspondence between a First Message and one or more Redisplayed Messages, searching of a message channel (or channels) for duplicate occurrences of the message identifier associated with the First Message may occur. If a message identifier associated with a Further Message is located, the system can conclude that the First Message intended-for-editing has been previously quoted.
In this embodiment (
In this embodiment the editing user may choose to Cancel the Edit or Strike the reply (for example, have the reply text appear with an indication of being stricken, such as having a line drawn through it) (2210).
In this embodiment, the message editor may request that the author of the Reply Message be notified that the message has been edited. Notification could be in the form of, for example, an application notification, a text message (e.g. SMS, RCS), an email or telephone call.
In this embodiment the editing user may swipe left or right on an area of the warning message to view and address additional instances of message quoting. Item 2220 is an exemplary visual indication that, in this example, indicates that there are three “Further Messages” that include the First Message targeted for editing. The user in this example can swipe left and right to view successive or preceding effected Further Messages. In this example the editing user is permitted to address each Further Message individually. In some embodiments the user can address one or more Further Messages together, e.g., “strike all replies in all Further Messages that include this [edited] First Message.”
In some embodiments editing of a First Message causes replies associated with one or more associated Redisplayed Messages (i.e., in Further Messages) to be automatically deleted, stricken, highlighted, or marked to indicate that the reply was posted before the First Message was edited. In some embodiments Further Messages associated with an edited First Message (a message that includes a Digital Connection Link to a First Message and an associated Reply Message), are automatically deleted, stricken, or marked to indicate that the associated First Message was edited. In some embodiments a quote-replying user is automatically notified when a First Message associated with a Further Message created by the user has been edited.
Additional and/or other options can be provided.
In some embodiments, a user interaction with, for example, an “Edit” option in a menu, or interaction with an “Edit” control (e.g., an edit icon) causes determining if a message selected for editing has been previously quoted. Various approaches for determining whether a First Message selected for editing has been previously quoted may be applied.
For example, in an embodiment where the Redisplayed Message relies on a Digital Connection Link that shares a shared data resource with the First Message selected-for-editing, initiation of a lookup, search, or action to determine if the shared data resource is being pointed to by one or more Further Messages may occur. If, for example, it is determined that the shared data resource is being pointed to by, for example, one or more Redisplayed Messages associated with one or more Further Messages, then it may be concluded that the First Message intended-for-editing has been previously quoted, and therefore prohibiting (or discouraging) editing of the selected message may occur. Other approaches, such as searching for text matching the text of a selected intended-for-editing message in combination with its associated meta data can be applied. A further example would be a quote-reply messaging system wherein when a Further Message is created, data is added to a database record associated with the selected First Message to indicate that the First Message has been quoted. This added data could be later applied to help determine whether or not to allow the associated (known-to-have-been-quoted) First Message to be edited.
In a further embodiment, one where the Redisplayed Message relies on a Digital Connection Link that relies on a message identifier as a basis for correspondence between a First Message and one or more Redisplayed Messages, a message channel (or channels) can be searched for duplicate occurrences of the message identifier associated with the First Message. If a message identifier associated with a Further Message is located, it may be determined that the First Message intended-for-editing has been previously quoted, prohibiting (or discouraging) editing of the selected message may occur.
In some embodiments, a user may edit a Redisplayed Message. In such embodiments, similar or other approaches can be employed to determine whether or not to allow an edit to the Redisplayed Message. In some embodiments, where editing is generally permitted, editing of a Redisplayed Message may be prohibited. In some embodiments where editing of a Redisplayed Message is generally permitted, editing of a Redisplayed Message causes the associated First Message to be modified to reflect the edit made to the Redisplayed Message.
In some embodiments a message action such as an “edit” can be initiated as a result of a direct interaction (e.g., a swipe, long-press, tap, click, or audible command) with, for example, a Display Object such as an action specific icon (e.g., an edit icon or all or a portion of the displayed message text), or action-triggering area associated with a message causes the process of user-editing of a selected message to commence.
In some embodiments where, and while editing is generally allowable, it may be beneficial to prohibit an edit to a First Message that has been previously quoted (e.g., quote-replied to). In some embodiments, such an edit prohibition can be absolute and automatic and in some embodiments allowance of an edit could be contingent (e.g., a simple typo correction may be allowed, but a change in message meaning, perhaps as determined by AI, may be prohibited). In some embodiments, such an edit prohibition can be based on user identification, e.g., some users may be permitted to edit a message while other users are not permitted to edit a message.
As a result of determining that a First Message has been previously quoted, preventing the First Message from being edited may occur thereby providing for, among other benefits, reducing the possibility that one or more Reply Messages associated with an edited First Message will lose its relevance, i.e., no longer convey the replier's intended meaning.
In some embodiments, if it is determined by the system that a message has been previously quoted, “edit” triggering functionality is prevented (with or without a visible notification to the intending-to-edit user).
In some embodiments an application such as spell-checker or grammar checker could initiate an interaction with a user that results in editing of a posted First Message.
In some embodiments artificial intelligence could initiate an interaction with a user that results in user-editing of one or more posted messages. For example, AI may determine and identify for one or more users a contradiction, redundancy, or inconsistency, between one or more previously posted user messages and specific previously posted one or more messages; or for example, a contradiction, redundancy or inconsistency between one or more user messages and the AI's “surmised meaning of” and/or “direction of” of a channel, thread, selection, or other group of messages.
In some embodiments an indication intended to convey to channel users that a Reply Message associated with a displayed Further Message is out-of-date (e.g., an icon, and/or text such as “this reply is out of date” or “this reply was sent before the associated First Message was edited) can be caused to be displayed by an action taken by an editing user, or automatically displayed, as a result of an edit (
In some exemplary embodiments, messages are transmitted as a message packet (2300), the message packet comprised of data elements such as a message packet identifier (used to identify the message packet) (2302), a Message Packet Type Identifier (2305), a Message Identifier (n) (i.e., a form of “Digital Connection Link”) used to identify the First Message (2310), and reply data such as text (2360).
In some exemplary embodiments, a message packet combines discrete elements into a single element. Other examples of information that may be included in the message packet are (these may be optional depending upon the application): message identifier associated with the Reply Message (2365), selected all or a portion of First Message (n) (2315), channel identifier (n) associated with the First Message (2320), metadata associated with the First Message, metadata such as date and time (n) associated with the First Message (2335), channel identifier associated with the Reply Message (2370), First Message type (n) information (e.g., “E” for edited message or “T” for a task message) (2325), identifying information regarding email recipient (n) of the First Message (2340), message ID associated with email recipient/s (2345). In some embodiments other data can be included and associated with one or more transmission packet portions. Some examples of message packet portions are: First Message (n) Portion (2355) and Reply Message (n) Portion (2390).
In some exemplary embodiments, a copy of all or a portion of the selected all or a portion of said First Message is included in the message packet (2315). In some embodiments, sending a copy of the First Message may be useful and/or necessary but doing so can have drawbacks such as increased transmission time, bandwidth requirements, and storage overhead.
In some embodiments, a message packet type identifier and/or a First Message type (n) identifier, could be included to identify the type of message being transmitted, e.g., a type field that could store one or more characters such as a “R” to indicate that the message is a “Quote Reply” type message, an “E” to indicate that the message is an “Edited” message, an “EM” to indicate that the message includes email recipients, or an “IC” to indicate that a message is sent to a user of the same messaging platform who is employed by a different customer of the messaging platform (e.g., a shared channel, multi-tenant environment).
In some embodiments, message packet fields can contain information associated with one or more attributes, for example a message identifier field may consist of data “E4093562763017” that can be parsed by a receiving device to conclude that the initial “E” indicates an “Edited” message and the characters “4093562763017” following the “E” represent the message identifier of the edited message.
In some embodiments, the message identifier is used in lieu of other approaches such as a shared data resource approach for storing (and redisplaying) the First Message. In some embodiments, the message identifier is used when shared data resources are available for storing (and redisplaying) the First Message.
In some exemplary embodiments, restrictions are put in place regarding who may have access to messages transmitted in a message channel.
In an exemplary embodiment of a messaging system that utilizes a message identifier as the basis of a correspondence between a First Message and a display of the First Message associated with a Reply Message, recent channel subscribers may not be permitted access to messages received in the channel prior to their subscribing to that channel. In some embodiments, at least some of the messages received on the receiving device may reside in the local store. The messages are comprised of at least the content of the received messages and respective message identifier. The message identifier corresponds to a matching message identifier associated with corresponding messages residing for example, on a cloud-based server. This embodiment can be an effective approach to, for example, denying access to quoted portions of messages that were originally transmitted before a user subscribed to a particular channel but was quoted after said user subscribed to the channel.
In an exemplary embodiment, one or more specified users can be prevented from receiving a Further Message containing all or a portion of specified previously received messages.
In an exemplary embodiment, specified channels and/or channel subscribers (associated with receiving devices) can be prevented from re-display of First Messages associated with certain Further Messages, even if a corresponding First Message resides in the local store of the receiving device. One way this can be achieved is by modifying or eliminating message identifiers associated with one or more messages (prior to transmission or upon (or after) receipt of messages by a receiving device). The modifying or eliminating of one or more channel identifiers and/or message identifiers can result in the receiving device being unable to locate a corresponding First Message.
In some exemplary embodiments, a receiving device uses the message identifier (a “Digital Connection Link”) to search for an instance of the First Message residing in the local store of the receiving device. If a corresponding message identifier is found in the local store, the receiving device ascertains the location and/or the content of the First Message. Location can refer to, for example, a location in a local memory or a remote source of data storage. Location can also refer to where the First Message is in a message stream so that it is possible to, for example, “jump” back to the First Message within the message stream. In some embodiments, and in cases where the message identifier was “found” in the local store, a control can be added by the receiving device, for example, to an area or object associated with the display of the Further Message (e.g., an area associated with the Redisplayed Message), said control operable to cause, for example, a “jump” to, and display of, the corresponding First Message where it resides chronologically in relation to messages received before and after said First Message was [originally] received. If the receiving device does not locate a message corresponding to the message identifier in its local store (i.e., the content of the First Message cannot be ascertained based on information stored on the local device), then the receiving device can opt to disregard (e.g., not display) the Further Message, or alternatively, for example, display the reply text proximate to a display of an icon indication or message text (e.g., “quoted message unavailable”) in place of the intended quoted First Message. In an alternative embodiment the receiving device can search for and obtain, if available, the First Message from an available cloud-based source.
One reason for utilizing a message identifier as a basis of correspondence between a First Message and a further display of the First Message associated with a Further Message may be to ascertain whether a user associated with a receiving device, or the device itself, is entitled to access to said all or a portion of the selected First Message. For example, in some use-cases, only channel members who had previously or initially received a particular transmitted First Message may be permitted access to the content of the First Message again in the future.
In another use-case example, a message identifier may be relied upon by a receiving device to search for an instance of a corresponding message identifier in the local store of the receiving device to ascertain the location or position of the First Message in a channel message stream relative to other messages in the channel stream.
In some embodiments, “corresponding” message identifier means a message identifier that is received, matches exactly (i.e., is comprised of identical data such as a string of identical alpha numeric characters) with the message identifier associated with the First Message and stored on a receiving device. In some embodiments, it may be desirable for the receiving device to alter and store a different message identifier than the received message identifier. In some embodiments, correspondence between the received message identifier and the stored message identifier can be maintained. In some embodiments, “corresponding” does not mean “matching exactly.” In other words, in some embodiments, an algorithm, for example, can be applied to a received message identifier that converts the representation of the received message identifier to a different representation of the received message identifier. In this manner, in some embodiments, message identifiers stored on a receiving device can be different than a corresponding First Message's message identifier as represented on a sending device (and/or server) but a correspondence between the respective message identifiers can be maintained (for example by storing the correspondence in an appropriate data structure or via a hash function). This may be useful in cases where an interaction with a Further Message on a receiving device is intended to cause a change in display (e.g., blinking/flashing of the corresponding First Message) to highlight in some fashion the First Message associated with the quoted portion of the First Message associated with the Further Message. In some embodiments, a change in display as a result of an interaction with a Further Message, is a change in the focus of the display from the Further Message to the position of a corresponding instance of the message identifier. In other words, if a user taps on the Further Message, the focus of the message displayed “jumps back” (to the display of the First Message in its original position in the message stream). Thus, a visual change occurs so that the First Message is displayed where it chronologically occurs in the message stream. This can be useful functionality that aids the user in determining the context of the quoted First Message.
At step 2400, a message packet is received by a receiving device. The message packet is comprised of at least a Message Packet Identifier and a Message Packet Type Identifier.
At step 2405, data transmitted in the message packet is stored on the receiving device.
At step 2410, the receiving device extracts information from the message packet and determines the message packet type.
At step 2415, if the message packet type is a “Quote-Reply Message” type (in the example, “R” type) then the application follows the application programming associated with “Quote-Reply Message” types. Processing then proceeds to step 2420. If the message packet type is an edited type message (in the example, “E” type) as determined at step 2416, then processing proceeds via off-page connector E to
At step 2420, the First Message identifier (n) and the First Message type (n) identifier is retrieved from the message packet. In some exemplary embodiments, more than one First Message can be selected for quoting, for example a first First Message, a second First Message (First Message (2)), an n First Message (First Message (n)), etc.
At step 2425, the messaging application on the receiving device executes a search to locate instances in the local store of message identifiers that match the message identifier extracted from the message packet. In some embodiments “match” means corresponds with. In some embodiments, the “match” may not necessarily mean a literal exact match of the message ID extracted from the message packet. In some exemplary embodiments, an algorithm could be applied for example that, for example, altered message IDs for security reasons, that were algorithmically applied to determine a “match.” In some exemplary embodiments, an identifier other than message ID could be used for the purpose of searching and locating matching First Messages.
If no matches are found, it is interpreted as meaning that the First Message does not exist in the local store on the receiving device, and processing branches to step 2460.
If matches are found, it is interpreted as meaning that the First Message exists in the local store on the receiving device and processing continues to step 2430.
At step 2460 in some exemplary embodiments, the message transmission packet includes a copy of all or a portion of the selected First Message, i.e., the message selected for quoting. In some exemplary embodiments, the transmission packet does not include all or a portion of the selected First Message. At step 2460, the application checks the First Message (n) field of message packet. If the field doesn't exist, or if the field exists and is “empty” then processing proceeds to step 2465. Otherwise, if there is data in the First Message (n) field, processing proceeds to step 2470.
At step 2465 (no data in the First message (n) field), the reply text extracted from the message packet is displayed along with text that reads, for example, “Quoted Message Unavailable.” In some exemplary embodiments other messages, icons, or approaches to handling an empty “First Message (n)” field can be applied.
At step 2470 (data in the First Message (n) field), the application extracts the contents of the First Message (n) field and displays the extracted content together with the reply data on the receiving device. In an exemplary embodiment, the feature of adding a control to the display of the First-Message +Reply-message message, to enable a jump back to the First Message in its original location in the message stream, is not provided, due to the fact that the First Message was not found in the local store.
At steps 2469 and 2479, processing terminates.
If a match between the message identifier retrieved from the message packet is located in the local store of messages on the receiving device at step 2425, then processing proceeds to optional step 2427.
At step 2427, location information associated with the located First Message (n) is retrieved.
At step 2430, quote-reply message creator (n) identifying information is retrieved from the local store of the receiving device.
At step 2435 meta-data (n) such as date/time that the quote-reply message was transmitted from the local store of the receiving device is retrieved.
At step 2440 the message content corresponding to the First Message identifier from the local store of the receiving device is retrieved.
At step 2445 the Reply Message data from the reply data field of the message transmission packet is retrieved.
At step 2455 the Further Message is displayed. In an area of the display of the Further Message, displayed is the Quoted Message Portion comprised of the First Message (n) corresponding to the First Message identifier (n) together with user information associated with the msg creator's (n) identifier information and with msg date/time of msg (n) information. A control (n) associated with the display of respective First Messages may be included, the control (n), for example, when activated causes the display of said respective associated First Message.
In an area of the display of the Further Message:
Displayed is the Reply data together with user information associated with the reply creator's identifier information and reply msg creation date/time of msg (n) information. In some embodiments a control can be added and associated with this this area to, for example, when activated, facilitate an action.
At step 2455, information associated with the Further Message such as First Message (n) content, First Message identifier (n), reply data message content, and Reply Message data identifier are stored on the receiving device. It is useful to store this data in the local store so that functionality requiring searching for data elements in the local store on the receiving device, can be effectively facilitated.
In an exemplary (embodiment of a) messaging system that utilizes a message identifier as the basis of a correspondence between a First Message and a further display of said First Message associated with a quote-reply message (a “further message”), a message editing function can be supported. In particular, it is desirable to have edits to an original message “flow through” to the quoted portion of said First Message in association with a further message wherein said edit and said flow through take place after the transmission of the Further Message. In such a system, synchronicity between an edited First Message and the quoted message portion associated with Reply Messages that previously quoted the First Message (i.e., “Further Message”) can be achieved.
One approach to achieving synchronicity between the edited original message and the quoted portion of the original message in a message identifier-based implementation is to include in the transmission of the edited message, information associated with the edited message. Exemplary information may be, for example, one or more channel identifiers associated with the First Message, one or more channel identifiers associated with the Further Message, a message identifier of the current Further Message, the message identifier of the one or more First Messages, the date and time of the edit of the edited First Message, information associated with the editing user's identification, the content of the edited message, and an indication that the current message is an edited message (for example via a type field included with the message transmission).
By transmitting certain components in a message packet, the receiving device can determine that the received message is an edited message. Based on the information available to the receiving device, the receiving device can replace or modify the original message (the “First Message”) in its local store (i.e., of the receiving device). In some exemplary embodiments, the original unedited version can be either retained or not retained. The knowledge that the message is an edited message also allows for an augmented or an additional “edited” indication (a second “edited” indication) to be displayed and associated with the edited message in its original location. An edited message indication of the message edit can be provided. The indication can be associated with the display of all or a portion of the First Message associated with the Further Message. For example, that indication may be in addition to the indication provided by the text itself which changed as a result of the edited text replacing the previous text.
After a receiving device has determined that a received message is an edited message, for example, the presence of an “E” in a type identifier field included in the message packet, the receiving device can search for and update the data in its local store corresponding to the First Message, and the “Further Messages” associated with corresponding first-message message identifiers. In this manner displayed “Further Messages” (in addition to the edited First Message) reflect the modification to the edited First Message.
In an exemplary embodiment, the update of the information in the local store associated with all or a portion of the First Message occurs automatically. However, in some exemplary embodiments, the update may be caused to occur by other means such as user request. In some exemplary embodiments, all instances of edits to a First Message associated with corresponding Further Messages are reflected (e.g., updated) in the receiving device's local store, while in other cases fewer than all Further Messages are updated. In some embodiments, edited text associated with a First Message is displayed, modified and/or replaced with other data.
In an exemplary embodiment of a messaging system wherein both quote-reply messaging and message editing are permitted and wherein the embodiment utilizes message identifiers as the basis of correspondence between a First Message and a quoted portion of said First Message associated with a Further Message, it may be advantageous to facilitate the synchronization of the display of the quoted portion of the First Message associated with the First Message and the First Message. In an exemplary embodiment, at certain times, such as, upon request of a user, or automatically when the messaging application is launched, or when a user switches the display of the channel being viewed from one channel to another channel, or when a user scrolls their display of messages to reveal additional messages, or when a new message associated with a channel is received by a receiving device, the receiving device identifies at least one existing quote-reply message in one or more channels. Based on an identifiable attribute, sequence, data match, or message identifier associated with the quote-reply type message or the quoted portion of said Further Message, the information stored in the local store of said local device is updated to reflect the corresponding data received from the cloud server based on said identifiable attribute/s. In an exemplary embodiment, a step involves identifying discrepancies between messages in the local store and the quoted portion of the quote-reply messages in the local store, and updates the quoted portion of Further Messages to match the data of the corresponding edited First Message. For example, if a discrepancy is identified, the Further Message is modified to reflect the change in the First Message.
Processing occurs at step 2525 via off-page connector E.
At step 2525, the First Message identifier is retrieved from the message packet.
At step 2530, the receiving device executes a search to locate an instance in the local store of the message identifier that matches the First Message identifier extracted from the message packet. In some exemplary embodiments, the search is limited to messages that are also of a specified type (e.g., “default” type). Limiting the search to the default type (for example) can result in (for example) only the original instance (i.e., the original First Message) being located and updated. This can be useful in scenarios where different indications are added by the application to instances of the edited First Message as it Is displayed associated with different types of message displays. For example, the indication of an edited First message that is associated with a Further Message may display a different edited icon than an edited original First Message (which has a different type association). In some embodiments “match” means corresponds with. The “match” does not necessarily mean a literal exact match of the message ID extracted from the message packet. In some embodiments an algorithm could be applied that, for example, alters message IDs for security reasons, that were algorithmically applied to determine a “match.” In some exemplary embodiments, an identifier other than message ID could be used for the purpose of searching and locating matching First Messages.
If no matches are found, it is interpreted as meaning that the First Message does not exist in the local store on the receiving device and processing branches to step 2534 and the processing is terminated.
If a match is found, it is interpreted as meaning that the First Message exists in the local store on the receiving device and processing continues to step 2535.
At step 2535, processing retrieves the message creator's (i.e., the message editor's) identifying information from the local store of the receiving device. In some exemplary embodiments, a message can be edited by one or more channel members. In some exemplary embodiments, a message can (for example) only be edited by the author of the initial message. In some embodiments only an authorized user can edit (e.g., channel leader, system admin).
At step 2540, processing retrieves meta-data from the message packet such as date/time that the quote-reply message was transmitted.
At step 2545, the edited message is extracted from the First Message data field associated with the First Message Portion of the message packet. In this example, the text “EDITED: ” is added to the beginning of the extracted message (together the “Edited Message”). The data associated with the First Message identifier is then replaced in the local store with the Edited Message.
At step 2550, the updated First Message corresponding to the First Message identifier is displayed.
At step 2555, the application searches for the next message corresponding to the First Message Identifier with a type identifier = “Further Message.”
Step 2560, processing adds, for example, text, such as, “QUOTED MSG EDITED: ” to the beginning of the extracted message (together the “Edited Message”) The application replaces the content of the First Message field corresponding with the found First Message portion of the Further message in the local store of the present device.
At step 2562, extract special edit instructions (if any) from message information packet (e.g., Did the editor add an editor reply-message message to be displayed associated with Reply Message?) e.g., Did the Editor specify an Edit characterization such as “Typo” or “Disregard this message?” Store editor reply-message and/or special instruction information in present device's local store.
At step 2563, extract “out-of-date reply” instructions (if any) from message information packet (or apply known instructions) (e.g., Should the display of replies associated with the effected one or more Further Messages be addressed? For example, should the reply portion of an effected Further Message be displayed with a visual indication to convey that the reply is “out-of-date, i.e., that the reply was posted prior to the edit to the First Message). Store “out-of-date reply” instruction information in present device's local store.
At step 2565, the edited First Message, and Further Message(s) including the edited portion of the Further Message corresponding to the edited First Message, is available to be displayed. In some embodiments an edited First Message and/or the portion of a Further Message that displays an edited First Message, are highlighted or an indication is provided that a message has been edited. In some embodiments an indication is added to Reply Messages associated with effected Further Messages to convey that the Reply Message, associated with the modified Redisplayed Message, is out-of-date.” In some embodiments edited messages that are not currently displayed on the device but have been updated in the local store, may not be displayed until scrolled back to or otherwise been placed into focus, by a user.
At step 2569, processing terminates.
Processing occurs at step 2625 via off-page connector D.
At step 2625, the First Message identifier is retrieved from the Message Identifier corresponding to First Message field of the First Message portion of the message packet.
At step 2630, processing retrieves the message creator's identifying information from the message creator identifying information field of the First Message portion of the message packet.
At step 2635, processing retrieves meta-data such as the date/time that the message was created from the date/time of message field associated with the First Message portion of the message packet.
At step 2640, processing retrieves the message Selected all or a portion of First Message field associated with the First Message portion of the message packet.
At step 2645, the receiving device displays the message corresponding to the First Message identifier together with user information associated with the message creator's identifying information and with metadata such as msg date/time of msg transmission information.
In some embodiments, a process identifies discrepancies between First Messages in the local store and the quoted portion associated with said First Message and associated with one or more Further Messages, and if a discrepancy is identified, the further one or more messages are modified to reflect the change in the First Message.
In an embodiment, when a user selects a First Message to quote and adds a Reply Message, a Digital Connection Link to the quoted First Message, and the Reply, are combined and transmitted. The Reply Message and the First Message (the latter accessed via the Digital Connection Link) are displayed together as a “Further Message.” Displaying the quoted First Message together with the Reply to that message, provides useful context in that all participants to the messaging stream in the messaging channel are able to see together both the First Message and the Reply to that message. More specifically, all participants are able to see the First Message that the Reply is replying to because they are displayed together as a Further Message. However, when a user edits the First Message after it has been already quoted and replied to in a Further Message, the Reply as displayed in the Further Message may be rendered inapplicable or misleading. The present invention is directed to addressing this problem, and others, by allowing functionality, starting at the point a user indicates their desire to edit a First Message such as: a) determining whether said First Message has been already quoted and replied to; b) determining whether to allow a previously quoted and replied to First Message to be edited; and c) providing functionality that, if editing of an already quoted and replied to First message is allowed, maintaining the context, integrity, and intended meaning of Further Messages. Other functionality may also be included.
Determining whether or not a First Message has already been quoted and replied to, and under what circumstances, if any, an already-quoted and replied to First Message may be edited, requires careful consideration. In a quote-reply system that also allows message editing generally, the domino effect of having edits to a First Message flow-through to the displays of that message beyond its first display in time, can be significant. For example, editing a First Message that reads originally, pre-edit, “Can anyone pick me up on Monday?” to “Can anyone pick me up on Friday?” may render a user's pre-edit reply, “Sure—see you then!” (meaning “Monday”), misleading now that the First Message (post-edit) refers to “Friday.” In such a case the reply is misleading even though it may continue to seem responsive. In other cases, an existing reply may no longer make sense as a reply to the First Message now that the First Message is displayed as-edited in the display of the Further Message. For example, editing a First Message that reads originally, pre-edit, “Where are we having lunch before the meeting?” to “What time are we having lunch before the meeting?” would render a user's pre-edit reply “Applebee's” nonsensical as a ‘reply’ to the now what time question. Ignoring such issues raised by allowing editing of received messages in a quote-reply messaging system can lead to confusion and unintended results.
Determining (among other things) whether a message intended for editing has been previously quoted and displayed enhances messaging system functionality and utility. In particular, such a message (or portions thereof) may be displayed at least twice: first when such a message initially appears as a First Message in a message stream; second when such a message is quoted and redisplayed with a Reply Message in a Further Message. Such determining allows the messaging system itself to directly address and/or facilitate user consideration and action addressing the effects that an edit has on (at least) quote-reply messages effected by an edit. Such determining allows users to address various considerations and direct intended outcomes which in turn, helps to preserve the integrity of messaging conversations.
Failure to determine and factor-in whether a message selected-for-editing has been previously quoted can have unintended consequences and may ultimately compromise the trust users have in such a messaging system.
A messaging system that fails to consider and provide functionality to address the ramifications of an edit to a First Message that flows-through to additional instances of the redisplay of the edited First Message, risks the inadvertent changing of the meaning of (for example) previously quoted and replied to messages. In such situations, replies to a quoted message may no longer make sense or convey the intended intent of a quote-reply message sender.
A few examples of functionality that can be provided based on the knowing that a message intended for editing has been previously quoted include: providing a warning to users intending to edit a message that the message intended for editing has been previously quoted; allowing editing users to characterize/qualify their edit, so that channel users can easily ascertain the significance of the edit; notifying quote-reply users that a message that has been replied to has been edited and offering those users the option to strike or edit their previously sent reply.
In some embodiments, First Message edit eligibility is determined, at least in part, by determining whether the First Message selected and intended for editing has been priorly quoted and displayed as a portion of a Further Message.
In some embodiments, edit eligibility is not determined based on whether the First Message selected and intended for editing has been priorly quoted and displayed as a portion of a Further Message.
In the prior art, in some situations, messages will not be allowed to be edited if a specified period of time has elapsed since the message intended for editing was first transmitted. In the prior art, in some situations, messages will not be allowed to be edited if the message intended for editing was not authored by the message's original author. In contrast to these edited message scenarios that affect just a single message instance, an edit in a quote-reply messaging system can affect any number of redisplayed instances of the edited message, and can even change the meaning of associated Reply messages.
In an embodiment, a quote-reply enabled messaging system that also permits message editing, determining whether or not a message is eligible for editing doesn't depend solely on whether or not the message intended for editing has been previously quoted and displayed together with a reply to the pre-edited version of the message selected for editing. In such a system, consideration must be given to whether, and, if so, how, an edited message should be indicated as having been edited, and, if so, how additional display instances of the quoted, now edited, message should be displayed. A determination to allow a selected message to be edited must factor-in the effect that the edit may have, not only on the display of the quoted message in Further Messages, but also on the interpretation of Reply Messages associated with other display instances (as Redisplayed Messages) of the edited message. In some embodiments the determination to permit a previously quoted-message to be edited causes not only the message intended for editing to be allowed to be modified, but also causes messages associated with it (e.g., Reply Messages) to be allowed to be modified (by for example striking the replies or adding an out-of-date icon to them). All of this functionality improves the state of the art of messaging communications.
At step 2805, a First Message is selected that is intended for editing.
At step 2810, it is determined whether the selected First Message (intended for editing) is available for editing. e.g., are there system rules or conditions to be applied, and/or has the message been tagged in a manner as to convey that editing of the message intended for editing is prohibited (or has not been tagged to convey that editing of the First Message intended for editing is allowed)? If it is determined that editing of the selected message intended for editing is prohibited, then the editing routine is ended (2811).
At optional step 2815, it is determined whether the message selected for editing has been previously quoted.
At optional step 2816, the message that was selected for editing has not been previously quoted, but the message intended for editing is nonetheless prohibited. In some embodiments an indication that editing of the selected message is prohibited is displayed. In some embodiments an indication that the editing of the selected message is prohibited is not displayed. The editing routine is then ended (2817).
At step optional step 2820, the message that was selected for editing has been previously quoted, and a message action menu is displayed (e.g.,
At optional step 2825, the message selected for editing has been previously quoted, and a notification is displayed to indicate that the message selected for editing is not permitted to be edited (e.g.,
At optional step 2830, the message that was selected for editing has been previously quoted, and editing of the message selected for editing (despite it having been previously quoted), is permitted to proceed. In some embodiments a notification that the selected message intended for editing has been previously quoted is displayed (e.g.,
At optional step 2835, a message editing interface is displayed, wherein the editing interface facilitates editing of selected message (e.g.,
At optional step 2840, editing of the selected First Message modifies the data stored in a shared data resource associated with the selected First Message and the Redisplayed Message (e.g.,
At optional step 2845, editing of the selected First Message modifies the data associated with a message identifier associated with the selected First Message and modifies data associated with one or more corresponding message identifiers associated with one or more Redisplayed Messages (e.g.,
At optional step 2850, display 1st edit indication associated with the (one or more) Redisplayed Messages (said first edit indication being displaying of the Redisplayed Message on said first device as modified to include said editing while said Further Message is being displayed on said first device).
At optional step 2855, display 2nd edit indication associated with the (one or more) Redisplayed Messages (wherein a second edit indication is provided on said first device, said second edit indication is other than said first edit indication, and said second edit indication that said Redisplayed Message has been edited is displayed so said second edit indication appears associated with said Redisplayed Message).
At optional step 2860, permit editing user to characterize the edit (e.g.,
At optional step 2865, transmit and display an indication to one or more authors of Further Messages that the First Message they quoted and to which they replied has been modified (e.g.,
At optional step 2870, update the display of the Reply Message portion of previously posted Further Messages associated with the edited First Message to indicate that the associated reply is “out of date.” Examples: In some embodiments a “this reply is out of date” indication is reply text that is stricken (
At step 2879 the editing routine is ended.
While flowcharts have been referred to herein showing particular orders of performing steps, it is understood that the orders are exemplary and may vary as desirable in order to provide messaging and/or messaging features.
In some embodiments the quoted portion of the First Message in the Further Message is text content of the First Message. In some embodiments the quoted portion of the First Message in the Further Message is metadata (e.g., username, date, time) associated with the First Message. In some embodiments the quoted portion of the First Message in the Further Message is a combination of metadata (e.g., username, date, time) associated with the First Message and text content of the First Message.
Optional steps disclosed herein may be identified in the above text, through the use of dashed lines in the drawings, or both. A person of ordinary skill in the art may also recognize that one or more steps disclosed herein may be optional.
While exemplary embodiments of the present invention have been described herein, it is understood that aspects of one exemplary embodiment may be combined with aspects of another exemplary embodiment as desirable in order to provide messaging and/or messaging features.
In an exemplary embodiment of the present invention, a computer system may be included and/or operated within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a local area network (LAN), an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a smart watch, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The exemplary computer system includes a processing device, a main memory (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DR AM) (such as synchronous DR AM (SDR AM) or Rambus DR AM (RDR AM), etc.), a static memory (e.g., flash memory, static random access memory (SR AM), etc.), and a data storage device, which communicate with each other via a bus.
Processing device represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computer (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processing device is configured to execute listings manager logic for performing the operations and steps discussed herein.
Computer system may further include a network interface device. Computer system also may include a video display unit (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device (e.g., a keyboard), a cursor control device (e.g., a mouse), and a signal generation device (e.g., a speaker).
Data storage device may include a machine-readable storage medium (or more specifically a computer-readable storage medium) having one or more sets of instructions (e.g., reference generation module) embodying any one or more of the methodologies of functions described herein. The reference generation module may also reside, completely or at least partially, within main memory and/or within processing device during execution thereof by computer system; main memory and processing device also constituting machine-readable storage media. The reference generation module may further be transmitted or received over a network via network interface device.
Machine-readable storage medium may also be used to store the device queue manager logic persistently. While a non-transitory machine-readable storage medium is shown in an exemplary embodiment to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instruction for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
The components and other features described herein can be implemented as discrete hardware components or integrated in the functionality of hardware components such as ASICs, FPGAs, DSPs or similar devices. In addition, these components can be implemented as firmware or functional circuitry within hardware devices. Further, these components can be implemented in any combination of hardware devices and software components.
Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
In the aforementioned description, numerous details are set forth. It will be apparent, however, to one skilled in the art, that the disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the disclosure.
The disclosure is related to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes or it may comprise a general purpose computing device selectively activated or reconfigured by a computer program stored therein. Such a computer program may be stored in a non-transitory computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs), random access memories (R AMs), EPROMS, EEPROMs, magnetic or optical cards, flash memory devices including universal serial bus (USB) storage devices (e.g., USB key devices) or any type of media suitable for storing electronic instructions, each of which may be coupled to a computer system bus.
Whereas many alterations and modifications of the disclosure will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular implementation shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various implementations are not intended to limit the scope of the claims, which in themselves recite only those features regarded as the disclosure.
Whereas many alterations and modifications of the disclosure will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular implementation shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various implementations are not intended to limit the scope of the claims, which in themselves recite only those features regarded as the disclosure.
This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Application 63/681,257 filed on Aug. 9, 2024 which is hereby incorporated by reference in its entirety. This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Application 63/570,331 filed on Mar. 27, 2024 which is hereby incorporated by reference in its entirety. This application is a Continuation-In Part of U.S. patent application Ser. No. 18/640,465 filed Apr. 19, 2024 which is a Continuation-In-Part of U.S. patent application Ser. No. 18/535,572, filed Dec. 11, 2023, which is a Continuation of U.S. patent application Ser. No. 18/073,652, filed Dec. 2, 2022, which is a Continuation of U.S. patent application Ser. No. 17/065,494, filed Oct. 7, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/931,283 filed Jul. 16, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/712,952 filed Dec. 12, 2019, which is a Continuation of U.S. patent application Ser. No. 16/376,427, filed Apr. 5, 2019, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/014,578, filed Jun. 21, 2018, which is a Continuation-In-Part of U.S. patent application Ser. No. 15/858,696, filed Dec. 29, 2017, which is a Continuation-In-Part of Ser. No. 15/431,077, filed Feb. 13, 2017, which claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application No. 62/446,067, filed Jan. 13, 2017, the disclosures of all of which are incorporated by reference herein in their entireties. This application is a Continuation-In Part of U.S. patent application Ser. No. 18/640,465 filed Apr. 19, 2024 which is a Continuation-In-Part of U.S. patent application Ser. No. 18/535,572, filed Dec. 11, 2023, which is a Continuation of U.S. patent application Ser. No. 18/073,652, filed Dec. 2, 2022, which a Continuation of U.S. patent application Ser. No. 17/065,494 filed Oct. 7, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/931,283 filed Jul. 16, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/746,412 filed Jan. 17, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/712,952 filed Dec. 12, 2019, which is a Continuation of U.S. patent application Ser. No. 16/376,427, filed Apr. 5, 2019, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/014,578, filed Jun. 21, 2018, which is a Continuation-in-Part of U.S. patent application Ser. No. 15/858,696, filed Dec. 29, 2017, which is a Continuation-In-Part of Ser. No. 15/431,077, filed Feb. 13, 2017, which claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application No. 62/446,067, filed Jan. 13, 2017, the disclosures of all of which are incorporated by reference herein in their entireties. This application is a Continuation-In Part of U.S. patent application Ser. No. 18/640,465 which is a Continuation-In-Part of U.S. patent application Ser. No. 18/535,572, filed Dec. 11, 2023, which is a Continuation of U.S. patent application Ser. No. 18/073,652, filed Dec. 2, 2022, which a Continuation of U.S. patent application Ser. No. 17/065,494 filed Oct. 7, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/931,283 filed Jul. 16, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/746,412 filed Jan. 17, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/376,427 filed Apr. 5, 2019, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/014,578 filed Jun. 21, 2018, which is a Continuation-In-Part of U.S. patent application Ser. No. 15/609,663, filed May 31, 2017, which is a Continuation of U.S. patent application Ser. No. 15/293,620, filed Oct. 14, 2016, which claims the benefit of priority under 35 U.S.C. § 119(e) to U.S. Provisional Patent Application No. 62/358,719, filed Jul. 6, 2016, and U.S. Provisional Patent Application No. 62/253,229, filed Nov. 10, 2015, the disclosures of all of which are incorporated by reference herein in their entireties. This application is a Continuation-In Part of U.S. patent application Ser. No. 18/640,465 which is a Continuation-In-Part of U.S. patent application Ser. No. 18/535,572, filed Dec. 11, 2023, which is a Continuation of U.S. patent application Ser. No. 18/073,652, filed Dec. 2, 2022, which a Continuation of U.S. patent application Ser. No. 17/065,494 filed Oct. 7, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/931,283 filed Jul. 16, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/746,412 filed Jan. 17, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/376,427 filed Apr. 5, 2019, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/014,578 filed Jun. 21, 2018, which is a Continuation-In-Part of U.S. patent application Ser. No. 15/858,696 filed on Dec. 29, 2017, which a) is a Continuation-In-Part of U.S. patent application Ser. No. 15/431,077 filed Feb. 13, 2017, which claims the benefit of priority under 35 U.S.C. § 119(e) to U.S. Provisional Patent Application 62/446,067 filed Jan. 13, 2017, and b) claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application 62/518,905 filed on Jun. 13, 2017, the disclosures of all of which are incorporated by reference herein in their entireties. This application is a Continuation-In Part of U.S. patent application Ser. No. 18/640,465 which is a Continuation-In-Part of U.S. patent application Ser. No. 18/535,572, filed Dec. 11, 2023, which is a Continuation of U.S. patent application Ser. No. 18/073,652, filed Dec. 2, 2022, which a Continuation of U.S. patent application Ser. No. 17/065,494 filed Oct. 7, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/931,283 filed Jul. 16, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/746,412 filed Jan. 17, 2020, which is a Continuation-In-Part of U.S. Ser. No. 16/376,427, filed Apr. 5, 2019, which claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application 62/666,137, filed May 3, 2018, and U.S. Provisional Patent Application 62/783,410, filed Dec. 21, 2018, the disclosures of all of which are incorporated by reference herein in their entireties. This application is a Continuation-In Part of U.S. patent application Ser. No. 18/640,465 which is a Continuation-In-Part of U.S. patent application Ser. No. 18/535,572, filed Dec. 11, 2023, which is a Continuation of U.S. patent application Ser. No. 18/073,652, filed Dec. 2, 2022, which a Continuation of U.S. patent application Ser. No. 17/065,494 filed Oct. 7, 2020, which is a Continuation-In-Part of U.S. patent application Ser. No. 16/931,283 filed Jul. 16, 2020, which claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application 63/045,513, filed Jun. 29, 2020, the disclosures of all of which are incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
62446067 | Jan 2017 | US | |
62518905 | Jun 2017 | US | |
62783410 | Dec 2018 | US | |
62666137 | May 2018 | US | |
63045513 | Jun 2020 | US | |
62358719 | Jul 2016 | US | |
62253229 | Nov 2015 | US | |
63570331 | Mar 2024 | US | |
63681257 | Aug 2024 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 18073652 | Dec 2022 | US |
Child | 18535572 | US | |
Parent | 17065494 | Oct 2020 | US |
Child | 18073652 | US | |
Parent | 16376427 | Apr 2019 | US |
Child | 16712952 | US | |
Parent | 16376427 | Apr 2019 | US |
Child | 16712952 | US | |
Parent | 15293620 | Oct 2016 | US |
Child | 15609663 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 18640465 | Apr 2024 | US |
Child | 18939448 | US | |
Parent | 18535572 | Dec 2023 | US |
Child | 18640465 | US | |
Parent | 16931283 | Jul 2020 | US |
Child | 17065494 | US | |
Parent | 16712952 | Dec 2019 | US |
Child | 16931283 | US | |
Parent | 16746412 | Jan 2020 | US |
Child | 16931283 | US | |
Parent | 16712952 | Dec 2019 | US |
Child | 16746412 | US | |
Parent | 16014578 | Jun 2018 | US |
Child | 16376427 | US | |
Parent | 15858696 | Dec 2017 | US |
Child | 16014578 | US | |
Parent | 15431077 | Feb 2017 | US |
Child | 15858696 | US | |
Parent | 16376427 | Apr 2019 | US |
Child | 16746412 | US | |
Parent | 15609663 | May 2017 | US |
Child | 16014578 | US |