The present disclosure is generally related to computing and electronic devices and, more particularly, is related to user interface systems.
Many different types of communication devices can be used to access computer networks, such as the Internet or other communications networks. For example, cell phones and personal digital assistants can be used for web browsing or sending text messages. Also, remote controls to set top boxes can be used to request information via the set top box and television (TV) network (e.g., Internet Protocol TV (IPTV) network). One problem with these user interfaces is that it may be difficult to input strings of information, such as words or phrases, using a small keypad, such as often found on cell phone devices, personal digital assistants, remote controls, or portable electronic devices. Research indicates that one of the reasons users do not take advantage of some device applications, such as text message or search capabilities, is the difficulty involved in entering data. If devices and applications were more user friendly, users may be more likely to take advantage of these device features.
Thus, a heretofore unaddressed need exists in the industry to address the aforementioned deficiencies and inadequacies.
Embodiments of the present disclosure provide systems, methods, and computer-readable media for inputting characters into a user interface. One embodiment of the system includes a network server configured to receive a character string and determine possible keywords corresponding to the character string based upon context in which the character string is input.
The system further includes at least one database of context information, where the context information is used by the network server to determine the context, and a network client configured to receive the context information and the possible keywords; determine a subset of the possible keywords that are likely to be of interest after analyzing the context information; and display the subset of keywords
Embodiment of the present disclosure can also be viewed as providing methods for inputting characters into a user interface. In this regard, one embodiment of such a method, among others, can be broadly summarized by the following: receiving a character string; determining possible keywords corresponding to the character string based upon context in which the character string is input; and providing at least a subset of the possible keywords to allow selection of at least one of the keywords in the at least a subset if a keyword of interest is found.
Other systems, methods, features, and advantages of the present disclosure will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description and be within the scope of the present disclosure.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
Referring now to the drawings, in which like numerals indicate corresponding parts throughout the several views,
As is further indicated in
One method for transmitting information, such as video, is the digital video broadcasting (DVB) protocol or standard. Alternatively, an increasingly popular method of transmitting digital video is Internet Protocol Television (IPTV) because of the numerous advantages IPTV provides for network providers to offer video services more efficiently in certain cases. For example, IPTV is suited for programs intended for use by only one subscriber, because a minimum amount of the network is tied up to serve that need. Therefore, the number of channels that can be carried to subscribers can be significantly higher when compared to traditional video delivery systems and depending on the transmission capacity of the network and how much of that capacity is devoted to IPTV. Finally, the same data transmission capacity of a network can be used for all other data traffic.
In an embodiment employing IPTV, a server, such as the network server 130, delivers digital television service to users using the Internet Protocol (IP) over a broadband connection through technologies used for the World Wide Web. IP video signals can be received by customer premise equipment as IP multicast streams delivered from the network. To avoid sending all channel signals simultaneously, each video channel can use a specific IP multicast identification, and the customer premise equipment can signal to the network which channel the user is currently viewing or requesting. The signaling information can be carried using Internet Group Management Protocol (IGMP). Therefore, when a user changes the channel, the customer premise equipment can transmit an IGMP “join” message to the network for the new channel, and it can send an IGMP “leave” message for the original channel. The signaling information for the current channel can be transmitted to an IP-enabled set top box, such as the set top box 116, which relays the signal to a television set 140 or to a personal computer, such as the personal computer 112.
One embodiment of the context search system 100 includes the network server 130. The network server 130 is connected to the computing device 110 of a user via the communications network 120. In one embodiment, the network server 130 is network equipment that provides the storage for media program material (e.g., video, web pages, etc.), which can be requested by a user. In a cable communications environment, the network server 130 may comprise a video server that performs many functions, such as admission control, request handling, data retrieval, guaranteed stream transmission, stream encryption, and support of functions such as pause, rewind, and fast forward. In a web environment, the network server 130 may comprise a web server that provides Internet content.
The network 120 connects the network server 130 and the equipment at a customer's premise (e.g., set top device 116, personal computer 112, etc.). In some embodiments, the context search system 100 involves the transfer of large volumes of data at very high speed. Also, in some embodiments, a user may utilize more than one communication network 120 to access the network server 130. For example, a user could connect with the network server 130 utilizing the Internet to watch a movie or listen to music.
According to exemplary embodiments, the ADSL system 122 is an asymmetrical bi-directional transmission system used as the local subscriber loop between the local telephone switch and the subscriber's home, thus allowing the economical transmission of broadband services without signal regenerators. In combination with the telephone signals, which may be analog or digital (ISDN), control (e.g., 16 and 24 kbit/s) and video (e.g., 2 to 6 Mbit/s) information channel may be transmitted downstream towards the user. In the upstream direction there are at least telephone and control channels. In some embodiments, the communication network 120 may utilize the ADSL system 122 to provide Internet-based services to a customer's premises.
The TVDS 124 (e.g., IPTV) is based on a tree-and-branch topology in some embodiments and on a star topology in some others. The audio and video signals are transmitted via coaxial cables in the subscriber line area. The trunk lines are usually made by fiber. Due to the high bandwidth, it has many channels available, which are multiplexed onto the cable using Frequency Division Multiplexing (FDM). Channel transmission on the cable is primarily unidirectional. Signals are inserted on the downstream channels by a head-end.
Signals from user or customer sites are allowed on upstream channels and they are transmitted towards the head-end. Also, there is provision for upstream message transmission. In some embodiments, the communication network 120 may utilize the TVDS 124 to provide Internet-based services to a user's or customer's premises.
A cable head-end is the facility at a cable TV center that originates and communicates cable TV services and cable modem services to subscribers. In distributing cable television services, the head-end includes a satellite dish antenna for receiving incoming programming. When a cable company provides Internet access to subscribers, the head-end includes the computer system and databases needed to provide Internet access.
In one embodiment, a switching office (not shown) includes both the telephone company's central office and the cable company's head-end. The switching office is the place where services are fed and distributed to individual subscribers. According to exemplary embodiments, the switching office contains the head-end, switches, and network servers 130. In the head-end equipment, the video streams are formatted and organized for transmission in the communication network. If the ADSL 122 is used, the switching office switches the video streams onto the subscriber loops with telephone calls.
A user interacts with the services by a client device, such as the computing device 110. In one embodiment, for the set top box or unit 116, information is displayed to a user using the television display 140, while in the case of a computer 112, information is displayed to a user using a computer monitor 142. A user may be connected to the network server 130 and browse through a selection of content or services. In one embodiment, the connection is over a cable television network. In another embodiment, the connection is over the Internet. Other embodiments may employ different mediums, such as wireless networks 150.
The processing device 200 can include any custom made or commercially available processor, a central processing unit (CPU) or an auxiliary processor among several processors associated with the computing device 110, a semiconductor based microprocessor (in the form of a microchip), or a macroprocessor. The memory 210 can include any one of a combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.).
In one embodiment, the user interface devices 220 may comprise those normally used in conjunction with a general purpose computer 112. For instance, the user interface devices 220 may comprise a keyboard and mouse. In some embodiments, the user interface devices 220 may also comprise a keypad and buttons, such as that found on a cellular telephone, such as the cellular telephone 114, or remote control to a set top box 116. For example, with a remote control, arrow buttons on the remote control can move a mouse pointer being shown on a display screen and an “OK” button on the remote control can emulate the action of a left mouse button. Also, the numeric keypad on the remote control can emulate a triple tap keypad, as often used in cellular telephones. With a triple tap keypad, the repeated pressing of a numeric keypad button allows a user to choose amongst several different characters associated with the respective keypad button. A character is set after one second has passed and the keypad button has not been pressed again or if another keypad button is pressed. To demonstrate,
The one or more network interface devices 240 comprise the hardware with which the computing device 110 transmits and receives information over the network 120. By way of example, the network interface devices 240 include components that communicate both inputs and outputs, for instance, a modulator/demodulator (e.g., modem), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, etc.
The memory 210 comprises various software programs including an operating system (O/S) 260 and a network client 270. According to exemplary embodiments, the operating system 260 controls the execution of other software, such as the network client 270, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The network client 270 is configured to enable connection and navigation of the network 120. By way of example, the network client can comprise a web browser such as Internet Explorer® from Microsoft® or Mozilla Firefox®. In some embodiments, the network client 270 may comprise an application within the set top box 116, such as a menu interface or electronic program guide that allows a user to search program listings or make queries for information from the network 120. Similarly, in some embodiments, the network client 270 may comprise an application residing on a portable electronic device, such as the cellular telephone 114, a Blackberry® unit, an Ipod® device, etc., that facilitates communications with the network 120. According to exemplary embodiments, the network client 270 is configured to receive an input or inputs provided by a user of the computing device 110 and attempt to determine a desired search string by considering a context surrounding the input or inputs.
Although the operating system 260 and the network client 270 are programs identified in the memory 210, persons having ordinary skill in the art will appreciate that other programs may be stored within the device memory, if desired. Additionally, while the network client 270 and other programs may be illustrated as a single software component, this is a non-limiting example. In at least one embodiment, the network client 270 may include one or more components, embodied in software, hardware, and/or firmware. Additionally, while the network client 270 and other programs may be depicted as residing on a single computing device, network client 270 may include one or more components residing on one or more different devices.
As with the computing devices 110, the user interface devices 520 for the network server 130 can comprise a keyboard and mouse, and the display 530 can comprise a computer monitor. The one or more network interface devices 540 comprise the hardware with which the network server 130 transmits and receives information over the network 120 and can include components that communicate both inputs and outputs, for instance, a modulator/demodulator (e.g., modem), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, etc.
The memory 510 comprises various software programs including, but not limited to, an operating system 560, search engine 570, and database retriever 580. The operating system 560 controls the execution of other software, such as the search engine 570 and the database retriever 580, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The search engine 570 may be configured to receive search queries and other inputs from the computing devices 110 and to conduct searches based upon the queries. The database retriever 580 may be configured to retrieve information associated with a user in the process of requesting a search query.
Additionally, while the database retriever 580 and other programs may be illustrated as a single software component, this is a non-limiting example. In at least one embodiment, the database retriever 580 may include one or more components, embodied in software, hardware, and/or firmware. Additionally, while the database retriever 580 and other programs may be depicted as residing on a single computing device, the database retriever 580 may include one or more components residing on one or more different devices.
The operation of the search engine 570 and the database retriever 580 is discussed below. In addition to these programs, the memory 510 can include a database 590 that, as described below, can comprise several information databases, each pertaining to information storing a type of information, such as particular content (e.g., program listings), demographic information (e.g., age of user, name of user, etc.), usage history (e.g., what information the user has accessed previously), etc.
One should note that although a single server is illustrated for representing the network server 130, as one of ordinary skill on the art will understand, one or more servers, computers, etc. may be utilized to provide the desired functionality. Similarly, while some of the components of
Various software and/or firmware programs have been described herein. It is to be understood that these programs can be stored on any computer readable medium for use by or in connection with any computer related system or method. In the context of this document, a computer readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program for use by or in connection with a computer related system or method. These programs can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “computer-readable medium” can be any means that can store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer-readable medium include an electrical connection having one or more wires, a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM, EEPROM, or Flash memory), an optical fiber, and a portable compact disc read-only memory (CDROM).
Having described an example operating environment 100 for the context search system 100 above, operation of an embodiment of the context search system 100 will now be discussed. In the discussion that follows, a flow chart diagram is provided. It is to be understood that the functional descriptions within the presented blocks and other elements of the flow chart diagram represent modules, segments, or portions of code that include one or more executable instructions for implementing specific logical functions or steps. Persons having ordinary skill in the art will appreciate that alternative implementations are feasible. Moreover, the functions or steps may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved. Also, features described as being performed by the network server 130 in one embodiment may be performed by the computing device 110 in another embodiment and vice versa. In this way, processing of certain functions and steps may be preferably performed by a client device or a server device in different embodiments.
Referring now to the flow chart of
The interface screen 700 also demonstrates another method for entering characters (in addition to previous examples that have been mentioned, such as the triple tap approach). This approaches displays a keypad on a display, such as the display 230 of the computing device 110 and allows the user to move a cursor to a keypad button being displayed, where the user can then select a character on the keypad with the press of a button or mouse control on a user interface control of the computing device 110, such as a remote control, mouse, etc.
After the user is authenticated, an interface screen is presented to the user to allow the user to access the search engine 570, as indicated in block 630. In some embodiments, the user may request the interface screen to be shown by selecting a menu option of the network client 270.
An example interface screen 800 is schematically illustrated in
Returning to
The amount of information capable of being displayed at one time by the network client 270 and display 230 of the computing device 110 may be limited, especially in the case of a small portable device, such as the cellular telephone 114, or a device having limited input capabilities, such as the set top box 116 (with remote) and display. Therefore, not all of this information is shown at one time. In accordance with the present disclosure, components of the context search system 100 attempts to present items in the list that are likely to be desired by the user given the context of the search. Therefore, in addition to the search results, the database retriever 580 provides (660) to the network client 270 context information that is used to determine or deem which items in the list should be presented to the user and, in exemplary embodiments, the order in which the items should be presented to the user. Context information may include a variety of information from a variety of sources. For example, demographic information on the user may be supplied, such as whether the user is a head of a household or a child in the household, whether the user is male or female, the age of the user, the location where the user resides, etc. Also, seasonal information or a current chronological state may be considered, such as whether the time of the year is in the summer, close to a holiday, whether the time of the day is in the morning, afternoon, or night, etc. Past usage history of the user may also be provided, such as past browsing statistics of the user, past viewing history, etc. Additional sources and types of information may also be used as context information.
The flow chart diagram continues (665) on
The determination algorithm uses pattern recognition to recognize a common pattern from a variety of instances and descriptions of information in order to make a determination of which items in the search term list are more relevant in view of the context information that has been provided. The context information itself may contain information that has been previously analyzed by the server 130 in the network 120. For example, a variety of usage parameters may be compiled regarding a user, such as the content he or she accesses, the amount of time that the content is accessed, past search queries, items purchased using the computing device 110, information downloaded, such as videos and songs, etc. This type of information may be compiled and analyzed to form an index ranking of the user in a variety of categories, such as the user's interests in sports, westerns, cartoons, etc., in a television environment, for example. This index ranking may be passed to the network client 270 to be used in the determination algorithm.
The network client 270 may execute a series of pre-defined rules in order to predict items of interest to the user. According to exemplary embodiments, the network client 270 is provided context information from one or more of the databases 135 in order to make the predictions.
As the user enters another character into the input box, the network client 270 may provide this information to the database retriever 580 which responds by providing a list of items to which the character string may refer and the determination algorithm is used to choose items from the new list of items to show in the drop down box 830. Accordingly, the items displayed in the drop down box 830 dynamically change and adapt as the user enters additional characters into the input box 810. Although the drop down box 830 is shown and described, persons having ordinary skill in the art will appreciate that many other means for providing options to a user for selection could be used.
The relationship amongst the database retriever 580 and the databases 135 the retriever communicates with is schematically illustrated in
Additionally, a viewer is provided the ability to interact and access an extraordinary amount of content relating to a program being viewed. For example, information content, such as, e.g., textual content, production credits, filmographies, character descriptions, award information, genre information, information relating to audio, information relating to video, and promotional information, etc. may be viewed. A viewer may also access interactive components such as, e.g., but not limited to, trivia, quiz, postcards, polling, gaming, etc. An interactive interface may be used to provide access to alternative audio/video (AV) experience such as, e.g., but not limited to, alternate video and audio tracks, including e.g., alternate resolution tracks, interviews, “making of” videos, behind the scenes clips, trailers, alternate camera angle tracks, alternate special effects, alternate subtitles, ratings tracks, foreign language tracks, promotional tracks, closed captioning, director commentary, deleted scenes tracks, etc. As previously mentioned, viewing habits such as what pay per view movies have been viewed, what channels are tuned in by the user, what shows are recorded on a DVR, what advertisements are selected by a user, which searches are made on a Yellow Pages search, etc. may be useful in determining a context and stored in the network database 135. Generally, each selection made by a user or household representative within the network client 270 is a possible entry into one of the databases 910 in specific detail.
Based on this information and other information maintained in the databases 910, preferences of a user may be learned and context in which a search is being made may be considered when a search is being sought by a user. In this way, a personal preference and context-based keyword search may be performed by embodiments of the context search system 100. Each keyword entered or selected by a user may be used to continuously update a database storing such information thus refining this information as additional searches are performed. Each of these selections and choices made by a viewer may be provided as data to one or more of the databases 910. Therefore, in one embodiment, more than 1000 different parameters may be used to define what context is.
In many networked environments, a lot of information is known about users of the network which is advantageous in implementing embodiments of the disclosure. For example, in an IPTV environment, since each user is a subscriber to the IPTV service, the user's habits of viewing or browsing can be captured. This provides a smarter way to perform a search based on keywords. Similarly, web-based networks such as Amazon capture and maintain information on their users which could be used as context information in accordance with the present disclosure.
Further, based on the identity the user enters, the role the user has in a household may be determined (e.g., whether the user is a parent or a child). From the identification number of a set top box, the room in the house where the box is located may be determined. With use of such information in a search process, the speed of the search process is improved.
As previously stated, a wealth of information is available on the Internet and/or television network, such as thousands of titles in a program guide, pay per view titles, and longtail video and audio content available from podcasts. By using an embodiment of the context search system 100, all this information may be made available to a user in a more ordered sense, in what the user wants to find, and in what the user has shown his/her interests to be. This is all done passively in the background of the context search system 100 as a user browses or views content over the network 120. And, possible keywords that may be of interest to a user are presented to the user at the point of entry of a search query.
Referring back to
In operation, the search engine 570 can search content associated with the Internet according to the received search criteria. Upon completing the search, the search engine 570 can provide data (which may take the form of source code) that includes an address associated with content revealed in the search. Upon receiving the data, the network client 270 associated with the computing device 110 can determine a format for displaying the received information. The user can then select at least one of the addresses. Upon receiving the user selection, the search engine 570 can provide the computing device 110 content from a server associated with the selected address.
Returning to
In accordance with the present disclosure, the network client 270 may sort or organize the search results in a similar manner as the search terms were arranged. In other words, the network client 270 may use the determination algorithm and context information previously provided to determine which of the search results is more likely to be of interest to the user. For example, if a search was done on a movie title, and the search results included cast information (that contains hyperlinks), director information (that contains hyperlinks), and the times (with hyperlinks) in which the movie title is to be broadcasted, prior viewing habits of the user may indicate that the user is more interested in director information (since the user often visits hyperlinks in the director information) than cast information. Therefore, the director information is shown before the cast information in an interface displaying the search results.
With reference to decision element 694 of
In presenting the search results or the list of possible search terms for display, the network client 270 may be configured to display at a high level, categories that are likely to be of interest to the user. For example, in the case of a user entering a character string for search purposes, the drop down box 830 of possible search strings or terms may contain category entries that are likely to be applicable to the term in which the user is interested. For example, if the user enters “John,” then the user may be presented with the categories of Actors, Athletes, and Musicians instead of Politicians, Chefs, and News Anchors, since the viewing habits and other context information may indicate that the user is more likely to be searching for an actor, athlete, or musician. Therefore, if the user selects the Actors categories, items in the list of possible search terms that refer to actors are identified and the more likely of these identified items to be of interest are shown to the user. It is noted that display space may be limited, so only a few search terms may be displayed at a time. Similarly, in some embodiments, categories may be displayed with the most likely items under each category displayed and presented to the user.
In one embodiment, each possible category relates to a different aspect that differentiates between the search results or terms, as the case may be. The available categories may be ranked according to a priority based on context information. According to exemplary embodiments, the network client 270 selects a category that is of the highest priority and will provide a reasonable distribution of the search results or terms. Once the category is determined, the search results/terms are then divided into groups corresponding to the category. The items within each category may be criteria associated with the category. For example, if the category is “actors,” the items in the category are likely to be different actors and the actors deemed to be the most likely actors of interest to the user are displayed first.
During browsing or viewing of search results presented to the user, a user may indicate that the methodology being used to present the search results is on the wrong track. For example, a user may be provided a list of action movies when the user is actually interested in romantic comedies. In some embodiments, to let the network client 270 become aware of this, a user is provided a graphical button that the user can activate which will cause the determination algorithm to modify or rescale the factors the algorithm is using to determine likely search terms or results, as the case may be. Likewise, if a user believes that a proper methodology is being used and the items being presented are close to being a match to what the user is desiring, the user can activate a button to let the network client 270 become aware that items similar to the ones previously shown should be presented to the user.
The foregoing features and additional features of embodiments of the context search system are illustrated and described in the following examples and figures.
Referring back to
In the present example, the user is assumed to watch a lot of movies and television, as evidenced by the user's browsing and viewing habits which have been collected and maintained in the network databases 135. Since this information is known about the user, the drop down box 830 is populated with possible items of interest that may correspond to the user's character string input, such as a list of actors whose first name begins with the letter K. In
Also, in accordance with one embodiment, the order in which items are displayed in the drop down box 830 is arranged in accordance to which items are deemed to be of most interest to the user. For example, in
In
In accordance with one embodiment, a mechanism is provided for a user to indicate whether the search results being displayed are of the type that the user is interested in receiving. In the example of
In some embodiments, Wrong Way and Right Way buttons 1410, 1420 are also provided in a drop down box 1430 of a search interface 1400. For example, in
In another scenario, consider a user using a search interface 1600 of
In another example,
To further illustrate how context information may shape how information is presented to a user, consider the figures of
In one embodiment, in addition to finding possible matches to a search string and presenting information in a desirable way given the context in which information is inputted by a user, recommendations may be provided to the user on additional information that may be of interest to the user. For example, in the illustration of
Referring now to
Accordingly, in
In the example of
Referring now to
In the present example, Elvis Costello concerts are now listed. However, the user is not interested in Elvis Costello concerts either. So, the user may select the W button 3010 again. It is presumed for illustration purposes that there are no more possible search items that fit the concerts category 2940. As a result, in the present example, an interface 3200 is displayed listing all the other (or subset of other) items left in the search results that correspond to the character string “Elvis” as illustrated in
Advantageously, embodiments of the present disclosure address many of the shortcomings of user input devices when a lot of characters or letters are needed to be specified in an application interface, such as one offering search capabilities. By taking advantage of two-way communications capabilities of a computing device, an intelligent way to assist a user with inputting characters or letters is devised that provides personalization and a customizable viewing/browsing experience, in one embodiment. For example, embodiments of the context search system 100 may adaptively change a search interface based on selections made during a current search session. These selections may be weighed that more than selections made in past session in determining possible keyword matches.
Referring now to
One should note that the above illustrations are directed to an interface to a search engine which is a non-limiting example. As one of ordinary skill on the art will understand, teachings of the present disclosure are not limited to search applications and may be utilized in a variety of interface applications.
Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments could include, but do not require, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.
It should be emphasized that the above-described embodiments are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiments without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure.