US7603352B1 - Advertisement selection in an electronic application system - Google Patents
Advertisement selection in an electronic application system Download PDFInfo
- Publication number
- US7603352B1 US7603352B1 US11/213,309 US21330905A US7603352B1 US 7603352 B1 US7603352 B1 US 7603352B1 US 21330905 A US21330905 A US 21330905A US 7603352 B1 US7603352 B1 US 7603352B1
- Authority
- US
- United States
- Prior art keywords
- user
- objects
- tag
- application
- contributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
Definitions
- a search engine application might deliver advertisements based on the text entered in a search query.
- a user searching for “Hawaii” might be presented with advertisements for vacation packages to Hawaii, for example.
- An email application could deliver advertisements based on the content of the email message.
- such methods are limited by how well the interests of the user correlate with the text in a search query or in an email message.
- an employee might receive many email messages about a work related issue, but have no interest in buying products related to his work. The employee might be much more interested in food, but it would be difficult to determine this from the email he receives. Improved methods of selecting and delivering targeted content are needed.
- FIG. 1A is a diagram illustrating an embodiment of an application.
- FIG. 1B is a diagram illustrating a list of tag phrases.
- FIG. 1C is a flowchart illustrating an embodiment of a process for tagging an object.
- FIG. 2A illustrates a diagram of relationships.
- FIG. 2B is a flowchart illustrating an embodiment of a process for selecting content.
- FIG. 2C is a diagram illustrating an example of a tree of relationships.
- FIG. 2D is a diagram illustrating a vector diagram of tag phrases.
- FIG. 3 is a flowchart illustrating an embodiment of a process for selecting content.
- FIG. 4 is a flowchart illustrating an embodiment of a process for deriving or extracting information.
- FIG. 5 is a table illustrating an example of information in a user profile.
- FIG. 6 is a table illustrating an example of information in a user profile.
- FIG. 7 is a flowchart illustrating an embodiment of a process for driving or extracting information.
- FIG. 8A is a table illustrating an example of other information in an object profile.
- FIG. 8B is a table illustrating an example of information in a user profile.
- FIG. 8C is a table illustrating an example of information in a user profile.
- FIG. 9 is a block diagram illustrating an embodiment of a hosted application server.
- FIG. 10 is a flowchart illustrating an embodiment of a process for handling a user request.
- FIG. 11A is a flowchart illustrating an embodiment of a process for preprocessing a user request.
- FIG. 11B is a flowchart illustrating an embodiment of a process for handling application requests at a core.
- FIG. 11C is a flowchart illustrating an embodiment of a process for postprocessing a response from an application.
- FIG. 12 is a flowchart illustrating an embodiment of a process for responding to a user request.
- FIG. 13 is a block diagram illustrating an embodiment of an application running on a hosted application server.
- the invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links.
- these implementations, or any other form that the invention may take, may be referred to as techniques.
- a component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task.
- the order of the steps of disclosed processes may be altered within the scope of the invention.
- FIG. 1A is a diagram illustrating an embodiment of an application.
- application 102 runs on server 112 .
- application 102 is a web application running on web server 112 .
- Application 102 is shown to display objects 104 - 107 .
- application 102 could be displayed in a web browser.
- Server 112 is shown to include a database of objects.
- An object as used herein, could refer to a content object, content, user, application, or tag.
- Objects 104 - 107 could include, for example, photos, blogs, reviews, classified advertisements, profiles, images, bookmarks, jobs, books, and/or movies, etc.
- objects 104 - 107 could include a set of photos.
- object 104 could be a photo of a teacher
- object 106 could be a profile of the teacher
- object 105 could be a review of that teacher.
- application 102 allows users to view and tag objects.
- Tagging refers to assigning a string (e.g., one or more words) to an object.
- the string is referred to as a tag, tag word, or tag phrase.
- An object can be tagged with any tag phrase desired.
- tag phrases can be personal, such as “John Doe's tag phrase”.
- Objects that can be tagged include content objects, users, profiles, and/or applications.
- an application and/or a user can assign a tag.
- application 102 includes an interface for searching for objects associated with a tag phrase.
- a photo sharing application could allow a user to upload and tag photos.
- a first user could tag all his Hawaii vacation photos “Hawaii”.
- a second user wishing to see photos of Hawaii could use the search interface to search for all photos tagged “Hawaii” and photos tagged Hawaii would be returned, including the first user's photos.
- application 102 is an application running on a hosted application server system that could include multiple applications, multiple user contributed objects and multiple user defined object types, as more fully described below.
- object 107 could comprise a sidebar that could display system information and/or targeted content, such as advertising.
- FIG. 1B is a diagram illustrating a list of tag phrases.
- application 102 displays list 109 , for example, in a sidebar.
- list 109 includes a list of tag phrases assigned by a user. Each tag phrase is followed in parentheses by the number of times that that tag phrase has been used by the user.
- list 109 could indicate which tag phrases are the most popular, most frequently, and/or most recently assigned.
- the list could include tags assigned by other users (e.g., friends), or by all users. Selecting (e.g., using a mouse to click on) one of the tag phrases might cause objects or a list of objects associated with the tag phrase to be displayed.
- list 109 could be displayed by a bookmarking application that allows a user to store and tag various bookmarks (i.e., URLs).
- a user could bookmark a webpage by tagging its URL.
- the user could tag URLs of various food related webpages with the tag “food”.
- the user could select “food” in list 109 and a list of the pages tagged “food” would be returned.
- the list could include pages tagged food by the user and/or other users.
- the tag phrases in list 109 could be used to determine information about the user. For example, list 109 indicates that the most frequently used tag four tag phrases are “Food”, “San Francisco”, “Restaurant”, and “Retirement”. The tag phrase “Food” was used 81 times, the tag phrase “San Francisco” was used 39 times, the tag phrase “Restaurant” was used 27 times, and the tag phrase “Retirement” was used 42 times. Thus, it may be determined that the user would be interested in food or restaurant related products, and especially those located in San Francisco. In addition, it may be determined that the user is retired and would be interested in retirement related products.
- FIG. 1C is a flowchart illustrating an embodiment of a process for tagging an object.
- an object is selected.
- the object is the object that the user would like to tag.
- the object could include a content object, an application, or a user.
- the object can be selected in various ways in various embodiments.
- Various user interfaces (UIs) can be used for selecting the object to tag.
- the object can be selected by viewing the object, such as a photo or a webpage.
- the object can be selected by highlighting, checking a checkbox, selecting a button, etc.
- the object can be selected using a bookmarklet to bookmark a page.
- a tag phrase is selected.
- the tag phrase can include a string.
- the tag phrase is a keyword or descriptive label selected by the user to associate with the object. Examples of tag phrases include “family”, “XML”, “humor”, “to read”, “reference”, “work”, “Bob Johnson's personal tag phrase”, “e@$#*&(]jj”, etc.
- the tag phrase can be selected from a pull down or other menu of commonly used (e.g., by the user or other users) tag phrases, where the menu might be provided as a convenience to the user.
- the object is tagged.
- the tag phrase is associated with the object. In some embodiments, this information is stored in a database.
- a user could tag an object because it is interesting to the user and/or the user wants to have some way of finding the object again.
- users can view other users' tags. The user may tag an object because the user wants to be known to have tagged that object and/or wants to be characterized by having tagged that object. Tags can be viewed as a way for a user to personally express himself.
- a tag strength is also selected and associated with the tag.
- the user could select a score (e.g., 1-5) indicating the strength or importance of the tag to the user.
- a score e.g., 1-5
- the user might select a tag strength of 1 for a bad representation of a bridge (e.g., a photo that cuts off half of a one lane bridge) and 5 for a good representation of a bridge (e.g., a panoramic photo of the Golden Gate Bridge).
- the tag strength can be optional—a user can assign a tag strength to some tags, and not to others.
- a tag strength can be defined in various ways by various users. For example, a first user might use tag strength to indicate how well the tag describes the object being tagged, as in the bridge example above. A second user might use tag strength to indicate the quality of photos the user tags. For example, a blurry photo might be given a tag strength of 1. A third user might use tag strength to indicate the importance of bookmarks the user tags. For example, webpages with a tag strength of 5 could indicate that those webpages contain information that is most useful or most entertaining to the user. Alternatively, webpages with a tag strength of 1 could indicate that those webpages are first in priority, e.g., for the user to read next.
- FIG. 2A illustrates a diagram of relationships.
- various relationships between tags, users, objects, and application are represented by various regions as shown.
- the region enclosed by circle 241 represents tags.
- the region enclosed by circle 244 represents users.
- the region enclosed by circle 242 represents objects.
- the region enclosed by circle 248 represents applications.
- the overlapping regions represent relationships between these items.
- the following table illustrates a few examples of the relationships that could correspond to the overlapping regions.
- Region in FIG. 2A Relationship(s) 252 tag on object 254 tag on user 256 user of application or user who owns application 258 object in application 262 tag on application by user or tag on user by application 264 tag on object in application by user or tag on object by application 270 tag on object in application by user
- FIG. 2B is a flowchart illustrating an embodiment of a process for selecting content.
- information is derived or extracted from tag(s), user(s), application(s), and/or object(s).
- information about a tag, user, application, or object can be captured and maintained in a tag profile, user profile, application profile, or object profile, respectively.
- a user profile could include applications contributed to or tagged by the user, tags contributed by the user, content types contributed or tagged by the user, a location associated with the user, and users tagged by the user, etc.
- An application profile could include, for example, the current user, the user who contributed the application, tags assigned to objects in (e.g., owned by) the application, content types used in the application, and a description of the application, etc.
- a tag profile could include, for example, related tags (e.g., tag phrase “cyan” and “blue” might be related if an object has been tagged “cyan” and “blue” by the same or different users), users who contributed the tag, the application used to contribute the tag, the user, application, or object that is tagged, etc.
- related tags e.g., tag phrase “cyan” and “blue” might be related if an object has been tagged “cyan” and “blue” by the same or different users
- An object profile could include, for example, tag(s) assigned to the object, user(s) who tagged the object, the user who contributed the object, the application that owns the object, the content type of the object, and various attributes of the object.
- content is selected based on relationship(s) between two or more of the tag(s), user(s), application(s), and/or object(s).
- information in profiles includes relationships between other tag(s), user(s), application(s), and/or object(s). Any of these or other relationships can be used to select content.
- FIG. 2C is a diagram illustrating an example of a tree of relationships.
- an application profile is represented by tree 211 of relationships.
- application 210 has a description 212 , a current user 214 , objects 224 in application 210 , tags 236 assigned to application 210 , and owner 238 of application 210 .
- Description 212 could be a text description, such as “This application is for sharing information about travel in Hawaii.”
- Current user 214 has a descriptor 216 that includes various attributes, including location 218 , age 220 , and gender 222 . Any other attributes can be included in descriptor 216 in various embodiments.
- Current user 214 has contributed applications 217 .
- Each object 224 in application 210 has a type 226 , contributor 230 , and possibly one or more tags 228 .
- Type 226 could have related types 232 .
- type “restaurant” could be related to type “recipe”.
- Tags 228 could have related tags.
- tag “dog” could be related to type “canine”.
- a thesaurus is maintained for related types and/or tag phrases.
- Owner 238 of application 210 is the developer of application 210 .
- Owner 238 could be another user or current user 214 .
- Owner 238 has a descriptor 240 , that could include the same or different attributes as those in descriptor 216 .
- description 212 , current user 214 , type 226 and tags 228 are the drivers for selecting content. For example, if a user is viewing an application, the description of the application, the descriptor of the current user, the type of objects in the application, and the tags (by the current user and/or other users) on the application are analyzed. Content is selected based on this analysis. In various embodiments, each of these drivers is weighted so that, for example, tags 228 have a greater influence on content selection than say, description 212 .
- the application has the description “travel photos”.
- the descriptor of the user indicates that the user is a 35 year old female living in San Francisco.
- the objects in the application are of type photo and the most popular (e.g., the top 3 tags) are “italian”, “restaurant”, and “food”.
- the content selected might then be an advertisement for an Italian restaurant in San Francisco, or a travel article on the history of North Beach in San Francisco. If, for example, the application description is weighted less, then the travel article may not be selected. Instead, an article of the best Italian food in San Francisco could be selected, for example.
- tags 236 assigned to the application could include any of the other items shown, such as tags 236 assigned to the application, or the descriptor 240 of the owner of the application.
- tags 236 assigned to the application include “cheap” and “fast”, then the content selected might be an advertisement for a pizzeria in San Francisco.
- the tree can be extended to include other relationships.
- contributor 230 could be another user or current user 214 .
- a descriptor of that other user could also be analyzed to select content.
- a block representing that descriptor could connect to contributor block 230 .
- objects contributed by the current user could be analyzed.
- a block representing those objects could connect to current user block 214 or to descriptor block 216 .
- a block representing a related user could connect to current user block 214 or owner block 238 .
- Information associated with the related user could be analyzed.
- tree 211 is part of a network of relationships.
- the network of relationships is shown to form around an application.
- a network can be formed around a user, a tag, or an object.
- the networks can interconnect.
- a network of relationships can be formed around current user 214 based on the user profile of current user 214 . Any of this information can be used to select content.
- FIG. 2D is a diagram illustrating a vector diagram of tag phrases. This example shows how tag phrases can be used to learn about a user.
- a set of tags that have been assigned by a particular user are represented by a set of vectors 200 , including vectors 202 - 209 .
- Each new tag that is assigned by the user adds a new vector to the diagram.
- the user has used the tag phrases “car”, “food”, “california”, “travel”, and “restaurant”.
- Tag phrase “food” has been used three times.
- Tag phrase “travel” has been used twice. These tag phrases have not all necessarily been assigned to the same object. For example, “car” may have been assigned to a car classified listing.
- “food” may have been assigned to a recipe, a restaurant review, and a URL of a guide to California restaurants.
- “California” may have also been assigned to the URL of the guide to California restaurants.
- “travel” may have been assigned to one or two content objects. In this way, each new vector added improves the description of this particular user.
- information about a user can be captured and maintained in a user profile.
- the user profile could include the tag phrases the user has selected or contributed and the number of times each tag phrase is used. From the profile, information about the user could be derived. The information could include the user's interests, habits, affiliations, or any other information. For example, “food” has been used three times and “travel” has been listed twice. In addition, “restaurant” has been used once, and it could be determined that “restaurant” is a term that is related to “food”. Thus, this user might be someone who has a very strong interest in food and somewhat of an interest in travel.
- vectors 202 - 209 are added in chronological order. Thus, the most recent tags would be shown on the right hand side. The oldest tags would be shown on the left hand side. Thus, additional information about the user could be determined. For example, if there were a large number of “Hawaii” tags to the left of vector 202 , and no “Hawaii” tags in the later vectors (e.g., from 202 to 209 and past 209 ), then it could be determined that perhaps there used to be an interest in Hawaii, but the user is no longer interested in Hawaii. For example, the user was planning a trip to Hawaii, but has now already completed the trip.
- FIG. 3 is a flowchart illustrating an embodiment of a process for selecting content.
- a user profile is analyzed.
- the user profile could include information provided by the user, and/or information collected based on the user's actions.
- Information provided by the user could include information provided when the user registered for an account, for example.
- Information collected about the user could include tag information, such as the objects the user tagged, the tag phrases used, and the number of times each tag phrase was used, the objects the user has contributed, the object types the user has defined, etc.
- the user profile could include information associated with the application, such as tag phrases that the user or other users have used to tag the application, and the frequency of each of those tag phrases.
- the objects to be displayed are analyzed. For example, if the user is viewing a page of a photo sharing application, the objects in that page are analyzed. In some embodiments, object profiles of one or more of those objects are analyzed. All the objects on the page could be analyzed, or one or more selected objects could be analyzed. For example, if the page focuses on one or more particular objects, those objects could be analyzed. Analyzing the object could include identifying the tag phrases that the user and/or others have assigned to that object and the number of times each of those tag phrases has been used by the user and/or others.
- content is selected.
- the content could be selected based on the analysis of the user profile and/or one or more of the object(s) that are being displayed. As such, 382 or 384 could be optional.
- the content could be selected independently of the content that is being displayed to the user.
- the content could be selected independently of the user.
- Examples of content selected include advertising content, targeted content, or any other type of content.
- the content could include text, images, or any form of media.
- a content provider could specify the criteria for selecting the provider's content.
- FIG. 4 is a flowchart illustrating an embodiment of a process for deriving or extracting information.
- an object is received.
- the object is the object to be viewed by the user.
- the object is received from a database for display to a user.
- the tag phrases assigned by the user to the object are determined. In some embodiments, the number of times each tag phrase has been used by the user is also determined.
- the tag phrases assigned by others to the object are determined. In some embodiments, the number of times each tag phrase has been used by others is also determined.
- content is selected for display to the user.
- the content is selected based on the tag phrases assigned by the user and/or the tag phrases assigned by others to the object.
- the selection of content may be based more strongly on the tag phrases that have been used a greater number of times.
- the selection of content may be based more strongly on the tag phrases assigned by the user.
- FIG. 5 is a table illustrating an example of information in a user profile.
- table 500 is shown to include three objects that have been tagged by a user.
- the user profile can include all objects that have been tagged by the user (the full user profile), the most recent objects that have been tagged by the user (the most recent user profile), the object(s) that are currently being viewed by the user (the portion of the user profile associated with the objects being viewed), or any combination of the above.
- object ID 324432 is a photo that the user has tagged “restaurant”, “san francisco”, “yum”, and “bargain” with tag strengths 5 , no tag strength assigned, 4, and 1, respectively.
- the user has used tag phrase “restaurant” 34 times, tag phrase “san francisco” 91 times, “yum” 21 times, and “bob” one time.
- an advertiser can specify that advertisements be displayed to users who have profiles matching a certain criteria. For example, an advertiser could determine which profiles correlate with interest in the advertiser's product. For example, a San Francisco restaurant owner could decide that a user who uses tag phrases “restaurant” and/or “San Francisco” could be interested in his restaurant. The owner could specify that the advertisement be displayed when the user has used the tags “restaurant” and/or “San Francisco” a specified number of times.
- an advertiser can specify that advertisements be displayed to users when viewing objects or content associated with certain tag phrases. For example, an advertisement for a restaurant in San Francisco could be displayed when the user is viewing an object tagged “restaurant” and/or “San Francisco” a specified number of times by the user and/or other users.
- advertising content is selected based on the user profile and the object(s) being viewed. For example, if the profile indicates that the user lives in San Francisco, the San Francisco restaurant advertisement could be displayed when the user is viewing an item tagged “restaurant” by the user a specified number of times or tagged “movie” by other users a specified number of times.
- Tag phrases with greater tag strengths may be weighted more strongly. For example, a tag phrase with a high tag strength could count for greater than one tag.
- content is selected based on the number of times a user uses a tag phrase relative to other tag phrases. For example, an advertiser could specify that the advertiser's content be displayed when a specified percentage of that user's tags are or relate to a particular tag phrase. For example, a restaurant advertisement is displayed to a user when over 5% of the user's tag phrases are “restaurant”.
- thesaurus and/or spell checker for identifying related tag phrases.
- Related tag phrases could add to the tag count. For example, if an object is tagged “Hawaii” 10 times, “Hawaii” once, and “Hawaiian Islands” three times, this could be equivalent to the object having been tagged “Hawaii” 14 times.
- the related tag phrases are weighted less.
- Object information could be used to select content. For example, if there are N or more objects in the user profile of type photo, a photography advertisement could be displayed. If there are N or more objects of type classified ad, a shopping advertisement could be displayed. If the objects are of type car_classified_ad, a car advertisement could be displayed.
- Tag information and object information can be combined to select content. For example, if there are N objects of type classified advertisement tagged, and M objects tagged “bike”, then a bike advertisement could be displayed.
- information in the user profile can be associated with demographic or other information of interest, e.g., to advertisers, including, for example, gender, age (or age group), race, interests, hobbies, occupation, income, etc.
- advertisements are selected based on such information. For example, an advertiser can specify that its advertisements be displayed to users whose user profiles match criteria that are associated with a certain demographic.
- tag phrases can be used to identify interests. For example, since one of the tag phrases used is “bargain”, it can be determined that the user might be interested in inexpensive products. Information can be determined from multiple tag phrases and combined. For example, since another tag phrase is “restaurant”, it can be determined that the user is interested in inexpensive restaurants. Tag phrases that have been used a greater number of times may be weighted more strongly. For example, because “san francisco” has been used by the user 91 times, it could be determined that the user resides in or has a strong interest in San Francisco, or products related to San Francisco, such as shopping or services in San Francisco.
- Tag phrases with greater tag strengths may also be weighted more strongly.
- a metric can be used to determine how well a tag phrase can be associated with or correlated with a user.
- FIG. 6 is a table illustrating an example of information in a user profile.
- information associated with other users is shown.
- the tag phrases that other users have used to tag the object and the number of times each tag phrase has been applied to that object are shown.
- This information can be used to select content for display to the user. For example, when any of these objects is displayed to or tagged by a user, then content can be selected based on this information. For example, content can be selected based on the tag phrases other users have assigned the object.
- the user's tags are weighted more heavily than other user's tags.
- the photo object with ID 324432 has been tagged “pizza” by 231 users.
- this photo is displayed to the user, one or more pizza advertisements could be displayed.
- the user has not necessarily tagged this photo “pizza”.
- the user has not necessarily tagged this photo at all.
- such information is included in an object profile.
- object profile of object ID 324432 could include the object type, what users have tagged this object, and number of times users have used each tag phrase on the object.
- FIG. 7 is a flowchart illustrating an embodiment of a process for driving or extracting information.
- an object is received.
- the object is the object to be viewed by the user.
- the object is received from a database for display to a user.
- the tag phrases assigned by the user to the object are determined. In some embodiments, the number of times each tag phrase has been used by the user is also determined.
- other objects assigned these tag phrases by the user are determined. In some embodiments, the number of times other objects have been assigned these tag phrases by the user is also determined.
- other objects assigned these tag phrases by other users are determined.
- the number of times other objects have been assigned these tag phrases by other users is also determined.
- content is selected for display to the user.
- the content is selected based on the objects assigned the same tag phrases by the user and/or by others. The selection of content may be based more strongly on the objects that have been assigned the same tag phrases a greater number of times. The selection of content may be based more heavily on the objects assigned the same tag phrases by the user.
- FIG. 8A is a table illustrating an example of other information in an object profile.
- object ID 324432 of object type photo has been tagged by the user with tag phrase “san francisco” 91 times.
- tag phrase “san francisco” has been assigned by the user 21 times to an object of type classified and nine times to an object of type restaurant.
- yum is a tag phrase.
- Other objects the user has tagged “yum” include restaurants.
- Other objects that others have tagged using “yum” include recipes.
- the user might be interested in recipes or cooking, even though the user may not have directly tagged any recipe “yum”.
- content can be selected based on other tag phrases or object types associated with object(s) tagged by the user. For example, if an advertiser specifies “yum” and “recipes” as the tag phrases that would cause the advertiser's content to be displayed, then in this case, the advertiser's content would be displayed.
- FIG. 8B is a table illustrating an example of information in a user profile.
- information can be determined from the types of objects the user chooses to tag.
- it could be determined that a user is interested in restaurant or food related content based on the number of times a “restaurant” object has been tagged. It could also be determined that the user is interested in cars, since there are 212 objects of type “car_photo” that the user has tagged. Thus, the number of times an object or object type has been tagged can be used to select content.
- FIG. 8C is a table illustrating an example of information in a user profile.
- the objects and object types are contributed by users and/or applications (which are associated with or owned by users).
- object types can be defined and contributed by users. For example, the object type “car_blog” has been defined by the user, but an object of type “car_blog” has not yet been contributed by the user.
- the object type “garden_photo” was contributed by the user 87 times, it can be determined that the user is interested in gardens. Similarly, it could be determined that the user is interested in cars because the object type “car_blog” was defined by the user, even if no objects of that type have yet been contributed by the user or others.
- a garden store could specify that its advertisements be displayed to a user who has contributed a specified number of objects of a type that includes the string “garden”.
- a hosted application server running multiple applications provided by multiple users is disclosed.
- the hosted application server provides a secure interface between users and applications, where varying levels of trust between various users and applications can be designated and handled.
- the hosted application server includes a shared data model that includes content provided by multiple users. The data in the shared data model can be made available to multiple applications and multiple users.
- FIG. 9 is a block diagram illustrating an embodiment of a hosted application server.
- environment 900 is shown to include hosted application server system 901 , browser 902 , and shared data model 916 .
- Server system 901 includes core 904 and runtime environment 912 .
- Browser 902 is a web browser or other application capable of viewing data provided over a network, such as the Internet, an intranet or a mobile network.
- Core 904 is shown to include preprocessor 906 , postprocessor 116 , shared services 908 , and APIs to languages 909 .
- Preprocessor 906 preprocesses requests from a user at browser 902 .
- preprocessor 906 could include mechanisms for user authentication, security, and session management, as more fully described below.
- Shared services 908 include various services provided by the host to application developers for use in their applications.
- shared services 908 could include messaging, navigation, search, user registration, advertising, APIs, and RSS, as more fully described below.
- Various services not shown could also be provided in various embodiments.
- external hooks can be provided to other web services such as Amazon, eBay, Google, Visa, Mapquest, etc.
- APIs 909 can be used to access shared services 908 .
- core 904 software is written in Java.
- core 904 , runtime environment 912 , and shared data model 916 can reside on any number of physical devices, each of which can be at any location. In some embodiments, core 904 and runtime environment 912 reside on the same physical device.
- Shared data model 916 is a common structure in which data can be stored, shared, and retrieved by multiple applications.
- Shared data model 916 includes a shared set of data and data types that can be accessed and modified by multiple applications or users. For example, a user or application could add an object to shared data model 916 that can then be accessed by other users and applications. A developer could add a new object type and define attributes associated with that object. That content object type can then be made available to other applications.
- Shared data model 916 could include one or more databases or data repositories.
- Shared data model 916 is shown to include content 918 , tags 920 , users 922 , and applications 924 .
- Examples of content could include photos, comments, reviews, classifieds, or other types of user or application contributed content.
- Data could be contributed and/or defined by users, applications, or the system.
- Shared data model 916 could be prepopulated with data.
- Each object in shared data model 916 can be associated with one or more tags. Objects can be tagged by one or more users. For example, multiple users could tag a particular photo or restaurant review, or a particular application.
- Each object can be owned by an application and/or user. In some embodiments, each object is owned by an application and contributed by a user.
- the owner of an object can designate the object as public or private, where private objects are only provided to the owner or other users designated (e.g., tagged) by the owner (e.g., the owner's friends or family).
- Each object has a unique object ID in some embodiments.
- shared services can utilize the data in shared data model 916 .
- a search engine service e.g., in shared services 908
- Advertising can be generated based on tags or content that is retrieved.
- Profiles can be created based on tag data.
- shared data model 916 includes a SQL database and a search engine that preindexes various queries for faster access to data.
- core 904 includes a data access layer for accessing data in shared data model 916 .
- Runtime environment 912 can run any number of independently written applications.
- An application can be written in any language that generates HTML, such as PHP, Python, ASP, C#, Java, Javascript, Ruby or .NET or any language that can be used to view information provided over a network (e.g., the Internet, an intranet, a mobile network, or any other type of network). The applications do not all need to be written in the same language.
- An application includes calls to APIs 909 to access shared services 908 .
- Any type of application can be developed, any one of which can utilize the set of services and APIs provided by core 904 .
- Examples of applications that could be created include auctions, product reviews, jobs, social networks, alumni networks, etc.
- Various tools can be provided for application development. For example, wizards, widgets, and example applications can be provided. Widgets could include, for example, listings, user registration, listings, photos, discussions, blogs, reviews, calendars, maps, rankings, ratings, recommendations, reputation, transactions, tagging, etc. Templates could be provided. For example, a marketplace or dating service template could be provided and multiple applications could be independently created based on that template. Tools could be provided for developers of all skill levels.
- a wizard or a GUI could be provided for beginning computer users, and example applications (e.g., showing calls to various APIs and making use of various services) could be provided to amateur developers.
- APIs for mobile platforms could be provided, including photo, email, and/or SMS upload/download, GPS tracking, and alerts. Documentation, discussion boards, books, evangelism, and support could also be provided to help users create and maintain applications.
- Core 904 maintains security between browser 902 and core 904 , and between core 904 and runtime environment 912 , as more fully described below.
- Core 104 can be viewed as a proxy between browser 902 and an application running in runtime environment 912 .
- Core 904 authenticates users so that applications running in runtime environment 912 do not need to handle user authentication.
- Applications can trust users authenticated by core 904 , and users can trust applications that are served by server system 901 .
- Postprocessor 910 postprocesses responses from applications running in runtime environment 912 .
- post processor 910 assembles output from an application with data from shared data model 916 .
- a web page is assembled and sent to browser 902 , where it is displayed.
- the output from the application includes instructions written in HTML.
- the instructions could include XML tags that refer to certain content object IDs and specify how they should be displayed.
- the content objects could be retrieved from the content database in shared data model 916 and a page could be assembled based on the specification.
- FIG. 10 is a flowchart illustrating an embodiment of a process for handling a user request.
- this process is implemented on core 1004 when a request to access an application is made (e.g., a user enters the URL associated with the application).
- the process begins at 1004 , in which a request is preprocessed. Preprocessing could include, for example, authenticating the request or performing other security related functions.
- 1004 is performed by preprocessor 906 in environment 900 .
- application calls to the core are handled.
- runtime environment 912 executes the application code, which could include calls back to the server, e.g., to retrieve data from shared data model 916 .
- the response is postprocessed.
- a response is received from an application and interpreted. For example, XML tags are received, and data is retrieved from the database based on the tags. HTML is generated that includes the data, and the page is delivered to the user.
- 1008 is performed by postprocessor 910 in environment 900 . These processes are more fully described below.
- FIG. 11A is a flowchart illustrating an embodiment of a process for preprocessing a user request.
- this process is implemented on preprocessor 906 .
- the process begins at 1102 , in which a request is received from a user.
- the request could include the URL associated with the application.
- a username and a password could also be included.
- the username could be anonymous or guest.
- the request is handled as if the user was anonymous.
- an identifier is associated with the request. The identifier can be based on the application and/or the username.
- the user is authenticated and an identifier, such as a security token, is generated for the request.
- the identifier could be a random number or a hash value.
- the lifetime of the security token is one page request.
- a security certificate, an identifier associated with the location of the user, such as an IP address, or other identifier is associated with the session.
- the username, application, and/or role of that user are stored. Examples of roles include guest, user, or administrator.
- the request and identifier are sent to the application.
- the username and/or role could also be sent to the application for use by the application.
- the server could store the identifier, username, and role in a lookup table (e.g., in RAM).
- FIG. 11B is a flowchart illustrating an embodiment of a process for handling application requests at a core.
- this process is implemented on core 904 when requests are received from an application running in runtime environment 912 .
- the process begins at 1110 , in which a request is received from the application.
- the request includes the identifier that was sent to the application at 1106 .
- the server can check the identifier to authenticate the request.
- the request could be delivered using any appropriate network API, such as SOAP.
- data could be retrieved from the shared data model.
- the request could be a request for all content objects tagged “cat” or all photos (i.e., content objects of type “photo”) tagged “cat”.
- objects are retrieved to satisfy the request. In some embodiments, only content objects that are public or private, but available to that user (as determined by the identifier included in the request), are retrieved. If the user is an anonymous user, only public objects matching the request are retrieved.
- a response is sent to the application. For example, all content objects tagged “cat” are sent to the application. The request could be delivered using any network API.
- the process returns to 1110 . Otherwise, the process ends.
- FIG. 11C is a flowchart illustrating an embodiment of a process for postprocessing a response from an application.
- this process is implemented on postprocessor 910 when a response from an application running in runtime environment 912 is received.
- the process begins at 1120 , in which a response is received from the application.
- the response includes the identifier that was received from the server at 1106 .
- the server can check the identifier to authenticate the response.
- the response can include object IDs to refer to objects in shared data model 916 and a description of how to display them.
- data is retrieved from the shared data model.
- the response could include a list of object IDs, in which case the objects with those object IDs are retrieved.
- a page is assembled based on the response.
- the page could be formatted for display in a web browser or any other application capable of viewing data provided over a network, such as the Internet, an intranet or a mobile network.
- the page could include an HTML, XML, PDF, MP3, mobile, or any other type of file.
- an application can reference a view file that describes how an object should be displayed.
- the view file can be included in the response at 1122 .
- the view file is written in HTML and/or XML.
- An object can be associated with multiple view files contributed by multiple developers. For example, a developer might create for a particular object a view file to display the object in a small or large area. For example, a developer could create an object of type restaurant review with attributes “name”, “image”, “review”, and “url”. The view file could specify that that the image of the restaurant be displayed on a first line, the restaurant name be displayed on a second line, and the review be displayed on a third line.
- the view file could specify that selecting (e.g., using a mouse to click on) the name of the restaurant would lead to the website of the restaurant.
- a view file is retrieved from the application that owns the object to be displayed.
- a view file is retrieved from a registry of publicly available view files. Developers can contribute view files to the registry.
- the objects are displayed according to a default description (e.g., a default view file).
- only content objects that are public, or private but available to the particular user and/or application are retrieved. For example, if a content object having object ID 923 is specified, and object ID 923 is private and owned by an application other than the one responding, core 904 will not provide that object to the requesting application. Similarly, if that object is private and owned by another user, that object will not be provided.
- the page is sent to the user.
- the core can be configured to enforce security of content based on the user or the application.
- FIG. 12 is a flowchart illustrating an embodiment of a process for responding to a user request.
- this process is implemented in runtime environment 912 .
- the process begins at 1202 , in which a request is received.
- the request includes the identifier and/or role that was sent from the server at 1106 .
- the server can check the identifier to determine that the user was authenticated (or is an anonymous user or guest, for example).
- the application can then handle the request based on the user and/or the role of the user with that application. Different application code could be executed based on the user and/or the role. For example, one application might allow a certain user to contribute content, while another application does not.
- each application can decide the rights of each user accessing that application. For example, if the user is anonymous, the application could send a response (i.e., the process would skip to 408 , as described more fully below) to send a web page that notifies the user that the user needs to login in order to access this particular application.
- the user can have access to different (e.g., better) content by paying a subscription fee to change the user's role to “subscriber”.
- the core can be configured to enforce security of the application based on the user or a role associated with the user.
- a request (or query) is sent to the core. For example, a request to retrieve all photos tagged “cat” is sent to the core.
- the request includes the identifier received at 1206 .
- the request is delivered using a network API, such as SOAP.
- SOAP a binding can be provided that interprets a PHP request from the application and forwards the request to the core using SOAP.
- a response is received from the core. For example, all photos tagged “cat” are received.
- the data received from the core is optionally processed.
- the photos tagged “cat” could be pruned to include only the photos that are also tagged by the user's friends (assuming a list of friends is associated with the user) and/or were added within the last 24 hours.
- the process returns to 1204 . Otherwise, at 1210 , a response is sent to the core.
- the response includes the identifier received at 1106 .
- the response could include the data retrieved at 1206 .
- the response includes semantic markup tags, such as XML tags, that refer to objects in shared data model 116 (e.g., by object ID), and specifies a view file.
- FIG. 13 is a block diagram illustrating an embodiment of an application running on a hosted application server.
- environment 1300 is shown to include browser 1302 , core 1304 , application 1312 , and shared data model 1316 .
- the hosted application server includes core 1304 and a runtime environment running application 1312 .
- user Joe is running browser 1302 .
- Application 1312 is owned by Bob.
- Bob is planning a vacation with friends to Hawaii.
- Application 1312 displays pictures (from shared data model 1316 ) of places in Hawaii along with his friends' comments on each place. The comments are private and not visible to users who are not Bob's friends.
- Joe is one of Bob's friends.
- Joe requests Bob's application (e.g., by entering the URL of Bob's application).
- a request is sent to core 1304 including username joe and a password.
- Core 1304 receives the request, authenticates Joe, and associates an identifier ID 1 with the request.
- Core 1304 sends the request, ID 1 , and optionally the username and role to application 1312 .
- Application 1312 receives the request and can determine that the user is joe.
- Application 1312 sends a query to core 1304 for photos of Hawaii and comments on those photos. The query includes the identifier ID) so that core 1304 can authenticate the request.
- Core 1304 receives the request, checks the identifier, and retrieves all content objects of type photo that are tagged Hawaii and all content objects of type comment made by Bob and his friends. Core 1304 only retrieves objects that are public or owned by Bob and his friends. These objects are sent to application 1312 . Application 1312 receives the objects.
- the structure of the comment object includes the object ID of the photo being commented on.
- application 1312 can identify the photos that were commented on by Bob and his friends, and then select a few other photos (e.g., the two photos of Hawaii with the most tags) to display on the page for Joe.
- Application 1312 sends a response to core 1304 .
- the response includes identifier ID 1 so that the server can authenticate the response.
- the response includes the object IDs of the five photos, the object ID's of the comments, and a description of how they all should be displayed (e.g., view files).
- Core 1304 receives the response, assembles the page of photos and comments according to the response, and sends the page to browser 1302 . Joe then sees in the page the photos commented on by Bob and his friends, and the two photos of Hawaii with the most tags.
- Joe views the page of photos and comments, and decides to add a comment of his own. Joe enters a comment, and hits a submit button.
- a request is sent to core 1304 .
- Core 1304 authenticates Joe and associates a new identifier, ID 2 , with the request.
- the request is forwarded along with ID 2 to application 1312 .
- Application 1312 receives the request and identifies the user as “joe”.
- Application 1312 tags the comment as private and sends a request to core 1304 to put the comment in shared data model 1316 .
- the request includes ID 2 .
- Core 1304 receives the request, checks the identifier, and puts the data in shared data model 1316 .
- An object ID is associated with the object.
- a response is sent to application 1312 indicating the object ID of the comment.
- Application 1312 sends a response to core 1304 including the object IDs of the five photos, the object ID's of the old comments, and the object ID of the new comment.
- Text can be included, such as “Your comment has been accepted and is only viewable by you and your friends.”
- Core 1304 assembles the page of photos and comments according to the response, and sends it to browser 1302 for display. Joe then sees in the page the photos commented on by Bob and his friends, the two photos of Hawaii with the most tags, Joe's newly added comment, and the text “Your comment has been accepted and is only viewable by you and your friends.”
- the comment submitted by Joe is private. If it were instead public, then it would then become available to other applications and users for accessing and viewing.
- the shared data model can receive data from multiple applications and share data with multiple applications.
- each photo object could include metadata indicating where the photo was taken.
- the application could retrieve all photos of Hawaii, determine their locations, and display them on a map of Hawaii at the location at which they were taken.
- Another application written by another independent user could display the same photos in order of where they lie on the RGB spectrum.
- An application could include content contributed by other applications.
- Bob could create an application that displays restaurant reviews contributed by his friends using his application.
- Bob might include other restaurant reviews contributed by other applications in his restaurant review application.
- Bob might also include classified ads on a portion of his restaurant reviews page because there might be an incentive provided to include them.
Abstract
Description
Region in FIG. 2A | Relationship(s) |
252 | tag on |
254 | tag on |
256 | user of application or user who owns |
|
|
258 | object in |
262 | tag on application by user or tag on user by |
|
|
264 | tag on object in application by user or tag |
on object by |
|
270 | tag on object in application by user |
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/213,309 US7603352B1 (en) | 2005-05-19 | 2005-08-26 | Advertisement selection in an electronic application system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/134,250 US8346950B1 (en) | 2005-05-19 | 2005-05-19 | Hosted application server |
US11/213,309 US7603352B1 (en) | 2005-05-19 | 2005-08-26 | Advertisement selection in an electronic application system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/134,250 Continuation-In-Part US8346950B1 (en) | 2005-05-19 | 2005-05-19 | Hosted application server |
Publications (1)
Publication Number | Publication Date |
---|---|
US7603352B1 true US7603352B1 (en) | 2009-10-13 |
Family
ID=41138081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/213,309 Expired - Fee Related US7603352B1 (en) | 2005-05-19 | 2005-08-26 | Advertisement selection in an electronic application system |
Country Status (1)
Country | Link |
---|---|
US (1) | US7603352B1 (en) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067331A1 (en) * | 2005-09-20 | 2007-03-22 | Joshua Schachter | System and method for selecting advertising in a social bookmarking system |
US20070124208A1 (en) * | 2005-09-20 | 2007-05-31 | Yahoo! Inc. | Method and apparatus for tagging data |
US20070136657A1 (en) * | 2005-03-25 | 2007-06-14 | Daniel Blumenthal | Process for Automatic Data Annotation, Selection, and Utilization. |
US20070157110A1 (en) * | 2006-01-04 | 2007-07-05 | Ashit Gandhi | Targeted sidebar advertising |
US20080021876A1 (en) * | 2006-07-18 | 2008-01-24 | Yahoo! Inc. | Action tags |
US20080040301A1 (en) * | 2006-08-10 | 2008-02-14 | Yahoo! Inc. | System and method for inferring user interest based on analysis of user-generated metadata |
US20080086496A1 (en) * | 2006-10-05 | 2008-04-10 | Amit Kumar | Communal Tagging |
US20080276177A1 (en) * | 2007-05-03 | 2008-11-06 | Microsoft Corporation | Tag-sharing and tag-sharing application program interface |
US20090094189A1 (en) * | 2007-10-08 | 2009-04-09 | At&T Bls Intellectual Property, Inc. | Methods, systems, and computer program products for managing tags added by users engaged in social tagging of content |
US20100046842A1 (en) * | 2008-08-19 | 2010-02-25 | Conwell William Y | Methods and Systems for Content Processing |
US20100185473A1 (en) * | 2009-01-20 | 2010-07-22 | Microsoft Corporation | Document vault and application platform |
WO2011082496A1 (en) * | 2010-01-11 | 2011-07-14 | Gill Barjinderpal S | Apparatus and method for delivering target content to members on a social network |
US20110202822A1 (en) * | 2006-10-11 | 2011-08-18 | Mark Zuckerberg | System and Method for Tagging Digital Media |
US20120268244A1 (en) * | 2011-04-20 | 2012-10-25 | Peter Ljung | Methods, systems and computer program products for anonymous tracking of objects |
US20120310933A1 (en) * | 2006-07-28 | 2012-12-06 | Yahoo! Inc. | System and method for searching a bookmark and tag database for relevant bookmarks |
US20120323737A1 (en) * | 2006-09-25 | 2012-12-20 | Sms.Ac | Methods and systems for finding, tagging, rating and suggesting content provided by networked application pods |
US20140201294A2 (en) * | 2012-06-21 | 2014-07-17 | Market76, Inc. | Engine, system and method of providing vertical social networks for client oriented service providers |
US20140372529A1 (en) * | 2010-02-08 | 2014-12-18 | Yp Intellectual Property Llc | Providing an answer to a question from a social network site using a separate messaging site |
US9223866B2 (en) | 2010-02-08 | 2015-12-29 | Yellowpages.Com Llc | Tagged favorites from social network site for use in search request on a separate site |
US10043022B2 (en) * | 2012-03-05 | 2018-08-07 | R.R. Donnelley & Sons Company | Systems and methods for digital content delivery |
US10497045B2 (en) | 2016-08-05 | 2019-12-03 | Accenture Global Solutions Limited | Social network data processing and profiling |
Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5446891A (en) * | 1992-02-26 | 1995-08-29 | International Business Machines Corporation | System for adjusting hypertext links with weighed user goals and activities |
US6009410A (en) * | 1997-10-16 | 1999-12-28 | At&T Corporation | Method and system for presenting customized advertising to a user on the world wide web |
US6314451B1 (en) * | 1998-05-15 | 2001-11-06 | Unicast Communications Corporation | Ad controller for use in implementing user-transparent network-distributed advertising and for interstitially displaying an advertisement so distributed |
US6356934B1 (en) | 1997-04-28 | 2002-03-12 | Sabre Inc. | Intermediate server having control program for storing content accessed during browsing sessions and playback program for asynchronously replaying browsing sessions |
US20030105811A1 (en) | 2001-05-02 | 2003-06-05 | Laborde Guy Vachon | Networked data stores for measurement data |
US20030149975A1 (en) * | 2002-02-05 | 2003-08-07 | Charles Eldering | Targeted advertising in on demand programming |
US20030187921A1 (en) | 1999-11-30 | 2003-10-02 | Siebel Systems, Inc. | Method and system for distributing objects over a network |
US20040083264A1 (en) | 2002-10-24 | 2004-04-29 | Sun Microsystems, Inc. | Distributed data sharing methods and systems |
US6754885B1 (en) * | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
US20040187136A1 (en) | 2003-03-19 | 2004-09-23 | International Business Machines Corporation | Dynamic server page meta-engines with data sharing for dynamic content and non-JSP segments rendered through other engines |
US20050015809A1 (en) | 2003-07-16 | 2005-01-20 | Boys Donald R.M. | Method and apparatus for picture sharing over cable and other consumer subscribed television networks |
US20050097006A1 (en) | 2003-11-03 | 2005-05-05 | George Nyako | Method and apparatus for digital media distribution |
US20050102324A1 (en) | 2003-04-28 | 2005-05-12 | Leslie Spring | Support applications for rich media publishing |
US20050160094A1 (en) | 2003-11-26 | 2005-07-21 | Jared Morgenstern | Method and apparatus for constructing a networking database and system proactively |
US6934740B1 (en) | 2000-09-19 | 2005-08-23 | 3Com Corporation | Method and apparatus for sharing common data objects among multiple applications in a client device |
US20050193054A1 (en) | 2004-02-12 | 2005-09-01 | Wilson Eric D. | Multi-user social interaction network |
US20050216300A1 (en) | 2004-03-15 | 2005-09-29 | Barry Appelman | Sharing social network information |
US20060026668A1 (en) | 2004-07-30 | 2006-02-02 | Microsoft Corporation | Web application framework |
US7043716B2 (en) | 2001-06-13 | 2006-05-09 | Arius Software Corporation | System and method for multiple level architecture by use of abstract application notation |
US20060122974A1 (en) | 2004-12-03 | 2006-06-08 | Igor Perisic | System and method for a dynamic content driven rendering of social networks |
US20060195521A1 (en) | 2005-02-28 | 2006-08-31 | Yahoo! Inc. | System and method for creating a collaborative playlist |
US20060195460A1 (en) | 2005-02-28 | 2006-08-31 | Microsoft Corporation | Data model for object-relational data |
US20060242178A1 (en) * | 2005-04-21 | 2006-10-26 | Yahoo! Inc. | Media object metadata association and ranking |
US20060242554A1 (en) | 2005-04-25 | 2006-10-26 | Gather, Inc. | User-driven media system in a computer network |
US20060248573A1 (en) | 2005-04-28 | 2006-11-02 | Content Guard Holdings, Inc. | System and method for developing and using trusted policy based on a social model |
US7139761B2 (en) | 2002-12-11 | 2006-11-21 | Leader Technologies, Inc. | Dynamic association of electronically stored information with iterative workflow changes |
US20070088671A1 (en) * | 2005-10-07 | 2007-04-19 | Mcelroy Sean A | Document archival system |
US7269590B2 (en) | 2004-01-29 | 2007-09-11 | Yahoo! Inc. | Method and system for customizing views of information associated with a social network user |
US20080086564A1 (en) | 2002-01-15 | 2008-04-10 | Janis Rae Putman | Communication application server for converged communication services |
US20080201299A1 (en) | 2004-06-30 | 2008-08-21 | Nokia Corporation | Method and System for Managing Metadata |
US7502855B2 (en) | 2005-06-27 | 2009-03-10 | Renaissance Learning, Inc. | Wireless classroom system allowing user to access a particular classroom by selecting corresponding network from a list of wireless networks |
-
2005
- 2005-08-26 US US11/213,309 patent/US7603352B1/en not_active Expired - Fee Related
Patent Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5446891A (en) * | 1992-02-26 | 1995-08-29 | International Business Machines Corporation | System for adjusting hypertext links with weighed user goals and activities |
US6356934B1 (en) | 1997-04-28 | 2002-03-12 | Sabre Inc. | Intermediate server having control program for storing content accessed during browsing sessions and playback program for asynchronously replaying browsing sessions |
US6009410A (en) * | 1997-10-16 | 1999-12-28 | At&T Corporation | Method and system for presenting customized advertising to a user on the world wide web |
US6314451B1 (en) * | 1998-05-15 | 2001-11-06 | Unicast Communications Corporation | Ad controller for use in implementing user-transparent network-distributed advertising and for interstitially displaying an advertisement so distributed |
US6754885B1 (en) * | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
US20030187921A1 (en) | 1999-11-30 | 2003-10-02 | Siebel Systems, Inc. | Method and system for distributing objects over a network |
US6934740B1 (en) | 2000-09-19 | 2005-08-23 | 3Com Corporation | Method and apparatus for sharing common data objects among multiple applications in a client device |
US20030105811A1 (en) | 2001-05-02 | 2003-06-05 | Laborde Guy Vachon | Networked data stores for measurement data |
US7043716B2 (en) | 2001-06-13 | 2006-05-09 | Arius Software Corporation | System and method for multiple level architecture by use of abstract application notation |
US20080086564A1 (en) | 2002-01-15 | 2008-04-10 | Janis Rae Putman | Communication application server for converged communication services |
US20030149975A1 (en) * | 2002-02-05 | 2003-08-07 | Charles Eldering | Targeted advertising in on demand programming |
US20040083264A1 (en) | 2002-10-24 | 2004-04-29 | Sun Microsystems, Inc. | Distributed data sharing methods and systems |
US7139761B2 (en) | 2002-12-11 | 2006-11-21 | Leader Technologies, Inc. | Dynamic association of electronically stored information with iterative workflow changes |
US20040187136A1 (en) | 2003-03-19 | 2004-09-23 | International Business Machines Corporation | Dynamic server page meta-engines with data sharing for dynamic content and non-JSP segments rendered through other engines |
US20050102324A1 (en) | 2003-04-28 | 2005-05-12 | Leslie Spring | Support applications for rich media publishing |
US20050015809A1 (en) | 2003-07-16 | 2005-01-20 | Boys Donald R.M. | Method and apparatus for picture sharing over cable and other consumer subscribed television networks |
US20050097006A1 (en) | 2003-11-03 | 2005-05-05 | George Nyako | Method and apparatus for digital media distribution |
US20050160094A1 (en) | 2003-11-26 | 2005-07-21 | Jared Morgenstern | Method and apparatus for constructing a networking database and system proactively |
US7269590B2 (en) | 2004-01-29 | 2007-09-11 | Yahoo! Inc. | Method and system for customizing views of information associated with a social network user |
US20050193054A1 (en) | 2004-02-12 | 2005-09-01 | Wilson Eric D. | Multi-user social interaction network |
US20050216300A1 (en) | 2004-03-15 | 2005-09-29 | Barry Appelman | Sharing social network information |
US20080201299A1 (en) | 2004-06-30 | 2008-08-21 | Nokia Corporation | Method and System for Managing Metadata |
US20060026668A1 (en) | 2004-07-30 | 2006-02-02 | Microsoft Corporation | Web application framework |
US20060122974A1 (en) | 2004-12-03 | 2006-06-08 | Igor Perisic | System and method for a dynamic content driven rendering of social networks |
US20060195521A1 (en) | 2005-02-28 | 2006-08-31 | Yahoo! Inc. | System and method for creating a collaborative playlist |
US20060195460A1 (en) | 2005-02-28 | 2006-08-31 | Microsoft Corporation | Data model for object-relational data |
US20060242178A1 (en) * | 2005-04-21 | 2006-10-26 | Yahoo! Inc. | Media object metadata association and ranking |
US20060242554A1 (en) | 2005-04-25 | 2006-10-26 | Gather, Inc. | User-driven media system in a computer network |
US20060248573A1 (en) | 2005-04-28 | 2006-11-02 | Content Guard Holdings, Inc. | System and method for developing and using trusted policy based on a social model |
US7502855B2 (en) | 2005-06-27 | 2009-03-10 | Renaissance Learning, Inc. | Wireless classroom system allowing user to access a particular classroom by selecting corresponding network from a list of wireless networks |
US20070088671A1 (en) * | 2005-10-07 | 2007-04-19 | Mcelroy Sean A | Document archival system |
Non-Patent Citations (31)
Title |
---|
Apache Tomcat, The Apache Software Foundation, http://tomcat.apache.org/. |
Archive of "J2EE(TM) Developer's Guide-Scenarios," Sun Microsystems, Inc., pp. 1-4, [online] [Archived by http://archive.org on Nov. 11, 2001; Retrieved on Jun. 16, 2008] Retrieved from the Internet-1.2.1/techdocs/guides/ejb /html/Security4.html>. |
Archive of Flickr Photo Sharing Website, www.flickr.com/photos/tags, pp. 1-2, [Online] [Archived by http://archive.org on Apr. 24, 2005; Retrieved on Aug. 30, 2008] Retrieved from the Internet. |
Author Unknown, Sun Java System Application Server, http://www.sun.com/software/products/appsrvr/index.xml. |
Bal, H.E. et al., "A Distributed Implementation of the Shared Data-Object Model," 1989, pp. 214-232, [online] Retrieved from the Internet. |
Bayeh, E., "The WebSphere Application Server Architecture and Programming Model," IBM Systems Journal, Java Technology, 1998, vol. 37, No. 3 [online] [Retrieved on Jun. 16, 2008] Retrieved from the Internet. |
Bea, Bea Systems, http://www.bea.com/framework.jsp?CNT=homepage-main.jsp&FP=/content. |
Blogger, Blogger: Create your Blog Now, http://www.jot.com/index.php. |
Blogging Software, Business Blogs & Blog Services at TypePad.com, www.typepad.com. |
Bluehost, Web hosting provider-Bluehost.com, http://www.bluehost.com/. |
Customforce, Customizable CRM-Salesforce.com, www.customforce.com. |
Flickr, "Photo tags" (http://web.archive.org/web/20040607053757/http://www.flickr.com/photos/tags), Jun. 7, 2004, 1-3. * |
IBM, IBM WebSphere Software, http://www-306.ibm.com/software/websphere/#. |
JBOSS, JBoss.com-Professional Open Source(TM) from JBoss Inc. , http://www.jboss.com/. |
Jotspot, Jotspot-The Application Wiki, http://jot.com/index.php. |
Linderman, "The Spread of Weighted Lists" (http://www.37signals.com/svn/archives/000937.php), Dec. 2, 2004, 1-4. * |
Macromedia, ColdFusion MX 7, http://www.macromedia.com/software/coldfusion/. |
Mathes, "Folksonomies-Cooperative Classification and Communication Through Shared Metadata" (http://web.archive.org/web/20041230205122/http://www.adammathes.com/academic/computer-mediated-communication/folksonomies.html), Dec. 30, 2004, 1-20. * |
Strutz, "Communal Categorization: The Folksonomy" (http://www.davidsturtz.com/drexel/622/sturtz-folksonomy.pdf), Dec. 16, 2004, 1-8. * |
Textdrive, http://www.textdrive.com/. |
The Apache Software Foundation, http://apache.org. |
U.S. Office Action, U.S. Appl. No. 11/134,250, filed Jun. 23, 2008, 23 pages. |
U.S. Office Action, U.S. Appl. No. 11/134,250, filed May 5, 2009, 26 pages. |
U.S. Office Action, U.S. Appl. No. 11/134,250, filed Nov. 18, 2008, 50 pages. |
U.S. Office Action, U.S. Appl. No. 11/141,983, filed Mar. 18, 2009, 15 pages. |
U.S. Office Action, U.S. Appl. No. 11/141,983, filed Sep. 3, 2008, 17 pages. |
U.S. Office Action, U.S. Appl. No. 11/195,349, filed Apr. 3, 2009, 9 pages. |
U.S. Office Action, U.S. Appl. No. 11/195,349, filed Aug. 19, 2008, 12 pages. |
U.S. Office Action, U.S. Appl. No. 11/195,378, filed Mar. 10, 2008, 44 pages. |
U.S. Office Action, U.S. Appl. No. 11/195,378, filed Sep. 29, 2008, 42 pages. |
Yahoo, Yahoo! GeoCities, http://geocities.yahoo.com/. |
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136657A1 (en) * | 2005-03-25 | 2007-06-14 | Daniel Blumenthal | Process for Automatic Data Annotation, Selection, and Utilization. |
US8768772B2 (en) | 2005-09-20 | 2014-07-01 | Yahoo! Inc. | System and method for selecting advertising in a social bookmarking system |
US20070124208A1 (en) * | 2005-09-20 | 2007-05-31 | Yahoo! Inc. | Method and apparatus for tagging data |
US11055476B2 (en) * | 2005-09-20 | 2021-07-06 | Pinterest, Inc. | Processing web page data across network elements |
US20160378726A1 (en) * | 2005-09-20 | 2016-12-29 | Yahoo! Inc. | Processing web page data across network elements |
US20210334451A1 (en) * | 2005-09-20 | 2021-10-28 | Pinterest, Inc. | Uniform resource locator subscription service |
US20140281861A1 (en) * | 2005-09-20 | 2014-09-18 | Yahoo! Inc. | Method And Apparatus For Tagging Data |
US20070067331A1 (en) * | 2005-09-20 | 2007-03-22 | Joshua Schachter | System and method for selecting advertising in a social bookmarking system |
US20070157110A1 (en) * | 2006-01-04 | 2007-07-05 | Ashit Gandhi | Targeted sidebar advertising |
US20140101599A1 (en) * | 2006-01-04 | 2014-04-10 | Yahoo! Inc. | Targeted sidebar advertising |
US20190114056A1 (en) * | 2006-01-04 | 2019-04-18 | Excalibur Ip, Llc | Targeted sidebar advertising |
US10175862B2 (en) * | 2006-01-04 | 2019-01-08 | Excalibur Ip, Llc | Targeted sidebar advertising |
US8621372B2 (en) * | 2006-01-04 | 2013-12-31 | Yahoo! Inc. | Targeted sidebar advertising |
US10754521B2 (en) * | 2006-01-04 | 2020-08-25 | R2 Solutions, Llc | Targeted sidebar advertising |
US8132151B2 (en) * | 2006-07-18 | 2012-03-06 | Yahoo! Inc. | Action tags |
US20080021876A1 (en) * | 2006-07-18 | 2008-01-24 | Yahoo! Inc. | Action tags |
US20160283604A1 (en) * | 2006-07-28 | 2016-09-29 | Yahoo! Inc. | System and method for searching a bookmark and tag database for relevant bookmarks |
US9367637B2 (en) * | 2006-07-28 | 2016-06-14 | Excalibur Ip, Llc | System and method for searching a bookmark and tag database for relevant bookmarks |
US20120310933A1 (en) * | 2006-07-28 | 2012-12-06 | Yahoo! Inc. | System and method for searching a bookmark and tag database for relevant bookmarks |
US8707160B2 (en) * | 2006-08-10 | 2014-04-22 | Yahoo! Inc. | System and method for inferring user interest based on analysis of user-generated metadata |
US20080040301A1 (en) * | 2006-08-10 | 2008-02-14 | Yahoo! Inc. | System and method for inferring user interest based on analysis of user-generated metadata |
US20120323737A1 (en) * | 2006-09-25 | 2012-12-20 | Sms.Ac | Methods and systems for finding, tagging, rating and suggesting content provided by networked application pods |
US20080086496A1 (en) * | 2006-10-05 | 2008-04-10 | Amit Kumar | Communal Tagging |
US20110231747A1 (en) * | 2006-10-11 | 2011-09-22 | Mark Zuckerberg | Tagging Digital Media |
US20110202822A1 (en) * | 2006-10-11 | 2011-08-18 | Mark Zuckerberg | System and Method for Tagging Digital Media |
US10296536B2 (en) * | 2006-10-11 | 2019-05-21 | Facebook, Inc. | Tagging digital media |
US20080276177A1 (en) * | 2007-05-03 | 2008-11-06 | Microsoft Corporation | Tag-sharing and tag-sharing application program interface |
US20090094189A1 (en) * | 2007-10-08 | 2009-04-09 | At&T Bls Intellectual Property, Inc. | Methods, systems, and computer program products for managing tags added by users engaged in social tagging of content |
US8520979B2 (en) * | 2008-08-19 | 2013-08-27 | Digimarc Corporation | Methods and systems for content processing |
US20100046842A1 (en) * | 2008-08-19 | 2010-02-25 | Conwell William Y | Methods and Systems for Content Processing |
US20100185473A1 (en) * | 2009-01-20 | 2010-07-22 | Microsoft Corporation | Document vault and application platform |
US20140101011A1 (en) * | 2009-01-20 | 2014-04-10 | Microsoft Corporation | Document Vault and Application Platform |
US8620778B2 (en) * | 2009-01-20 | 2013-12-31 | Microsoft Corporation | Document vault and application platform |
WO2011082496A1 (en) * | 2010-01-11 | 2011-07-14 | Gill Barjinderpal S | Apparatus and method for delivering target content to members on a social network |
US9237123B2 (en) * | 2010-02-08 | 2016-01-12 | Yp Llc | Providing an answer to a question from a social network site using a separate messaging site |
US9223866B2 (en) | 2010-02-08 | 2015-12-29 | Yellowpages.Com Llc | Tagged favorites from social network site for use in search request on a separate site |
US20140372529A1 (en) * | 2010-02-08 | 2014-12-18 | Yp Intellectual Property Llc | Providing an answer to a question from a social network site using a separate messaging site |
US9049559B2 (en) * | 2011-04-20 | 2015-06-02 | Sony Corporation | Methods, systems and computer program products for anonymous tracking of objects |
US20120268244A1 (en) * | 2011-04-20 | 2012-10-25 | Peter Ljung | Methods, systems and computer program products for anonymous tracking of objects |
US10043022B2 (en) * | 2012-03-05 | 2018-08-07 | R.R. Donnelley & Sons Company | Systems and methods for digital content delivery |
US10417440B2 (en) | 2012-03-05 | 2019-09-17 | R. R. Donnelley & Sons Company | Systems and methods for digital content delivery |
US20140201294A2 (en) * | 2012-06-21 | 2014-07-17 | Market76, Inc. | Engine, system and method of providing vertical social networks for client oriented service providers |
US10497045B2 (en) | 2016-08-05 | 2019-12-03 | Accenture Global Solutions Limited | Social network data processing and profiling |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7603352B1 (en) | Advertisement selection in an electronic application system | |
US7756945B1 (en) | Interacting with a shared data model | |
JP6400772B2 (en) | Providing content to users across multiple devices | |
US8346950B1 (en) | Hosted application server | |
US8768772B2 (en) | System and method for selecting advertising in a social bookmarking system | |
US8868560B2 (en) | System and method of a knowledge management and networking environment | |
US20160253700A1 (en) | System and method for automated advocate marketing with digital rights registration | |
US9135665B2 (en) | Recommendation widgets for a social marketplace | |
US8447643B2 (en) | System and method for collecting and distributing reviews and ratings | |
US7809801B1 (en) | Method and system for keyword selection based on proximity in network trails | |
US7310612B2 (en) | Personalized selection and display of user-supplied content to enhance browsing of electronic catalogs | |
US20070067217A1 (en) | System and method for selecting advertising | |
US20110196863A1 (en) | Tagged favorites from social network site for use in search request on a separate site | |
US9213765B2 (en) | Landing page search results | |
US7779147B1 (en) | Method and system for advertisement placement based on network trail proximity | |
US20140040729A1 (en) | Personalizing a web page outside of a social networking system with content from the social networking system determined based on a universal social context plug-in | |
US20110258529A1 (en) | Systems and methods for excluding serving an advertisement campaign to undesired web pages | |
CN101647041A (en) | Point of presence distribution mechanism for digital content objects | |
US20120030013A1 (en) | Slideshows in search | |
WO2009035618A2 (en) | System and method of a knowledge management and networking environment | |
US8463817B2 (en) | User-defined classifieds | |
US20060074843A1 (en) | World wide web directory for providing live links | |
US20140025597A1 (en) | Applying for a job using a mobile computing device | |
US20110040740A1 (en) | Search engine utilizing flow networks | |
US11250079B2 (en) | Linked network presence documents associated with a unique member of a membership-based organization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: 24 HOUR LAUNDRY, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VASSALLO, STEVEN;ANDREESSEN;REEL/FRAME:017011/0573;SIGNING DATES FROM 20050922 TO 20050923 |
|
AS | Assignment |
Owner name: 24 HOUR LAUNDRY, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VASSALLO, STEVEN;ANDREESSEN, MARC L;REEL/FRAME:017667/0201;SIGNING DATES FROM 20050922 TO 20050923 |
|
AS | Assignment |
Owner name: NING, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:24 HOUR LAUNDRY, INC.;REEL/FRAME:020686/0989 Effective date: 20050607 |
|
AS | Assignment |
Owner name: GLAM MEDIA, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NING, INC.;REEL/FRAME:027540/0858 Effective date: 20120113 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
SULP | Surcharge for late payment | ||
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.) |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20171013 |