Universal Search Architecture

By using a ubiquitous search architecture and leveraging computing nodes to generate indexes at personal content locations, the problem of inaccessibility to content from personal devices and sensor systems in existing technologies is solved. This enables the search and sharing of personal data, expands the scope of search results, and improves data availability and real-time performance.

CN114168834BActive Publication Date: 2026-03-10MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2014-10-15
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

Existing search engines are unable to effectively access and index restricted content on personal devices and sensor systems, resulting in user-shared personal data being unsearchable and unusable.

Method used

Through a ubiquitous search architecture, compute nodes generate indexes at the locations of personal content and integrate with online search engines to enable the searching and sharing of personal content. Compute nodes generate and manage the indexes, process queries, and return the results to the user.

Benefits of technology

It enables the searching and sharing of content on personal devices and sensor systems, expands the scope of search results, improves data availability and real-time performance, and meets users' personalized needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114168834B_ABST
    Figure CN114168834B_ABST
Patent Text Reader

Abstract

A universal search architecture is provided that indexes and organizes the personal content of a querying user, making it accessible to other users. Computational nodes at personal content locations facilitate index generation and provision. An index is generated for the personal content stored at each location. For a given content location, the index can encompass content stored in a set of locations with access permissions. An indexing application runs periodically at the personal content location, incrementally indexing content added to shared locations. The same application allows users to configure locations with desired access permissions to participate in searches.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a continuation of the patent application "Ubiquitous Search Architecture" having application number 201480058391.0 and filing date October 15, 2014. BACKGROUND

[0002] Online searching is currently limited to online public documents that are hosted on servers and made available. Current search engines crawl and index these publicly available documents of the web and generate an index that primarily maps search terms or queries to a list of relevant documents. However, this search index does not have access to personal data that resides on personal devices such as hard drives and other data storage devices, storage devices responsible for storing large amounts of content, and the like. Furthermore, even if users share their personal data, there is no method to index this data and make it available for searches performed by the user that are selected by the user to share the data. SUMMARY

[0003] The following presents a simplified summary in order to provide a basic understanding of some novel embodiments described herein. This summary is not an extensive overview, and it is not intended to identify key / critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.

[0004] The disclosed architecture is a ubiquitous search model that expands the amount of relevant content that is considered for return as search results to a user that submits a query ("query user") by now also directly considering the ubiquitous network of the user - storage locations of access-restricted (personal) content that are stored on the personal content locations (e.g., personal devices) of the user and that are typically not accessible by other users, access-restricted content of other users that is made available for sharing to the query user, and content that is directly accessible from other sensor systems that are publicly available (e.g., traffic cameras, outdoor environment monitoring sensor systems, and the like that are made accessible to the user as based on access criteria).

[0005] The search model is "ubiquitous" in that the search process now extends to personal content, far beyond what is typically associated with searching (i.e., the Internet). This includes, for example, the personal content of the "query user" and shared content of the user's friends. The model is also ubiquitous for the personal content of the query user that is stored at personal content locations of other user devices (e.g., personal cameras, smart phones, and the like) that can also be accessible for searching as permitted by access permissions or other criteria such as physical proximity.

[0006] The disclosed pervasive search model uses local indexes stored at one or more personal content locations (e.g., as can be associated with a device) and / or distributed indexes, as well as potentially accessible sensor systems of the pervasive network, to enable searching and return of personal content results. Thus, the distribution of the overall pervasive search process is performed both directly in association with the personal content locations and in conjunction with searches performed by the online search engine(s). However, when the pervasive network is selected to limit the search to only personal content locations, no online search need be performed at all.

[0007] The pervasive search architecture is enabled through computing nodes. Each personal content location of the pervasive network can have an associated computing node. Each personal content location can also have a search engine; however, this is not a requirement. When a query is submitted by a querying user for processing, the query is sent to an online search engine (existing web-based engine(s)) for processing. The online search engine processes the query against its online index of online content, and also submits the query back to the personal content location from which the query was made by the user, and returns personal content of the query user and other personal content (e.g., shared) from the personal content location (of the user or other users).

[0008] The "pervasive" search engine (a search engine associated in some way with the pervasive network and / or personal content locations of the pervasive network) receives queries from web-based search engines or from applications that initiate searches from personal content locations, and interacts with the personal content location computing nodes (e.g., passes queries to the computing nodes, although this can not be necessary for searches that are only at the personal content locations) to access the indexes generated by the computing nodes, and processes the queries against the indexes generated by the computing nodes of the personal stored content of the user's personal content location.

[0009] It is the computing nodes that supply the indexes for query processing by the pervasive search engine, which facilitates query-passing among different personal content locations (e.g., other personal content locations of the user, other personal content locations of other users, etc.), and makes personal content (e.g., shared) available for access. The computing nodes enable access to the personal content indexes ("supply" the indexes) by the pervasive search engine. The pervasive search engine processes the queries against the personal content indexes, and the computing nodes return zero, some, or all of the personal content as results to the pervasive search engine.

[0010] To facilitate the return of relevant personal content from other personal content locations of the pervasive network, the query received at the query user's personal content location (now, the first personal content location) is subsequently sent from the computing node of the first personal content location to the computing node of a second user's second personal content location that is sharing access to some or all of their personal content with the query user. The second computing node at the second personal content location has prepared a second index (or an updated version thereof) that includes the personal content of which the shared personal content is a part and supplies the second index of the second personal content location to the computing node of the first personal content location. The pervasive search engine associated with the first personal content location then processes the query against the supplied index of the second personal content location and requests the searched documents from the second personal content location. The computing node of the second personal content location then returns the relevant shared personal results to the computing node of the first personal content location. The online search results and the pervasive network search results are then presented to the query user.

[0011] In an alternative implementation, the pervasive search engine associated with the second personal content location interfaces with the computing node of the second personal content location (now, the second computing node) and the second computing node supplies the second index to enable processing of the query and also supplies the personal content results back to the pervasive search engine of the second personal content location which then sends the results back to the pervasive search engine of the first personal content location for presentation.

[0012] The search application (e.g., browser) used by the first personal content location then receives the online results back from the online search engine and the pervasive network results directly from the pervasive search engine of the first personal content location for presentation.

[0013] The computing node of a personal content location includes an indexing component and a supplying component that are one or more applications that perform index generation on the personal content at a given personal content location and enable access to the index to facilitate the return of associated personal content for a search. The index is generated for a set of content stored at the personal content location (e.g., device) and maps tags to a piece of content. For a given personal content location, the index can encompass content stored in a set of directories with access permissions. The one or more applications used to generate the index run periodically at the personal content location and incrementally index data added to shared directories and / or storage partitions and index non-shared ("private") data. The same application(s) can be used to enable a user to configure directories with desired access permissions for participation in searches of the pervasive network.

[0014] The supply component supplies the index for queries sent to the personal content location and returns the relevant personal content as the pervasive network search result. The supply component checks the ID (identity) of the user issuing the query ("query user") and the associated access permissions, and then processes the index for data to be shared with the user. The supply component then finds the relevant indexed tags for the query and returns the path to the shared personal content that has been shared with the user.

[0015] The selectively networked pervasive computing nodes at different personal content locations (e.g., on different storage devices) supply results for the query issued by the query user. The selection of the computing node (to which a given query is to be sent) depends on the user's ID and the network of the user's shared data, which is the user's own and / or the shared data of friends in the user's pervasive network.

[0016] The pervasive search architecture facilitates the distribution of the search index. The index at a computing node can not always have a mapping of tags to content - it can be a mapping of tags to a set of other indexes on other devices (or data locations). For a given query that arrives at the node (the first node), depending on the access permissions and shared data on those other personal content locations, the node can split or forward the query to a set of other personal content locations (e.g., computing nodes of other devices). Thus, the query processing can be performed in a parallel manner on the personal content locations of several pervasive networks. Similarly, the results from several personal content locations can be returned to the first node when each shared computing node is complete.

[0017] Alternatively, or in combination, the first computing node query forwarding process can be based on "known" indexes of the first computing node (the query distribution node) rather than sending the query to all computing nodes of the pervasive network. Thus, the personal content locations (and their computing nodes) on the pervasive network can share index creation data that indicates that the personal content location not only has an index of shared information, but also informs other computing nodes of any updates to the index that any computing node already knows about.

[0018] The knowledge can be in the form of analysis of one or more indexes that have been stored (cloned) at the first personal content location (e.g., on the device) and are known to the first computing node as part of index redundancy, and thus, a failure of the shared personal content location and / or even another personal content location of the querying user can be easily recovered using the cloned indexes from the first personal content location (and first computing node). Moreover, since the first computing node has content knowledge via the locally stored, cloned indexes of the failed or offline shared computing node, the first computing node is able to determine that the content can be highly relevant and obtain the content by waiting a short period of time (e.g., seconds) before inferring that the failed computing node (personal content location) will not return online to the pervasive network in time and should be skipped.

[0019] For example, a first user camera (with a personal content location) can be taken on a day trip (away from a home network) to capture many images — the camera can be offline to the pervasive network. The camera computing node of the camera indexes the captured images taken that day and other data stored thereon. However, upon returning home, the camera can be made online to the home network (which can be part of the pervasive network) (e.g., via a tethered connection, wireless connection, etc.) and the captured images are searchable by a querying user. Alternatively, the data of the camera can be made accessible online by moving the storage media (e.g., flash chip) from the camera and connecting (inserting the flash chip) the storage media to a networked home computer (online to the pervasive network). The indexes generated by the computing node and stored on the storage media are then accessible and searchable to return images (personal content) from the storage media to the home computer for relevant queries.

[0020] The computing nodes can also be applied to or operate on sensor systems that utilize hardware sensors to sense physical signals such as temperature, humidity, pressure, traffic, environmental conditions, and convert those signals into data. Other sensor systems can employ video cameras that capture image signals of scenes such as traffic movement, street activity, etc. Each of these sensor systems can employ a computing node to generate an index of sensed content or data (that is "personal" to the sensor system and that can be access-restricted or access-conditioned to some extent) stored at the system and / or obtained directly from the sensor in real-time, and then make that index and related data / content available back to a querying user. Thus, a search can be directed to the sensor system for real-time, or substantially real-time, results, rather than accessing data from a server at some time after the associated event has occurred.

[0021] Sensor system data can be access-restricted such that access to the data is allowed only when certain criteria are met. For example, a user can be allowed to access the sensor system's implementation data only when the user device is within a predefined distance (e.g., one mile, one hundred feet, etc.) of the system. If so, the sensor system then becomes part of the pervasive network for that user and shares some or all of the sensor system's personal content until the criteria are no longer met. This capability finds particular use by a retail store that wants to push a coupon and is directed only to users within a short distance (one criterion) of the store, and not to users at a much greater distance and less likely to be at the store to make a transaction. Thus, the retailer can be selective as to the population and distance with respect to transactions.

