Communication routing based on physical status
Summary by NHIP
Physical Status Communication Routing
The system routes communications to group members identified by their current physical status. It queries a sensed feature store to find entities matching the status, then dispatches messages to those members whose status matches the communication target.
Claim Score by NHIP
Abstract
Routing of communications to group member(s) where group membership is identified by physical status. A computing system detects a communication that identifies targets of the communication at least in part by physical status. The system responds by identifying at least partial membership in a group that is identified by the physical status identified in the communication, and then dispatching the communication to at least one member of the members of that group. The identity of the members of the group may change dynamically as the physical status of particular physical entities changes over time. Accordingly, a user may communicate to individuals based on physical status, rather than identify any particular individual or status group. The communication may be directed to all members of the group. Alternatively, the communication may be initially directed towards a subset of the group, with the communication being conditionally later broadened.

Term
10.9 yearsleft in the term
Expires 3 September 2037, including 198 days of term adjustment.
- Priority
- Filed
- Granted
- Today
- Expires
20 claims: 3 independent, 17 dependent
- 1A computing system comprising:one or more processors;one or more computer-readable media having thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computing system to perform a method for routing communications to one or more members of a group identified by a physical status of that group, the method comprising: detecting a communication that identifies a physical status that is to be used to determine intended targets of the communication;and in response to detecting the communication and determining the identified physical status: performing one or more queries on a sensed feature store to determine one or more physical entities associated with the identified physical status, the sensed feature store comprising information regarding a plurality of physical entities which have been observed in a physical space;using the results of the queries, identifying one or more members of a group, each identified member of the group being identified by having a member physical status that matches the physical status identified in the communication;and dispatching the communication to at least one of the one or more members of the group that is identified by the physical status identified in the communication.
- 19Broadest claimClaim Score 54, average(NHIP)A method for routing communications to one or more members of a group identified by a physical status of that group, the method comprising:detecting a communication that identifies a physical status that is to be used to determine intended targets of the communication;and in response to detecting the communication and determining the identified physical status: performing one or more queries on a sensed feature store to determine one or more physical entities associated with the identified physical status, the sensed feature store comprising information regarding a plurality of physical entities which have been observed in a physical space;using the results of the queries, identifying one or more members of a group, each identified member of the group being identified by having a member physical status that matches the physical status identified in the communication;and dispatching the communication to at least one of the one or more members of the group that is identified by the physical status identified in the communication.
- 20A computer program product comprising one or more computer-readable storage devices having thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computing system to perform a method for routing communications to one or more members of a group identified by a physical status of that group, the method comprising:detecting a communication that identifies a physical status that is to be used to determine intended targets of the communication;and in response to detecting the communication and determining the identified physical status: performing one or more queries on a sensed feature store to determine one or more physical entities associated with the identified physical status, the sensed feature store comprising information regarding a plurality of physical entities which have been observed in a physical space;using the results of the queries, identifying one or more members of a group, each identified member of the group being identified by having a member physical status that matches the physical status identified in the communication;and dispatching the communication to at least one of the one or more members of the group that is identified by the physical status identified in the communication.
Independent claims3
115 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
0001This application claims the benefit of U.S. Provisional application 62/447,809 filed Jan. 18, 2017, titled “COMMUNICATION ROUTING BASED ON PHYSICAL STATUS”, which is incorporated herein by reference in its entirety.
BACKGROUND
0002Computing systems and associated networks have greatly revolutionized our world. At first, computing systems were only able to perform simple tasks. However, as processing power has increased and become increasingly available, the complexity of tasks performed by a computing system has greatly increased. Likewise, the hardware complexity and capability of computing systems has greatly increased, as exemplified with cloud computing that is supported by large data centers.
0003For a long period of time, computing systems just did essentially what they were told by their instructions or software. However, software and the employment of hardware is becoming so advanced that computing systems are now, more than ever before, capable of some level of decision making at higher levels. At present, in some respects, the level of decision making can approach, rival, or even exceed the capability of the human brain to make decisions. In other words, computing systems are now capable of employing some level of artificial intelligence.
0004One example of artificial intelligence is the recognition of external stimuli from the physical world. For instance, voice recognition technology has improved greatly allowing for high degree of accuracy in detecting words that are being spoken, and even the identity of the person that is speaking. Likewise, computer vision allows computing systems to automatically identify objects within a particular picture or frame of video, or recognize human activity across a series of video frames. As an example, face recognition technology allows computing systems to recognize faces, and activity recognition technology allows computing systems to know whether two proximate people are working together.
0005Each of these technologies may employ deep learning (Deep Neural Network-based and reinforcement-based learning mechanisms) and machine learning algorithms to learn from experience what is making a sound, and objects or people that are within an image, thereby improving accuracy of recognition over time. In the area of recognizing objects within a more complex imaged scene with large numbers of visual distractions, advanced computer vision technology now exceeds the capability of a human being to quickly and accurately recognize objects of interest within that scene. Hardware, such as matrix transformation hardware in conventional graphical processing units (GPUs), may also contribute to the rapid speed in object recognition in the context of deep neural networks.
0006The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.
BRIEF SUMMARY
0007At least some embodiments described herein relate to the routing of communications to one or more members of a group by physical status of that group. The method in initiated upon a computing system detecting a communication that identifies targets of the communication at least in part by physical status. The computing system responds by identifying at least partial membership in a group that is identified by the physical status identified in the communication, and then dispatching the communication to at least one member of the members of that group. The identity of the members of the group may change dynamically as the physical status of particular physical entities changes over time.
0008Accordingly, a user may communicate to individuals (e.g., by any computing channel such as e-mail, social media, instant messaging, and so forth) based on physical status, without identifying any particular individual in that group, and without using a status group of members. Thus, a user may communicate to at least part of a group of individuals that are in a particular location, are working in the same area, have a relative physical location (e.g., physical proximity, line of sight, or contact) with respect to a particular physical entity, and/or any other physical status current or prior. Membership in a group may be determined by querying a graph of physical entities that is maintained and updated in response to sensor signals.
0009The communication may be directed to all members of the group. Alternatively, the communication may be initially directed towards a subset of the group, with the communication being broadened to other member(s) of the group upon some condition.
0010This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
0011In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
0012<figref idref="DRAWINGS">FIG. 1</figref> illustrates an example computer system in which the principles described herein may be employed;
0013<figref idref="DRAWINGS">FIG. 2</figref> illustrates an environment in which the principles described herein may operate, which includes a physical space that includes multiple physical entities and multiple sensors, a recognition component that senses features of physical entities within the physical space, and a feature store that stores sensed features of such physical entities, such that computation and querying may be performed against those features;
0014<figref idref="DRAWINGS">FIG. 3</figref> illustrates a flowchart of a method for tracking physical entities within a location and may be performed in the environment of <figref idref="DRAWINGS">FIG. 2</figref>;
0015<figref idref="DRAWINGS">FIG. 4</figref> illustrates an entity tracking data structure that may be used to assist in performing the method of <figref idref="DRAWINGS">FIG. 3</figref>, and which may be used to later perform queries on the tracked physical entities;
0016<figref idref="DRAWINGS">FIG. 5</figref> illustrates a flowchart of a method for efficiently rendering signal segments of interest;
0017<figref idref="DRAWINGS">FIG. 6</figref> illustrates a flowchart of a method for controlling creation of or access to information sensed by one or more sensors in a physical space;
0018<figref idref="DRAWINGS">FIG. 7</figref> illustrates a recurring flow showing that in addition to creating a computer-navigable graph of sensed features in the physical space, there may also be pruning of the computer-navigable graph to thereby keep the computer-navigable graph of the real world at a manageable size;
0019<figref idref="DRAWINGS">FIG. 8</figref> illustrates a flowchart of a method for addressing and routing communications to one or more members of a group whose membership is identified based on physical status of that group; and
0020<figref idref="DRAWINGS">FIG. 9</figref> illustrates a flowchart of a method for expanding dispatch of a communication to a group.
DETAILED DESCRIPTION
0021At least some embodiments described herein relate to the routing of communications to one or more members of a group by physical status of that group. The method in initiated upon a computing system detecting a communication that identifies targets of the communication at least in part by physical status. The computing system responds by identifying at least partial membership in a group that is identified by the physical status identified in the communication, and then dispatching the communication to at least one member of the members of that group. The identity of the members of the group may change dynamically as the physical status of particular physical entities changes over time.
0022Accordingly, a user may communicate to individuals (e.g., by any computing channel such as e-mail, social media, instant messaging, and so forth) based on physical status, without identifying any particular individual in that group, and without using a status group of members. Thus, a user may communicate to at least part of a group of individuals that are in a particular location, are working in the same area, have a relative physical location (e.g., physical proximity, line of sight, or contact) with respect to a particular physical entity, and/or any other physical status current or prior. Membership in a group may be determined by querying a graph of physical entities that is maintained and updated in response to sensor signals.
0023The communication may be directed to all members of the group. Alternatively, the communication may be initially directed towards a subset of the group, with the communication being broadened to other member(s) of the group upon some condition.
0024Because the principles described herein operate in the context of a computing system, a computing system will be described with respect to <figref idref="DRAWINGS">FIG. 1</figref>. Then, the principles of the foundation upon which ambient computing may be performed will then be described with respect to <figref idref="DRAWINGS">FIGS. 2 through 4</figref>. The obtaining of signal segments from the computer-navigable graph will then be described with respect to <figref idref="DRAWINGS">FIG. 5</figref>. Thereafter, the application of security in the context of ambient computing will be described with respect to <figref idref="DRAWINGS">FIG. 6</figref>. The managing of the size of the computer-navigable graph will be described with respect to <figref idref="DRAWINGS">FIG. 7</figref>. Finally, an important application of the features enabled by <figref idref="DRAWINGS">FIGS. 1 through 7</figref> will be described with respect to <figref idref="DRAWINGS">FIGS. 8 and 9</figref>, which shows that the principles described herein allow recipients to be identified by physical status, as opposed to directly identified by name, or alias.
0025Computing systems are now increasingly taking a wide variety of forms. Computing systems may, for example, be handheld devices, appliances, laptop computers, desktop computers, mainframes, distributed computing systems, datacenters, or even devices that have not conventionally been considered a computing system, such as wearables (e.g., glasses, watches, bands, and so forth). In this description and in the claims, the term “computing system” is defined broadly as including any device or system (or combination thereof) that includes at least one physical and tangible processor, and a physical and tangible memory capable of having thereon computer-executable instructions that may be executed by a processor. The memory may take any form and may depend on the nature and form of the computing system. A computing system may be distributed over a network environment and may include multiple constituent computing systems.
0026As illustrated in <figref idref="DRAWINGS">FIG. 1</figref>, in its most basic configuration, a computing system <b>100</b> typically includes at least one hardware processing unit <b>102</b> and memory <b>104</b>. The memory <b>104</b> may be physical system memory, which may be volatile, non-volatile, or some combination of the two. The term “memory” may also be used herein to refer to non-volatile mass storage such as physical storage media. If the computing system is distributed, the processing, memory and/or storage capability may be distributed as well.
0027The computing system <b>100</b> has thereon multiple structures often referred to as an “executable component”. For instance, the memory <b>104</b> of the computing system <b>100</b> is illustrated as including executable component <b>106</b>. The term “executable component” is the name for a structure that is well understood to one of ordinary skill in the art in the field of computing as being a structure that can be software, hardware, or a combination thereof. For instance, when implemented in software, one of ordinary skill in the art would understand that the structure of an executable component may include software objects, routines, methods that may be executed on the computing system, whether such an executable component exists in the heap of a computing system, or whether the executable component exists on computer-readable storage media.
0028In such a case, one of ordinary skill in the art will recognize that the structure of the executable component exists on a computer-readable medium such that, when interpreted by one or more processors of a computing system (e.g., by a processor thread), the computing system is caused to perform a function. Such structure may be computer-readable directly by the processors (as is the case if the executable component were binary). Alternatively, the structure may be structured to be interpretable and/or compiled (whether in a single stage or in multiple stages) so as to generate such binary that is directly interpretable by the processors. Such an understanding of example structures of an executable component is well within the understanding of one of ordinary skill in the art of computing when using the term “executable component”.
0029The term “executable component” is also well understood by one of ordinary skill as including structures that are implemented exclusively or near-exclusively in hardware, such as within a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any other specialized circuit. Accordingly, the term “executable component” is a term for a structure that is well understood by those of ordinary skill in the art of computing, whether implemented in software, hardware, or a combination. In this description, the term “component” may also be used. As used in this description and in the case, this term (regardless of whether the term is modified with one or more modifiers) is also intended to be synonymous with the term “executable component” or be specific types of such an “executable component”, and thus also have a structure that is well understood by those of ordinary skill in the art of computing.
0030In the description that follows, embodiments are described with reference to acts that are performed by one or more computing systems. If such acts are implemented in software, one or more processors (of the associated computing system that performs the act) direct the operation of the computing system in response to having executed computer-executable instructions that constitute an executable component. For example, such computer-executable instructions may be embodied on one or more computer-readable media that form a computer program product. An example of such an operation involves the manipulation of data.
0031The computer-executable instructions (and the manipulated data) may be stored in the memory <b>104</b> of the computing system <b>100</b>. Computing system <b>100</b> may also contain communication channels <b>108</b> that allow the computing system <b>100</b> to communicate with other computing systems over, for example, network <b>110</b>.
0032While not all computing systems require a user interface, in some embodiments, the computing system <b>100</b> includes a user interface <b>112</b> for use in interfacing with a user. The user interface <b>112</b> may include output mechanisms <b>112</b>A as well as input mechanisms <b>112</b>B. The principles described herein are not limited to the precise output mechanisms <b>112</b>A or input mechanisms <b>112</b>B as such will depend on the nature of the device. However, output mechanisms <b>112</b>A might include, for instance, speakers, displays, tactile output, holograms, virtual reality, and so forth. Examples of input mechanisms <b>112</b>B might include, for instance, microphones, touchscreens, holograms, virtual reality, cameras, keyboards, mouse of other pointer input, sensors of any type, and so forth.
0033Embodiments described herein may comprise or utilize a special purpose or general-purpose computing system including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Embodiments described herein also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computing system. Computer-readable media that store computer-executable instructions are physical storage media. Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments can comprise at least two distinctly different kinds of computer-readable media: storage media and transmission media.
0034Computer-readable storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other physical and tangible storage medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computing system.
0035A “network” is defined as one or more data links that enable the transport of electronic data between computing systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computing system, the computing system properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computing system. Combinations of the above should also be included within the scope of computer-readable media.
0036Further, upon reaching various computing system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computing system RAM and/or to less volatile storage media at a computing system. Thus, it should be understood that readable media can be included in computing system components that also (or even primarily) utilize transmission media.
0037Computer-executable instructions comprise, for example, instructions and data which, when executed at a processor, cause a general purpose computing system, special purpose computing system, or special purpose processing device to perform a certain function or group of functions. Alternatively, or in addition, the computer-executable instructions may configure the computing system to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries or even instructions that undergo some translation (such as compilation) before direct execution by the processors, such as intermediate format instructions such as assembly language, or even source code.
0038Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computing system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, datacenters, wearables (such as glasses or watches) and the like. The invention may also be practiced in distributed system environments where local and remote computing systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
0039Those skilled in the art will also appreciate that the invention may be practiced in a cloud computing environment. Cloud computing environments may be distributed, although this is not required. When distributed, cloud computing environments may be distributed internationally within an organization and/or have components possessed across multiple organizations. In this description and the following claims, “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services). The definition of “cloud computing” is not limited to any of the other numerous advantages that can be obtained from such a model when properly deployed.
0040For instance, cloud computing is currently employed in the marketplace so as to offer ubiquitous and convenient on-demand access to the shared pool of configurable computing resources. Furthermore, the shared pool of configurable computing resources can be rapidly provisioned via virtualization and released with low management effort or service provider interaction, and then scaled accordingly.
0041A cloud computing model can be composed of various characteristics such as on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth. A cloud computing model may also come in the form of various service models such as, for example, Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”). The cloud computing model may also be deployed using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth. In this description and in the claims, a “cloud computing environment” is an environment in which cloud computing is employed.
0042<figref idref="DRAWINGS">FIG. 2</figref> illustrates an environment <b>200</b> in which the principles described herein may operate. The environment <b>200</b> includes a physical space <b>201</b> that includes multiple physical entities <b>210</b>, which may be any extant object, person, or thing that emits or reflects physical signals (such as electromagnetic radiation or acoustics) that has a pattern that may be used to potentially identify one or more physical features (also called herein states) of the respective object, person, or thing. An example of such potentially identifying electromagnetic radiation is visible light that has a light pattern (e.g., a still image or video) from which characteristics of visible entities may be ascertained. Such light pattern may be any temporal, spatial, or even higher-dimensional space. An example of such acoustics may the voice of a human being, the sound of an object in normal operation or undergoing an activity or event, or a reflected acoustic echo.
0043The environment <b>200</b> also includes sensors <b>220</b> that receive physical signals from the physical entities <b>210</b>. The sensors need not, of course, pick up every physical signal that the physical entity emits or reflects. For instance, a visible light camera (still or video) is capable of receiving electromagnetic radiation in the form of visible light and converting such signals into processable form, but cannot pick up all electromagnetic radiation of any frequency since cameras all have a finite dynamic range. Acoustic sensors likewise have limited dynamic range designed for certain frequency ranges. In any case, the sensors <b>220</b> provide (as represented by arrow <b>229</b>) resulting sensor signals to a recognition component <b>230</b>.
0044The recognition component <b>230</b> at least estimates (e.g., estimates or recognizes) one or more features of the physical entities <b>210</b> within the location based on patterns detected in the received sensor signals. The recognition component <b>230</b> may also generate a confidence level associated with the “at least an estimation” of a feature of the physical entity. If that confidence level is less than 100%, then the “at least an estimation” is just an estimation. If that confidence level is 100%, then the “at least an estimation” is really more than an estimation—it is a recognition. In the remainder of this description and in the claims, a feature that is “at least estimated” will also be referred to as a “sensed” feature to promote clarity. This is consistent with the ordinary usage of the term “sense” since a feature that is “sensed” is not always present with complete certainty. The recognition component <b>230</b> may employ deep learning (Deep Neural Network-based and reinforcement-based learning mechanisms) and machine learning algorithms to learn from experience what objects or people that are within an image, thereby improving accuracy of recognition over time.
0045The recognition component <b>230</b> provides (as represented by arrow <b>239</b>) the sensed features into a sensed feature store <b>240</b>, which can store the sensed features (and associated confidence levels) for each physical entity within the location <b>201</b>, whether the physical entity is within the physical space for a short time, a long time, or permanently. The computation component <b>250</b> may then perform a variety of queries and/or computations on the sensed feature data provided in sensed feature store <b>240</b>. The queries and/or computations may be enabled by interactions (represented by arrow <b>249</b>) between the computation component <b>250</b> and the sensed feature store <b>240</b>.
0046In some embodiments, when the recognition component <b>230</b> senses a sensed feature of a physical entity within the location <b>201</b> using sensor signal(s) provided by a sensor, the sensor signals are also provided to a store, such as the sensed feature store. For instance, in <figref idref="DRAWINGS">FIG. 2</figref>, the sensed feature store <b>240</b> is illustrated as including sensed features <b>241</b> as well as the corresponding sensor signals <b>242</b> that represent the evidence of the sense features.
0047For at least one (and preferably many) of the sensed features for at least one of the sensed plurality of entities, at least one signal segment is computer-associated with the sensed feature such that computer-navigation to the sensed feature also allows for computer-navigation to the signal segment. The association of the sensed signal with the associated signal segment may be performed continuously, thus resulting in an expanding graph, and an expanding collection of signal segments. That said, as described further below, garbage collection processes may be used to clean up sensed features and/or signal segments that are outdated or no longer of interest.
0048The signal segment may include multiple pieces of metadata such as, for instance, an identification of the sensor or sensors that generated the signal segment. The signal segment need not include all of the signals that were generated by that sensor, and for brevity, may perhaps include only those portions of the signal that were used to sense the sensed feature of the particular physical entity. In that case, the metadata may include a description of the portion of the original signal segment that was stored.
0049The sensed signal may be any type of signal that is generated by a sensor. Examples include video, image, and audio signals. However, the variety of signals is not limited to those that can be sensed by a human being. For instance, the signal segment might represented a transformed version of the signal generated by the sensor to allow for human observations of better human focus. Such transformations might include filtering, such a filtering based on frequency, or quantization. Such transformation might also include amplification, frequency shifting, speed adjustment, magnifying, amplitude adjustment, and so forth.
0050In order to allow for reduction in storage requirements as well as proper focus on the signal of interest, perhaps only a portion of the signal segment is stored. For instance, if a video signal, perhaps only a portion of the frames of the video are stored. Furthermore, for any given image, perhaps only the relevant portion of the frame is stored. Likewise, if the sensor signal was an image, perhaps only the relevant portion of the image is stored. The recognition service that uses the signal segment to sense a feature is aware of which portion of the signal segment that was used to sense a feature. Accordingly, a recognition service can specifically carve out the relevant portion of the signal for any given sensed feature.
0051The computation component <b>250</b> may also have a security component <b>251</b> that may determine access to data with the sensed feature store <b>240</b>. For instance, the security component <b>251</b> may control which users may access the sensed feature data <b>241</b> and/or the sensor signals <b>242</b>. Furthermore, the security component <b>251</b> may even control which of the sensed feature data that computations are performed over, and/or which user are authorized to perform what type of computations or queries. Thus, security is effectively achieved. More regarding this security will be described below with respect to <figref idref="DRAWINGS">FIG. 6</figref>.
0052Since the sensed feature data represents the sensed features of the physical entities within the physical space <b>201</b> over time, complex computing may be performed on the physical entities within the physical space <b>201</b>. As will be described below, for a user, it is as though the very environment itself is filled with helpful computing power that is getting ready for any computing query or computation regarding that physical space. This will be referred to hereinafter also as “ambient computing”.
0053Furthermore, whenever a sensed feature is of interest, the evidence supporting that recognition components sensing of that feature may be reconstructed. For instance, the computing component <b>240</b> might provide video evidence of when a particular physical entity first entered a particular location. If multiple sensors generated sensor signals that were used by the recognition component to sense that feature, then the sensor signals for any individual sensor or combination of sensors may be reconstructed and evaluated. Thus, for instance, the video evidence of the physical entity first entering a particular location may be reviewed from different angles.
0054The physical space <b>201</b> is illustrated in <figref idref="DRAWINGS">FIG. 2</figref> and is intended just to be an abstract representation of any physical space that has sensors in it. There are infinite examples of such physical spaces, but examples include a room, a house, a neighborhood, a factory, a stadium, a building, a floor, an office, a car, an airplane, a spacecraft, a Petri dish, a pipe or tube, the atmosphere, underground spaces, caves, land, combinations and/or portions thereof. The physical space <b>201</b> may be the entirety of the observable universe or any portion thereof so long as there are sensors capable of receiving signals emitted from, affected by (e.g., diffraction, frequency shifting, echoes, etc.), and/or reflected from the physical entities within the location.
0055The physical entities <b>210</b> within the physical space <b>201</b> are illustrated as including four physical entities <b>211</b>, <b>212</b>, <b>213</b> and <b>214</b> by way of example only. The ellipses <b>215</b> represent that there may be any number and variety of physical entities having features that are being sensed based on data from the sensors <b>220</b>. The ellipses <b>215</b> also represent that physical entities may exit and enter the location <b>201</b>. Thus, the number and identity of physical entities within the location <b>201</b> may change over time.
0056The position of the physical entities may also vary over time. Though the position of the physical entities is shown in the upper portion of the physical space <b>201</b> in <figref idref="DRAWINGS">FIG. 2</figref>, this is simply for purpose of clear labelling. The principles described herein are not dependent on any particular physical entity occupying any particular physical position within the physical space <b>201</b>.
0057Lastly, for convention only and to distinguish physical entities <b>210</b> from the sensors <b>220</b>, the physical entities <b>210</b> are illustrated as triangles and the sensors <b>220</b> are illustrated as circles. The physical entities <b>210</b> and the sensors <b>220</b> may, of course, have any physical shape or size. Physical entities typically are not triangular in shape, and sensors are typically not circular in shape. Furthermore, sensors <b>220</b> may observe physical entities within a physical space <b>201</b> without regard for whether or not those sensors <b>220</b> are physically located within that physical space <b>201</b>.
0058The sensors <b>220</b> within the physical space <b>201</b> are illustrated as including two sensors <b>221</b> and <b>222</b> by way of example only. The ellipses <b>223</b> represent that there may be any number and variety of sensors that are capable of receiving signals emitted, affected (e.g., via diffraction, frequency shifting, echoes, etc.) and/or reflected by the physical entities within the physical space. The number and capability of operable sensors may change over time as sensors within the physical space are added, removed, upgrade, broken, replaced, and so forth.
0059<figref idref="DRAWINGS">FIG. 3</figref> illustrates a flowchart of a method <b>300</b> for tracking physical entities within a physical space. Since the method <b>300</b> may be performed to track the physical entities <b>210</b> within the physical space <b>201</b> of <figref idref="DRAWINGS">FIG. 2</figref>, the method <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref> will now be described with frequent reference to the environment <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref>. Also, <figref idref="DRAWINGS">FIG. 4</figref> illustrates an entity tracking data structure <b>400</b> that may be used to assist in performing the method <b>300</b>, and which may be used to later perform queries on the tracked physical entities, and perhaps also to access and review the sensor signals associated with the tracked physical entities. Furthermore, the entity tracking data structure <b>400</b> may be stored in the sensed feature store <b>240</b> of <figref idref="DRAWINGS">FIG. 4</figref> (which is represented as sensed feature data <b>241</b>). Accordingly, the method <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref> will also be described with frequent reference to the entity tracking data structure <b>400</b> of <figref idref="DRAWINGS">FIG. 4</figref>.
0060In order to assist with tracking, a space-time data structure for the physical space is set up (act <b>301</b>). This may be a distributed data structure or a non-distributed data structure. <figref idref="DRAWINGS">FIG. 4</figref> illustrates an example of an entity tracking data structure <b>400</b> that includes a space-time data structure <b>401</b>. This entity tracking data structure <b>400</b> may be included within the sensed feature store <b>240</b> of <figref idref="DRAWINGS">FIG. 2</figref> as sensed feature data <b>241</b>. While the principles described herein are described with respect to tracking physical entities, and their sensed features and activities, the principles described herein may operate to tracking physical entities (and their sensed features and activities) within more than one location. In that case, perhaps the space-time data structure <b>401</b> is not the root node in the tree represented by the entity tracking data structure <b>400</b> (as symbolized by the ellipses <b>402</b>A and <b>402</b>B). Rather there may be multiple space-time data structures that may be interconnected via a common root node.
0061Then, returning to <figref idref="DRAWINGS">FIG. 3</figref>, the content of box <b>310</b>A may be performed for each of multiple physical entities (e.g., physical entities <b>210</b>) that are at least temporarily within a physical space (e.g., physical space <b>201</b>). Furthermore, the content of box <b>310</b>B is illustrated as being nested within box <b>310</b>A, and represents that its content may be performed at each of multiple times for a given physical entity. By performing the method <b>300</b>, a complex entity tracking data structure <b>400</b> may be created and grown, to thereby record the sensed features of physical entities that are one or more times within the location. Furthermore, the entity tracking data structure <b>400</b> may potentially also be used to access the sensed signals that resulted in certain sensed features (or feature changes) being recognized.
0062For a particular physical entity in the location at a particular time, a physical entity is sensed by one or more sensors (act <b>311</b>). In other words, one or more physical signals emitted from, affected by (e.g., via diffraction, frequency shifting, echoes, etc.), and/or reflected from the physical entity is received by one or more of the sensors. Referring to <figref idref="DRAWINGS">FIG. 1</figref>, suppose that physical entity <b>211</b> has one or more features that are sensed by both sensors <b>221</b> and <b>222</b> at a particular time.
0063One aspect of security may enter at this point. The recognition component <b>230</b> may have a security component <b>231</b> that, according to particular settings, may refuse to record sensed features associated with particular physical entities, sensed features of a particular type, and/or that were sensed from sensor signals generated at particular time, or combinations thereof. For instance, perhaps the recognition component <b>230</b> will not record sensed features of any people that are within the location. As a more fine-grained examples, perhaps the recognition component <b>230</b> will not record sensed features of a set of people, where those sensed features relate to an identity or gender of the person, and where those sensed features resulted from sensor signals that were generated at particular time frames. More regarding this security will again be described below with respect to <figref idref="DRAWINGS">FIG. 6</figref>.
0064If permitted, an at least approximation of that particular time at which the physical entity was sensed is represented within an entity data structure that corresponds to the physical entity and this is computing-associated with the space-time data structure (act <b>312</b>). For instance, referring to <figref idref="DRAWINGS">FIG. 4</figref>, the entity data structure <b>410</b>A may correspond to the physical entity <b>211</b> and is computing-associated (as represented by line <b>430</b>A) with the space-time data structure <b>401</b>. In this description and in the claims, one node of a data structure is “computing-associated” with another node of a data structure if a computing system is, by whatever means, able to detect an association between the two nodes. For instance, the use of pointers is one mechanism for computing-association. A node of a data structure may also be computing-associated by being included within the other node of the data structure, and by any other mechanism recognized by a computing system as being an association.
0065The time data <b>411</b> represents an at least approximation of the time that the physical entity was sensed (at least at this time iteration of the content of box <b>310</b>B) within the entity data structure <b>410</b>A. The time may be a real time (e.g., expressed with respect to an atomic clock), or may be an artificial time. For instance, the artificial time may be a time that is offset from real-time and/or expressed in a different manner than real time (e.g., number of seconds or minutes since the last turn of the millennium). The artificial time may also be a logical time, such as a time that is expressed by a monotonically increasing number that increments at each sensing.
0066Also, based on the sensing of the particular physical entity at the particular time (at act <b>311</b>), the environment senses at least one physical feature (and perhaps multiple) of the particular physical entity in which the particular physical entity exists at the particular time (act <b>313</b>). For instance, referring to <figref idref="DRAWINGS">FIG. 2</figref>, the recognition component <b>230</b> may sense at least one physical feature of the physical entity <b>211</b> based on the signals received from the sensors <b>221</b> and <b>222</b> (e.g., as represented by arrow <b>229</b>).
0067The sensed at least one physical feature of the particular physical entity is then represented in the entity data structure (act <b>314</b>) in a manner computing-associated with the at least approximation of the particular time. For instance, in <figref idref="DRAWINGS">FIG. 2</figref>, the sensed feature data is provided (as represented by arrow <b>239</b>) to the sensed feature store <b>240</b>. In some embodiments, this sensed feature data may be provided along with the at least approximation of the particular time so as to modify the entity tracking data structure <b>400</b> in substantially one act. In other words, act <b>312</b> and act <b>314</b> may be performed at substantially the same time to reduce write operations into the sensed feature store <b>240</b>.
0068Furthermore, if permitted, the sensor signal(s) that the recognition component relied upon to sense the sensed feature are recorded in a manner that is computer-associated with the sensed feature (act <b>315</b>). For instance, the sensed feature that is in the sensed feature data <b>241</b> (e.g., in the space-time data structure <b>401</b>) may be computing-associated with such sensor signal(s) stored in the sensed signal data <b>242</b>.
0069Referring to <figref idref="DRAWINGS">FIG. 4</figref>, the first entity data structure now has sensed feature data <b>421</b> that is computing-associated with time <b>411</b>. In this example, the sensed feature data <b>421</b> includes two sensed physical features <b>421</b>A and <b>421</b>B of the physical entity. However, the ellipses <b>421</b>C represents that there may be any number of sensed features of the physical entity that is stored as part of the sensed feature data <b>421</b> within the entity data structure <b>401</b>. For instance, there may be a single sensed feature, or innumerable sensed features, or any number in-between for any given physical entity as detected at any particular time.
0070In some cases, the sensed feature may be associated with other features. For instance, if the physical entity is a person, the feature might be a name of the person. That specifically identified person might have known characteristics based on features not represented within the entity data structure. For instance, the person might have a certain rank or position within an organization, have certain training, be a certain height, and so forth. The entity data structure may be extended by, when a particular feature is sensed (e.g., a name), pointing to additional features of that physical entity (e.g., rank, position, training, height) so as to even further extend the richness of querying and/or other computation on the data structure.
0071The sensed feature data may also have confidence levels associated with each sensed feature that represents an estimated probability that the physical entity really has the sensed feature at the particular time <b>410</b>A. In this example, confidence level <b>421</b><i>a </i>is associated with sensed feature <b>421</b>A and represents a confidence that the physical entity <b>211</b> really has the sensed feature <b>421</b>A. Likewise, confidence level <b>421</b><i>b </i>is associated with sensed feature <b>421</b>B and represents a confidence that the physical entity <b>211</b> really has the sensed feature <b>421</b>B. The ellipses <b>421</b><i>c </i>again represents that there may be confidence levels expressed for any number of physical features. Furthermore, there may be some physical features for which there is no confidence level expressed (e.g., in the case where there is certainty or in case where it is not important or desirable to measure confidence of a sensed physical feature).
0072The sensed feature data may also have computing-association (e.g., a pointer) to the sensor signal(s) that were used by the recognition component to sense the sense feature of that confidence level. For instance, in <figref idref="DRAWINGS">FIG. 4</figref>, sensor signal(s) <b>421</b>Aa is computing-associated with sensed feature <b>421</b>A and represents the sensor signal(s) that were used to sense the sensed feature <b>421</b>A at the time <b>411</b>. Likewise, sensor signal(s) <b>421</b>Bb is computing-associated with sensed feature <b>421</b>B and represents the sensor signal(s) that were used to sense the sensed feature <b>421</b>B at the time <b>411</b>. The ellipses <b>421</b>Cc again represents that there may be computing-associations of any number of physical features.
0073The security component <b>231</b> of the recognition component <b>230</b> may also exercise security in deciding whether or not to record sensor signal(s) that were used to sense particular features at particular times. Thus, the security component <b>231</b> may exercise security in 1) determining whether to record that particular features were sensed, 2) determining whether to record features associated with particular physical entities, 3) determining whether to record features sensed at particular times, 4) determining whether to record the sensor signal(s), and if so which signals, to record as evidence of a sensed feature, and so forth.
0074As an example, suppose that the location being tracked is a room. Now suppose that an image sensor (e.g., a camera) senses something within the room. An example sensed feature is that the “thing” is a human being. Another example sensed feature is that the “thing” is a particular named person. There might be a confidence level of 100 percent that the “thing” is a person, but only a 20 percent confidence level that the person is a specific identified person. In this case, the sensed feature set includes one feature that is a more specific type of another feature. Furthermore, the image data from the camera may be pointed to by the record of the sensed feature of the particular physical entity at the particular time.
0075Another example feature is that the physical entity simply exists within the location, or at a particular position within the location. Another example is that this is the first appearance of the physical entity since a particular time (e.g., in recent times, or even ever). Another example of features is that the item is inanimate (e.g., with 99 percent certainty), a tool (e.g., with 80 percent certainty), and a hammer (e.g., with 60 percent certainty). Another example feature is that the physical entity is no longer present (e.g., is absent) from the location, or has a particular pose, is oriented in a certain way, or has a positional relationship with another physical entity within the location (e.g., “on the table” or “sitting in chair #<b>5</b>”).
0076In any case, the number and types of features that can be sensed from the number and types of physical entities within any location is innumerable. Also, as previously mentioned, as represented by box <b>310</b>B, the acts within box <b>310</b>B may potentially be performed multiple times for any given physical entity. For instance, physical entity <b>211</b> may be against detected by one or both of sensors <b>221</b> and <b>222</b>. Referring to <figref idref="DRAWINGS">FIG. 4</figref>, this detection results in the time of the next detection (or is approximation) to be represented within the entity data structure <b>410</b>. For instance, time <b>412</b> is also represented within the entity data structure. Furthermore, sensed features <b>422</b> (e.g., including perhaps sensed feature <b>422</b>A and <b>422</b>B—with ellipses <b>422</b>C again representing flexibility) are computing-associated with the second time <b>412</b>. Furthermore, those sensed features may also have associated confidence levels (e.g., <b>422</b><i>a</i>, <b>422</b><i>b</i>, ellipses <b>422</b><i>c</i>). Likewise, those sensed features may also have associated sensor signals (e.g., <b>422</b>Aa, <b>422</b>Bb, ellipses <b>422</b>Cc).
0077The sensed features sensed at the second time may be the same as or different than the sensed features sensed at the first time. The confidence levels may change over time. As an example, suppose a human being is detected at time #<b>1</b> at one side of a large room via an image with 90 percent confidence, and that the human being is specifically sensed as being John Doe with 30 percent confidence. Now, at time #<b>2</b> that is 0.1 seconds later, John Doe is sensed 50 feet away at another part of the room with 100 percent confidence, and there remains a human being at the same location where John Doe was speculated to be at time <b>1</b>. Since human beings do not travel 50 feet in a tenth of a second (at least in an office setting), it can now be concluded that the human being detected at time <b>1</b> is not John Doe at all. So that confidence for time #<b>1</b> that the human being is John Doe is reduced to zero.
0078Returning to <figref idref="DRAWINGS">FIG. 2</figref>, the ellipses <b>413</b> and <b>423</b> represent that there is no limit to the number of times that a physical entity may be detected within the location. As subsequent detections are made, more may be learned about the physical entity, and thus sensed features may be added (or removed) as appropriate, with corresponding adjustments to confidence levels for each sensed feature.
0079Now moving outside of box <b>310</b>B, but remaining within box <b>310</b>A, for any given physical entity, feature changes in the particular entity may be sensed (act <b>322</b>) based on comparison (act <b>321</b>) of the sensed feature(s) of the particular physical entity at different times. This sensed changes may be performed by the recognition component <b>230</b> or the computation component <b>250</b>. If desired, those sensed changes may also be recorded (act <b>323</b>). For instance, the sensed changes may be recorded in the entity data structure <b>410</b>A in a manner that is, or perhaps is not, computing-associated with a particular time. Sensor signals evidencing the feature change may be reconstructed using the sensor signals that evidenced the sensed feature at each time.
0080For instance, based on a sensed feature at a first time being a presence of the physical entity within the location, and based on a second feature at a second time being an absence of the physical entity within the location, it can be concluded that the physical entity has exited the physical space. On the contrary, based on a sensed feature at a first time being an absence of the physical entity from the location, and a second feature at a second time being a presence of the physical entity within the location, it can be concluded that the physical entity has entered the location. In some case, perhaps absence from a physical space is not looked for in a physical entity until the physical entity is first detected as being present in the physical space.
0081Now referring to the box <b>310</b>A, this tracking of feature(s) of physical entities may be performed for multiple entities over time. For instance, the content of box <b>310</b>A may be performed for each of physical entities <b>211</b>, <b>212</b>, <b>213</b> or <b>214</b> within the physical space <b>201</b> or for other physical entities that enter or exit the physical space <b>201</b>. Referring to <figref idref="DRAWINGS">FIG. 4</figref>, the space-time data structure <b>401</b> also is computing-associated (as represented by lines <b>430</b>B, <b>430</b>C, and <b>430</b>D) with a second entity data structure <b>410</b>B (perhaps associated with the second physical entity <b>212</b> of <figref idref="DRAWINGS">FIG. 2</figref>), a third entity data structure <b>410</b>C (perhaps associated with the third physical entity <b>213</b> of <figref idref="DRAWINGS">FIG. 2</figref>); and a fourth entity data structure <b>410</b>D (perhaps associated with the fourth physical entity <b>214</b> of <figref idref="DRAWINGS">FIG. 2</figref>).
0082The space-time data structure <b>401</b> may also include one or more triggers that define conditions and actions. When the conditions are met, corresponding actions are to occur. The triggers may be stored at any location in the space-time data structure. For instance, if the conditions are/or actions are with respect to a particular entity data structure, the trigger may be stored in the corresponding entity data structure. If the conditions and/or actions are with respect to a particular feature of a particular entity data structure, the trigger may be stored in the corresponding feature data structure.
0083The ellipses <b>410</b>E represent that the number of entity data structures may change. For instance, if tracking data is kept forever with respect to physical entities that are ever within the physical space, then additional entity data structures may be added each time a new physical entity is detected within the location, and any given entity data structure may be augmented each time a physical entity is detected within the physical space. Recall, however, that garbage collection may be performed (e.g., by clean-up component <b>260</b>) to keep the entity tracking data structure <b>400</b> from growing too large to be properly edited, stored and/or navigated.
0084Outside of the box <b>310</b>A, physical relationships between different physical entities may be sensed (act <b>332</b>) based on comparison of the associated entities data structures (act <b>331</b>). Those physical relationships may likewise be recorded in the entity tracking data structure <b>401</b> (act <b>333</b>) perhaps within the associated entity data structures that have the sensed physical relationships, and/or perhaps associated with the time that the physical entities are sensed as having the relationship. For instance, by analysis of the entity data structures for different physical entities through time, it might be determined that at a particular time, that a physical entity may be hidden behind another physical entity, or that a physical entity may be obscuring the sensing of another physical entity, or that two physical entities have been joined or that a physical entity has been detached to create multiple physical entities. Sensor signals evidencing the physical entity relationship may be reconstructed using the sensor signals that evidenced the sensed feature at the appropriate time and for each physical entity.
0085The feature data store <b>240</b> may now be used as a powerful store upon which to compute complex functions and queries over representations of physical entities over time within a physical space. Such computation and querying may be performed by the computation component <b>250</b>. This enables enumerable numbers of helpful embodiments, and in fact introduces an entirely new form of computing referred to herein as “ambient computing”. Within the physical space that has sensors, it is as though the very air itself can be used to compute and sense state about the physical world. It is as though a crystal ball has now been created for that physical space from which it is possible to query and/or compute many things about that location, and its history.
0086As an example, a user may now query whether an object is right now in a physical space, or where an object was at a particular time within the physical space. The user might also query which person having particular features (e.g., rank or position within a company) is near that object right now, and communicate with that person to bring the object to the user. The user might query as to relationships between physical entities. For instance, the user might query who has possession of an object. The user might query as to the state of an object, whether it is hidden, and what other object is obscuring view of the object. The user might query when a physical entity first appeared within the physical space, when they exited, and so forth. The user might also query when the lights were turned off, when the system became certain of one or more features of a physical entity. The user might also search on feature(s) of an object. The user might also query on activities that have occurred within the location. A user might compute the mean time that a physical entity of a particular type is within the location, anticipate where a physical entity will be at some future time, and so forth. Accordingly, rich computing and querying may be performed on a physical space that has sensors.
0087As previously mentioned, the computer-navigable graph may has signal segments associated with sensed features. <figref idref="DRAWINGS">FIG. 5</figref> illustrates a flowchart of a method <b>500</b> for efficiently rendering signal segments of interest. First, the computing system navigates the navigable graph of sensed features to reach a particular sensed feature (act <b>501</b>). For instance, this navigation may be performed automatic or in response to user input. The navigation may be the result of a calculation, or may simply involve identifying the sensed feature of interest. As another example, the navigation may be the result of a user query. In some embodiments, a calculation or query may result in multiple sensed features being navigated to. As an example, suppose that the computing system navigates to sensed feature <b>222</b>A in <figref idref="DRAWINGS">FIG. 2</figref>.
0088The computing system then navigates to the sensed signal computer-associated with the particular sensed feature (act <b>502</b>) using the computer-association between the particular sensed feature and the associated sensor signal. For instance, in <figref idref="DRAWINGS">FIG. 2</figref>, with the sensed feature being sensed feature <b>222</b>A, the computer-association is used to navigate to the signal segment <b>222</b>Aa.
0089Finally, the signal segment may then be rendered (act <b>503</b>) on an appropriate output device. For instance, if the computing system is the computing system <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref>, the appropriate output device might be one or more of output mechanisms <b>112</b>A. For instance, audio signals may be rendered using speakers, and visual data may be rendered using a display. After navigating to the sensed signal(s), multiple things could happen. The user might play a particular signal segment, or perhaps choose from multiple signal segments that contributed to the feature. A view could be synthesized from the multiple signal segments.
0090With computing being performed on the physical world, a new type of ambient computation is enabled. It is as though computers are available in the very ambient environment, embodied within the air itself, and able to perform computations on physical entities that were at any point in contact with that air. In the workplace, productivity may be greatly improved using this ambient computing. For instance, a user may quickly find a misplaced tool, or be able to communicate with a peer close to the tool so that the user can ask that peer to grab that tool and bring it to the user. Furthermore, in addition to ambient computing, human beings may review the sensor signal(s) that were used to sense features of interest for particular physical entities of interest, at particular times of interest. However, the number of scenarios for improving physical productivity by due to responsible use of ambient computing is limitless.
0091Now that the principles of ambient computing have been described with respect to <figref idref="DRAWINGS">FIGS. 2 through 5</figref>, security mechanisms that may be performed in the context of such ambient computing will be described with respect to <figref idref="DRAWINGS">FIG. 6</figref>. <figref idref="DRAWINGS">FIG. 6</figref> illustrates a flowchart of a method <b>600</b> for controlling creation of or access to information sensed by one or more sensors in a physical space. The method includes creating (act <b>601</b>) a computer-navigable graph of features of sensed physical entities sensed in a physical space over time. The principles described herein are not limited to the precise structure of such a computer-navigable graph. An example structure and its creation have been described with respect to <figref idref="DRAWINGS">FIGS. 2 through 4</figref>.
0092The method <b>600</b> also includes restricting creation of or access to nodes of the computer-navigable graph based on one or more criteria (act <b>602</b>). Thus, security is imposed upon the computer-navigable graph. The arrows <b>603</b> and <b>604</b> represent that the process of creating the graph and restrict creation/access to its nodes may be a continual process. The graph may be continuously have nodes added to (and perhaps removed from) the graph. Furthermore, restrictions of creation may be considered whenever there is a possibility of creation of a node. Restrictions of access may be decided when a node of the graph is created, or at any point thereafter. Examples of restrictions might include, for instance, a prospective identity of a sensed physical entity, a sensed feature of a sensed physical entity, and so forth.
0093In determining whether access to a node of a computer-navigable graph is authorized, there may be access criteria for each node. Such access criteria may be explicit or implicit. That is, if there is no access criteria explicit for the node that is to be accessed, then perhaps a default set of access criteria may apply. The access criteria for any given node may be organized in any manner. For instance, in one embodiment, the access criteria for a node may be stored with the node in the computer-navigable graph.
0094The access restrictions might also include restrictions based on a type of access requested. For instance, a computational access means that node is not directly accessed, but is used in a computation. Direct access to read the content of a node may be restricted, whilst computational access that does not report the exact contents of the node may be allowed.
0095Access restrictions may also be based on the type of node accessed. For instance, there may be a restriction in access to the particular entity data structure node of the computer-navigable graph. For instance, if that particular entity data structure node represents detections of a particular person in the physical space, access might be denied. There may also be restrictions in access to particular signal segment nodes of the computer-navigable graph. As an example, perhaps one may be able to determine that a person was in a location at a given time, but not be able to review video recordings of that person at that location. Access restrictions may also be based on who is the requestor of access.
0096In determining whether to restrict creation of a particular sensed feature node of the computer-navigable graph, there may be a variety of criteria considered. For instance, there may be a restriction in creation of a particular signal segment node of a computer-navigable graph.
0097<figref idref="DRAWINGS">FIG. 7</figref> illustrates a recurring flow <b>700</b> showing that in addition to creating a computer-navigable graph of sensed features in the physical space (act <b>701</b>), there may also be pruning of the computer-navigable graph (act <b>702</b>). These acts may even occur simultaneously and continuously (as represented by the arrows <b>703</b> and <b>704</b>) to thereby keep the computer-navigable graph of sensed features at a manageable size. There has been significant description herein about how the computer-navigable graph may be created (represented as act <b>701</b>).
0098Now, this description will focus on how the computer-navigable graph may be pruned to remove one or more nodes of the computer-navigable graph (act <b>702</b>). Any node of the computer-navigable graph may be subject to removal. For instance, sensed features of a physical entity data structure may be removed for specific time or group of times. A sensed feature of a physical entity data structure may also be removed for all times. More than one sensed features of a physical entity data structure may be removed for any given time, or for any group of times. Furthermore, a physical entity data structure may be entirely removed in some cases.
0099The removal of a node may occur, for instance, when the physical graph represents something that is impossible given the laws of physics. For instance, a given object cannot be at two places at the same time, nor can that object travel significant distances in a short amount of time in an environment in which such travel is infeasible or impossible. Accordingly, if a physical entity is tracked with absolute certainty at one location, any physical entity data structure that represent with lesser confidence that the same physical entity is at an inconsistent location may be deleted.
0100The removal of a node may also occur when more confidence is obtained regarding a sensed feature of a physical entity. For instance, if a sensed feature of a physical entity within a location is determined with 100 percent certainty, then the certainty levels of that sensed feature of that physical entity may be updated to read 100 percent for all prior times also. Furthermore, sensed features that have been learned to not be applicable to a physical entity (i.e., the confidence level has reduced to zero or negligible), the sensed feature may be removed for that physical entity.
0101Furthermore, some information in the computer-navigable graph may simply be too stale to be useful. For instance, if a physical entity has not been observed in the physical space for a substantial period of time so as to make the prior recognition of the physical entity no longer relevant, then the entire physical entity data structure may be removed. Furthermore, detections of a physical entity that have become staled may be removed though the physical entity data structure remains to reflect more recent detections. Thus, cleansing (or pruning) of the computer-navigable graph may be performed via intrinsic analysis and/or via extrinsic information. This pruning intrinsically improves the quality of the information represented in the computer-navigable graph, by removing information of lesser quality, and freeing up space for more relevant information to be stored.
0102Accordingly, the principles described herein allow for a computer-navigable graph of the physical world. The graph may be searchable and queriable thereby allowing for searching and querying and other computations to be performed on the real world. Security may further be imposed in such an environment. Finally, the graph may be kept to a manageable size through cleansing and pruning. Thus, a new paradigm in computing has been achieved.
0103The above-described computer-navigable graph of physical space enables a wide variety of applications and technical achievements. For instance, instead of addressing communications by specific identified recipients, a user may send communications by physical status of possible recipients. Accordingly, the routing of communications by physical relationships will now be described with respect to <figref idref="DRAWINGS">FIGS. 8 and 9</figref>.
0104<figref idref="DRAWINGS">FIG. 8</figref> illustrates a flowchart of a method <b>800</b> for addressing and routing communications to one or more members of a group whose membership is identified based on physical status of that group. For instance, rather than identify recipients of a communication by a specific alias or name (such as an e-mail address of an individual or group), the intended recipients are identified by physical status. Thus, a recipient might instead by “the first 5 people that can be found in room <b>705</b>A”, “people that have been in contact with the car jack in that last 5 hours”, “people I have met in the last 5 days”, and so forth.
0105The method <b>800</b> is initiated by the computing system upon detecting a communication that identifies targets of the communication at least in part by physical status (act <b>801</b>). Such a physical status might be temporary. For instance, the individuals within a room change over time. The people that have been in recent contact with the car jack also changes as time advances forward. People that an individual has recently met also changes as time advances forward. Thus, such groups often have temporary memberships.
0106Examples of physical status includes presence within an absolute location (e.g., room <b>705</b>A). Other examples include relative location to a physical entity. The physical entity might be human being (e.g., the sender or source of the communication) or an inanimate object (e.g., the car jack). The relative location may be, for instance, a particular distance from the physical entity, a line of sight with the physical entity, a contact with the physical entity, and so forth. The physical status may be a current and/or past status. For instance, the addressee could be “anyone in current contact with the car jack” (a current status), “anyone who was in contact with the car jack at noon” (a prior status), or “anyone that has been in contact with the car jack since noon” (a current and prior status).
0107In response to detecting the communication (act <b>801</b>), the system identifies at least partially membership in the group that is identified by that physical status (act <b>802</b>). Such membership may be detected by, for instance, querying a graph of sensed physical entities that were sensed by sensor(s) in a physical space. For instance, the computation component <b>250</b> of <figref idref="DRAWINGS">FIG. 2</figref> might query the graph <b>400</b> of <figref idref="DRAWINGS">FIG. 4</figref> to determine such membership.
0108The membership might be determined (act <b>802</b>) before or after the detection of the communication (act <b>801</b>). However, because membership in that group may be transient, and because there may be fine-grained definitions of the physical status of the group, it may be better to wait to calculate the membership of the group until the communication is detected. However, in cases in which the communication may be anticipated and the corresponding physical status for its intended recipients anticipated, the determination of membership of the group (act <b>802</b>) may be performed before the communication is detected (act <b>801</b>).
0109The system then dispatches the communication to at least one member of the group that is identified by physical status (act <b>803</b>). The communication may be any communication that is dispatched via a computing network. Examples might include e-mail, instant messaging, social media, and so forth. The communication may be synchronous or even asynchronous. The communication may be conditional, and may involve people who have not yet achieved a desired physical status. For instance, the user might command the system to “Let anyone who comes near the furnace know that the surface is burning hot.”
0110In some cases, it may be difficult to identify all members of a group (e.g., all human beings within the stadium). In other cases, it is not feasible or desirable to communicate with all members of a group. For instance, it might be desired just to offer a limited number of people within the stadium a free hot dog—rather than everyone in the stadium.
0111Once the communication is dispatched (act <b>803</b>), optionally the status of the communication may be monitored (act <b>804</b>). For instance, for any given recipient, the system may monitor status such as whether the communication has been looked at by the recipient, whether the communication has been responded to by the recipient. whether the communication has been ignored by the recipient, and so forth. Because a graph of the physical space exists, the system can, for instance, query the graph to determine whether the user has looked at their phone and taken no action (which is indicative that the user has ignored the communication).
0112Another reason for initially sending the communication to only a part of the group is that the sender may desire to roll out the communication incrementally. For instance, perhaps the user is looking for their car jack and wishes to address those users that have been within line of sight of the car jack in the last 5 hours. In some work environments, there may be hundreds of people that are within that group. Sending such a communication to all members of the group has the chance of seriously disrupting normal work as each member of that group might be disturbed by the communication, and perhaps an inordinately high number of workers might begin searching for the car jack. A lost car jack may simply not be that big of a deal. The user might perhaps want the e-mail initially dispatched to only the two individuals that were most recently detected as having a line of sight, and then, if that is not successful (e.g., the recipient indicates that she does not know where the car jack is, or ignores the communications) incrementally expand out from there.
0113<figref idref="DRAWINGS">FIG. 9</figref> illustrates a flowchart of a method <b>900</b> for expanding dispatch of a communication to a group. The communication is initially dispatched to only an initial subset of the members of the group that is identified by the physical status (act <b>901</b>). Upon detecting a condition for expanding distribution (“Yes” in decision block <b>902</b>), then the communication is dispatched to one or more additional recipients (act <b>903</b>). Thus, the communication may be rolled out until the intent of the communication has been achieved (e.g., the car jack has been found, 50 fans in the stadium have claimed their free hot dog, and so forth).
0114Thus, not only has the principle of ambient computing been described, but also a particularly helpful use of ambient computing has been described. That is, communications may be addressed to individuals by physical status, rather than explicit identification.
0115The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Contents5
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2002059425A1 | Cites | United States of America | Search report |
| US2002091793A1 | Cites | United States of America | Applicant |
| US2003046592A1 | Cites | United States of America | Applicant |
| US2004177253A1 | Cites | United States of America | Applicant |
| US2004197752A1 | Cites | United States of America | Applicant |
| US2004243580A1 | Cites | United States of America | Search report |
| US2004260701A1 | Cites | United States of America | Search report |
| US2005018045A1 | Cites | United States of America | Applicant |
| US2005209849A1 | Cites | United States of America | Applicant |
| US2007124721A1 | Cites | United States of America | Search report |
| US2007168864A1 | Cites | United States of America | Applicant |
| US2008114528A1 | Cites | United States of America | Applicant |
| US2008178232A1 | Cites | United States of America | Applicant |
| US2008252725A1 | Cites | United States of America | Applicant |
| US2008268418A1 | Cites | United States of America | Applicant |
| US2008292140A1 | Cites | United States of America | Applicant |
| US2008298549A1 | Cites | United States of America | Applicant |
| US2009153654A1 | Cites | United States of America | Applicant |
| US2009164397A1 | Cites | United States of America | Applicant |
| US2010081957A1 | Cites | United States of America | Applicant |
| WO2010086680A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2010152620A1 | Cites | United States of America | Search report |
| US2010232646A1 | Cites | United States of America | Applicant |
| US2010312476A1 | Cites | United States of America | Applicant |
| US2010312842A1 | Cites | United States of America | Search report |
| WO2011055309A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2011238755A1 | Cites | United States of America | Applicant |
| US2012077536A1 | Cites | United States of America | Search report |
| US2012084669A1 | Cites | United States of America | Applicant |
| US2012133638A1 | Cites | United States of America | Applicant |
| US2012144318A1 | Cites | United States of America | Applicant |
| US2012166469A1 | Cites | United States of America | Applicant |
| US2012239584A1 | Cites | United States of America | Applicant |
| US2012257876A1 | Cites | United States of America | Applicant |
| US2012320013A1 | Cites | United States of America | Applicant |
| US2013036166A1 | Cites | United States of America | Search report |
| US2013060632A1 | Cites | United States of America | Applicant |
| WO2013061321A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2013073602A1 | Cites | United States of America | Search report |
| US2013085663A1 | Cites | United States of America | Applicant |
| US2013169834A1 | Cites | United States of America | Applicant |
| US2014136186A1 | Cites | United States of America | Applicant |
| US2014140639A1 | Cites | United States of America | Applicant |
| US2014207880A1 | Cites | United States of America | Search report |
| US2014233919A1 | Cites | United States of America | Applicant |
| US2014244834A1 | Cites | United States of America | Applicant |
| US2014266669A1 | Cites | United States of America | Applicant |
| US2014316570A1 | Cites | United States of America | Applicant |
| US2014375425A1 | Cites | United States of America | Applicant |
| US2015006695A1 | Cites | United States of America | Applicant |
| US2015019714A1 | Cites | United States of America | Applicant |
| WO2015069124A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO2015094237A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2015100979A1 | Cites | United States of America | Applicant |
| US2015134739A1 | Cites | United States of America | Applicant |
| US2015168169A1 | Cites | United States of America | Applicant |
| US2015169763A1 | Cites | United States of America | Applicant |
| US2015219458A1 | Cites | United States of America | Applicant |
| US2015244969A1 | Cites | United States of America | Applicant |
| US2015263991A1 | Cites | United States of America | Search report |
| US2015278263A1 | Cites | United States of America | Applicant |
| US2015279226A1 | Cites | United States of America | Applicant |
| US2015296177A1 | Cites | United States of America | Applicant |
| US2016035391A1 | Cites | United States of America | Applicant |
| US2016044298A1 | Cites | United States of America | Applicant |
| US2016055422A1 | Cites | United States of America | Applicant |
| US2016073482A1 | Cites | United States of America | Applicant |
| US2016086490A1 | Cites | United States of America | Applicant |
| US2016095013A1 | Cites | United States of America | Applicant |
| US2016119854A1 | Cites | United States of America | Search report |
| US2016195859A1 | Cites | United States of America | Applicant |
| US2016227371A1 | Cites | United States of America | Applicant |
| US2016337286A1 | Cites | United States of America | Search report |
| US2017010667A1 | Cites | United States of America | Search report |
| US2017353415A1 | Cites | United States of America | Search report |
| US2018012173A1 | Cites | United States of America | Search report |
| CN202887470U | Cites | China | Applicant |
| EP2141630A2 | Cites | European Patent Office (EPO) | Applicant |
| US5093869A | Cites | United States of America | Applicant |
| US5617520A | Cites | United States of America | Applicant |
| US5708767A | Cites | United States of America | Applicant |
| US5757424A | Cites | United States of America | Applicant |
| US6023223A | Cites | United States of America | Applicant |
| US6059576A | Cites | United States of America | Applicant |
| US6144375A | Cites | United States of America | Applicant |
| US6278938B1 | Cites | United States of America | Applicant |
| US6295367B1 | Cites | United States of America | Applicant |
| US6424370B1 | Cites | United States of America | Applicant |
| US6580811B2 | Cites | United States of America | Applicant |
| US6587668B1 | Cites | United States of America | Applicant |
| US6590529B2 | Cites | United States of America | Applicant |
| US6682351B1 | Cites | United States of America | Applicant |
| US6785713B1 | Cites | United States of America | Search report |
| US6873713B2 | Cites | United States of America | Applicant |
| US6882837B2 | Cites | United States of America | Applicant |
| US7015954B1 | Cites | United States of America | Applicant |
| US7084775B1 | Cites | United States of America | Applicant |
| US7099745B2 | Cites | United States of America | Applicant |
| US7181345B2 | Cites | United States of America | Applicant |
| US7200266B2 | Cites | United States of America | Applicant |
5 members in 2 offices; this record represents the family
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 201762447809 | United States of America | P |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| US2018205688A1 | United States of America | A1 | |
| WO2018136311A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US10637814B2This record | United States of America | B2 | |
| US2020259773A1 | United States of America | A1 | |
| US11070504B2 | United States of America | B2 |
61 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by OIPE CSRL194 | L194 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
1 recorded assignment at the USPTO, latest first
- Now
Now: Held by
MICROSOFT TECHNOLOGY LICENSING LLC - 2017-02-21
Assignment of assignors interest.
- From
- MITAL, VIJAYCOLLE, OLIVIERABRAHAM, ROBIN
and 3 moreShow fewer
FLUTRE, ARNAUD CHRISTIANLEE, ANTHONY WAHILAIWI, FAISAL KHALED FAISAL - To
- MICROSOFT TECHNOLOGY LICENSING, LLC
Recorded 2017-02-21, Signed 2017-02-15
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Information on status: patent application and granting procedure in generalNOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONSSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 10637814
- Application
- 15436660
Titles
- English
- Communication routing based on physical status
Patent term adjustment
- A delay
- +238 daysthe office missed an examination deadline
- B delay
- +20 dayspendency past three years
- Applicant delay
- −60 days
- Net adjustment
- 198 days
Classification
- CPC, 5
- H04L51/14
- G06F3/016
- G06N5/022
- H04L51/20
- H04L67/18
- IPC, 5
- G06F15 16
- H04L12 58
- H04L29 08
- G06F3 01
- G06N5 02