A system may include one or more databases to store comments relating to documents, the comments originating from first and second sources, where the comments from the first source include comments received from users via commenting functionality associated with browsers installed on client devices, and the comments from the second source include comments received from users independent of the commenting functionality associated with the browsers installed on the client devices. The system may also include one or more server devices to receive a request for comments relating to a particular document, search at least one of the one or more databases to identify comments relating to the particular document, and provide the identified comments for presentation in connection with the particular document.
|
20. A system, comprising:
one or more memory devices including one or more data structures to store comments relating to documents,
the comments including first comments originating from a first source and second comments originating from a second source,
the first comments including comments received from users via a commenting functionality associated with browsers installed on client devices of the users, and
the second comments including comments obtained independent of the commenting functionality; and
one or more server devices, including one or more processors, to:
receive a request for comments relating to a particular document,
the particular document originating from a third source that is different from the first source and the second source, and
information regarding the particular document not being stored in the one or more data structures,
search at least one of the one or more data structures to identify comments relating to the particular document,
generate a score for each comment of the identified comments,
the score for each comment, of the identified comments, being generated based on a combination of at least three of:
user feedback with regard to the comment,
a rank of an author of the comment,
a date or time at which the comment was created or modified,
a measure of relevance of one of the one or more data structures that stores the comment,
a language used in the comment, or
a rank of a document that includes the comment,
determine whether to provide each comment of the identified comments based on the score generated for the comment,
determine a group of the identified comments based on determining whether to provide each comment of the identified comments, and
provide the group of the identified comments for presentation in connection with the particular document.
15. A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions which, when executed by one or more processors, cause the one or more processors to:
store, in a first data structure, comments relating to documents,
the comments in the first data structure originating from a first source;
store, in a second data structure, comments relating to documents,
the comments in the second data structure originating from a second source,
the first source being different from the second source;
receive a request for comments relating to a particular document,
the particular document originating from a third source that is different than the first source and the second source, and
information regarding the particular document not being stored in the first data structure or the second data structure;
search at least one of the first data structure or the second data structure to identify comments relating to the particular document;
generate a score for each comment, of the identified comments, to obtain generated scores,
the score for each comment, of the identified comments, being generated based on a combination of at least three of:
user feedback with regard to the comment,
a rank of an author of the comment,
a date or time at which the comment was created or modified,
a measure of relevance of one of the first data structure or the second data structure that stores the comment,
a language used in the comment, or
a rank of a document that includes the comment;
determine a group of the identified comments based on the generated scores;
format the group of the identified comments to correspond to a particular format; and
provide, to a client device, the group of the identified comments for presentation in connection with the particular document,
the group of the identified comments being provided in the particular format.
1. A method performed by one or more server devices, the method comprising:
providing, using a processor of the one or more server devices, a plurality of data structures, associated with the one or more server devices, that store a plurality of comments,
the plurality of comments including comments of different types,
a first comment, of the plurality of comments, being included in a first document of a plurality of documents, and
a second comment, of the plurality of comments, being included in a second document of the plurality of documents;
receiving, via a processor of the one or more server devices, a request for comments relating to a third document that is different from the first document and the second document;
searching, using a processor of the one or more server devices, one or more of the plurality of data structures to identify comments relating to the third document,
the identified comments including at least one of the first comment or the second comment;
generating, using a processor of the one or more server devices, a score for each comment of the identified comments,
the score for each comment, of the identified comments, being generated based on a combination of at least three of:
user feedback with regard to the comment,
a rank of an author of the comment,
a date or time at which the comment was created or modified,
a measure of relevance of a data structure, of the plurality of data structures, that stores the comment,
a language used in the comment, or
a rank of a respective document, of the plurality of documents, that includes the comment;
determining, using a processor of the one or more server devices, whether to provide each comment of the identified comments to a client device based on the score generated for each comment of the identified comments; and
providing, using a processor of the one or more server devices, one or more of the identified comments to the client device for presentation in connection with the third document based on determining whether to provide each comment of the identified comments.
2. The method of
information regarding the author of the first comment,
the date or time at which the first comment was created or modified,
a content of the first comment, or
an identifier associated with the first document.
3. The method of
comments regarding web pages,
comments contained in blog posts,
comments regarding news items,
comments with reviews of products, or
comments with reviews of businesses.
4. The method of
where the comments contained in blog posts are stored in a second one of the plurality of data structures,
where the comments regarding news items are stored in a third one of the plurality of data structures,
where the comments with reviews of products are stored in a fourth one of the plurality of data structures, and
where the comments with reviews of businesses are stored in a fifth one of the plurality of data structures.
5. The method of
performing offline processing to store, in a particular one of the plurality of data structures, at least one of:
the comments contained in blog posts,
the comments regarding news items,
the comments with reviews of products, or
the comments with reviews of businesses,
where the offline processing occurs independent of the request for comments.
6. The method of
7. The method of
where searching the one or more of the plurality of data structures includes:
identifying a particular product based on the document identifier, and
searching one of the plurality of data structures to identify the at least one of the first comment or the second comment,
the at least one of the first comment or the second comment relating to the particular product.
8. The method of
where searching the one or more of the plurality of data structures includes:
identifying a particular business based on the document identifier, and
searching one of the plurality of data structures to identify the at least one of the first comment or the second comment,
the at least one of the first comment or the second comment relating to the particular business.
9. The method of
where searching the one or more of the plurality of data structures includes:
identifying a particular news item based on the document identifier, and
searching one of the plurality of data structures to identify the at least one of the first comment or the second comment,
the at least one of the first comment or the second comment relating to the particular news item.
10. The method of
selecting, based on information included in the request for comments, a data structure of the plurality of data structures, and
searching the selected data structure for comments relating to the third document.
11. The method of
searching a subset of the plurality of data structures for comments relating to the third document,
where the subset includes at least two and fewer than all of the plurality of data structures.
12. The method of
generating the score for at least one of the identified comments based on a combination of four or more of:
the user feedback with regard to the at least one of the identified comments,
the rank of an author of the at least one of the identified comments,
the date or time at which the at least one of the identified comments was created or modified,
the measure of relevance of the data structure that stores the at least one of the identified comments,
the language used in the at least one of the identified comments, or
the rank of the respective document, of the plurality of documents, that includes the at least one of the identified comments.
13. The method of
ordering the identified comments for presentation based on the score generated for each comment of the identified comments.
14. The method of
where providing the identified comments includes providing the identified comments for presentation, within the particular browser window of the client device, concurrently with the third document.
16. The computer-readable medium of
one or more instructions to perform offline processing to store, in the second data structure, the comments originating from the second source,
where the offline processing occurs independent of receiving the request for comments, and
where the one or more instructions to search the at least one of the first data structure or the second data structure include:
one or more instructions to search the second data structure after storing the comments, originating from the second source, in the second data structure.
17. The computer-readable medium of
one or more instructions to generate the score for at least one of the identified comments based on a combination of four or more of:
the user feedback with regard to the at least one of the identified comments,
the rank of the author of the at least one of the identified comments,
the date or time at which the at least one of the identified comments was created or modified,
the measure of relevance of one of the first data structure or the second structure that stores the at least one of the identified comments,
the language used in the at least one of the identified comments, or
the rank of the document that includes the at least one of the identified comments.
18. The computer-readable medium of
one or more instructions to order the identified comments based on the generated scores.
19. The computer-readable medium of
where the comments from the second source include comments received from users independent of the commenting functionality.
21. The system of
generate the score for at least one of the identified comments based on a combination of four or more of:
the user feedback with regard to the at least one of the identified comments,
the rank of the author of the at least one of the identified comments,
the date or time at which the at least one of the identified comments was created or modified,
the measure of relevance of one of the one or more data structures that stores the at least one of the identified comments,
the language used in the at least one of the identified comments, or
the rank of the document that includes the at least one of the identified comments.
|
Many techniques are available to users today to find information on the world wide web (“web”). For example, users often use web browsers and/or search engines to find information of interest.
A user may enter a search query into a search box of a browser and the browser may submit the search query to a search engine. The search engine may identify documents that match the search query, rank the documents based on various factors, and return a ranked list of documents to the user. The user may select a document from the list and request the document. A browser may retrieve the requested document and display the document to the user in a browser window.
However, the amount of information that is available to users on the web can be overwhelming. It is a difficult task to present users with information in which the users are interested.
According to one implementation, a method, performed by one or more server devices, may include providing a plurality of databases, associated with the one or more server devices, that store comments of different types, where each of the databases may store a respective one or more of the different types of comments, and where each of the comments may relate to a document in a group of documents. The method may further include receiving, via a processor of the one or more server devices and from a client device, a request for comments relating to a particular document; searching, using a processor of the one or more server devices, one or more of the databases to identify comments relating to the particular document; and providing, using a processor of the one or more server devices, the identified comments to the client device for presentation in connection with the particular document.
According to another implementation, a system may include a first database to store comments relating to documents, where the comments in the first database may originate from a first source; a second database to store comments relating to documents, where the comments in the second database may originate from a second source, where the first source is different from the second source; and one or more server devices. The one or more server devices may include means for receiving, from a client device, a request for comments relating to a particular document, means for searching at least one of the first database or the second database to identify comments relating to the particular document, and means for providing, to the client device, the identified comments for presentation in connection with the particular document.
According to a further implementation, a system may include a first database to store comments relating to documents; a second database to store blog posts; and one or more devices to: analyze a group of the blog posts to identify the documents to which the blog posts relate, store the group of blog posts, as comments, in the first database in association with the documents to which the blog posts relate, receive, from a client device, a request for comments relating to a particular document, search the first database to identify comments relating to the particular document, and present, to the client device, the identified comments for presentation in connection with the particular document.
According to another implementation, a system may include one or more databases to store comments relating to documents. The comments may originate from first and second sources, where the comments from the first source may include comments received from users via commenting functionality associated with browsers installed on client devices, and the comments from the second source may include comments obtained independent of the commenting functionality associated with the browsers installed on the client devices. The system may also include one or more server devices to receive a request for comments relating to a particular document, search at least one of the one or more databases to identify comments relating to the particular document, and provide the identified comments for presentation in connection with the particular document.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments described herein and, together with the description, explain these embodiments. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
For some documents, users might like to see comments regarding these documents. A “comment,” as used herein, may include text (e.g., styled or markup text, such as HyperText Markup Language (HTML)), audio data, video data, and/or image data that provides an opinion of, or otherwise remarks upon, the contents of a document or a portion of a document. One example of a comment may include a document whose sole purpose is to contain the opinion/remark. Another example of a comment may include a blog post. Yet another example of a comment may include a web page or a news article that remarks upon an item (e.g., a product, a service, a company, a web site, a person, a geographic location, or something else that can be remarked upon). A further example of a comment may include a comment that remarks upon another comment.
A “document,” as the term is used herein, is to be broadly interpreted to include any machine-readable and machine-storable work product. A document may include, for example, an e-mail, a web site, a file, a combination of files, one or more files with embedded links to other files, a news group posting, a news article, a blog, a business listing, an electronic version of printed text, a web advertisement, etc. In the context of the Internet, a common document is a web page. Documents often include textual information and may include embedded information (such as meta information, images, hyperlinks, etc.) and/or embedded instructions (such as Javascript, etc.). A “link,” as the term is used herein, is to be broadly interpreted to include any reference to/from a document from/to another document or another part of the same document.
Assume that a client requests access to a web page about a particular topic. The client may send a request for that web page to a web page server that hosts the web page and a request for comments, regarding that web page, to the comments server. In response to the request for the web page, the web page server may provide the web page to the client. In response to the request for comments regarding the web page, the comments server may identify comments relating to that web page and provide the comments to the client. The client may process the web page and comments and, for example, present the web page (WP) and comments (C) together on a display, as shown in
In the description to follow, certain types of comments will be described (e.g., web page comments, blog posts, news comments, product reviews, and business reviews). The description is not limited to these types of comments and may equally apply to other types of comments, such as movie reviews, food or recipe reviews, etc.
Clients 210 may include client entities. An entity may be defined as a device, such as a personal computer, a wireless telephone, a personal digital assistant (PDA), a lap top, or another type of computation or communication device, a thread or process running on one of these devices, and/or an object executed by one of these devices. In one implementation, a client 210 may include a browser application that permits documents to be searched and/or accessed. Client 210 may also include software, such as a plug-in, an applet, a dynamic link library (DLL), or another executable object or process, that may operate in conjunction with (or be integrated into) the browser to obtain and display comments. Client 210 may obtain the software from server 220 or from a third party, such as a third party server, disk, tape, network, CD-ROM, etc. Alternatively, the software may be pre-installed on client 210. For the description to follow, the software will be described as integrated into the browser.
In one implementation, as described herein, the browser may provide a commenting function. The commenting function may permit a user to generate a comment regarding a document, permit the user to view a comment that was previously generated by the user or by other users, and/or permit the user to remove a comment from presentation via the browser (e.g., hide the comment from view). The commenting function may be turned on and off by the user.
Servers 220-240 may include server entities that gather, process, search, and/or maintain documents in a manner described herein. In one implementation, server 220 may gather, process, and/or maintain comments that are associated with particular documents. Servers 230 and 240 may store or maintain comments and/or documents.
While servers 220-240 are shown as separate entities, it may be possible for one or more of servers 220-240 to perform one or more of the functions of another one or more of servers 220-240. For example, it may be possible that two or more of servers 220-240 are implemented as a single server. It may also be possible for a single one of servers 220-240 to be implemented as two or more separate (and possibly distributed) devices.
Network 250 may include any type of network, such as a local area network (LAN), a wide area network (WAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN) or a cellular network), an intranet, the Internet, or a combination of networks. Clients 210 and servers 220-240 may connect to network 250 via wired and/or wireless connections.
Bus 310 may include a path that permits communication among the components of the client/server entity. Processor 320 may include a processor, a microprocessor, or processing logic (e.g., an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA)) that may interpret and execute instructions. Main memory 330 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 320. ROM 340 may include a ROM device or another type of static storage device that may store static information and instructions for use by processor 320. Storage device 350 may include a magnetic and/or optical recording medium and its corresponding drive, or a removable form of memory, such as a flash memory.
Input device 360 may include a mechanism that permits an operator to input information to the client/server entity, such as a keyboard, a mouse, a button, a pen, a touch screen, voice recognition and/or biometric mechanisms, etc. Output device 370 may include a mechanism that outputs information to the operator, including a display, a light emitting diode (LED), a speaker, etc. Communication interface 380 may include any transceiver-like mechanism that enables the client/server entity to communicate with other devices and/or systems. For example, communication interface 380 may include mechanisms for communicating with another device or system via a network, such as network 250.
As will be described in detail below, the client/server entity may perform certain operations relating to the processing of comments. The client/server entity may perform these operations in response to processor 320 executing software instructions contained in a computer-readable medium, such as memory 330. A computer-readable medium may be defined as a logical or physical memory device. A logical memory device may include a space within a single physical memory device or spread across multiple physical memory devices.
The software instructions may be read into memory 330 from another computer-readable medium, such as storage device 350, or from another device via communication interface 380. The software instructions contained in memory 330 may cause processor 320 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
As shown in
Comments component 410 may interact with clients 210 to obtain and/or serve comments. For example, a user of a client 210 may access a particular document and generate a comment regarding all or a portion of the document. Client 210 may send the comment to comments component 410.
Comments component 410 may receive the comment provided by a client 210 in connection with the particular document. Comments component 410 may gather certain information regarding the comment, such as information regarding the author of the comment, a timestamp that indicates a date and/or time at which comment was created, the content of the comment, and/or a document identifier associated with the document, such as an address (e.g., a uniform resource locator (URL)) of the document. Comments component 410 may receive at least some of this information from client 210. Comments component 410 may store the information regarding the comment in comments database 470.
Comments component 410 may also serve a comment in connection with a document accessed by a client 210. In one implementation, comments component 410 may obtain a comment from business reviews database 420, product reviews database 430, news comments database 440, blog database 450, and/or comments database 470 and provide that comment to client 210 when client 210 accesses a document with which that comment is associated in one or more of these databases.
Front end 510 may interact with clients 210. For example, front end 510 may receive requests for comments from clients 210 and present comments to clients 210. Front end 510 may also determine to which one of processors 520-550 to send a request for comments. In other words, not all requests may be appropriate for all databases 420-450 and 470. For example, a request for comments relating to a particular business may not be appropriate for product reviews database 430 or news comments database 440. Similarly, a request for comments relating to a product may not be appropriate for business reviews database 420 or news comments database 440. In one implementation, front end 510 may include a table that identifies to which processor(s) 520-550 to send a particular request for comments. In another implementation, front end 510 may send all requests for comments to all, or a subset, of processors 520-550. Front end 510 may receive comments from one or more of processors 520-550 and format the comments for presentation to clients 210. In one implementation, front end 510 may format the comments so that the comments have the same, or approximately the same, visual format.
Business reviews processor 520 may receive requests from front end 510 and determine for which business to search for comments in business reviews database 420. In one implementation, business reviews processor 520 may maintain a mapping of document identifiers to the businesses that are referred to by the documents associated with the document identifiers. A request, received from front end 510, may include a document identifier. Based on this document identifier and the mapping, business reviews processor 520 may identify a business. Business reviews processor 520 may use information regarding this business, such as the name of the business, to conduct a search for comments in business reviews database 420. Business reviews processor 520 may provide the comments to front end 510.
Product reviews processor 530 may receive requests from front end 510 and determine for which product to search for comments in product reviews database 430. In one implementation, product reviews processor 530 may maintain a mapping of product identifiers to the products that are referred to by the documents associated with the product identifiers. A request, received from front end 510, may include a document identifier. Based on this document identifier and the mapping, product reviews processor 530 may identify a product. Product reviews processor 530 may use information regarding this product, such as the product identifier or the name of the product, to conduct a search for comments in product reviews database 430. Product reviews processor 530 may provide the comments to front end 510.
News comments processor 540 may receive requests from front end 510 and determine for which news item to search for comments in news comments database 440. In one implementation, news comments processor 540 may maintain a mapping of news items (e.g., topics, news articles, etc.) to the documents that relate to the news items. A request, received from front end 510, may include a document identifier. Based on this document identifier and the mapping, news comments processor 540 may identify a news item. News comments processor 540 may use information regarding this news item, such as topic information, author information, information regarding a news article, etc., to conduct a search for comments in news comments database 440. News comments processor 540 may provide the comments to front end 510.
Comments processor 550 may receive requests from front end 510 and determine for which document to search for comments in comments database 470. A request, received from front end 510, may include a document identifier. Based on this document identifier, comments processor 550 may search for comments for the document corresponding to the document identifier. Comments processor 550 may provide the comments to front end 510.
Returning to
Product reviews database 430 may store comments regarding products. A comment regarding a particular product, in product reviews database 430, may include, for example, a user's remark(s) and/or opinion(s) regarding the product, such as a feature of the product, a reliability of the product, a provider of the product (e.g., seller, manufacturer, etc.), or the like. The comments in product reviews database may be derived in different ways. For example, product search engines (e.g., Froogle, MySimon, ZDNet, ConsumerSearch, etc.) may accumulate and index comments regarding products in their indexes. Some companies available on the web (e.g., Epinions) accumulate comments regarding various products. Other companies available on the web (e.g., Amazon, Buy, etc.) sell products and permit their customers to submit comments regarding those products. The comments stored in product reviews database 430 may be obtained from one or more of these sources, or the web sites of one or more of these sources may be crawled to obtain the comments. In one implementation, the comments stored in product reviews database 430 may be stored in a format such that the comments are searchable by, for example, the name of a product or by an identifier associated with that product.
News comments database 440 may store comments regarding news items. A comment regarding a particular news item, in news comments database 440, may include, for example, a user's remark(s) and/or opinion(s) regarding a news topic, a news article, a provider of the news article (e.g., publisher, author, etc.), another news comment associated with the news item, an author of the other news comment, or the like. The comments in news comments database may be derived in different ways. For example, news search engines (e.g., Google News, Yahoo! News, etc.) may accumulate and index comments regarding news items in their indexes. Some news services available on the web (e.g., USAToday, The Washington Post, etc.) accumulate comments regarding various news items. The comments stored in news comments database 440 may be obtained from one or more of these sources, or the web sites of one or more of these sources may be crawled to obtain the comments. In one implementation, the comments stored in news comments database 440 may be stored in a format such that the comments are searchable by, for example, topic or by an identifier associated with a news article.
Blog database 450 may store comments contained in blog posts. A comment, in blog database 450, may include, for example, a user's remark(s) and/or opinion(s) contained within a blog. The topic of a blog post may relate to one or more of various topics, such as a web page, a product, a news item, a business, a movie, a particular food item, the contents of another blog post of the blog, an author of the blog or a blog post, or the like. The comments in blog database 450 may be derived in different ways. For example, a source of a blog site may provide the comments or the blogs site may be crawled to obtain the comments. In one implementation, the comments stored in blog database 450 may be stored in a format such that the comments are searchable by topic, author, or by an identifier associated with a document with which the comment is associated (e.g., a comment in a blog post may remark upon a particular document (e.g., web page) and may, therefore, be associated with that particular document).
Blog processor 460 may operate on the comments in blog database 450 and store the comments in comments database 470. In one implementation, blog processor 460 may operate on the contents of blog database 450 offline to identify blog posts that relate to documents and store these blog posts as comments in comments database 470. To identify blog posts that relate to documents, blog processor 460 may determine whether a particular blog post includes one or more links and analyze the links to identify the documents to which the links point. If the particular blog post includes a single link, then blog processor 460 may associate the blog post with the document pointed to by the link. If the particular blog post includes multiple links, then blog processor 460 may select one (or more) of the links and associate the blog post with the document pointed to by the selected link.
Comments database 470 may store comments regarding documents. A comment regarding a particular document, in comments database 470, may include, for example, a user's remark(s) and/or opinion(s) regarding a document, such as a topic of all or a portion of that document, an author or owner of that document, another comment regarding that document, or the like. The comments, in comments database 470, may be produced by clients 210, delivered to comments component 410, and stored in comments database 470 by comments component 410. As explained above, some of the comments, in comments database 470, may be derived from blog posts from blog database 450.
Comments database 420 may store information regarding comments. In one implementation, comments database 420 may include various fields that are separately searchable. Comments component 410 may search comments database 420 to identify comments associated with a particular author or a particular document.
Author field 610 may store information regarding the author of the comment. For example, author field 610 may store the name of the author (e.g., actual name or online name), an image of the author, a graphic associated with the author, the name of a geographic location of the author, or other information regarding the author. Timestamp field 620 may store the date and/or time that the comment was created or modified. The date/time for timestamp field 620 may be generated by client 210 at which the comment was created or modified, or may be generated by server 220 based on a date/time at which the comment or modification is received from client 210. For a comment that has multiple revisions, timestamp field 620 may store the date and/or time that one or more, or all, of the revisions occurred.
Comment content field 630 may store the content of the comment. For example, the content of a comment may include text, video, image, and/or audio data. In one implementation, comment content field 630 may store the actual content of the comment. In another implementation, comment content field 630 may store a pointer to a storage location where the actual content of the comment is stored. Document identifier field 640 may store an address (e.g., a URL), or another type of unique identifier, for the document for which the comment was created.
Rating(s) field 570 may store a rating for the comment. A rating may be based on user feedback regarding the comment. For example, users may be permitted to rate a comment (favorably or unfavorably). These ratings may be used to determine whether and/or how to present the comment in connection with a particular document. In one implementation, a single rating may be maintained for a comment. That single rating may be used to determine whether and/or how to present the comment in connection with any document with which the comment has been associated. In another implementation, a separate rating may be maintained for each document (or for a group of documents) with which the comment has been associated. In this case, the rating, associated with a particular document, may be used to determine whether to present the comment with that particular document.
Returning to
The process of
An option to provide a comment regarding the document may be presented (block 720). For example, the browser may include a user interface item (e.g., a button, a menu item, etc.) that may permit the user to turn on and turn off the commenting function provided by the browser. The user may select this user interface item to create a comment, to view a comment, and/or to remove a presented comment from view (e.g., hide the comment from view).
Comments button 820 may permit the user to turn on and off the commenting function. In one implementation, selection of comments button 820 may cause a menu 830 to be presented. Menu 830 may include a number of options including, for example, an option to create a comment 832, an option to show previously created comments 834, and an option to hide the comments 836. The user may select option 832 to generate a comment regarding the document that the user is currently accessing. The user may select option 834 to view a comment that was previously associated with the document that the user is currently accessing (e.g.,
Returning to
A user interface may be presented to the user for creating the comment (block 740). For example, in response to receiving selection of comments button 720, the browser may present the user with a user interface via which the user may create a comment regarding the document. The content of the comment may be received (block 750). For example, the user may, via the user interface, input the content of the comment and/or insert a file as the content of the comment.
Returning to
The process of
It may be determined whether the blog post includes more than one link (block 1020). For example, blog processor 460 may analyze the contents of the blog post to identify the link(s) contained in the blog post. In one exemplary implementation, blog processor 460 may analyze the code of the blog post to identify tags that signify the presence of a link.
If the blog post includes more than one link (block 1020—YES), one of the links within the blog post may be selected (block 1030). The goal in this block is to select the link associated with the document about which the blog post contains remarks. In practice, a blog post may include multiple links and some of these links may be associated with documents unrelated to the remarks within the blog post. Therefore, blog processor 460 may select one of the links corresponding to a document about which the blog post may include remarks. In one implementation, blog processor 460 may use one or more factors to select one of the links.
For example, a click through rate associated with each of the links may be used as a factor to select one of the links included in a blog post. A click through rate for a link may be defined as the number of selections (e.g., clicks) that the link received divided by the number of impressions that the link received, or may be defined, more simply, as the number of selections that the link obtained. Blog processor 460 may obtain information regarding the click through rates from several different sources that can track users' activities anonymously or with the users' express permission. For example, blog processor 460 may obtain click through rates from an aggregator that may aggregate web feeds (e.g., Google Reader), from a browser add-on toolbar that may track a user's browser activity (e.g., Google Toolbar), from a traffic monitor that may generate statistics about visitors to web sites (e.g., Google Analytics), or from another source. In one implementation, blog processor 460 may use information regarding the click through rates to select one of the links. When a user selects a link in a blog post, the user may likely select the link that points to a document that is on topic with the blog post. By using the click through rates of the links to select one of the links, blog processor 460 may select the link leading to the document with content that best matches the content of the blog post.
Alternatively, or additionally, explicit user feedback may be used as a factor to select one of the links included in a blog post. When a blog post is presented to a user in connection with presentation of a particular document, the user may be given the opportunity to provide explicit feedback on that blog post. For example, the user may indicate whether the blog post is meaningful (e.g., a positive vote) or not meaningful (e.g., a negative vote) to the user (with respect to the particular document) by selecting an appropriate voting button. This kind of feedback may be used to select one of the links of the blog post. If users indicate, via appropriate voting, that a blog post is meaningful (or not meaningful) with regard to a particular document with which the blog post is presented, this may provide evidence that the blog post contains content relevant (or not relevant) to the content of the particular document. By using explicit user feedback to select one of the links, blog processor 460 may select the link leading to the document with content that best matches the content of the blog post.
Alternatively, or additionally, the length of the address (e.g., URL) associated with each of the links may be used as a factor to select one of the links included in a blog post. Authors often include, within blog posts, links to a homepage of a company or a web site. The remarks, within a blog post containing a link to a homepage, are often not about that homepage. A homepage typically includes a “short” address (e.g., an address including not much more than a domain name). Documents with longer addresses may be more useful and more likely to be on the same topic as the topic of the blog post than documents with shorter addresses. In one implementation, the length of the address associated with a link may influence whether that link is selected. By using information regarding the length of the addresses of the links to select one of the links, blog processor 460 may select the link leading to the document with content that best matches the content of the blog post.
Alternatively, or additionally, statistics regarding the documents pointed to by the links (e.g., a measure of popularity of the documents, such as a link-based score of the documents) may be used as a factor to select one of the links included in a blog post. Some popular documents (e.g., www.google.com) are linked to by a lot of blog posts. This reduces the chances that a particular blog post actually contains remarks regarding these popular documents. A popular document may be identified as a document with a measure of popularity (e.g., a link-based score) above a popularity threshold. Thus, in one implementation, the measure of popularity of a document associated with a link may influence whether that link is selected. Unpopular documents may be more useful and more likely to be on the same topic as the topic of the blog post than popular documents. By using information regarding the measure of popularity of the documents pointed to by the links to select one of the links, blog processor 460 may select the link leading to the document with content that best matches the content of the blog post.
Alternatively, or additionally, topic information, which may include a comparison of the topics of the documents, pointed to by the links in a blog post, to the topic of the blog post, may be used as a factor to select one of the links included in the blog post. The topic information may be derived using a technique that analyzes the words in a document to determine the topic(s) associated the document, analyzes the words in the blog post to determine the topic(s) associated with the blog post, and compares the topics to determine whether there is a match. Alternatively, the topic information may be derived using another technique. Thus, in one implementation, topic information may influence whether a link is selected. By using information, regarding a comparison of the topics of the documents pointed to by the links with the topic(s) of the blog post, to select one of the links, server 220 may select the link leading to the document with content that best matches the content of the blog post.
Thus, a link included in a blog post may be selected as a function of one or more factors. These one or more factors may include any of the factors identified above, whether taken alone or in combination with one or more other factors. This function may be represented as: F(f1, f2, . . . , fN), where N≧1, and where f# refers to a factor used by the function F. An example of a function that takes into account multiple ones of the factors identified above may be represented as: F(click through rate, user feedback, address length, document popularity, topic information). An example of a function that takes into account a single one of the factors identified above may be represented as: F(click through rate). In any event, the function may be used to generate a score for a link. A link may be selected based on its score (e.g., the link with the highest score may be selected for the comment).
A threshold may be used to assist in making the link selection. For example, blog processor 460 may select the link with the highest score if the highest score exceeds the threshold. If the highest score does not exceed the threshold, blog processor 460 may select none of the links of the blog post.
Alternatively, or additionally, a threshold may be used in a different way, such as to indicate whether to process the blog post at all. For example, blog processor 460 may process the blog post (e.g., to select a link) only if the scores for at least a subset of the links (or all of the links) exceed the threshold.
It may be possible for multiple links in a blog post to have similar scores (e.g., scores within a certain number or percentage of each other). Thus, it may be beneficial to select a highest scoring link when the score of the highest scoring link is different enough from the score of the next-highest scoring link. In one implementation, it may be determined whether there is at least a particular gap between the score of the highest scoring link and the score of the next-highest scoring link. For example, blog processor 460 may select the link with the highest score if there is at least the particular gap between the highest score and the next-highest score. If there is not at least the particular gap between the highest score and the next-highest score, blog processor 460 may select none of the links of the blog post.
If the blog post includes only one link (block 1020—NO) or if the blog post includes multiple links and one of the links is selected (block 1020—YES, and block 1030), information associated with the blog post may be stored as a comment in comments database 470 in connection with the document pointed to by the link (block 1040). For example, blog processor 460 may store the blog post, or information regarding the blog post in comments database 470 in association with the document. In one simple implementation, an entry may be created (or updated), in comments database 470, that identifies both the document and the blog post.
In one implementation, as described above, blog processor 460 may store a blog post in comments database 470 so that the blog post resembles comments stored in comments database 470. In this situation, blog processor 460 may store the name of the blog containing the blog post or the name of the author of the blog post as the author of the comment (e.g., in author field 610); blog processor 460 may store the date that the blog post was posted (or modified) as the timestamp for the comment (e.g., in timestamp field 620); blog processor 460 may store the content or a subset of the content of the blog post, or a link to the blog post or the blog containing the blog post, as the content of the comment (e.g., in comment content field 630); and/or blog processor 460 may store an identifier of the document to which the blog post points as the document identifier for the comment (e.g., in document identifier field 640).
While it has been described that blog processor 460 may select one of the links in the blog post, this need not be the case. In another implementation, blog processor 460 may select more than one of the links, and may associate the blog post (containing these links) with each of the documents pointed to by a corresponding one of the selected links. This might be beneficial in situations where two or more of the links in the blog post obtain high scores and perhaps these scores are different enough from the scores of the next-highest scoring links (as described above).
The process of
An option to show comments associated with the document may be presented (block 1220). For example, the browser may include a user interface item (e.g., a button, a menu item, etc.) that may permit the user to turn on and turn off the commenting function provided by the browser. The user may select this user interface item to create a comment, to view a comment, and/or to remove a presented comment from view (e.g., hide the comment from view). In another implementation, the showing of comments regarding a document may occur automatically. For example, a comment, associated with a document, may be automatically shown when the comment has a score above a particular threshold. Exemplary techniques for scoring comments are described below. Thus, in this implementation, a comment that does not have a sufficient score may not be automatically shown.
Comments button 1320 may permit the user to turn on and off the commenting function. In one implementation, selection of comments button 1320 may cause a menu 1330 to be presented. Menu 1330 may include a number of options including, for example, an option to create a comment 1332, an option to show previously created comments 1334, and an option to hide the comments 1336. The user may select option 1332 to generate a comment regarding the document that the user is currently accessing. The user may select option 1334 to view a comment that was previously associated with the document that the user is currently accessing (e.g.,
Returning to
A comment(s) to show in connection with the document may be selected (block 1240). In one implementation, client 210 may send, to server 220, a request for comments associated with the document. For example, client 210 may send information regarding the document, such as an address of the document, to comments component 410. Comments component 410 may access one or more of databases 420-440 and/or 470 using, for example, the address of the document to retrieve the comments associated with the document.
As explained above, front end 510, for comments component 410, may determine to which one of processors 520-550 to send a request for comments. In other words, not all requests may be appropriate for all databases 420-440 and 470. Front end 510 may identify to which of processor(s) 520-550 to send the request for comments. In another implementation, front end 510 may send the request for comments to all, or a subset, of processors 520-550.
In the case of business reviews, business reviews processor 520 may receive the request from front end 510 and determine for which business to search for comments in business reviews database 420. The request, received from front end 510, may include a document identifier. Business reviews processor 520 may map the document identifier to the business (or businesses) that is referred to by the document associated with the document identifier, and perform a search of business reviews database 420 for comments associated with this business. In another implementation, an index of business reviews database 420 may be constructed that lists the comments associated with each business. The index may be constructed using existing indexing techniques. The constructed index may be used to search for one or more comments to provide in connection with the document. In yet another implementation, the index for business reviews database 420 may only include those comments having a score above a certain threshold. Exemplary techniques for scoring comments are described below. Business reviews processor 520 may provide the comments to front end 510.
In the case of product reviews, product reviews processor 530 may receive the request from front end 510 and determine for which product to search for comments in product reviews database 430. The request, received from front end 510, may include a document identifier. Product reviews processor 530 may map the document identifier to the product (or products) that is referred to by the document associated with the document identifier, and perform a search of product reviews database 430 for comments associated with this product. In another implementation, an index of product reviews database 430 may be constructed that lists the comments associated with each product. The index may be constructed using existing indexing techniques. The constructed index may be used to search for one or more comments to provide in connection with the document. In yet another implementation, the index for product reviews database 430 may only include those comments having a score above a certain threshold. Exemplary techniques for scoring comments are described below. Product reviews processor 530 may provide the comments to front end 510.
In the case of news comments, news comments processor 540 may receive the request from front end 510 and determine for which news item to search for comments in news comments database 440. The request, received from front end 510, may include a document identifier. News comments processor 540 may map the document identifier to the news item (or news items) that is referred to by the document associated with the document identifier, and perform a search of news comments database 440 for comments associated with this news item. In another implementation, an index of news comments database 440 may be constructed that lists the comments associated with each news item. The index may be constructed using existing indexing techniques. The constructed index may be used to search for one or more comments to provide in connection with the document. In yet another implementation, the index for news comments database 440 may only include those comments having a score above a certain threshold. Exemplary techniques for scoring comments are described below. News comments processor 540 may provide the comments to front end 510.
In the case of comments and/or blog posts, comments processor 550 may receive the request from front end 510 and search for comments, relating to the document, in comments database 470. The request, received from front end 510, may include a document identifier. Comments processor 550 may search comments database 470, based on the document identifier, to identify comments relating to the document associated with the document identifier. In another implementation, an index of comments database 470 may be constructed that lists the comments associated with each document. The index may be constructed using existing indexing techniques. The constructed index may be used to search for one or more comments to provide in connection with the document. In yet another implementation, the index for comments database 470 may only include those comments having a score above a certain threshold. Exemplary techniques for scoring comments are described below. Comments processor 550 may provide the comments to front end 510.
Of the comments received from database(s) 420, 430, 440, and/or 470, comments component 410 may select which comments to present and/or a manner for presenting the comments. In one implementation, comments component 410 may rank the comments in some manner. For example, comments component 410 may generate a score for each of the comments based on one or more factors associated with the comments. One factor for scoring a comment may include a rating of the comment. Explicit user feedback, in the form of a rating, may be obtained for various comments. A user may be permitted to provide a rating with regard to a comment presented in connection with a particular document. In one implementation, the rating may indicate whether the user found the comment useful (positive rating) or not useful (negative rating) in connection with the particular document. In another implementation, the rating may indicate a degree of usefulness, such as a rating from 1 to 5. Not all user ratings need to be treated equally. For example, ratings from users may be weighted in some manner based on profiles of the users and/or a history of how the users' rating behavior has been in the past (e.g., how a user's past ratings compared to other users' ratings with regard to a particular comment or a particular set of comments).
Comments component 410 may obtain the rating of a comment from rating(s) field 670 in comments database 470 (and possibly also available for comments in databases 420-440). Comments component 410 may use the rating factor to score a comment and use the score of a comment to determine whether to present that comment (e.g., present only comments with scores above a threshold) and/or a manner in which to present the comments (e.g., present comments in an order based on their scores). By using a rating to score a comment, comments in which users are interested (e.g., that users find useful) may be presented in connection with a document before or, instead of, comments in which users are not interested (e.g., that users did not find useful).
Another factor for scoring a comment may include a rank of an author of the comment. The author of a comment may be ranked based on one or more factors, such as the quantity of comments created by the author, a user feedback rating associated with the author (e.g., users might provide feedback regarding comments created by a particular author and this information may be used to rate the author), or whether the author is the user (e.g., users are typically interested in being presented with their own comments). Comments component 410 may use the author ranking factor to score a comment and use the score of the comment to determine whether to present that comment (e.g., present only comments with scores above a threshold) and/or a manner in which to present the comments (e.g., present comments in an order based on their scores). The rank of an author may reflect the quality of the comment created by that author. Thus, by using an author ranking to score a comment, comments associated with higher ranked authors may be presented over comments associated with lower ranked authors.
Yet another factor for scoring a comment may include a timestamp associated with the comment. Comments component 410 may obtain the timestamp from timestamp field 620 in comments database 470 (and possibly also available for comments in databases 420-440). Comments component 410 may use the timestamp factor to score a comment and use the score of the comment to determine whether to present that comment (e.g., present only comments with scores above a threshold) and/or a manner in which to present the comments (e.g., present comments in an order based on their scores). More recent timestamps may reflect fresh, more relevant comments, and less recent timestamps may reflect stale, less relevant comments. In the case of comments with revisions, timestamps reflecting comments with more modifications may infer more relevant comments than comments with fewer modifications. Thus, by using a timestamp to score a comment, comments that are more recent (or that have more modifications), and thus, potentially more relevant, may be presented over comments that are older (or that have fewer modifications), and potentially less relevant.
A further factor for scoring a comment may be based on a determination of how likely a particular one of databases 420-440 or 470 is to have comments relevant to the document requested or accessed by client 210. For example, comments component 410 may determine, based on a particular document being requested or accessed by client 210, a probability score that reflects a measure of relevance of each of databases 420-440 or 470. Comments component 410 may make this determination based on information that comments component 410 obtains about the document being requested or accessed by client 210. Thus, by using a probability score of databases 420-440 and 470 to score a comment, comments that are obtained from a higher scoring database 420-440 or 470 (thus, potentially more relevant to the document for which the comment is to be presented) may be presented over comments that are associated with a lower scoring database 420-440 or 470 (thus, potentially less relevant to the document for which the comment is to be presented).
Another factor for scoring a comment may be based on the language used in the comment. Different language signals may be used, such as whether the comment text is in English (or a language of the user), whether proper grammar is used, whether formal words (versus slang) are used, whether proper capitalization (as opposed to all capital letters) is used, etc. One or more of these signals may be used to generate a score for the comment. For example, comments not in English, comments using improper grammar, comments using slang, and/or comments using improper capitalization may not be meaningful to a user. By analyzing the language used in a comment and using a result of this analysis to score the comment, comments component 410 may improve a user's experience by presenting meaningful comments in connection with the particular document.
A further factor for scoring a comment may be based on the document from which the comment originated. Systems may exist for ranking documents that contain comments. The ranking of a document that contains a comment may be used to generate a score for the comment. Some documents may be known to include high quality comments. These documents may be ranked accordingly. By using the ranking of a document that contains a comment to score the comment, comments component 410 may provide higher quality comments in connection with the particular document.
Alternatively, or additionally, implicit user feedback may be used as a factor to generate a score for a comment. For example, certain signals may reflect a user's interest or disinterest in a comment. These signals may include information regarding the amount of time that a user kept a comment open, whether the user requested the entire comment or requested access to a document containing the comment, information regarding the amount of time that a user spent accessing the comment or a document containing the comment, etc. One or more of these signals may be used to generate a score for the comment. If users indicate, via their behavior, that a comment is meaningful (or not meaningful) to them with regard to a particular document with which the comment is presented, this may provide evidence that the comment contains content relevant (or not relevant) to the content of the particular document. By using the implicit user feedback to generate a score for a comment, comments component 410 may assure that comments with content that best matches the content of the particular document are presented in connection with the particular document.
Comments component 410 may use one or more of the above-identified factors, and/or other factors, in scoring the comments associated with the document. Comments component 410 may select one or more of the comments based on the scores of the comments. For example, comments component 410 may select comments with scores above a threshold. Alternatively, or additionally, comments component 410 may select a number of highest scoring comments.
The selected comment(s) may be presented (block 1250). For example, comments component 410 may use the scores of the selected comment(s) to determine a manner for presenting the selected comment(s). In one implementation, comments component 410 may order the selected comment(s) based on their scores.
Comments component 410 may format the comments to a particular format so that comments from one database 420-440 or 470 exactly, or approximately, matches comments from another database 420-440 or 470. Comments component 410 may send the selected comment(s) to client 210 for presentation by the browser of client 210. In one implementation, the browser may present one or more of the comments within the browser window in which the document is presented. In another implementation, the browser may present one or more of the comments within a window separate from the window in which the document is presented. In yet another implementation, the browser may create a frame (e.g., a regular frame or iframe) and insert information regarding one or more comments in the frame. In a further implementation, the browser may use another mechanism for presenting one or more of the comments.
As shown in
An individual comment may include author and date information 1541, comment content 1542, “more” button 1543, topic tags 1544, rating option 1545, and rating indication 1546. Author and date information 1541 may include information about the author of the comment and the date and/or time on which the comment was created. As shown in
An individual comment may include tags 1544 that indicate topics associated with the comment. Tags 1544 may be clickable. When a user clicks on a tag, comments that are displayed in comments section 1420 may be changed to comments that include the tag that was clicked. In the example of
An individual comment may include rating option 1545 to provide a rating for the comment. In this example, the rating can be a favorable or unfavorable rating. By clicking on a particular rating identifier (smiley face for favorable rating and frowning face for unfavorable rating), the user may indicate what rating the user is giving for the comment. Rating indication 1546 may indicate how many users found the comment useful. In this example, a user may be considered to have found a comment useful if the user gave the comment a favorable rating.
Comments presented in comment section 1420 may be presented in an order of ranking based on information received from comments component 410. For example, comments component 410 may specify the order for presenting the comments. The size of the individual comments that are displayed in comments section 1420 may be adjustable by dragging, with a pointing device, such as a mouse or a stylus, a line that separates two comments or separates comments section 1420 from document section 1410.
Implementations, described herein, may select comments from various sources to provide in connection with a document. These sources may be broadly classified into two groups: (1) comments received from users via commenting functionality associated with a browser installed on a client device; and (2) comments obtained independent of commenting functionality associated with a browser installed on a client device, such as comments received via a server-provided form, via e-mail, from blogs, etc. The selected comments may relate to the content of the document and, thus, provide useful information to a user who is accessing that document.
The foregoing description provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.
For example, while particular functional components have been described with regard to
Further, it has been described that selection of a button on a toolbar (or within a browser window) may cause a client 210 to request comments to present in connection with a document being accessed by client 210. In another implementation, this process may be automatically performed whenever client 210 requests access to a document. In other words, whenever client 210 requests access to a document, client 210 may automatically send a request, to server 220, for comments relevant to the document.
Also, while series of blocks have been described with regard to
Further, exemplary graphical user interfaces have been described with respect to
Also, certain portions of the implementations have been described as “logic” or a “component” that performs one or more functions. The terms “logic” or “component” may include hardware, such as a processor, an ASIC, or a FPGA, or a combination of hardware and software (e.g., software running on a general purpose processor that transforms the general purpose processor to a special-purpose processor that functions according to the exemplary processes described above).
Further, it has been described that scores are generated for links and/or comments. The scoring scheme has been described where higher scores are better than lower scores. This need not be the case. In another implementation, the scoring scheme may be switched to one in which lower scores are better than higher scores.
It will be apparent that aspects described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects does not limit the embodiments. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the aspects based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the invention includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “tone” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Pawliger, Marc, Cierniak, Michal, Prothro, Derek, Denman, Donn, Hsieh, Tony
Patent | Priority | Assignee | Title |
10027617, | Dec 23 2014 | AVA INFO TECH INC | Systems and methods for communication of user comments over a computer network |
10042951, | Oct 05 2011 | Adobe Inc | Contextual commenting on the web |
11010040, | Feb 28 2019 | Microsoft Technology Licensing, LLC | Scrollable annotations associated with a subset of content in an electronic document |
11049023, | Dec 08 2020 | MOVEWORKS, INC. | Methods and systems for evaluating and improving the content of a knowledge datastore |
11068664, | Aug 30 2019 | International Business Machines Corporation | Generating comment excerpts within an online publication |
11531808, | Jul 23 2018 | GOOGLE LLC | Intelligent document notifications based on user comments |
11630552, | May 15 2017 | Meta Platforms, Inc | Highlighting comments on online systems |
11748556, | Aug 09 2022 | System and method of enhancing PDF documents | |
11914947, | Jul 23 2018 | GOOGLE LLC | Intelligent document notifications based on user comments |
9507517, | Oct 02 2007 | Microsoft Technology Licensing, LLC | Mobile terminal and method of controlling the same |
Patent | Priority | Assignee | Title |
5146552, | Feb 28 1990 | INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NEW YORK | Method for associating annotation with electronically published material |
5671428, | Aug 28 1991 | Kabushiki Kaisha Toshiba | Collaborative document processing system with version and comment management |
6088709, | Sep 20 1994 | FUJI XEROX CO , LTD | Document processing unit for enabling collective seeing of comments added separately by different persons to document copies containing the same text part |
6115455, | Nov 05 1996 | MAVENIR, INC | Method and apparatus for dynamically creating message mailboxes |
6178431, | Oct 05 1994 | International Business Machines Corporation | Method and system for providing side notes in word processing |
6519603, | Oct 28 1999 | International Business Machines Corporation | Method and system for organizing an annotation structure and for querying data and annotations |
6578025, | Jun 11 1999 | ABUZZ TECHNOLOGIES, INC | Method and apparatus for distributing information to users |
6721921, | Jul 26 2000 | SECURACQUISITION CORP | Method and system for annotating documents using an independent annotation repository |
7424682, | May 19 2006 | GOOGLE LLC | Electronic messages with embedded musical note emoticons |
8301631, | May 30 2009 | Methods and systems for annotation of digital information | |
20010051330, | |||
20020019827, | |||
20020103867, | |||
20020129057, | |||
20030018632, | |||
20030041112, | |||
20030135555, | |||
20030135605, | |||
20040015505, | |||
20040064512, | |||
20040117434, | |||
20040122912, | |||
20040205542, | |||
20040210833, | |||
20040216032, | |||
20040260679, | |||
20040261016, | |||
20050132281, | |||
20050160355, | |||
20050165778, | |||
20050216454, | |||
20050223061, | |||
20050223067, | |||
20050256866, | |||
20050256867, | |||
20050262203, | |||
20060015811, | |||
20060020882, | |||
20060031340, | |||
20060080598, | |||
20060123087, | |||
20060143559, | |||
20060161578, | |||
20060184522, | |||
20060277523, | |||
20070016648, | |||
20070055926, | |||
20070061296, | |||
20070067399, | |||
20070143694, | |||
20070174762, | |||
20070179945, | |||
20080005064, | |||
20080016098, | |||
20080126303, | |||
20080133488, | |||
20080177755, | |||
20080195602, | |||
20080195657, | |||
20080201632, | |||
20080208790, | |||
20090217148, | |||
20100011282, | |||
WO2005098600, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 05 2009 | PAWLIGER, MARC | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023091 | /0281 | |
Aug 06 2009 | CIERNIAK, MICHAL | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023091 | /0281 | |
Aug 06 2009 | DENMAN, DONN | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023091 | /0281 | |
Aug 06 2009 | PROTHRO, DEREK | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023091 | /0281 | |
Aug 09 2009 | HSIEH, TONY | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023091 | /0281 | |
Aug 12 2009 | Google Inc. | (assignment on the face of the patent) | / | |||
Sep 29 2017 | Google Inc | GOOGLE LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 044277 | /0001 |
Date | Maintenance Fee Events |
May 27 2014 | ASPN: Payor Number Assigned. |
Dec 04 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 24 2022 | REM: Maintenance Fee Reminder Mailed. |
Jul 11 2022 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jun 03 2017 | 4 years fee payment window open |
Dec 03 2017 | 6 months grace period start (w surcharge) |
Jun 03 2018 | patent expiry (for year 4) |
Jun 03 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 03 2021 | 8 years fee payment window open |
Dec 03 2021 | 6 months grace period start (w surcharge) |
Jun 03 2022 | patent expiry (for year 8) |
Jun 03 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 03 2025 | 12 years fee payment window open |
Dec 03 2025 | 6 months grace period start (w surcharge) |
Jun 03 2026 | patent expiry (for year 12) |
Jun 03 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |