Random factoid generation

文档序号:1651766 发布日期:2019-12-24 浏览:20次 中文

阅读说明:本技术 随机仿真陈述生成 (Random factoid generation ) 是由 J·S·金 A·J·B·布拉什 L·J·施蒂费尔曼 E·N·勒文塔尔 T·梅农 于 2018-04-20 设计创作,主要内容包括:提供了响应于用户触发而提供的随机仿真陈述。各方面涉及用于响应于触发事件而提供随机仿真陈述的设备、方法和计算机可读介质。监视各种输入,诸如用户轻击、手势、语音命令、环境命令等,以识别与随机仿真陈述系统相关联的触发事件。当确定输入是触发事件时,随机地选择随机仿真陈述并将其提供给用户。仿真陈述能够是有趣事实或者有帮助的技巧。在一些示例中,随机仿真陈述系统基于一个或多个上下文因素(诸如设备的地理位置、用户的交互历史、用户的人口统计数据等)提供上下文随机仿真陈述,由此提供经改善的用户体验。(Random factoids provided in response to user triggers are provided. Aspects relate to devices, methods, and computer-readable media for providing random factoids in response to triggering events. Various inputs, such as user taps, gestures, voice commands, environmental commands, etc., are monitored to identify triggering events associated with the stochastic factoid system. When the input is determined to be a triggering event, a random factoid is randomly selected and provided to the user. Factoids can be interesting facts or helpful skills. In some examples, the random factoid system provides contextual random factoids based on one or more contextual factors (such as geographic location of the device, interaction history of the user, demographics of the user, etc.), thereby providing an improved user experience.)

1. A system for providing factoids, comprising:

a processor; and

a computer-readable data storage device storing instructions that are operable when executed by the processor to:

receiving an input;

determining whether the input is a factoid trigger event; and

in response to a determination that the input is a factoid trigger event:

querying a data source to select a factoid; and is

Generating at least one of a visual display or an audible output of the factoid.

2. The system of claim 1, wherein the data source is one of:

an interesting fact database storing a plurality of interesting factoids;

a list of interesting factoids;

an index of web-based content including interesting factoids;

a skills database storing a plurality of helpful skills;

a list of helpful skills; and

indexing of web-based content that includes helpful skills.

3. The system of claim 1, wherein in querying the data source, the system is operable to query the data source based on a predetermined ratio of interesting factoids to helpful tips.

4. The system of claim 1, wherein in querying the data source, the system is operable to query the data source for a context factual statement based on context information.

5. The system of claim 1, wherein, in querying the data source, the system is further operable to:

generating a pseudo random number; and

an emulation statement corresponding to the generated pseudo random number is selected.

6. The system of claim 1, wherein the input comprises one of:

tapping;

a gesture;

an utterance;

selection of a button; or

Ambient conditions.

7. A method for providing factoids, comprising:

receiving an input;

determining whether the input is a factoid trigger event; and

in response to a determination that the input is a factoid trigger event:

querying a data source to select a factoid; and is

Generating at least one of a visual display or an audible output of the factoid.

8. The method of claim 7, wherein querying the data source comprises:

querying an interesting facts database or list or an index query of web-based content for interesting factoids; and

a skill database or list or an index query of web-based content is queried for helpful skills.

9. The method of claim 7, wherein querying the data source comprises: the data source is queried based on a predetermined ratio of interesting factoids to helpful skills.

10. The method of claim 7, wherein querying the data source comprises: the data source is queried for a context emulation statement based on the context information.

11. The method of claim 7, wherein querying the data source further comprises:

generating a random number or a pseudo-random number; and

selecting an emulation statement corresponding to the generated random number or the pseudo random number.

12. The method of claim 7, wherein receiving the input comprises at least one of:

receiving an indication of a tap;

receiving an indication of a gesture;

receiving an indication of an utterance;

receiving an indication of a selection of a button; and

an indication of an environmental condition is received.

13. The method of claim 7, wherein generating the visual display or the audible output of the factoid further comprises:

retaining temporary knowledge of the factoid statement for providing context in understanding the intent of subsequent input provided by the user;

receiving the subsequent input;

processing the subsequent input to understand the intent; and

querying the data source for a response to the subsequent input to provide to the user.

14. The method of claim 13, further comprising: turning on a microphone operatively connected to the computing device for receiving a subsequent input provided by the user.

15. A computer readable storage device comprising computer readable instructions, which when executed by a processing unit are operable to:

receiving an input;

determining whether the input is a random factoid trigger event; and

in response to a determination that the input is a random factoid trigger event:

querying a data source to randomly select a factoid; and is

Generating at least one of a visual display or an audible output of the factoid.

Background

