Users browse web sites for a multitude of different reasons, including to retrieve content available at the web sites. A web site may have a large amount of content that a user can view. To assist a user in locating the content in which he or she is interested, many web sites provide a search tool, such as a search box. By inputting search terms specifying the content of interest, users can receive from a web site just this content in return.
A method of an embodiment of the disclosure includes receiving, by a computing device, user input to cause a search graphical user interface (GUI) element to move within a GUI having areas that each correspond to a content type. The method includes determining, by the computing device, a given area over which the search GUI element has been moved. The method includes adapting, by the computing device, the search GUI element so that a search performable via the search GUI element is restricted in scope to the content type of the given area.
A method of another embodiment of the disclosure includes receiving, by a computing device, user input to cause a search GUI element to move within a web page having areas. Each area corresponds to a content type of content available at a web site encompassing the web page. The method includes determining, by the computing device, a given area over which the search GUI element has been moved. The method includes adapting, by the computing device, the search GUI element so that a search of the content available at the web site performable by the user via the search GUI element is restricted in scope to the content type of the given area.
A computing device of an embodiment of the disclosure includes a processor and a computer-readable data storage medium to store software executable by the processor. The software is to receive user input to cause a search GUI element to move over a given area within a GUI having a number of areas including the given area. Each area corresponds to a content type. The software is to adapt the search GUI element so that a search performable via the search GUI element is restricted in scope to the content type of the given area.
A computing device of another embodiment of the disclosure also includes a processor and a computer-readable data storage medium to store software executable by the processor. The software is to receive user input to cause a search GUI element to move over a given area within a web page having a number of areas including the given area. Each area corresponds to a content type of content available at a web site encompassing the web page. The software is to adapt the search GUI element so that a search of the content available at the web site performable by the user via the search GUI element is restricted in scope to the content type of the given area.
A computer program product of an embodiment of the disclosure includes a computer-readable storage medium having computer-readable code embodied therein. The computer-readable code is executable by a processor to receive user input causing a graphical search box to move over a given graphical area of graphical areas that each correspond to a content type. The computer-readable code is executable by the processor to restrict in scope a search performed using the graphical search box to the content type of the given graphical area.
The drawings referenced herein form a part of the specification. Features shown in the drawing are meant as illustrative of only some embodiments of the invention, and not of all embodiments of the invention, unless otherwise explicitly indicated, and implications to the contrary are otherwise not to be made.
In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized, and logical, mechanical, and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the embodiment of the invention is defined only by the appended claims.
As noted in the background section, a user can locate content of interest on a web site by entering in appropriate search terms within a search box provided on a web page of the web site. However, many web sites have a lot of different types of content. For example, a shopping-oriented web site may permit a user to search products for sale of different types, ranging from electronics, to household items, to even automotive vehicles. Often a user is interested in locating content items that are of one particular type of content.
To permit users to restrict the scope of their searches to a particular content type, some web sites have a dropdown box in which a user can select the content type of interest. In the example above, a user may be able to select via such a dropdown box electronics, household items, and so on. The user's entered search is then performed just in relation to the content of the selected content type. Other web sites have multiple search boxes, where each search box is particular to a specific content type.
Embodiments of the disclosure provide for innovative techniques by which users can restrict the scope of their searches. A web page has a number of areas corresponding to different content types. For example, there may be text in different areas of a shopping-oriented web site that specify electronics, household items, and so on. A user can in particular move a search graphical user interface (GUI) element, such as a search box, within a web page. The user moves the search box over the area having the content type of interest. If a user is interested in searching electronics, for example, the user moves the search box over the appropriate text on the web site.
The selected area may be graphically highlighted to indicate that searches will then be performed such that they are restricted to the corresponding content type. The search GUI element itself may additionally or alternatively be graphically highlighted to indicate this as well. Rather than having multiple search boxes clutter up a web page, or having an additional GUI element like a dropdown box be displayed, embodiments of the disclosure permit search scope to be restricted even though there is just a single search box, without necessarily having any additional GUI elements.
The web page 100 includes a search box 104. By entering one or more search terms into the search box 104, a user can search for related items of content that are available for purchase on the web site. In
The web page 100 includes a drag-and-drop element 108, which may include an icon of a hand. By selecting the element 108, a user can initiate movement of the search box 104, such that the user uses the element 108 to move the search box 108 over the area 102 corresponding to the type of content to which the user wishes to restrict the scope of searches. For example, in a touchscreen environment, a user may select press his or her finger on the touchscreen where the element 108 is displayed, and while still pressing his or her finger on the touchscreen move the finger over the desired area 102. Lifting up his or her finger from the touchscreen causes the search box 104 to be placed, or dropped, at that location.
As another example, in a non-touchscreen environment, a user may move a pointer using a pointing device like a mouse or touchpad over the element 108, and hold down a button on the pointing device. The user then moves the pointer so that the search box 104 moves, or is dragged, over the desired area 102, and releases the button, which causes the search box 104 to be placed, or be dropped, at that location. In both these examples, it is said that the search box 104 is moved from a current location within the web page 100 to a new location within the web page 100, the latter being over one of the areas 102.
In
The example of
A movable GUI element related to a search GUI element may be displayed within a GUI having a number of areas (302). An example of such a GUI is a web page of a web site, as described above in relation to
An example of a search GUI element is a search box, as described above in relation to
User input is received to cause the search GUI element to move within the GUI (304). Such user input can be effectuated as has been described above in relation to
The area over which the search GUI element has been moved is determined (306). In response, the search GUI element is adapted so that the scope of searches performed using the search GUI element is restricted to the content type of the selected area (308). As noted above, this means that subsequent searches do not display search results of content items of any content type, but just relevant content items that match the content type of the selected area.
As an example by which the adaptation of part 308 can be achieved, the selected area over which the search GUI element has been moved within the GUI may be provided by a first software component, and the search GUI element itself may be provided by a second software component. Inter-component communication occurs so that the latter component learns from the former component how to limit searches to just the content type corresponding to the selected area. For example, the second software component may inform the first software component an identifier or string corresponding to this content type. As another example, the second software component may inform the first software component how to structure queries so that searches are restricted to this content type.
To provide visual feedback to the user as to the content type of selected area over which the search GUI element has been moved, the selected area may be graphically modified (310), and/or the search GUI element itself may be modified (312). Such graphical modification can be effectuated as has been described above in relation to
The search GUI element is then used to perform searches of the content, where the searches are restricted in scope to the content type of the selected area of the GUI. Specifically, one or more search terms are received within the search GUI element (314). For example, a user may select the search GUI element, and provide the search terms by entering them in using a keyboard. A search of the content is initiated in relation to these search terms, but specifically just of the content that has the content type of the selected area (316). Search results may then be displayed, and so on.
Referring first to
At the client computing device 402, a search GUI element of the web page is moved over a given area of the web page corresponding to a desired content type (414). The server computing device 404 in response determines this given area (416), and adapts the search GUI element to restrict the search scope to the desired content type of the given area (418). For instance, the server computing device 404 may configure one or more parameters so that search queries entered using the search GUI element at the client computing device 402 are appropriately restricted in search scope. In this sense, the search GUI element is adapted to restrict the search scope at the server computing device 404, and not at the client computing device 402.
Insofar as visual feedback to the user is provided as to the restriction in search scope, the server computing device 404 may send the client computing device 402 information as to how to update the search GUI element and/or the given area that has been selected, consistent with parts 310 and 312 of the method 300. At some point, then, one or more search terms are entered within the search GUI element at the client computing device 402 and sent (420). The server computing device 404 receives the search terms (422), and initiates a search that is appropriately restricted in search scope (424). The server computing device 404 sends the search results (426), which the client computing device 402 receives and displays (428).
Referring next to
However, unlike in
The remaining parts of
As a concrete example of the difference between the adaptation of the search GUI element to restrict the search scope in part 418 of
By comparison, in other implementations of the search GUI element, the search GUI element may be able to provide both the search terms and the content type to which a search is to be restricted to the server computing device 404. In this case, in other words, the search GUI element itself is able to specify the content type to which the scope of the search is to be restricted at the time entered search terms are sent from the client computing device 402 to the server computing device 404. Therefore, the search scope restriction (i.e., the search GUI element adaptation) is performed at the client computing device 402 in part 418′ of
It is noted, however, that although the implementations of
The client computing device 402 includes at least a processor 608, network hardware 610, and a computer-readable data storage medium 612 storing software 614. Similarly, the server computing device 404 includes at least a processor 616, network hardware 618, and a computer-readable data storage medium 620 storing software 622. The computing devices 402 and 404 can and typically do include other components, in addition to and/or in lieu of those depicted in
The networking hardware 610 permits the client computing device 402 to communicate with the server computing device 404 over the network 606. Likewise, the networking hardware 618 permits the server computing device 404 to communicate with the client computing device 402 over the network 606. The processor 608 of the client computing device 402 executes the software 614 from the computer-readable data storage medium 612 to perform the functionality ascribed to the client computing device 402 in relation to
As such, in general terms summarizing the operation of
It is noted that, as can be appreciated by one those of ordinary skill within the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the embodiments of the invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
In general, a computer program product includes a computer-readable medium on which one or more computer programs are stored. Execution of the computer programs from the computer-readable medium by one or more processors of one or more hardware devices causes a method to be performed. For instance, the method that is to be performed may be one or more of the methods that have been described above.
The computer programs themselves include computer program code. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention have been described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
It is finally noted that, although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is thus intended to cover any adaptations or variations of embodiments of the present invention. As such and therefore, it is manifestly intended that this invention be limited only by the claims and equivalents thereof.