[0022] To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings. These aspects are indicative of various ways in which the principles disclosed herein can be practiced and all aspects and equivalents thereof are intended to be within the scope of the claimed subject matter. Other advantages and novel features will become apparent from the following detailed description when considered in conjunction with the drawings. BRIEF DESCRIPTION OF DRAWINGS

[0023] Figure 1 A system according to the disclosed architecture is illustrated.

[0024] Figure 2 A system is illustrated that proposes using a search engine with computing nodes and pervasive networks.

[0025] Figure 3 An alternative pervasive network system is illustrated in which the computing nodes of the pervasive network perform computing node operations with respect to one or more personal content locations.

[0026] Figure 4 Alternative systems according to the disclosed architecture are illustrated.

[0027] Figure 5 Systems that serve web pages and shared documents as search results are illustrated.

[0028] Figure 6 Indexer components of a ubiquitous network computing node that generate indexes of shared documents of user devices are illustrated.

[0029] Figure 7 A provisioning system of computing nodes that serve indexes and related documents for incoming queries is illustrated.

[0030] Figure 8 A distributed index system for computing nodes is illustrated.

[0031] Figure 9 Index interfaces that facilitate updating and accessing indexes for various content locations are illustrated.

[0032] Figure 10 An exemplary user interface for ubiquitous search that enables personal data to be searched and returned for a query is illustrated.

[0033] Figure 11 An exemplary user interface for ubiquitous search that enables personal data to be searched and returned for a query is illustrated.

[0034] Figure 12 A more detailed example of a ubiquitous result presented in a SERP of a user interface is illustrated.

[0035] Figure 13 Methods according to the disclosed architecture are illustrated.

[0036] Figure 14 Alternative methods according to the disclosed architecture are illustrated.

[0037] Figure 15 Methods according to the disclosed architecture are illustrated.

[0038] Figure 16 Alternative methods according to the disclosed architecture are illustrated.

[0039] Figure 17 A block diagram of a computing system that performs ubiquitous search computations according to the disclosed architecture is illustrated. DETAILED DESCRIPTION

[0040] There is a great deal of access-restricted personal content that resides with users, user storage devices, and their social groups, making it desirable to make this personal content available for search. Personal content includes, but is not limited to, photos, videos, notes, text documents, spreadsheets, application documents (typically), reviews, receipts, coupons, applications, blog posts, podcasts, audio files, music files, e-mails and other messages, and 3D (three-dimensional) models, among others; personal content is typically not considered in search, but is access-restricted, and thus, is not typically searched as part of web-based search.

[0041] Data in a personal manner is generated by the average user in ever-increasing amounts on a monthly basis (e.g., 5 GB) and stored on personal storage devices, such as on personal storage devices (e.g., internal, attached, etc.) including internal hard drives, external serial devices (e.g., flash drives), and / or cloud storage devices (e.g., managed with respect to the individual by the user or other appropriate entity on behalf of the user). Moreover, only a small fraction of personal data is shared (e.g., online or otherwise), while much of the personal data is shared through social networking (e.g., Facebook TM , Instagram TM , Flickr TM , YouTube TM , etc.). Moreover, a great deal of personal data is generated and stored locally on access-restricted systems, such as sensor systems, including video cameras (public and user personal) and mobile devices such as smartphones.

[0042] The disclosed architecture is a ubiquitous search model that expands the amount of relevant content considered for returning search results for a user submitting a query (query user) by now directly considering the user's ubiquitous network - personal content storage locations of access-restricted content stored at the user's personal content locations (e.g., personal devices, user folders, user diaries, etc.), which are typically not accessed by other users, enabling access-restricted content of other users shared to the query user, and content directly accessible from other sensor systems available to the public (e.g., traffic cameras, outdoor environment monitoring sensor systems, etc., as accessible to the user based on access criteria).

[0043] A ubiquitous search architecture is enabled by a computing node that operates in conjunction with a personal content location. The computing node generates at least a private index of personal content of the personal content location. When a search is conducted for both online content and ubiquitous network content, a query is submitted by a user for processing, the query is sent to an online search engine (e.g., web-based engine(s)) for processing. The online search engine processes the query against its online index of online content and also submits the query directly to the user's personal content location for processing and returns personal content and any shared personal content. The search engine associated with the user's personal content location receives the query and interacts with the computing node to process the query against the stored personal content of the personal content location. The computing node enables access to the private index through the search engine. The search engine processes the query against the private index and the computing node returns the personal content as a result of the search (this can be referred to as the computing node "serving the index and any associated personal content"). Subsequently, the querying user is presented not only with standard web-based online results but also with personal content results.

[0044] More specifically, the disclosed architecture is a ubiquitous search paradigm that extends search into personal data already accessible by users and other users, for example, on one or more user devices and other users' devices, on private network data sources such as social networks, on cloud storage locations, and on sensor systems, to name a few, thereby making users' and other users' personal data orchestratable indexed and searchable. The architecture enables sharing and searching of personal data at a peer level. A user (owner) of data maintains an index created for each set of personal data at a personal content location as private and also maintains access permissions for the data by all other users. The access permissions can be stored separately from (but in association with) the index, for groups of index items, and / or on an item-by-item basis for each item in the index.

[0045] The ubiquitous search model as described herein focuses on using a ubiquitous search engine that is in addition to web-based search engines (e.g., Bing TM ) ; however, it is not to be construed as limiting as web-based search engines can be employed in whole or in part to facilitate ubiquitous web search.

[0046] The ubiquitous architecture includes selectively networked (e.g., accessible through the Internet, enterprise, peer-to-peer connections, etc.) computing nodes that are used to generate indexes and make the indexes accessible to queries along with results of the queries (also referred to as "serving" the indexes and as a result, the content). The ubiquitous search model makes personal data (content) available for search and retrieval by indexing and serving the personal data to those with appropriate permissions to access the personal (and shared) data.

[0047] Personal content made available by a user can include documents stored according to restricted access on a web page, personal content of the user on one or more local devices / systems of the user, and personal content shared by other users in the user's ubiquitous network (accessible in a personal manner). Personal content includes, but is not limited to, photos, videos, text documents, spreadsheets, audio, receipts, coupons, music, podcasts, emails, notes, applications, 3D models, blog posts, etc., any or all of which can be indexed and made available to queries of the user.

[0048] Personal content can include data on a mobile device (e.g., such as a cell phone, smart phone, tablet device) and can be indexed and served to selected users in the ubiquitous network of the content owner for retrieval, browsing, and discovery (on-the-fly - in real-time). Internet-connected public cameras are part of a larger set of sensor systems that typically send data to a database for subsequent access; however, data from these sensor systems can now be available to a given user in real-time via the ubiquitous network, as acquired directly from the sensor system based on access criteria.

[0049] To serve personal documents to queries issued outside of the device, any available indexing technique such as an inverted index can be used to generate indexes for personal content at the location of the personal content (e.g., on the device). Tags and other attributes of the documents are carefully reviewed and indexed to make the documents available to queries issued by other users on different devices.