Computing device applications are increasingly being developed in intuitive designs to make the features of the application visually apparent to the user. For example, applications often include various shortcuts and features to help users use the application more efficiently. In addition, developers periodically update computing device applications to provide new application features and functionality. However, some application features may not be intuitively obvious and the user may not know them. One exemplary application type is an intelligent assistant application for providing relevant information to a user. For example, intelligent assistants are often used to provide directions, find local attractions, weather updates, and the like. Helping users learn the capabilities of computing devices or applications, such as intelligent assistants, is a challenging problem, particularly for applications that regularly acquire new capabilities and features.

On a computing device having a screen, various features or use tips can be provided on the screen to inform the user of various functions and capabilities of applications that can improve the user's experience with their device. However, the user may not be interested in learning such skills and may remove them without paying attention to them. On a pure audio device without a screen, such as a hands-free speaker connected to an intelligent assistant, various features and functions may be supported that are not directly apparent. The user of such a device can be reduced to a "guess-and-try" interactive mode, where the user asks questions and randomly tries certain commands or interacts to find out what is valid. Moreover, communicating functionality and capabilities to a user can be challenging.

Disclosure of Invention

This 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 all features of the claimed subject matter, nor is it intended to be limiting as to the scope of the claimed subject matter.

Aspects relate to an apparatus, method, and computer-readable storage device for providing a random factoid in response to a triggering event. For example, a stochastic factual presentation system is provided that is operable to provide unpredictable information to a user. Upon receiving input signaling the random factoid system to provide information (such as user taps, gestures, voice commands, actuation of buttons or switches, environmental conditions, etc.), the system will parse one or more data sources to randomly select a factoid and provide the factoid to the user.

In some examples, the factoids are helpful learning skills to help the user use undiscovered application or device features or to use the application more efficiently. In other examples, the factoids are interesting facts to help attract and increase the user's interest. In some examples, the user is provided with a predetermined ratio of helpful learning skills and interesting facts in a random order. For example, factoids may be selected and presented to the user based on a ratio of 80% interesting skills to 20% learning improvement skills. It can be appreciated that the variability and unpredictability provided by factoids may encourage users to interact with the system more frequently. For example, the user may interact with the system more frequently to see what type of factoid the user receives. Thus, the user is exposed to skills associated with educating the user about the capabilities of the device or application or with increased efficiency of user interaction. When operating on or in association with a device using a voice or speech user interface, such skills are exposed in a manner that overcomes the limitations of the user interface.

In one aspect, a random factoid is selected and presented to a user based at least in part on context data. For example, a context associated with a device or user (such as geographic location, interaction history, demographics, user preferences, etc.) can be used to select and provide factoids relevant to the user, thereby providing an improved user experience. User efficiency and computing device efficiency can be increased by exposing information to a user associated with features or functions that can improve interaction with the device.

The details of one or more aspects are set forth in the accompanying drawings and the description below. Other features and advantages will become apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that the following detailed description is only illustrative and not restrictive; the appropriate scope of the disclosure is set forth in the following claims.

Drawings

The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various aspects of the disclosure. In the drawings:

FIG. 1 is a block diagram illustrating an exemplary operating environment in which a random factoid system can be implemented to provide random factoids in response to triggering events;

FIG. 2 is a diagram illustrating an exemplary trigger event;

FIG. 3A is a block diagram illustrating an exemplary query for selecting and providing a data source of a random factoid;

FIG. 3B is a block diagram illustrating an exemplary query for selecting and providing a data source for a contextual random factoid;

FIG. 4 is a flow diagram showing the general stages involved in an exemplary method of providing random factoids in response to triggering events;

FIG. 5 is a block diagram illustrating physical components of a computing device with which an example may be practiced;

FIGS. 6A and 6B are block diagrams of mobile computing devices with which aspects of the implementations may be practiced; and

FIG. 7 is a block diagram of a distributed computing system in which aspects may be practiced.

Detailed Description

The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the following description to refer to the same or like elements. While aspects of the disclosure may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering or adding stages to the disclosed methods. The following detailed description, therefore, is not to be taken in a limiting sense, but rather the proper scope of the present disclosure is defined by the appended claims. Examples may take the form of a hardware implementation, or an entirely software implementation, or an implementation combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.

Aspects of the present disclosure relate to devices, methods, and computer-readable media for providing random factoids in response to user triggers. FIG. 1 is a block diagram of a representation of an exemplary computing operating environment 100 in which providing random factoids in response to triggering events is implemented. As illustrated, the exemplary environment 100 includes a computing device 104. For example, the computing device 104 may be one of various types of computing devices (e.g., a tablet computing device, a desktop computer, a mobile communication device, a laptop computer, a laptop/tablet hybrid computing device, a large-screen multi-touch display, a gaming device, a smart television, a wearable device, a connected automobile, a smart home device, or other type of computing device). The hardware of these computing devices is discussed in more detail with respect to fig. 5, 6A, 6B, and 7.

