This application claims priority to U.S. patent application No.12/030,715, filed on 13/1/2008, the entire contents of which are incorporated herein by reference.
Detailed Description
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific embodiments of the invention. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, the present invention may be embodied as methods or devices. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
Throughout the specification and claims, the following terms take the meanings explicitly associated herein, unless the context clearly dictates otherwise. The phrase "in one embodiment" does not necessarily refer to the same embodiment, although it may. Moreover, the phrase "in another embodiment" does not necessarily refer to a different embodiment, although it may. Thus, as described below, various embodiments of the present invention may be readily combined without departing from the scope and spirit of the present invention.
A "social search" or "social query" is a search or query for any type of information from a person's social network. Such searches are generally opinion-based, such that the context and experience of a person may be responsive to varying degrees. Non-limiting examples of social searches or queries are: the best restaurant in a particular location; experience with consumer products; and likes and dislikes of the work of the hairpiece singer.
The term "social network" as used herein refers to a network of individual friends, family, colleagues, collaborators, and potential subsequent relationships within those networks. Social networks, for example, may be used to find more relevant relationships for various activities, including but not limited to dating, work networking (working), service recommendations, content sharing, like-minded individuals, activity partners, and so forth.
An online social network refers to a collection of individuals' direct and/or indirect personal relationships, including real and virtual privileges and permissions that users may associate with those individuals. Direct personal relationships refer to relationships with those people with whom the user is directly connected (e.g., including family members, friends, colleagues, collaborators) and others for some form of direct contact with (e.g., personally connected by phone, by email, by short message, by letter, etc.). These direct human relationships are sometimes referred to as first degree relationships. The first degree relationships may have different degrees of closeness, confidence, and other characteristics.
Indirect personal relationships refer to relationships through first degree relationships with those people with whom the person has no direct or limited direct contact in some form (e.g., is cc'd on an email message). For example, a friend of a friend represents an indirect personal relationship. A broader indirect relationship may be a friend of a friend. These indirect relationships are sometimes characterized by the degree of separation between people. For example, a friend of a friend is characterized by two degrees of separation or a second degree of relationship. Similarly, a friend of a friend is characterized by three degrees of separation or a third degree relationship, and so on.
Although not necessarily true, social networks generally consist of individuals with similar experience, opinion, educational level, and/or background. For social searches or queries, the first degree social network of an individual may be the largest source of information. The reason is that a direct relationship with an individual may result in more relevant information, more ready and complete responses, and responses from individuals with similar experience, opinion, education level, background, etc.
Social searches or queries may obtain more meaningful results if directed to a target contact within a social network. "target contacts" are those individuals within a social network that receive a social search or query. The target contact may be determined by the system in various ways. In one embodiment, the individual may be selected by a user. Alternatively, these individuals may be automatically selected based on specific attributes related to social searches. For example, the target contact may be a person with an "attribute" that has specific expertise in the field of interest. For example, a person within a person's social network may have a more beneficial opinion in certain areas than others within the social network. For example, a particular target contact may be very visible to a restaurant at a particular location within a city. Such a target contact may have the attribute "gourmet". Thus, any restaurant-related social search or query response from such individuals regarding restaurants would be particularly relevant and may be given a higher level of relevance. This attribute may be used as a factor in the automatic selection by the system of the target contact. This attribute may also be used in the presentation of search results. As another example, attributes may be provided to people whose opinions are at a premium, who have previously provided valuable responses, or who have some special relationship to the user. Alternatively, attributes may also have a negative weighting, such as people within a social network but whose opinion on a certain topic has a lower value, e.g., due to lack of experience or non-compliance with the user's taste.
Information obtained through social searches may be captured by a user and retained in a knowledge base. A knowledge base is in a general sense a collection of results from a social search. The knowledge base may be specific to a particular user such that only social searches for that particular user are retained within the knowledge base. Alternatively, the knowledge base may include social searches of a social network. In such a case, the knowledge base would be able to associate a particular response with a particular person within the social network. The knowledge base may include information about attributes of people within the social network and may also include information about the usefulness of social search responses. The information about usefulness may be a rating system, such that highly relevant and useful responses will be given a high ranking (e.g., three stars) while irrelevant responses will be given a low ranking (e.g., no stars). Such ratings may then be used to provide a ranking of the information contained within the knowledge base with respect to a particular social search of a particular user.
The number of responses to a social query may be expanded by obtaining responses from an expanded social network. The second degree and third degree social networks of the person may be a source for additional social search responses. However, as the degree of separation increases, so does the likelihood of differences and less relevant responses between the user's context and experience relative to those of an expanded social network. This may be mitigated by targeting the query to target contacts with specific attributes. If the knowledge base is specific to a particular user, access to the augmented social network may be based on permissions provided by the owner of the social network knowledge base. Owners of the social network repository may provide access permissions to people within a certain degree of separation from their social network. Alternatively, individuals within a social network may set permission contact levels to block social search requests for particular individuals or groups of individuals, e.g., queries from those outside their first degree social network.
The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This brief description is not intended as an extensive overview. It is not intended to identify key or critical elements or to delineate or otherwise narrow the scope. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
In performing a social search, in one embodiment, a social network interface will be presented to a user on a client device, such as a mobile phone, desktop computer, or similar client device. The interface will have an area for entering a social search and an interface for selecting a target contact to receive the social search. The user will enter a social search along with the target contact to begin the social search process. However, in another embodiment, the target contact may be suggested to the user based on various criteria including, but not limited to, the number of contacts available to the user, the type of search request, the subject matter of the social search request, and the like. For example, in the case where the user is requesting a food-based search, the user may be provided with a target contact list that includes those contacts that have been determined by the user to be visible to food, thereby making the search process easier and more convenient for the user.
In one embodiment, the network device receives a social search request including a target contact and forwards the social search request to the selected target contact. The network device also performs a search of the user's knowledge base to find previous social search responses from the target contact. These search results are extracted from the knowledge base and stored and presented to the user according to relevance. Any responses received by the network device are then stored in the knowledge base for subsequent social searches. The storage of the social search response may be done automatically. Alternatively, the storage of the social search response may be controlled by the user, for example, by a prompt to the user as to whether to store the social search response. As part of this process, the ranking or classification of the responses may be made as part of the stored process. For example, social search responses may be automatically classified as relevant to a topic when stored in a knowledge base. Alternatively, the user may be prompted to provide attributes for those target contacts that have provided a social search response. The knowledge base may also contain information about the number of social search responses provided by a particular target contact and the domain to which the responses provided by the particular target contact are directed as part of the attributes of that particular target contact. This has the advantage that the user can obtain instant results from a search of the knowledge base and later obtain additional responses from the user's social network contacts.
In another embodiment of the invention, the network device may rank the extracted prior responses from the knowledge base along with the response from the current target contact. The results of the ranking may then be presented to the user together with relevance or other criteria such as attributes of the target contact. For example, if the search is performed for the downtown restaurant that is best-east, the knowledge base may be searched for target contacts that are within three degrees of separation from the user's social network and that contain the attribute "gourmet home". The results may be a ranked combined result of current responses from target contacts within the first degree (friends), second degree (friends of friends), and third degree (friends of friends) social networks with knowledge base search results of prior social search requests for target contacts also within the first degree, second degree, and third degree social networks. It is clear that the combined results of such a search will provide collective knowledge of a relatively large group of people with expertise in a particular domain (e.g., food in this example), who have common links in the form of a social network. These search results may be provided after a predetermined event, e.g., a certain period of time has elapsed and/or a predetermined number of responses have been received by the target contact, etc. Search results may be provided in various ways, such as through a widget (an interface element, e.g., a window or text box, with which a computer user interacts).
In another embodiment, the user may be prompted to sort or rank the responses received from the social queries or even the prior social search responses. By continuously performing social searches, sorting, ranking, and storing the results, individuals may augment their own knowledge base. By expanding the target contact beyond the first degree social network, the individual may increase their knowledge base and be provided with an opportunity for further socialization. In effect, the knowledge base and ranking become an expert system that gradually increases "knowledge" with each new social search request.
Illustrative operating Environment
FIG. 1 illustrates components of one embodiment of an environment in which the invention may be practiced. Not all components may be required to practice the invention, and variations in the arrangement and type of the components may be made without departing from the spirit or scope of the invention. As shown, the system 100 of FIG. 1 includes a local area network ("LAN")/wide area network ("WAN") (network) 105, a wireless network 110, a client device 101, a repository server 106, and a content server 108.
In general, client devices 101-104 may include virtually any mobile computing device capable of receiving and sending messages over a network, such as wireless network 110. Such devices include portable devices such as cellular telephones, smart phones, display pagers, Radio Frequency (RF) devices, Infrared (IR) devices, Personal Digital Assistants (PDAs), handheld computers, laptop computers, wearable computers, tablet computers, integrated devices combining one or more of the preceding devices, and the like. One embodiment of a mobile device that may be used as one of client devices 102 and 104 is described in more detail below in conjunction with FIG. 2.
Client device 101 may include virtually any computing device typically connected using a wired communications medium such as personal computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, and the like. In one embodiment, client devices 101-104 may be configured to operate over a wired and/or wireless network.
Client devices 101-104 are typically wide ranging in performance and characteristics. For example, a cellular telephone may have a numeric keypad and a monochrome LCD display that can only display a few lines of text. In another example, a web-enabled client device may have a touch-sensitive screen, a stylus, and a color LCD display that can display several lines of both text and graphics.
A web-enabled client device may include a browser application configured to receive and transmit web pages, web-based messages, and the like. The browser application may be configured to receive and display graphics, text, multimedia, and the like, employing virtually any web-based language, including wireless application protocol messages (WAP), and the like. In one embodiment, the browser application is enabled to employ Handheld Device Markup Language (HDML), Wireless Markup Language (WML), WMLScript, JavaScript, standard generalized markup language (SMGL), hypertext markup language (HTML), extensible markup language (XML), and the like, to display and send messages.
Client device 101-104 may also include at least one other client application configured to receive content from another computing device. The client application may include capabilities for providing and receiving textual content, multimedia information, and the like. The client application may also provide information identifying itself, including type, capabilities, name, and the like. In one embodiment, client devices 101-104 may be used in any of a variety of mechanisms to uniquely identify themselves, including a telephone number, Mobile Identification Number (MIN), Electronic Serial Number (ESN), network address, or other device identifier. The information may also indicate a content format in which the client device is enabled. Such information may be provided in a message sent to another computing device.
Client device 101 may also be configured to communicate messages with another computing device, for example, by email, Short Message Service (SMS), Multimedia Message Service (MMS), Instant Messaging (IM), IRC (mIRC) of Online chat (IRC) Mardam-Bey, Jabber, and so forth. However, the present invention is not limited to these message protocols and virtually any other message protocol may be employed.
Client device 101 may also be configured to include a client application that enables a user to log into a user account that may be managed by another computing device, such as content server 108, knowledge base server 106, and so forth. Such a user account may be configured, for example, to enable a user to receive emails, send/receive IM messages, SMS messages, access selected web pages, participate in social networking activities, provide messages that may include links or attachments, and so forth. However, the management of messages may also be performed without logging into the user account.
The message may be sent using a variety of messaging protocols including, but not limited to, SMS, IM, MMS, email, etc. The recipient of the message has the following options: the message is either responded to by addressing the response to only the sender or to all recipients and either the sender or a particular recipient is selected. The recipient may also forward the email to other parties. For example, the recipients may think that another person within their own social network has a particular experience in the field, so they will forward the received message to the people in their network to respond. In such a case, the forwarded recipient may then be given the option of responding directly to the original sender or to the recipient receiving the message. Further, in one embodiment, the forwarded message may include a reference to content, text, or a message, for example, using an attachment, a link, content included in the forwarded message, a copy of an article or message, or virtually any other mechanism.
The user's social network may be composed of different groups. For example, the initial social network may be any contact within an individual's email address book. A person's social network may also include various groups, for example, an individual's contacts may be grouped into work-related contacts, school-related contacts, social contacts, and so forth. The addresses of these social contacts may be stored in memory in client device 101 and 104, or may reside anywhere else within wide area network/local area network 105 or wireless network 110 or on various servers connected to these networks.
In one embodiment, recipients of a social search may have their own social networking contacts that are also accessible over a network. The recipients may have a predetermined permission level for individuals within their social network to access the recipient's social network contacts. If granted a permission level, the user's social search may be forwarded to each of the social contacts within the recipient's social network. If this is done, responses to the user's social search will become more meaningful as they will include responses from like minded individuals, e.g., from individuals with similar education levels, ages, social economic status, etc. In one embodiment, the response from the recipient's social network will be added to the user's knowledge base.
Contacts within a user's social network may be categorized with different attributes. A particular contact may be considered to have a particular field of experience. For example, a particular contact may be considered an expert in new consumption technology. Another contact may be particularly visible to music. A contact may also have an attribute such as someone with a similar taste to the user or of the same type as the user, etc. Social network contacts may also have attributes that may be considered negative attributes, e.g., have different tastes or lack of domain-specific knowledge. Thus, one embodiment utilizes expert opinions of a particular area of a person's social network. By providing these attributes to contacts within a user's social network, the user may obtain more relevant information in a more timely manner by ranking and classifying responses to social requests according to these different attributes.
In one embodiment of the invention, a social request is made by a user for a social network contact. The target contact may respond to the social request. The system may search for previous social requests and then sort the previous social requests and the responses of the target contacts together according to the attributes of the target contacts. For example, only those responses and prior responses for target contacts having attributes such as a particular expert opinion or similar taste or type will be presented to the user, alternatively, those target contacts having attributes such as expert opinions will be given a higher relevance weight than other target contact responses.
In another embodiment of the invention, those recipients of the social network request that have provided permission to access their own social network contacts automatically forward the social search request to those target contacts within the recipients 'social networks that have attributes related to or specified by the user's social search request. In such embodiments, the attributes provided by the user must be the same or comparable. For such embodiments, the potential attributes may be standardized among users of the social search system. However, the potential attributes may also be customized by the user and potentially shared within the user's social network.
When users receive responses to social requests, they are given the opportunity to either sort/rank the responses in some way or sort/rank the target contacts with certain attributes, and then store or update the social search request responses in a knowledge base. The storage of these prior social search responses creates a knowledge base for the particular user. In one embodiment, these attributes of the target contact and the relevance of the social search response allow for more relevant responses to future social search requests.
Wireless network 110 is configured to connect with client devices 102 and 104 using network 105. Wireless network 110 may include any of a variety of wireless sub-networks that may further overlay stand-alone ad-hoc networks, etc. to provide infrastructure connectivity to client devices 102 and 104. Such subnetworks may include mesh networks, wireless lan (wlan) networks, cellular networks, and so forth.
Wireless network 110 may also include an autonomous system of terminals, gateways, routers, and the like connected by wireless links, and the like. These connectors may be configured to be freely movable and organized arbitrarily, so that the technology of the wireless 110 may change rapidly.
Wireless network 110 may also employ a variety of access technologies including second generation (2G), third generation (3G) wireless access for cellular systems, WLANs, Wireless Router (WR) networks, and the like. Access technologies such as 2G, 3G, and future access networks may enable coverage for client devices (e.g., client device 102 and 104) with different degrees of mobility. For example, the wireless network 110 may enable radio connections through radio network access, such as global system for mobile communications (GSM), General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (WCDMA), bluetooth, and so on. In essence, wireless network 110 may include virtually any wireless communication mechanism by which information may be communicated between client device 102 and 104 and another computing device, network, and the like.
Network 105 is configured to connect repository server 106 and its components with other computing devices including content server 108, client device 101, and to client device 102 and 104 through wireless network 110. The network 105 is enabled to employ any form of computer-readable media for communicating information from one electronic device to another. Also, the network 105 may include the Internet, other forms of computer-readable media, or any combination thereof, in addition to a Local Area Network (LAN), a Wide Area Network (WAN), direct connection such as through a Universal Serial Bus (USB) port. On an interconnected set of LANs, including those based on differing architectures and protocols, routers act as links between LANs, enabling messages to be sent from one to another. Also, the communication links within LANs typically include twisted wire pairs or coaxial cables, while the communication links between networks may utilize analog telephone lines, full or partial dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDN), Digital Subscriber Lines (DSL), wireless links including satellite links, or other communication links known to those skilled in the art. In addition, remote computers and other related electronic devices can be remotely connected to either LANs and WANs via a modem or temporary telephone link. Network 105 includes virtually any communication method by which information may be communicated between computing devices.
In addition, communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave, data signal or other transport mechanism and includes any information delivery media. The terms "modulated data signal" and "carrier-wave signal" includes a signal that has one or more of its characteristics set or changed in such a manner as to encode information, instructions, data, and the like, in the signal. For example, communication media includes wired media such as twisted pair, coaxial cable, fiber optics, wave guides, and other wired media and wireless media such as acoustic, RF, infrared, and other wireless media.
One embodiment of knowledge base server 106 is described in more detail below in conjunction with FIG. 3. Briefly, however, knowledge base server 106 may comprise any computing device capable of connecting to network 105 to enable management of communications within a social network. In one embodiment, the knowledge base server 106 may provide an interface for users of the client devices 101 and 104 to paste, propagate, delete, or otherwise manage the distribution of messages and communications.
Knowledge base server 106 may store the responses of the user's social search request within data storage device 110. The data storage 110 may have multiple knowledge bases. In one embodiment, the knowledge base may include a knowledge base for each particular user. In another embodiment, the knowledge base may be an aggregated knowledge base for multiple users. In the latter example, access to the single response may be determined based on the identity of the user. The knowledge base may include the target contact identification information, the content of the response, and any ranking/classification of the target contact or response. The repository may also be a distributed platform that can be accessed in different ways, such as an HTTP or TCP proxy interface. The knowledge base may be replicated at different locations and may be indexed or archived for reference.
It should be noted that although FIG. 1 illustrates knowledge base server 106 being used to manage messages and communications, the invention is not so limited. For example, as described above, the client device 101-104 may also be configured with client applications, scripts, plug-ins, widgets, applets, and the like, configured and managed to enable the client device to manage communications within the social network. Also, in another embodiment, the various functions performed by repository server 106 may be distributed across multiple network devices or client devices.
Devices that may be used as repository server 106 may include personal computers, desktop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, servers, and the like.
Content server 108 comprises virtually any network computing device configured to provide various resources, including content and/or services over network 105. As such, content server 108 represents one embodiment of a content system. Content server 108 may provide access to any of a variety of content, including but not limited to: messages, such as email, SMS messages, IM messages; searching results; news; an article; a web site; a hyperlink; advertising; commenting; and content that may include video files, audio files, text files, streaming files, graphics files, and the like. Thus, virtually any content may pass through the content server 108 for access by the client device 101-104. In one embodiment, the content server 108 may be configured and arranged to post, view, link, and/or otherwise access websites of content by users. The content server 108 may also provide FTP services, web services, database services, etc. that enable users to access content. In addition, content server 108 may also provide messaging devices, such as email servers, text messaging servers, and the like. However, the content server 108 is not limited to these mechanisms and/or content, and others are also contemplated.
The content server 108 may include an interface that may request information from a user of the client device 101-104. For example, the content server 108 may provide access to an account, which may request user login information. Such login information may include a username, password, or other identifier of the user and/or client device used by the user. In addition, content server 108 may also be configured to manage information for users, such as address books, buddy lists, or other types of contact lists. In one embodiment, such a contact list may be made available to knowledge base server 106.
Devices that may be used as content server 108 include, but are not limited to, personal computers, desktop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, servers, network appliances, and the like. Further, although knowledge base server 106 and content server 108 are illustrated as distinct devices, the invention is not so limited. For example, in one embodiment, knowledge base server 106 and content server 108 may be implemented in a single network device or distributed across multiple network devices.
Illustrative client environment
Fig. 2 illustrates one embodiment of a mobile device 200 that may be included in a system that implements the present invention. Mobile device 200 may include more or fewer components than shown in fig. 2. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the present invention. The mobile device 200 may represent, for example, one of the client devices 102 and 104 of FIG. 1.
As shown, mobile device 200 includes a processing unit (CPU)222 in communication with a mass memory 230 via a bus 224. Mobile device 200 also includes a power supply 226, one or more network interfaces 250, an audio interface 252, a video interface 259, a display 254, a keypad 256, an illuminator 258, an input/output interface 260, a haptic interface 262, and any Global Positioning System (GPS) receiver 264. Power supply 226 provides power to mobile device 200. Rechargeable or non-rechargeable batteries may be used to supply power. It may also be powered by an external power source, such as an AC adapter or a powered docking cradle (charger) that recharges and/or recharges the batteries.
Mobile device 200 may optionally communicate with a base station (not shown), or directly with another computing device. Network interface 250 includes circuitry for connecting mobile device 200 to one or more networks and is constructed for use with one or more communication protocols and technologies, including, but not limited to, global system for mobile communications (GSM), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), User Datagram (UDP), transmission control protocol/internet protocol (TCP/IP), SMS, General Packet Radio Service (GPRS), WAP, Ultra Wideband (UWB), IEEE 802.16 worldwide interoperability for microwave Access (WiMax), SIP/RTP, BluetoothTMInfrared, Wi-Fi, Zigbee, or any of a variety of other wireless communication protocols. Network interface 250 is also sometimes referred to as a transceiver, transceiving device, or Network Interface Card (NIC).
Audio interface 252 is arranged to generate and receive audio signals, such as the sound of a human voice. For example, audio interface 252 may be coupled to a speaker and microphone (not shown) to enable communication with others and/or to generate an audio acknowledgement for some action. Display 254 may be a Liquid Crystal Display (LCD), gas plasma, Light Emitting Diode (LED), or any other type of display used with a computing device. The display 254 may also include a touch sensitive screen arranged to receive input from an object, such as a stylus or a user's finger.
The video interface 259 is arranged to capture video images, e.g. still photographs, video clips, infrared video, etc. For example, video interface 259 may be coupled to a digital camera, a web camera, and the like. The video interface 259 may include a lens, an image sensor, and other electronic devices. The image sensor may include a Complementary Metal Oxide Semiconductor (CMOS) integrated circuit, a Charge Coupled Device (CCD), and any other integrated circuit for sensing light.
The keypad 256 may include any input device arranged to receive input from a user. For example, the keypad 256 may include a push button numeric dialing pad or keyboard. The keypad 256 may also include command buttons associated with setting and sending images. Illuminator 258 may provide a status indication and/or provide light. Illuminator 258 may remain active for a particular period of time or in response to an event. For example, when illuminator 258 is active, it may backlight the buttons on keyboard 256 and remain on while the client device is powered. Also, illuminator 258 may backlight these buttons in different patterns when a particular action (e.g., dialing another client device) is performed. Illuminator 258 may also cause a light source located within a transparent or translucent housing of the client device to illuminate in response to the action.
Mobile device 200 also includes input/output interface 260 for communicating with external devices, such as a headset, or other input or output devices not shown in fig. 2. Input/output interface 260 can utilize one or more communication technologies, e.g., USB, infrared, BluetoothTMWi-Fi, Zigbee, etc. The haptic interface 262 is arranged to provide haptic feedback to a user of the client device. For example, the haptic interface may be used to call another user of the computing deviceTo vibrate the mobile device 200 in a particular manner.
Optional GPS transceiver 264 can determine the physical coordinates of mobile device 200 on the surface of the earth, which outputs a position as dimensional and longitude values. GPS transceiver 264 can also employ other geolocation mechanisms including, but not limited to, triangulation, Assisted GPS (AGPS), E-OTD, CI, SAI, ETA, BSS, etc. to further determine the physical location of mobile device 200 on the surface of the Earth. It is to be appreciated that under different conditions, GPS transceiver 264 can determine a physical location within millimeters for mobile device 200; while in other cases the determined physical location may be less accurate, such as within meters or a much greater distance. However, in one embodiment, the client device may provide information used to determine the physical location of the device through other components, including, for example, a MAC address, an IP address, and the like.
In one aspect of the invention, the physical location of the mobile device may be used as an aspect of the ranking used by social search recipients to perform responses. For example, a social search may be directed to only those social contacts that are within a certain distance from a particular location.
Mass memory 230 includes a RAM 232, a ROM 234, and other storage devices. Mass memory 230 illustrates another example of computer-readable device media for storage of information such as computer-readable instructions, data structures, program modules or other data. Mass memory 230 stores a basic input/output system ("BIOS") 240 for controlling low-level operations of mobile device 200. The mass memory also stores an operating system 241 for controlling the operation of mobile device 200. It will be appreciated that the assembly may comprise: general-purpose operating systems, e.g. UNIX version or LINUXTM(ii) a Or a dedicated client communication operating system, e.g. Windows MobileTM、SymbianOperating System or Y! GO. The operating system may for example comprise or interface with a Java virtual machine module,the Java virtual machine module enables control of hardware components and/or operating system operations via Java applications.
Memory 230 also includes one or more data storage 244, which can be employed by mobile device 200 to store, among other things, applications 242 and/or other data. Memory 230 may also be used to store a knowledge base of the user. For example, the data storage 244 may also be employed to store information that describes various capabilities of the mobile device 200. This information may then be provided to another device based on one of a variety of events, including being sent as part of a header during a communication, being sent after a request, etc. In addition, the data storage 244 may also be used to store personal information including, but not limited to, address lists, contact lists, personal preferences, and the like. The data storage 244 may also include certain configuration information (profile information). At least a portion of this information may be stored in a disk device or other storage medium (not shown) within mobile device 200.
Applications 242 may include computer-executable instructions that, when executed by mobile device 200, send/receive and/or otherwise process messages (e.g., SMS, MMS, IM, email, and/or other messages), multimedia information, and enable communication with another user of another client device. Other examples of application programs include calendars, browsers, email clients, IM applications, SMS applications, VOIP applications, contact managers, task managers, transcoders, database programs, word processing programs, security applications, spreadsheet programs, games, search programs, and so forth. Applications 242 may also include Social Search Manager (SSM)245 and knowledge base server 255. Repository server 255 may be any application for managing a repository of prior social search responses, as described below. In one embodiment, social search manager 245 may be a browser application. In another embodiment, social search manager 245 may be a plug-in, script, applet, widget, or the like having downloadable functionality configured and arranged to manage communications between a user and the user's social network.
SSM 245 may comprise a browser application configured to receive and display graphics, text, multimedia, and the like, employing virtually any web-based language. In one embodiment, the browser application is enabled to employ Handheld Device Markup Language (HDML), Wireless Markup Language (WML), WMLScript, JavaScript, standard generalized markup language (SMGL), hypertext markup language (HTML), extensible markup language (XML), and the like, to display and send messages. However, any of a variety of other network-based languages may also be employed.
SSM 245 may also be configured as a messenger application configured to send, receive, and/or otherwise process messages using SMS, MMS, IM, email, VOIP, and/or any of a variety of other messaging protocols. Although a single SSM 245 is illustrated, it should be clear that multiple applications may be employed. For example, one SSM 245 may be configured to manage SMS messages, where another application may manage IM messages, and another messaging client is configured to manage email, and so on. One example of an interface on mobile device 200 that may be used to manage social search communications is described in more detail below in conjunction with FIG. 6.
Illustrative network device Environment
Fig. 3 illustrates one embodiment of a network device, according to one embodiment of the invention. Network device 300 may include many more components than those shown. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the present invention. Network device 300 may represent, for example, knowledge base server 106 of FIG. 1.
Network device 300 includes processing unit 312, video display adapter 314, and a mass memory, all in communication with each other via bus 322. The mass memory generally includes RAM316, ROM 332, and one or more permanent mass storage devices, such as hard disk drive 328, tape drive, optical drive, and/or floppy disk drive. The mass memory stores operating system 320 for controlling the operation of network device 300. Any general purpose operating system may be used. A basic input/output system ("BIOS") 318 is also provided for low-level operation of network device 300. As shown in fig. 3, the network device 300 may also communicate with the internet or some other communication network via a network interface unit 310, the network interface unit 310 being constructed for use with various communication protocols including the TCP/IP protocol. Network interface unit 310 is sometimes referred to as a transceiver, transceiving device, or Network Interface Card (NIC).
The mass memory as described above illustrates another type of computer-readable media, namely computer-readable storage media. Computer readable storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device.
The mass memory also stores program code and data. One or more applications 350 are loaded into mass memory and run on operating system 320. Examples of application programs may include transcoders, schedulers, calendars, database programs, word processing programs, HTTP programs, customizable user interface programs, IPSec applications, encryption programs, security programs, VPN programs, web servers, account management, and so forth. The applications 350 may include a Knowledge Base Server (KBS)355, a social search manager 345, and a message server 358. These applications may be built in network devices, mobile devices or in distributed networks. Thus, the present invention may be implemented in a conventional client server arrangement, a peer-to-peer network, or any other architecture. Alternatively, the present invention may be implemented as a software client running on a currently existing platform. Widgets or messenger plug-ins may implement these applications, where these applications are defined only in the application layer. The mass memory may alternatively store the user's knowledge base in data storage 352 and/or cd-rom/dvd-rom drive 326, hard disk drive 328, or other computer-readable storage medium (not shown).
Message server 358 may include virtually any computing component or components configured and arranged to forward messages from message user agents and/or other message servers or to deliver messages to a local message store (e.g., data store 352, etc.). Thus, message server 358 may include a message transfer manager that employs any of a variety of email protocols to communicate messages, including, but not limited to, Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP), Internet Message Access Protocol (IMAP), NNTP, and the like.
However, message server 358 is not limited to email messages and other messaging protocols may be managed by one or more components of message server 358. Thus, the message server 358 may also be configured to manage SMS messages, IM, MMS, IRC, mIRC, or any of a variety of other message types. Additionally, message server 358 may also represent a network server configured to enable access to and/or management of messages.
In one embodiment, the message server 358 may communicate with the KBS355 to enable the user to interface with a knowledge base of the user's prior social search responses. In one embodiment, the KBS355 may provide scripts, applets, applications, or other downloadable components to the client device for use in managing the content of the user's knowledge base. In another embodiment, KBS355 may provide one or more web pages that may be used to manage the content of a user's knowledge base and/or that are available to perform a social search. In another embodiment, KBS355 may provide information to message server 358, including interfaces and the like used in displaying and/or otherwise managing messages, searches, and the like. Although not illustrated, in one embodiment, KBS355 may be configured as a plug-in to message server 358, or the like.
As messages are sent between client devices, KBS355 may monitor and/or receive notifications of responses by users that received social searches. The KBS355 may then use the response information, number of responses, or timing of responses to manage the provision of results to the user of the user's social search.
General operation
Operation of certain aspects of the present invention will now be described with reference to fig. 4 and 5. Fig. 4 and 5 illustrate a logical flow diagram generally showing one embodiment of a process for managing social search requests for target contacts within a user's social network. Process 400 of fig. 4 and 5 may be implemented, for example, in repository server 106 of fig. 1 or KBS355 of fig. 3.
Process 400 may begin after a start block, at block 402, a user generates a social search request to be sent to at least a particular target contact within the user's social network. The search request may be entered via an interface program as described below with reference to fig. 6. For example, a user may wish to ask a restaurant for italian food whose social network is best eastern in the city center. As part of the social search request, in one embodiment, the user identifies a target contact. The target contact may be all contacts in the user's address book, a particular user selected in the address book, or a defined individual or group of particular electronic addresses for the target contact entered by the user. The user's social search may have additional parameters including, but not limited to, attributes of the target contact or a classification of the social search, for example. For example, a search may be categorized in a domain that is related to various attributes of the target contact. The user may have predefined categories of social searches, such as those related to electronic devices, food, entertainment, and the like. The user may enter a particular social search and identify a particular category of the social search, e.g., food-related. The system may then use the relevant topics to identify the target contact from the user's address book. In such a case, the user may have pre-defined their address book contacts with various rankings or classifications. In another example, a user may sort all contacts within their address book with domain-specific expert opinions and then provide the user with a drop-down list of these domains of expertise when the user enters a social search.
The process then proceeds to blocks 404 and 406, where the parameters of the user's social search are used to build a database search. The parameters of a user's social search may be parameters such as a user-entered text question, where the search terms may be parsed from the search request and used for a database search. Social search requests may also be in the form of presence topics, subtopics, and sub-subtopics. The social search request may also be some type of multimedia form. At block 406, a target contact for the social search is determined or obtained. The target contact may be a user-generated specific list of target contacts, may be automatically generated, or may be a combination thereof. For example, the user's address book may be used as the target contact. Alternatively, the target contact may be determined based on attributes of the contact or attributes of the contact related to the text of the social search. The target contact may also be a target contact of the user and a contact associated with the target contact. Thus, the target contact may include a contact of the user's first degree, second degree, third degree, or greater. For example, an address book of the user's target contacts may be used to generate additional target contacts. Target contacts of a second degree, third degree, or higher may be generated initially, or may be generated later. In one embodiment, only the first degree contacts of the user may be used as target contacts. Target contacts of a second degree or greater may then be automatically generated and queried with the same social search request when a first degree target contact is queried with the social search request. This may be done using a centralized processing system or a distributed network.
At block 408, the user's social search obtained in block 404 and the user's target contact obtained at block 406 are used to search a knowledge base for prior social search responses related to the user's social search based on the search criteria and the target contact. The search may find prior responses for the target contact and then further search for prior responses related to the social search. The search may be accomplished in any manner known to those of ordinary skill in the art. The search may also be performed on the knowledge base of the target contact and the knowledge base of the contact of the target contact.
At about the same time that the social search is performed through the knowledge base, at block 410, the system may query the target contact by sending the user's social search directly to the target contact. The method of sending may be by email, instant messaging, or any other form of electronic communication as described above. In one embodiment, the system will wait a predetermined period of time for the target contact to respond to the request before the search results of the knowledge base of prior social search responses in block 408 and the response of the target contact in 410 are provided to the user. This is shown in blocks 412 and 416 where the system waits for a predetermined period of time before continuing the process. In another embodiment, certain other events, conditions, criteria, etc. may be used to determine when to proceed to block 418, including but not limited to the percentage of responses received, responses being received from at least one target contact, etc. Alternatively, the results of a search of the knowledge base for a prior social search response may be provided directly to the user, and thereafter, the system may then provide the target contact's response to the social search.
When decision block 416 is satisfied, the process continues to block 418 where the responses and/or prior responses are sorted according to relevance characteristics. The relevance characteristic may be a single parameter, such as an attribute, a degree of separation, a relationship to the user, a prior ranking of prior responses, a prior response of the target contact, or may be a combination of any number of the foregoing parameters. The relevance characteristics may also be a degree of relevance between the social search and a response to the social search. For example, the correlation between keywords of a search and responses may be used to determine the relevance of the responses to a social search. The invention is not limited in this regard and other characteristics may also be used. For example, responses provided by target contacts with domain-specific expertise may be given greater weight than responses from target contacts without such expertise, even if the latter responses have a higher degree of relevance to the social search. The expert may be provided by the user as data stored in, for example, their address book. As another example, the ordering of prior responses from the database may be weighted by the ranking, characterization, or ranking of prior responses given by the user. For example, if a user finds many prior responses particularly interesting or relevant, they provide a high ranking to such responses. Such a system may be used, for example, one, two or three stars, where one star represents a good response and three stars represents a very good response. In another embodiment, the ranking of the responses may be used to provide a higher weighting to the responses from a particular target contact. For example, if a particular target contact has made many highly relevant responses and has received three stars for that purpose, that target contact may be given greater weight in future responses. The ranking or ranking may be done manually by the user or may be done automatically based on actions or responses of the user or the target contacts.
After the response and the previous response are sorted, the sorted results may be sent to the user at block 420. The response may be displayed to the user in many different ways, one example of which is shown in FIG. 6. It is obvious that these steps can be performed in different ways. In one embodiment, the prior response and the current response are provided to the user simultaneously. In another embodiment, the prior response is provided first and the current response is provided later. In that embodiment, the prior response provides an initial response and needs to wait for a response from the target contact.
After the user receives the response, the user may be provided with the option to update the knowledge base with a new social search response received from the target contact. This is shown in block 502 in FIG. 5, block 502 being a continuation of process 400 of FIG. 4. The user may set up the system so that the knowledge base is automatically updated or the user may be prompted to update the knowledge base with a response. For the social search response, the user may be prompted to provide attributes of the target contact as a result of the social search response, as shown in block 504. The user may enter attributes for the target contact by dropping down a list, or by typing in specific categories or attributes for the target contact, or by any of a variety of other means. If the attributes are entered, the attributes are then added to the knowledge base of the target contact, as shown in block 506. Alternatively, all inputs may be made and then, after the input of all information, the information is updated to the knowledge base. The user may also be prompted to provide a ranking of responses, for example, a one-star, two-star, or three-star system. Receipt of the ranking by the network device is shown in block 508. If a ranking is received, the knowledge base may be updated with the ranking and the response, as shown in block 510.
Updating the knowledge base with attributes, rankings, and social search responses creates a knowledge base. Initially, the knowledge base may be empty. However, in one embodiment, the knowledge base may initially be populated based on various information obtained about the user, such as information from other searches that the user may have performed, browsing history about the user, and so forth. As the social search is performed, the knowledge base will grow. The knowledge base may be quickly expanded by including social search responses from contacts of a first degree, a second degree, a third degree, or greater. These social search responses from the first degree, second degree, and third degree contacts may be managed with attributes and rankings to provide responses that will be highly relevant to the user because they are based on different degrees of expertise and similarities that exist between contacts within the user's social network.
It will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer programs or the like. These program instructions may be provided to a processor to produce a machine, such that the instructions, which execute on the processor, create means for implementing the actions specified in the flowchart block or blocks. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer implemented process such that the instructions, which execute on the processor, provide steps for implementing the actions specified in the flowchart block or blocks. The computer program instructions may also cause at least some of the operational steps illustrated in the blocks of the flowchart to be performed in parallel. Moreover, some of these steps may also be performed in more than one processor, such as may be present in a multi-processor computer system. In addition, some of the steps may be performed on more than one processor, and one or more blocks or combinations of blocks in the flowcharts may be performed concurrently with other blocks or combinations of blocks, or even in a different order than illustrated, without departing from the spirit and scope of the present invention.
Accordingly, blocks of the flowchart support combinations of means for performing the specified actions, combinations of steps for specifying the specified actions and program instruction means for performing the specified actions. It will also be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by special purpose hardware-based systems which perform the specified actions or steps, or combinations of special purpose hardware and computer instructions.
Illustrated examples and user interfaces
Further aspects of the invention will now be described with reference to fig. 6, which shows an example of a user interface on a mobile client device. However, it should be noted that the present invention is not limited by this exemplary embodiment, and other exemplary embodiments may be used.
FIG. 6 illustrates an interface 600 for performing a social search. The target contact selection interface 602 provides a drop down menu for selection of the target contact. In this example, the user may select from a group of target contacts such as alumni, work buddies, ski clubs, and the like. Alternatively, the user may select "auto-select," where the system will automatically determine the appropriate target contact, for example, from the user's address book. For another alternative, the user may individually select the target contact.
The user enters a social search through social search interface 610. At 604, the user may edit, send, or delete the social search by selecting various options. Interface 600 also has a social search response interface 606 that provides results of the search results. Information regarding the social network identification, the rank of the target contact, whether the response is a current or previous response, the rank of the response, etc. may also be provided in a stream within social search response interface 606.
A graphical depiction of one embodiment of the user's extended social network is shown in FIG. 7. The extended social network 700 of the user 702 is comprised of first degree contacts 704. They are direct personal contacts of user 702. These contacts may be contained in the user's electronic address book or the like. The second degree contact of user 702 is also the first degree contact of first degree contact 704. In other words, second degree contact 708 is a friend of user 702. Third degree contact 710 is again a friend of a friend. Each of the first degree contacts may be classified by the user, for example, as an expert in a certain area, as indicated by the dashed box 706. The extended network may also be classified in the same manner.
Thus, searches in the user's extended social network that are limited to those with expertise as specified by the dashed box 706 will return search results that are social search responses for those individuals as within the dashed box 706. These search results may then be added to the knowledge base of user 702 either automatically or after prompting the user. The user may provide various rankings or attributes of the response and/or the target contact. Alternatively, the rankings and/or attributes may be automatically generated and specified by the system. In this way, a knowledge base is created and continuously updated as the user performs more social searches.
The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.