[0050] A ubiquitous network includes a computing node that provides the ability to index personal content and supply the index and personal content to queries issued by users. The computing node is essentially code running on a device that not only generates an index of content stored at a personal content location, but also updates the index when new and updated content is received. The computing node has an indexing component (also referred to as an indexer) that generates an index (pointer) for all shared and non-shared content at the personal content location and a supply component that supplies the generated index and results (personal content of the user and / or other users) to queries directed to the personal content location. Queries can be issued by the owner of the content or other users in the ubiquitous network of the owner (including the user's social circle or other users, for example, that the owner has made content available to).

[0051] With respect to publicly searchable personal content of a content owner, if the content owner chooses to make any piece of personal content available to everyone, then any related query issued by a user can retrieve the piece of content. However, control of personal content retrieval can be exercised by considering other factors (criteria) that must be satisfied before access is allowed (pulled by the user) and / or personal content is pushed to the user. These factors include, but are not limited to, physical proximity of the user issuing the query, degree of separation between the content owner and the user issuing the query (in a social network), quality measure and relevance of the content, confidence measure of the content owner, and the like.

[0052] Physical proximity of a user includes determining the geographic location of the user relative to a business (or an entity of interest such as a park, restaurant, and the like) because it can be more beneficial to inform the user of the business location and / or attract the user to the business location if the user is relatively close to the business and does not have a long distance that the user is not likely to travel. Physical proximity in combination with a user's preference such as indicating a desire to purchase a particular product can influence the distance of the physical proximity employed for a particular access to content and / or the push of content to the user. Proximity can also be a social distance, for example, how far down a list of "friends" a particular user is allowed to access the content of another user - the user is a friend, or a friend of a friend, and the like. Proximity can be by category such that, for example, "other users that are skiers only," or "employees of Microsoft Corporation only," "belong to the same club," and the like.

[0053] A confidence measure of a content owner relates to the likelihood that the content owner will have content relevant to a query. For example, a content owner that only deals with text has a low confidence measure or is less likely to supply content for a query related to a picture. Conversely, if the content owner is a photographer, then the confidence measure is higher that the owner will have a picture relevant to the query.

[0054] The quality metric can be related to the ability of the content owner to provide content of a desired level of quality. For example, a content owner that only stores low resolution images has a low quality metric, or is less likely to supply content for queries related to images of much higher resolution. Conversely, if the content owner is a photographer, then the quality metric is higher, and the owner will have high resolution images related to queries for those images.

[0055] The degree of separation is similar to the social proximity aspect, which identifies how close or how distant socially the shared user is from the query user or the shared content owner. If the shared user has a large degree of separation from the query user or the shared content owner (e.g., a distant user, which can be a friend of a friend of a friend of a friend, etc.), then the associated content of that distant user can not be relevant. Similarly, if the shared user has a low degree of separation (a close user, which can be a friend of a friend), then the associated personal content can be more relevant to the query.

[0056] The approach enables retailers and business owners to share coupons, advertisements, and photos of goods, for example, in real-time for consumer searches or queries for information within a proximate area. In this way, content owners do not have to post their content and wait for online crawlers to index the content and serve it—content owners can push content directly to users or enable user devices to immediately pull user content.

[0057] The computing nodes can be distributed nodes that forward received queries to other computing nodes and then aggregate the retrieved documents from those nodes. The computing nodes can redirect user queries to other computing nodes that generate and serve the index for query processing and then serve (return) the relevant results. The computing nodes then aggregate and send the aggregated content along with the associated content attributes to the computing node that issued the query.

[0058] With respect to the distribution of local buffering and indexing, the index that maps tags to content can be passed between devices with updates to the location of the content. This enables a distributed cache of the index by which a piece of content can be accessed by a query routed through different devices or nodes over a network. In the context of devices and the cloud, possible indexing schemes include a scheme in which the index stays at its associated personal content location (e.g., machine or on a machine) and queries are sent to the machine, and a scheme in which the index is incorporated into a main cloud-based index that is accessible by the personal content location (e.g., device).

[0059] The retrieved personal content can be ranked alongside web page content, depending on the user's preferences and their confidence level within the user's general network compared to the web page. External storage devices, such as those without compute nodes and potentially unable to connect to general search engines, remain accessible and can be searched for the user's personal content. For example, a location of personal content associated with a home computer might have a compute node and an associated search engine, as well as several external (e.g., USB) storage devices such as hard drives, flash drives, etc. Externally connected storage devices may not include compute nodes; therefore, although these storage devices are not directly connected to the network, the home computer is, and can contribute to, the indexing and querying process of these external devices to obtain relevant content stored thereon.

[0060] Furthermore, devices / systems / personal content locations that cannot connect to or are not connected to online (web-based) search engines can still access and search for personal content available on those devices. In other words, the disclosed architecture also finds applicability to "offline," or private networks such as intranets, corporate networks, home networks, etc. Therefore, the ubiquitous network can extend to any one or more devices / systems / personal content locations on private networks without needing to extend the search to web pages (or online networks).

[0061] Cloud computing nodes can organize and index personal documents and make them available for querying. A ubiquitous search model can extend to all personal content, whether locally available on a personal device / hard drive or in the cloud. Compute nodes that run access to personal content in the cloud—whether on a personal machine, a sensor system, or a cloud server—make that content searchable and accessible to multiple users (depending on the licenses granted by the content owner).

[0062] Even when a personal content location associated with a device, hard drive, or other storage device is offline, the content can be cached in the cloud with the same indexing and ubiquitous network license, so users can still search and have the same experience as if the personal content location associated with the device, hard drive, or other storage device were available on the ubiquitous network.

[0063] The ubiquitous search model also enables selective data access for queries or personalized index provisioning. Content owners / publishers can define and restrict who can access and query content by selectively allowing users to access it. This enables a retrieval and ranking system that can be influenced by queries made by users within a ubiquitous network targeting the content owner.

[0064] The ubiquitous search model enables indexed and searchable real-time data automatically generated by sensor systems, as described above in this paper. The real-time generated sensor data can be tagged and indexed by the indexing components on the computing nodes of the sensor systems. Therefore, these sensor systems can be directly accessed (compared to obtaining sensor data stored in a database server) based on indexes that are readily available from the indexing component and are available for incoming queries.

[0065] This avoids the need to host and provision data on a server. As an example, temperature sensors installed in a public space (e.g., “Bellevue Downtown”) can read the temperature and update a locally stored document using the address labels “Bellevue Downtown” and “Temperature”; this document can be indexed on the sensor system and provided to all appropriate users. Any query for “Bellevue Downtown Temperature” can be immediately (directly from the temperature sensor system), thus avoiding the need to upload and store data on a server and subsequently index and orchestrate the data in real time.

[0066] The same example can be applied to the following sensor systems, such as traffic cameras, cameras installed in shopping aisles (for real-time inventory queries), real-time bus operation locations and schedules, sensor systems that send chef's specials from restaurant menus and "flash sale" offers / coupons (limited-time offers) when triggered (e.g., proximity such as that defined by geofencing), personal content updates (e.g., photos and blogs), and any real-time or near-real-time personal data.

[0067] Compared to existing systems that cannot scale to constantly updated data, ubiquitous search architectures scale for searches of real-time and / or near real-time data. As an example, consider a home pet security camera that continuously stores the last few images of your cat on a hard drive accessible via a ubiquitous network. If a user queries "My Cat" from any personal content location (e.g., a device), they can receive and browse those images retrieved by ubiquitous search, regardless of their location, because the data is indexed and served in real-time. There is no existing custom content feed that identifies new pieces of content to be added to the index based on uploaded or explicitly identified content by the user. Furthermore, ubiquitous search systems enable efficient querying of data generated by the "Internet of Things" (e.g., non-user-generated content from sensor systems such as weather cameras), rather than content generated solely by humans.

[0068] Referring now to the accompanying drawings, in which similar reference numerals are used throughout to refer to similar elements. In the following description, numerous specific details are set forth for illustrative purposes in order to provide a thorough understanding of these details. However, it may be self-evident that novel embodiments may be practiced without these specific details. In other instances, well-known structural devices are shown in block diagram form to aid in their description. All modifications, equivalents, and variations falling within the spirit and scope of the claimed subject matter are intended to cover.

[0069] Figure 1 A system 100 based on the disclosed architecture is illustrated. System 100 includes an indexer component 102 of a compute node 104 associated with personal content 106 at a personal content location 108 of a content owner 110.

[0070] Personal content location 108 can generally be described as involving a device, system, and / or account (through which the content owner 110 exercises some degree of control over the personal content 106 stored therein), and personal content 106 is described as involving a device, system, and / or account. Therefore, personal content location 108 includes, but is not limited to, personal wired and / or wireless devices such as personal computers, tablets, laptops, smartphones, personal servers, and private networks (e.g., home, business, etc.), and accounts with restricted access to personal content locations on the Internet (“in the cloud”). For example, personal content 106 may be stored on one or more storage devices in personal storage location 108 such as internal hard drives, externally attached drives (e.g., flash drives and hard drives), and network drives (e.g., home, private, cloud, etc.).

[0071] System 100 is illustrated in a head-to-head configuration of two personal content locations that interact directly with each other; however, it will be understood that the disclosed architecture provides the ability to perform universal searches through numerous different personal content locations and shared users.

[0072] Personal content 106 may include certain accessible content (referred to as shared content 112) that is authorized for access by an authorized user, and other content that is completely inaccessible to users other than the content owner 110 (accessible only by the content owner 110) (referred to as private content 114).

[0073] Indexer component 102 is configured to generate a content index 116 for personal content 112 at personal content location 108. Index 116 may include not only personal content 106 but also permissions associated with private content 114 and shared content 112. Therefore, the processing of content index 116 by the universal search engine results in a corresponding response to the indexed content—allowing shared content 112 to be accessed only by other authorized users / systems' computing nodes, while private content 114 can only be accessed by content owner 110 and / or associated content owner systems.

[0074] The serve component 118 of compute node 104 is configured to send (receive and forward) query 120 to a remote compute node 122 associated with remote shared personal content 124 at remote personal content location 126. Personal content location 108 is configured to use index 116 to process query 120, and remote personal content location 126 is configured to use a remote content index 128 generated by remote compute node 122 (more specifically, remote indexer component 130) to process query 120. The serve component 118 of compute node 104 is configured to receive remote results 132 from remote compute node 122 of remote shared personal content 124.

[0075] Results (e.g., result 134) can also be generated from personal content location 108. The remote result 132 from remote computing node 122, along with the results generated based on processing query 120 at personal content location 108, are then combined in one or more of a variety of possible ways to be presented together with web-based results, as described in more detail below (e.g., as separate groups of remote results 132 and 134, etc.). This can be presented to the user who issued query 120 (e.g., content owner 110) via a browser application.

[0076] It should be noted that the remote computing node 122 of the remote personal content location 126 may have the same components as the personal content location 108 and operate in the same manner. For example, the remote indexer component 130 generates a remote content index 128 for at least the remote shared personal content 124 and the remote private content 136 of the remote personal content 138. The remote index 128 may also include access permissions for each index entry to easily determine which parts of the remote personal content 138 are accessible as remote shared personal content 124 and which are inaccessible (remote private content 136). The remote index 128 is then supplied via the remote provisioning component 140 for query processing. Assuming that the content owner 110 has already granted access to the shared personal content 112 by the remote personal content location 126, when the provisioning component 118 supplies the index 116, queries processed by the remote personal content location 126 can then access the shared personal content 112 based on the processing of the index 116.

[0077] When a remote personal content location 126 does not have a content owner 110 but has a different content owner, query processing at personal content location 108 can be more extensive than query processing at remote personal content location 126. This is because query processing at personal content location 108 on personal content 106 of content owner 110 extends to private content 114 and shared content 112, while query processing at remote personal content location 126 with different content owners (such as that initiated by content owner 110) is limited to remote shared personal content 124 that the different content owners have already allowed to be shared.

[0078] However, as described below, if remote personal content location 126 is also "owned" by content owner 110, query processing at remote personal content location 126 is also extended to remote private content 136 based on permission for remote index 128 that enables content owner 110 to access all remote personal content 138 at remote personal content location 126.

[0079] Compute nodes, and the associated devices, systems, and accounts that have these compute nodes, are described as part of a ubiquitous network, where a given compute node is enabled by the user. In other words, the content owner 110 can be given the ability to disable compute nodes when desired. Therefore, when disabled, the compute node (device, system, account) is removed from the ubiquitous network until it is re-enabled. Devices, systems, and accounts selected as part of the query and search process for associated personal content utilize the disclosed compute node architecture.

[0080] In other words, remotely shared personal content 124 is the personal content of a remotely shared content owner (e.g., another user, another system, etc., who is the same as content owner 110). The personal content 106 of content owner 110 is kept private to public users (or systems), and the remotely shared personal content 124 of the remotely shared content user is enabled (e.g., by permission) so that it can be accessed by the computing node 104 of content owner 110.

[0081] For example, content index 116 may be distributed across one or more other personal content locations, such as remote personal content location 126. Content index 116 is generated and updated in real time at personal content location 108 of content owner 110. Changes to the data at personal content location 108 can be detected, and these changes trigger an update process to update content index 116.

[0082] Remote content index 128 can be made publicly accessible to public users (or systems) based on access criteria. Remote shared personal content 124 can be accessed by public users (or systems) based on criteria including one of the following: the proximity of the public user querying remote personal content location 126, the degree of separation between remote personal content location 126 and the public user, quality metrics and relevance of remote shared personal content 124, or a confidence metric of the remote shared content owner of remote shared personal content 124.

[0083] The remote personal content location 126 may include a sensor system (e.g., a weather station, traffic camera, street camera, etc.) configured to generate real-time sensor data that is indexed in real time to create a real-time sensor index as the remote content index 128. The sensor system includes a remote computing node 122, which is partially configured to supply the real-time sensor index for searching using query 120 to return the remote results 132 to computing node 104.

[0084] Remote compute node 122 includes a remote indexer component 130 and a remote provisioning component 140. The remote indexer component 130 is configured to generate a remote content index 128, and the remote provisioning component 140 is configured to provision the remote content index 128 to a search engine (not shown) to generate remote results 132 based on query 120. The remote provisioning component 140 is configured to receive the remote results 132 from the search engine and return the remote results 132 to the provisioning component 118 of compute node 104.

[0085] The supply component 118 is configured to supply content index 116 to process query 120 at individual content location 108, and web search results are presented at the individual content locations for content owner 110's individual content 106 and remotely shared individual content 124 of remote individual content location 126. Compute node 104 is configured to forward query 120 to other compute nodes at other individual content locations, and to aggregate and rank additional content results obtained from other compute nodes with the individual content results 134 of individual content location 108.

[0086] Figure 2 An example is illustrated by a system 200 that combines computing nodes and a ubiquitous network to utilize a search engine. Search engines can be employed in various ways. Personal content locations within the ubiquitous network (e.g., Figure 1 Any one or more of the personal content location 108 and the remote personal content location 126 may include a search engine (typically programs and instructions that enable queries and searches of data and content); however, personal content locations do not need to have a search engine. Devices and systems typically have a search engine that can be used for local device / system searches, and applications (e.g., browsers) that enable query processing and interaction with searches on the network (e.g., private and public). These same search engines and applications can be enabled to operate in conjunction with compute nodes.

[0087] The description of System 200 focuses on the use of “universal” search engines—those that can reside at or be associated with personal content locations including compute nodes, and thus can be considered part of a universal network (e.g., personal content locations of a network with compute nodes enabled for searching), and / or as separate (non-compute node) search engines on a network that facilitate searching personal content locations that support a universal network. (It should be noted that this is within the intent of the disclosed architecture, and in robust implementations, such as Bing...) TM Web-based search engines, for example, can be configured to support and perform universal searches as described in this article.

[0088] In the first embodiment, each personal content location has its own search engine. For example, the first personal content location 202 (and...) Figure 1 (Similar to personal content location 108) has a first computing node 204, a first personal content 206, and a first universal search engine 208. The second personal content location 210 (and...) Figure 1 (Similar to personal content position 108 in the middle) has a second computing node 212, a second personal content 214, and a second universal search engine 216; and a third personal content position 218 (similar to Figure 1The personal content location 108 (similar to the one in the system) has a third computing node 220, a third personal content 222, and a third universal search engine 224. For the purpose of describing the system 200 as a whole, the universal search engines (208, 216, and 214) are shown in dashed lines to indicate them as optional blocks.

[0089] As above Figure 1 Similar to the head-to-head configuration described in the example, the query 120 issued by the content owner 110 (via one or more programs of the first person content location 202) to the web-based search engine 226 for the web page document 228 is processed.

[0090] Query 120 is also passed back to the first ubiquitous search engine 208 at the first personal content location 202 (because content owner 110 issued query 120) for query processing (e.g., concurrently with web-based searches) on the ubiquitous network of content locations (202, 210, and 218) and corresponding compute nodes (204, 212, and 220). The first ubiquitous search engine 208 processes query 120 against an index (not shown) of the first personal content 206 supplied by the first compute node 204 and returns zero, some, or all of the first personal content 206 as a result to be presented together with the web-based results.

[0091] The first ubiquitous search engine 208 passes query 120 to the first computing node 204, which forwards query 120 to one or more other computing nodes of any other personal content location designated as part of the ubiquitous network of content owner 110. Here, both personal content locations (210 and 218) are part of the ubiquitous network. Therefore, the second computing node 212 receives the query and sends query 120 to the second ubiquitous search engine 216, which processes query 120 against an index (not shown) of the second personal content 214 to return zero, some, or all of the second personal content 214 as a result 230 to the second computing node 212. The second computing node 212 returns result 230 to the first computing node 204 and subsequently to the first ubiquitous search engine 208 for presentation along with webpage-based results.

[0092] If content owner 110 "owns" the second person's content location 210 (and exercises control over it), then the result 230 returned to the first computing node 204 can be obtained from both the shared and private content of the second person's content 214. If the second person's content location 210 is "owned" by different content owners in the ubiquitous network, then the result 230 returned to the first computing node 204 is only obtained from the shared content (if permitted) of the second person's content 214.

[0093] Similarly, the first compute node 204 passes query 120 to the third compute node 220. (This is indicated by dashed and solid arrows in both directions, thus communicating not through the second human content location 210, but through a network or peer-to-peer connection, although this can be implemented as a "proxy" approach.) The third compute node 220 receives query 120 and sends it to the third ubiquitous search engine 224, which processes query 120 against an index (not shown) of the third human content 222 to return zero, some, or all of the third human content 222 as a result 232 to the third compute node 220. The third compute node 220 then returns the result 232 directly (e.g., peer-to-peer, wired / wireless network, etc.) to the first compute node 204 (indicated by dashed-solid arrows) and subsequently to the first ubiquitous search engine 208 for presentation along with webpage-based results.

[0094] As before, if content owner 110 "owns" the third-person content location 218, the result 232 returned to the first computing node 204 can be obtained from both the shared and private content of the third-person content 222. If the third-person content location 218 is "owned" by a different content owner in the ubiquitous network, the result 232 returned to the first computing node 204 is only obtained from the shared content of the third-person content 222 (if permitted).

[0095] It should be noted that, although the first computing node 204 is shown to be directly connected to the second computing node 212 (this can be via peer-to-peer (short-range wireless, e.g., Bluetooth)...), TM (It can be performed via wired communication, but the connection can also be achieved via wired / wireless network. This also applies to communication between the first person content location 202 and the third person content location 218.)

[0096] In an alternative implementation, the first universal search engine 208 of the first personal content location 202 can search not only its own first personal content 206, but also personal content from one or more other personal content locations such as second personal content 214 and / or third personal content 222. In this alternative implementation, the second index of the second computing node 212 can be supplied to the first computing node 202, and thereby to the first universal search engine 208, for query processing. The first universal search engine 208 then requests results from the second computing node 212 via the first computing node 204, such as those derived from the second index, where the requested results are obtained from the second personal content 214. The results 230 are then processed based on whether the owner 110 owns the second personal content location 210, as previously described. The same process follows for other personal content locations on the universal network.

[0097] In another alternative implementation, the search engine clusters on a ubiquitous network (ubiquitous network search engine) to handle ubiquitous network query processing. In other words, the ubiquitous network search engine does not need to reside in any of the personal content locations (202, 210, and 218). This implementation can be applied to, for example, home networks, or other dedicated networks such as enterprise networks, etc.

[0098] Consider a ubiquitous web search engine 234, such as one on a home network node, that does not have personal content (but this is not necessary). The ubiquitous web search engine 234 can then receive query 120 from the first compute node 204 and then process query 120 by referring to the index generated from the first compute node 204, in order to return the result from the first personal content 206 to the first compute node (or retain the result at the ubiquitous web search engine 234).

[0099] First compute node 204 forwards query 120 to second compute node 212, and second compute node 212 passes query 120 to ubiquitous web search engine 234, which then processes query 120 by referring to the index of second compute node 212. The results from the second personal content 214 are then returned to first compute node 204 (or retained at ubiquitous web search engine 234). This can also continue for a third personal content location 218, which can be a cloud location (without a search engine). Ubiquitous web search engine 234 runs query 120 at the cloud personal content location (e.g., third personal content location 218) by referring to a cloud index generated by a cloud computing node (e.g., compute node 220). The results from the third personal content 222 are then returned to first compute node 204 (or retained at ubiquitous web search engine 234).

[0100] The results stored at ubiquitous web search engine 234 or at the first computing node 204 can now be further processed by ubiquitous web search engine 234 to be aggregated and ranked along with the web page document results and presented to the content owner 110.

[0101] Alternatively, the web search engine 234 can be given a list of universal web personal content locations (e.g., 202, 210, and 218) to run query 120 against the corresponding location index. Therefore, the query is not passed from one compute node to another, but directly to the universal web search engine 234. The result can then be passed back to the first personal content location 202 for rendering by the browser in conjunction with the webpage document results.

[0102] In another variation, the web-based search engine 226 receives query 120, a list of ubiquitous web personal content locations (202, 210, and 218) to be accessed, and forwards the query to the corresponding personal content location search engine (208, 216, and 218) and / or ubiquitous web search engine 234 for processing. Essentially, any search engine for personal content locations can be used to process a query, provided the query initiator is known—the source of the query is known—so that the results are sent to the appropriate query initiator. This offloads query processing from the web-based search engine 226 to other ubiquitous (or ubiquitous web) search engines, but this is not a necessary condition.

[0103] Personal content locations in the cloud (e.g., third personal content location 218) can be treated in the same way as other personal content locations in the ubiquitous network, because cloud personal content locations have computing nodes (e.g., third computing node 220) and operate similarly to other computing nodes in the ubiquitous network, as well as according to any of the alternatives and variations described above.

[0104] For example, if query 120 is issued from the first personal content location 202 and the cloud personal content location (e.g., the third personal content location 218) lacks a search engine, a cloud index (e.g., the index of the third personal content location 218) generated by a cloud computing node (e.g., the third computing node 220) can be sent to the first personal content location 202 for processing by the first universal search engine 208. The first universal search engine 208 can then request results from the cloud personal content (e.g., the third personal content 222) via a first computing node 204 that communicates with the cloud computing node (e.g., the third computing node 220), and the cloud computing node returns the results (e.g., result 232) to the first computing node 204.

[0105] Alternatively, the cloud index remains at the location of the personal cloud content, and the first universal search engine 208 runs a search process on the cloud location index over the network, and the results are returned to the first computing node 204 through the cloud computing node.

[0106] Alternatively, the cloud index remains at the location of the cloud personal content, and the first compute node 204 sends query 120 to the cloud computing node, which then sends query 120 to the cloud search engine (e.g., the third universal search engine 224) to process query 120 against the cloud index and return the results from the cloud personal content to the cloud computing node, and from there back to the first compute node 204 and the first universal search engine 208 for aggregation, ranking, and presentation.

[0107] Figure 3 An alternative ubiquitous network system 300 is illustrated, in which ubiquitous network compute nodes 302 perform compute node operations for one or more personal content locations 304. For example, a dedicated network compute node 302 (similar to...) Figure 1 Computation node 104 in the middle) is for Figure 2 The corresponding personal content (206, 214, and 222) for the corresponding personal content positions (202, 210, and 218) generates a first index 306, a second index 308, and a third index 310. Although a subset of the indexes for personal content positions 304 are shown, alternatively, the ubiquitous network compute node 302 can be designed to handle all compute node operations for all personal content positions 304.

[0108] In operation, as before, the initiator (content owner) of query 120 instructs for access to shared content in personal content (e.g., 214) of any other personal content location (e.g., 210 and 218) via index 306. The ubiquitous web computing node 302 processes index 306 and responds to access to shared and private content in personal content locations (210 and 218). The results are then relayed back to the first personal content location 202 via ubiquitous web computing node 302. Alternatively, the results can be relayed between search engines via the network (e.g., from a second ubiquitous search engine 216 to a first ubiquitous search engine 208), or through other application means. Once the web-based and ubiquitous web results are received at the first personal content location 202, the first ubiquitous search engine 208 performs result processing, as before, to aggregate, rank, and present both the web-based and ubiquitous web results.

[0109] The ubiquitous network compute node 302 can be located on a standalone network machine, such as a server in a home network, or at one of the personal content locations, in order to respond to compute node operations for one or more of the other personal content locations 304.

[0110] The following description, instead of focusing on the location of individual content, describes general search. However, this is not to be construed as a limitation in any way.

[0111] Figure 4 System 400 according to the disclosed architecture is illustrated. System 400 may include an indexer component 402 of device 404 of content owner 406, which generates an index 408 (“local” index) on device 404 of personal content 410 residing on device 404 for processing queries 412 received by universal search engine 414 of device 404.

[0112] The provisioning component 416 of device 404 sends a query 412 to a remote device 418 of the shared content owner 420 to process the query against a shared content index 422 of the shared personal content 424. The remote device 418 enables device 404 to access the shared personal content 424 of the remote device 418, indexed according to the shared content index 422. The shared personal content 424 of the remote device 418 can be accessed by device 404 (content owner 406) based on a license (access credential) associated with content owner 406. The provisioning component 416 receives the shared content result 426 from the remote device 418 based on the processing of query 412 against the shared content index 422 (performed by the ubiquitous search engine of the remote device 418), and receives the personal content result 428 from device 404 based on the processing of query 412 against the ubiquitous search engine 414 against the universal search engine.

[0113] Content owner 406's personal content 410 is the personal content of content owner 406, and shared content owner 420's shared personal content 424 is the personal content of shared content owner 420. Content owner 406's personal content 410 is kept private to public users, and shared content owner 420's shared personal content 424 is accessible to content owner 406.

[0114] Index 408 can be made visible to public users to indicate that the index owner may have a certain document type or content, but access to that document is subsequently prohibited. For example, a document may only be accessible after a fee is paid.

[0115] Index 408 can be distributed across one or more other devices (e.g., remote device 418). Index 408 can be generated in real time on device 404 of content owner 406.

[0116] The shared content owner 420 can enable the shared content index 422 to become a public index, which is searchable by public users based on access criteria. Similar to the previous personal content location, the shared personal content 424 accessed by public users can be based on at least one of the following criteria: the proximity of the public user who issued the query to the remote device 418, the degree of separation between the shared content owner 420 and the public user, the quality and relevance of the shared personal content 424 of the shared content owner 420, or a confidence measure of the shared content owner 420.

[0117] Remote device 418 may be a sensor system that generates real-time sensor data and indexes that sensor data in real time to generate a real-time sensor index (e.g., a shared content index 422). The sensor system includes a sensor system supply component (functionally similar to supply component 416) that supplies the real-time sensor index for searches performed using query 412 received using ubiquitous search engine 414.

[0118] Although not shown here, in the following figures, remote device 418 may include a remote indexer component and a remote provisioning component as part of a remote computing node. The remote indexer component generates a shared content index 422, and the remote provisioning component provides the shared content index 422 to a remote search engine (not shown, but similar to a universal search engine 414) of remote device 418 that processes query 412. The remote provisioning component receives zero, some, or all of the shared content 424 from the remote search engine as a shared content result 426, and returns the shared content result 426 to the provisioning component 416 of device 404.

[0119] Indexer component 402 and provisioning component 416 are portions of the compute node that processes query 412 on device 404. The compute node forwards query 412 to other compute nodes on other devices (e.g., remote device 418) and aggregates and ranks the personal content results (e.g., shared personal content result 426) obtained from other compute nodes together with personal content result 428 from device 404.

[0120] The supply component 416 supplies the index 408 to process the query 412 on device 404, and zero, some, or all of the personal content 410 of the personal content of the individual owner 406 (as content result 428) and zero, some, or all of the shared personal content 424 of the personal content of the remote device 418 (as shared content result 426) are optionally presented on device 404 along with the web page search results 430. The web page results are optional because the query 412 may be limited to devices on a corporate network or intranet, in which case the web page results are not expected.

[0121] The content owner 406 can be a human user or a non-human user such as a traffic camera, and the shared content owner 420 can be a human user or a non-human user such as a weather camera.

[0122] Indexer component 402 and supply component 416 are shown as being internal to device 404; however, in one embodiment, these components may be applications running outside of device 404, such as... Figure 3 As previously illustrated.

[0123] Although not shown, the disclosed architecture may provide a privacy component that allows users to choose whether or not to expose their content and other information. This privacy component enables authorized and secure handling of user information.

[0124] In implementations of purely home or other private networks, for example, a device within a private network device (labeled "local" to distinguish it from "other" network devices) may serve as the designated search engine and designated compute node for one or more private network devices (also referred to as "other network devices"). The designated private network device is granted access to the personal content of the other private network devices, and the designated compute node generates a private network index for the shared personal content accessible by the other private network devices, the private content of the other private network devices, and the private content of the designated private device, since these devices are all managed and controlled by the same owner of the private network. Therefore, any query presented to a private network device is then routed to the designated private device and processed against the private network index to return the private content and / or shared personal content of the designated private device and the other private network devices.

[0125] Figure 5 A system 500 is illustrated that provides web pages and shared documents as search results. In this example system 500, two user devices are shown that allow a first user (User 1) to access their shared personal documents. (It should be noted that this example only illustrates a search performed against the shared personal documents of two other users (a second user (User 2) and a third user (User 3)), and not an actual query performed by the first user; however, in typical operation, searches could also be performed against the first user's private and personal documents, provided the first user enables this to be done.)

[0126] For example, a second user (user 2) 502 grants access to a second user-shared personal document 504 on a second user's personal storage device 506, which also stores a private document 508 (accessible only by the second user). Similarly, a third user (user 3) 510 grants access to a third user-shared personal document 512 on a third user's personal storage device 514, which also stores a private document 516 (accessible only by the third user).

[0127] Each user's (502 and 510) device includes a compute node (CNx) for creating a personal content index and feeding it to a web-based search engine. For example, the device of the second user 502 includes a second compute node (CN2) 518, and the device of the third user 510 includes a third compute node (CN3) 520.

[0128] The indexes generated by the compute nodes (518 and 520) can be handled in several different ways. For example, to provide optimal performance, the indexes are processed locally on the device by the device's ubiquitous search engine, and the results are passed directly to the browser application to be rendered along with the web page results, rather than being passed to the web-based search engine to be returned to the local device for rendering along with the web page results.

[0129] Alternatively, one or more indexes in the index can be uploaded to a dedicated, universal web search engine (e.g., Figure 2 A web search engine 234 (a search engine other than web-based search engines and device-specific search engines) is used to process the identities of individuals and shared personal documents and to retrieve them based on a query 526 received from user 1. Query 526 is shown to apply not only to the search engine webpage index 528 but also to the shared index table 530. The shared index table 530 stores index information for indexes (522 and 524) for second and third users (502 and 510).

[0130] In another implementation, the indexes (522 and 524) can be uploaded to a web-based search engine for query processing and for returning web page results and shared personal content to the first user. In this implementation, the web search engine analyzes the indexes for permissions, tags, and identity information that indicate the specific personal content to be returned and presented in the first user's browser.

[0131] In this example, the web search engine is then able to request shared result content from devices (502 and 510) and rank the shared result content to select the top-ranked content for presentation in the first user's browser. In an alternative approach to this example, the web search engine, based on the web search engine's processing of the index (522 and 524), can send information to the user's local device (502 and 510) specifying the content to be selected for presentation.

[0132] These are just a few examples of protocols that can be used to handle query processing when using multiple search engines (general and web-based) as well as public / private personal content and shared personal content.

[0133] In this example, the universal search engine of the first user's device (not shown) receives and processes query 526 based on index information stored in a shared index table 530 (which identifies shared indexes (522 and 524)). The first user's device processes query 526 by forwarding it at least to each of the devices of the second and third users (502 and 510) for processing. The universal search engines (not shown) of the shared devices of the second and third users (502 and 510) each process query 526 and return a shared result 534 (shown as a single block of results, but actually comprising separate groups of results from each of the devices of the second and third users (502 and 510)).

[0134] Similarly, a web search engine (not shown) uses the search engine webpage index 528 and webpage document 536 to process query 526 to return webpage result 538. An aggregation and ranking component 540 is used to aggregate and rank the shared individual result 534 and webpage result 538, and output them as query result 542 to the first user. The aggregation and ranking component 540 can be associated with a web search engine system so that the first user device sends shared results to the web search engine for aggregation and ranking along with the webpage result 538, and ultimately presented.

[0135] The query results 542 presented to the querying user include zero, one, or more shared personal documents 544 from the second user's shared personal document 504, zero, one, or more shared personal documents 546 from the third user's shared personal document 512, and / or zero, one, or more web page documents 548 from the web page document 536.

[0136] Ranking general search results involves determining the importance (or relevance) of chunks of retrieved, shared documents and / or stored documents on a personal device, based on user preferences and query signals / relevance for a given user query. For example, consider a user query "Summer Garden 2013". If the system calculates, or has already calculated, that the user is an avid gardener and photographer with a massive collection of garden photos taken in the summer of 2013, then images retrieved for the query can be ranked higher than text documents containing mentions of "summer," "garden," and "2013," or even web page results for "Summer Garden 2013" (many of which will be irrelevant to the user due to the general and mediocre (though personal) nature of the query). Therefore, the ranking capability of the aggregation and ranking component 540 can rank shared personal content results based on their relevance to the user and the user query.

[0137] The aggregation and ranking processes can be performed separately on shared individual results 534 and web page results 538, so that each group of results is ranked independently of each other. In this case, the shared results can be presented as a single annotated and ranked group in a browser (or other application), or as a separate annotated and ranked group for each group of shared results from users (502 and 510), as indicated below.

[0138] In an alternative implementation, all results in shared results 534 and web page results 538 are ranked together and then separated in the user interface (UI) for user identity, where the results are ranked shared personal results and the results are ranked web page results.

[0139] Furthermore, alternatively, entire groups of shared results and web page results can be presented as single groups of results, wherein the shared results are annotated with an identifier that identifies the results as shared results for a specific general network user. Additionally, as indicated herein, aggregation and ranking may also include private documents and / or shared personal documents of the first user (querying user), as described below.

[0140] The ubiquitous search architecture enables powerful search scenarios involving personal events. For example, users can use queries such as "My Hawaii Vacation 2012", "New Year 2013", and "Father's Day" to search for content based on personal events on their personal devices. These queries are more relevant to personal content available on personal storage devices than to online content publicly available on web pages.

[0141] In this example system 500, the web search engine (not shown, but associated with web index 528 and web results 538) may include hardware and applications that facilitate: storing and processing query 526; accessing and retrieving shared personal documents, shared results 534, search engine web index 528, and web results 538 from second and third devices of corresponding users (502 and 510); a aggregation and ranking component 540 for aggregating and ranking shared results 534 and web results 538; and presenting query results 542 on the first user device.

[0142] Figure 6An example is illustrated by an indexer component 600 (similar to indexer component 102) of a ubiquitous network computing node that generates an index of shared documents for user devices. In this specific example, indexer component 600 (e.g., a third user out of three) obtains document tags and generates an inverted index for the documents. However, it should be understood that this is merely one type of indexing technique that can be employed. Alternatively, other indexing techniques such as suffix trees, n-gram indexes, document-term indexes, and so on can be used. The document view determines which documents in the inverted index are accessible to a given user. The document or content owner determines which users can query and browse the document through permissions (e.g., accounts, folders, files, etc.).

[0143] Each document (document 602) can be processed based on a tag 604 (e.g., a word) associated with a given document. Furthermore, multiple different documents may have the same tag. Therefore, a single tag (tag 606) can be associated with many different documents 608 that have the same tag. An inverted index 610 is then created that maps the tag (e.g., tag 606) to one or more documents 612 in a shared document library of a given user device; a first user device (querying user) and a second user device (sharing user).

[0144] Once the inverted index 610 is generated, it is subsequently used by, for example, a local search engine to process queries submitted by a first user, returning document views of individual documents, such as a first-user document view 614 of document 618 accessible to the first user on a third-user device, and a second-user document view 616 of document 620 accessible to the second user on a third-user device. As previously indicated, the document views determine which documents in the inverted index are accessible to a given user. Therefore, the querying user is presented with results 622, which may include not only general web document results but also web page document results (not shown).

[0145] Figure 7 An example of a supply system 700 is shown, which supplies the index and the compute nodes that return the relevant personal documents based on query 412. A supply component 702 (similar to supply component 118) for a third component (user 3) identifies the documents accessible to the first user who issued query 412. Supply system 700 utilizes supply component 702 to interface with a universal search engine (for a given device) so that the user query 412 of the first user (user 1) (processed as a reference to the inverted index 610 of (user 3) matching tag 704 of query 412) returns only those documents identified by the first user's document view 614 (e.g., represented by document 706 supplied to the first user).

[0146] Figure 8 An example of a distributed indexing system 800 for computing nodes is illustrated. Three user devices (first user device 802, second user device 804, and third user device 806) among many different possible devices 808 are described, for example, capable of using wired connections (e.g., Ethernet). TM ), wireless (e.g., Ethernet) TM ), and short-range wireless (e.g., Bluetooth) TM Personal user devices (e.g., tablet computers, digital cameras, camcorders, audio equipment, smartphones, portable computers, etc.) and non-personal user devices (e.g., autonomous sensor systems, traffic cameras, street cameras, weather sensors, etc.) that communicate using any one or more technologies such as .

[0147] The first user device 802 includes a first computing node 810 for creating a personal index and supplying the index to a ubiquitous search engine 811 (also labeled PSE1). The first computing node 810 includes a first indexer component 812 that creates a first personal index 814 of shared documents 816 on a first user personal storage device 818, which also includes private documents 820 restricted from unauthorized external access by other users and / or systems. The first computing node 810 also includes a first index supply component 822 that supplies the first personal index 814 to the ubiquitous search engine 811.

[0148] Similarly, the second user device 804 includes a second compute node 824 for creating a personal index and supplying the index to the ubiquitous search engine 825 (also labeled PSE2). The second compute node 824 includes a second indexer component 826 that creates a second personal index 828 of shared documents 830 on the second user personal storage device 832, which also includes private documents 834 restricted from unauthorized external access by other users and / or systems. The second compute node 824 also includes a second index supply component 836 that supplies the second personal index 828 to the ubiquitous search engine 825.

[0149] The third user device 806 includes a third compute node 838 for creating a personal index and supplying that index to the ubiquitous search engine 839 (also labeled PSE3). The third compute node 838 includes a third indexer component 840 that creates a third-person index 842 of shared documents 844 on a third user personal storage device 846, which also includes private documents 848 restricted from unauthorized external access by other users and / or systems. The third compute node 838 also includes a third index supply component 850 that supplies the third-person index 842 to the ubiquitous search engine 839.

[0150] In the case of each device, when the universal search engine processes a query, for example, generated by a first user (or possibly received by the first user device), and the first user is authorized to access shared documents (830 and 844) of the second and third devices (804 and 806), the locally stored second and third person indexes (828 and 842) are processed to retrieve relevant shared personal documents (of shared documents 830 and 844) shared from the corresponding second and third devices (804 and 806), and the relevant shared personal document results are presented to the user of the first user device 802 (along with possible web-based results from the web search engine).

[0151] Personal indices (814, 828, and 842) can be distributed across other user devices. For example, the first personal index 814 can be replicated on one or more other user devices, such as on the second user device 804. Similarly, the first personal index 814 and the second personal index 828 can each be replicated as index 852 on one or more other user devices (e.g., on the third user device 806).

[0152] Therefore, it will be recognized that in the event of an indexing and / or application failure on one device, distributing the index across one or more other devices provides greater availability of individual documents for searching. The index provisioning component on each device can be configured to deliver replicated index(s) to other devices and / or to the search engine as desired.

[0153] Figure 9An indexing interface system 900 is illustrated to facilitate updating and accessing indexes for various content locations. Examples include an index 904 for a query user's personally shared documents residing on the query user device 902, a cloud index 906 for a query user's personally shared documents stored in the cloud (e.g., personal network location, personal network location such as a social network, etc.), an index 908 for a second ubiquitous network user (user 2), an index 910 for a third ubiquitous network user (user 3), and other query user indexes 912 for other query user devices, etc. The index 904 stored on user device 902 can be a single index that identifies other indexes on other personal devices of the query user. Furthermore, index 904 can be a single index created by merging the separate indexes of other user personal devices. The indexing interface 914 then facilitates updates to index 904 based on updates made individually by other user personal devices to their respective indexes. Therefore, when query processing index 904 is referenced on user device 902, the results can be obtained directly (pulled) from each user device in other user devices without running queries against the indexes of other user devices (using a universal search engine).

[0154] Therefore, index interface 914 provides links to all other external and personal indexes of the querying user and the sharing user (associated with the querying user ID of the machine / device used). In other words, index interface 914 tracks other nodes (devices, machines) associated with the user and accessible to the user (as if owned by the user and as if authorized for access by the sharing content user). Thus, index interface 914 of querying user device 902 provides the ability to access and update various external indexes and receive updates to index 904 from these external indexes.

[0155] This query user can access any query user index on any query user device (e.g., on the query user's home network or office computer / device (where the query user is the content owner for all these devices)) and shared indexes from any of the query user's devices. Furthermore, Index Interface 914 enables the query user to access indexes of private (non-shared) content on devices.

[0156] Figure 10An exemplary user interface (UI) 1000 for general search is illustrated, enabling personal data to be searched and returned in response to a query. In this specific example, the UI 1000 (e.g., a tablet device) includes a query box 1002 in which a first user enters a query (e.g., query 120, etc.) for processing. Web page results and personalized content results are returned to be presented to the first user in a search engine results page (SERP) 1004. In this presentation, the left side of the SERP 1004 shows ranked web page results 1006, and the right side of the SERP 1004 shows general results 1008 with personalized content. The personalized content of the universal result 1008 may include user personal device results 1010 (e.g., ranked from left to right) from one or more user devices, second user universal network results 1012 (e.g., ranked from left to right) from a second user of a universal network sharing personal content, and third user universal network results 1014 (e.g., ranked from left to right) from a third user of a universal network sharing personal content.

[0157] The second and third users have been granted access to some or all of their personal content through a private index created and stored for use by the second and third users based on queries from the first user.

[0158] Figure 11 An exemplary user interface 1100 for universal search is illustrated, enabling personal data to be searched and returned for a query. In this particular example, the UI 1000 (e.g., a tablet device) includes a query box 1002 where a first user enters a query for processing. Web page results and personalized content results are returned to be presented to the first user in a SERP 1004. In this presentation, the SERP 1004 is displayed on the left side of the UI 1100, showing ranked web page results 1006 and universal results of personalized content 1008. As before, universal results may include user personal device results 1010 of personal content from one or more user devices, second user results 1012 of personal content from a second user from a universal network sharing personal content, third user results 1014 of personal content from a third user from a universal network sharing personal content, and content from other sharing users on the universal network.

[0159] The second and third users have been authorized (enabled) by the first user to access some or all of their device results, and thus are permitted to access personal content (e.g., local and / or cloud-based) specified by the second and third users through a private index created and stored by the second and third users for search by the first user. The right side of UI 1100 may show a tile area 1102 such as a desktop tile 1104 that enables the user to interact with device programs and / or data.

[0160] Figure 12 A more detailed example of the universal result 1200 presented in the SERP 1004 user interface is shown. Personal documents of the first user and other users include, but are not limited to, photos, images, videos, text documents such as receipts and Word documents, spreadsheets, audio files, etc. These documents may reside on personal devices that index and organize local documents and personal documents stored in network (e.g., "cloud") accounts or locations.

[0161] In this specific example, a general result 1200 is returned to be presented to the first user in SERP 1004. In this presentation, the first user ranking result 1202, such as personalized content for the first user (querying user) 1010 obtained from one or more devices of the first user and / or from a cloud location, may include four instances of the ranked result (e.g., the four instances ranked from highest to lowest from left to right).

[0162] For example, if the query is "garden", the user1 index (stored at the search engine) can be searched for documents indexed by the word "garden" and then returned as part of the general results in SERP 1004. In other words, the first result (RESLT1) of the first user (user1) in result 1202 is the first result. PD1 (This could be a document image of a garden tagged "vegetables, summer, nursery bed, August, 2012".) (Note that this result could come from the first user's first device, such as indicated by "PD 1" (Personal Device-1).) Similarly, the second result in result 1202 ranked by the first user (User 1) (RESLT2) PD2 (This could be a document image of a bowl of cherries associated with the tags "cherries, harvest, October, 2011".) (Note that this result can come from the first user's second device, such as indicated by "PD 2" (Personal Device-2).) The third result in the first user's (User 1) ranking results 1202 (RESLT3) PD3) can be a document image of a receipt with the tags "nursery, receipt, finance, 2013", and the fourth result in the first user (user 1) ranking result 1202 ((RESLT4) PD4 () can be a spreadsheet document icon associated with the tags "sowing, timeline, nursery, excel".

[0163] Similar results can then be returned from the shared users (user 2 and user 3) of the universal network. For example, the first result (RESLT1) in the ranking result 1204 for the second user (user 2) U2 () could be a document image of a raspberry with the associated tags "raspberry, fall, 2011", the second result of the second user (user 2) ranking result 1204 (RESLT2) U2 This could be another document image of a tomato with the associated tags "cherry tomato, summer, 2013," and similar images for other personal document content. The third-user ranking result 1206 returned for a third user (User 3) could include a first result (RESLT1) with a document image of a tomato with the associated tags "Roman tomato, autumn, 2012." U3 ), as a second result (RESLT2) of a Word document with associated tags "growing Roman tomatoes, how to do it, doc". U3 ), and similar things, for other personal document content.

[0164] Included herein are a set of flowcharts illustrating exemplary methods for performing novel aspects of the disclosed architecture. Although, for simplicity of explanation, one or more methods shown herein (e.g., in the form of flowcharts or diagrams) are illustrated and described as a series of actions, it should be understood and appreciated that these methods are not limited to the order of actions, as some actions may therefore appear in a different order and / or co-occur with other actions besides those shown and described herein. For example, those skilled in the art will understand and appreciate that methods may alternatively be represented as a series of interrelated states or events, such as in a state diagram. Furthermore, not all actions exemplified in the methods are required for novel implementations.

[0165] Figure 13An example of a method based on the disclosed architecture is illustrated. At 1300, a content index of the personal content at the personal content location of the content owner is generated, and a remote index of the remote personal content at the remote personal content location of the remote content owner is generated. At 1302, the content index and the remote index are provided for processing queries issued by the content owner. At 1304, based on the processing of queries about the content index and the remote index, search results for relevant personal content from the personal content location and relevant shared personal content from the remote personal content location are returned.

[0166] The method may also include processing queries by comparing content indexes and remote indexes, and by comparing web page indexes, and returning the web page results along with relevant personal content and relevant shared personal content to present to the content owner.

[0167] The method may also include processing queries at the content owner's personal content location by referring to the content index, and processing queries at the remote content owner's remote personal content location by referring to the remote index.

[0168] The method may also include merging content indexes and remote content indexes to create a merged index, and storing the merged index in a web storage location for access and processing by search engines to return relevant personal content and relevant shared personal content as search results.

[0169] The method may also include forwarding a query from a remote personal content location to another remote personal content location, processing the query against another remote index at that other remote personal content location, and returning the relevant personal content from the other remote personal content location to that remote personal content location. The method may also include copying content indexes and remote indexes at one or more other personal content locations.

[0170] Figure 14An alternative method based on the disclosed architecture is illustrated. This method can be embodied on a computer-readable storage medium including computer-executable instructions that, when executed by a microprocessor, cause the microprocessor to perform one or more of the following actions: At 1400, a content index of personal content at the content owner's personal content location is generated. At 1402, authorized access to shared personal content at a remote personal content location of the shared content owner is received. The shared personal content is indexed based on the shared content index. At 1404, a query issued by the content owner is processed by comparing the remote index and the shared content index. At 1406, relevant personal content results from the personal content location and relevant shared personal content results from the remote personal content location are received based on the processing of the query. At 1408, the relevant personal content results and relevant shared personal content results are ranked based on user preferences and personal content relevance. At 1410, the ranked personal content results and ranked relevant shared personal content results are presented to the content owner along with webpage-based results.

[0171] The method may also include receiving relevant shared personal content results from a remote personal content location based on at least one of the following: proximity of the personal content location to the remote personal content location, quality measure of relevant shared personal content at the remote personal content location, relevance of shared personal content at the remote personal content location, or confidence measure of the shared content owner.

[0172] The method may further include real-time data orchestration indexing of remote personal content locations and providing the real-time data index to queries. The method may also include distributing and caching the content index and the shared personal content index across multiple personal content locations.

[0173] The method may also include sending a query from a personal content location directly to a remote personal content location and other accessible remote personal content locations, processing the query at each of the remote personal content locations and other accessible remote personal content locations, and receiving relevant content results from any one or more of the remote personal content locations and other accessible remote personal content locations at the personal content location.

[0174] The following alternative approaches are presented from the perspective of device rather than personal content location.

[0175] Figure 15An example of a method based on the disclosed architecture is illustrated. At 1500, a private index of private content on the content owner's local device is generated, and a shared index of shared content on the shared content owner's remote device is generated. The private index can be an index of private user documents accessible only to the user. The private index is then processed to return only privately relevant content for the local device (and not for other users in the general network). At 1502, the private and shared indexes are provisioned (made accessible) for processing queries from the content owner. At 1504, based on the processing of queries about the private and shared indexes, search results for relevant private content from the content owner's local device and relevant shared content from the shared content owner's remote device are returned.

[0176] The method may also include processing queries by comparing private and shared indexes, and by comparing them with the webpage index, and returning webpage results along with relevant private and shared content to the content owner. The method may also include processing queries on the content owner's local device by comparing them with the private index, and on the shared content owner's remote device by comparing them with the shared index. The method may further include merging the private and shared indexes to create a merged index, and storing the merged index in a web storage location for access and processing by search engines to return search results. In this way, the merged index is highly available for access from any user device.

[0177] The method may also include forwarding queries from a remote device of a shared content owner to another remote device (non-local device) of another shared content owner, processing the queries against another shared index of the other remote device, and returning the relevant content from the other remote device to the shared content owner's remote device. The method may also include replicating private and shared indexes on other ubiquitous network devices.

[0178] Figure 16Alternative methods based on the disclosed architecture are illustrated. A computer-readable storage medium includes computer-executable instructions that, when executed by a microprocessor, cause the microprocessor to perform the following actions: At 1600, a content index of content on the local device of the content owner is generated. At 1602, authorized access to shared content on a remote device of the shared content owner is received, the shared content being indexed according to the shared index. At 1604, a query is processed by comparing the local index and the shared index. At 1606, relevant content results from the local device and relevant shared content results from the remote device of the shared content owner are received based on the processing of the query. At 1608, the relevant content results from the local device and the relevant shared content results from the remote device of the shared content owner are ranked based on user preferences and content relevance. At 1610, the ranked relevant content results and the ranked relevant shared content results are presented together with webpage-based results on the local device of the content owner.

[0179] The computer-readable storage medium may also include instructions for receiving results of relevant shared content from a remote device based on at least one of the following: proximity of the local device to the remote device, a quality metric of the relevant shared content on the remote device, relevance of the shared content on the remote device, or a confidence metric of the shared content owner. The machine-readable storage medium may also include instructions for indexing real-time data from the remote device and supplying the real-time data index to incoming queries. The computer-readable storage medium may also include instructions for distributing and caching local and shared indexes across multiple devices. The computer-readable storage medium may also include instructions for: sending queries from the local device directly to the remote device and other accessible remote devices; processing queries at the remote device and other accessible remote devices respectively; and receiving results of relevant content from any one or more of the remote device and other accessible remote devices at the local device.

[0180] As used in this application, the terms "component" and "system" are intended to refer to computer-related entities (hardware, software, and combinations of tangible hardware, software, or software in execution). For example, a component can be (but is not limited to) tangible components such as microprocessors, on-chip memory, mass storage devices (e.g., optical drives, solid-state drives, and / or magnetic storage media drives), and computers, as well as software components such as processes running on a microprocessor, objects, executable documents, data structures (stored in volatile or non-volatile storage media), modules, execution threads, and / or programs.

[0181] By way of illustration, both the application running on the server and the server itself can be components. One or more components may reside within a program and / or execution thread, and components may reside on a single computer and / or be distributed across two or more computers. The word "exemplary" is used herein to refer to an example, instance, or illustration. Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs.

[0182] Now for reference Figure 17 A block diagram of a computing system 1700 is illustrated, which performs a universal search computation according to the disclosed architecture. However, it will be appreciated that some or all aspects of the disclosed methods and / or systems can be implemented as a system-on-a-chip, wherein analog, digital, mixed-signal, and other functions are fabricated on a single chip substrate.

[0183] To provide further context for the various aspects of this article, Figure 17 The following description is intended to provide a brief, general description of a suitable computing system 1700 in which various aspects can be implemented. Although the above description is in the general context of computer-executable instructions that can run on one or more computers, those skilled in the art will recognize that novel embodiments may also be implemented in combination with other program modules and / or limited to a combination of hardware and software.

[0184] The computing system 1700 for implementing various aspects includes a computer 1702 (also referred to as one or more microprocessors and one or more processors) having one or more microprocessor units 1704, a computer-readable storage medium such as system memory 1706 (computer-readable storage media / multiple media may also include disks, optical disks, solid-state drives, external storage systems, and flash drives), and a system bus 1708. The one or more microprocessor units 1704 can be any microprocessor of a variety of commercially available microprocessors, such as single-processor, multiprocessor, single-core and multi-core units of processing circuitry and / or storage circuitry. Furthermore, those skilled in the art will recognize that novel systems and methods can be implemented using other computer system configurations, including minicomputers, mainframe computers, and personal computers (e.g., desktop computers, laptop computers, tablets, PCs, etc.), handheld computing devices, microprocessor-based or programmable consumer electronics devices, etc., each operatively coupled to one or more associated devices.

[0185] Computer 1702 may be one of several computers used in a data center and / or computing resources (hardware and / or software) that support cloud computing devices for portable and / or mobile computing systems (such as wireless communication devices, cellular phones, and other mobile devices). Cloud computing devices include, but are not limited to, for example, infrastructure as a service, platform as a service, software as a service, storage devices as a service, desktops as a service, data as a service, security as a service, and APIs (application programming interfaces) as a service.

[0186] System memory 1706 may include computer-readable storage (physical storage) media such as volatile (VOL) memory 1710 (e.g., random access memory (RAM)) and non-volatile (NON-VOL) memory 1712 (e.g., ROM, EPROM, EEPROM, etc.). The Basic Input / Output System (BIOS) may be stored in the non-volatile memory 1712 and includes basic routines that facilitate communication of data and signals between components within the computer 1702, for example, during startup. Volatile memory 1710 may also include high-speed RAM such as static RAM for caching data.

[0187] System bus 1708 provides interfaces for system components, including but not limited to system memory 1706 and one or more microprocessor units 1704. System bus 1708 can be any of several types of bus architectures, and can also use any of a variety of commercially available bus architectures to interconnect with memory buses (with or without memory controllers) and peripheral buses (e.g., PCI, PCIe, AGP, LPC, etc.).

[0188] The memory 1702 also includes one or more machine-readable storage device subsystems 1714 and one or more storage interfaces 1716 for engaging the one or more storage device subsystems 1714 to a system bus 1708, as well as other desired computer components and circuitry. The one or more storage device subsystems 1714 (physical storage media) may include one or more of the following storage devices: for example, hard disk drives (HDDs), disk drives (FDDs), solid-state drives (SSDs), flash drives, and / or optical disc drives (e.g., CD-ROM drives, DVD drives). The one or more storage interfaces 1716 may include, for example, interface technologies such as EIDE, ATA, SATA, and IEEE 1394.

[0189] One or more programs and data may be stored in storage subsystem 1706, machine-readable and removable memory subsystem 1718 (e.g., flash drive form factor technology), and / or one or more storage device subsystems 1714 (e.g., optical, magnetic, solid-state), the one or more programs and data including operating system 1720, one or more application programs 1722, other program modules 1724, and program data 1726.

[0190] The operating system 1720, one or more application programs 1722, other program modules 1724, and / or program data 1726 may include, for example: Figure 1 Projects and components of System 100 Figure 2 System 200 projects and components, Figure 3 Projects and components of System 300 Figure 4 Projects and components of System 400 Figure 6 The indexer component 600 includes items and components. Figure 7 The indexing supply system 700 includes projects and components. Figure 8 Projects and components of System 800 Figure 9 Items and components in the index interface 900 Figure 10 The user interface of 1000 items and components, Figure 11 The user interface 1100 items and components, Figure 12 The universal result 1200, and the use of Figures 13 to 16 The method is represented by the flowchart in the diagram.

[0191] Typically, a program includes routines, methods, data structures, other software components, etc., that perform specific tasks, functions, or implement specific summary data types. All or part of the operating system 1720, application 1722, module 1724, and / or data 1726 may also be cached in memory such as, for example, volatile memory 1710 and / or non-volatile memory. It should be appreciated that the disclosed architecture can be implemented using various commercially available operating systems or combinations of operating systems (e.g., virtual machines).

[0192] One or more storage device subsystems 1714 and memory subsystems (1706 and 1718) serve as computer-readable media for volatile and non-volatile storage of data, data structures, computer-executable instructions, etc. When executed by a computer or other machine, these instructions cause the computer or other machine to perform one or more actions of a method. Computer-executable instructions include, for example, instructions and data that cause a general-purpose computer, a special-purpose computer, or one or more special-purpose microprocessor devices to perform a function or a set of functions. Computer-executable instructions may include, for example, binary, intermediate-format instructions, such as assembly language, or even source code. Instructions for performing actions may be stored on one medium or across multiple media, such that instructions coexist on one or more computer-readable storage media / multiple media, regardless of whether all instructions are on the same medium.

[0193] Multiple computer-readable storage media (one medium) exclude signals propagating from themselves, are accessible by computer 1702, and may include removable and / or non-removable volatile and / or non-volatile internal and / or external media. For computer 1702, various types of storage media are adapted to store data in any suitable digital format. Those skilled in the art will recognize that other types of computer-readable media, such as zip drives, solid-state drives, magnetic tape, flash memory cards, flash drives, tape cassettes, etc., may be employed to store computer-executable instructions for performing novel methods (actions) of the disclosed architecture.

[0194] Users can interact with computer 1702, programs, and data using external user input devices 1728 such as a keyboard and mouse, as well as voice commands facilitated by speech recognition. Other external user input devices 1728 may include microphones, IR (infrared) remote controls, joysticks, game consoles, styluses, touchscreens, gesture systems (e.g., eye movements, body postures, such as those involving one or more hands, one or more fingers, one or more arms, head, etc.), and so on. Users can interact with computer 1702, programs, and data using on-board user input devices 1730 such as touchpads, microphones, keyboards, etc., where computer 1702 is, for example, a portable computer.

[0195] These input devices and other input devices are connected to one or more microprocessor units 1704 via system bus 1708 and one or more input / input (I / O) device interfaces 1732, but can be connected via other interfaces, such as parallel ports, IEEE 1394 serial ports, gaming ports, USB ports, IR interfaces, short-range wireless (e.g., Bluetooth) and other personal area network (PAN) technologies, etc. One or more I / O device interfaces 1732 also facilitate the use of output peripherals 1734 such as printers, audio devices, camera devices, etc., I / O device interfaces such as sound cards and / or onboard audio processing capabilities.

[0196] One or more graphics interfaces 1736 (also commonly referred to as graphics processing units (GPUs)) provide image and video signals between the computer 1702 and one or more external display devices 1738 (e.g., LCD, plasma) and / or on-board display devices 1740 (e.g., for a portable computer). The one or more graphics interfaces 1736 may then be manufactured as part of the computer system board.

[0197] Computer 1702 can operate in a networked environment (e.g., IP-based) via logical connections to one or more networks and / or other computers through wired / wireless communication subsystem 1742. Other computers may include workstations, servers, routers, personal computers, microprocessor-based entertainment devices, peer-to-peer devices, or other public network nodes, and typically include many or all of the elements described with respect to computer 1702. Logical connections may include wired / wireless connections to local area networks (LANs), wide area networks (WANs), hotspots, etc. LAN and WAN networking environments are commonplace in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can connect to global communication networks such as the Internet.

[0198] When used in a networked environment, computer 1702 connects to the network via a wired / wireless communication subsystem 1742 (e.g., a network interface adapter, an online transceiver subsystem, etc.) to communicate with wired / wireless networks, wired / wireless printers, wired / wireless input devices 1744, etc. Computer 1702 may include a modem or other means for establishing communication over the network. In a networked environment, programs and data associated with computer 1702 may be stored in remote storage / storage devices, such as those associated with a distributed system. It will be appreciated that the network connection shown is exemplary and other means for creating communication links between computers may be used.

[0199] Computer 1702 operates to communicate with wired / wireless devices or entities using wireless technologies such as the IEEE 802.xx series standards, for example, wireless devices operatively positioned in a wireless environment (e.g., IEEE 802.11 wireless stripe technology) associated with any device or location such as a printer, scanner, desktop and / or portable computer, personal digital assistant (PDA), communications satellite, wirelessly detectable tags (e.g., newsstand, newsstand, lounge), and telephones. This includes at least Wi-Fi for hotspots. TM (used to verify the interoperability of wireless computer networking devices), WiMax, and Bluetooth. TM Wireless technology. Therefore, communication can be either a predefined structure like that of a traditional network or a simple, thermally organized communication between at least two devices. Wi-Fi networks use wireless technologies known as IEEE 802.11x (a, b, g, etc.) to provide secure, reliable, and fast wireless connections. Wi-Fi networks can be used to connect computers to each other, connect to the Internet, and connect to wireless networks (which use technologies and features related to IEEE-802.3).

[0200] The above description includes examples of the disclosed architecture. It is certainly impossible to describe every conceivable combination of components and / or methods, but those skilled in the art will recognize that many other combinations and permutations are possible. Therefore, this novel architecture is intended to include all such alternatives, modifications, and variations falling within the spirit and scope of the appended claims. Furthermore, whenever the word "comprising" is used in the embodiment or claims, as is the case when the word "comprising" is used as a transitional term in a claim, such a word is intended to be interpreted in a similar manner to the word "comprising."

Claims

1. A system comprising: a hardware processor, and a memory, the hardware processor configured to execute instructions in the memory to cause the hardware processor to enable: an online content index of an online search engine; a personal content index associated with personal content stored on a computing device of a first user, wherein the personal content index is accessible to query devices of the online search engine based on sharing permissions set by the first user; and a server component associated with the online content index and the personal content index, the server component configured to: receive a query from a computing device of a second user, search data associated with the online content index based on the query, verify access criteria of the second user for accessing the personal content index, wherein the verifying includes determining whether the sharing permissions set by the first user provide access to the personal content stored on the computing device of the first user based on a physical proximity between the computing device of the second user and the computing device of the first user, search data associated with the personal content index based on the query, and return search results to the computing device of the second user, the search results including content from the online content index and the personal content index.

2. The system of claim 1, wherein, the personal content index is generated and updated in real-time at the computing device of the first user.

3. The system of claim 1, wherein, the server component includes a sensor system configured to generate real-time sensor data for updating the personal content index in real-time.

4. The system of claim 1, wherein, an indexer component configured to generate a local content index for the personal content, and wherein when the first user submits a query from any of a plurality of other computing nodes associated with a user account of the first user, the server component only enables the first user to access via the local content index for the personal content.

5. The system of claim 1, wherein, the server component is further configured to forward the query to other personal content locations of the first user distributed across the plurality of computing nodes associated with the first user and receive search result data from the other personal content locations of the first user, wherein the received search result data is returned to the computing device of the second user.

6. The system of claim 5, wherein, based on the sharing permissions, at least one of the other personal content locations of the first user denies access to content.

7. The system of claim 1, wherein, prior to searching the personal content index, the server component is further configured to determine whether the personal content stored on the computing device of the first user satisfies a quality metric.

8. The system of claim 1, wherein, prior to searching the personal content index, the server component is further configured to determine whether the personal content stored on the computing device of the first user satisfies a confidence metric, the confidence metric including a likelihood that the personal content stored on the computing device of the first user has content related to the query.

9. A method performed by a computing system, the method comprising: enabling an online content index of an online search engine; enabling a personal content index associated with personal content stored on a computing device of a first user, wherein the personal content index is accessible to a querying device of the online search engine based on sharing permissions set by the first user; receiving a query from a computing device of a second user, searching data associated with the online content index based on the query, verifying access criteria of the second user for accessing the personal content index, wherein verifying the access criteria comprises determining whether the sharing permissions set by the first user provide access to the personal content stored on the computing device of the first user based on a physical proximity between the computing device of the second user and the computing device of the first user, searching data associated with the personal content index based on the query, and returning search results to the computing device of the second user, the search results comprising content from the online content index and the personal content index.

10. The method of claim 9, wherein, the personal content index is generated and updated in real-time at the computing device of the first user.

11. The method of claim 9, wherein, a sensor system is configured to generate real-time sensor data for updating the personal content index in real-time.

12. The method of claim 9, further comprising: generating a local content index for the personal content; and enabling the first user to access only via the local content index for the personal content when the first user submits a query from any of a plurality of other computing nodes associated with a user account of the first user.

13. The method of claim 9, further comprising: forwarding the query to other personal content locations of the first user distributed across a plurality of computing nodes associated with the first user; and receiving search result data from the other personal content locations of the first user, wherein the received search result data is returned to the computing device of the second user.

14. The method of claim 13, wherein, based on the sharing permissions, at least one of the other personal content locations of the first user denies access to content.

15. The method of claim 9, further comprising: determining whether the personal content stored on the computing device of the first user satisfies a quality metric prior to searching the personal content index.

16. The method of claim 9, further comprising: determining whether the personal content stored on the computing device of the first user satisfies a confidence metric prior to searching the personal content index, the confidence metric comprising a likelihood that the personal content stored on the computing device of the first user has content relevant to the query.

17. A computer-readable hardware storage medium comprising computer-executable instructions that, when executed by a microprocessor, cause the microprocessor to perform operations comprising: enabling an online content index of an online search engine; enabling a personal content index associated with personal content stored on the first user's computing device, wherein, the personal content index is accessible to a querying device of the online search engine based on sharing permissions set by the first user; receiving a query from a computing device of a second user, searching data associated with the online content index based on the query, verifying access criteria of the second user for accessing the personal content index, wherein verifying the access criteria comprises determining whether the sharing permissions set by the first user provide access to the personal content stored on the computing device of the first user based on a physical proximity between the computing device of the second user and the computing device of the first user, searching data associated with the personal content index based on the query, and returning search results to the computing device of the second user, the search results comprising content from the online content index and the personal content index. verifying access criteria for the second user to access the personal content index, wherein verifying the access criteria includes determining whether the sharing permissions set by the first user provide access to the personal content stored on the first user's computing device based on a physical proximity between the second user's computing device and the first user's computing device, searching data associated with the personal content index based on the query, and returning search results to the second user's computing device, the search results including content from the online content index and the personal content index.

18. The computer-readable hardware storage medium of claim 17, wherein, the personal content index is generated at the first user's computing device and updated in real-time.

19. The computer-readable hardware storage medium of claim 17, wherein, a sensor system configured to generate real-time sensor data for updating the personal content index in real-time.

20. The computer-readable hardware storage medium of claim 17, the operations further comprising: generating a local content index for the personal content; and enabling the first user to access only via the local content index for the personal content when the first user submits a query from any of a plurality of other computing nodes associated with the first user's user account.

Citation Information

Patent Citations

  • Community search system with relational ranking

    US20110191318A1

  • Systems and Methods for Aggregation of Online Social Network Content

    US20130144864A1