In one example, the computing device 104 is embodied as a conventional wireless entertainment system that includes or employs speakers, microphones, and processing devices, and is connected to a network or combination of networks including, for example and without limitation: a wide area network (e.g., the internet), a local area network, a private network, a public network, a packet network, a circuit-switched network, a wired network, and/or a wireless network. In some examples, computing device 104 serves as a front end for one or more network services, such as audio, video, or other digital content streaming services, online stores, and so forth.

According to one example, the device serves as the front end of the intelligent assistant system 108 or service. For example, the computing device 104 includes a microphone and functions as a voice command device, where the user 102 can request that certain content be played on the device (e.g., movie times, sports scores, weather forecasts) or that certain tasks be performed (e.g., setting alerts, taking notes, turning on lights, sending messages, controlling thermostats, requesting car traffic). In some examples, computing device 104 includes a screen for displaying a Graphical User Interface (GUI).

In some examples, the front end of the computing device 104 is configured to receive input indicating to the intelligent assistant system 108 that the user 102 is requesting particular content, such as random facts. For example, the input can be one or a combination of actuation of a button or switch, user flicking, gestures, spoken keywords, environmental factors, and the like. In some examples, taps or keywords (e.g., attention words) are used to indicate to the system 108 the voice command to follow. For example and in accordance with one aspect, the keyword "Hey, John Doe" can be used to speak to the intelligent assistant system 108 following a command such as, for example, "play random facts". The audio signal is then digitized in whole or in part for transmission over a network, and the device contacts a particular remote service or voice platform, which responds with a random factoid. Other input methods are possible and within the scope of the present disclosure. For example, the computing device 104 is operable to receive input from the user 102 via various input methods, such as those that rely on mice, keyboards, and remote controls, as well as Natural User Interface (NUI) methods that enable the user to interact with the device in a "natural" manner, such as via voice recognition, touch and stylus recognition, gesture recognition on and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, hover, gestures, and machine intelligence. Speech recognition applications are well known and may be included in the computing device 104, may be remotely accessed, or combined together.

According to one example, the front end of the intelligent assistant system 108 includes an intelligent assistant toolset 105, and the intelligent assistant toolset 105 includes a set of codes for communicating with a back-end service (e.g., an intelligent assistant cloud service 109) via a communication protocol 107. One example of the intelligent helper toolset 105 is an intelligent helper Software Development Kit (SDK). One exemplary communication protocol 107 is a web socket. In some examples, the computing device 104 raises the following events into the intelligent assistant toolset 105: input has been received and is a trigger for employing random factoid system 110 to, for example, provide random factoids for presentation to user 102. In other examples, the intelligent helper toolset 105 determines whether the received input is a trigger to employ the stochastic statement of truth system 110. In some examples, the intelligent helper toolset 105 is used to call out specific device functions. For example, upon receiving an indication of a random factoid triggering event, the intelligent helper toolset 105 can reduce the volume of music played on the computing device 104.

According to one aspect, the front end of the intelligent assistant system 108 (e.g., the intelligent assistant toolset 105) triggers a random factoid event in a message to the intelligent assistant cloud service 109. In some examples, the message includes additional information, such as device information, user information, location information, or usage information. For example, the device information can include information about the computing device 104 on which the intelligent helper service is requested, such as a device type, a device Identifier (ID), and so forth. The user information can include identifying information about the user 102 logged into the computing device 104 or the user that is providing input that triggers the random factoid system 110, such as a user ID or user type (e.g., adult user, child user, female user, male user) that can be linked to a user profile or user type profile. In some examples, the user information is determined by a component of the intelligent assistant system 108 or is in communication with the intelligent assistant system 108. For example, voice recognition, image recognition, or other recognition functions can be used to identify the user 102 or the user type. The usage information can include information associated with a current action of the user 102 on the computing device 104. For example, if the user 102 is listening to music on the computing device 104, the message can include information associated with the fact that the user 102 is listening to music. As another example, the usage information can include other details, such as the type of music the user 102 is listening to, the application the user 102 is using, and so forth. Additional information can be provided to the intelligent assistant cloud service 109 or viewed by the intelligent assistant cloud service 109. In one example, the intelligent assistant cloud service 109 may be operable to find calendar information, location information, etc. for a user. In another example, the intelligent helper cloud service 109 may be operable to store usage data, for example, in the usage data database 120. The usage data can include user profile information, user interaction and usage history data, and the like. For example, the usage data can be used to determine user preferences, characteristics that the user 102 has used, applications that the user 102 has used, types of content that the user 102 regularly searches or requests, and so forth. The usage data can be linked to a particular user 102 or a particular computing device 104.

According to one aspect, the intelligent assistant cloud service 109 includes or is in communication with a stochastic factual system 110, the stochastic factual system 110 including a query engine 115, the query engine 115 operable to query factual data sources, such as skill data sources 130 or interesting facts data sources 140, for stochastic factual statements.

