Some example embodiments of the present invention relate generally to user interface technology and, more particularly, relate to a method and apparatus for providing a mechanism by which relevant content can be determined and/or presented.
The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. One area in which there is a demand to increase ease of information transfer relates to the delivery of services to a user of a mobile terminal. The services may be in the form of a particular media or communication application desired by the user, such as a music player, a game player, an electronic book, short messages, email, content sharing, web browsing, etc. The services may also be in the form of interactive applications in which the user may respond to a network device in order to perform a task or achieve a goal. The services may be provided from a network server or other network device, or even from the mobile terminal such as, for example, a mobile telephone, a mobile television, a mobile gaming system, electronic book or reading device, etc.
In many situations, it may be desirable for the user to interface with a device such as a mobile terminal for the provision of an application or service. A user's experience during certain applications such as, for example, web browsing or navigating through content may be enhanced by using a touch screen display as the user interface. Furthermore, some users may have a preference for use of a touch screen display for entry of user interface commands over other alternatives. In recognition of the utility and popularity of touch screen displays, many devices, including some mobile terminals, now employ touch screen displays. As such, touch screen devices are now relatively well known in the art, with numerous different technologies being employed for sensing a particular point at which an object may contact the touch screen display.
A method, apparatus and computer program product are provided to enable the provision of a display of relevant content based on context information associated with a user terminal. In some cases, the context information may be provided based on other devices, on earlier device usage, or the location of the user terminal or responsive to a touch event identifying a content item having a feature or characteristic that is used as the basis for a relevancy determination.
Some embodiments of the invention may provide a method, apparatus and computer program product for improving user experience relating to devices having touch screen interfaces. As a result, for example, mobile terminal users may enjoy improved capabilities with respect to content navigation and other services or applications that may be used in connection with a touch screen display.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with some embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
Additionally, as used herein, the term ‘circuitry’ refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present. This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims. As a further example, as used herein, the term ‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware. As another example, the term ‘circuitry’ as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, and/or other computing device.
As defined herein a “computer-readable storage medium,” which refers to a non-transitory, physical storage medium (e.g., volatile or non-volatile memory device), can be differentiated from a “computer-readable transmission medium,” which refers to an electromagnetic signal.
Some embodiments of the present invention may relate to the provision of content that is relevant to a feature or characteristic of a content item selected based on a touch event (e.g., a pinch or pinch out event). In some cases, a touch event may identify a reference content item (e.g., an image, video, song, album, document, message or other digital content/or object like application icon, button linked with certain functionality). Thus, for example, some embodiments may enable sorting of content items based on relevancy and/or sorting of a set of icons and/or buttons with corresponding actions. A characteristic or feature of the reference content item (e.g., the author, artist, genre, subject, picture taker, time taken/created, objects in picture, location, etc.) may provide context information to be used as a basis for identifying other relevant content items associated with the reference content item. The other relevant content items may be presented in some manner for possible selection by a user. The selection options for the other relevant content may include, for example, uneven zooming of content items based on relevancy or the selection of additional content items (e.g., as a collage) in association with the reference content item in response to the additional content items being determined to have relevance to the reference content item. Accordingly, some example embodiments may not merely be used to provide access to content associated with the reference content item, but may highlight or otherwise present the content items that are determined to be relevant in a unique way.
The mobile terminal 10 may include an antenna 12 (or multiple antennas) in operable communication with a transmitter 14 and a receiver 16. The mobile terminal 10 may further include an apparatus, such as a controller 20 or other processing device (e.g., processor 70 of
In some embodiments, the controller 20 may include circuitry desirable for implementing audio and logic functions of the mobile terminal 10. For example, the controller 20 may be comprised of a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and other support circuits. Control and signal processing functions of the mobile terminal 10 are allocated between these devices according to their respective capabilities. The controller 20 thus may also include the functionality to convolutionally encode and interleave message and data prior to modulation and transmission. The controller 20 may additionally include an internal voice coder, and may include an internal data modem. Further, the controller 20 may include functionality to operate one or more software programs, which may be stored in memory. For example, the controller 20 may be capable of operating a connectivity program, such as a conventional Web browser. The connectivity program may then allow the mobile terminal 10 to transmit and receive Web content, such as location-based content and/or other web page content, according to a Wireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP) and/or the like, for example.
The mobile terminal 10 may also comprise a user interface including an output device such as a conventional earphone or speaker 24, a ringer 22, a microphone 26, a display 28, and a user input interface, all of which are coupled to the controller 20. The user input interface, which allows the mobile terminal 10 to receive data, may include any of a number of devices allowing the mobile terminal 10 to receive data, such as a keypad 30, a touch display (display 28 providing an example of such a touch display) or other input device. In embodiments including the keypad 30, the keypad 30 may include the conventional numeric (0-9) and related keys (#, *), and other hard and soft keys used for operating the mobile terminal 10. Alternatively or additionally, the keypad 30 may include a conventional QWERTY keypad arrangement. The keypad 30 may also include various soft keys with associated functions. In addition, or alternatively, the mobile terminal 10 may include an interface device such as a joystick or other user input interface. Some embodiments employing a touch display may omit the keypad 30 and any or all of the speaker 24, ringer 22, and microphone 26 entirely. The mobile terminal 10 further includes a battery 34, such as a vibrating battery pack, for powering various circuits that are required to operate the mobile terminal 10, as well as optionally providing mechanical vibration as a detectable output.
The mobile terminal 10 may further include a user identity module (UIM) 38. The UIM 38 is typically a memory device having a processor built in. The UIM 38 may include, for example, a subscriber identity module (SIM), a universal integrated circuit card (UICC), a universal subscriber identity module (USIM), a removable user identity module (R-UIM), etc. The UIM 38 typically stores information elements related to a mobile subscriber. In addition to the UIM 38, the mobile terminal 10 may be equipped with memory. For example, the mobile terminal 10 may include volatile memory 40, such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. The mobile terminal 10 may also include other non-volatile memory 42, which may be embedded and/or may be removable. The memories may store any of a number of pieces of information, and data, used by the mobile terminal 10 to implement the functions of the mobile terminal 10.
In some embodiments, the mobile terminal 10 may also include a camera or other media capturing element (not shown) in order to capture images or video of objects, people and places proximate to the user of the mobile terminal 10. However, the mobile terminal 10 (or even some other fixed terminal) may also practice example embodiments in connection with images or video content (among other types of content) that are produced or generated elsewhere, but are available for consumption at the mobile terminal 10 (or fixed terminal).
An example embodiment of the invention will now be described with reference to
It should also be noted that while
Referring now to
The apparatus 50 may, in some embodiments, be a mobile terminal (e.g., mobile terminal 10) or a fixed communication device or computing device configured to employ an example embodiment of the present invention. However, in some embodiments, the apparatus 50 may be embodied as a chip or chip set. In other words, the apparatus 50 may comprise one or more physical packages (e.g., chips) including materials, components and/or wires on a structural assembly (e.g., a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon. The apparatus 50 may therefore, in some cases, be configured to implement an embodiment of the present invention on a single chip or as a single “system on a chip.” As such, in some cases, a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein.
The processor 70 may be embodied in a number of different ways. For example, the processor 70 may be embodied as one or more of various hardware processing means such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. As such, in some embodiments, the processor 70 may include one or more processing cores configured to perform independently. A multi-core processor may enable multiprocessing within a single physical package. Additionally or alternatively, the processor 70 may include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
In an example embodiment, the processor 70 may be configured to execute instructions stored in the memory device 76 or otherwise accessible to the processor 70. Alternatively or additionally, the processor 70 may be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor 70 may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Thus, for example, when the processor 70 is embodied as an ASIC, FPGA or the like, the processor 70 may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor 70 is embodied as an executor of software instructions, the instructions may specifically configure the processor 70 to perform the algorithms and/or operations described herein when the instructions are executed. However, in some cases, the processor 70 may be a processor of a specific device (e.g., a mobile terminal or network device) adapted for employing an embodiment of the present invention by further configuration of the processor 70 by instructions for performing the algorithms and/or operations described herein. The processor 70 may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the processor 70.
Meanwhile, the communication interface 74 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus 50. In this regard, the communication interface 74 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network. In some environments, the communication interface 74 may alternatively or also support wired communication. As such, for example, the communication interface 74 may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB) or other mechanisms.
The user interface 72 may be in communication with the processor 70 to receive an indication of a user input at the user interface 72 and/or to provide an audible, visual, mechanical or other output to the user. As such, the user interface 72 may include, for example, a keyboard, a mouse, a joystick, a display, a touch screen(s), touch areas, soft keys, a microphone, a speaker, or other input/output mechanisms. In this regard, for example, the processor 70 may comprise user interface circuitry configured to control at least some functions of one or more elements of the user interface, such as, for example, a speaker, ringer, microphone, display, and/or the like. The processor 70 and/or user interface circuitry comprising the processor 70 may be configured to control one or more functions of one or more elements of the user interface through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor 70 (e.g., memory device 76, and/or the like).
In an example embodiment, the apparatus 50 may include or otherwise be in communication with a touch screen display 68 (e.g., the display 28). In different example cases, the touch screen display 68 may be a two dimensional (2D) or three dimensional (3D) display. Thus, for example, for autostrereoscopic displays, relevant content may be lifted to the front of the display and irrelevant content may be moved to the back so that user may get the feeling of items getting closer or more faraway. The touch screen display 68 may be embodied as any known touch screen display. Thus, for example, the touch screen display 68 could be configured to enable touch recognition by any suitable technique, such as resistive, capacitive, infrared, strain gauge, surface wave, optical imaging, dispersive signal technology, acoustic pulse recognition, etc. techniques. The user interface 72 may be in communication with the touch screen display 68 to receive indications of user inputs at the touch screen display 68 and to modify a response to such indications based on corresponding user actions that may be inferred or otherwise determined responsive to the indications. In one alternative, a touch input may be provided other than by direct interaction with a display (e.g., in cases where the user interface is projected onto a wall with a projector.
In an example embodiment, the apparatus 50 may include a touch screen interface 80. The touch screen interface 80 may, in some instances, be a portion of the user interface 72. However, in some alternative embodiments, the touch screen interface 80 may be embodied as the processor 70 or may be a separate entity controlled by the processor 70. As such, in some embodiments, the processor 70 may be said to cause, direct or control the execution or occurrence of the various functions attributed to the touch screen interface 80 (and any components of the touch screen interface 80) as described herein. The touch screen interface 80 may be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (e.g., processor 70 operating under software control, the processor 70 embodied as an ASIC or FPGA specifically configured to perform the operations described herein, or a combination thereof) thereby configuring the device or circuitry to perform the corresponding functions of the touch screen interface 80 as described herein. Thus, in examples in which software is employed, a device or circuitry (e.g., the processor 70 in one example) executing the software forms the structure associated with such means.
The touch screen interface 80 may be configured to receive an indication of an input in the form of a touch event at the touch screen display 68. As such, the touch screen interface 80 may be in communication with the touch screen display 68 to receive indications of user inputs at the touch screen display 68 and to modify a response to such indications based on corresponding user actions that may be inferred or otherwise determined responsive to the indications. Following recognition of a touch event, the touch screen interface 80 may be configured to determine a classification of the touch event and provide a corresponding function based on the touch event in some situations.
In some embodiments, the touch screen interface 80 may include a detector 82, a display manager 84 and a device unlock manager 86. Each of the detector 82, the display manager 84 and the device unlock manager 86 may be any device or means embodied in either hardware or a combination of hardware and software configured to perform the corresponding functions associated with the detector 82, the display manager 84 and the device unlock manager 86, respectively, as described herein. In an exemplary embodiment, each of the detector 82, the display manager 84 and the device unlock manager 86 may be controlled by or otherwise embodied as the processor 70.
The detector 82 may be in communication with the touch screen display 68 to receive indications of user inputs in order to recognize and/or determine a touch event based on each input received at the detector 82. A touch event may be defined as a detection of an object, such as a stylus, finger, pen, pencil or any other pointing device, coming into contact with a portion of the touch screen display in a manner sufficient to register as a touch. In this regard, for example, a touch event could be a detection of pressure on the screen of the touch screen display 68 above a particular pressure threshold over a given area or the detection of a change in the electrostatic field of the touch screen display 68 at a particular location. As such, some touch events may not actually require physical contact with the touch screen display 68. For example, in some cases, the touch screen display 68 may be configured to detect one or more objects (e.g., a finger or fingers) hovering over the touch screen display 68. Gestures associated with the object or objects may also be detected in some cases, even without physical contact with the touch screen display 68. Subsequent to each touch event, the detector 82 may be further configured to recognize and/or determine a corresponding classification of the event. In other words, the detector 82 may be configured to classify the touch event as any of a number of possible gestures. Some examples of recognizable gestures may include a touch, multi-touch, stroke, character, pinch event (e.g., a pinch in or pinch out) and/or the like.
A touch may be defined as a touch event that impacts a single area (without or with minimal movement on the surface of the touch screen display 68) and then is removed. A multi-touch may be defined as multiple touch events sensed at the same time (or nearly the same time). A stroke event may be defined as a touch event followed immediately by motion of the object initiating the touch event while the object remains in contact with the touch screen display 68. In other words, the stroke event may be defined by motion following a touch event thereby forming a continuous, moving touch event defining a moving series of instantaneous touch positions (e.g., as a drag operation or as a flick operation). Multiple strokes and/or touches may be used to define a particular shape or sequence of shapes to define a character. A pinch event may be classified as either a pinch out or a pinch in (hereinafter referred to simply as a pinch). A pinch may be defined as a multi-touch, where the touch events causing the multi-touch are spaced apart. After initial occurrence of the multi-touch event involving at least two objects, one or more of the objects may move substantially toward each other to simulate a pinch. Meanwhile, a pinch out may be defined as a multi-touch, where the touch events causing the multi-touch are relatively close together, followed by movement of the objects initiating the multi-touch substantially away from each other. In some cases, the objects on a pinch out may be so close together initially that they may be interpreted as a single touch, rather than a multi-touch, which then is modified by movement of two objects away from each other. In some examples, the objects associated with causing the multi-touch event may be spaced apart by any initial distance so long as the subsequent movement of the objects is in a direction apart from each other. In some cases, the detector 82 may be further enabled to determine characteristics regarding the touch events (e.g., length of time of a touch event, pressure of touch event(s), length of movement, direction of movement and/or speed of movement of the object). As such, the detector 82 may classify the touch events relative to various thresholds or ranges of lengths (in terms of time and distance), directions and/or speeds of movement. Touch events such as pinch gestures may be performed as a single continuous gesture in some cases. However, in alternative embodiments, the user may make successive short pinch gestures after each other to have same effect a single longer pinch gesture.
In an example embodiment, the detector 82 may be configured to communicate detection information regarding the recognition, detection and/or classification of a touch event to the display manager 84 and/or the content manager 86. The display manager 84 may be configured to provide control over modifications made to that which is displayed on the touch screen display 68 based on the detection information received from the detector 82. Meanwhile, the content manager 86 may be configured to provide control selection of content to be displayed and the manner in which the selected content is displayed by the display manager 84 responsive to a touch event identifying a reference content item.
In an example embodiment, the content manager 86 may include a relevance engine 88 and a context engine 90. The relevance engine 88 and the context engine 90 may each be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (e.g., processor 70 operating under software control, the processor 70 embodied as an ASIC or FPGA specifically configured to perform the operations described herein, or a combination thereof) thereby configuring the device or circuitry to perform the corresponding functions of the relevance engine and the context engine 90, respectively, as described herein. Thus, in examples in which software is employed, a device or circuitry (e.g., the processor 70 in one example) executing the software forms the structure associated with such means. As such, in some embodiments, the processor 70 may embody the relevance engine 88 and/or the context engine 90 and may be said to cause the corresponding functions of the relevance engine 88 and/or the context engine 90, respectively, to be performed.
In an example embodiment, the context engine 90 may be configured to repeatedly or continuously scan or otherwise receive indications of conditions relative to a context of the mobile terminal 10. The context of the mobile terminal 10 may be indicative of a current disposition of the user of the mobile terminal 10 or at least a disposition of the mobile terminal 10. For example, the context engine 90 may monitor resources of the mobile terminal 10 to determine a device state or current applications and/or content items that are active (e.g., chatting or other social activities, consuming digital media such as listening to music, reading a book, reviewing or modifying a document, reviewing or modifying images, watching a video, etc.). In some embodiments, information may be monitored and stored about earlier used applications, communication events, content items etc. The information may be referred to as context history. In some cases, physical context (e.g., what is in the surroundings of the device/user, who are the people nearby, important places nearby, objects nearby, etc.) may also be considered. Moreover, context information may also be obtained by measuring user's biosignals like heart rate, blood pressure, EEG (electroencephalography), EMG (electromyography) and also other brain related signals.
Context is generally defined as any information that can be used to characterize the situation of an entity. An entity may be a person, place or object (e.g., the user or the user's mobile terminal) that is considered relevant to an interaction between a user and an application, including the user and the application themselves. Accordingly, a system may be considered context aware if the system uses context information to provide relevant information and/or services to the user such as where relevancy depends on the user's task.
In some embodiments, the context engine 90 may be a context aware device or element configured to request context information or provide interface elements aimed at acquiring context information from the user. For example, the context engine 90 may be configured to generate various domains, fields, user interface elements and/or the like designed to enable the user to enter information that may provide context related information. The domains, fields, user interface elements and/or the like may be text entry based, predetermined selectable options, or customizable options that may change dependent upon user criteria. As an example, the context engine 90 may have a mechanism by which the user may enter the city, country, region, or specific location in which the user is located or to which a particular query pertains. As another example, various selectable common classifications for questions may be provided (e.g., weather conditions, dining, night life, tourism, driving conditions, crowd conditions, best route, recommendations, and/or many others). The information provided by the user may then be utilized to extract context information for provision to the relevance engine 88.
In an alternative embodiment, the context engine 90 may be configured to extract information from communications received (e.g., at the mobile terminal 10). As such, for example, the context may be determined from the status of applications on the mobile terminal 10, the location of the mobile terminal 10, a determination of a predefined association for a particular object, or any other mechanism for discovering the types of context information described herein. For example, the context engine 90 may request or otherwise acquire information regarding a location of the mobile terminal 10 (e.g., from the mobile terminal 10 or from a network position determining entity) and/or other communication devices. Alternatively or additionally, the context engine 90 may parse communications or metadata associated with content items (e.g., recently created content items) to determine if context information is provided within the text of the communications or within the metadata. For example, if a text message to a friend asks whether it is currently windy in Chicago, the context engine 90 may determine a location context corresponding to Chicago and a question classification context of a weather related question based on the reference to wind conditions. Context information may also be determined, for example, based on a determination of various context parameters that may be accessed by the context engine 90 in order to determine context of subscribers to the service.
Context parameters may include parameters related to, for example, environmental context, social context, spatio-temporal context, task context, terminal context, service context, access context, and/or the like. Environmental context may describe the entities around the user (e.g., the user of an electronic device) and the environment in which the user and the user's device are located. Social context may include information about relationships with other individuals (e.g., friends, relatives, co-workers, etc.). Spatio-temporal context may define the user's location (e.g., physical or geographical location) in the real world at a certain point in time. Task context may describe information related to on-going tasks. Task context may be determined, for example, from calendar applications or the execution of other applications at a particular time. Terminal context may be related to or descriptive of the status and/or capabilities of the user's device. Service context may relate to or be descriptive of services that are available at a particular location or based on the subscription level of the user. Access context may describe the status of network connectivity. In an exemplary embodiment, context parameters relating to members of the social network and/or subscribers to a question answering service may be reported to the context engine 90 or a repository accessible to the context determiner either continuously, when requested, or at random or predetermined intervals. Thus, the context engine 90 can report on context information for any user and/or for questions originating from any user, at any given time.
In an example embodiment, the context information may define at least one feature or characteristic of that can be associated with a reference content item and that correlates to a corresponding characteristic associated with a current disposition of the user of the mobile terminal 10. For example, if the user performs a touch event (e.g., a pinch event) with respect to a particular content item that is considered a reference content item, one characteristic that may be selected as context information may be the current location of the user when the reference content item is selected, the frequency (or infrequency) or accessing the reference content item, the historical times or situations in which the reference content item is typically accessed, the subject of the reference content item, an object or person in or that created the reference content item, a color, genre or classification of an object associated with the reference content item, a quality level of the reference content item, and/or the like.
After the context engine 90 has determined the context information, the context engine 90 may communicate the context information to the relevance determiner 88. The relevance determiner 88 may be configured to determine the relevance of various content items to the reference content item. As such, for example, the relevance determiner 88 may be configured to compare a plurality of content items to the reference content item to determine a degree of relevance of each of the plurality of content items. In some cases, determining relevancy information may include determining a degree to which a content item is relevant to the at least one characteristic associated with the context information. In some cases, relevancy may be determined by comparing metadata or other tags that may be automatically or manually applied to content items in order to describe or in some way identify a content item at the time of content creation or subsequent thereto. As such, each content item may include one or more metadata tags that may define characteristics or features of the respective content items such that those features or characteristics can be compared to the characteristic determined by the context engine 90. In one alternative, the user may have selected multiple items as reference items and relevance of other content items may be defined relative to the reference of content items.
As an example, a user may review a plurality of content items and select one content item as a reference content item. The reference content item may have metadata indicating that the reference content item was created on a particular date or at a particular location. In one example, other content items may be considered to be relevant to the reference content item based on their proximity to the particular date or location. Alternatively or additionally, the reference content item may be an image, document, video or album having metadata indicating a particular characteristic of the reference content item (e.g., who the picture is of, what event the picture is associated with, the subject or title of the document, the subject, title or creator of the video, the subject, title, creator or genre of the album, etc.). The particular characteristic may be compared to corresponding characteristics of other content items to determine a corresponding one or more relevancies the corresponding content items may share with the reference content item. In some cases, the actual content of the reference content item may be analyzed (e.g., using facial recognition, object recognition or other image analysis techniques for images, using textual parsing for documents, and/or the like). Although in some cases, items that have relevance to a certain selected item each be the same type (for example only images), other embodiments may allow relevant items to include different content types (like photos, messages, documents, etc.).
After relevant content items have been identified (based on a degree of similarity or relevance) by the relevance engine 88, the relevant (and/or irrelevant) content items may be presented to the user in a manner that indicates the corresponding relevance (or irrelevance) and perhaps also indicates a degree of the relevance (or irrelevance). The presentation of the content items may be accomplished by the display manager 84. The display manager 84 may present relevant content items according to a selected presentation paradigm. The selected presentation paradigm may be set by user preference or indicated specifically by the user at the time that the touch event for initiating example embodiments is undertaken. Some examples of selected presentation paradigms that may be employed by the display manager 84 are described below.
In an example embodiment, the display manager 84 may employ uneven zooming to identify content items based on their relevance to the reference content item or items. In some cases, the uneven zooming may include the zooming in on content items that are considered relevant and/or zooming out on content items that are considered irrelevant. In some cases, the uneven zooming may apply to certain items in that no zooming is applied to those corresponding certain items. In an example embodiment, the degree of zooming applied to each content item may be based on (or proportional to) the degree of relevance of the respective content item to the reference content item. Thus, for example, in some cases a group of images could be zoomed to different sizes in order of relevance. Furthermore, in some cases, the least relevant images may be eliminated or be moved behind other images.
In an example embodiment, the user may be viewing the images of
In response to affecting a touch event (e.g., a pinch event (pinch out in this case as shown by arrows 140) or any other touch event that may indicate a desire to zoom on selected content or otherwise initiate an example embodiment), the plurality of content items may be reviewed for their relevancy to the subject of John. In some cases, images associated with or relevant to John may be zoomed in based on their relevancy. For example, images of John, images that include the user and John, or images taken by John may be considered to be relevant and may therefore be zoomed in on the display of
As indicated above, images with pictures of certain persons (or combinations of person) or images taken by certain persons may be considered more relevant than others (e.g., based on metadata or face recognition). Images of or taken from certain locations may have greater relevance, or even images with similar quality conditions may have greater relevance. The user may define preferences for relevance determinations or may provide relevance feedback that may be used to learn user habits or preferences to improve relevance determinations on an ongoing basis.
In some embodiments, the user may simply be viewing an image and may perform a touch event on a specific portion or object of the image (e.g., on the face of a user or on a specific object). The specific portion of the object or image may then be used to further define context information for the establishment of a characteristic or characteristics to form the basis for relevancy determinations.
It should be appreciated that although
As another example of a type of content item that could be used in connection with example embodiments, documents could be the subject of a touch event initiating an example embodiment. Characteristics such as frequency (or infrequency) of access, author, most recently opened content, content associated with a particular location, task, application or person, etc., may form the basis for relevancy determinations. File representations of relevant documents to a reference document may be zoomed in based on their relevance or may be presented in a collage as described above.
Messages and/or social activity may also be treated in a similar fashion. For example, relevant messages may be zoomed in or presented in a collage. The determination of relevance may be based on whether messages have been read, message sender, message content, message type, or any of numerous other criteria.
In some embodiments, there may be different sources for relevance content and the content may be shown in different phases. For example, if a pinch gesture is received in association with a musical content item such as song A, an example embodiment may first show relevant items to song A that are located in user's device and then, in a next phase, show songs of the user that are located in a cloud library (e.g., not in user device). In yet a further phase, if the user continues making pinch gestures, an example embodiment may reveal songs from the user's friends that are relevant to song A. In still another later phase, an example embodiment may reveal relevant images that are found from a common music library, etc. In other words, some example embodiments may be configured to utilize different sources of relevant data based on how much pinching the user does for a particular object.
Accordingly, some example embodiments of the present invention may provide ways to present relevant content items to a particular reference item selected at a touch screen display. The reference item may be selected by any particular touch event that may be associated with selection of a content item with the intent of identifying content that is relevant to the selected content item. In some cases, the touch event may be a pinch event such as a pinch out event that may identify an intent to zoom out on a content item or select it for presentation of corresponding other relevant content.
Accordingly, blocks of the flowchart support combinations of means for performing the specified functions and combinations of operations for performing the specified functions. It will also be understood that one or more blocks of the flowchart, and combinations of blocks in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
In this regard, a method according to one embodiment of the invention, as shown in
In some embodiments, certain ones of the operations above may be modified or further amplified as described below. Moreover, in some embodiments additional optional operations may also be included. It should be appreciated that each of the modifications, optional additions or amplifications below may be included with the operations above either alone or in combination with any others among the features described herein. In some embodiments, causing provision of the set of relevant content items according to the selected presentation paradigm may include causing presentation of a zoomed in view of the relevant content items. Irrelevant content may be zoomed out and/or eliminated depending upon a degree of the determined irrelevance. In some embodiments, causing provision of the set of relevant content items according to the selected presentation paradigm may include causing presentation of a zoomed in view of the relevant content items with an amount of zooming for each respective content item displayed being determined based on the relevancy information. In an example embodiment, causing provision of the set of relevant content items according to the selected presentation paradigm may include presenting the set of relevant content items as a collage of selectable items positioned proximate to the reference content item. In some cases, receiving the indication of the touch event may include receiving a pinch event in association with the reference content item. In an example embodiment, determining context information may include determining a characteristic of the reference content item that correlates to a corresponding characteristic associated with a current disposition of a user of the touch screen display. In some examples, determining relevancy information may include determining a degree to which a content item is relevant to the characteristic.
In an example embodiment, an apparatus for performing the method of
An example of an apparatus according to an example embodiment may include at least one processor and at least one memory including computer program code. The at least one memory and the computer program code may be configured to, with the at least one processor, cause the apparatus to perform the operations 500-530 (with or without the modifications and amplifications described above in any combination).
An example of a computer program product according to an example embodiment may include at least one computer-readable storage medium having computer-executable program code portions stored therein. The computer-executable program code portions may include program code instructions for performing operation 500-530 (with or without the modifications and amplifications described above in any combination).
In some cases, the operations (500-530) described above, along with any of the modifications may be implemented in a method that involves facilitating access to at least one interface to allow access to at least one service via at least one network. In such cases, the at least one service may be said to perform at least operations 500 to 530.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe some example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.