There are a number of services or computing platforms that have proliferated recently. For example, social networks, videos viewing services, email services or document services based in the cloud or accessible via the Internet have all become popular. While many users may join such services, they have difficulty using many of the features offered by such systems and accessing the information provided by such systems.
Interfaces for providing information often provide the information in multiple windows and the user must switch between different windows to access different information. This is a feature in existing applications including social networking where many types of different information are presented. Having to switch between different windows may make it difficult for the user to track their progression through content while exploring new content and then returning to the point at which they began their exploration. In some instances, the users may not bother exploring new content because of the impediments in the user interface.
According to one innovative aspect of the subject matter in this disclosure, a system including a processor and a memory storing instructions that, when executed, cause the system to: receive a stream of content including a plurality of content items; retrieve a plurality of related content items; identify a topic for at least one of the plurality of the related content items; rank the topics by relevance to the user and one of the plurality of items; associate the topic to the content item in the stream of content where the topic is ranked as being relevant to the content item; generate a marker for the topic; generate an interface including the marker associated with the content item in the stream of content; and provide the interface for display.
In general, another innovative aspect of the subject matter described in this disclosure may be embodied in methods that include: receiving a stream of content including a plurality of content items; retrieving a plurality of related content items; identifying a topic for at least one of the plurality of the related content items; ranking the topics by relevance to the user and one of the plurality of items; associating the topic to the content item in the stream of content where the topic is ranked as being relevant to the content item; generating a marker for the topic; generating an interface including the marker associated with the content item in the stream of content; and providing the interface for display. receiving a stream of content including a plurality of content items; retrieving a plurality of related content items; identifying a topic for at least one of the plurality of the related content items; ranking the topics by relevance to the user and one of the plurality of items; associating the topic to the content item in the stream of content where the topic is ranked as being relevant to the content item; generating a marker for the topic; generating an interface including the marker associated with the content item in the stream of content; and providing the interface for display.
Other implementations of one or more of these aspects include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.
These and other implementations may each optionally include one or more of the following features. For instance, the operations may further include updating the interface to the show the topics associated with the marker in response to input of cursor movement proximate the marker, or receiving input selecting a topic; generating a tile including the related content item corresponding to the topic; and providing the tile for display in situ in place of the content item in the stream of content. For instance, the features may further include each of the content items is presented as a tile in a stream of content and the marker is presented as a hash tag on the tile representing the associated item of content; there are a plurality of markers generated for the topic, and a predetermined number of markers are displayed with the content item in the stream of content; there are less than a predefined percentage of content items that have markers for topics associate with the content items; the plurality of related content items are algorithmically surfaced from a social network content source to retrieve high quality topics per content item; and a vector and a direction of input are used to update the generated interface to show in situ with the stream of content, control or status information.
These implementations are particularly advantageous in a number of respects. For instance, the technology described herein modifies the stream of content to include markers or indicators that can be used to discover additional related content. This is advantageous because it unobtrusively notifies the user that additional related content is discoverable. Additionally, if the user decides to select one of the indicators, the related content is presented in situ in the stream of content in place of the original content item. This is particularly advantageous because the user does not the need to divert his or her attention from the stream of content to view the related content. It is presented in situ and in context such that the user immediately knows the route traversed to view the related content. It should be understood, however, that this list of features and advantages is not all-inclusive and many additional features and advantages are contemplated and fall within the scope of the present disclosure. Moreover, it should be understood that the language used in the present disclosure has been principally selected for readability and instructional purposes, and not to limit the scope of the subject matter disclosed herein.
The present disclosure is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.
The present disclosure relates to a system and methods for presenting related content in situ in a stream of content. The presentation of related content to the user is adapted to the context of the user, and is done in a way that allows the user to easily identify and recognize his or her point of origin before exploring and reviewing the related content. While the present disclosure is described below in the context of generating and presenting related content in situ in a stream of content provided by a social network, it should be understood that the principles of the present disclosure are applicable to other areas. For example, the present disclosure may be applied to presenting related content in a broader system that includes email, video sharing, social networking, calendaring, mapping, music sharing, newsfeeds, online documents, spreadsheets, presentations, storage, etc.
The client devices 115a-115n in
In some implementations, the social network server 101 is coupled to the network 105 via signal line 104. The social network server 101 also includes a social network software/application 109. Although only one social network server 101 is shown, it should be recognized that multiple servers may be present. A social network may be any type of social structure where the users are connected by a common feature. The common feature includes relationships/connections, e.g., friendship, family, work, an interest, etc. The common features are provided by one or more social networking systems, for example, those included in the system 100, including explicitly-defined relationships and relationships implied by social connections with other online users, where the relationships form a social graph. In some examples, the social graph can reflect a mapping of these users and how they are related. Furthermore, it should be understood that the social network server 101 and the social network software/application 109 are representative of one social network and that there may be multiple social networks coupled to the network 105, each having its own server, application and social graph. For example, a first social network may be more directed to business networking, a second may be more directed to or centered on academics, a third may be more directed to local business, a fourth may be directed to dating and others of general interest or a specific focus.
While shown as operational on the social network server 101 in
The network 105 may be a conventional type, wired or wireless, and may have any number of configurations, for example, a star configuration, token ring configuration or other configurations. Furthermore, the network 105 may include a local area network (LAN), a wide area network (WAN) (e.g., the Internet), and/or any other interconnected data path across which multiple devices may communicate. In some implementations, the network 105 may be a peer-to-peer network. The network 105 may also be coupled to or include portions of a telecommunications network for sending data in a variety of different communication protocols. In some implementations, the network 105 includes Bluetooth communication networks or a cellular communications network for sending and receiving data, e.g., via short messaging service (SMS), multimedia messaging service (MMS), hypertext transfer protocol (HTTP), direct data connection, WAP, email, etc.
The social network server 101 is coupled to the network 105 via signal line 104 for communication and cooperation with the other components of the system 100. The social network server 101 interacts with the third party server 107 that is coupled to the network 105 via signal line 106, the micro blogging server 121 that is coupled to the network 105 via signal line 122, the email server 123 that is coupled to the network 105 via signal line 124, the Short Message Service (SMS)/Multimedia Messaging Service (MMS) server 129 that is coupled to the network 105 via signal line 130, the instant messaging (IM) server 131 that is coupled to the network 105 via signal line 132, the search server 135 that is coupled to the network 105 via signal line 136, the endorsement server 127 that is coupled to the network 105 via signal line 128 and/or the advertisement server 139 that is coupled to the network 105 via signal line 140.
In some implementations, the social network server 101 receives and sends data and social information provided by the other systems 107, 121, 123, 127, 129, 131, 135 and 139 in a social network. For example, the social network server 101 receives and sends any social information or events performed on any web pages and/or applications hosted by the other systems 101, 107, 121, 123, 129, 131, 135 and 139. The web pages and/or applications include a user interface allowing a user to comment or endorse a product, a video, a search result, a widget, a post, a comment, a photo, an article, etc., shown on the web pages and/or applications.
In some implementations, the social network server 101, the third party server 107, the micro blogging server 121, the email server 123, the endorsement server 127, the SMS/MMS server 129, the IM server 131, the search server 135 and the advertisement server 139 are hardware servers including a processor, a memory, and network communication capabilities. The client devices 115 can be portable computing devices. It should be understood that these systems 101, 107, 115, 121, 123, 127, 129, 131, 135 and 139 could be any computing device, for example, a laptop computer, a desktop computer, a tablet computer, a mobile telephone, a personal digital assistant (PDA), a mobile email device, a portable game player, a portable music player, a television with one or more processors embedded therein or coupled thereto or any other electronic device capable of accessing a network. As will be described below, it should be understood that the present technologies can operate on different models other than a client-server architecture. For example, the client devices 115 may include the related content module 103 and include different services.
The network interface module 202 is coupled to the network 105 by signal line 104. The network interface module 202 is also coupled to the bus 220. The network interface module 202 includes ports for wired connectivity including but not limited to USB, SD, or CAT-5, etc. The network interface module 202 links the processor 204 to the network 105 that may in turn be coupled to other processing systems. The network interface module 202 provides other conventional connections to the network 105 using standard network protocols, e.g., TCP/IP, HTTP, HTTPS and SMTP. In some implementations, the network interface module 202 includes a transceiver for sending and receiving signals using WiFi, Bluetooth® or cellular communications for wireless communication.
The processor 204 may include an arithmetic logic unit, a microprocessor, a general purpose controller or some other processor array to perform computations and provide electronic display signals to a display device. The processor 204 is coupled to the bus 220 for communication with the other components. Processor 204 processes data signals and may include various computing architectures including a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture implementing a combination of instruction sets. Although only a single processor is shown in
The memory 206 stores instructions and/or data that may be executed by the processor 204. In the illustrated implementation, the memory 206 stores the related content module 103 and the social network application 109 having a stream content module 222. The memory 206 may also store content sources 224 or have access to content sources stored on nonvolatile media (not shown). The related content module 103 may cooperate with the social network application 109 to generate and present the related content in situ with a stream of content provided by the social network application 109. The operation of the related content module 103 is described in more detail below with reference to
The social network application 109 is shown as including the stream content module 222 and content sources 224. Based upon the user's interests, social graph, interactions and other factors, the social network application 109, in particular the stream content module 222, may generate a stream of content tailored to the interests of the user. As will be described below, the related content module 103 generates or retrieves related content, associates the related content with the content produced by the social network application, and presents the related content in situ near existing content in the stream of content. The content sources 224 may be stored in memory 206 or be in nonvolatile storage (not shown or storage 208) accessible by processor 204. The memory 206 is coupled to the bus 220 for communication with the other components. The instructions and/or data may include code for performing any and/or all of the techniques described herein. The memory 206 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory or some other memory device.
The storage 208 may be a non-transitory memory that stores data. For example, the storage 208 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory or some other memory device. In some implementations, the storage 208 also includes a non-volatile memory or similar permanent storage device and media, for example, a hard disk drive, a floppy disk drive, a compact disc read only memory (CD-ROM) device, a digital versatile disc read only memory (DVD-ROM) device, a digital versatile disc random access memories (DVD-RAM) device, a digital versatile disc rewritable (DVD-RW) device, a flash memory device, or some other non-volatile storage device. The storage 208 may store content sources 224 in some implementations, and may be coupled for communication with the processor 204 and the social network application 109.
In some implementations, the social graph 210 may be a non-transitory memory that stores the social graph. In some examples, the social graph 210 can reflect a mapping of these users and how they are related. In some implementations, a social graph may be information that represents the relationships between the users in a social network. For example, users can be friends, acquaintances, have business relationships, one user can follow another user, one user can subscribe to another user, etc.
Software communication mechanism 220 may be an object bus, direct socket communication (e.g., TCP/IP sockets) among software modules, remote procedure calls, UDP broadcasts and receipts, HTTP connections, function or procedure calls, etc. Further, any or all of the communication could be secure (SSH, HTTPS, etc). The software communication mechanism 220 can be implemented on any underlying hardware, for example, a network, the Internet, a bus, a combination thereof, etc.
As shown in
The retrieval module 302 can be software or routines for receiving the stream of content and retrieving related content. The social network application 109 includes a variety of content sources (see 224 of
In some embodiments, the functionality described below for the retrieval module 30 to the related topic identification module 304 and the meta-tag generation module 306 may be performed by the social network application 109 as content is generated and stored in the content sources 224. For example, as content items, e.g. posts, are submitted to the social network application and stored in the content sources 224, they may be tagged and indexed based on topic to which they relate. In some instances, the posts are tagged by their author and may be renamed by the social network application 109 or the related content module 103. This would allow queries of the content sources 224 to retrieve post based on popularity, social network, and topic.
The retrieval module 302 is also coupled to retrieve related content items from the stream content sources 224. The related content items are content items that are related to the user, the social graph of the user, or the content items in the stream of content. In some implementations, the related content items may be promoted content or advertisements. The related content items have a relationship or are “related” to the content items in the stream content. In some implementations, the retrieval module 302 surfaces high-quality topics related to the content items in the stream of content. The retrieval module 302 is coupled to the stream content sources 224 to retrieve these related content items from the stream content sources 224. In some implementations, the retrieval module 302 queries or fetches the stream content sources 224 for the related content items and topics. In some implementations, the retrieval module 302 processes the content items in the stream of content and produces topics from that processing. The retrieval module 302 can then use those topics to query a predetermined number of related content items for each topic. In some implementations, the stream content sources, has already sorted and categorized the related content items and rank them within categorization. In some implementations, the retrieval module 302 receives the related content items and topics from processes operating on the stream of content sources 224. For example, stream content sources 224 send the data to the retrieval module 302 at predetermined intervals. The retrieval module 302 is also coupled to related topic identification module 304 to provide the stream of content (content items) and the related content (related content items).
The related topic identification module 304 can be software or routines for identifying topic associated with the related content and then ranking the topics by relevance to the user and content items in the stream of content. The related topic identification module 304 provides a ranked list of topics for content items in a stream of content. In some implementations, not every content item in the stream of content will have associated topics. The related topic identification module 304 may also apply a threshold to the topic rankings such that only topics that satisfy the threshold or are of a certain quality are presented as related content along with the stream of content. This determination may be made with the related topic identification module 304 or with the metadata tag generation module 306 described below. For example, the number of content items in the stream of content having related content may be controlled using a threshold such that a predetermined percentage of content items in the stream of content will have related content. The related topic identification module 304 is communicatively coupled to the retrieval module 302 to receive related content items. In some implementations, the related contents items have one or more associated subject matter tags. This information along with the importance of particular topics to the user, the relationship of the author or creator to the user and other factors, may be used to rank the topics for relevance. In some implementations, the ranking is done on a content fly content item basis. The related topic identification module 304 is coupled to receive the related content items indirectly from the retrieval module 302 and the stream content module 222 or directly from the stream content sources 224. The related content items may be posts, photos, videos, endorsements, etc. that the social network application 109 determined are of interest to the user. The related topic identification module 304 receives these two types of information and blends them into a single list ranked by interest to the user. The global popularity and user models may also be used in ranking the related content. In some implementations, the related topic identification module 304 adjusts the ranking of topics by their relationship to content in the stream. In some implementations, the related topic identification module 304 uses information from the related content storage 312 to modify the rank of a topic. For example, to maintain diversity and the engagement of the user with the related content, the input processing module 310 may store information about what related content that the user has reviewed or engaged with and the level or extent of engagement; and provide different content, or provide more detailed information on topics of interest to the user. The related topic identification module 304 is coupled to the metadata tag generation module 306 to provide the ranked list of topics to the metadata tag generation module 306.
The metadata tag generation module 306 can be software or routines for selecting topics that will be provided for display and generating markers, indicators, metadata tags and other interfaces for those topics. The metadata tag generation module 306 is communicatively coupled to the related topic identification module 304 to receive a ranked list of topics and associated content items. In some implementations, the metadata tag generation module 306 identifies a predefined number of the ranked list of topics for display. For example, the metadata tag generation module 306 may provide one to three topics for each content item. In some implementations, this identification of a predetermined number of topics is determined by the related topic identification module 304. As noted above, the metadata tag generation module 306 may also control the number of content items a stream of content of content that are permitted to have associated related content. The metadata tag generation module 306 may also generate markers, indicators, metadata tags, cards, card decks, tombstones, and other interfaces for presenting related information in-line in the stream of content. Examples of the information generated by the metadata tag generation module 306 and inserted into the stream of content will be described in more detail below with reference to
The presentation module 308 can be software or routines for providing the markers, indicators, metadata tags, and other interfaces for display. In some implementations, the presentation module 308 sends the content items (e.g., the stream of content), the related content items, the markers, indicators, metadata tags, and other interfaces for to a client device 115 via bus 220 and network 105. The presentation module 308 is coupled to the related topic identification module 304, the metadata tag generation module 306 and the related content storage 312 via bus 220 to receive the content items, the related content items, the markers, indicators, metadata tags, and other interfaces. The presentation module 308 generates the user interfaces including the stream of content and the related content and provides them for display. In some implementations, the presentation module 308 also maintains context of the user interface, and updates the user interface in response to signals received from the user. The presentation module 308 is coupled to receive control signals from the input processing module 310 to control display of user interfaces, modifications of user interfaces and other user interaction. The presentation module 308 is coupled to the client device 115 to provide the stream of content, the related content and the user interfaces for display.
The input processing module 310 can be software or routines for receiving user input and translating the user input into control signals that are sent to the presentation module 308 for manipulating and controlling the user faces. For example, the input processing module 310 translates user input into navigation control signals for presenting and discovery of related content in situ. The possible input signals and controls will become apparent with reference to
The related content storage 312 may be a data store for storing information about a user's preference or past interaction with related content. For example, the related content storage 312 may store information about whether the user is interested in having related content mixed in with the stream content. In some implementations, the related content storage 312 also stores when related content was provided to the user in the past, and the topics on related content that were and were not reviewed by the user. The information about past related content can also be used by the related topic identification module 304 in other ways to prioritize and rank topics. The related content storage 312 is coupled to provide this information to the ranking and scoring module 304. The related content storage 312 may also be a temporary storage for storing related content items so that they can be provided by the presentation module 308. The related content source 312 is coupled to the retrieval module 302 to receive related content items. The related content storage is also accessible by the metadata tag generation module 306 and the presentation module 3084 generation and presentation of the user interfaces.
Referring now to
Referring now to
Referring now to
The related content module 103 advantageously adds markers or indicator 732, 734 of related content to those tiles 706, 710 that have related content. It should be noted that each of the tiles 704-722 represents a content item. In this example, related content module 103 adds a visual indication in the form of a marker or indicator near the side of the tiles 706, 710 having related content. For example tile D 710 has a single related topic and thus has a single marker in the form of #. Similarly, tile B 706 has three related topics and thus has three markers near the upper right corner. In some implementations, there is a maximum number of topics, for example three, that make may be presented for any tile (content item). In some implementations, there is also a maximum number (e.g., 30%) of tiles that may have related content. By having a maximum number of tiles that may have related content ensures that the related content has a high-quality and is perceived by the user as something worth investigating and discovering. It should be understood that the example formats of the markers for related content are merely examples, and any mechanism that provides a visual indication that there is associated related content could be used. It should also be understood that the markers or indicators may be of different colors, graphics, shapes, icons etc. In some embodiments, different colors may be used for the markers to indicated different content such as original, video, images, re-shares, etc. The markers 732, 734 are advantageous because they unobtrusively indicate within the stream of content to the user that there is related content. The markers 732, 734 are positioned within the stream content and thus easily accessible to the user and in an area that is already the focus of the user's attention.
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
The header section includes a back button 802, a forward button 804, a title label 806 and one or more other topic buttons or links 808. The back tile 828 represents a single card in a deck of cards. Each back card of the deck of cards presents a related content item.
The first content section includes an image 810 of the user, context information 812 and a message 814. In this example, the first section includes a basic post with an image 810 of the person posting, the poster's name and information about when the post was made 812 and the text 814 of the post itself. It should be understood that in some implementations this portion of the card 828 may be omitted or only the text section may be omitted if the second content section 816 is populated.
The second content section 816 provides an area for presenting or displaying an image or video. The second content section 816 may also include other functional buttons to interact with the video or image. In some implementations, this portion of the card 828 may be omitted if there is no video or image content.
The final section of the card 828 is the action section. The action section includes a series of buttons 818, 820 and 822 for taking action relative to this content item. For example, the action section may include an endorsement button 818, a sharing button 820 and box 822 for adding a comment and posting the comment. The action section may also include an indication 824 of relative position of the card 828 to other cards (not shown) representing related content in a deck of cards.
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Systems and methods for presenting related content in situ in a stream of content have been described. While the present disclosure is described in the context of a social network, it should be understood that the terms “products” and “services” are used interchangeably throughout this specification and are used herein to encompass their plain and ordinary meaning including, but not limited to any online service, online product, online software that provides online endorsement services to users.
In the above description, for purposes of explanation, numerous specific details were set forth. It will be apparent, however, that the disclosed technologies can be practiced without any given subset of these specific details. In other instances, structures and devices are shown in block diagram form. For example, the disclosed technologies are described in some implementations above with reference to user interfaces and particular hardware. Moreover, the technologies disclosed above primarily in the context of on line services; however, the disclosed technologies apply to other data sources and other data types (e.g., collections of other resources for example images, audio, web pages).
Reference in the specification to “one implementation” or “an implementation” means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation of the disclosed technologies. The appearances of the phrase “in one implementation” in various places in the specification are not necessarily all referring to the same implementation.
Some portions of the detailed descriptions above were presented in terms of processes and symbolic representations of operations on data bits within a computer memory. A process can generally be considered a self-consistent sequence of steps leading to a result. The steps may involve physical manipulations of physical quantities. These quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. These signals may be referred to as being in the form of bits, values, elements, symbols, characters, terms, numbers or the like.
These and similar terms can be associated with the appropriate physical quantities and can be considered labels applied to these quantities. Unless specifically stated otherwise as apparent from the prior discussion, it is appreciated that throughout the description, discussions utilizing terms for example “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, may refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The disclosed technologies may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, for example, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with non-volatile memory or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The disclosed technologies can take the form of an entirely hardware implementation, an entirely software implementation or an implementation containing both hardware and software elements. In some implementations, the technology is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the disclosed technologies can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
A computing system or data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems and Ethernet cards are just a few of the currently available types of network adapters.
Finally, the processes and displays presented herein may not be inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the disclosed technologies were not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the technologies as described herein.
The foregoing description of the implementations of the present techniques and technologies has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the present techniques and technologies to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the present techniques and technologies be limited not by this detailed description. The present techniques and technologies may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the present techniques and technologies or its features may have different names, divisions and/or formats. Furthermore, the modules, routines, features, attributes, methodologies and other aspects of the present technology can be implemented as software, hardware, firmware or any combination of the three. Also, wherever a component, an example of which is a module, is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future in computer programming. Additionally, the present techniques and technologies are in no way limited to implementation in any specific programming language, or for any specific operating system or environment. Accordingly, the disclosure of the present techniques and technologies is intended to be illustrative, but not limiting.
Number | Name | Date | Kind |
---|---|---|---|
8694607 | Darnell et al. | Apr 2014 | B2 |
20030208482 | Kim et al. | Nov 2003 | A1 |
20060248063 | Gordon | Nov 2006 | A1 |
20070150457 | Goldman et al. | Jun 2007 | A1 |
20100035682 | Gentile et al. | Feb 2010 | A1 |
20120016901 | Agarwal et al. | Jan 2012 | A1 |
20140164938 | Petterson et al. | Jun 2014 | A1 |
20140301464 | Wu et al. | Oct 2014 | A1 |
Number | Date | Country |
---|---|---|
2004095314 | Nov 2004 | WO |
Entry |
---|
International Search Report and Written Opinion, PCT/US2014/035708 mailed Sep. 2, 2014, 12 pages. |
Turveen et al., Constructing, Organizing, and Visualizing Collections of Topically Related Web Resources, ACM Transactions on Computer-Human Interaction, vol. 6, No. 1, Mar. 1999, pp. 67-94. |
Number | Date | Country | |
---|---|---|---|
20140344288 A1 | Nov 2014 | US |