Computer-based systems have increasingly changed the manner in which users interact with computers and various applications. For example, many actions and tasks traditionally performed using conventional user interface elements (e.g., menus, forms, etc.) are being replaced with conversational interfaces that enable a user to provide a variety of inputs in a more conversational manner akin to speaking with a human assistant. Indeed, bots are becoming increasingly common mechanisms for interfacing with applications, operating systems, and other computing systems.
While modern bots (e.g., conversational bots, text-driven bots, artificial intelligence bots) have provided significant advances to facilitate interaction with a wide spectrum of end-users, development of modern bots presents a number of difficulties to developers and end-users alike. For example, conventional systems for developing bots often require significant programming experience and domain knowledge of the computing environment within which a bot will be incorporated. In addition, third-party repositories of bot applications are generally difficult to incorporate into a variety of applications. Bot programs are also often difficult to modify, and generally provide an inflexible solution to developers looking to solve a particular problem or perform a specific function.
In addition to development difficulties, many conventional bot development and distribution systems are unable to effectively protect content included within various bot applications. For example, bot applications may include information about a particular individual or organization that that a developer may wish to remain secure. Other developers may wish to license or selectively provide access to a bot application on a limited basis or for a limited time. While conventional bot distribution systems can provide convenience in distributing and reusing bot components, these systems are often unable to protect digital rights of the creators or owners of those bot applications.
These and other problems exist in connection with packaging, distributing, and reusing text-driven bots.
The present disclosure is generally related to a bot development system that facilitates flexible management and development of bot applications (e.g., bot packages) using pre-configured asset packages and based on features and functionalities provided by a bot development interface. For example, a bot development system can provide an asset development interface that enables a user of a computing device to develop various types of bot packages by adding and/or modifying asset packages in accordance with one or more embodiments described herein. The bot development system may provide interactive features that enable a user to add and remove asset packages (e.g., pre-packaged asset packages) to and from bot packages without interrupting or otherwise disrupting other functionalities of the bot packages. The bot development system further facilitates presentation of interactive views that enable a user to modify properties and other features of respective actions and assets using an intuitive and user-friendly dialog interface. Moreover, the bot development system provides features and functionality related to protecting data of the bot packages as well as preserving digital rights associated with distribution and reuse of the bot packages themselves.
As an illustrative example, in one or more embodiments, a bot development system can provide a presentation of an asset package including a dialog of one or more bot actions that are consumable within a bot package. The bot development system can detect a selection of an edit element presented via a graphical user interface within the presentation of the asset package. The bot development system can further present an action package showing an authoring view and a property view showing features and other characteristics of one or more bot actions within a framework of the asset package. As will be discussed in further detail below, the bot development system may provide various features and tools for modifying these features and characteristics within the authoring view and/or property view. In one or more embodiments, the bot development system can facilitate incorporation of the action package within the framework of the asset package, which may be consumed within a framework of the bot package.
The present disclosure includes a number of practical applications that provide benefits and/or solve problems associated with managing asset packages as part of a process related to creating, modifying, or otherwise developing functions of a bot package. Some illustrative examples of various applications and benefits will be described herein. It will be understood that these benefits and associated features are described by way of example and various features and functionalities described herein may include additional benefits and applications.
As an example, in one or more embodiments, the bot development system provides an intuitive and convenient dialog interface (e.g., an asset package canvas) that provides interactive features that enables a developer to create and modify asset packages. For instance, in one or more embodiments described herein, the bot development system provides an authoring view and associated property view showing characteristics of an asset package and corresponding properties. In one or more embodiments, interacting with and modifying various properties can cause the bot development system to modify corresponding features and characteristics of the asset package within the authoring view. Alternatively, modifying one or more characteristics or code displayed within the authoring view may be transcribed to show corresponding modifications to various properties of the asset package within the property view.
In addition to providing a convenient editing interface to modify specific action characteristics, the bot development system can additionally provide access to a wide variety of asset packages to incorporate within a framework of a bot package. By way of example, the bot development system can provide access to a collection of primitive assets (e.g., pre-packaged assets already incorporated within a bot development system) and third-party developed asset packages. In addition, the bot development system can provide access to modifiable asset packages as well as adaptive cards that may be incorporated within a framework of a bot package.
As noted above, the bot development system can facilitate incorporation of the asset package(s) into a new or existing framework of a bot package. For example, as will be discussed in further detail below, the bot packages may present an interface that enables the bot packages to receive and consume asset packages of a compatible class and having a compatible mounting interface. Further, the bot development system presents a dialog interface that enables a developer to add and/or modify asset packages that follow a compatible configuration that both enables pre-packaged assets to be added to an asset package while also enabling the new and/or modified asset package(s) to be consumed by the bot system.
In addition to the above, the bot development system can implement one or more security measures related to providing selective access and protecting digital rights associated with content of the bot packages. For example, in one or more embodiments, a bot package may include encrypted content that is selectively accessible to individuals and associated computing devices that have authorization to access the encrypted content. This provides features and functionality that enables individuals and organizations to protect assets (e.g., data) included within the respective bot packages. In addition, this enables individuals and organizations to selectively license bot packages to individuals for variable periods of time.
As illustrated in the foregoing discussion, the present disclosure utilizes a variety of terms to describe features and advantages of the systems described herein. Additional detail is now provided regarding the meaning of some example terms.
For example, as used herein, a “bot,” “bot application,” or “bot package” may refer interchangeably to a program or application that is configured to perform one or more tasks. In one or more embodiments described herein, a bot package refers to software or a mix of hardware and software. In one or more implementations described herein, a bot package refers specifically to a conversational bot, including a text-driven chat bot or a voice-driven chat bot. In one or more embodiments, the conversational bot refers to an artificial intelligence (AI) bot that has been trained to process natural language and simulate human interactions using natural language processing (NLP). As will be discussed in further detail below, a bot package may include any number of asset packages having one or more associated actions and/or tasks that the bot is trained to implement.
As used herein, a “bot development system” may refer to a software service, such as a software development kit (SDK) that provides a variety of tools that enable developers to create, modify, or otherwise develop bots and associated asset packages that are capable of communicating across various channels (e.g., websites, applications) and devices (e.g., personal computers, mobile devices, home-based voice assistants). As noted above, the bot development system may be configured to develop bots capable of conducting auditory communications, text communications, or a variety of both. Additional information in connection with features and functionality of the bot development system in connection with developing and incorporating asset packages within bot packages is provided below in connection with example implementations.
As noted above, a bot package may include any number of asset packages. As used herein, an “asset package” (or more simply, “asset”) may refer to a set of one or more actions including instructions that are executable by the bot package to perform various tasks defined by the asset package(s). For example, an asset package may refer to a subset of features and functionality of the bot package contained within a specific package. An asset package may include a bundle of language understanding (LU) and/or language generation (LG) files. One or more action components included within an asset package may refer to one or more LU or LG files that provide a discrete feature of functionality of the asset package. As will be discussed in further detail below, an asset package may refer to a variety of package types including, by way of example, primitive assets (e.g., pre-packaged assets incorporated within a software package of the bot development system), third-party assets, and various custom asset packages. The asset packages may also refer to modified asset packages as well as adaptive cards. An adaptive card may refer to an object or mechanism to describe user interface elements in a way that the elements can be rendered within a variety of application interfaces. For instance, an adaptive card may refer to a single block or user interface that could appear within an application interface and may include one or more input elements associated with corresponding instructions for executing any number of actions.
As will be discussed in further detail below, an asset package may include any number of actions or action packages defined therein. As used herein, an action package may refer to a discrete component of an asset package including instructions executable by a bot to perform a corresponding task or action. Indeed, action packages may include discrete components of the asset package including, by way of example and not limitation, triggers, prompts, and any other executable action performable by a bot package. In one or more embodiments, the action packages refer to adaptive cards (or may include one or more adaptive cards), which may refer to programmable and customizable graphical elements having one or more interactive inputs that are displayable within a graphical user interface of an application.
As used herein, an asset package may be presented via a dialog interface showing one or more views of the asset package (or discrete actions of the asset package). As will be discussed in further detail herein, the views of the asset package may include a display of various properties and characteristics of the asset package (and discrete components thereof). By way of example, a dialog interface may show an authoring view that presents a hierarchy or flow of components (actions) that make up one or more asset packages. As another example, a dialog interface may include a property view showing properties and other characteristics of the asset package and/or specific actions that make up the asset package. Further information in connection with these views will be discussed in further detail below in connection with the figures showing example implementations.
Additional detail will now be provided regarding systems, methods, and computer-readable media described in relation to illustrative figures portraying example implementations of the bot development system. For example,
The server device(s) 102 may include a bot development system 108. The bot development system 108 may include an authentication manager 109 thereon. The server device(s) 102 may additionally include a data storage 110 having asset packages 112 (e.g., primitives and other pre-packaged asset packages) accessible to the bot development system 108. Also shown in
While
As an illustrative example, in one or more embodiments, the bot development application 114 refers to a software application configured to generate and display various views of one or more assets via a graphical user interface showing features and functionalities described herein. Alternatively, in one or more embodiments, the bot development app 114 may refer to a web browser that accesses an interface provided by the bot development system 108 including tools and features related to developing bot packages and/or asset packages. Accordingly, while one or more embodiments refer to implementations that involve a bot development system 108 that provides a presentation of asset packages showing authoring view and/or property views of various asset packages, features and functionality of the bot development system 108 described herein in connection with the example environment 100 shown in
The respective devices 102-106 may refer to a variety of computing devices. For example, the client device 104 may refer to mobile devices such as a mobile telephone, a smartphone, a personal digital assistance (PDA), a tablet, or a laptop. Additionally, or alternatively, the client device 104 may refer to a non-mobile device such as a desktop, computer, server device, or other non-portable computing device. The server device(s) 102 and third-party server device(s) 106 may similarly refer to various types of computing devices, such as network devices on a cloud computing system or other distributed network of devices. Each of the devices illustrated in
As will be discussed in further detail below, the bot development system 108 can provide a dialog interface showing a presentation of one or more asset packages via a graphical user interface of the client device 104. For example, in one or more embodiments, the bot development system 108 and/or bot development application 114 provides an interactive interface (e.g., a dialog interface) showing a framework for a conversational bot including asset packages having discrete actions that make up the respective asset packages. In one or more embodiments, the bot development system 108 causes the client device 104 to provide a display of an asset package including various interactive elements that enable a user of the client device 104 to create new asset packages, modify existing asset packages, and otherwise develop asset packages for incorporation within an associated bot package.
As mentioned above, the bot development system 108 may include an authentication manager 109 implemented thereon. The authentication manager 109 may provide features related to securing data for a corresponding asset package(s). For example, in accordance with one or more embodiments described herein, an asset package may include a manifest portion and a content portion. The manifest portion may include publicly accessible information, such as a name of a file, an identifier of a developer, contact information, licensing information, and an identifier of an authentication server. The manifest may be used to access various information about an asset package without granting full access to content of the asset package. In one or more embodiments, the manifest refers to an extensible markup language (XML) file stored in conjunction with additional encrypted content of an associated asset package. Moreover, in one or more embodiments, the manifest is digitally signed to prevent modification or tampering of the manifest and/or content of the asset package(s).
In addition to the manifest, the asset package(s) may include encrypted content including additional features and characteristics of the asset package(s). For example, the encrypted content may include commands, action components, and any functional components of the asset package(s). The encrypted content may be encrypted using any of a variety of conventional encryption techniques, such as standard industry digital rights management (DRM) packaging. In addition, a developer of the asset package(s) may utilize any of a number of authentication services to encrypt the asset content as well as provide selective access to the content of the asset package(s).
The authentication manager 109 may protect or otherwise limit access to encrypted content of one or more asset packages in a variety of ways. For example, in one or more embodiments, the authentication manager 109 enables a developer or a creator of an asset package to restrict access to a select one or more users. For instance, where an organization uses a bot package unique or otherwise specific to the organization (e.g., a timecard reporting bot), the organization may have a vested interest in maintaining functionality of the content of the various packages included within the bot.
In this and other examples, the asset package may include encrypted content, but be made available via a public, open-source, or otherwise less restricted platform for developing and/or distributing bot packages generally. By encrypting the content of the asset package, the organization may provide access to the package file to anyone including the ability to read the unencrypted manifest, but limit access to the encrypted content so that only those users and/or associated computing devices can view specific content (e.g., property view, authoring view), incorporate the asset package within the framework of a bot package, and/or execute the asset package or associated bot package on an authorized computing device.
In addition to limiting access to the specific content that makes up the asset package, the authentication manager 109 may additionally limit access to content including data or digital assets linked or otherwise called upon at runtime by an asset package. For example, where an asset package calls on a particular library, file, or other data asset that is restricted to individuals associated with a particular organization, encryption of the asset package may provide a level of protection against unauthorized access of the sensitive data asset(s). In one or more embodiments, the authentication manager 109 performs one more additional authentication checks to ensure that a user of the asset package has access to the sensitive data asset(s) linked or otherwise indicated by the bot package. For example, the authentication manager 109 may authenticate that a user not only has access to content of the asset package, but also authenticate that the user has permission to access the data asset(s) linked or called on by the asset package.
Under a similar framework, the authentication manager 109 may limit access to content of an asset package and/or bot package to those who have a valid license for the asset package/bot package. For example, as mentioned above, the manifest may include licensing information and/or authentication information that would enable a creator or owner of an asset package to restrict access to users who have a valid license and access to security keys that enable individuals and other entities to access the asset package for some period of time (as defined by the license). Thus, a user may download an asset file and view information from the manifest, but be restricted from accessing the encrypted content of the asset file until obtaining a valid license.
The authentication manager 109 may perform one or more authentication checks at a number of different points in the workflow of developing, accessing, and executing bot packages and associated asset packages. For example, the authentication manager 109 may perform an authentication check when the asset package is added to a package management platform and made accessible to download by users of the platform. As another example, the authentication manager 109 may perform an authentication check prior to providing access to any of the content of the asset package or bot package (or data assets called on by the asset or bot package(s)). For instance, the authentication manager 109 may perform an authentication check prior to providing an authoring and/or property view as will be discussed in further detail below. As another example, the authentication manager 109 may perform an authentication check every time a bot package is launched. Each of these checks prevents non-authorized distribution of packages, non-authorized viewing of encrypted content, and non-authorized execution of packages within a bot application.
Additional detail will now be discussed in connection with example dialog composer interfaces that the bot development system 108 and/or bot development application 114 can present via a graphical user interface of a computing device (e.g., client device 104). For example,
As shown in
As shown in
As further shown in
As shown in
In this example authoring view 304, the asset package 308 may include a first action component 310a including an if/else action. In this example, the first action component 310a may include an action for determining whether a user exists (e.g., whether a user is present and capable of interfacing with the bot application) and whether the user will receive any responses or text provided via a chat interface. In one or more embodiments, the action component 310a (e.g., the action box or other icon representative of the action component) may include more comprehensive instructions that are executable by a bot application. For example, in one or more embodiments, the action component 310a may include code in a particular language (e.g., Javascript, C#) and/or having a specific schema or format showing specific instructions that are executable by the bot package to perform a respective action. In this example, the action component 310a may include a link (e.g., user.greeted) that references other instructions having a format or schema that is compatible within the framework of the asset package 308. These instructions may be accessible via a local storage of the client device 202, a remote data storage (e.g., data storage 110) associated with the bot development system 108, and/or a record of third party asset packages maintained on a third party server device (e.g., third party server device(s) 106). In one or more embodiments, the link is a uniform resource locator (URL) that references a remote site or file having instructions that may be incorporated within the framework of the corresponding action component.
As shown in
As further shown in
Indeed, as used herein, an “edit element” or “edit icon” may interchangeably refer to any graphical element or icon corresponding to a location within a dialog for an asset package that is compatible with a set of corresponding modifications. For example, an edit icon may include an add icon 312 as discussed above that corresponds to a location within the dialog where an asset package or discrete action package may be added within the framework of the dialog. Another example edit element may refer to an action box corresponding to an action package. For example, as mentioned above in connection with
As mentioned above,
It will be noted that
As shown in
As shown in
As further shown, in one or more embodiments, the bot development system 108 provides a “Custom” icon referring to custom asset packages that may have been created, modified, or otherwise developed by a user of the bot development system 108. For example, while not specifically shown in the figures, where a user were to create and save a new asset package or modify an existing asset package, the resulting asset package may be added to a list of available custom packages that may be added to the framework of an asset package and/or bot package. Accordingly, the bot development system 108 can provide a listing of consumable assets from a variety of asset-types including primitives, third-party assets, customizable assets, and application-specific asset packages. As an illustrative example, where a user creates or modifies an asset package similar in accordance with the implementation(s) discussed above in connection with
As shown in
It will be noted that the bot development system 108 can obtain the listing of asset packages 406a from any number of sources or repositories. For example, some or all of the icons from the list of asset packages 406a may include primitives that are pre-configured and native to the bot development system 108 and/or bot development application 114. In this example, selected asset package can be obtained from a local storage of a client device and/or a data storage (e.g., data storage 110) on a server device. In addition, or as an alternative, one or more of the asset packages may refer to third-party asset packages (e.g., third-party asset packages 116) accessible via a third party server device.
In one or more embodiments, the bot development system 108 provides a unique listing of asset packages based on one or more characteristics of the relevant bot package and/or asset package. For example, where the bot package refers to a specific type of bot that utilizes a particular scheme or format, the displayed listing of assets may be different than those presented for another bot package (or other asset package) having a different schema and/or format. Moreover, the listing of asset packages may differ depending on the application within which the asset package is to be incorporated. For example, where a first bot package is being run in conjunction with Teams, the bot development system 108 may provide a listing of asset packages that are pre-configured as compatible with Teams. Alternative, where a second bot package is being run in conjunction with Excel, the bot development system 108 may provide a different listing of asset packages that are pre-configured as compatible with Excel. Moreover, where an asset package is applicable universally to multiple different applications (e.g., such as may be the case with an adaptive card), the asset package may be included within multiple lists presented in connection with different bot packages configured to run in conjunction with different applications.
As shown in
As shown in
As shown in
In this example, a user may desire to select an “Add Passcode” feature to supplement previously incorporated features of the asset package 402b. Thus, based on detecting a selection of an “Add Passcode” element, the bot development system 108 can provide an updated third iteration of the asset package 402c showing an additional set of actions 410 for another asset package. As shown in
As noted above, selecting any of the pre-configured asset icons can cause a corresponding set of action(s) or asset package(s) to be incorporated within a framework of the asset package (e.g., asset package 402c). For example, in one or more embodiments, the bot development system 108 provides a listing of asset packages having a particular asset class that is compatible with the corresponding bot package. Thus, in one or more embodiments, the bot development system 108 provides a listing of eligible asset packages based on those asset packages including configuration information that facilitates mounting the asset package within a framework of the bot package and which includes additional instructions to autoload any actions included as part of the asset package. In one or more embodiments, the asset package and bot package are configured with compatible interfaces, which may correspond to locations of add or other edit icons displayed within the dialog interface. These compatible interfaces allow arbitrary components (e.g., asset packages) to facilitate mounting to the bot packages. Similarly, these interfaces allow the bot packages to mount the asset package without having a prior knowledge of the asset package itself.
As noted above, the bot development system 108 can facilitate modifying one or more asset packages that have been previously added or otherwise integrated within a framework of a bot package. For example, in one or more embodiments, the bot development system 108 facilitates interaction with one or more views (e.g., dialog menu view, authoring view, property view) to modify various characteristics of the bot components.
To illustrate,
In this example, an action box 508a is shown indicating a send response command of the greeting bot asset package indicating a send response command of a bot application responsive to one or more conditions or other triggers. As shown in
As shown in
It will be noted that
As noted above, a user may compose a response for the bot application within the property icon 510a. For example, as shown in
The bot development system 108 can translate content added to one or more of the authoring view or property view in a number of ways. For example, in one or more embodiments, the bot development system 108 may maintain a template for the asset package including metadata and other content that corresponds to the content provided via the fields of the authoring view 504 and property view 506. Accordingly, where a change is made to a field within the authoring view 504 or the property view 506, the change may be applied to a field within an asset template, which causes the change to be applied to both the authoring view 504 and the property view 506. Thus, in one or more embodiments, the fields presented within the authoring view 504 and property view 506 correspond to fields within an asset template.
It will be understood that many developers may modify an asset package by adding content to the property view 506 and allowing the bot development system 108 to translate the content within the instructions shown within the authoring view 504. Nevertheless, for more skilled developers or various developers having a certain amount of experience in a particular schema or format, the authoring view can provide a medium for making changes to the asset package and creating components of the asset package themselves. Accordingly, while one or more embodiments described herein provide various tools for simplifying development by selecting and adding pre-packaged assets within an asset framework, a user may nonetheless create components from scratch using more traditional coding techniques by modifying properties displayed directly within the authoring view. Moreover, while this type of development may involve some coding, it is nonetheless more simple and user-friendly than conventional development techniques that involve modifying code of a bot package directly as modifications made within the authoring view are limited to modifications to the specific action or asset package.
Turning now to
For example,
As further shown, the series of acts 600 includes an act 620 of detecting a selection of an edit element presented via the presentation of the asset package. In one or more embodiments, the act 620 involves detecting a selection of an edit element presented via the graphical user interface within the presentation of the asset package.
As further shown, the series of acts 600 includes an act 630 of authenticating access to content of an action component pre-configured to be incorporated within the asset package. For example, in one or more embodiments, the act 630 involves determining that the computing device is authorized to access content of an action component that is configured to be incorporated within a framework of the asset package.
As further shown, the series of acts 640 includes generating a presentation of an action component including an authoring view and a property view based on the detected selection. For example, in one or more embodiments, the act 640 involves generating, based on the selection of the edit element and based on determining that the computing device is authorized to access content of the action component, a presentation of an action component including an authoring view showing an action icon within a framework of the asset package and a property view showing one or more properties of the action component.
As further shown, the series of acts 600 includes an act 650 of incorporating the action component within the asset package. For example, in one or more embodiments, the act 650 may involve incorporating the action component within the framework of the asset package. In one or more embodiments, the series of acts 600 further includes incorporating the asset package within the bot package, the bot package including a plurality of previously incorporated asset packages.
In one or more embodiments, the asset package includes a pre-configured asset package previously authenticated by the computing device and incorporated within the framework of the bot package. In one or more embodiments, the series of acts 600 further includes re-incorporating a modified version of the asset package based on one or more modifications made to the action package within one of the authorizing view or the property view of the presented action package.
In one or more embodiments, the edit element includes an add icon that prompts addition of a new action component to the asset package based on a location of the add icon presented within the presentation of the asset package. The series of acts 600 may include, in response to detecting the selection of the add icon, providing a listing of indicators corresponding to pre-configured action packages configured to be incorporated within the framework of the asset package. In one or more embodiments, the pre-configured action packages include a first one or more asset packages having content that is publicly available and a second one or more asset packages having encrypted content that is selectively accessible to computing devices that are authorized to access encrypted content from the second one or more asset packages.
In one or more embodiments, the pre-configured action packages from the listing of indicators includes at least one local action package stored on a local storage of the computing device and/or at least one third-party action package retrievable from a collection of remotely maintained asset packages. In one or more embodiments, the pre-configured action packages further includes at least one icon corresponding to an adaptive card, the adaptive card including an interactive program configured to be displayed via an application interface associated with an application running the bot package.
In one or more embodiments, the edit element includes a selectable icon representative of one or more action components already included within the framework of the asset package. In one or more embodiments, the series of acts 600 includes detecting a modification to information displayed within the authoring view of the presented action package and causing the modification to be applied to corresponding information displayed within the property view of the presented action package. In one or more embodiments, the series of acts 600 includes detecting a modification to information displayed within the property view of the presented action package and causing the modification to be applied to corresponding information displayed within the authoring view of the presented action package.
As further shown, the series of acts 700 may include an act 720 of detecting selection of an edit element from the interactive elements. For example, in one or more implementations, the act 720 may involve detecting selection of an edit element from the interactive elements presented via the graphical user interface.
As further shown, the series of acts 700 may include an act 730 of providing a listing of pre-configured asset packages. For example, in one or more embodiments, the act 730 involves providing, in response to detecting the selection of the edit element, a listing of pre-configured asset packages that are known to be compatible within the framework of the bot package.
As further shown, the series of acts 700 includes an act 740 of detecting a selection of a first pre-configured asset package from the listing of pre-configured asset packages. For example, in one or more embodiments, the act 740 involves detecting a selection of a first pre-configured asset package from the listing of pre-configured asset packages, the first pre-configured asset package having encrypted content that is selectively accessible to one or more computing devices that are authorized to access the encrypted content.
As further shown, the series of acts 700 includes an act 750 of incorporating the first pre-configured asset package within a conversational bot package. For example, the act 750 may involve incorporating the first pre-configured asset package within a framework of the conversational bot package.
In one or more embodiments, the series of acts 700 may include determining that the computing device is authorized to access content of the first pre-configured access package. Further, in one or more embodiments, the series of acts 700 may include generating, based on determining that the computing device is authorized to access content of the pre-configured asset package, a presentation of an action component of the first pre-configured action package, the presentation of the action component including an authoring view showing an action icon within a framework of the first pre-configured action package and a property view showing properties of the action component. One or more features of the action component may be added to the first pre-configured asset package based on edits made to the authoring view or the property view.
In one or more embodiments, the edit element includes an add icon presented via the presentation of the asset package. In one or more implementations, the series of acts 700 includes, in response to detecting the selection of the edit element, providing a listing of pre-configured asset packages that are known to be compatible within the framework of the bot package. In one or more embodiments, generating the presentation of the action component includes providing the authoring view showing the action icon corresponding to a selected asset package from the listing of pre-configured asset packages and providing the property view showing one or more properties of the selected asset package. In one or more embodiments, the pre-configured asset packages include at least one local action package stored on a local storage of the computing device and at least one third-party action package retrievable from a collection of remotely maintained asset packages.
In one or more embodiments, the series of acts 700 includes detecting a modification to information displayed within the authoring view of the presented action package. The series of acts 700 may also include causing the modification to be applied to corresponding information displayed within the property view of the presented action package. In one or more embodiments, the series of acts 700 may include detecting a modification to information displayed within the property view of the presented action package and causing the modification to be applied to corresponding information displayed within the authoring view of the presented action package.
The computer system 800 includes a processor 801. The processor 801 may be a general-purpose single or multi-chip microprocessor (e.g., an Advanced RISC (Reduced Instruction Set Computer) Machine (ARM)), a special purpose microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, etc. The processor 801 may be referred to as a central processing unit (CPU). Although just a single processor 801 is shown in the computer system 800 of
The computer system 800 also includes memory 803 in electronic communication with the processor 801. The memory 803 may be any electronic component capable of storing electronic information. For example, the memory 803 may be embodied as random access memory (RAM), read-only memory (ROM), magnetic disk storage media, optical storage media, flash memory devices in RAM, on-board memory included with the processor, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) memory, registers, and so forth, including combinations thereof.
Instructions 805 and data 807 may be stored in the memory 803. The instructions 805 may be executable by the processor 801 to implement some or all of the functionality disclosed herein. Executing the instructions 805 may involve the use of the data 807 that is stored in the memory 803. Any of the various examples of modules and components described herein may be implemented, partially or wholly, as instructions 805 stored in memory 803 and executed by the processor 801. Any of the various examples of data described herein may be among the data 807 that is stored in memory 803 and used during execution of the instructions 805 by the processor 801.
A computer system 800 may also include one or more communication interfaces 809 for communicating with other electronic devices. The communication interface(s) 809 may be based on wired communication technology, wireless communication technology, or both. Some examples of communication interfaces 809 include a Universal Serial Bus (USB), an Ethernet adapter, a wireless adapter that operates in accordance with an Institute of Electrical and Electronics Engineers (IEEE) 802.11 wireless communication protocol, a Bluetooth® wireless communication adapter, and an infrared (IR) communication port.
A computer system 800 may also include one or more input devices 811 and one or more output devices 813. Some examples of input devices 811 include a keyboard, mouse, microphone, remote control device, button, joystick, trackball, touchpad, and lightpen. Some examples of output devices 813 include a speaker and a printer. One specific type of output device that is typically included in a computer system 800 is a display device 815. Display devices 815 used with embodiments disclosed herein may utilize any suitable image projection technology, such as liquid crystal display (LCD), light-emitting diode (LED), gas plasma, electroluminescence, or the like. A display controller 817 may also be provided, for converting data 807 stored in the memory 803 into text, graphics, and/or moving images (as appropriate) shown on the display device 815.
The various components of the computer system 800 may be coupled together by one or more buses, which may include a power bus, a control signal bus, a status signal bus, a data bus, etc. For the sake of clarity, the various buses are illustrated in
The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof, unless specifically described as being implemented in a specific manner. Any features described as modules, components, or the like may also be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a non-transitory processor-readable storage medium comprising instructions that, when executed by at least one processor, perform one or more of the methods described herein. The instructions may be organized into routines, programs, objects, components, data structures, etc., which may perform particular tasks and/or implement particular data types, and which may be combined or distributed as desired in various embodiments.
The steps and/or actions of the methods described herein may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is required for proper operation of the method that is being described, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
The term “determining” encompasses a wide variety of actions and, therefore, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.
The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. Additionally, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. For example, any element or feature described in relation to an embodiment herein may be combinable with any element or feature of any other embodiment described herein, where compatible.
The present disclosure may be embodied in other specific forms without departing from its spirit or characteristics. The described embodiments are to be considered as illustrative and not restrictive. The scope of the disclosure is, therefore, indicated by the appended claims rather than by the foregoing description. Changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.