A mechanism is provided for integrated functionality across separate software applications to provide a response. First and second software applications are determined both of which are independently designed to perform actions to provide the response. The first software application has a first functionality software component and a first data source software component. The second software application has a second functionality software component and a second data source software component. According to a user profile, the OS selects between the first and second functionality software components a selected functionality software component, and selects between the first and second data source software components a selected data source software component from which to provide the data corresponding to the user request. The response is presented as the integration of the selected functionality and data source software components. The selected functionality and data source software components are not from the same software application.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method for integrated functionality across separate software applications executed on a smartphone, the method comprising: receiving, by the smartphone, input of a user request from a user in order to provide a response; determining, by a platform operating system executed by a processor on the smartphone, a first software application and a second software application both of which are independently designed to perform actions for the user request in order to provide the response, the first software application and the second software application both being on the smartphone, the first and second software applications both being mobile applications configured for the smartphone; wherein the first software application and the second software application are both designed to perform a same action independent from one another, in which the same action independently results in the response requested b the user; wherein the platform operating system, residing on and executing on the smartphone, provides for integration of the first software application and the second software application; wherein the first software application, residing on and executing on the smartphone, comprises a first functionality software component to perform the user request and comprises a first data source software component to provide data corresponding to the user request; wherein the second software application, residing on and executing on the smartphone, comprises a second functionality software component to perform the user request and comprises a second data source software component to provide the data corresponding to the user request; according to a user profile, selecting, by the platform operating system executing on the smartphone, between the first functionality software component of the first software application designed to perform the same action independent from the second software application and the second functionality software component of the second software application designed to perform the same action independent from the first software application a selected functionality software component to perform the user request; according to the user profile, selecting, by the platform operating system executing on the smartphone, between the first data source software component of the first software application designed to perform the same action independent from the second software application and the second data source software component of the second software application designed to perform the same action independent from the first software application a selected data source software component from which to provide the data corresponding to the user request; presenting the response to the user request as the integration of the selected functionality software component and the selected data source software component; wherein the platform operating system, executing on the smartphone, does not select both the selected functionality software component and the selected data source software component from a same software application.
A smartphone operating system integrates functionality from different apps to fulfill a user request. The OS identifies two or more apps capable of performing the same action independently. Each app has a functionality component (for processing) and a data source component. Based on a user profile, the OS selects the "best" functionality component from *one* app and the "best" data source component from *another* app to complete the user request. The selected components are then combined to present a unified response to the user. Critically, the selected functionality and data components *must* come from different apps.
2. The method of claim 1 , wherein the user profile comprises user preferences indicating what part of the first software application that the user prefers over the second software application designed to perform the same action; wherein the user profile comprises the user preferences indicating what part of the second software application that the user prefers over the first software application designed to perform the same action.
The smartphone OS uses a user profile to choose app components (as defined in the previous description). The user profile contains preferences indicating which part of the first app the user prefers over the second app (and vice versa), when both apps can do the same thing. These preferences guide the selection of the functionality and data source components. The user profile explicitly dictates which parts of the different apps the user prefers for specific tasks.
3. The method of claim 2 , wherein the user preferences in the user profile indicate that the user prefers the first functionality software component of the first software application to perform the user request, such that the platform operating system selects the first functionality software component of the first software application as the selected functionality software component; and wherein the user preferences indicate that the user prefers the second data source software component associated with the second software application to provide the data corresponding to the user request, such that the platform operating system selects the second data source software component of the second software application as the selected data source software component.
Continuing from the previous description, the user profile specifies that for a given request, the user *prefers* the first app's functionality component (over the second app's), so the OS selects it. The user profile *also* states the user *prefers* the second app's data source component, so the OS selects that. The OS combines these preferred components from different apps to fulfill the user request as directed by the user profile.
4. The method of claim 2 , further comprising determining that the first functionality software component and the second functionality software component are both needed to perform the user request; determining whether input and output between the first functionality software component and the second functionality software component are in a compatible format; when the input and the output between the first functionality software component and the second functionality software component are not in the compatible format, translating the input and the output into the compatible format such that the input and the output can pass between the first functionality software component and the second functionality software component; when the input and the output are in the compatible format, passing the input and the output between the first functionality software component and the second functionality software component without requiring translating the input and the output.
Building on the previous descriptions, if the OS determines that the functionality components from *both* the first and second apps are *required* to fulfill the user request, the OS checks if the input/output formats between these components are compatible. If not, the OS translates the data into a compatible format so the components can exchange information. If the formats *are* compatible, no translation is needed, and the components exchange data directly.
5. The method of claim 1 , wherein the first software application and the second software application are competitors and are separately developed to accomplish the user request.
The first and second apps, which the OS selects components from as defined in prior descriptions, are competing apps, meaning they were developed separately by different parties to accomplish the same user requests.
6. The method of claim 1 , wherein the first software application and the second software application have a compatible format, such input and output can be shared between the first software application and the second software application.
The first and second apps, from which the OS selects components as defined in prior descriptions, are designed with compatible data formats. This compatibility allows seamless sharing of input and output between the apps' components.
7. The method of claim 1 , further comprising determining that additional functionality is required to accomplish the user request; automatically determining, by the platform operating system, a new software application to provide the additional functionality by parsing a software application market; wherein the new software application comprises a new functionality software component, a new user experience software component, and a new data source software component, all of which is parsed by the platform operating system in determining that the additional functionality is met; and automatically purchasing and downloading, by the platform operating system, the new software application from the software application market, without requesting approval from the user according to the user profile.
Continuing from the initial description, if the OS determines that *additional* functionality is needed to complete the user request, it automatically searches an app store for a new app. The OS analyzes the new app's functionality, user experience, and data source components to determine if it meets the additional requirements. If it does, the OS automatically purchases and downloads the new app without requiring explicit user approval, based on the user profile settings.
8. The method of claim 1 , wherein the user request comprises an option to be related to a mapping and navigation request, a retrieving and playing audio request, a retrieving and playing movies request, a retrieving and playing video request, a controlling an appliance request, and a video telephone call request.
The user request, which triggers the component selection process from different apps described previously, can be related to various tasks, including: mapping and navigation, audio playback, movie playback, video playback, controlling appliances, and initiating video calls.
9. An apparatus for integrated functionality across separate software applications, the apparatus comprising: a processor of a smartphone; and memory comprising computer-executable instructions that, when executed by the processor, cause the processor to perform operations, the operations comprising: receiving, by the smartphone, input of a user request from a user in order to provide a response; determining, by the processor of the smartphone, a first software application and a second software application both of which are independently designed to perform actions for the user request in order to provide the response, the first software application and the second software application both being on the smartphone, the first and second software applications both being mobile applications configured for the smartphone; wherein the first software application and the second software application are both designed to perform a same action independent from one another, in which the same action independently results in the response requested by the user; wherein integration of the first software application and the second software application is provided; wherein the first software application, residing on and executing on the smartphone, comprises a first functionality software component to perform the user request and comprises a first data source software component to provide data corresponding to the user request; wherein the second software application, residing on and executing on the smartphone, comprises a second functionality software component to perform the user request and comprises a second data source software component to provide the data corresponding to the user request; according to a user profile, selecting by the smartphone between the first functionality software component of the first software application designed to perform the same action independent from the second software application and the second functionality software component of the second software application designed to perform the same action independent from the first software application a selected functionality software component to perform the user request; according to the user profile, selecting by the smartphone between the first data source software component of the first software application designed to perform the same action independent from the second software application and the second data source software component of the second software application designed to perform the same action independent from the first software application a selected data source software component from which to provide the data corresponding to the user request; presenting the response to the user request as the integration of the selected functionality software component and the selected data source software component; wherein the processor, executing on the smartphone, does not select both the selected functionality software component and the selected data source software component from a same software application.
A smartphone apparatus includes a processor and memory with instructions to integrate functionality from different apps to fulfill a user request. The process includes identifying two apps capable of performing the same action independently, each with a functionality and data source component. Based on a user profile, the apparatus selects the "best" functionality component from one app and the "best" data source component from another to complete the request, ensuring the selected components come from different apps.
10. The apparatus of claim 9 , wherein the user profile comprises user preferences indicating what part of the first software application that the user prefers over the second software application designed to perform the same action; wherein the user profile comprises the user preferences indicating what part of the second software application that the user prefers over the first software application designed to perform the same action.
In the smartphone apparatus described previously, the user profile contains preferences indicating which part of the first app the user prefers over the second app (and vice versa), when both apps can do the same thing. These preferences guide the selection of the functionality and data source components.
11. The apparatus of claim 10 , wherein the user preferences in the user profile indicate that the user prefers the first functionality software component of the first mapping software application to perform the user request, such that the processor selects the first functionality software component of the first mapping software application as the selected functionality software component; and wherein the user preferences indicate that the user prefers the second data source software component associated with the second mapping software application to provide the data corresponding to the user request, such that the processor selects the second data source software component of the second mapping software application as the selected data source software component.
Using the smartphone apparatus described previously, the user profile states the user *prefers* the first mapping app's functionality component, so the processor selects it. The user profile *also* states the user *prefers* the second mapping app's data source component, so the processor selects that. The processor combines these preferred components from different mapping apps to fulfill the user request as directed by the user profile.
12. The apparatus of claim 10 , further comprising determining that the first functionality software component and the second functionality software component are both needed to perform the user request; determining whether input and output between the first functionality software component and the second functionality software component are in a compatible format; when the input and the output between the first functionality software component and the second functionality software component are not in the compatible format, translating the input and the output into the compatible format such that the input and the output can pass between the first functionality software component and the second functionality software component; when the input and the output are in the compatible format, passing the input and the output between the first functionality software component and the second functionality software component without requiring translating the input and the output.
In the smartphone apparatus, if the processor determines that the functionality components from *both* the first and second apps are *required* to fulfill the user request, it checks if the input/output formats between these components are compatible. If not, the processor translates the data into a compatible format. If the formats *are* compatible, no translation is needed.
13. The apparatus of claim 9 , wherein the first software application and the second software application are competitors and are separately developed to accomplish the user request.
The first and second apps, used in the smartphone apparatus to select components as defined in prior descriptions, are competing apps developed separately by different parties.
14. The apparatus of claim 9 , wherein the first software application and the second software application have a compatible format, such input and output can be shared between the first software application and the second software application.
The first and second apps, used in the smartphone apparatus to select components as defined in prior descriptions, are designed with compatible data formats, allowing seamless sharing of input and output between the apps' components.
15. The apparatus of claim 9 , further comprising determining that additional functionality is required to accomplish the user request; automatically determining a new software application to provide the additional functionality by parsing a software application market; wherein the new software application comprises a new functionality software component, a new user experience software component, and a new data source software component, all of which is parsed by the processor in determining that the additional functionality is met; and automatically purchasing and downloading the new software application from the software application market, without requesting approval from the user according to the user profile.
In the smartphone apparatus, if the processor determines that *additional* functionality is needed, it automatically searches an app store for a new app. The processor analyzes the new app's components to determine if it meets the additional requirements and automatically purchases and downloads the new app without requiring explicit user approval, based on the user profile.
16. The apparatus of claim 9 , wherein the user request comprises an option to be related to a mapping and navigation request, a retrieving and playing audio request, a retrieving and playing movies request, a retrieving and playing video request, a controlling an appliance request, and a video telephone call request.
The user request in the smartphone apparatus, which triggers the component selection process from different apps, can be related to various tasks, including: mapping and navigation, audio playback, movie playback, video playback, controlling appliances, and initiating video calls.
17. A computer program product, tangibly embodied on a non-transitory computer readable medium, for integrated functionality across separate software applications, the computer program product including instructions that, when executed by a processor on a smartphone, cause the processor to perform operations comprising: receiving, by the smartphone, input of a user request from a user in order to provide a response; determining, by the processor on the smartphone, a first software application and a second software application both of which are independently designed to perform actions for the user request in order to provide the response, the first software application and the second software application both being on the smartphone, the first and second software applications both being mobile applications configured for the smartphone; wherein the first software application and the second software application are both designed to perform a same action independent from one another, in which the same action independently results in the response requested by the user; wherein integration of the first software application and the second software application is provided; wherein the first software application, residing on and executing on the smartphone, comprises a first functionality software component to perform the user request and comprises a first data source software component to provide data corresponding to the user request; wherein the second software application, residing on and executing on the smartphone, comprises a second functionality software component to perform the user request and comprises a second data source software component to provide the data corresponding to the user request; according to a user profile, selecting by the smartphone, between the first functionality software component of the first software application designed to perform the same action independent from the second software application and the second functionality software component of the second software application designed to perform the same action independent from the first software application a selected functionality software component to perform the user request; according to the user profile, selecting by the smartphone, between the first data source software component of the first software application designed to perform the same action independent from the second software application and the second data source software component of the second software application designed to perform the same action independent from the first software application a selected data source software component from which to provide the data corresponding to the user request; presenting the response to the user request as the integration of the selected functionality software component and the selected data source software component; wherein the processor, executing on the smartphone, does not select both the selected functionality software component and the selected data source software component from a same software application.
A computer program, stored on a non-transitory medium, instructs a smartphone processor to integrate functionality from different apps to fulfill a user request. The process includes identifying two apps capable of performing the same action independently, each with a functionality and data source component. Based on a user profile, the program selects the "best" functionality component from one app and the "best" data source component from another, ensuring the selected components come from different apps.
18. The computer program product of claim 17 , wherein the user profile comprises user preferences indicating what part of the first software application that the user prefers over the second software application designed to perform the same action; wherein the user profile comprises the user preferences indicating what part of the second software application that the user prefers over the first software application designed to perform the same action.
In the computer program described previously, the user profile contains preferences indicating which part of the first app the user prefers over the second app (and vice versa), when both apps can do the same thing. These preferences guide the selection of the functionality and data source components.
19. The computer program product of claim 18 , wherein the user preferences in the user profile indicate that the user prefers the first functionality software component of the first software application to perform the user request, such that the processor selects the first functionality software component of the first software application as the selected functionality software component; and wherein the user preferences indicate that the user prefers the second data source software component associated with the second software application to provide the data corresponding to the user request, such that the processor selects the second data source software component of the second software application as the selected data source software component.
Using the computer program, the user profile states the user *prefers* the first app's functionality component, so the processor selects it. The user profile *also* states the user *prefers* the second app's data source component, so the processor selects that. The processor combines these preferred components from different apps to fulfill the user request as directed by the user profile.
20. The computer program product of claim 18 , further comprising determining that the first functionality software component and the second functionality software component are both needed to perform the user request; determining whether input and output between the first functionality software component and the second functionality software component are in a compatible format; when the input and the output between the first functionality software component and the second functionality software component are not in the compatible format, translating the input and the output into the compatible format such that the input and the output can pass between the first functionality software component and the second functionality software component; when the input and the output are in the compatible format, passing the input and the output between the first functionality software component and the second functionality software component without requiring translating the input and the output.
Using the computer program, if the processor determines that the functionality components from *both* the first and second apps are *required* to fulfill the user request, it checks if the input/output formats between these components are compatible. If not, the processor translates the data into a compatible format. If the formats *are* compatible, no translation is needed.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 10, 2014
April 25, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.