Many techniques are available to users today to find information on the World Wide Web, “web.” For example, users often use web browsers and/or search systems to find information of interest.
Search systems provide search results in response to a search query from a user. The search results typically include links that allow the users to access documents, such as web pages and/or other documents. The search systems may also provide a different corpus of search results, such as images results, video results, product results, etc. A user may use a pointing device, such as a mouse, etc., to move a cursor within a search results document that includes images. The user may hover the cursor over one of the images. Hovering the cursor over the image may cause an information window to be displayed within the search results document. The information window may include a larger version of the image, information that describes the image, etc.
According to some possible implementations, a method may include storing, by one or more computer devices, information regarding a first cursor sequence that resulted in an occurrence of a hover event, and information regarding a second cursor sequence that did not result in an occurrence of the hover event, where the first cursor sequence and the second cursor sequence may identify a manner in which a particular cursor was moved relative to a display of a particular document. The method may also include obtaining, by the one or more computer devices, cursor information that identifies a manner in which a cursor is moved relative to a display of a document; comparing, by the one or more computer devices, the cursor information to the first cursor sequence and the second cursor sequence; determining, by the one or more computer devices and based on a result of comparing the cursor information to the first cursor sequence and the second cursor sequence, that the hover event occurred when the cursor information more closely matches the first cursor sequence than the second cursor sequence; and performing, by the one or more computer devices, an action based on determining that the hover event occurred.
Additionally, or alternatively, the method may include determining that the hover event did not occur when the cursor information more closely matches the second cursor sequence than the first cursor sequence; and precluding the action from being performed based on determining that the hover event did not occur.
Additionally, or alternatively, the method, when obtaining the cursor information, may include at least one of: obtaining information that identifies a location of the cursor, relative to the display of the document, as the cursor is moved with respect to the display of the document; obtaining information that identifies a velocity of the cursor, as the cursor is moved with respect to the display of the document; or obtaining information that identifies an acceleration of the cursor, as the cursor is moved with respect to the display of the document.
Additionally, or alternatively, the method may further include generating a sequence based on the cursor information, where the sequence may include at least one of: one or more first values that correspond to a horizontal location of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; one or more second values that correspond to a vertical location of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; one or more third values that correspond to a velocity of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; or one or more fourth values that correspond to an acceleration of the cursor, when the cursor is moved with respect to the display of the document.
Additionally, or alternatively, the method, when comparing the cursor information to the first cursor sequence and the second cursor sequence, may include comparing the sequence to the first cursor sequence and the second cursor sequence to determine whether the sequence more closely matches the first cursor sequence or the second cursor sequence.
Additionally, or alternatively, the method, when comparing the sequence to the first cursor sequence and the second cursor sequence, may include calculating a first difference between the sequence and the first cursor sequence, calculating a second difference between the sequence and the second cursor sequence, and comparing the first difference and the second difference to determine whether the hover event occurred, where the hover event may occur when the first difference is smaller than the second difference.
Additionally, or alternatively, the method may include identifying a time period during which the cursor remains located over an area, within the display of the document, after the hover event occurred; and using the cursor information to update the information regarding the first cursor sequence when the time period satisfies a first threshold, using the cursor information to update the information regarding the second cursor sequence when the time period satisfies a second threshold, the second threshold being less than the first threshold, or using the cursor information to update neither the information regarding the first cursor sequence nor the information regarding the second cursor sequence when the time period is does not satisfy the first threshold or the second threshold.
According to some possible implementations, a computer-readable medium may include instructions which, when executed by one or more processors, cause the one or more processors to store information regarding a first cursor sequence that resulted in an occurrence of a hover event, and information regarding a second cursor sequence that did not result in an occurrence of the hover event, where the first cursor sequence and the second cursor sequence may identify a manner in which a particular cursor was moved relative to a display of a particular document; obtain cursor information that identifies a manner in which a cursor is moved relative to a display of a document; compare the cursor information to the first cursor sequence and the second cursor sequence; determine, based on a result of comparing the cursor information to the first cursor sequence and the second cursor sequence, that the hover event occurred when the cursor information more closely matches the first cursor sequence than the second cursor sequence; and perform an action based on determining that the hover event occurred.
Additionally, or alternatively, the instructions may further cause the one or more processors to determine that the hover event did not occur when the cursor information more closely matches the second cursor sequence than the first cursor sequence; and preclude the action from being performed based on determining that the hover event did not occur.
Additionally, or alternatively, the instructions, to obtain the cursor information, may cause the one or more processors to at least one of obtain information that identifies a location of the cursor, relative to the display of the document, as the cursor is moved with respect to the display of the document; obtain information that identifies a velocity of the cursor, as the cursor is moved with respect to the display of the document; or obtain information that identifies an acceleration of the cursor, as the cursor is moved with respect to the display of the document.
Additionally, or alternatively, the instructions may further cause the one or more processors to generate a sequence based on the cursor information, where the sequence may include at least one of: one or more first values that correspond to a horizontal location of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; one or more second values that correspond to a vertical location of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; one or more third values that correspond to a velocity of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; or one or more fourth values that correspond to an acceleration of the cursor, when the cursor is moved with respect to the display of the document.
Additionally, or alternatively, the instructions, to compare the cursor information to the first cursor sequence and the second cursor sequence, may cause the one or more processors to compare the sequence to the first cursor sequence and the second cursor sequence to determine whether the sequence more closely matches the first cursor sequence or the second cursor sequence.
Additionally, or alternatively, the instructions, to compare the sequence to the first cursor sequence and the second cursor sequence, may cause the one or more processors to calculate a first difference between the sequence and the first cursor sequence, calculate a second difference between the sequence and the second cursor sequence, and compare the first difference and the second difference to determine whether the hover event occurred, where the hover event may occur when the first difference is smaller than the second difference.
Additionally, or alternatively, the instructions may further cause the one or more processors to identify a time period during which the cursor remains located over an area, within the display of the document, after the hover event occurred; and use the cursor information to update the information regarding the first cursor sequence when the time period satisfies a first threshold, use the cursor information to update the information regarding the second cursor sequence when the time period satisfies a second threshold, the second threshold being less than the first threshold, or use the cursor information to update neither the information regarding the first cursor sequence nor the information regarding the second cursor sequence when the time period is does not satisfy the first threshold or the second threshold.
According to some possible implementations, a system may include one or more computer devices to store information regarding a first cursor sequence that resulted in an occurrence of a hover event, and information regarding a second cursor sequence that did not result in an occurrence of the hover event, where the first cursor sequence and the second cursor sequence may identify a manner in which a particular cursor was moved relative to a display of a particular document; obtain cursor information that identifies a manner in which a cursor is moved relative to a display of a document; compare the cursor information to the first cursor sequence and the second cursor sequence; determine, based on a result of comparing the cursor information to the first cursor sequence and the second cursor sequence, that the hover event occurred when the cursor information more closely matches the first cursor sequence than the second cursor sequence; and perform an action based on determining that the hover event occurred.
Additionally, or alternatively, the one or more computer devices may further determine that the hover event did not occur when the cursor information more closely matches the second cursor sequence than the first cursor sequence; and preclude the action from being performed based on determining that the hover event did not occur.
Additionally, or alternatively, the one or more computer devices, when obtaining the cursor information, may obtain information that identifies a location of the cursor, relative to the display of the document, as the cursor is moved with respect to the display of the document; obtain information that identifies a velocity of the cursor, as the cursor is moved with respect to the display of the document; or obtain information that identifies an acceleration of the cursor, as the cursor is moved with respect to the display of the document.
Additionally, or alternatively, the one or more computer devices may further generate a sequence based on the cursor information, where the sequence may include at least one of: one or more first values that correspond to a horizontal location of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; one or more second values that correspond to a vertical location of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; one or more third values that correspond to a velocity of the cursor, as a function of time, when the cursor is moved with respect to the display of the document; or one or more fourth values that correspond to an acceleration of the cursor, when the cursor is moved with respect to the display of the document.
Additionally, or alternatively, the one or more computer devices, when comparing the cursor information to the first cursor sequence and the second cursor sequence, may calculate a first difference between the sequence and the first cursor sequence, calculate a second difference between the sequence and the second cursor sequence, and compare the first difference and the second difference to determine whether the hover event occurred, where the hover event may occur when the first difference is smaller than the second difference.
Additionally, or alternatively, the one or more computer devices may further identify a time period during which the cursor remains located over an area, within the display of the document, after the hover event occurred; and use the cursor information to update the information regarding the first cursor sequence when the time period satisfies a first threshold, use the cursor information to update the information regarding the second cursor sequence when the time period satisfies a second threshold, the second threshold being less than the first threshold, or use the cursor information to update neither the information regarding the first cursor sequence nor the information regarding the second cursor sequence when the time period is does not satisfy the first threshold or the second threshold.
The above discussion mentions examples in which some implementations may be implemented via one or more methods performed by one or more processors of one or more devices. In some implementations, one or more systems and/or one or more devices may be configured to perform one or more of the acts mentioned above. In some implementations, a computer-readable medium may include computer-executable instructions which, when executed by one or more processors, cause the one or more processors to perform one or more of the acts mentioned above.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more implementations described herein and, together with the description, explain these implementations. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Technologies and/or techniques, as described herein, may enable a search system to obtain information that identifies a manner in which a user moves a cursor within a search results document that includes a set of images, to determine whether a hover event is detected. The system may generate a cursor sequence based on the information that identifies the manner in which the user moves the cursor. A hover event may be detected based on one or more known techniques, such as when a period of time that the cursor remains located over an image, hereinafter referred to as a “hover,” is greater than a first threshold. Detecting the hover event may cause the search system to perform one or more acts, such as providing an information window associated with the image and/or performing other acts to be described in greater detail below. The search system may monitor a period of time that the cursor hovers over the information window and may determine that the hover event should not have been detected, hereinafter referred to as a “short hover event,” when the period of time is less than a second threshold. The short hover event may, thus, correspond to a probability that the user did not intend the hover event to be detected. The search system may also, or alternatively, determine that the hover event should have been detected, hereinafter referred to as a “long hover event,” when the period of time is not less than the second threshold and/or is greater than a third threshold. The long hover event may, thus, correspond to a probability that the user intended the hover event to be detected. The search system may classify the cursor sequence, as a non-triggering sequence, when the period of time is less than the second threshold and may classify the cursor sequence, as a triggering sequence, when the period of time is not less than the second threshold and/or is greater than the third threshold.
The search system may also, or alternatively, monitor cursor movements within a search results document and may generate a cursor sequence based on information associated with the cursor movements. The search system may determine a first degree of match between the cursor sequence and a triggering sequence and a second degree of match between the cursor sequence and a non-triggering sequence. The triggering sequence may correspond to a previously obtained cursor sequence that is known to be associated with a long hover event. The non-triggering sequence may correspond to a previously obtained cursor sequence that is known to be associated with a short hover event. The search system may detect a hover event when the first degree of match is greater than the second degree of match and may perform the one or more acts based on detecting the hover event. Thus, the cursor sequence that caused the hover event to be detected, may indicate a probability, e.g., greater than 50% or some other threshold, that the user intended the hover event to be detected. The search system may not detect the hover event when the first degree of match is not greater than the second degree of match and may continue to monitor the cursor movements within the search results document. Thus, the cursor sequence, that did not cause the hover event to be detected, may indicate a probability, e.g., not greater than 50% or the other threshold, that the user did not intend the hover event to be detected. In this way, the user experience may be improved by reducing a frequency of performing the one or more acts when the user did not intend the one or more acts to be performed.
The user may use a pointing device, such as a mouse, a track ball, etc., to move cursor 115 within search results document 105. As cursor 115 moves, information associated with the movement of cursor 115, hereinafter referred to as “cursor information,” may, with the user's permission, be monitored by the system and/or by a user device on which search results document 105 is being displayed. For example, at a first point in time, the cursor information may identify a horizontal position 130, a vertical position 132, a velocity vector 134, an acceleration vector 136, etc. Horizontal position 130 may represent a location, of cursor 115, within search results document 105, relative to a left and/or right side of search results document 105. Vertical position 132 may represent a location, of cursor 115, within search results document 105, relative to a top and/or bottom side of search results document 105. Velocity vector 134 may represent a speed and/or direction that cursor 115 is moving within search results document 105. Acceleration vector 136 may represent a manner in which cursor 115 is accelerating, e.g., a rate of change of speed and/or direction, within search results document 105.
The system may generate a cursor sequence 120, e.g., represented by the dashed arrow, based on cursor information being collected as cursor 115 moves within search results document 105 during the search session. Cursor sequence 120 may represent the manner in which cursor 115 is being moved, by the user, within search results document 105.
As shown in
In the description below, the one or more acts are described as being associated with displaying an information window for simplicity. In some implementations, the one or more acts may include some or all of the acts described above and/or other acts not described above.
In an existing search system, the hover event may be detected when cursor 115 hovers over particular image 110 for a period of time that satisfies a threshold (e.g., is greater than the threshold). In example implementation 100, the search system may compare the cursor sequence to a triggering sequence, that is known to be associated with a long hover event, to identify a first degree of match between the cursor sequence and the triggering sequence. Additionally, or alternatively, the search system may compare the cursor sequence to a non-triggering sequence, that is known to be associated with a short hover event, to identify a second degree of match between the cursor sequence and the non-triggering sequence.
The search system may detect a hover event when the first degree of match is greater than the second degree of match and may cause one or more acts to be performed, such as, for example, providing information window 140. Additionally, or alternatively, the search system may not detect the hover event when the first degree of match is not greater than the second degree of match. In this example, the search system may cause information window 140 to be displayed. Additionally, or alternatively, the search system may determine whether to trigger the hover based on a combination of the first degree of match, the second degree of match, and a period of time during which cursor 115 hovers over the particular image 110.
Using the cursor sequence to detect a hover event may reduce a quantity of short hover events, e.g., hover events that are likely not to have been intended by the user, per search session and/or may increase a quantity of long hover events, e.g., hover events that are likely to have been intended by the user, per search session. Decreasing a frequency of short hover events and/or increasing a frequency of long hover events may improve the quality of the user experience during a search session.
Client 210 may include a computer device, such as personal computer, a wireless telephone, a PDA, a laptop, a tablet computer, or another type of computation or communication device. Client 210 may include user interfaces presented through one or more browsers, e.g., web browsers. Client 210 may permit cursor information to be collected by search system 225 and/or provide cursor information to search system 225. A user of client 210 may elect to opt out from permitting access to the cursor information by search system 225 and/or providing the cursor information to search system 225. In some implementations, search system 225 may be installed and/or hosted by client 210, which may enable search results, obtained from a memory associated with client 210, that are responsive to a search query provided by a user of client 210. Search system 225 is described in greater detail below.
Servers 220, 230, and 240 may include server devices that gather, process, search, and/or perform functions in a manner described herein. Each server 220, 230, or 240 may be implemented as a single server device or a collection of server devices that may be co-located or remotely located. Additionally, or alternatively, any two or more of servers 220, 230, and 240 may be implemented within a single, common server device or a single, common collection of server devices. While servers 220, 230, and 240 are shown as separate components, it may be possible for one or more of servers 220, 230, and/or 240 to perform one or more of the functions of another one or more of servers 220, 230, and/or 240.
As shown in
Network 250 may include any type of network, such as a local area network, “LAN,” a wide area network, “WAN,” a telephone network, such as the Public Switched Telephone Network, “PSTN,” or a cellular network, an intranet, the Internet, or a combination of networks. Client 210 and servers 220, 230, and 240 may connect to network 250 via wired and/or wireless connections. In other words, any one of client 210 and servers 220, 230, and 240 may connect to network 250 via a wired connection, a wireless connection, or a combination of a wired connection and a wireless connection.
As shown in
Search system 225 may use one or more known techniques to perform a search of one or more image indexes that are maintained by server 220 and/or one or more of servers 230 and 240 to obtain image results that are relevant to the search query. The known techniques may, for example, identify image results based on measures of relevance of the image results to the search query, measures of quality associated with the image results, etc. Each image result may include an image, e.g., a thumbnail image, etc., and/or image information that describes the image. The image information may, for example, include a snippet of text associated with the image; an address from which the image can be obtained, e.g., a larger or higher resolution version of the thumbnail image, etc.; dimensions of the image; a resolution level of the image; an owner of the image; etc.
As also shown in
Search system 225 may also, or alternatively, generate scores for the image results based on the measures of relevance to the search query and/or the measures of quality. In some implementations, the score, for an image result, may reflect a measure of relevance of the corresponding image to one or more of the terms of the search query. Several techniques exist for measuring the relevance of an image to a search query.
In some other implementations, the score, for an image result, may reflect a measure of quality of the corresponding image. In these other implementations, the search query may be used to identify a relevant image, which is scored based on the image's measure of quality. Several techniques exist for measuring the quality of an image result, such as a link-based technique; a technique based on the source of the image; a technique based on an age of the image; a technique based on user selections relating to the image; a technique based on a size, resolution, aspect ratio, etc., relating to the image; etc. In some further implementations, the score, for an image result, may reflect a combination of a measure of relevance of the corresponding image to a search query and a measure of quality of the corresponding image. In some other implementations, the score, for an image result, may reflect a weighted combination of a measure of relevance of the corresponding image to a search query and a measure of quality of the corresponding image, where the measure of relevance may be weighted differently from the measure of quality. In some further implementations, the score, for an image result, may be determined in another manner.
Search system 225 may rank the image results based on the scores. For example, search system 225 may create a list of image results and sort the image results, in the list, based on the scores of the image results. Search system 225 may select image results based on the scores, e.g., select those image results with the top 10 scores, the top 20 scores, the top 50 scores, etc., and may generate a search results document based on the selected image results. Search system 225 may provide the search results document to client 210.
As further shown in
In some implementations, search system 225 may identify a first location of the cursor, within the search results document, at a first point in time. In some examples, the first location may be specified by the cursor's horizontal position, to be described in greater detail below with respect to
Additionally, or alternatively, search system 225 may identify a first velocity of the cursor at the first point in time. In this example, search system 225 may identify an instantaneous speed and/or direction of movement of the cursor within the search results document. The velocity of the cursor will be described in greater detail below with respect to
Search system 225 may obtain second cursor information at a second point in time that identifies a second location, a second velocity, and/or a second acceleration of the cursor, within the search results document, at the second point in time. Search system 225 may also, or alternatively, identify combined cursor information over a time period, from the first point in time to the second point in time, based on a combination of the first cursor information and the second cursor information. For example, a combined location may be based on a combination, e.g., an average, a mean, etc., of the first location and the second location; a combined velocity may be based on a combination of the first velocity and the second velocity; a combined acceleration may be based on a combination of the first acceleration and the second acceleration; etc. Search system 225 may continue to collect cursor information, e.g., every thousandth of a second, every hundredth of a second, every tenth of a second, every second, etc., as the cursor continues to move within the search results document.
As yet further shown in
As still further shown in
As also shown in
As shown in
Search system 225 may, in a manner similar to that described above with respect to block 310 and 315 of
Search system 225 may also, or alternatively, rank the image results and may select image results based on the ranking. Search system 225 may also, or alternatively, generate scores for the image results based on measures of relevance to the search query, measures of quality, and/or some other known technique. Search system 225 may select image results based on the ranking and/or the scores, e.g., select those image results with the top 10 scores, the top 20 scores, the top 50 scores, etc., and may generate a search results document based on the selected image results. Search system 225 may provide the search results document to client 210.
In some implementations, client 210 may host search system 225. For example, client 210 may use search system 225 to obtain the image results from an index of images that are stored in a memory associated with client 210 and/or servers 230 and/or 240. In this example, client 210 may not transmit the search query to server 220. Search system 225 may rank and/or select the image results in a manner similar to that described above. Search system 225 may generate a search results document that includes the selected image results.
As also shown in
As further shown in
Client 210 may, in a manner similar to that described above with respect to block 320 of
Client 210 may, in a manner similar to that described above with respect to block 320 of
As yet further shown in
As still further shown in
As also shown in
Session information field 405 may store information, e.g., a session identifier, etc., that identifies a particular search session between client 210 and search system 225. Time field 410 may store information that identifies one or more points in time that cursor information is collected in a time period associated with the particular session. For example, time field 410 may store a first time value, e.g., t1, that corresponds to a first time at which first cursor information is collected; a second time value, e.g., t2, that corresponds to a second time at which second cursor information is collected; a third time value, e.g., t3, that corresponds to a third time at which third cursor information is collected; and so on.
Horizontal dimension field 415 may store information associated with a horizontal dimension of a search results document based on, for example, a pixel count; a distance, e.g., inches, centimeters, etc.; etc. Horizontal position field 417 may store information that identifies one or more instantaneous horizontal positions of a cursor, e.g., horizontal positions 130, within a search results document, e.g., search results document 105, during the time period associated with the particular session. For example, horizontal position field 417 may store a first horizontal value, e.g., x1 and x, at a first time, e.g., t1. The first horizontal value may, for example, correspond to a first instantaneous horizontal position, e.g., x1, of the cursor relative to a reference location, e.g., a left edge, a right edge, etc. of the search results document, within the horizontal dimension, e.g., x, identified by horizontal dimension field 415. Additionally, or alternatively, horizontal position field 417 may store a second horizontal value, e.g., x2, x, that corresponds to a second horizontal position, of the cursor, at the second time, e.g., t2, identified by time field 410; a third horizontal value, e.g., x3, x, that corresponds to a third horizontal position, of the cursor, at the third time, e.g., t3, identified by time field 410; and so on. Horizontal position field 417 may, thus, store a horizontal sequence that includes one or more of the horizontal values associated with the particular session, identified by session ID field 405, associated with the search results document.
Vertical dimension field 420 may store information associated with a vertical dimension of a search results document, e.g., y, based on, for example, a pixel count, a length, etc. Vertical position field 422 may store information that identifies one or more instantaneous vertical positions of the cursor, e.g., vertical positions 132, within the search results document, during the time period associated with the particular session. For example, vertical position field 422 may store a first vertical value, e.g., y1 and y, at the first time. The first vertical value may, for example, correspond to a first instantaneous vertical position, e.g., y1, of the cursor relative to a reference location, e.g., a top edge, a bottom edge, etc. of the search results document, within the vertical dimension, e.g., y, identified by vertical dimension field 420. Additionally, or alternatively, vertical position field 422 may store a second vertical value, e.g., y2, y, that corresponds to a second vertical position, of the cursor, at the second time, e.g., t2, identified by time field 410; a third vertical value, e.g., y3, y, that corresponds to a third vertical position, of the cursor, at a third time, t3, identified by time field 410; and so on. Vertical position field 422 may, thus, store a vertical sequence that includes one or more of the vertical values associated with the particular session.
Velocity field 425 may store information that identifies one or more instantaneous velocities of the cursor, e.g., velocity vector 134, within the search results document, during the time period associated with the particular session. For example, velocity field 425 may store a first velocity value, e.g., v1, that corresponds to a first velocity of the cursor, within the search results document, at the first time. The first velocity may, for example, correspond to a speed, e.g., centimeters/second, inches/second, etc.; and/or a direction that the cursor is moving, at the first time, within the search results document. Additionally, or alternatively, velocity field 425 may store a second velocity value, e.g., v2, that corresponds to a second velocity, of the cursor, at the second time; a third velocity value, e.g., v3, that corresponds to a third velocity, of the cursor, at the third time; and so on. Velocity field 425 may, thus, store a velocity sequence that includes one or more of the velocity values associated with the particular session.
Acceleration field 430 may store information that identifies one or more instantaneous accelerations of the cursor, e.g., acceleration vector 136, within the search results document, during the time period associated with the particular session. For example, acceleration field 430 may store a first acceleration value, e.g., a1, that corresponds to a first acceleration of the cursor, within the search results document, at the first time. The first acceleration may, for example, correspond to a rate at which a speed and/or a direction of the cursor is changing, e.g., in centimeters/second, inches/second2, etc., at the first time, within the search results document. Additionally, or alternatively, acceleration field 430 may store a second acceleration value, e.g., a2, that corresponds to a second acceleration, of the cursor, at the second time; a third acceleration value, e.g., a3, that corresponds to a third acceleration, of the cursor, at the third time; and so on. Acceleration field 430 may, thus, store an acceleration sequence that includes one or more of the acceleration values associated with the particular session.
Event time field 435 may store information that identifies a time, within the time period associated with the session, that a hover event is detected. For example, the cursor may be located over an image, within the search results document, for a dwell period that satisfies a dwell threshold, e.g., is greater than the dwell threshold. The time at which search system 225 determines that the dwell period satisfies the dwell threshold, may correspond to an event time at which the hover event is detected. Hover period field 440 may store information that identifies a hover period, associated with the cursor, that is located over an information window, an image, and/or some other object being displayed, e.g., as a result of the hover event being detected, before being moved to another location that is not within the information window, the image, or the other object.
As shown in
As also shown in
When the hover period corresponds to the short hover, search system 225 may also, or alternatively, determine that the cursor sequence is a non-triggering sequence. For example, search system 225 may update aggregate non-triggering sequences, stored in a memory, based on the cursor sequence. Search system 225 may, for example, store, in the memory, the cursor sequence in a data structure that stores other non-triggering sequences.
As further shown in
When the hover period corresponds to the long hover, search system 225 may also, or alternatively, determine that the cursor sequence is a triggering sequence. For example, search system 225 may update aggregate triggering sequences, stored in a memory, based on the cursor sequence. Search system 225 may, for example, store, in the memory, the cursor sequence in a data structure that stores other triggering sequences.
As still further shown in
As shown in
Additionally, or alternatively, search system 225 may, in a manner similar to that described above with respect to blocks 320 and 325 of
As also shown in
Search system 225 may also, or alternatively, compare one or more of the component sequences to one or more component sequences that correspond to triggering sequences to determine a first degree of match. For example, as shown in
Triggering horizontal sequences 705 may be associated with a set of triggering sequences. Each triggering horizontal sequence 705 may, for example, represent horizontal positions of a cursor, within a search results document obtained during a previous search session, that resulted in detecting a long hover event. Horizontal sequence 710 may represent a horizontal sequence obtained from the cursor sequence, for a current session, generated by search system 225 based on the cursor information. Horizontal sequence 710 may, for example, be based on the horizontal values, e.g., x1, x2, x3, etc., as a function of time, e.g., t1, t2, t3, etc. Non-triggering horizontal sequences 715 may be associated with a set of non-triggering sequences. Each non-triggering horizontal sequence 715 may, for example, represent horizontal positions of a cursor, within a search results document obtained during a previous search session, that resulted in detecting a short hover event.
Search system 225 may determine a how closely horizontal sequence 710 matches each triggering horizontal sequence 705. In some examples, search system 225 may determine a quantity of horizontal values, of horizontal sequence 710, that match horizontal values of each of triggering horizontal sequences 705. Search system 225 may determine that horizontal sequence 710 most closely matches a particular triggering horizontal sequence 705 with which a greatest quantity of matching horizontal values is associated. Search system 225 may determine the first degree of match based on the greatest quantity of matching horizontal values between horizontal sequence 710 and the particular triggering horizontal sequence 705.
Additionally, or alternatively, search system 225 may determine how closely horizontal sequence 705 matches each triggering horizontal sequence 710 based on distances, e.g., Euclidean distances, etc., between horizontal sequence 710 and each triggering horizontal sequence 705. For example, a first distance may be determined between horizontal sequence 710 and a first triggering horizontal sequence 705 based on a first difference between a first horizontal value of horizontal sequence 710 and a first horizontal value of first triggering horizontal sequence 705; a second difference between a second horizontal value of horizontal sequence 710 and a second horizontal value of first triggering horizontal sequence 705; and so on for each horizontal value. In some examples, the first distance, e.g., d1, may be determined based on:
d1≅((x1710−x1705)2+ . . . +(xQ710−xQ705)2)1/2
where Q>1, where x1710, . . . xQ710 represent horizontal values associated with horizontal sequence 710, and where x1705, . . . xQ705 represent horizontal values associated with first triggering horizontal sequence 705.
Similarly, search system 225 may determine distances between horizontal sequence 710 and each triggering horizontal sequence 705 and may determine that horizontal sequence 710 most closely matches a particular triggering horizontal sequence 705 with which a shortest distance is associated. Thus, search system 225 may determine the first degree of match based on the shortest distance between horizontal sequence 710 and the particular triggering horizontal sequence 705.
Additionally, or alternatively, search system 225 may determined a combined distance, e.g., based on an average of the distances, etc., and may determine that the first degree of match corresponds to the combined distance.
As shown in
Triggering vertical sequences 730 may be associated with a set of triggering sequences. Each triggering vertical sequence 730 may, for example, represent vertical positions of a cursor, within a search results document obtained during a respective previous search session, that resulted in detecting a long hover event. Vertical sequence 735 may represent a vertical sequence obtained from the cursor sequence, associated with the current session, generated by search system 225 based on the cursor information. Non-triggering vertical sequences 740 may be associated with a set of non-triggering sequences. Each non-triggering vertical sequence 740 may, for example, represent vertical positions of a cursor, within a search results document obtained during a previous search session, that resulted in detecting a short hover event.
Search system 225 may, in a manner similar to that described above, determine how closely vertical sequence 735 matches each of triggering vertical sequences 730. Search system 225 may determine that vertical sequence 735 most closely matches a particular triggering vertical sequence 730 with which a greatest quantity of matching vertical values is associated. Search system 225 may determine the first degree of match based on the greatest quantity of matching vertical values between vertical sequence 735 and the particular triggering vertical sequence 730.
Additionally, or alternatively, search system 225 may, in a manner similar to that described above, determine how closely vertical sequence 735 matches each triggering vertical sequence 730 based on distances between vertical sequence 735 and each triggering vertical sequence 730. Search system 225 may determine a first degree of match based on a shortest distance between vertical sequence 735 and a particular triggering vertical sequence 730. Additionally, or alternatively, search system 225 may determine a combined distance between vertical sequence 735 and each of triggering vertical sequences 730 and may determine that the first degree of match corresponds to the combined distance.
As shown in
Triggering velocity sequences 755 may be associated with a set of triggering sequences. Each triggering velocity sequence 755 may, for example, represent cursor velocity, within a search results document obtained during a respective previous search session, that resulted in detecting a long hover event. Velocity sequence 760 may represent a velocity sequence obtained from the cursor sequence, associated with the current session, generated by search system 225 based on the cursor information. Non-triggering velocity sequences 765 may be associated with a set of non-triggering sequences. Each non-triggering velocity sequence 765 may, for example, represent cursor velocity, within a search results document obtained during a respective previous search session, that resulted in detecting a short hover event.
Search system 225 may, in a manner similar to that described above, determine how closely velocity sequence 760 matches each triggering velocity sequence 755. Search system 225 may, for example, determine that vertical sequence 735 most closely matches a particular triggering velocity sequence 755 with which a greatest quantity of matching velocity values is associated. Search system 225 may determine the first degree of match based on the greatest quantity of matching velocity values between velocity sequence 760 and the particular triggering velocity sequence 755.
Additionally, or alternatively, search system 225 may, in a manner similar to that described above, determine how closely velocity sequence 760 matches each triggering velocity sequence 755 based on distances between velocity sequence 760 and each triggering velocity sequence 755. Search system 225 may determine the first degree of match based on a shortest distance between velocity sequence 760 and a particular triggering velocity sequence 755. Additionally, or alternatively, search system 225 may determined a combined distance between velocity sequence 760 and each of triggering velocity sequences 755 and may determine that the first degree of match corresponds to the combined distance.
As shown in
Triggering acceleration sequences 780 may be associated with a set of triggering sequences. Each triggering acceleration sequence 780 may, for example, represent cursor acceleration, within a search results document obtained during a respective previous search session, that resulted in detecting a long hover event. Acceleration sequence 785 may represent an acceleration sequence obtained from the cursor sequence, associated with a current session, generated by search system 225 based on the cursor information. Non-triggering acceleration sequences 790 may be associated with a set of non-triggering sequences. Each non-triggering acceleration sequence 790 may, for example, represent cursor acceleration, within a search results document obtained during a respective previous search session, that resulted in detecting a short hover event.
Search system 225 may, in a manner similar to that described above, determine how closely acceleration sequence 785 matches each triggering acceleration sequence 780. Search system 225 may, for example, determine that acceleration sequence 785 most closely matches a particular triggering acceleration sequence 780 with which a greatest quantity of matching acceleration values is associated. Search system 225 may determine the first degree of match based on the greatest quantity of matching acceleration values between acceleration sequence 780 and the particular triggering acceleration sequence 785.
Additionally, or alternatively, search system 225 may, in a manner similar to that described above, determine how closely acceleration sequence 785 matches each triggering acceleration sequence 780 based on distances between acceleration sequence 785 and each triggering acceleration sequence 780. Search system 225 may determine a first degree of match based on a shortest distance between acceleration sequence 785 and a particular triggering acceleration sequence 780. Additionally, or alternatively, search system 225 may determine a combined distance between acceleration sequence 785 and each of triggering acceleration sequences 780 and may determine that the first degree of match corresponds to the combined distance.
Returning to
For example, the first degree of match may correspond to a quantity of matching values, e.g., Q, that are based on the quantity of matching horizontal values, e.g., QX; the quantity of matching vertical values, e.g., QY; the quantity of matching velocity values, e.g., QV; the quantity of matching acceleration values, e.g., QA; or some combination thereof, e.g., Q=QX+QY+QV+QA, etc. Additionally, or alternatively, the first degree of match may be based on a weighted combination of the matching values, e.g., Q=W1*QX+W2*QY+W3*QV+W4*QA where W1 through W4 represent weighting values 0≦W≦1, and/or where W1+W2+W3+W4=1. Thus, the first degree of match may be based on a combination of differently weighted matching values. By way of example, the first degree of match may be based on a combination of a fifteen percent portion of the quantity of matching horizontal values; a fifteen percent portion of matching vertical values; a forty percent portion of matching velocity values; and/or thirty percent portion of the quantity of matching acceleration values, e.g., Q=0.15*QX+0.15*QY+0.4*QV+0.3*QA. The weighting values may be predetermined by search system 225 and/or may be set by an operator of server 220.
The first degree of match may also, or alternatively, correspond to a distance that is based on a combination of the shortest distance between the horizontal sequence and one of the triggering horizontal sequences; the shortest distance between the vertical sequence and one of the triggering vertical sequences; the shortest distance between the velocity sequence and one of the triggering velocity sequences; the shortest distance between the acceleration sequence and one of the triggering acceleration sequences; or some combination thereof. Additionally, or alternatively, the first degree of match may also, or alternatively, correspond to a distance that is based on the combination of distances, e.g., an average distance, etc., between the horizontal sequence and the triggering horizontal sequences; the combination of distances between the vertical sequence and the triggering vertical sequences; the combination of distances between the velocity sequence and the triggering velocity sequences; the combination of distances between the acceleration sequence and the triggering acceleration sequences; or some combination thereof. Search system 225 may also, or alternatively, determine the first degree of match based on a weighted combination of the shortest distances and/or the combined distances in a manner similar to that described above.
As further shown in
Search system 225 may, for example and in a manner similar to that described above with respect to block 625, determine how closely horizontal sequence 710, of
Additionally, or alternatively, search system 225 may, in a manner similar to that described above with respect to block 625, determine how closely horizontal sequence 710 matches each non-triggering horizontal sequence 715 based on distances (e.g., Euclidean distances, etc.). For example, search system 225 may determine distances between horizontal sequence 710 and each of non-triggering sequences 715. Search system 225 may determine that horizontal sequence 710 most closely matches a particular non-triggering horizontal sequence 715 with which a shortest distance is associated. Search system 225 may, thus, determine that the second degree of match corresponds to the shortest distance between horizontal sequence 710 and the particular non-triggering horizontal sequence 715. Additionally, or alternatively, search system 225 may determined a combined distance between horizontal sequence 710 and each of non-triggering horizontal sequences 715 and may determine that the second degree of match corresponds to the combined distance.
Search system 225 may also, or alternatively and in a manner similar to that described above with respect to block 625, determine how closely vertical sequence 735,
Additionally, or alternatively, search system 225 may, in a manner similar to that described above with respect to block 625, determine how closely vertical sequence 735 matches each of non-triggering vertical sequences 740 based on distances between vertical sequence 735 and each non-triggering vertical sequence 740. Search system 225 may also, or alternatively, determine the second degree of match based on a shortest distance between vertical sequence 735 and a particular non-triggering sequence 740. Search system 225 may also, or alternatively, determine a combined distance between vertical sequence 735 and each of non-triggering vertical sequences 740 and may determine the second degree of match based on the combined distance.
Search system 225 may also, or alternatively and in a manner similar to that described above with respect to block 625, determine how closely velocity sequence 760, of
Additionally, or alternatively, search system 225 may, in a manner similar to that described above with respect to block 625, determine how closely velocity sequence 760 matches each non-triggering velocity sequence 765 based on distances between velocity sequence 760 and each non-triggering velocity sequence 765. Search system 225 may determine the second degree of match based on a shortest distance between velocity sequence 760 and a particular non-triggering velocity sequence 765. Additionally, or alternatively, search system 225 may determined a combined distance between velocity sequence 760 and each of non-triggering velocity sequences 765 and may determine that the second degree of match corresponds to the combined distance.
Search system 225 may also, or alternatively and in a manner similar to that described above with respect to block 625, determine how closely acceleration sequence 785, of
Additionally, or alternatively, search system 225 may, in a manner similar to that described above with respect to block 625, determine how closely acceleration sequence 785 matches each non-triggering acceleration sequence 790 based on distances between acceleration sequence 785 and each non-triggering acceleration sequences 790. Search system 225 may determine the second degree of match based on a shortest distance between acceleration sequence 785 and a particular non-triggering acceleration sequence 790. Additionally, or alternatively, search system 225 may determine a combined distance between acceleration sequence 785 and each of non-triggering acceleration sequences 790 and may determine that the second degree of match corresponds to the combined distance.
Returning to
As still further shown in
For example, search system 225 may compare a first greatest quantity of matching values, between the cursor sequence and the triggering sequences, with a second greatest quantity of matching values between the cursor sequence and the non-triggering sequences. When the first greatest quantity of matching values is less than the second greatest quantity of matching values, by the first amount, search system 225 may not detect a hover event.
Additionally, or alternatively, search system 225 may compare a first combined quantity of matching values between the cursor sequence and the triggering sequences, with a second combined quantity of matching values between the cursor sequence and the non-triggering sequences. When the first combined quantity of matching values is less than the second combined quantity of matching values, by the first amount, search system 225 may not detect the hover event.
Additionally, or alternatively, search system 225 may compare a first shortest distance, between the cursor sequence and the triggering sequences, to a second shortest distance, between the cursor sequence and the non-triggering sequences, to determine whether the first shortest distance is less than the second shortest distance. When the first shortest distance is not less than the second shortest distance, by the first amount, search system 225 may not detect the hover event.
Additionally, or alternatively, search system 225 may compare a first combined distance, between the cursor sequence and the triggering sequences, to a second combined distance, between the cursor sequence and the non-triggering sequences, to determine whether the first combined distance is less than the second combined distance. When the first combined distance is not less than the second combined distance, by the first amount, search system 225 may not detect the hover event.
When the hover event is not detected, search system 225 may not perform one or more acts, such as providing an information window for display on client 210. Search system 225 may also, or alternatively, continue to obtain cursor information, from client 210, when the hover event is not detected.
As yet further shown in
Additionally, or alternatively, search system 225 may determine that the first combined quantity of matching values is not less than the second combined quantity of matching values by the first amount. When the first combined quantity of matching values is not less than the second combined quantity of matching values by the first amount, search system 225 may determine whether the first combined quantity of matching values is greater than the second combined quantity of matching values by the second amount. When the first combined quantity of matching values is greater than the second combined quantity of matching values by the second amount, search system 225 may detect the hover event and may perform the one or more acts as described above.
Additionally, or alternatively, search system 225 may determine that the first shortest distance is not less than the second shortest distance by the first amount. When the first shortest distance is not less than the second shortest distance by the first amount, search system 220 may determine whether the first shortest distance is less than the second shortest distance by the second amount. When the first shortest distance is less than the second shortest distance by the second amount, search system 225 may detect the hover event and may perform the one or more acts as described above.
Additionally, or alternatively, search system 225 may determine that the first combined distance is not less than the second combined distance by the first amount. When the first combined distance is not less than the second combined distance by the first amount, search system 220 may determine whether the first combined distance is less than the second combined distance by the second amount. When the first combined distance is less than the second combined distance by the second amount, search system 225 may detect the hover event and may perform the one or more acts as described above.
As also shown in
While process 600 has been described as being performed by search system 225 of server 220, some or all of process 600 may be performed by search system 225 of client 210.
Computing device 800 may include a processor 802, memory 804, a storage device 806, a high-speed interface 808 connecting to memory 804 and high-speed expansion ports 810, and a low speed interface 812 connecting to low speed bus 814 and storage device 806. Each of the components 802, 804, 806, 808, 810, and 812, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. Processor 802 can process instructions for execution within the computing device 800, including instructions stored in the memory 804 or on the storage device 806 to display graphical information for a graphical user interface, GUI, on an external input/output device, such as display 816 coupled to high speed interface 808. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 800 may be connected, with each device providing portions of the necessary operations, as a server bank, a group of blade servers, or a multi-processor system, etc.
Memory 804 stores information within the computing device 800. In some implementations, memory 804 includes a volatile memory unit or units. In another implementation, memory 804 includes a non-volatile memory unit or units. The memory 804 may also be another form of computer-readable medium, such as a magnetic or optical disk. A computer-readable medium may refer to a non-transitory memory device. A memory device may refer to storage space within a single storage device or spread across multiple storage devices.
The storage device 806 is capable of providing mass storage for the computing device 800. In some implementations, storage device 806 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described herein. The information carrier is a computer or machine-readable medium, such as memory 804, storage device 806, or memory on processor 802.
High speed controller 808 manages bandwidth-intensive operations for the computing device 800, while low speed controller 812 manages lower bandwidth-intensive operations. Such allocation of functions is provided for explanatory purposes only. In some implementations, high-speed controller 808 is coupled to memory 804, display 816, e.g., through a graphics processor or accelerator, and to high-speed expansion ports 810, which may accept various expansion cards, not shown. In these implementations, low-speed controller 812 is coupled to storage device 806 and low-speed expansion port 814. The low-speed expansion port, which may include various communication ports, e.g., USB, Bluetooth, Ethernet, wireless Ethernet, may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
Computing device 800 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 820, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 824. In addition, it may be implemented in a personal computer such as a laptop computer 822. Alternatively, components from computing device 800 may be combined with other components in a mobile device, not shown, such as mobile computing device 850. Each of such devices may contain one or more of computing devices 800, 850, and an entire system may be made up of multiple computing devices 800, 850 communicating with each other.
Mobile computing device 850 may include a processor 852, a memory 864, an input/output, “I/O,” device, such as a display 854, a communication interface 866, and a transceiver 868, among other components. Mobile computing device 850 may also be provided with a storage device, such as a micro-drive or other device, to provide additional storage. Each of the components 850, 852, 864, 854, 866, and 868 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
Processor 852 can execute instructions within mobile computing device 850, including instructions stored in memory 864. Processor 852 may be implemented as a chipset of chips that include separate and multiple analog and digital processors. Processor 852 may provide, for example, for coordination of the other components of mobile computing device 850, such as control of user interfaces, applications run by mobile computing device 850, and wireless communication by mobile computing device 850.
Processor 852 may communicate with a user through control interface 858 and display interface 856 coupled to a display 854. Display 854 may be, for example, a TFT LCD, Thin-Film-Transistor Liquid Crystal Display; or an OLED, Organic Light Emitting Diode, display; or other appropriate display technology. Display interface 856 may comprise appropriate circuitry for driving display 854 to present graphical and other information to a user. Control interface 858 may receive commands from a user and convert them for submission to the processor 852. In addition, an external interface 862 may be provide in communication with processor 852, so as to enable near area communication of mobile computing device 850 with other devices. External interface 862 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
Memory 864 stores information within mobile computing device 850. Memory 864 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 874 may also be provided and connected to mobile computing device 850 through expansion interface 872, which may include, for example, a SIMM, Single In Line Memory Module, card interface. Such expansion memory 874 may provide extra storage space for device 850, or may also store applications or other information for mobile computing device 850. Specifically, expansion memory 874 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 874 may be provide as a security module for mobile computing device 850, and may be programmed with instructions that permit secure use of device 850. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
Expansion memory 874 may include, for example, flash memory and/or NVRAM memory. In some implementations, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 864, expansion memory 874, or memory on processor 852, that may be received, for example, over transceiver 868 or external interface 862.
Mobile computing device 850 may communicate wirelessly through communication interface 866, which may include digital signal processing circuitry where necessary. Communication interface 866 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 868. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver, not shown. In addition, GPS, Global Positioning System, receiver module 870 may provide additional navigation- and location-related wireless data to mobile computing device 850, which may be used as appropriate by applications running on mobile computing device 850.
Mobile computing device 850 may also communicate audibly using audio codec 860, which may receive spoken information from a user and convert it to usable digital information. Audio codec 860 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of mobile computing device 850. Such sound may include sound from voice telephone calls, may include recorded sound, e.g., voice messages, music files, etc., and may also include sound generated by applications operating on mobile computing device 850.
Mobile computing device 850 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 880. It may also be implemented as part of a smart phone 882, personal digital assistant, or other similar mobile device.
Various implementations of the systems and techniques described herein can be realized in digital electronic circuitry; integrated circuitry; specially designed ASICs, application specific integrated circuits; computer hardware; firmware; software; and/or combinations thereof. These various implementations can include implementations in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs—also known as programs, software, software applications or code—include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” and “computer-readable medium” refer to any apparatus and/or device, e.g., magnetic discs, optical disks, memory, Programmable Logic Devices, “PLDs,” used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
To provide for interaction with a user, the systems and techniques described herein can be implemented on a computer having a display device, e.g., a CRT, cathode ray tube, or LCD, liquid crystal display, monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
The technologies and/or techniques described herein can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Browser through which a user can interact with an implementation of the systems and techniques described here, or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a LAN, a WAN, and the Internet.
Technologies and/or techniques, described herein, may enable a search system to monitor cursor movements within a search results document that includes a set of images that are relevant to a search query received from a client. The search system may generate a cursor sequence based on information associated with the cursor movements. The search system may determine a first degree of match between the cursor sequence and a triggering sequence and a second degree of match between the cursor sequence and a non-triggering sequence. The search system may detect a hover event when the first degree of match is greater than the second degree of match and may cause an information window to appear within the search results document. The search system may not detect a hover event when the first degree of match is not greater than the second degree of match and may continue to monitor the cursor movements within the search results document. In this way, the search system may reduce a quantity of times that a hover event is detected when a user, of the client, did not intend the hover event to be detected, which may improve the user experience.
The foregoing description provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above implementations or may be acquired from practice of the implementations.
For example, while series of blocks have been described with regard to
Also, some implementations have been described as detecting hover events in relation to a search results document that contains a listing of image results. In some implementations, similar techniques may be used to detect hover events in relation to search results documents that include listings of search results that contain search results other than image results. In some implementations, similar techniques may be used to detect hover events in relation to documents other than search results documents.
As used herein, the term component is intended to be broadly interpreted to refer to hardware or a combination of hardware and software, such as software executed by hardware, such as a processor.
It will be apparent that systems and methods, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the implementations. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the systems and methods based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the possible implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the possible implementations includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used in the present application should be construed as critical or essential unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items and may be used interchangeably with “one or more.” Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.