In some examples, the interesting fact data source 140 serves as a queriable data store for interesting factoids such as jokes, trivia factoids, encyclopedia factoids, or other interesting informational blouses. For example, interesting factoid data source 140 can include a database, a list, an index of network data that includes interesting factoids, and the like. One example of an interesting fact factoid that may be stored in the interesting fact data source 140 is a game such as "butterfly can taste with foot. If one can do this, chocolate socks "are needed. Another exemplary interesting factoid statement is that "Lichtenstein is a resident of only 370000, and is one of the smallest countries in the world. However, it is the largest denture manufacturer worldwide ". It should be appreciated that these are non-limiting examples. Other types of interesting factoids are possible and are within the scope of the present disclosure. In some examples, the trick data source 130 and the interesting fact data source 140 are also operable to mine other data sources for factual or encyclopedia-based information to provide random factual statements in response to triggering events.

In some examples, each of the helpful trick factoids stored in the trick data source 130 and the interesting facts stored in the interesting facts data source 140 are identified by a Unique Identifier (UID). Further, according to an aspect, the query engine 115 includes or is in communication with a random number generator 117, the random number generator 117 illustrating a software module, microchip, system, or device operable to generate random or pseudo-random numbers for use in unpredictably selecting helpful trick or interesting factoids. For example, a random or pseudo-random number is generated by random number generator 117 that corresponds to a UID of a factoid or factoid type (e.g., helpful trick factoids and interesting factoids). In some examples, a predetermined ratio of helpful trick factoids to interesting factoids is applied to the query engine 115 such that a given frequency of helpful tricks and a given frequency of interesting factoids is exposed to the user 102. An exemplary predetermined ratio of helpful trick statements to interesting factoids is 1 to 5, where each 5 interesting factoids provides one helpful trick statement, where the order of helpful trick statements and interesting factoids is random. In some examples, the ratio is determined based on a particular user profile or other usage data. In one example, the stochastic factoid system 110 uses the usage data stored in the usage data database 120 to determine the ratio of helpful trick factoids to interesting factoids. For example, if the usage data indicates that the particular user 102 is a child user, the determined ratio may include a higher percentage of interesting factoids.

In some examples, the query engine 115 includes a context engine 118, the context engine 118 operable to apply context to queries to the trick data source 130 or the interesting fact data source 140. For example, factoids stored in the trick data source 130 and the interesting facts data source 140 are tagged with metadata associated with the factoids, such as one or more keywords, topics, categories, etc., that enable searching and selecting of factoids based on relevance to the terms of the query. The context engine 118 is operable to query the skill data source 130 or the facts-of-interest data source 140 using usage data (e.g., user profile information, user interaction data, usage history data) to obtain factoids relating to particular features, points of interest, regions of interest, categories of interest, topics of interest, and the like. That is, the intelligent helper system 108 is operable to provide contextual random factoids to the user 102. In one example, random factoid system 110 is operable to provide random factoids associated with features previously unused by user 102 as determined from usage data.

For example, consider that the intelligent assistant system 108 includes features that allow the user 102 to track a flight, and that the user 102 has not yet used the features. The usage data database 120 can be queried for features that have not been used by the user 102, and flight tracking features can be identified as unused features. Thus, when a helpful factual statement is expected based on the generated random or pseudo-random numbers, the context engine 118 can query the source of skill data 130 for factual statements related to flight tracking. As another example, consider that the user 102 often asks the intelligent assistant system 108 for a joke. This usage data can be stored in the usage data database 120 and used in queries as context information to select interesting factoids of a particular type from the interesting fact data source 140. As another example, consider that the usage data for the user 102 indicates that the user 102 likes football. Consider also that user 102 is visiting new york city. The user's interest in soccer and/or the user's location data can be used as contextual information in a query to select interesting factoids from interesting fact data sources 140 relating to soccer and/or new york city. For example, an interesting factoid statement may be provided to the user 102 that relates to soccer, such as "about 600 cows are needed to make an NFL soccer season. In another example, an interesting factoid related to New York City may be provided to the user 102, such as "New York City was originally referred to as New Amsterdam". In another example, an interesting factoid statement may be provided to the user 102 that relates to football and new york city, such as "the new york giant race plays at Yankee stadium from 1956 to 1973". It should be appreciated that these are non-limiting examples. Other types of contextual information for querying the trick data source 130 or the interesting fact data source 140 for random contextual information factoids are possible and are within the scope of the present disclosure.

According to one aspect, when a helpful trick statement or interesting statement is selected, the intelligent assistant system 108 passes or exposes the selected statement to the user 102. For example, the back-end of the intelligent assistant system 108 (e.g., the intelligent assistant cloud service 109) uses the communication protocol 107 to communicate the selected factoid to the front-end of the intelligent assistant system (e.g., the intelligent assistant toolset 105), which is operable to communicate the response of the intelligent assistant system 108 to the user 102. In some examples, the random factoid is played through the computing device speaker in the form of a voice or audio message. In other examples, the random factoid is displayed as a displayable message on a computing device screen.

