US20150254313A1 - Displaying Search Results According to Object Types and Relationships - Google Patents
Displaying Search Results According to Object Types and Relationships Download PDFInfo
- Publication number
- US20150254313A1 US20150254313A1 US14/719,081 US201514719081A US2015254313A1 US 20150254313 A1 US20150254313 A1 US 20150254313A1 US 201514719081 A US201514719081 A US 201514719081A US 2015254313 A1 US2015254313 A1 US 2015254313A1
- Authority
- US
- United States
- Prior art keywords
- search result
- objects
- result objects
- query
- categorized
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G06F17/30554—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- G06F17/30598—
-
- G06F17/30864—
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A user query including one or more references to objects of various types and/or text keywords is received from a user and processed into sub-queries. Information sources execute the sub-queries and returns search results matching text keywords and/or relating to objects referenced in the user queries. The search results are organized based on their object types and relationships, and displayed in a manner exposing their relationships to the user.
Description
- This application is a divisional of prior application Ser. No. 12/905,000, filed Oct. 14, 2010.
- This application claims the benefit of U.S. patent application Ser. No. 12/905,000, filed Oct. 14, 2010, which is incorporated herein by reference in its entirety.
- This application is related to U.S. patent application Ser. No. 12/512,752, filed Jul. 30, 2009, which is incorporated by reference in its entirety.
- 1. Field of the Invention
- The present disclosure generally relates to the field of information retrieval, in particular to relationship-based information retrieval and presentation.
- 2. Description of the Related Art
- Many applications have been developed to provide keyword-based information searches. Although effective to locate documents including the keywords, keyword-based searches require that the searcher use the right keywords in order to retrieve the desired information and are likely to return too much information. In contrast, a human brain often retrieves information following a train of thought. For example, a person trying to remember the name of another person that attended a lunch meeting might remember the name of the restaurant where the meeting took place. Because the desired information (e.g., the other person's name) typically do not share keywords with the known information (e.g., the name of the restaurant), keyword-based searches cannot locate the desired information in such scenarios.
- Information that a user can easily relate to typically is more helpful to the user compared to information the user cannot relate to. Applications providing keyword-based searches often provide users with only a list of matching documents, sometimes along with a small piece of content including the keywords (snippets), without identifying relationships between the returned documents and the users. Therefore, there is a need for a way to conduct searches based on relationships and to display search results in a manner that exposes the relationship between the search results and the users.
- Embodiments of the invention provide relationship-based searches. One aspect of the invention is a computer-implemented method of performing a relationship-based search, the method comprising: receiving a user query from a user, the user query including a reference to an object; processing the user query into a plurality of sub-queries for information related to the referenced object for a plurality of information sources; submitting the plurality of sub-queries to the plurality of information sources; receiving search results for the plurality of sub-queries from the information sources, the search results comprising an object related to the object referenced in the user query; and providing the search results for presentation to the user.
- Another aspect of the invention is a computer-implemented method of displaying search results of a relationship-based search, the method comprising: receiving a plurality of search results of a user query, wherein the plurality of search results is organized into different categories and different relationships; displaying the plurality of search results in a plurality of tabbed pages, wherein search results of a same category are displayed on a same tabbed page; displaying search results of the same category in a plurality of buckets, wherein search results bearing a same (or similar) relationship to the user query are displayed in the same bucket; and responsive to a user selection of a displayed search result, providing a plurality of applicable action options to be performed against the selected search result.
-
FIG. 1 is a high-level block diagram of the computing environment, in accordance with one embodiment. -
FIG. 2 is a high-level block diagram illustrating an example of a computer for use as a client or search server, in accordance with one embodiment. -
FIG. 3A is a block diagram of a search server, in accordance with one embodiment. -
FIG. 3B is a block diagram of a client, in accordance with one embodiment. -
FIG. 4 is a flow chart illustrating a method of conducting a relationship-based search, in accordance with one embodiment. -
FIGS. 5A-5E are snapshots illustrating an example user interface, in accordance with one embodiment. - One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.
- The Figures (FIGS.) and the following description describe certain embodiments by way of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein. Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality.
-
FIG. 1 is a high-level block diagram of thecomputing environment 100 in accordance with one embodiment. As shown, thecomputing environment 100 includes aclient 110, asearch server 120, andmultiple information sources 140, all connected through anetwork 130. Only oneclient 110 and onesearch server 120 are illustrated in order to simplify and clarify the present description. There can be other entities in thecomputing environment 100 as well. - The
client 110 is an electronic device having network functionality. Theclient 110 provides a user interface for a user to access a search service provided by thesearch server 120. By interacting with the user interface, the user can create a user query including one or more references to objects of a variety object types (e.g., people, organizations, places, contacts, email messages, attachments to email messages, calendar entries) and/or text keywords. Theclient 110 sends the user query to thesearch server 120 and receives search results in return. The user interface presents the search results in a manner exposing their relationships to the user (also called the “searcher”). The user interface also enables the searcher to perform applicable actions to the search results (e.g., calling a person, mapping a place) or to explore further through additional searches. In one embodiment, theclient 110 is a portable device, such as a personal digital assistant (PDA), and a mobile telephone. - The
search server 120 provides a web-based search service accessible through thenetwork 130. Thesearch server 120 conducts searches based on user queries received from theclients 110. The received user queries may include text keywords and/or references to objects of a variety of object types. For each received user query, thesearch server 120 creates and submits a set of sub-queries tomultiple information sources 140, and receives search results from theinformation sources 140. Thesearch server 120 aggregates and organizes the search results based on their types and relationships, and returns the organized search results to theclient 110 for presentation to the searcher. - An
information source 140 is an application (or service) capable of executing a sub-query in a collection of information and returning search results. One example of aninformation source 140 is a social network model of the searcher. The social network model is a description of the relationships between objects found in the searcher's user data. In the social network model, relationships between two objects are represented by directional connections along with scores measuring strengths of the relationships. Another example of aninformation source 140 is an indexing server that performs text indexing to documents transmitted to and/or from theclient 110 and the searcher's user data inother information sources 140. The indexing server may also index metadata fields of documents (e.g., fields of contact records, headers in email messages). Other examples ofinformation sources 140 include email servers, Personal Information Management (PIM) systems, and web search servers. - The
network 130 is a system of interconnected computer networks that use standard communications technologies and/or protocols to facilitate data transmission among the computer networks. Thus, thenetwork 130 can include links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, digital subscriber line (DSL), asynchronous transfer mode (ATM), InfiniBand, PCI Express Advanced Switching, etc. Similarly, the networking protocols used on thenetwork 130 can include multiprotocol label switching (MPLS), the transmission control protocol/Internet protocol (TCP/IP), the User Datagram Protocol (UDP), the hypertext transport protocol (HTTP), the simple mail transfer protocol (SMTP), the file transfer protocol (FTP), etc. The data exchanged over thenetwork 130 can be represented using technologies and/or formats including the hypertext markup language (HTML), the extensible markup language (XML), JavaScript, VBScript, Flash, PDF, PostScript, etc. In addition, all or some of links can be encrypted using conventional encryption technologies such as secure sockets layer (SSL), transport layer security (TLS), virtual private networks (VPNs), Internet Protocol security (IPsec), etc. In another embodiment, the entities can use custom and/or dedicated data communications technologies instead of, or in addition to, the ones described above. - The entities shown in
FIG. 1 are implemented using one or more computers.FIG. 2 is a high-level block diagram illustrating anexample computer 200. Thecomputer 200 includes at least oneprocessor 202 coupled to achipset 204. Thechipset 204 includes amemory controller hub 220 and an input/output (I/O)controller hub 222. Amemory 206 and agraphics adapter 212 are coupled to thememory controller hub 220, and adisplay 218 is coupled to thegraphics adapter 212. Astorage device 208,keyboard 210, pointingdevice 214, andnetwork adapter 216 are coupled to the I/O controller hub 222. Other embodiments of thecomputer 200 have different architectures. - The
storage device 208 is a non-transitory computer-readable storage medium such as a hard drive, compact disk read-only memory (CD-ROM), DVD, or a solid-state memory device. Thememory 206 holds instructions and data used by theprocessor 202. Thepointing device 214 is a mouse, track ball, or other type of pointing device, and is used in combination with thekeyboard 210 to input data into thecomputer 200. Thegraphics adapter 212 displays images and other information on thedisplay 218. Thenetwork adapter 216 couples thecomputer 200 to one or more computer networks. - The
computer 200 is adapted to execute computer program modules for providing functionality described herein. As used herein, the term “module” (or “engine”, “model”) refers to computer program logic used to provide the specified functionality. Thus, a module can be implemented in hardware, firmware, and/or software. In one embodiment, program modules are stored on thestorage device 208, loaded into thememory 206, and executed by theprocessor 202. - The types of
computers 200 used by the entities ofFIG. 1 can vary depending upon the embodiment and the processing power required by the entity. For example, thesearch server 120 might comprise multiple blade servers working together to provide the functionality described herein. As another example, theclient 110 might comprise a smartphone with limited processing power. Thecomputers 200 can lack some of the components described above, such askeyboards 210,graphics adapters 212, and displays 218. In addition, thesearch server 120 can run in asingle computer 200 ormultiple computers 200 communicating with each other through a network such as a server farm. -
FIG. 3A is a block diagram of asearch server 120, in accordance with one embodiment. As mentioned above, thesearch server 120 provides a web-based search service accessible through thenetwork 130. As shown, thesearch server 120 includes aquery processing module 310, aninformation source interface 320, anorganization module 330, adevice interaction module 340, anindexing module 345, and adata store 350. - The
query processing module 310 processes a user query received from theclient 110 into a set of sub-queries (also called “component sub-queries”) targeted toward a variety of information sources 140. A user query may include one or more elements, each of which may be a reference to an object of a variety of object types or a text keyword. An object is an entity which has a distinct existence as an individual unit (e.g., a person, an organization, and a location) or a discrete collection of data, such as a file, a contact, an email message, an attachment to email message, a calendar entry, a web page, an appointment request, or any other type of electronic document. Objects are categorized into different object types, such as people types, organization types, location types, email message types, and web page types. Objects of different types are associated with different facts which support different actions. For example, a people type object representing a person is associated with an email address and supports an action of sending email message, and a business type object representing a restaurant is associated with a business address and supports actions of routing and mapping. - The user query includes parameters specifying whether an element is an object reference (and if so the type of the object) or a text keyword. A user query can be expressed in many different possible representations, such as, for example, an Extensible Markup Language (XML) data structure or a JSON data structure. The
query processing module 310 inspects the parameters in the user query and creates sub-queries accordingly. In one embodiment, each object type is associated with a pre-determined set of sub-queries. For example, for a user query including a reference to a person (i.e., a people type object), thequery processing module 310 launches a sub-query for objects related to that person in the searcher's social network model. As another example, for a user query that includes only text keywords, thequery processing module 310 launches a sub-query for documents containing the text keywords in the indexing server. By launching sub-queries tovarious information sources 140 for related information, thequery processing module 310 beneficially expands the original user query to retrieve related objects that may not include keywords (if any) in the user query. - The user query may include multiple object references and/or text keywords, as well as indications of how to combine the results (e.g., “AND”, “OR”). For such a user query, the
query processing module 310 generates one or more sub-queries for each of the multiple object references and text keywords. The search results of the sub-queries are combined according to the indications, e.g., by performing an intersection of the search results (including only search results matching each component sub-query) or a union of the search results (including all search results of all component sub-queries). To enhance performance, thequery processing module 310 may combine multiple component sub-queries forinformation sources 140 that can process combined sub-queries more efficiently. The user query may also include parameters specifying a particular slice of search results, such as a particular category, a particular relationship, a particular starting point, and/or a particular number of search results. Only the search results satisfying the specification are returned to theclient 110. - If a user query includes a reference to a document (e.g., a web page type object, an email message type object), the
query processing module 310 analyzes the document to identify terms therein and creates a term vector, and then launches a sub-query for the indexing server to identify documents having similar term vectors. Additionally, thequery processing module 310 can examine the metadata for the document (e.g., sender, receiver, subject, date fields for an email message, name, email address, company fields for a contact record) and launch sub-queries based on the metadata. For example, thequery processing module 310 can launch a sub-query for the sender and/or receiver of an email message in the searcher's social network model. - The
information source interface 320 transmits sub-queries to their targetedinformation sources 140 and receives search results from the information sources 140. In one embodiment, theinformation source interface 320 communicates with theinformation sources 140 using an application programming interface (API) supported by the information sources 140.New information sources 140 that handle previously unsupported object types or relationships may be added to theinformation source interface 320, thereby extending the scope and functionality of thesearch server 120. Existinginformation sources 140 may also extend the set of object types and/or relationships they support to extend the scope and functionality of thesearch server 120. - The information sources 140 execute the sub-queries and then return a set of matching/related objects. The objects may include text keywords in the sub-queries and/or be related to objects referenced in the sub-queries. For example, the searcher's social network model, in response to a sub-query for a person named “Mike Perkowitz” (i.e., a people type object), returns a list of people (i.e., people type objects) with whom Mike has a relationship, ranked by the strength of the relationships. As another example, the indexing server, in response to a sub-query for a text keyword “mike perkowitz” (i.e., a text string), returns a list of documents within which the text keyword appears, ranked by factors such as accuracies of the matches and numbers of matches.
- The
information source interface 320 aggregates the search results of the sub-queries fromvarious information sources 140. The search results returned by theinformation sources 140 identify matching/related objects using unique object identifiers (e.g., object IDs) along with identifiers of the types of the objects (e.g., object type IDs), and identifiers of their relationships with the text keywords and/or objects referenced in the sub-queries (e.g., relationship type IDs). The search results may also include summary information describing the matching/related objects. Theinformation source interface 320 may use the object IDs to retrieve additional summary information of the objects from the data sources and include the additional summary information in the aggregated search results. For example, if the search results for a sub-query from an email server includes an object ID uniquely identifying an email message, theinformation source interface 320 queries the email server to obtain summary information for that email message, such as a snippet of text from the body of the email message and the header of the email message. - The
organization module 330 organizes objects in the search results into different categories based on their object types, and groups objects within a same category into buckets based on their relationships for presentation to the user. Example categories include people, messages, organizations, files, locations, events, phone calls, uniform resource locators (URLs), and web pages. - The people category includes objects representing people (e.g., people type objects and contact record type objects). These objects can be grouped into one or more of the following buckets: (1) people matching text keywords based on text match, (2) people in common email threads as the searched person (i.e., the person referenced in the user query), (3) people in common meetings with the searched person, (4) people belonging to a same organization as the searched person, (5) people sharing a same postal address as the searched person, (6) people sharing a same email address (e.g., a group email address) as the searched person, (7) people working for the searched organization (i.e., the organization referenced in the user query), and (8) people who attended meetings at the searched organization/location.
- The messages category includes objects representing messages (e.g., email messages and SMS messages). These objects can be grouped into the following buckets: (1) messages matching text keywords based on searched text, (2) messages sent/received by the searched person, and (3) messages mentioning the searched person (e.g., referenced in message body or subject).
- The organizations category includes objects representing organizations (e.g., businesses, nongovernmental organizations). These objects can be grouped into the following buckets: (1) organizations matching text keywords based on searched text, (2) organizations associated with the searched person (e.g., employer, business partners), and (3) organizations at which the searched person attended meetings.
- The files category includes objects representing electronic files (e.g., word processor documents, spreadsheets). These objects can be grouped into the following buckets: (1) files with content matching text keywords based on searched text, (2) files with filenames matching the text keywords, and (3) files attached to emails/event invitations sent to or from the searched person.
- The locations category includes objects representing locations. These objects can be grouped into the following buckets: (1) locations matching text keywords based on searched text, (2) locations associated with searched person/organization/event, and (3) locations in which the searched person attended meetings.
- The events category includes objects representing events (e.g., calendar entries). These objects can be grouped into the following buckets: (1) events matching text keywords based on searched text, (2) events organized/participated in by the searched person, (3) events that occurred at the searched organization, and (4) events that occurred at the searched location.
- The phone calls category includes objects representing past phone calls. These objects can be grouped into the following buckets: (1) phone calls from the searcher to the searched person, and (2) phone calls received by the searcher from the searched person.
- The URLs category includes objects representing URLs. These objects can be grouped into the following buckets: (1) URLs mentioned in messages from the searched person, (2) URLs associated with the searched person (e.g., URLs appearing in the searched person's message signature)/organization, (3) URLs directly associated with the searched person (e.g., a URL in a “web page” field of a contact record), and (4) URLs appearing in the searched person's user text (e.g., URL of the searched person's personal web page).
- The web pages category includes objects representing web pages matching text keywords based on searched text. These objects typically are not grouped (because they tend to bear similar relationships with text keywords and no relationship with the searcher).
- Additional search result categories may be included by registering
new information sources 140 capable of returning search results of additional object types with the information source interface 320 (or expanding existing registered information sources 140). Theseinformation sources 140 can also define relationships for grouping search results. - In one embodiment, the
organization module 330 is configured to organize search results into a predetermined set of categories and buckets. In another embodiment, theinformation sources 140 may provide additional information for theorganization module 330 to create new categories and/or buckets to organize the search results from the information sources 140. Because the search results are organized into different categories and buckets, the organized search results can be considered to have a category dimension and a bucket dimension. The organized search results are then returned to theclient 110 to be presented in a manner that exposes the relationship between the search results and the searcher. - The
device interaction module 340 manages the communications between thesearch server 120 and theclient 110. Specifically, thedevice interaction module 340 receives user queries from theclient 110 and returns organized search results to theclient 110 for presentation to the user. - The
indexing module 345 creates data indexes forinformation sources 140 registered with theinformation source interface 320 to facilitate generating search results for the information sources 140. In one embodiment, theindexing module 345 creates a keyword index for all text in aninformation source 140 for performing keyword matches in thatinformation source 140. The user's social network model can be used (e.g., by the information source interface 320) to find possible person matches. Someinformation sources 140 may include their own indexing modules internally, whileother information sources 140 may require that thedata indexing module 345 to create data indexes for those information sources 140. - The
data store 350 stores data used by thesearch server 120. Examples of such data include information about theclient 110 and the information sources 140 (e.g., network addresses) and social network models. Thedata store 350 may be a relational database or any other type of database, or an in-memory data-structure. -
FIG. 3B is a block diagram of aclient 110, in accordance with one embodiment. As mentioned above, theclient 110 provides a user interface (UI) for a user to accesses a search service provided by thesearch server 120. As shown, theclient 110 includes a graphical user interface (GUI)module 360, aserver interaction module 370, asearch engine 380,applications 390, and adata store 395. - The
GUI module 360 provides a graphical UI for a user to formulate user queries and review/interact with search results. In one embodiment, theGUI module 360 is developed using the Java programming language. In another embodiment, theGUI module 360 includes a webpage that can be launched and operated using a standard web browser (e.g., Google Chrome™, Microsoft Internet Explorer™, Mozilla Firefox™, or Apple Safari™). -
FIG. 5A illustrates a screenshot of anexample UI 500 of theGUI module 360. As shown, theUI 500 includes asearch box 502 for the user to type in user queries, and listsrecent searches 504 for the user to select. Instead of (or in addition to) typing, the user can input user queries via voice command, as illustrated by themicrophone button 506, or via other input mechanisms, such as an on-device camera. -
FIG. 5B illustrates a screenshot of anotherexample UI 510 of theGUI module 360. As shown, the user can type in a user query in thesearch box 502 using adisplay keyboard 512 or an on-device physical keyboard. As the user typing in a text phrase, the GUI module 360 (or the search server 120) recognizes a list of candidate objects potentially matching the text in the query using gazetteers, and displays them in anoverlay menu 514. A gazetteer is a structured collection of data for recognizing object references. Additional information about using gazetteers to recognize objects being referenced by a text phrase can be found in U.S. patent application Ser. No. 12/512,752, filed Jul. 30, 2009, entitled “Social Network Model For Semantic Processing”, which is incorporated by reference in its entirety. In one embodiment, gazetteers used for matching include lists of the user's contacts and acquaintances, commonly-visited locations, and commonly-visited or related organizations. The user can select a desired object from theoverlay menu 514, causing the user query to include a reference to the selected object. Alternatively, the user can ignore theoverlay menu 514 and keep the text phrase as a keyword. - In one embodiment, the user can launch a user query for an object by selecting a search action against a reference of the object displayed in the
GUI module 360 or against a reference of the object displayed in a document or elsewhere in a client UI outside of theGUI module 360. TheGUI module 360 may also automatically create user queries based on real-time user contexts. For example, when the user views a person's contact information, theGUI module 360 may automatically launch a user query specifying that person and search for related information. - To indicate the distinction between a text keyword element and an object reference element in a user query, the
GUI module 360 visually distinguishes the elements in the display. In one embodiment, theGUI module 360 draws a box around the object reference, and not the text keyword. As shown inFIG. 5C , a screenshot of anexample UI 520 of theGUI module 360, the phrase “Kim Dealeano” appearing in thesearch box 502 is in a box, indicating that the phrase is a reference to a person named “Kim Dealeano” (a people type object), and not a text keyword. TheGUI module 360 includes in the user query parameters specifying whether elements in the user query are object references or text keywords. - The
GUI module 360 presents search results in a manner that exposes the relationships between objects in the search results and the searcher (or the object(s) referenced in the user query). In one embodiment, to fully utilize the organized search results received from thesearch server 120, theGUI module 360 displays the search results in a category-heading search result UI, as illustrated inFIGS. 5C-5E . As described above, thesearch server 120 organizes search results into categories and buckets, which inherently expose the relationships of the search results: the categories group the search results in a same way that the user would group them (by object type), and the buckets expose the relationships between the search results and the user (and/or the referenced object(s)). TheGUI module 360 displays search results of each category in a tabbed page designated to that category, and displays search results within a specific bucket under a heading within the tabbed page explaining the relationships shared by such search results. - The
GUI module 360 allows the user to request additional search results for any category/bucket. In one embodiment, each bucket (and/or category) has a “more” button that the searcher can select to request for additional search results (e.g., from the search server 120) for the appropriate bucket. - Referring to
FIG. 5C , theUI 520 displays search results of a user query for a person named “Kim Dealeano”. As shown, theUI 520 includes adashboard 522 listing categories containing the organized search results. The category currently presented (“People”) is highlighted in thedashboard 522. As shown, the people category includes matching or related people grouped into buckets according to their relationships with Kim (and/or the searcher) and displayed under headings summarizing the relationships. Four of such buckets are displayed in the UI 520: (1) abucket 524 for people named “Kim Dealeano” that the searcher knows (“People you know”), (2) abucket 525 for people that share email messages with Kim and the searcher (“Shares messages with Kim Dealeano”), (3) abucket 526 for people that share meetings with Kim and the searcher (“Shares meetings with Kim Dealeano”), and (4) abucket 527 for Kim's colleagues (“Same company as Kim Dealeano”). -
FIG. 5D illustrates a screenshot of anexample UI 530 of theGUI module 360 displaying search results in the message category for the user query for Kim Dealeano. As shown, the message category includes messages related to Kim (and/or the searcher) and are grouped into buckets according to their relationship with Kim (and/or the searcher). Three such buckets are displayed in the UI 530: (1) abucket 534 for messages sent by Kim, (2) abucket 535 for messages received by Kim, and (3) abucket 536 for messages mentioning Kim. -
FIG. 5E illustrates a screenshot of an example UI 540 of theGUI module 360 displaying search results in the web page category for the user query for Kim Dealeano. As shown, the web page category includes search results returned from Google for a keyword search for “kim dealeano”. Search results in the web page category are not grouped into buckets. - The category-heading search result UI illustrated in
FIGS. 5C-5E encourages the searcher to explore related objects/information (e.g., via iterative searches). In addition, theGUI module 360 provides action options for the searcher to perform against objects in the search results. For example, for the following user query “meet Mike at Wild Ginger”, theGUI module 360 displays search results including people that are likely referenced as “Mike” and organizations that are likely referenced as “Wild Ginger”, and provides the searcher with an action option of sending an invitation to Mike for a meeting at Wild Ginger. - In one embodiment, in addition to (or instead of) sending the user query to the
search server 120, the user query is executed locally on theclient 110. TheGUI module 360 displays the local search results in the category-heading search result UI as soon as they become available, and merges in the search results from thesearch server 120 as they arrive. In an alternate embodiment, local search results are displayed only if the server fails to respond within a predetermined timeout period. - Returning to
FIG. 3 , theserver interaction module 370 manages the communications between thesearch server 120 and theclient 110. Specifically, theserver interaction module 370 transmits user queries to thesearch server 120 and receives organized search results back from thesearch server 120. In one embodiment, theserver interaction module 370 calls an API of the search service provided by thesearch server 120 to communicate with thesearch server 120. - The
applications 390 support various functionality of theclient 110. For example, theclient 110 may include telephone, email, calendar, contact manager, browser, position determination, word processing, spreadsheet, and/or other business orpersonal applications 390. In one embodiment, the action options theGUI module 360 provides to the searcher for performing against the search results are performed by the correspondingapplications 390. In addition, one or more of the applications having access to local user data may register to thesearch engine 380 as local information sources, execute user queries, and provide thesearch engine 380 with search results.Applications 390 may also support the execution of keyword searches and search actions on objects (or object references) displayed therein. Invoking a search action from anapplication 390 may open theGUI module 360. - The
search engine 380 executes user queries to search user data residing on theclient 110 for matching/related objects, organizes the search results based on the object types and relationships, and provides the organized search results to theGUI module 360 for presentation to the user. Similar to thesearch server 120, thesearch engine 380 processes user queries into a set of sub-queries, and sends the sub-queries to local information sources (e.g., applications 390). Thesearch engine 380 organizes the search results received from the local information sources and provides the organized search results to theGUI module 360 for presentation to the user. - The
data store 395 stores data used by theclient 110. Examples of such data include information about the search server 120 (e.g., network address) and local user information. Thedata store 395 may be a relational database or any other type of database, or an in-memory data-structure. -
FIG. 4 is a ladder diagram illustrating aprocess 400 of conducting a relationship-based search using the search service provided by thesearch server 120, in accordance with one embodiment. Other embodiments can perform the steps of theprocess 400 in different orders. Moreover, other embodiments can include different and/or additional steps than the ones described herein. - In step 410, a user (the searcher) inputs a user query into the
client 110. The user query may include one or more elements, each of which may be a reference to an object or a text keyword. For example, the user may create a search query for a person named “Kim Dealeano” (i.e., a people type object). Instep 420, theclient 110 transmits the user query to thesearch server 120 along with parameters specifying elements in the user query (e.g., whether the element is an object reference (and if so the type of the object) or a text keyword). - In
step 430, thesearch server 120 processes the user query into a set of sub-queries and submits them to a variety ofinformation sources 140 instep 440. For example, a sub-query is submitted to the searcher's social network model for objects related to Kim. Instep 450, thesearch server 120 retrieves search results from theinformation sources 140 and organizes the search results into categories and buckets based on their object types and relationships. For example, thesearch server 120 categorizes objects in the search results into the following categories: locations, messages, people, organizations, and web pages, and organizes objects in each category into different buckets based on their relationships with the searcher and/or Kim. Instep 460, thesearch server 120 returns the organized search results to theclient 110. - In
step 470, theclient 110 displays the received organized search result in a manner that exposes the relationship between the search results and the searcher and provides action options for the searcher to perform against the search results. For example, theclient 110 displays the organized search results in a category-heading search result UI as illustrated inFIGS. 5C-5E . Instep 480, theclient 110 receives a user selection of an action option against a search result, and performs the selected user action instep 490. For example, the searcher may select a person known to share messages with Kim, and select an applicable action option (e.g., by choosing from an overlay menu) to call that person. Theclient 110 launches a phone application and initiates a call to that person in response. - In another embodiment, a user may input a special user query containing only the text keyword “now”. In response to this special query, the
client 110 generates a user query specifying a current user context (e.g., the user's identity, location, time, recent emails, current scheduled events, etc.), and displays matching/related information in a manner that exposes the relationship between the search results and the user. - The described embodiments beneficially retrieve information not only matching the user query, but also relating to the user query, and exposing the relationships in a presentation of the search results to the user. Thus the user can conveniently understand why certain information was returned as search results, and to navigate among the relationships in an intuitive manner. Thus, the described embodiments are aligned with how people naturally retrieve information and thereby provide an improved information retrieval mechanism.
- Some portions of above description describe the embodiments in terms of algorithmic processes or operations. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs comprising instructions for execution by a processor or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of functional operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.
- As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
- As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
- In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the disclosure. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
- Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for conducting relationship-based searches and presenting search results in a manner that exposes the relationship between the search results and the searcher. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the present invention is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope as defined in the appended claims.
Claims (20)
1. A computer-implemented method of displaying search results of a relationship-based search, the method comprising:
receiving a plurality of search result objects of a plurality of different types in response to a query referencing a query object;
organizing the plurality of search result objects into a plurality of different categories responsive to the different types of search result objects;
grouping a plurality of categorized search result objects organized into a category into a plurality of different buckets responsive to relationships of the categorized search result objects with the query object;
displaying the search result objects of the plurality of different categories on a plurality of different tabbed pages, wherein the categorized search result objects organized into the category are displayed on a same tabbed page; and
displaying the plurality of categorized search result objects displayed on the same tabbed page under a heading summarizing a relationship of the categorized search result objects to the query object.
2. The method of claim 1 , wherein displaying the plurality of categorized search result objects comprises:
displaying a plurality of headings, each heading summarizing a particular relationship of the categorized search result objects to the query object; and
displaying subsets of the categorized search result objects under respective headings of the plurality of headings, each subset of the categorized search result objects displayed under a heading summarizing a relationship of the categorized search result objects in the subset to the query object.
3. The method of claim 1 , wherein:
organizing the plurality of search result objects into a plurality of different categories comprises organizing the plurality of search result objects into a plurality of predefined categories; and
grouping the plurality of categorized search result objects organized into the category into the plurality of different buckets comprises grouping the plurality of categorized search result objects into a plurality of predefined buckets.
4. The method of claim 1 , wherein displaying the search result objects of the plurality of different categories on a plurality of different tabbed pages comprises:
displaying a dashboard listing the plurality of different categories; and
highlighting, in the dashboard, a category for which a tabbed page is currently being displayed.
5. The method of claim 1 , further comprising:
responsive to selection of a displayed search result object, providing a plurality of applicable action options to be performed against the selected search result object, the plurality of applicable actions determined responsive to a type of the selected search result object;
receiving, on a user client displaying the search results, a selection of an applicable action from among the plurality of applicable action options; and
executing an application on the user client responsive to the selection of the applicable action.
6. The method of claim 1 , further comprising:
receiving an input from a user comprising a text phrase;
determining a plurality of query objects that may be referenced by the text phrase;
displaying the plurality of query objects to the user for selection;
responsive to a user selection of one of the plurality of query objects, adding a reference to the selected query object to the query; and
transmitting the query having the reference to the selected query object to a search service.
7. The method of claim 1 , wherein the plurality of different categories comprise:
a first category comprising a first subset of search result objects having a first search result type; and
a second category comprising a second subset of search result objects having a second search result type.
8. The method of claim 7 , wherein the first subset of search result objects in the first category are grouped into respective buckets, the respective buckets comprising:
a first bucket comprising a first further subset of search result objects in the first category having a first type of relationship with the query object; and
a second bucket comprising a second further subset of search result objects in the first category having a second type of relationship with the query object.
9. A non-transitory computer-readable storage medium storing executable computer program instructions for displaying search results of a relationship-based search, the computer program instructions comprising instructions for:
receiving a plurality of search result objects of a plurality of different types in response to a query referencing a query object;
organizing the plurality of search result objects into a plurality of different categories responsive to the different types of search result objects;
grouping a plurality of categorized search result objects organized into a category into a plurality of different buckets responsive to relationships of the categorized search result objects with the query object;
displaying the search result objects of the plurality of different categories on a plurality of different tabbed pages, wherein the categorized search result objects organized into the category are displayed on a same tabbed page; and
displaying the plurality of categorized search result objects displayed on the same tabbed page under a heading summarizing a relationship of the categorized search result objects to the query object.
10. The computer-readable storage medium of claim 9 , wherein displaying the plurality of categorized search result objects comprises:
displaying a plurality of headings, each heading summarizing a particular relationship of the categorized search result objects to the query object; and
displaying subsets of the categorized search result objects under respective headings of the plurality of headings, each subset of the categorized search result objects displayed under a heading summarizing a relationship of the categorized search result objects in the subset to the query object.
11. The computer-readable storage medium of claim 9 , wherein:
organizing the plurality of search result objects into a plurality of different categories comprises organizing the plurality of search result objects into a plurality of predefined categories; and
grouping the plurality of categorized search result objects organized into the category into the plurality of different buckets comprises grouping the plurality of categorized search result objects into a plurality of predefined buckets.
12. The computer-readable storage medium of claim 9 , wherein the computer program instructions further comprise instructions for:
responsive to selection of a displayed search result object, providing a plurality of applicable action options to be performed against the selected search result object, the plurality of applicable actions determined responsive to a type of the selected search result object;
receiving, on a user client displaying the search results, a selection of an applicable action from among the plurality of applicable action options; and
executing an application on the user client responsive to the selection of the applicable action.
13. The computer-readable storage medium of claim 9 , wherein the computer program instructions further comprise instructions for:
receiving an input from a user comprising a text phrase;
determining a plurality of query objects that may be referenced by the text phrase;
displaying the plurality of query objects to the user for selection;
responsive to a user selection of one of the plurality of query objects, adding a reference to the selected query object to the query; and
transmitting the query having the reference to the selected query object to a search service.
14. The computer-readable storage medium of claim 9 , wherein:
the plurality of different categories comprise a first category comprising a first subset of search result objects having a first search result type, and a second category comprising a second subset of search result objects having a second search result type; and
the first subset of search result objects in the first category are grouped into respective buckets, the respective buckets comprising a first bucket comprising a first further subset of search result objects in the first category having a first type of relationship with the query object, and a second bucket comprising a second further subset of search result objects in the first category having a second type of relationship with the query object.
15. A system for displaying search results of a relationship-based search, the system comprising:
one or more processors; and
a non-transitory computer-readable storage medium storing computer program instructions executable by the one more processors, the computer program instructions comprising instructions for:
receiving a plurality of search result objects of a plurality of different types in response to a query referencing a query object;
organizing the plurality of search result objects into a plurality of different categories responsive to the different types of search result objects;
grouping a plurality of categorized search result objects organized into a category into a plurality of different buckets responsive to relationships of the categorized search result objects with the query object;
displaying the search result objects of the plurality of different categories on a plurality of different tabbed pages, wherein the categorized search result objects organized into the category are displayed on a same tabbed page; and
displaying the plurality of categorized search result objects displayed on the same tabbed page under a heading summarizing a relationship of the categorized search result objects to the query object.
16. The system of claim 15 , wherein displaying the plurality of categorized search result objects comprises:
displaying a plurality of headings, each heading summarizing a particular relationship of the categorized search result objects to the query object; and
displaying subsets of the categorized search result objects under respective headings of the plurality of headings, each subset of the categorized search result objects displayed under a heading summarizing a relationship of the categorized search result objects in the subset to the query object.
17. The system of claim 15 , wherein:
organizing the plurality of search result objects into a plurality of different categories comprises organizing the plurality of search result objects into a plurality of predefined categories; and
grouping the plurality of categorized search result objects organized into the category into the plurality of different buckets comprises grouping the plurality of categorized search result objects into a plurality of predefined buckets.
18. The system of claim 15 , wherein the computer program instructions further comprise instructions for:
responsive to selection of a displayed search result object, providing a plurality of applicable action options to be performed against the selected search result object, the plurality of applicable actions determined responsive to a type of the selected search result object;
receiving, on a user client displaying the search results, a selection of an applicable action from among the plurality of applicable action options; and
executing an application on the user client responsive to the selection of the applicable action.
19. The system of claim 15 , wherein the computer program instructions further comprise instructions for:
receiving an input from a user comprising a text phrase;
determining a plurality of query objects that may be referenced by the text phrase;
displaying the plurality of query objects to the user for selection;
responsive to a user selection of one of the plurality of query objects, adding a reference to the selected query object to the query; and
transmitting the query having the reference to the selected query object to a search service.
20. The system of claim 15 , wherein:
the plurality of different categories comprise a first category comprising a first subset of search result objects having a first search result type, and a second category comprising a second subset of search result objects having a second search result type; and
the first subset of search result objects in the first category are grouped into respective buckets, the respective buckets comprising a first bucket comprising a first further subset of search result objects in the first category having a first type of relationship with the query object, and a second bucket comprising a second further subset of search result objects in the first category having a second type of relationship with the query object.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/719,081 US20150254313A1 (en) | 2009-07-30 | 2015-05-21 | Displaying Search Results According to Object Types and Relationships |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/512,752 US9183535B2 (en) | 2008-07-30 | 2009-07-30 | Social network model for semantic processing |
US12/905,000 US9069862B1 (en) | 2010-10-14 | 2010-10-14 | Object-based relationship search using a plurality of sub-queries |
US14/719,081 US20150254313A1 (en) | 2009-07-30 | 2015-05-21 | Displaying Search Results According to Object Types and Relationships |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/905,000 Division US9069862B1 (en) | 2009-07-30 | 2010-10-14 | Object-based relationship search using a plurality of sub-queries |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150254313A1 true US20150254313A1 (en) | 2015-09-10 |
Family
ID=53444789
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/905,000 Active 2031-05-26 US9069862B1 (en) | 2009-07-30 | 2010-10-14 | Object-based relationship search using a plurality of sub-queries |
US14/719,081 Abandoned US20150254313A1 (en) | 2009-07-30 | 2015-05-21 | Displaying Search Results According to Object Types and Relationships |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/905,000 Active 2031-05-26 US9069862B1 (en) | 2009-07-30 | 2010-10-14 | Object-based relationship search using a plurality of sub-queries |
Country Status (1)
Country | Link |
---|---|
US (2) | US9069862B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201228A1 (en) * | 2013-01-14 | 2014-07-17 | Mastercard International Incorporated | Systems and methods for managing offline database access |
US20150142790A1 (en) * | 2012-07-27 | 2015-05-21 | Facebook, Inc. | Generating logical expressions for search queries |
US10664928B2 (en) * | 2011-10-10 | 2020-05-26 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for informing a user of social network data when the data is relevant to the user |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9207964B1 (en) * | 2012-11-15 | 2015-12-08 | Google Inc. | Distributed batch matching of videos with dynamic resource allocation based on global score and prioritized scheduling score in a heterogeneous computing environment |
US9870422B2 (en) * | 2013-04-19 | 2018-01-16 | Dropbox, Inc. | Natural language search |
CN104462113B (en) * | 2013-09-17 | 2018-10-23 | 腾讯科技(深圳)有限公司 | Searching method, device and electronic equipment |
US9471570B2 (en) * | 2014-04-30 | 2016-10-18 | Excalibur Ip, Llc | Method and system for user selection of query suggestions |
US20160055263A1 (en) * | 2014-08-22 | 2016-02-25 | Successfactors, Inc. | Providing Action Search and Quick Action Cards |
US10552994B2 (en) * | 2014-12-22 | 2020-02-04 | Palantir Technologies Inc. | Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items |
US10614030B2 (en) * | 2017-06-02 | 2020-04-07 | Microsoft Technology Licensing Llc | Task creation and completion with bi-directional user interactions |
AU2017272325A1 (en) * | 2017-12-08 | 2019-06-27 | Canon Kabushiki Kaisha | System and method of generating a composite frame |
CN111125523B (en) * | 2019-12-20 | 2024-03-01 | 华为技术有限公司 | Searching method, searching device, terminal equipment and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144162A1 (en) * | 2003-12-29 | 2005-06-30 | Ping Liang | Advanced search, file system, and intelligent assistant agent |
US20060265417A1 (en) * | 2004-05-04 | 2006-11-23 | Amato Jerry S | Enhanced graphical interfaces for displaying visual data |
US20070033169A1 (en) * | 2005-08-03 | 2007-02-08 | Novell, Inc. | System and method of grouping search results using information representations |
US20070271232A1 (en) * | 2006-05-22 | 2007-11-22 | Microsoft Corporation | Relating people finding results by social distance |
US20090013285A1 (en) * | 2007-06-25 | 2009-01-08 | France Telecom | Method and System for Providing Navigable Search Results |
US20100312782A1 (en) * | 2009-06-05 | 2010-12-09 | Microsoft Corporation | Presenting search results according to query domains |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5345551A (en) | 1992-11-09 | 1994-09-06 | Brigham Young University | Method and system for synchronization of simultaneous displays of related data sources |
US6370554B1 (en) | 1997-12-15 | 2002-04-09 | Hewlett-Packard Company | Calendar-viewing system providing quick-access user activity information |
US6366922B1 (en) | 1998-09-30 | 2002-04-02 | I2 Technologies Us, Inc. | Multi-dimensional data management system |
US7634528B2 (en) | 2000-03-16 | 2009-12-15 | Microsoft Corporation | Harnessing information about the timing of a user's client-server interactions to enhance messaging and collaboration services |
US7565403B2 (en) | 2000-03-16 | 2009-07-21 | Microsoft Corporation | Use of a bulk-email filter within a system for classifying messages for urgency or importance |
US6985926B1 (en) | 2001-08-29 | 2006-01-10 | I-Behavior, Inc. | Method and system for matching and consolidating addresses in a database |
US7363590B2 (en) | 2001-11-27 | 2008-04-22 | International Business Machines Corporation | Calendar bar interface for electronic mail interaction |
US20030193481A1 (en) | 2002-04-12 | 2003-10-16 | Alexander Sokolsky | Touch-sensitive input overlay for graphical user interface |
US6816863B2 (en) | 2002-05-09 | 2004-11-09 | International Business Machines Corporation | Method, system, and computer product for providing a distribution list |
US7249123B2 (en) | 2002-10-31 | 2007-07-24 | International Business Machines Corporation | System and method for building social networks based on activity around shared virtual objects |
US7693827B2 (en) | 2003-09-30 | 2010-04-06 | Google Inc. | Personalization of placed content ordering in search results |
US20060235873A1 (en) | 2003-10-22 | 2006-10-19 | Jookster Networks, Inc. | Social network-based internet search engine |
US20080109751A1 (en) | 2003-12-31 | 2008-05-08 | Alias Systems Corp. | Layer editor system for a pen-based computer |
WO2005107153A1 (en) | 2004-05-03 | 2005-11-10 | Research In Motion Limited | User interface for integrating applications on a mobile communication device |
US7428579B2 (en) | 2004-05-27 | 2008-09-23 | Yahoo! Inc. | Method and system for segmentation of a message inbox |
US20050267944A1 (en) | 2004-06-01 | 2005-12-01 | Microsoft Corporation | Email manager |
US20070011236A1 (en) | 2004-09-13 | 2007-01-11 | Relgo Networks, Inc. | Relationship definition and processing system and method |
US8635217B2 (en) | 2004-09-15 | 2014-01-21 | Michael J. Markus | Collections of linked databases |
US8412706B2 (en) | 2004-09-15 | 2013-04-02 | Within3, Inc. | Social network analysis |
US20060112146A1 (en) | 2004-11-22 | 2006-05-25 | Nec Laboratories America, Inc. | Systems and methods for data analysis and/or knowledge management |
US20060149710A1 (en) | 2004-12-30 | 2006-07-06 | Ross Koningstein | Associating features with entities, such as categories of web page documents, and/or weighting such features |
US7606168B2 (en) | 2005-01-28 | 2009-10-20 | Attenex Corporation | Apparatus and method for message-centric analysis and multi-aspect viewing using social networks |
JP4742618B2 (en) | 2005-02-28 | 2011-08-10 | 富士ゼロックス株式会社 | Information processing system, program, and information processing method |
US20070005654A1 (en) | 2005-05-20 | 2007-01-04 | Avichai Schachar | Systems and methods for analyzing relationships between entities |
US8086605B2 (en) | 2005-06-28 | 2011-12-27 | Yahoo! Inc. | Search engine with augmented relevance ranking by community participation |
AU2006263703A1 (en) | 2005-06-28 | 2007-01-04 | Nokia Corporation | User interface for geographic search |
US7873356B2 (en) * | 2005-09-16 | 2011-01-18 | Microsoft Corporation | Search interface for mobile devices |
US20070214180A1 (en) | 2005-11-14 | 2007-09-13 | Crawford C S L | Social network application for processing image or video data from wireless devices of users and methods of operation |
US20080005249A1 (en) | 2006-07-03 | 2008-01-03 | Hart Matt E | Method and apparatus for determining the importance of email messages |
US7596597B2 (en) | 2006-08-31 | 2009-09-29 | Microsoft Corporation | Recommending contacts in a social network |
US7860852B2 (en) | 2007-03-27 | 2010-12-28 | Brunner Josie C | Systems and apparatuses for seamless integration of user, contextual, and socially aware search utilizing layered approach |
US9175964B2 (en) | 2007-06-28 | 2015-11-03 | Apple Inc. | Integrated calendar and map applications in a mobile device |
US7885948B2 (en) | 2007-06-28 | 2011-02-08 | Microsoft Corporation | Automatically managing incoming communications between sender and recipient, analyzing factors, selectively applying observed behavior, performing designated action |
US20090077056A1 (en) * | 2007-09-17 | 2009-03-19 | Yahoo! Inc. | Customization of search results |
US8543380B2 (en) | 2007-10-05 | 2013-09-24 | Fujitsu Limited | Determining a document specificity |
US9224149B2 (en) | 2007-10-15 | 2015-12-29 | Google Inc. | External referencing by portable program modules |
US7933960B2 (en) | 2007-12-28 | 2011-04-26 | International Business Machines Corporation | System and method for solving ambiguous meanings of unknown words used in instant messaging |
US10275524B2 (en) | 2008-01-23 | 2019-04-30 | Sears Holdings Management Corporation | Social network searching with breadcrumbs |
US7890596B2 (en) | 2008-06-18 | 2011-02-15 | International Business Machines Corporation | Triage of electronic mail |
US8024324B2 (en) * | 2008-06-30 | 2011-09-20 | International Business Machines Corporation | Information retrieval with unified search using multiple facets |
EP2480987A4 (en) | 2009-09-26 | 2013-09-25 | Hamish Ogilvy | Document analysis and association system and method |
US8886643B2 (en) * | 2010-09-24 | 2014-11-11 | Google Inc. | Presenting social search results |
-
2010
- 2010-10-14 US US12/905,000 patent/US9069862B1/en active Active
-
2015
- 2015-05-21 US US14/719,081 patent/US20150254313A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144162A1 (en) * | 2003-12-29 | 2005-06-30 | Ping Liang | Advanced search, file system, and intelligent assistant agent |
US20060265417A1 (en) * | 2004-05-04 | 2006-11-23 | Amato Jerry S | Enhanced graphical interfaces for displaying visual data |
US20070033169A1 (en) * | 2005-08-03 | 2007-02-08 | Novell, Inc. | System and method of grouping search results using information representations |
US20070271232A1 (en) * | 2006-05-22 | 2007-11-22 | Microsoft Corporation | Relating people finding results by social distance |
US20090013285A1 (en) * | 2007-06-25 | 2009-01-08 | France Telecom | Method and System for Providing Navigable Search Results |
US20100312782A1 (en) * | 2009-06-05 | 2010-12-09 | Microsoft Corporation | Presenting search results according to query domains |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10664928B2 (en) * | 2011-10-10 | 2020-05-26 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for informing a user of social network data when the data is relevant to the user |
US20150142790A1 (en) * | 2012-07-27 | 2015-05-21 | Facebook, Inc. | Generating logical expressions for search queries |
US9721025B2 (en) * | 2012-07-27 | 2017-08-01 | Facebook, Inc. | Generating logical expressions for search queries |
US20140201228A1 (en) * | 2013-01-14 | 2014-07-17 | Mastercard International Incorporated | Systems and methods for managing offline database access |
US11762849B2 (en) * | 2013-01-14 | 2023-09-19 | Mastercard International Incorporated | Systems and methods for managing offline database access |
Also Published As
Publication number | Publication date |
---|---|
US9069862B1 (en) | 2015-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9069862B1 (en) | Object-based relationship search using a plurality of sub-queries | |
US11681654B2 (en) | Context-based file selection | |
US10438172B2 (en) | Automatic ranking and scoring of meetings and its attendees within an organization | |
US7346613B2 (en) | System and method for a unified and blended search | |
US9367618B2 (en) | Context based search arrangement for mobile devices | |
US8132151B2 (en) | Action tags | |
US20170039272A1 (en) | Nlp-based content recommender | |
US8515908B2 (en) | Determining related keywords based on lifestream feeds | |
US20100005087A1 (en) | Facilitating collaborative searching using semantic contexts associated with information | |
US8909621B2 (en) | Contextual search history in collaborative archives | |
US20100005061A1 (en) | Information processing with integrated semantic contexts | |
US9892096B2 (en) | Contextual hyperlink insertion | |
US9477720B1 (en) | Social search endorsements | |
US9946799B2 (en) | Federated search page construction based on machine learning | |
US10242320B1 (en) | Machine assisted learning of entities | |
WO2017100970A1 (en) | Facilitating discovery of information items using dynamic knowledge graph | |
KR20120087972A (en) | Mechanism for adding content from a search to a document or message | |
US8589433B2 (en) | Dynamic tagging | |
US9189508B2 (en) | Inferring relevance based on user interactions with email | |
CN108027825B (en) | Exposing external content in an enterprise | |
US20210406271A1 (en) | Determining Authoritative Documents Based on Implicit Interlinking and Communications Signals | |
US20160092506A1 (en) | Generating suggested structured queries | |
WO2019008394A1 (en) | Digital information capture and retrieval | |
US9037563B1 (en) | Search result claiming | |
EP3452922A1 (en) | Personalized content suggestions in computer networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ARO, INC., WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PERKOWITZ, MICHAEL;HICKL, ANDREW FRANCIS;EUSTICE, KEVIN FRANCIS;AND OTHERS;REEL/FRAME:037046/0604 Effective date: 20101014 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: VULCAN TECHNOLOGIES LLC, WASHINGTON Free format text: TRANSFER STATEMENT;ASSIGNOR:ARO, INC.;REEL/FRAME:045661/0606 Effective date: 20171220 |