In accordance with one aspect, a context migration (carryover) is provided for enabling conversational dialog related to factoids.A microphone operatively connected to computing device 104 is opened for receiving user feedback, in one example, when a random factoid is provided to user 102 via computing device 104. additionally, knowledge of the factoid provided is temporarily retained so that context can be provided for subsequent statements made by user 102. for example, in response to being provided with a random factoid, such as "by continent, Russia is the largest country in the world, covering a wide area in excess of 660 ten thousand square miles, about 280 ten thousand square miles more than canada of the second name, user 102 may respond to intelligent assistant system 108 with subsequent questions, such as" who is the third largest country? ". accordingly, intelligent assistant system 108 may be operable to process user input and query data sources for responses provided to user 102.

Referring now to FIG. 2, various exemplary user and environment inputs are illustrated that can be identified as triggering events for stochastic factual statement system 110. In one example and as illustrated, a user tap 210 on the computing device 104 can generate a random factoid triggering event for the intelligent assistant system 108. For example, the tap 210 can be anywhere on the computing device 104, a particular location on the computing device 104, or can include selection or activation of a button on the computing device 104. In another example, a particular gesture 220 entered on or near computing device 104 can generate a random factoid triggering event to intelligent assistant system 108. In another example, spoken utterance 230 can be recognized as a triggering event for random factoid system 110. In another example, environmental conditions 240 that can be measured and communicated with computing device 104 can be identified as triggering events for random factoid system 110. For example, when a particular temperature, noise level, lighting level, humidity level, pollen level, or other environmental condition is identified, a random factoid event will be generated to the intelligent assistant system back-end. In some examples, contextual data associated with the identified temperature, noise level, lighting level, humidity level, pollen level, or other environmental condition is communicated to the backend in a message. According to one aspect, the random factoid system 110 is operable to query the trick data source 130 or the interesting fact data source 140 for random factoids relating to the identified environmental conditions. For example, if a room temperature of 68 degrees fahrenheit is detected by a thermostat communicatively connected to the computing device 104, the random factoid system 110 may provide factoids relating to air conditioning energy savings, such as "yearly, the same amount of energy used in the united states to power an air conditioner as is used to power an entire continent.

More than one user 102 can be associated with the computing device 104 or the intelligent assistant system 108. In one example, in a home where multiple users 102a-n reside, the users (e.g., user 1102 a, user 2102 b, user 3102 c, and user 4102 d) can be identified based on facial recognition, voice recognition, or other recognition methods. According to one aspect, random factoid system 110 is operable to provide random factoids based on the identification of a given user 102. For example, the computing device 104 may be operable to recognize the voice of a particular user 102 or a particular group of users via a voice recognition method and communicate the recognition to the backend for associating the user 102 with a particular user profile. Thus, the random factoid system 110 is operable to query the trick data source 130 or the interesting fact data source 140 for random factoids based on the identified context of the user 102.

FIG. 3A is a block diagram 300 illustrating an exemplary query 310 to data sources 130, 140 for selecting a random factoid 302. For example, factoids 1 through N302 a-N are stored in either the trick data source 130 or the interesting fact data source 140. In one aspect, each of factoids 302 has a UID associated with it. In one example, upon determining that the received input is a triggering event, the query engine 115 generates a query 310, in some examples, the query 310 includes context information contained in the event message. According to an example, query engine 115 uses random number generator 117 to generate a random or pseudo-random number for randomly selecting a UID corresponding to a factoid for provision to user 102.

FIG. 3B is a block diagram 350 illustrating an exemplary query 310 of data sources 130, 140 for selecting a contextual random factoid 302. In some examples and as illustrated, factoids 302 are categorized in various categories from 1 to N320 a-N in either the trick data source 130 or the interesting fact data source 140. For example, if the user 102 is traveling to a particular location (e.g., Seattle), the stochastic factoid system 110 may be operable to identify the geographic location data contained in the event message provided to the back end of the intelligent assistant system 108 and use the geographic location data to select contextual stochastic factoids 302 that are relevant to a particular geographic location category 320. It will be appreciated that a given factoid 302 may belong to several categories 320, and that the categories 320 may be nested. For example, factoids 302 associated with the city Seattle may also belong to the Washington State category 320 and the city Seattle category 320. In addition, factoids 302 may belong to several categories 320 that are not nested, such as, for example, factoids 302 related to the sports team in Seattle belong to both the Seattle category 320 and the sports category 320. As illustrated, factoid 2302 b and factoid N302N belong to category 1320 a and category N320N, but factoids 302a, 302c and 302d are not shared between category 1320 a and category N320N.

In other examples and as illustrated, factoids 302 stored in the trick data source 130 or the interesting fact data source 140 are tagged with metadata 1 through N330 a-N, which causes the factoids 302 to be queried based on the metadata 330. For example, a particular factoid 302N may be tagged with metadata such as "nature" (metadata 1330 a), "Tree" (metadata 2330 b), and "sequoia" (metadata N330N). The query engine 115 is operable to query the trick data source 130 or the facts-of-interest data source 140 for factual statements 302 related to "redwood" when providing contextual information indicating that the user is interested in redwood. Thus, in the example above, factoid N302N is one factoid 302 that may be selected by query engine 115 based on factoid N302N labeled with metadata N330N for "sequoia". In some examples, query engine 115 uses random number generator 117 to generate a random number or pseudo-random number to randomly select factoid 302 from a plurality of factoids relevant to a particular query 310. Further, according to an example, a particular factoid 302 may be classified into multiple categories 320 or may be tagged with various metadata 330. Thus, factoid 302 (e.g., factoid 302 related to "Seattle" and "baseball") can be queried based on a plurality of contextual information.

Having described the operating environment 100, components of random factoid system 110, and various query examples with respect to fig. 1-3B, fig. 4 is a flow diagram illustrating the general stages involved in an exemplary method 400 of providing random factoids 302 in response to triggering events.

The method 400 begins at operation 402 and proceeds to operation 404, where an input is received by the computing device 104 in operation 404. For example, the input can include a user input, such as a tap 210 or selection of a button, a gesture 220, or an utterance 230, or can include an environmental input or condition 240.

After receiving the input, the method 400 proceeds to decision operation 406 where it is determined whether the received input is a random factoid triggering event in decision operation 406. For example, if user 102 taps on the device, the system classifies the input as a triggering event for stochastic statement of truth system 110. At decision operation 406, if it is determined that the input is not a random factoid trigger event, the method 400 returns to operation 404, where the computing device 104 listens for the input in operation 404.

If it is determined at decision operation 406 that the received input is a random factoid trigger event, method 400 proceeds to operation 408 where intelligent helper system 108 generates an event to the back end of intelligent helper system 108 at operation 408. In some examples, the front end of the intelligent assistant system 108 transmits a message that includes contextual information, such as a device ID, a user ID, location data, usage data, and the like. In some examples, the back end of the intelligent helper system 108 or the stochastic factoid system 110 looks up usage data or other contextual information for use in generating the query 310. Further, the random factoid system 110 queries the trick data source 130 or the interesting fact data source 140 for random factoids 302. In some examples, random factoid system 110 employs random number generator 117 to generate random or pseudo-random numbers for randomly selecting factoids from either trick data source 130 or interesting fact data source 140. In some examples, the random factoid system 110 queries the trick data source 130 or the interesting data source 140 for factoids based on a predetermined ratio. In other examples, the stochastic factual system 110 queries the trick data source 130 or the interesting fact data source 140 for factual statements based on contextual information (such as location, user interests, unused features, commonly used applications, etc.).

At operation 410, the selected random factoid 302 is provided to the user 102. in some examples, the random factoid 302 provided to the user 102 is an interesting factoid, such as "our eyes are always the same size from birth, but our nose and ears never stop growing". in other examples, the random factoid 302 provided to the user 102 is a helpful learning skill, such as "do you know if you can ask i to set an alert? for you". according to one example, the helpful skill is randomly selected, however, according to another example, the skill is selected in response to a recent intelligent assistant application update, including a new function such as for setting an alert on behalf of the user 102. the method 400 ends at operation 498.

While the implementations have been described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types.

The aspects and functions described herein may operate via a variety of computing systems, including but not limited to: desktop computer systems, wired and wireless computing systems, mobile computing systems (e.g., mobile phones, netbooks, tablet or slate computers, notebook computers, and laptop computers), handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, and mainframe computers.

Further, according to an aspect, the aspects and functions described herein operate on a distributed system (e.g., a cloud-based computing system) in which application functions, memory, data storage and retrieval, and various processing functions operate remotely from one another over a distributed computing network, such as the internet or an intranet. According to one aspect, a user interface and various types of information are displayed via an onboard computing device display or via a remote display unit associated with one or more computing devices. For example, the user interface and various types of information may be displayed and interacted with on a wall surface on which the user interface and various types of information are projected. Interactions with multiple computing systems with which implementations are practiced include keystroke inputs, touch screen inputs, voice or other audio inputs, gesture inputs in which an associated computing device is equipped with detection (e.g., camera) functionality for capturing and interpreting user gestures for controlling functions of the computing device, and the like

5-7 and the associated descriptions provide a discussion of various operating environments in which examples may be practiced. However, the devices and systems illustrated and discussed with respect to fig. 5-7 are for purposes of example and illustration, and are not limiting of a number of computing device configurations for practicing aspects described herein.

Fig. 5 is a block diagram illustrating physical components (i.e., hardware) of a computing device 500 with which examples of the present disclosure are practiced. In a basic configuration, computing device 500 includes at least one processing unit 502 and system memory 504. According to an aspect, depending on the configuration and type of computing device, system memory 504 includes, but is not limited to: volatile storage (e.g., random access memory), non-volatile storage (e.g., read only memory), flash memory, or any combination of such memories. In accordance with one aspect, the system memory 504 includes an operating system 505 and one or more program modules 506 suitable for running software applications 550. According to an aspect, system memory 504 includes random factoid system 110. The operating system 505 is suitable for controlling the operation of the computing device 500, for example. Further, aspects are practiced in conjunction with a graphics library, other operating systems, or any other application program, and are not limited to any particular application or system. This basic configuration is illustrated in fig. 5 by those components within dashed line 508. According to an aspect, the computing device 500 has additional features or functionality. For example, according to an aspect, computing device 500 includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in FIG. 5 by removable storage 509 and non-removable storage 510.

As mentioned above, according to an aspect, a number of program modules and data files are stored in system memory 504. When running on processing unit 502, program modules 506 (e.g., stochastic statement system 110) perform processes including, but not limited to, one or more of the stages of method 400 illustrated in FIG. 4. According to an aspect, other program modules are used in accordance with examples and include applications such as email and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided drawing application programs, and the like.

According to examples, aspects are implemented in a circuit comprising discrete electronic elements, a packaged or integrated electronic chip containing logic gates, a circuit using a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, aspects are practiced via a system on a chip (SOC) in which each or many of the components illustrated in fig. 5 are integrated onto a single integrated circuit. According to an aspect, such a SOC device comprises: one or more processing units, graphics units, communications units, system intelligence units, and various application functions, all integrated (or "burned") onto a chip substrate as a single integrated circuit. When operating via an SOC, the functionality described herein operates via application specific logic integrated with other components of the computing device 500 on a single integrated circuit (chip). According to one aspect, aspects of the present disclosure are practiced using other techniques capable of performing logical operations (e.g., AND, OR, AND NOT), including but NOT limited to: mechanical, optical, fluidic, and quantum technologies. Additionally, aspects are practiced in a general purpose computer or any other circuits or systems.

According to an aspect, computing device 500 has one or more input devices 512, such as a keyboard, a mouse, a pen, a voice input device, a touch input device, and so forth. According to an aspect, output device(s) 514 such as a display, speakers, printer, etc. are also included. The foregoing devices are examples, and other devices may be used. According to an aspect, computing device 500 includes one or more communication connections 516 that allow communication with other computing devices 518. Examples of suitable communication connections 516 include, but are not limited to: radio Frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal Serial Bus (USB), parallel and/or serial ports.

The term "computer-readable medium" as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, or program modules. System memory 504, removable storage 509, and non-removable storage 510 are all computer storage media examples (i.e., memory storage). According to an aspect, a computer storage medium may include: computer storage media includes, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other article of manufacture that can be used to store information and that can be accessed by computing device 500. In accordance with an aspect, any such computer storage media may be part of computing device 500. Computer storage media does not include a carrier wave or other propagated or modulated data signal.

In accordance with one aspect, communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. According to an aspect, the term "modulated data signal" describes a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, Radio Frequency (RF), infrared and other wireless media.

Fig. 6A and 6B illustrate a mobile computing device 600, e.g., a mobile phone, a smart phone, a tablet personal computer, a laptop computer, etc., with which aspects may be practiced. With reference to FIG. 6A, an example of a mobile computing device 600 for implementing various aspects is illustrated. In a basic configuration, the mobile computing device 600 is a handheld computer having both input elements and output elements. The mobile computing device 600 generally includes a display 605 and one or more input buttons 610 that allow a user to enter information into the mobile computing device 600. According to an aspect, the display 605 of the mobile computing device 600 serves as an input device (e.g., a touch screen display). When included, optional side input element 615 allows for additional user input. According to an aspect, the side input element 615 may be a rotary switch, a button, or any other type of manual input element. In alternative examples, the mobile computing device 600 incorporates more or fewer input elements. For example, in some examples, the display 605 may not be a touch screen. In an alternative example, the mobile computing device 600 is a portable telephone system, such as a cellular telephone. According to an aspect, the mobile computing device 600 includes an optional keypad 635. According to an aspect, the optional keypad 635 is a physical keypad. According to another aspect, optional keypad 635 is a "soft" keypad generated on the touch screen display. In various aspects, the output elements include a display 605 for displaying a Graphical User Interface (GUI), a visual indicator 620 (e.g., a light emitting diode), and/or an audio transducer 625 (e.g., a speaker). In some examples, the mobile computing device 600 incorporates a vibration transducer for providing tactile feedback to the user. In yet another example, the mobile computing device 600 incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., an HDMI port) for sending signals to or receiving signals from an external device. In yet another example, the mobile computing device 600 incorporates peripheral device ports 640, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., an HDMI port) for sending signals to or receiving signals from external devices.

Fig. 6B is a block diagram illustrating an architecture of one example of a mobile computing device. That is, the mobile computing device 600 incorporates a system (i.e., architecture) 602 to implement some examples. In one example, the system 602 is implemented as a "smart phone" capable of running one or more applications (e.g., browser, email, calendar, contact manager, messaging client, games, and media client/player). In some examples, system 602 is integrated as a computing device, such as an integrated Personal Digital Assistant (PDA) and wireless phone.

In accordance with one aspect, one or more application programs 650 are loaded into the memory 662 and run on or in association with the operating system 664. Examples of application programs include: a phone dialer program, an email program, a Personal Information Management (PIM) program, a word processing program, a spreadsheet program, an internet browser program, a messaging program, and the like. According to one aspect, random factoid system 110 is loaded into memory 662. The system 602 also includes a non-volatile storage area 668 within the memory 662. The non-volatile storage area 668 may be used to store persistent information that should not be lost when the system 602 is powered down. The application 650 may use and store information in the non-volatile storage area 668, such as email or other messages used by an email application. A synchronization application (not shown) also resides on the system 602 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area 668 synchronized with corresponding information stored on the host computer. It is to be appreciated that other applications can be loaded into the memory 662 and run on the mobile computing device 600.

According to an aspect, the system 602 has a power supply 670, which may be implemented as one or more batteries. According to an aspect, the power supply 670 may also include an external power source, such as an AC adapter or a powered docking cradle that supplements or charges a battery.

According to an aspect, the system 602 includes a radio 772 that performs the function of transmitting and receiving radio frequency communications. The radio 672 facilitates wireless connectivity between the system 602 and the "outside world," via a communications carrier or service provider. Transmissions to and from the radio 672 are under control of the operating system 664. In other words, communications received by the radio 772 can be disseminated to the application programs 650 via the operating system 664, and vice versa.

According to an aspect, the visual indicator 620 is used to provide a visual notification and/or the audio interface 674 is used to produce an audible notification via the audio transducer 625. In the illustrated example, the visual indicator 620 is a Light Emitting Diode (LED) and the audio transducer 625 is a speaker. These devices may be directly coupled to the power supply 670 so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor 660 and other components might shut down to conserve battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface 674 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 625, the audio interface 674 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. According to an aspect, the system 602 further includes a video interface 676, the video interface 676 enabling operation of the onboard camera 630 to record still images, video streams, and the like.

According to an aspect, the mobile computing device 600 implementing the system 602 has additional features or functionality. For example, the mobile computing device 600 includes additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in FIG. 6B by non-volatile storage area 668.

According to an aspect, data/information generated or captured by the mobile computing device 600 and stored via the system 602 may be stored locally on the mobile computing device 600, as described above. According to another aspect, the data is stored on any number of storage media that are accessible by the device via the radio 672 or via a wired connection between the mobile computing device 600 and a separate computing device associated with the mobile computing device 600 (e.g., a server in a distributed computing network such as the internet). It is to be appreciated that such data/information can be accessed via the mobile computing device 600, via the radio 672, or via a distributed computing network. Similarly, according to one aspect, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage units (including email and collaborative data/information sharing systems).

FIG. 7 illustrates one example of an architecture for a system for providing random factoids as described above. Such that content developed, interacted with, or edited in association with random factoid system 110 is stored in a different communication channel or other storage type. For example, various documents may be stored using a directory service 722, a web portal 724, a mailbox service 726, an instant messaging store 728, or a social networking site 730. Random factoid system 110 is operable to use any of these types of systems or the like for providing random factoids, as described herein. According to one aspect, server 720 provides random factoid system 110 to clients 705a, b, c. By way of example, server 720 is a web server that provides random factoid system 110 on a network. Server 720 provides random factoid system 110 to client 705 over a network through network 740. By way of example, the client computing device is implemented and embodied in a personal computer 705a, a tablet computing device 705b, or a mobile computing device 705c (e.g., a smartphone), or other computing device. Any of these examples of client computing devices may be operable to obtain content from store 716.

For example, implementations are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to aspects. The functions/acts noted in the blocks may occur out of the order noted in any flow diagrams. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.

The description and illustrations of one or more examples provided herein are not intended to limit or restrict the scope of the claims in any way. The aspects, examples, and details provided in this application are considered sufficient to convey possession and enable others to make and use the best mode. Implementations should not be construed as limited to any aspect, example, or detail provided in this application. Various features (of structure and methodology) whether shown and described in combination or separately may be selectively included or omitted to produce examples having particular features sets. Having provided a description and illustration of the present application, various modifications, adaptations, and alternative examples may occur to those skilled in the art that fall within the spirit of the broader aspects of the present general inventive concept as embodied in the present application without departing from the broader scope thereof.

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于相分离的电吸附空化装置和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类