Toolcast Management System
Patent Information
- Application Number
- JP2023565554
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-05-06
- Filing Date
- 2022-05-03
- Publication Date
- 2025-05-08
- Estimated Expiration
- 2042-05-03
AI Technical Summary
Existing website building systems lack effective tools for providing interactive and adaptive guidance to users, especially in complex graphical user interfaces, leading to inefficiencies in learning and using the systems.
A Toolcast management system that utilizes media formats like active tutorials, documentation, and intra-user messaging to provide interactive guidance, adapting to user settings and dynamically interacting with the underlying system, and supporting tools for creating, maintaining, and activating Toolcasts.
Enhances user interaction with complex websites by offering adaptive and interactive guidance, improving learning efficiency and system usability without the need for human instructors, and ensuring toolcasts remain updated with system changes.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 63 / 183,662, filed May 4, 2021, and U.S. Provisional Patent Application No. 63 / 184,809, filed May 6, 2021, both of which are incorporated by reference herein.
[0002] Technical Field The present invention relates generally to creating supporting content elements, and more particularly to websites and applications. [Background technology]
[0003] A website building system (WBS) is used by both novices and experts to create interactive websites. Existing WBSs are based on a visual editing model, and most WBSs usually provide multiple templates, which may include a complete sample website, a website section, a single page, or a section of a page.
[0004] Users of the WBS (also known as designers, subscribers, subscribing users, or site editors) may design websites, and end users of the website ("user's users") may access the websites created by the users. End users typically access the system in a read-only mode, but the WBS (and website) may allow end users to make changes to the website, such as adding or editing data records, adding talkbacks to news articles, adding blog entries to blogs, etc. The WBS may in fact allow multiple levels of users (i.e., three or more levels), and assign different permissions and capabilities to each level. Users of the WBS (particularly in a fully or partially online configuration, described in more detail herein below) may register with a WBS server, which manages users, their websites, and access by end users.
[0005] A WBS may be a stand-alone system or may be embedded within a larger editing system. A WBS may also be online (i.e., the application is edited and stored on a server), offline, or partially online (website is edited locally but uploaded to a central server for publication). A WBS may use an internal data architecture to store a WBS-based site, which may organize the internal data and elements of the site that are processed within the system. This architecture may differ from the external view of the site (e.g., as seen by an end user). The architecture also typically differs from the way HTML pages sent to a browser are organized.
[0006] For example, the internal data architecture may include additional properties for each element in a page (such as author, creation time, access permissions, links to templates, SEO (search engine optimization) related information, etc.) that are relevant to editing and maintaining the site within the WBS, but are not visible externally to end users (or even to some editing users). A WBS may implement some of its functionality (including both editing and run-time functionality) on a server or set of servers and some of its functionality on client elements. A WBS may also dynamically determine whether some functionality should be performed on the server or on the client platform.
[0007] A WBS typically handles the creation and editing of visually designed applications (such as websites) that are composed of pages, containers, and components. Pages are represented individually and may contain components. Components may include containers and atomic components. Reference is made to FIG. 1, which is a schematic block diagram of a website building system (WBS) 2 that may be used to build a website 3 according to some explicit embodiments of the present invention. The WBS 2 may be used to build, author, edit, and / or generate the website 3 that may include pages 4 that may include components 5 (e.g., text, images, videos).
[0008] A WBS may also support hierarchical organization of components using various types of container components, including atomic components (text, image, shape, video, etc.) and other components (e.g., standard containers, single page containers, multi-page containers, gallery containers, etc.). Subpages contained within a container are called minipages, each of which may contain multiple components. Some container components may only display one of the minipages at a time, while other containers may display multiple pages simultaneously.
[0009] A component may have no content or it may have internal content. An example of the first category is a star-shaped component that has no internal content (but has color, size, position, attributes, and other parameters). An example of the second category is a text paragraph component, whose internal content includes the inner text, as well as font, formatting, and layout information (which are also part of the content, rather than being attributes of the component). Of course, this content may vary from instance to instance of the text paragraph component. Components that have content are often called fields (e.g., "text fields").
[0010] Pages may use templates: general page templates or component templates. Specific examples of templates include the use of an application master page that contains components that are duplicated on all other standard pages, and the use of an application header or footer (that repeats on every page). Templates may be used for complete pages or for page sections. The WBS may provide inheritance between templates, pages, or components, which may include multi-level inheritance, multiple inheritance, and diamond inheritance (i.e., A inherits from B and C, and both B and C inherit from D).
[0011] The visual arrangement of components within a page is called a layout. A WBS may also support dynamic layout processing, which is a process in which editing a given component (or other changes that affect the given component, such as externally driven content changes) may affect other components, as further described in U.S. Patent No. 10,185,703, entitled "Website Design System Integrating Dynamic Layout and Dynamic Content," issued on January 22, 2019, which is co-owned by the applicant and incorporated herein by reference.
[0012] The WBS may be extended using add-on applications such as third party applications and components thereof (TPAs), list applications (e.g., as described in U.S. Patent Publication No. 2014 / 0282218, entitled "WBS Integrating Data Lists with Dynamic Customization and Adaptation," published on September 18, 2014, which is co-owned by the applicant and incorporated herein by reference), and WBS configurable applications (e.g., WCAs, as described in U.S. Patent Publication No. 2020 / 0151266, entitled "System And Method for Creation and Handling of Configurable Applications for Website Building Systems," published on May 14, 2020, which is co-owned by the applicant and incorporated herein by reference). These third party applications and list applications may be added and integrated into the designed website.
[0013] Such third-party applications and list applications may be purchased (or otherwise obtained) through several distribution mechanisms, such as from an application store (whether integrated into the WBS market store or external thereto), pre-included in the WBS design environment, or directly from the third-party application vendor.
[0014] Third party applications may be hosted on the WBS vendor's own servers, on a third party application vendor's servers, or on a fourth party server infrastructure.
[0015] The WBS may also allow for the attachment of procedural code to some or all of the entities in the system. Such code may be written in a standard language (such as JavaScript), an extended version of a standard language, or a language proprietary to the particular WBS. The executed code may reference APIs provided by the WBS itself or by external providers. The code may also reference internal structures and objects of the WBS, such as pages, components, and their attributes.
[0016] Procedural code elements may be activated via event triggers, which may be associated with user activity (such as a mouse move or click, a page transition, etc.), activity associated with other users (such as an underlying database or a particular database record updated by another user), system events, or other types of conditions. The use of such procedural code elements is further described in U.S. Patent No. 10,209,966, issued February 19, 2019, entitled "Custom back-end functionality in an online website building environment," which is commonly owned by the applicant and incorporated herein by reference.
[0017] The activated code may be executed within a client element of the WBS on a server platform, or a combination of the two, or by using a dynamically determined execution platform. Such a system is described in U.S. Patent Publication No. US2018 / 0293323, published October 11, 2018, entitled "System and Method for Smart Interaction Between Website Components," which is commonly owned by the applicant and is incorporated herein by reference.
[0018] Typical site creation may be based on a number of models, including a visual editing model (where a user edits a previously created site) and an automated site generation model, or a combination thereof as illustrated in FIG. 2 and described in U.S. Patent No. 10,073,923, entitled “System and Method for the Creation and Update of Hierarchical Websites Based on Collected Business Knowledge,” issued on September 11, 2018, which is commonly owned and incorporated herein by reference.
[0019] It is understood that the acronym WBS may be used throughout the specification to denote a website construction system. Figure 2 shows a system 100 including a typical WBS 2 in communication with client systems operated by WBS vendor staff 61, site designers 62 (i.e., users), site users 63 (i.e., users of users), and external systems 70. The WBS 2 may further include a WBS site manager 10, an object marketplace 15, a WBS RT (run-time) server 20, a WBS editor 30, a site creation system 40, and a WBS content management system (CMS) 50.
[0020] In the visual editing model, users (designers) edit a site based on one or more website templates. A WBS provider may offer multiple site (or other) templates, each of which may contain a complete sample website, a website section, a single page, or a section of a page. Users may have the option to start with an empty site (essentially a "blank page" template), but will typically start with an actual site template.
[0021] A WBS provider may offer site templates ranging from very general (e.g., mobile sites, e-stores) to more specific (e.g., law firms, restaurants, florists) to very specific (e.g., commercial real estate law firms or Spanish tapas restaurants). Such templates are typically stored in a repository accessible to users of the WBS and are typically categorized according to business type, subtype, or industry. Templates may also be created (and categorized) according to style, color range, or other parameters rather than simply according to business type. Site templates may be extended with additional (usually back-end) features, services, and code to become fully-fledged vertical solutions integrated with the WBS.
[0022] The site may be converted / rendered into HTML for display, however, in some embodiments, the components may be implemented and / or rendered using additional technologies, such as locally installed or downloaded code, plugins, rendering frameworks (such as React), graphic display frameworks (such as SVG), or other methods.
[0023] Thus, a user's initial experience when creating a site using the WBS visual editor may typically be for the user to select a template (e.g., according to a style or industry type / subtype), possibly a blank template, and then edit the template in the visual editor, including editing content, logic, layout, and attributes. Such editing may include (among other things) adapting the template and its elements to the specifics of the user's business. The user may then publish the modified site.
[0024] In the site generation model, the WBS generates an initial site for the user based on a selected template, which may be modified by filling in general elements of information, allowing follow-up editing of the generated site. This filling is required because various information (such as the business name or a description of the management team) is included in multiple places within the pages of the template. Thus, the user may need to change the business name (for example) in multiple places throughout the template.
[0025] Furthermore, some template elements (e.g. a general product page) may appear multiple times, with each instance displaying details of a different instance of the underlying entity (e.g. a different product offered on the site). Such multiple instances may be specified manually (e.g. details of different people on a company's management team) or may be dynamically derived from an external database (e.g. product details from a "products for sale" database). Such configurations are often known as "Repeaters".
[0026] Templates may also include fields. For example, the WBS may allow a template designer to specify fields (also known as "placeholders") for insertion of values within the template, such as [CompanyName], [ProductName], [ProductPrice], etc. A user may also specify values for fields defined in the selected template for the website.
[0027] A WBS may allow users to enter not only simple or complex values (e.g., text and images), but also additional (non-field) information such as selection of included pages or site areas, colors, style information, links, formatting options, website display options, and decorative elements (e.g., borders and backgrounds).
[0028] The WBS may also allow the user to enter some of this additional information before selecting a template and use this information to assist in the selection of the template (e.g., by narrowing the set of suggested templates). For example, a user may select a particular general color scheme (e.g., pastel) or style (e.g., business / formal), and the system may then use this selection to narrow the set of suggested templates.
[0029] The WBS may also display a series of views or questionnaires to allow the user to enter values or selections (both for the defined fields and for the additional information described above). The WBS may further create connections (or bindings) between multiple instance elements of a template (as described herein above) and internal or external databases that provide the data instances used to generate the displayed instances.
[0030] Once a template has been selected and its fields and additional information specified (e.g., through a questionnaire or through binding to a data source), the WBS can generate a website containing the combined information. The user can then publish the site (through the WBS or otherwise).
[0031] The WBS may support SEO reviews of applications built on the WBS, as described in U.S. Patent Publication No. US2019 / 0026280, entitled "System and method for integration of search engine optimization in website building systems," published on January 24, 2019, which is co-owned by the applicant and incorporated herein by reference.
[0032] WBS may also perform semi-automatic site creation using a different model described in U.S. Patent No. 10,073,923, in which the system collects information about the user and the user's website requirements from multiple sources, which may include, for example, a questionnaire completed by the user, existing user presence (such as existing websites or social media presence), industry sources (such as general trade websites), offline information, and an internal system repository that provides information about a particular industry, such as basic template information for a particular industry (such as lawyers, restaurants, plumbers, graphic designers, etc.), which may be refined for a particular industry (e.g., differentiating between real estate lawyers and personal injury lawyers).
[0033] The WBS may also collect external information from other sites, both internal and external to the WBS. Such information may influence, for example, the selection of surveys and layout elements offered, defaults suggested, etc. Such information may also be collected on a statistical or summary basis, typically to avoid revealing information belonging to any single user and to protect users' privacy, anonymity, and legal rights (such as copyright). Such information may be found based on information provided by users, which may be direct (e.g., existing website addresses) or indirect (trade names and geographic addresses that can be used to find information about a company).
[0034] The collected information is analyzed and placed into a repository of content elements that are then mapped onto layout elements that present content from the content elements and combine them to form the site. The process of mapping, selecting, and combining layout elements may be fully automatic or semi-automatic (i.e., involving user interaction).
[0035] To support the above functions, the WBS may maintain a set of repositories that are typically stored on one or more servers or server farms. Such repositories may typically include various related repositories such as a user information / profile repository, a WBS (WBS) component repository, a WBS site repository, a business intelligence (BI) repository, an edit history repository, a third-party application store repository, etc. The system may also include site / content creation related repositories such as a survey type repository, a content element type repository, a layout element type repository, a design kit repository, a completed survey repository, a content element repository, a layout element repository, a rules repository, a family / industry repository, etc. A description of these repositories is provided in U.S. Pat. No. 10,073,923. Summary of the Invention
[0036] According to a preferred embodiment of the present invention, there is provided a system for creating and displaying toolcasts, the system comprising: a processor; and a toolcast management system executing on the processor in communication with an underlying system, the toolcast management system creating, displaying and updating at least one toolcast to provide media guidance to a user of the underlying system according to a toolcast management interface with the underlying system and an interaction between the user and the at least one toolcast. The toolcast management system includes an interface module that interfaces with the underlying system and detects at least one of objects, data, activities and events of the underlying system to be recorded in a recording phase of the at least one toolcast, a TC (toolcast) creator that records, generates and edits the at least one toolcast according to at least an output of the interface module, and a TC (toolcast) player that plays back the at least one toolcast while interacting with a user.
[0037] Additionally, in accordance with a preferred embodiment of the present invention, the underlying system is integrated with a Toolcast Management System.
[0038] Furthermore, in accordance with a preferred embodiment of the present invention, the at least one toolcast is at least one of an active tutorial, documentation, courseware, and intra-user messaging.
[0039] Furthermore, in accordance with a preferred embodiment of the present invention, the underlying system is at least one of a website, a website building system, and a document editing system.
[0040] Furthermore, in accordance with a preferred embodiment of the present invention, the at least one tool cast is at least one of basic and composite.
[0041] Further, according to a preferred embodiment of the present invention, the system comprises at least one of: a database for storing basic and composite toolcasts; a maintenance module for maintaining at least one toolcast when changes are made to the underlying system; a toolcast synchronizer for supporting synchronization of at least one toolcast with other related toolcasts when changes are made to the underlying system; an underlying system structure mapper for providing mapping of the underlying system's structure, associations, events, and interfaces to the toolcast management system for at least one toolcast; and an ML (machine learning) manager for collecting data from the underlying system and data regarding users and providing machine learning training and support to TC creators and TC players accordingly.
[0042] Further, in accordance with a preferred embodiment of the present invention, the TC creator includes a toolcast storyboard creator that generates a storyboard for at least one toolcast, a generative text engine that generates text for the storyboard for at least one toolcast, a UNS (Underlying System) analyzer that analyzes the elements of the underlying system and the site structure, a BI (Business Intelligence) analyzer that analyzes the Business Intelligence (BI) information collected from the underlying system, a CTC (Composite Toolcast) creator that creates composite toolcasts that include a hierarchy of the underlying toolcasts, a text-based recorder that allows the designer of at least one toolcast to create a text-based toolcast using a rich text editor, and a text-based recorder that allows the designer of at least one toolcast to record and edit the text of the toolcast. the at least one of: an audio-based recorder that enables conversion of a voice-based recorder into a toolcast file; an association manager that creates associations of toolcasts in an interfaced configuration of the toolcast management system and the underlying system; a TC(toolcast) path optimizer that determines and optimizes a flow of activity of the at least one toolcast; an edit-time recommender that provides editing hints and options to a designer of the at least one toolcast; a coverage analyzer that detects mismatches between the underlying system and the at least one toolcast according to a toolcast definition of the at least one toolcast; and a UNS(underlying system) / TC(toolcast) editor that provides integrated or combined editing of the underlying system with the at least one toolcast.
[0043] Further, according to a preferred embodiment of the present invention, the TC player comprises at least one of: a TC activator that automatically enables activation of at least one toolcast by a user; a remote user simulator that enables at least one toolcast to trigger responsive events on the underlying system by simulating a user's actions; a TC (Toolcast) control bar display that displays a toolbar to allow a user to control the display of at least one toolcast; an ACE (Assistant Content Element) display that creates UI (User Interface) elements added or extended on top of the display by the TC control bar display; and a user interaction manager that enables interaction between the at least one toolcast and the user during playback of the at least one toolcast.
[0044] Further, in accordance with a preferred embodiment of the present invention, the interface module comprises at least one of an integration interface for interfacing with an integrated underlying system, a non-integrated interface for interfacing with a non-integrated underlying system, and a UNS (Understanding System) database interfacer for interfacing with an underlying system database to provide data for analysis by the TC creator.
[0045] Furthermore, in accordance with a preferred embodiment of the present invention, at least one tool cast is a user adaptable tool cast.
[0046] Further, in accordance with a preferred embodiment of the present invention, the system also includes an additional product generator for executing at least one toolcast to generate an alternative product, an app (application) store for sharing the at least one toolcast via the app store, and a tooltip handler for adding the at least one toolcast to an existing tooltip.
[0047] Further, according to a preferred embodiment of the present invention, the maintenance module comprises at least one of a TC (toolcast) introduction agent for analyzing the version of the underlying system and collecting initial information of the underlying system structure mapper, an information collector for collecting information regarding changes to at least one toolcast element, an update analyzer for receiving information from the information collector and determining modified and non-functional toolcast elements from the at least one toolcast, a notification function for notifying at least one of the underlying system and a designer according to the output of the update analyzer, a TC (toolcast) adjustment unit for appropriately modifying non-functional elements of the at least one toolcast, and a TC (toolcast) fallback application unit for propagating the content of the at least one toolcast through alternative means.
[0048] According to a preferred embodiment of the present invention, a method is provided, the method including: creating, displaying, and updating at least one toolcast for providing media guidance to a user of the underlying system according to a toolcast management system interface with an underlying system and an interaction between the user and the at least one toolcast, the creating, displaying, and updating including interfacing with the underlying system, detecting at least one of objects, data, activities, and events of the underlying system to be recorded in a recording phase of the at least one toolcast, recording, generating, and editing the at least one toolcast according to at least an output of the detecting, and playing back the at least one toolcast while interacting with the user.
[0049] Additionally, in accordance with a preferred embodiment of the present invention, the underlying system is integrated with a Toolcast Management System.
[0050] Furthermore, in accordance with a preferred embodiment of the present invention, the at least one toolcast is at least one of an active tutorial, documentation, courseware, and intra-user messaging.
[0051] Furthermore, in accordance with a preferred embodiment of the present invention, the underlying system is at least one of a website, a website building system, and a document editing system.
[0052] Furthermore, in accordance with a preferred embodiment of the present invention, the at least one tool cast is at least one of basic and composite.
[0053] Further, in accordance with a preferred embodiment of the present invention, the method further includes at least one of storing the basic and composite toolcasts in a database; maintaining the at least one toolcast when changes are made to the underlying system; supporting synchronization of the at least one toolcast with other related toolcasts when changes are made to the underlying system; providing a mapping of the structure, associations, events, and interfaces of the underlying system to a toolcast management system for the at least one toolcast; and collecting data regarding the underlying system and users and responsively providing machine learning training and support for recording, generating, editing, and playing back the at least one toolcast.
[0054] Further, in accordance with a preferred embodiment of the present invention, recording, generating, and editing the at least one toolcast includes at least one of: generating a storyboard for the at least one toolcast; generating text for the storyboard for the at least one toolcast; analyzing elements and site structure of the underlying system; analyzing business intelligence (BI) information collected from the underlying system; creating a composite toolcast including a hierarchy of the underlying toolcasts; enabling a designer of the at least one toolcast to create a text-based toolcast using a rich text editor; enabling a designer of the at least one toolcast to record themselves and convert the recording into a toolcast file; creating an association of toolcasts in an interfaced configuration of the toolcast management system and the underlying system; determining and optimizing a flow of activity of the at least one toolcast; providing editing hints and options to the designer of the at least one toolcast; detecting mismatches between the underlying system and the at least one toolcast according to a toolcast definition of the at least one toolcast; and providing integrated or combined editing of the underlying system with the at least one toolcast.
[0055] Further, in accordance with a preferred embodiment of the present invention, playing the at least one toolcast includes at least one of: automatically enabling activation of the at least one toolcast by a user; enabling the at least one toolcast to trigger responsive events on the underlying system by simulating a user's actions; displaying a toolbar to enable a user to control the display of the at least one toolcast; creating additional or enhanced UI (user interface) elements on top of the display by displaying the toolbar; and enabling interaction between the at least one toolcast and a user during playback of the at least one toolcast.
[0056] Furthermore, in accordance with a preferred embodiment of the present invention, interfacing with the foundational system includes at least one of interfacing with an integrated foundational system, interfacing with a non-integrated foundational system, and interfacing with a foundational system database to provide data for analysis by recording, generating, and editing.
[0057] Furthermore, in accordance with a preferred embodiment of the present invention, at least one tool cast is a user adaptable tool cast.
[0058] The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of this specification, however the invention, both as to its organization and method of operation, together with its objects, features, and advantages, may best be understood by reference to the following detailed description taken in conjunction with the accompanying drawings. [Brief description of the drawings]
[0059] [Figure 1] 1 is a schematic diagram of a typical representation of a prior art website building system. [Diagram 2]1 is a schematic diagram of a prior art system for creating and updating hierarchical web sites. [Diagram 3] 1A and 1B are schematic diagrams of a toolcast management system in conjunction with an underlying system constructed and operative in accordance with the present invention; [Figure 4] 1 is a schematic diagram of a Toolcast management system integrated with a website building system, constructed and operative in accordance with the present invention; [Diagram 5] FIG. 4 is a schematic diagram of elements of the tool cast management system of FIGS. 3A and 3B, constructed and operative in accordance with the present invention. [Figure 6] 6 is a schematic diagram of elements of the interface module of FIG. 5, constructed and operative in accordance with the present invention. [Figure 7] 6 is a schematic diagram of elements of the TC creator of FIG. 5, constructed and operative in accordance with the present invention; [Figure 8] 8 is a schematic diagram of elements of the text-based recorder of FIG. 7, constructed and operative in accordance with the present invention; [Figure 9] 8 is a schematic diagram of elements of the audio-based recorder of FIG. 7, constructed and operative in accordance with the present invention. [Figure 10] 8 is a schematic diagram of elements of the CTC creator and editor of FIG. 7, constructed and operative in accordance with the present invention. [Figure 11] 8 is a schematic diagram of elements of the TC path optimizer of FIG. 7, constructed and operative in accordance with the present invention; [Figure 12] 6 is a schematic diagram of elements of the maintenance module of FIG. 5, constructed and operative in accordance with the present invention. [Figure 13] 6 is a schematic diagram of elements of the TC player of FIG. 5, constructed and operative in accordance with the present invention. [Figure 14] FIG. 14 is a schematic diagram of elements of the TC activator of FIG. 13, constructed and operative in accordance with the present invention. [Figure 15] 1 is an exemplary screenshot of an interface for using a toolcast for a restaurant menu building system constructed and operative in accordance with the present invention. [Figure 16]16 is a detail of the interface of FIG. 15 showing a TC player control toolbar, constructed and operative in accordance with the present invention. [Figure 17] 16 is an embodiment of the detail of FIG. 15 displaying additional content elements, constructed and operative in accordance with the present invention; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0060] It will be understood that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
[0061] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the embodiments of the present invention.
[0062] Websites and applications are typically comprised of complex Graphical User Interfaces (GUIs) involving multiple pages (or application screens) containing multiple visual components. Applicant has realized that users of such applications often require assistance or guidance in the use of the underlying systems, such as designers using website building systems to build such websites and applications.
[0063] A highly useful solution to these needs is a personal tutor, guide, or helper who sits next to the designer or user (or at least communicates with the user remotely via a shared screen system). One common alternative to a human teacher is video segments that explain specific interactions with the underlying system. However, such videos often lack interactivity and quickly become outdated when the underlying system changes.
[0064] Applicant further realised that the same advantages may be achieved by a toolcast management system that does not require a personal (human) leader.
[0065] A toolcast management system may provide a solution through toolcasts, a media format that uses interaction with an underlying system as a foundation. The toolcast format can be used in combination with multiple technologies to create, maintain, and activate toolcasts using assistive content elements such as active tutorials, documentation, courseware, and intra-user messaging. Media files and players combine interaction (and possibly integration) with the underlying system, synchronized narration, subtitling, or other assistive content elements. Toolcasts can also be adapted to the user according to user settings, such as user parameters, preferences, and attributes (such as the user's geographic location or browser type) that are stored by the underlying system.
[0066] Applicants have also realized that advantages of such a toolcast management system that is integrated / communicates with underlying systems such as a website may include the ability to dynamically execute toolcasts (generating tool events, subtitles, and audio) as well as the ability to directly interact with users and perform actions on the website according to the state and data of the website itself, which may include dynamically creating toolcasts based on user data.
[0067] The toolcast management system can also create extended UI (user interface) elements on top of the underlying system or otherwise merge with underlying system components, and can (for example) suggest or even auto-play toolcasts based on website state, interactions with the website, or written or conversational interactions with the system (including voice prompts, use of chatbots, guided questions, and reviewing user flows).
[0068] The Toolcast Management System may also detect what users "need" on the website by talking to them through behavioral / BI (business intelligence) analytics, text chat, and machine learning technology.
[0069] Additionally, the toolcast management system can create toolcasts from recording users performing actions on the website and can automatically detect when descriptions of the website's functionality become out of date based on updates to the website and toolcast records.
[0070] Other applications of the toolcast management system can convert and keep updated toolcasts in other media formats such as text with images or video, and can auto-generate toolcasts based on machine learning and text-to-speech techniques.
[0071] Finally, the Toolcast management system can also handle responsive events on the website DOM that reflect remote user actions (clicking, dragging, hovering, scrolling, editing, and creating elements) across multiple supported browsers.
[0072] It will be appreciated that the Toolcast Management System may be comprised of the Toolcasts themselves (which are the data files that drive the system), a Toolcast Editor, a Toolcast Player, a Toolcast Deployment Agent, and a number of additional elements, as described in more detail herein below. These elements together provide the functionality to run Toolcasts through Smart Playback. It interfaces with the underlying system and uses the underlying system elements and events to form display comments.
[0073] It will also be appreciated that the Toolcast management system architecture may enable the user to actively participate in the interaction. For example, the playback (and flow) of a Toolcast file may depend on a particular action performed by the user. Furthermore, the user may stop the Toolcast player at any point and continue using the underlying system from the particular stopping point.
[0074] The Toolcast management system may further provide online resynchronization as well as resynchronization of Toolcast files when the underlying system is changed. Resynchronization can be done offline as well as online (for example) when the execution timeline of the underlying system changes due to, for example, differences in communication performance, or when an unplanned event, for example a notification popup occurring in the middle of a pre-planned interaction, affects the UI (user interface) of the underlying system.
[0075] The Toolcast management system may also resynchronize when the underlying system display changes, for example when underlying system components are displayed differently due to changes in the display layout (dynamic layout, window size, portrait / landscape orientation, moving components due to responsive design considerations, different component variants being displayed, etc.).
[0076] The toolcast management system may further support the creation and editing of such toolcast files through, for example, a recording of a user's interactions with the underlying system along with user-provided narration or titles. As described in more detail herein below, the recording does not consist of capturing screenshots or screen videos. Instead, the recording is an object-oriented recording that captures the displayed objects, the user's interactions with them, and associated dynamics (e.g., motion) and timing information.
[0077] As described earlier in this specification, the Toolcast Management System can be used in combination with an underlying system. Reference is now made to Figures 3A and 3B, which show a Toolcast Management System 80 (Figure 3A) in communication with an underlying system 200 and a Toolcast Management System 80 (Figure 3B) integrated with the underlying system, in accordance with an embodiment of the present invention.
[0078] It will be appreciated that the following discussion focuses on an integrated version of the Toolcast Management System 80 with systems or applications for which support is provided through associated toolcast files manipulated by the Toolcast Management System 80. Such supported systems 80 may include systems such as websites or other web-based applications. In the case of web-based applications, it will be appreciated that the Toolcast Management System 80 may use the WBS to provide its functionality as a service to designers so that they can provide toolcasts to users of their websites. These sites include both statically defined sites and dynamically generated sites.
[0079] It will be further understood that the underlying system may be the WBS itself. This case includes, for example, the use of Toolcast Management System 80 to provide training or documentation for elements of the WBS environment. In this scenario, the supported users may be website designers using the WBS, or website users using some aspect of the WBS exposed to users (e.g., talkback editing functionality of a blog website, etc.). Reference is now made to FIG. 4, which illustrates Toolcast Management System 80 integrated with WBS 100 of FIG. 2.
[0080] The use of toolcasts can be applied to different areas of the WBS 100 (other than the WBS editor 30), such as administration functions, dashboards, vertical applications (as well as setup and configuration GUIs).
[0081] Further, it will be appreciated that elements of the underlying WBS can be built using the same WBS (i.e., a self-hosted WBS) or a different WBS. Accordingly, the Toolcast management system 80 can be used in conjunction with such a WBS, possibly at multiple levels (both in the interface and delivery of services).
[0082] Furthermore, the underlying system 200 may be a desktop application or a mobile application, whether pre-installed or dynamically installed or executed.
[0083] The underlying system 200 may be some type of document editing system, such as a word processor or a code IDE (integrated development environment). Such an underlying system 200 may support editing of a single "document" (e.g., a word processor document or a web page) or multiple simultaneous documents. Toolcasts operating on the underlying system 200 may support a UI used to edit multiple documents (within a single toolcast).
[0084] It will be appreciated that the web-based sites and applications described herein may include those rendered via client-side rendering, server-side rendering, mixed rendering, or rendering provided by a framework (such as the React web development framework).
[0085] The toolcast management system 80 may also be applied to advanced application deployment environments such as wearable environments, immersive environments (such as virtual reality and augmented reality), and video-based applications.
[0086] Thus, the toolcast management system 80 may include different aspects and implementation details based on the type of underlying system 200, as described in more detail herein below.
[0087] The following discussion will generally focus on implementing a toolcast management system 80 for a website, whether manually developed or WBS-based. As discussed above in this specification, such a site may be based on a combination of templates at various levels (site, page, section, component set, or component level).
[0088] Reference is now made to Figure 5, which illustrates the elements of the Toolcast Management System 80. The Toolcast Management System may comprise a TC (Toolcast) Creator 81, a Database 82, an Interface Module 83, a UNS (Underlying System) Structure Mapper 84, a TC (Toolcast) Player 85, a TC (Toolcast) Synchronizer 86, a Maintenance Module 87, a ML (Machine Learning) Engine Manager 88, as well as an Add-on Product Generator 89, an Appstore Interface 8100, and a Tooltip Handler 8101. The ML Engine Manager 88 may further comprise a Data Collector 881 and a number of ML Engines 882, and the Add-on Product Generator 89 may further comprise an Auto Executor 891. The functionality of these elements will be described in more detail hereinafter.
[0089] It will be appreciated that the ML engine manager 88 may provide services to various elements of the toolcast management system 80, as described in more detail herein below.
[0090] The Tc creator 81 may record, edit, and generate toolcasts. The database 82 may store toolcasts (including basic and composite toolcasts, which are described in more detail below). The interface module 83 may provide interfaces depending on the type of foundational system 200 (integrated / non-integrated). The UNS (foundational system) structure mapper 84 may provide mapping of the structure of the foundational system 200 as well as associations, events, and interfaces used to affect the foundational system 200. The TC player 85 may be used to play back toolcasts and the TC synchronizer 86 may be activated upon changes to the foundational system 200 to support synchronization with related toolcasts. The maintenance module 87 may maintain the toolcasts as changes are made to the foundational system 200. The ML engine manager 88 may provide machine learning training and support. The additional product generator 89 may execute the toolcasts to generate alternative products. The app store interface 8100 can allow the created toolcast to be shared via the app store. The tooltip handler 8101 can add toolcasts to existing tooltips, which can include the created tooltip as a toolcast activation UI. The functionality of these elements is described in more detail below in this specification.
[0091] A typical usage flow may include the following steps: A designer or developer of the foundational system 200 may use the Toolcast management system 80 (e.g., via a hosted service that may provide toolcast services to a variety of systems) to record and edit a toolcast of the foundational system 200, as described in more detail herein below. This involves the developer or designer interacting with the foundational system 200 and the Toolcast management system 80, which may be a separate Toolcast developer other than the foundational system developer.
[0092] The designer of the foundational system 200 can then store the toolcasts locally with the foundational system 200 or in a hosted toolcast management system 80. The foundational system 200 can then activate a particular toolcast on its own or based on a user's action. The TC player 85 can then execute the particular toolcast and drive the foundational system 200 while interacting with an end user of the foundational system 200.
[0093] The Toolcast Management System 80 can interface bidirectionally with the underlying system 200. The types of interfaces and their possible implementations are described herein below.
[0094] It will be appreciated that the Toolcast Management System 80 can be used for different application areas and scenarios, and the following discussion of these areas is based on the context of a website designer using the Toolcast Management System 80 to benefit users (visitors) of their website, although other use cases are available (discussed in more detail below), such as WBS vendor staff 61 providing toolcasts to designers using a WBS, site owners 62 (whether WBS-based or not) providing toolcasts to visitors to their site, and third-party toolcast creators who provide toolcasts to users of various systems (websites, WBS, or other).
[0095] One type of use of the Toolcast Management System 80 can be the development of interactive tutorials. It will be appreciated that the Toolcast Management System 80 can be used to create explorable and interactive tutorials. A site designer may record site usage sessions (e.g., specific portions of the site). Site visitors can play back, pause, and interact with these recorded sessions (e.g., pause the tutorial and continue actual system usage from a given point where it was stopped).
[0096] Such tutorials may be presented as multi-step instructions or wizards (e.g., pop-up or screen-side instructions). Tutorials may also be presented in combination with displayed screen components, for example by displaying assistive content elements near or in conjunction with associated elements.
[0097] Such tutorials may also function as courseware and may include quizzes, logic based on user responses, scoring, and learning management features.
[0098] The Toolcast Management System 80 can also provide "Do It With Me" (DIWM) tutorials. Under a DIWM scenario, the Toolcast Management System 80 can offer to the user to perform operations on the underlying system 200 on the user's behalf as part of the tutorial section (e.g., "Can you do task X now, or do you want me to do it for you?"). The tutorial session can include a mix of delivery of tutorial material, tasks performed by the user, and DIWM tasks performed by the Toolcast Management System 80.
[0099] Another use of the Toolcast management system 80 is in the creation of interactive documentation. The Toolcast management system 80 can be used to enhance a website by associating Toolcast files with particular features or elements of the website. Such Toolcast files can replace traditional help functionality that is typically provided by static help files.
[0100] Yet another use of the toolcast management system 80 is the creation of editable video-like media files that describe functions or procedures of the underlying system 200. It will be appreciated that such files may be defined in terms of UI elements of the underlying system 80 rather than screen captures.
[0101] The toolcast management system 80 can detect when a video file is out of sync (e.g., when it references a site element that has been deleted or otherwise altered) and can resolve this or otherwise notify the toolcast creator, as described in more detail herein below. It will be appreciated that such videos can be used for many purposes, such as user support or marketing.
[0102] Another use of the Toolcast Management System 80 may be messaging related to the underlying system 200. The Toolcast Management System 80 may be used as a method of communication between people who need to communicate about the underlying system 200, such as developers, users, or people involved in system support, documentation, marketing, testing, etc.
[0103] Such people often need to communicate and exchange information related to the operational sequence of the underlying system 200 and need to deliver additional information beyond the provided screenshots or screen video recordings.
[0104] The toolcast management system 80 may enable these users to quickly record and create toolcasts that include dynamic flows that are typically difficult to communicate. Additionally, communicated toolcasts operating in conjunction with the underlying system 200 may enable recipients to access the underlying system 200's internal state associated with the described underlying system 200 flows. Such messaging may be synchronous (e.g., webinar-type streaming) or asynchronous (e.g., email / chat-type messaging, which may be delayed).
[0105] It will be understood that the above description refers to communications between people, although such "people" may also include computerized nodes, such as bots or other non-human communicating actors.
[0106] It will also be understood that such messaging and communication can be multi-directional, such as from website designer to end user, end user to end user, designer to designer, end user to designer, end user / designer to WBS staff, and WBS staff to end user / designer.
[0107] The toolcast management system 80 may also be used in conjunction with a visual editor (e.g., in a WBS, such as the WBS editor 30) or other IDE. It will be appreciated that a user of the visual editor or IDE can play back the recorded toolcasts within the editor, essentially turning the IDE into an (interactive) media player. The toolcast action is "live" (not simply displaying finalized recorded media) because the toolcast actually interacts with the editor of the underlying system 80 (or design environment).
[0108] Thus, the user can stop the toolcast at any point and interact with the underlying system 200 (or its code) in the new state affected by the toolcast. The user can use his tools and environment at this stage and learn from the work (and changes implemented) done by the toolcast.
[0109] The toolcast management system 80 may allow the toolcast to continue, possibly including adapting to changes made by a user, as described further herein below.
[0110] The Toolcast management system 80 may also be used in combination with a structured communication system, such as customer support, as described in U.S. patent application Ser. No. 17 / 673,933, entitled "Structured Communication System Integrating Dynamic Display," filed Feb. 17, 2022, assigned to the assignee of the present application and incorporated herein by reference. Such structured communication systems may use Toolcast as a medium for interaction and communication between users and agents using the structured communication system.
[0111] The toolcast management system 80 may also provide additional uses for the toolcast other than for use with the TC player 85, as will be described in more detail herein below.
[0112] As described herein above, the Toolcast data format is a media format that allows the Toolcast management system 80 to record and play back the process of interacting with a website or application, which may be specific to a given website or may be generalized to a group of related (or wholly or partially similar) websites.
[0113] The Toolcast data format may be used as is as a file format or may be stored using a larger container or representation format (e.g., within a video file container file, using XML, JSON, or similar representations, etc.) The Toolcast data format may also be used as the format for data stored within a database field or record, a repository, cloud storage (e.g., in a cloud storage bucket), an object-oriented database (OODB), etc.
[0114] Toolcast data formats can be hierarchical, with Basic Toolcasts (BTCs) implementing a linear timeline corresponding to a linear sequence of interactions, and higher-level Composite Toolcasts (CTCs) combining multiple BTCs and specifying the flow and routing between them.
[0115] The toolcast data file may include a set of assistive content elements (ACEs), a set of actions to be performed on the underlying system 200, a set of trigger definitions, flow management elements, and may also include additional displayable material, additional types of media such as those displayed in a VR (Virtual Reality) / AR (Augmented Reality) environment, and interactive components or applications.
[0116] Assistive Content Elements (ACEs) such as audio and subtitles may be displayed during playback, for example during a toolcast-based training session. These ACEs may also contain elements to be added to the website (such as annotations and highlighting), or values used to affect the properties of that component.
[0117] A series of actions that are performed on the underlying system 200 (moving a cursor, clicking on an element, drawing near an element, UI selections of the underlying system 200, etc.) may affect the underlying system 200 as if the user were interacting with the website. These actions may also include information added to or affecting the website, as described further below.
[0118] A set of trigger definitions may be associated with website elements, operations, activities, and events, which may include both front-end events (visible or invisible) and back-end events. The Toolcast Management System 80 may listen to the underlying system 200 to detect events, states, and related data and trigger specific actions by the TC Player 85, including information related to the underlying system 200 and the user as generally described herein above.
[0119] Flow management elements can determine how actions are performed and ACEs are displayed based on a timeline or detected website events. Flow management elements may use linear timelines (as in BTC), state charts, activity graphs (including multi-level graphs), or other mechanisms. Toolcast management system 80 may support branching and input processing in conjunction with some or all of the above flow management elements (e.g., timelines, state charts (e.g., implemented by state machines), and activity graphs).
[0120] The toolcast file may store some or all of the event definitions using component-relative coordinates (so that the definitions are not affected when the component is moved). Such component-relative definitions may apply to a particular component or a parent container and may be based on anchors to corners, edges, centers, or other parts of the component. The anchors may be absolute or relative (e.g., based on the size of the component). The toolcast management system 80 may further interact with a layout system (e.g., a dynamic layout or responsive display system) used by the underlying system 200 to accommodate non-obvious changes in the display created by such a system. Such changes may include, for example, changing the position, size, or placement of components according to the definitions of various breakpoints of a responsive website. Such systems are described in U.S. Patent No. 10,185,703, entitled "Web Site Design System Integrating Dynamic Layout and Dynamic Content," issued on January 22, 2019, and U.S. Patent No. 10,984,177, entitled "System and Method Providing Responsive Editing and Viewing, Integrating Hierarchical Fluid Components and Dynamic Layout," issued on April 20, 2021, both of which are assigned to the assignee of the present invention and are incorporated herein by reference.
[0121] As described herein above, in one possible embodiment, the toolcast management system 80 can use timelines (e.g., created by recording specific user interactions with website regions) to define BTCs. These BTCs form the building blocks of CTCs, including multiple interactions and branching structures that cover larger areas of a given website.
[0122] Such a larger CTC may encompass interactions with an entire website or application, or may cover a subset thereof. The Toolcast management system 80 may allow for a hierarchy of CTCs to be defined (providing a multi-level hierarchy).
[0123] It will be appreciated that toolcast data files can use many data formats, such as container formats, modified versions of existing media formats (such as video formats), or specialized data formats. Toolcasts may be physically attached (e.g., as data blobs) to the associated UI object definitions in the underlying system 200, or may be stored separately.
[0124] With regard to ACEs, they can include many types of display media in conjunction with the underlying system 200. ACEs may include static media, e.g., text, subtitles, or associated images, or may be dynamic / temporal in nature, e.g., audio used for narration or other purposes. Dynamic ACEs may also include different media types, such as video, although the primary interactive visual display will typically be generated by the TC Player 85 interacting with the website.
[0125] The additional displayable material might be arrows or other screen highlights that point to or otherwise emphasize the displayed component. Such elements can be added as an additional layer to the display or can be integrated with the display of the underlying system 200, as described further herein below.
[0126] The interactive components or applications may be part of the Toolcast Management System 80 (client and server) and may be operated and activated by the Toolcast Management System 80. They may also be part of the underlying system 200 (e.g., the underlying WBS component) while still being directed and initiated (or otherwise operated, published, or initiated) by the Toolcast Management System 80. As with other displayable ACEs described herein above, they may operate as a separate layer, either in combination with the display component of the underlying system 200 or displayed separately. As described herein above, the tool cast management system 80 can interface bidirectionally with the underlying system 200 .
[0127] The toolcast management system 80 can receive information regarding foundational system 200 activity via the interface module 83 using a direct link, detection, analysis, etc. The interface module 83 can detect foundational system 200 activity to be recorded in a toolcast recording phase, and can detect foundational system 200 activity and activate toolcasts associated with particular foundational system 200 objects, data, activities, and events.
[0128] The interface module 83 can also detect objects, data, activities and events in the underlying system 200 that may affect the execution of a toolcast during playback, as well as detect changes to the underlying system 200 that affect the way the toolcast and toolcast management system 80 plays the toolcast (e.g., due to maintenance of the toolcast).
[0129] In the reverse direction, when the toolcast management system 80 sends information to the underlying system 200, the interface module 83 can simulate user actions (e.g., keyboard strokes, mouse movements, and clicks) within the underlying system 200 and provide direct manipulation of underlying system 200 data structures (e.g., modifying the displayed browser DOM of a website).
[0130] The interface module 83 may also affect the operation of the underlying system 200, modify the display of the underlying system 200 (e.g., through annotations), and generally provide input to the underlying system 200. Reference is now made to Figure 6, which illustrates elements of the interface module 83. The interface module 83 may further comprise an integration interfacer 831, a non-integrated interfacer 832, and a UNS (underlying system) database interfacer 833.
[0131] It will be appreciated that interfaces are not directly with the underlying system 200, but rather with general system elements that cooperate with the underlying system 200. For example, the toolcast management system 80 may interface (through the interface module 83) in both directions with a browser that runs the underlying website, or with a development framework / WBS runtime module that runs the website, but not with the underlying website itself. The interface module 83 may interface with multiple underlying systems 200, and thus its sub-elements may support multiple targets using the unified interfacer 831, as described in more detail herein below.
[0132] Further, it will be appreciated that in some embodiments, foundational system 200 may include (or be otherwise adapted or modified) infrastructure and elements for interfacing with toolcast management system 80. These foundational systems are known as integrated foundational systems.
[0133] In other embodiments, the underlying system 200 may not include the necessary infrastructure or elements for interfacing with the Toolcast management system 80. In such cases, the Toolcast management system 80 may need to interface with the underlying system 200 "externally," for example, using external analysis, detection, inserted hooks, etc., as described in more detail herein below in connection with the non-integrated interfacer 832. These are known as non-integrated or "external" underlying systems 200.
[0134] Some embodiments may combine the two, for example where the underlying system 200 provides some interfaces but not others, or where the underlying system 200 provides interfaces but not all of the required parameters, information, or options. The toolcast management system 80 may also include multiple interface methods, some of which are integrated and some of which are not.
[0135] It will be appreciated that the interfaces and integrations may occur (fully or partially) at a different software level than the actual underlying system 200. For example, the underlying WBS may provide the necessary interfaces for the toolcast management system 80 to handle a website implemented on the WBS. This does not require any modifications or special code in the website itself (which is the actual underlying system 200). Other examples may include integrations made at additional integration points other than the underlying website, for example, in the operating system, drivers, browser, or JS engine. This integration may also occur with other development frameworks used in the development and deployment of the underlying system 200.
[0136] A partial alternative to integrating a WBS-based website with the underlying system 200 would include doing an actual integration with the WBS used for the underlying website, but adding extra IDs, hints, metadata, or other relevant information to the website itself.
[0137] Thus, using such an approach allows users of the Toolcast management system 80 to obtain the benefits of the integrated solution without requiring specific or substantial changes to the underlying web site.
[0138] The Toolcast management system 80 may also be implemented separately from the underlying system 200 (e.g., in a different environment or on a different physical or virtual platform). For example, on a mobile device, the Toolcast management system 80 may be implemented as a mobile application and the underlying system 200 may be implemented as a website (or vice versa). The Toolcast management system 80 may still interface with the underlying system 200 (in an integrated or non-integrated manner) via a bridging mechanism (e.g., local communication, local web services, an intermediate server hosted on the mobile device, a browser extension implementation, a local interface, etc.) that connects the two implementation environments.
[0139] It will be appreciated that the Toolcast Management System 80 can interface with the integrated underlying system 200 in a number of ways. The integration interfacer 831 can (for example) interface to the WBS used to build the underlying website (including specific web services or client-side integration points). The integration interfacer 831 can use publicly available WBS server interfaces (APIs, web services, etc.). In some cases, it may use privately available interfaces. The integration interfacer 831 may include a direct interface to the WBS server's internal document management system (handling storage and retrieval of web page definitions) or to the WBS editor interface (handling editing of pages and components).
[0140] The integration interfacer 831 may also interface with the integrated underlying system through interfaces added to the source code of the underlying website, web server, or application, and through additional parameters and hooks into the definition of the tests (such as AB or multivariate tests) used in deploying a version of the underlying system 200. Such tests are described in U.S. Patent No. 10,733,078, entitled "System and Method of Handling Complex Experiments in a Distributed System," issued on August 5, 2020, and assigned to the assignee of the present invention, and incorporated herein by reference (when used in connection with the underlying WBS). In this scenario, it will be understood that there may be test-specific integrations and associations (e.g., associating one toolcast with test option A and another toolcast with test option A).
[0141] It will be appreciated that such integration may include external website elements, i.e., as described herein above, the website may include external elements such as external components, third-party applications, vertical products, subsystems, add-ons, or other elements, such as sub-elements (including front-end and back-end sub-elements) that may be hosted on a WBS vendor server, a separate third-party server, or a cloud provider.
[0142] The integration interfacer 831 may also implement integration with external site elements, including the ability to process toolcast triggers generated by such third-party elements (including using internal data, front-end, back-end, or other sub-elements). External elements may also provide their own toolcasts (or sub-elements of toolcasts) associated with triggers. Such associations may be with triggers from the main site code and with triggers from external site elements. Toolcasts of the main website may also include or reference such third-party toolcasts to create a complete toolcast flow.
[0143] The UNS database interfacer 833 may interface with a database of the underlying system 200 to provide data to be used for analysis, as described in more detail herein below.
[0144] Reference is now made to Figure 7, which illustrates the elements of the TC creator 81. The TC creator 81 may further comprise a toolcast storyboard creator 811, a generative text engine 812, a UNS (Underlying Systems) analyzer 813, a BI (Business Intelligence) analyzer 814, a text-based recorder 815, a voice-based recorder 816, an association manager 817, a CTC creator and editor 818, a TC path optimizer 819, a UNS (Underlying Systems) / TC (Toolcast) editor 8120, a coverage analyzer 8121, and an edit time recommender 8122. The UNS / TC editor 8120 may further comprise a graph analyzer 81201. The functionality of these elements is described in more detail herein below.
[0145] The association manager 817 may create a toolcast association for the Toolcast management system 80 and the underlying system 200 interface configuration in both integrated and non-integrated setups, as shown in Figures 3A and 3B. It will be appreciated that this association may be explicit, in the sense that the underlying system 200 is modified to directly activate the TC player 85 (e.g., through a function call, a web service, an additional specific component that activates the toolcast, etc.). Such activation code may be added to the website itself, or may be part of the WBS used to build the site (and may be configured to make a specific toolcast activation call). Such code is typically required when the association (and underlying trigger) relates to internal information of the site (such as a specific event in the underlying site data repository), as such events may be difficult to detect from the outside.
[0146] The association manager 817 can use the toolcast ID (or other naming or association mechanism) to determine which toolcast to activate. The underlying system 200 can pass these IDs as part of the trigger event, and the TC player 85 can recognize the ID and activate the appropriate toolcast.
[0147] The Toolcast management system 80 may also be used with "external" (non-integrated) underlying systems 200, such as hand-coded sites. This may also be relevant when the Toolcast management system 80 cannot directly modify or influence the site and its generation procedures, such as when creating a toolcast to a site that the user does not have editing privileges for, or to an application that is not a normal website. Such applications (for web, mobile or desktop environments) may be provided as binary install kits from an application store, for example.
[0148] It will be appreciated that the non-integrated interfacer 832 may use a different ("external") WBS that is not integrated with the toolcast management system 80, or may be by using a different system that generates or edits code that is directly executable by a browser (e.g., HTML, CSS, and JavaScript code). This may be a WBS that outputs such code, or an editor that allows a user to directly edit such code (such as Adobe's DreamWeaver CC™ or Notepad++ with HTML support).
[0149] Non-integrated interfacer 832 may also interface with a framework (such as Facebook, Inc.'s React) that allows users to create websites using a model different than the usual HTML / CSS / JS model. Such frameworks may provide their own component architecture or language (such as React's JSX extension to JavaScript).
[0150] Another implementation form is a site that uses pre-installed or downloaded code. This could be, for example, an integrated applet (such as a Java-based applet) that implements parts of the site, a site-wide interactive application (including a mobile app), or a virtual machine-based component. Such code could also include native code, JIT-compiled code, interpreted code, or code that uses other execution methods.
[0151] It will be appreciated that the method of site creation may impact the way in which the Toolcast management system 80 interfaces with the site and the way in which Toolcast associations may be defined.
[0152] Non-integrated interfacer 832 can access such external site's information and (possibly) parts of the underlying object architecture through (for example) the following methods: Non-integrated interfacer 832 may access information by reading the site code (HTML / CSS / JS or other) directly from the host server, by reading auxiliary files (such as a robots.txt file that is read by search engine spiders), by accessing the site through an API or web service that provides access to stored pages, by accessing the external (non-integrated) WBS through an API or web service that it provides.
[0153] The non-integrated interfacer 832 may also have access to the traffic used to carry the evaluated web site. This access may be through passively listening to (and analyzing / decoding) network communications, or through agents embedded in the server, client, intermediary machines (including those carrying CDNs (Content Delivery Networks)), or additional "middle agents" that analyze the relevant communications.
[0154] The non-integrated interfacer 832 may also use a specific browser (headless or not) that can "run" the target website and intercept its (internal) object model or rendered code, and the relevant toolcast management system 80 elements may be implemented as browser extensions or plug-ins to an existing browser, or may analyze and modify the site's code as it is loaded.
[0155] Another method that the non-integrated interfacer 832 uses to access information may be by injecting new or additional code into the site at load time. The injected code could be, for example, a client-side agent (embedded with the site code) that interacts with the object model or rendering process. Alternatively, such an agent could interact with other system elements (such as the browser or underlying operating system).
[0156] The non-integrated interfacer 832 may also add code or hardware that can track visual displays generated by the site. An example would be an additional software agent on the mobile device that can read and analyze (at the operating system level) the displays generated by a given mobile application that does not have the "hooks" for the normal interface.
[0157] The non-integrated interfacer 832 may operate based on an analysis of HTML, a browser object model, or both. Alternatively, the UNS analyzer 813 may perform a preliminary analysis of the collected information to extract a higher level model of the site elements and structure. Such a model may include structural (i.e., what the site consists of), layout-related, semantic, and behavioral aspects. In particular, the extracted model may include not only static information (e.g., the site structure at a given time) but also dynamic information (the dynamic behavior of the site in response to various responses).
[0158] The UNS analyzer 813 may perform a preliminary analysis using tools such as database rules, specific analysis scripts, and ML (machine learning) models as described in U.S. Patent No. 11,275,815, entitled "System and Method for Integrating User Feedback into Website Building System Services," issued on March 15, 2022, co-owned by the applicant, and incorporated herein by reference. Also, for sites created using a non-integrated WBS, specific rules, scripts, and ML models may be adapted to the specific WBS. Thus, for example, if a site is recognized as being built by a specific external WBS (e.g., WordPress), the UNS analyzer 813 may adapt its preliminary analysis to take into account specific elements of WordPress, such as its specific plugin architecture.
[0159] The UNS analyzer 813 can further analyze site structure, flow, code (client and server), BI information, edit history, and other repositories. Analysis can include geometric analysis, semantic analysis, and usage analysis. Analysis can integrate information accessible via the Toolcast Management System 80 with the underlying system 200 (or the underlying system's WBS or development framework) as described herein above. This can include various forms of site analysis, understanding, and learning, as described in U.S. Patent No. 11,275,815.
[0160] Based on this preliminary analysis, the non-integrated interfacer 832 can reconstruct the actual component structure of the underlying external WBS or framework (if such was used). For example, the preliminary analysis may model and detect the use of complex galleries at the external WBS generation site (e.g., by recognizing the specific generated HTML / CSS / JS) and reconstruct such a gallery from its rendered subcomponents.
[0161] The above-described analysis methods may also be used by the TC Player 85 (where relevant) to guide elements of the TC Player that affect or modify the underlying website (as described in more detail herein below).
[0162] As described above, for sites that are analyzed by the UNS analyzer 813 based on tracing of generated visual displays, it will be appreciated that the analysis may be performed at the screen image level rather than at the HTML or browser object model level (e.g., recreating the component structure "behind" the displayed screen even if this structure is not accessible, such as in mobile applications).
[0163] When ML models are used, the ML engine manager 88 can retrain models of the ML engine 882 on previously evaluated sites to adapt them to (for example) changes in the underlying external WBS. The data collector 881 can collect data and user information from the underlying system 200, as described in more detail herein below.
[0164] The Toolcast management system 80's external detection of internal events that take place within the foundational system 200 (e.g., to activate the TC player 85) may potentially extend to detection of server-side or other site-internal events. This detection may depend on the server provider (e.g., a cloud computing vendor) or site owner providing relevant access credentials to users of the Toolcast management system 80, or possibly allowing the installation of relevant server-side monitoring software (or access to such installed server monitoring software). Such access may be performed as a separate, parallel channel to the primary communication between clients and servers of the foundational system 200.
[0165] It will be appreciated that the Toolcast management system 80 may be configured as a service (similar to other "X as a Service" platforms). In such a configuration, the Toolcast management system 80 provider may create integrations with various other service providers (e.g., WBS providers, ISPs, TPA providers, etc.). Such integrations may provide secure access through separate parallel channels in parallel with the associated underlying system 200 related systems and services. This may be done without providing direct access credentials to the actual Toolcast management system 80 users (i.e., those who create and edit toolcasts).
[0166] In such a "Toolcast Management System as a Service" configuration, the functionality of the actual Toolcast Management System 80 may be implemented on the actual Toolcast Management System 80 server, another server, a user's client machine, or a combination of these.
[0167] As described herein above, all of the above interface methods can be used for a number of required interfaces, which may include recording toolcasts, associating toolcasts with site elements, events, and triggers (including defining triggers), activating and playing back toolcasts (including interacting during toolcasts), pre- and post-processing of various toolcasts (such as optimization), and detecting underlying system changes that require toolcast modifications or synchronization.
[0168] It will be appreciated that there are many ways to create and edit toolcasts. The following discussion describes possible procedures for creating linear (timeline-based) BTCs or BTC sections, and creating more complex CTCs that cover a larger underlying system 200 (such as an entire website) or portions thereof. For such complex toolcasts, additional composition methods such as statecharts may be used to create the complex toolcasts. The discussion covers multiple creation methods, including creating template toolcasts or complete toolcasts, text-based recordings, and audio-based recordings.
[0169] It will further be understood that a single BTC or CTC can be distributed across multiple locations (such as files, libraries, databases, repositories, servers, or clouds). One example is a top-level CTC that includes reusable sub-CTCs (defined separately) that describe common components and templates included in the underlying system 200.
[0170] The following description generally focuses on embodiments having separate toolcast creation / editing and toolcast playback phases. However, in some embodiments, these phases may be intermixed. For example, the TC creator 81 may automatically generate new or modified toolcasts during playback of a toolcast, and combine them in the playback flow (or otherwise alter the currently playing toolcast). As another example, the TC creator 81 may allow some users to go into editing during playback and modify the currently running toolcast or other toolcasts.
[0171] Toolcast storyboard creator 811 can provide for the automated creation of toolcast templates. It should be understood that these toolcast templates are referred to herein as "storyboards" rather than "templates" to distinguish them from WBS templates. Toolcast storyboard creator 811 can provide for the creation of automatically generated storyboards (and semi-automatically generated storyboards) for toolcasts. Alternatively, toolcast storyboard creator 811 can be used to create complete (filled) toolcasts based on the techniques and structures described herein.
[0172] One way that the toolcast storyboard creator 811 creates toolcasts and storyboards is based on a "dry run" performed by the user. The toolcast storyboard creator 811 can allow the user to perform a "dry run" through the relevant parts of the underlying system 200. The toolcast storyboard creator 811 can then record the user activity and provide the user with a template storyboard that includes the relevant structure and associations to underlying system events.
[0173] Instead of using explicit "dry runs," the interface module 83 can also track the actual operation of multiple periodic executions of the foundational system 200. This can be done within the toolcast management system 80, or by the foundational system 200 (or its execution infrastructure) through data collected as part of its operation. Based on this collected information, the TC path optimizer 819 can determine which routes are using the foundational system 200, which elements are active, which interactions are allowed (and are not allowed), etc. This is similar to navigation software (such as WAZE) that collects and analyzes traffic data to determine the actual underlying map and existing roads.
[0174] The toolcast storyboard creator 811 may further provide the user with placeholder areas within the text to be filled in to create appropriate descriptive comments. The definition of such an area may include information such as what to write therein (e.g., a generated description of the element, flow, or function of the underlying system 200 that is described in the area), the amount of text or narration time appropriate for the area, and hints provided based on hints within the underlying system 200 or templates contained therein.
[0175] The placeholder areas may further include example text sections generated using a generative text engine (described in more detail herein below), parameters, models, and instantiation data used by machine learning (ML) models to fill specific placeholders (and toolcasts in general).
[0176] In another embodiment, the toolcast storyboard creator 811 may operate based on site templates used by the underlying WBS. These may include page section templates, component templates, etc. Such toolcast storyboards may be pre-generated and possibly optimized based on feedback from edits by the toolcast creator.
[0177] A generative text engine 812 (using technologies such as GPT3 or other ML-based natural language generation engines) can generate text for the storyboard (either in whole or in sections within a dry run-based storyboard). The generative text engine 812 can be trained and run based on material from different sources or based on analysis of available information. Such sources and analysis may include information and explanations provided by the user (via text chat, voice instructions, answers to generated questions, etc.), the underlying templates used to generate the site, previous toolcasts created by the same user, toolcasts created for other parts of the website, and toolcasts created for the underlying templates or sites that use them (subject to the anonymity, privacy, and intellectual property rights of the toolcast owners, if relevant).
[0178] The generative text engine 812 may also use the results of a UNS analyzer 813, which may analyze elements of the underlying system 200, or may use an ML engine 882 to analyze information collected by the data collector 881 to determine how actual users use the site. Such analysis may include internal information (e.g., a website DOM) and external information (e.g., screen images of displayed website screens) of the underlying system 200.
[0179] The generative text engine 812 can further use the results of a business intelligence (BI) analyzer 814, which can analyze BI information collected by the underlying WBS (or information collected by the underlying website hosting system). This can also include specific BI collected by a data collector 881 (e.g., by listening to the underlying system 200), which may require (and collect) different levels of detail, possibly collecting all mouse, keyboard, and other UI interactions.
[0180] The UNS analyzer 813 can also analyze external information related to the underlying system 200 , which can include articles, descriptions, specifications, and other technical information related to the underlying system 200 .
[0181] The generative text engine 812 can also analyze user-provided instructions as to which areas of the site to create toolcasts for and in what order, as well as additional feedback and answers provided by the user in response to questions provided by the generative text engine 812. User interaction can take multiple forms, including explicit use of surveys or forms, use of text chat, use of voice chat, sensor feedback (e.g., gesture recognition), etc.
[0182] The generative text engine 812 may also use user recorded sessions of the TC creator 81 without additional information ("dry run" as described herein above). Another source may be BI collected by the data collector 881 (operating in conjunction with the interface module 83) describing end user usage, events, and data paths through the underlying system 200. Such analysis by the UNS analyzer 813 may include, among other things, detection of areas of the underlying system 200 where end users are having difficulty using the underlying system 200 (e.g., based on analysis of user behavior and paths taken). Areas identified in this way may serve as focal points to which toolcasts can be associated.
[0183] The generative text engine 812 can further use underlying user data stored in the underlying system 200 and information from support calls and tickets associated with the underlying system 200. Such information can include recorded or extracted information from actual support sessions of the underlying system 200 (e.g., using support representative feedback as the "voice of the trainer").
[0184] It will be appreciated that the toolcast storyboard creator 811 can also use user feedback and further edits made by the site designer to train ML models that control the generation of storyboard elements and action associations, as described in more detail herein below. Such feedback may include both suggested changes made to the toolcast (by the designer) and feedback on the use of the toolcast by site visitors (toolcast users). Feedback may also include feedback from additional reviewers. The integration of feedback may create a feedback loop that further improves the quality of the generated toolcast.
[0185] Toolcast storyboard creator 811 can take additional steps to understand what the user "needs" to do in underlying system 200 and how best to convey the associated knowledge to accomplish these needs. Specifically, toolcast storyboard creator 811 can use ML models via ML engine manager 88 to break down appropriate underlying system 200 operations into steps and guide the user through these steps, allowing the user to do the work themselves if possible.
[0186] Thus, the toolcast storyboard creator 811 may generate, modify, or manipulate toolcast segments as needed (including during playback using a user interaction module, as described in more detail herein below). The toolcast storyboard creator 811 may also dynamically reconnect, rearrange, or reconfigure existing BTCs based on user interaction with the toolcast. For example, if a user quickly views a tutorial toolcast, the toolcast management system 80 may play the BTC more quickly, or use a more concise or advanced BTC instead of a regular BTC.
[0187] It will be appreciated that the functionality of the toolcast storyboard creator 811 described herein above is directed to creating and editing text-based toolcasts. However, in alternative embodiments, the toolcast storyboard creator 811 may provide equivalent functionality for audio-based editing (described in more detail below in this specification). In such embodiments, audio placeholders may be filled with audio recordings and the generated text may be read by text-to-speech and possibly modified to replace some sections with recorded audio segments.
[0188] As discussed hereinabove, the toolcast storyboard creator 811 can also generate complete toolcasts including flow definitions (linear / BTC or graph / CTC) and required media (text, audio, etc.).
[0189] It will be appreciated that recording and editing of BTC is typically tied to the UI and flow of the underlying system 200, as BTC reflects a sequence of UI actions and activities. The toolcast management system 80 can create and edit BTC using known methods (such as defining a BTC via a standalone IDE), however, better results can be achieved through an underlying system 200 integrated BTC creation environment. Two such environments (text-based and voice-based) are described below with reference to a text-based recorder 815 and a voice-based recorder 816.
[0190] It will further be appreciated that the recording / editing environment provides real-time feedback: both the text-based recorder 815 and the audio-based recorder 816 can run on the underlying system 200, allowing the user to instantly interact with the results. For example, operations on the underlying site generate accurate site responses (e.g., responses that a user would receive under normal conditions of use).
[0191] Reference is now made to Figure 8, which illustrates sub-elements of the text-based recorder 815. The text-based recorder 815 may further comprise a rich content editor 8151, a text analysis engine 8152, a TC (toolcast) finalization module 8153, and a text decoder 8154.
[0192] Reference is now made to Figure 9, which illustrates elements of the audio-based recorder 816. The audio-based recorder 816 may further comprise an audio recorder 8161, an audio editor 8162, an audio post-processor 8163, and an audio decoder 8164.
[0193] The text decoder 8154 and speech decoder 8164 can decode user-entered text or speech and point to relevant elements or actions based on knowledge of the current user context and interactions with the underlying system 200. The TC creator 81 can also provide toolcast-specific auto-completion. Such auto-completion can be at a higher level than that offered by typical IDEs and might include, for example, auto-completion of activities and WBS operations.
[0194] The text-based recorder 815 can enable the creation of toolcasts using a dedicated rich text editor as the primary editing environment. The ability to create and edit interactive video-like tutorials using text editing makes the TC creator 81 a substantially quicker and easier solution compared to existing tools for creating training, documentation, and support materials.
[0195] It will be appreciated that the steps involved in creating a toolcast by a user (who may be a site designer / instructor / creator / audio specialist) may include using the rich content editor 8151 to create text that will be used as the underlying training material. This text may be delivered as narration, subtitles, or in other ways. This text may form the "storyboard" of the created toolcast.
[0196] The rich content editor 8151 may be used to associate system events and words of text with events, as well as methods for marking text attributes (e.g., bold or italics). These associated events may include events that drive the underlying system 200, such as mouse movements and clicks, text entry, or events that affect the display of the underlying system 200 screen, including highlighting components or displaying additional elements (e.g., arrows).
[0197] The rich content editor 8151 can also add text markers that control the audio generated based on the text. These can be, for example, markers defined in the SSML (Speech Synthesis Markup Language) standard.
[0198] It will be appreciated that the rich content editor 8151 UI can provide a graphical representation of these associations. For example, the UI might display a small image of the associated target location (e.g., the associated UI element) near the text, similar to how display attributes or links are represented in rich text. A background color or frame might represent the connection type. When the user hovers over or selects text linked to an association definition, the UI might open a popover to edit the target location or association configuration. Further editing of the text might result in additional information being saved. For example, moving the text (e.g., via copy / paste) would ensure that any added reinforcement elements are transferred as well.
[0199] It will also be appreciated that an association definition may include additional configuration information, attributes, and parameters.
[0200] The text-based recorder 815 may provide tools and an environment to support the event correlation process. For example, the text-based recorder 815 may provide tools to identify displayed website components that are targets for correlation.
[0201] For example, when creating a toolcast for an underlying system of a text editor, a user may highlight a section of text in the underlying text editor. In this scenario, the rich content editor 8151 may highlight an associated UI option in the underlying system 200, may cause a pop-up menu associated with the underlying system 200 to appear highlighting that option, and may provide a list of possible associated underlying system 200 UI actions.
[0202] The toolcast management system 80 may implement such tools using (for example) browser extensions or plug-ins, or as functionality of the WBS used to implement or host the underlying website.
[0203] A text-based recorder 815 can provide an additional level of automation to this process. A text analysis engine 8152 can analyze the text of the provided storyboard and automatically suggest relevant element associations and actions (i.e., detect what we are talking about). For example, a storyboard may specify "Press the Continue button" and the analysis can create an association between this text segment and the action of clicking the associated Continue button in the appropriate place in the underlying system 200. Such associations may be fully automatic or may require user approval.
[0204] It will be appreciated that the text analysis engine 8152 can analyze within the context of the current website display, and therefore can provide more specific and focused results than general purpose text analysis (e.g., only currently displayed website elements may be relevant).
[0205] The text analysis engine 8152 can also benefit from a separate analysis of the structure and flow of the underlying website (WBS-based or non-WBS-based), possibly including front-end, back-end, and procedural elements. The text analysis engine 8152 can correlate the results of the analysis with the results of the text-based analysis. Thus, if (for example) a website requires that button A be pressed before button B, the text analysis engine 8152 can associate unspecified buttons (referenced in the text) with buttons A and B according to their order, i.e., correcting situations where the user does not name the button to press in the text.
[0206] It will be appreciated that in the case of a WBS-based website, the ML engine 882 can be trained on common templates provided by the WBS using the ML engine manager 88. This training may include specific functionality to associate a given site with the underlying template used to build it (as a site may contain elements of multiple templates). Thus, the text analysis engine 8152 can benefit from such training and information.
[0207] It will be further appreciated that the toolcast text representation can be edited using the rich content editor 8151 in the same way as editing a normal rich text document. Deleting, moving, and copying text segments can also change associated events. Thus, if a text segment (for example) is duplicated, the set of matching synchronization actions will also be duplicated.
[0208] The TC creator 81 can also create additional toolcast elements. For example, the toolcast management system 80 can generate narration audio from provided text via a text-to-speech engine (or conversely, allow a user to dictate portions of text via a text-to-speech engine, possibly integrating a voice-based editor, described below, into the text-based editor).
[0209] Once the tool cast definition (including the storyboard text and related association definitions) is complete, the TC finalization module 8153 can finalize the tool cast.
[0210] The TC finalization module 8153 can convert the text of the storyboard into audio (e.g., via a text-to-speech engine) or into a set of subtitles placed at relevant positions on the screen (or both).
[0211] The TC finalization module 8153 can also calculate the proper timing of words in the script. The TC finalization module 8153 can run the toolcast in measurement mode to determine the start and end times of all words in the toolcast text that has been converted to audio (to create a final timeline of toolcast events and audio / subtitles). In alternative embodiments, other speech units such as syllables or sentences can be used.
[0212] Such execution may have a "variable speed", i.e., the speed may be set by the reasonable speed of voice production, or by the execution time of the underlying system 200 (i.e., the voice must wait until the system is finished). It will be appreciated that such execution may occur in certain underlying system 200 modes that prevent permanent side effects from the execution (as described in more detail herein below).
[0213] It will also be appreciated that this finalization is separate from the toolcast publication process (described in more detail herein below). The TC finalization module 8153 may run on a client of the underlying system, on a server, on a separate server, or a combination thereof.
[0214] The audio-based recorder 816 may allow users to record themselves and then convert the recording into a toolcast file so that the recording can be replayed. For some users, this flow may be more natural and easier to navigate than writing text. The resulting recording may also be converted into toolcast rich text format for later editing with the text-based recorder 815.
[0215] Thus, a user can record themselves while using the basic system 200. The voice recorder 8161 can record both the audio and the actions of the basic system 200. This can be enhanced with additional elements, such as visual highlights added to the basic system 200.
[0216] The audio editor 8162 can then use speech-to-text to convert the audio to text and capture the timing of the start and end of each word (or other text section). The audio editor 8162 can convert raw user events into toolcast ready events associated with the element. The audio editor 8162 can generate a rich text representation of the recorded toolcast (along with associated actions).
[0217] The Toolcast management system 80 can also support audio-based recording using a two-phase method (similar to the use of the Toolcast storyboard creator 811 described above), where the basic system 200 is recorded (without narration) and the narration is added in a separate follow-up phase. The audio-based recorder 816 can provide preliminary timing information to the user and thus help the user plan the narration.
[0218] It will be appreciated that the audio-based recorder 816 can provide audio-directed editing. For example, the audio editor 8162 may allow a user to replace a given segment of a recording with a newly recorded segment "over" the existing audio segment.
[0219] The audio post-processor 8163 may provide related post-processing functions such as improving audio quality, removing or reducing "dead" segments, removing "misspoken" sounds such as "ahh," removing background noise, etc. Such operations may be adapted to the presence of related actions and capabilities of the underlying system 200. That is, silent recorded sections may not be automatically removed if there are concurrent system actions occurring that require gaps in audio (including those that do not affect display).
[0220] It will be appreciated that the tools described herein above support the creation and editing of linear BTCs. The CTC creator and editor 818 can be used to create and edit CTCs, which include one or more BTCs, or hierarchies of such CTCs, and associate them with specific events and triggers occurring in the underlying system 200.
[0221] Reference is now made to Figure 10, which illustrates elements of the CTC creator and editor 818. The CTC creator and editor 818 may further comprise a timeline determiner 8181, a visual graph editor 8182, and a record analyzer and separator 8183.
[0222] It will further be appreciated that a CTC definition specifies the CTC flows and the events and triggers with which the CTCs and BTCs are associated (as described herein above).
[0223] The timeline determiner 8181 can determine how actions are executed based on the timeline or detected website events, which may affect the higher level CTC (e.g., determining when and how various elements of the CTC execute) and may also affect the underlying BTC (i.e., affecting how a particular BTC executes).
[0224] CTC definitions may include linear timelines (as in BTC and CTC), state charts, activity graphs (including multi-level graphs), script definitions (using scripting or programming languages), or other mechanisms.
[0225] In one embodiment, the flow may be defined using one or more state charts that describe when and under what conditions toolcast elements are played, as described in more detail herein below. Visual graph editor 8182 may provide a visual state chart editor that allows for editing of charts and integration with the underlying system 200.
[0226] The visual graph editor 8182 may include support for editing directed graphs, multi-level graphs (i.e., graphs in which nodes contain subgraphs), and multi-graphs (wherein node pairs can have multiple connecting edges).
[0227] In another embodiment, the Record Analyzer and Separator 8183 can create a linear CTC from a single recording by intercepting clicks or meaningful actions and separating the linear recording into multiple BTCs connected by those actions.
[0228] It will also be appreciated that in some cases, the mapping between the navigation of the underlying system 200 and the CTC structure (e.g., state chart graph structure) may not be obvious or may not be automatically determined. Thus, the visual graph editor 8182 may interact with the user to determine the correct structure and navigation. This may be done by presenting alternatives (which may be rejected, accepted, or modified), by asking one or more questions, or by other means.
[0229] In the case of BTCs, the underlying graph may be simple (e.g., a linear sequence of nodes, possibly with some entry points, exit points, or branches that skip certain subsequences), but the same techniques and interfaces described for CTCs may also be applicable to BTC editing.
[0230] It will be appreciated that the recorders and editors described herein above typically record a user's actions within the underlying system 200, for example when using audio-based toolcast generation or when using dry run methods. Such recording is typically straightforward, i.e., recording actual user interaction with the underlying system 200 and converting this interaction into definitions of relevant events, triggers and timing information with which the toolcast is associated.
[0231] However, such a recording may not include the user's imagined best way to perform a task in the underlying system 200. The user may perform irrelevant or incorrect steps, may miss a required step and return to it later (which may confuse the toolcast viewer), or may be re-tracing their steps.
[0232] Thus, the TC path optimizer 819 can analyze the user's steps to create an optimized, regular, or cleaned up version of the user's activity. Such analysis can be implemented in a variety of ways, including techniques from the field of code optimization (e.g., as used in compilers).
[0233] Reference is now made to Figure 11, which illustrates the elements of the TC path optimizer 819. The TC path optimizer 819 may comprise a description path generator 8191 and an adaptation engine 8192.
[0234] The TC Path Optimizer 819 uses the ML Engine 882 to analyze (and be trained on) the structure of the underlying system 200, the steps taken by the user, steps taken by end users of the same system (e.g., through collected BI information), and steps taken by end users of other sites using similar templates (subject to the anonymity, privacy, and intellectual property (IP) rights of other users).
[0235] The ML engine 882 can further analyze and train on hints provided by the template designer (e.g., predefined per-template path definitions in a WBS configuration), content or explicit hints provided in other technical material associated with the relevant section of the underlying system 200. Such material may include designs, specifications, documentation, training, or support that potentially produce alternative, optimized, or simpler paths for performing the same function or flow.
[0236] The descriptive path generator 8191 can generate descriptive information / explanation of how the optimization was performed, i.e., how the proposed alternative flows (or modifications made to the user-specified recoded flows) provide better or optimized results. Such an explanation can be based on a mapping between the recorded flows and the modified flows.
[0237] The adaptation engine 8192 can adapt additional elements of the tool cast in relation to changes made to the recorded path. Such adaptation can affect the definition of event triggers, ACEs, etc. Transformations can include reordering elements, removing elements that have become redundant, unnecessary, or "orphaned," and modifying the actual content of elements (e.g., through analysis and subsequent generation of various ACEs, such as text, image, audio, or video content) to fit the modified path.
[0238] The adaptation engine 8192 can either directly implement the changes or create a change plan (e.g., presented as a task list) that is evaluated and accepted, rejected, or further modified by the user. The user's response in such cases can provide additional feedback for training the adaptation engine 8192.
[0239] It will be appreciated that the integrated UNS / TC editor 8120 can provide integrated or combined editing of a given underlying system 200 with its toolcast. Such integrated editing can help the designer of the underlying system 200 to keep the two synchronized. The UNS / TC editor 8120 can include a graph analyzer 81201.
[0240] It will further be appreciated that the relationship between foundational systems 200 and toolcasts is a many-to-many relationship: a single foundational system 200 can have multiple associated toolcasts (e.g., for different components and subsystems), and such toolcasts may, but need not, be integrated under an "umbrella" top-level CTC.
[0241] A single toolcast (e.g., for a common component) may be associated with multiple underlying systems 200 (e.g., multiple underlying websites using the same template, using the same components, or multiple instances of the same underlying system 200).
[0242] As explained herein above, toolcasts are typically graph-structured objects (more precisely, multi-level graphs). This is true for both CTCs (which can be described using graph-based state charts) and BTCs (which may also include a graph representation).
[0243] The underlying system 200 can also be described as a graph (or possibly a multi-level graph), and the graph analyzer 81201 can determine the interconnections between displayed pages, and possibly between sub-areas or components of a single page (where a flow is defined).
[0244] It will be appreciated that navigation between nodes of the graph of the underlying system 200 may be explicit or implicit. For example, explicit navigation may be based on direct hyperlinks between different pages of the underlying website. Implicit navigation may be based on navigation targets (e.g., URLs) generated based on analysis, calculations, search results, or external database information.
[0245] In the case of explicit navigation, the graph analyzer 81201 can determine the graph arcs based on a static analysis of the underlying system 200 (e.g., from hardwired "href" links in the underlying website). In the case of implicit navigation, the graph analyzer 81201 can determine the graph arcs (e.g., web page transitions) of the underlying system 200 using a dynamic (runtime) analysis of displayed components, user flows, and other information collected at run time.
[0246] Both the underlying system 200 and the toolcast graph may be disjoint, i.e., composed of multiple disjoint subgraphs. This may occur in the underlying system 200 if (for example) it contains multiple websites that are presented based on external parameters (e.g., time of year, geographically detected user segmentation, user type, etc.).
[0247] The integrated UNS / TC editor 8120 may enable concurrent editing of the underlying system 200 and associated toolcasts, i.e., a combination of the editing capabilities of the underlying system 200 (e.g., the underlying WBS visual editor) and toolcast editing (e.g., the CTC graph / state chart editor). The integrated TC / UNS editing may be based on matching between the graphs of the underlying system 200 and the TC graphs, such that the two graphs can be edited in parallel. Thus, for example, changes made to one of the graphs can be reflected in the other graph, based for example on an analysis of similarity (homomorphism) between the graphs. Furthermore, a change in an area in the underlying element of a node (e.g., a page of a website) in one graph may cause the matching node in the other graph to be marked for maintenance (e.g., the matching toolcast of that page, etc.).
[0248] The integrated UNS / TC editor 8120 can also suggest automatic associations between the underlying system 200 (via the association manager 817) and toolcasts that can be rejected, confirmed, or edited by the user.
[0249] The coverage analyzer 8121 can detect areas where mismatches exist between the underlying system 200 and the toolcast and point them out to the user, allowing the user to correct the situation, for example, by modifying either the underlying system 200 or the toolcast. These can be areas with no coverage, situations where the toolcast coverage overlaps, areas where the underlying system 200 and the toolcast are out of sync, use of similar sub-elements with different toolcast coverage, etc. The coverage analyzer 8121 can check the toolcast coverage of pages, components, associated procedural code, and other units of the underlying system 200. It can also determine what is missing in the toolcast. The coverage analyzer 8121 can use analysis of the toolcast text or speech to detect mentioned elements that are not covered in the toolcast definition.
[0250] The edit-time recommender 8122 can provide editing hints and options to the toolcast designer. The edit-time recommender 8122 may be trained based on the underlying system 200 (or its underlying development framework or WBS) and the activity of users of the toolcast management system 80.
[0251] An example use of the integrated UNS / TC editor 8120 is the ability for a user to edit a toolcast to add toolcast nodes and instantly associate them with appropriate nodes and events in the underlying system 200. The visual graph editor 8182 can also be integrated with the various toolcast recorders described herein above (such as the text-based recorder 815 and the voice-based recorder 816).
[0252] It will be appreciated that one problem that the toolcast management system 80 needs to address is how to maintain the toolcast when the underlying system 200 changes. This includes what to do when the toolcast is activated and the underlying system 200 does not match the references defined in the toolcast at any level. This may occur, for example, if a required maintenance operation has not been performed (correctly or at all). Such changes may result from changes to the underlying system 200 itself, changes to the deployment and run-time environment of the underlying system 200 (e.g., changes to the underlying operating system or changes to dynamically linked code used by the underlying system 200).
[0253] It will be appreciated that the underlying system 200 is often developed (and deployed) using a development framework, which may be based on and provide continuous integration (CI) and continuous deployment (CD) services. In the following description, the WBS may be considered a category of development framework.
[0254] The maintenance module 87 can solve the maintenance and matching problems discussed above and can be integrated with the development framework of the underlying system 200. In this manner, the maintenance module 87 can automatically recognize when a tool cast breaks based on an analysis of changes to the underlying system 200 (e.g., changes to its layout, flow, content, or data).
[0255] Such integration can be achieved in any of the ways described above in this specification, such as through special interfaces (e.g., web services) or through the use of a deployment agent or plug-in of the toolcast management system 80 integrated into the development framework.
[0256] To accommodate possible Toolcast interruptions, the Toolcast management system 80 may provide elements that provide fallbacks, notifications, and interruption severity detection, as described in further detail herein below. This may be done by both the TC creator 81 and the TC player 85.
[0257] 12, which illustrates elements of the maintenance module 87. The maintenance module 87 may further include a TC (toolcast) deployment agent 871, an update analyzer 872, an information collector 873, a notifier 874, a TC (toolcast) reconciler 875, and a TC (toolcast) fallback applicator 876.
[0258] The TC Deployment Agent 871 may be added (e.g., as an additional module) to elements of the underlying system 200 within the development framework. The TC Deployment Agent 871 may be a general-purpose agent that may be configured only via the app ID (or other metadata) of the associated underlying system 200. The TC Deployment Agent 871 may fetch additional configuration information related to the Toolcast project, for example, from a server providing the Toolcast management system 80 service.
[0259] The TC deployment agent 871 may be activated when changes to the underlying system 200 are about to be deployed. The update analyzer 872 may perform an analysis to detect toolcast elements that are broken or not working for some other reason. The analysis may provide information about the level of disruption of the toolcast. The disruption may be related to a specific BTC or may affect a large portion of the toolcast.
[0260] The update analyzer 872 can run at a structural level, i.e., analyze whether elements in the underlying system 200 that correspond to the toolcast have changed in aggregate. This analysis may include when and where a given structural change was made, as well as ID and timestamp compatibility. The analysis may also analyze the content and intent of the toolcast describing a given underlying system 200 element that was changed or deleted. The update analyzer 872 can also perform recognition and analysis of the toolcast and underlying system 200 content. In the specific case where the toolcast management system 80 is integrated with a WBS that hosts an underlying website, the information collector 873 can interface with the document management subsystem of the WBS to get direct information about what has changed in the underlying website. Alternatively, the information collector 873 can get different versions of the underlying site (with information in the form of WBS objects) and compare the versions to detect changes.
[0261] The second scenario above may be relevant, for example, when a toolcast attached to site element A describes site element B (which does not have a directly associated toolcast). For example, it may make more sense to describe B in combination with A, which is semantically related to B (rather than B itself). In such a scenario, the update analyzer 872 can provide the necessary information.
[0262] It will be appreciated that the update analyzer 872 can be supported by hints provided by the developer, for example by defining in the toolcast configuration information of A that this toolcast is related not only to A but also to B, and based on this analysis the update analyzer 872 can determine which toolcast element (CTC or BTC) should be changed and in what way.
[0263] The notification component 874 can notify the underlying system 200 or toolcast developers of such updates, which may include generating explanatory media related to the associated toolcast.
[0264] The TC adjuster 875 can provide automatic corrections or adjustments to the tool cast itself (eg, adjusting position hooks or timing information).
[0265] The TC fallback applicator 876 can apply fallbacks to some or all of the toolcast elements. The TC fallback applicator 876 can also disable toolcast regeneration of some or all of the elements of the underlying system 200 and can shut down the toolcast management system 80 (e.g., until the toolcasts are updated).
[0266] The TC fallback applicator 876 can use alternative technologies to convey the relevant content through alternative means, such as a regular video describing the relevant underlying system 200 site section.
[0267] The UNS analyzer 813 and / or the update analyzer 872 may also analyze state mapping information of the underlying system 200 used by the TC player 85, as described in more detail herein below.
[0268] It will be appreciated that a developer of the underlying system 200 can manage multiple versions and configurations of the underlying system 200 within the development framework of the underlying system 200. These may include serial versions (following each other in time), parallel configurations (multiple coexisting variants), and interim versions (still under development).
[0269] The Toolcast management system 80 can maintain toolcasts that match these multiple versions and configurations, for example based on version / configuration ID.
[0270] Such parallel configurations of the underlying system 200 may include A / B or multivariate testing that provides multiple versions of the underlying code. Because some A / B tests may be open for significant periods of time, the developer of the underlying system 200 may create multiple toolcast elements for multiple A / B test branches (e.g., UNS would display different TC elements for each test variant). In fact, the toolcasts themselves may be subject to A / B testing to test which toolcast provides a better use of the associated underlying system 200 section.
[0271] In these cases, the TC creator 81 and TC player 85 may interface with a test management system (such as that described in US Pat. No. 10,733,078) that processes the underlying system 200 .
[0272] It will be further understood that such parallel configuration on the underlying system 200 may also include multiple language versions (translations) of a toolcast. The toolcast management system 80 may support multiple matching translations (including text translations and event relocations) of a given toolcast, for example, based on a translation UI extension that allows input of multiple language versions of a displayed ACE (including multiple media types).
[0273] Reference is now made to Fig. 13, which shows elements of the TC player 85. The TC player 85 may comprise a TC (toolcast) activator 851, a remote user simulator 853, a TC (toolcast) control toolbar display 854, an ACE display 855, and a user interaction manager 856. Reference is now made to Fig. 14, which shows elements of the TC activator 851. The TC activator 851 may further comprise an activation information collector 8511, an activation information analyzer 8512, and a runtime recommender 8513.
[0274] The TC activator 851 can provide for explicit activation of the toolcast by the user (e.g., by pressing a specific button) and can also provide for automatic activation of the toolcast, i.e., the TC activator 851 runs in the background and automatically activates the toolcast as described herein below.
[0275] The TC player 85 can dynamically execute toolcasts on a user's underlying system 200 based on the user's state and data, as well as triggers and events in the underlying system 200. This execution may include activation of individual toolcasts, or activation and entry using specific entry points (graph nodes, such as state chart nodes) within a particular multi-node CTC.
[0276] The TC activator 851 may be fully automatic or may require user confirmation, the latter of which may be particularly relevant where multiple tool casts are activated (or otherwise available) for particular underlying system 200 regions or under particular conditions and system states.
[0277] When making a toolcast activation or navigation decision, the TC activator 851 can take into account information collected by the activation information collector 8511 from multiple sources, such as the state of the underlying system 200, including the currently displayed page, internal state information, and what is being displayed at any given moment, and any internal databases and repositories of the underlying system 200 (or the system that hosts it), including BI information, data about the site (including design, layout, and site data), and data about particular users.
[0278] The TC activator 851 may also take into account the state of the user as determined from available information. In an integrated system, this information may include user-related information collected separately by the activation information collector 8511 from the underlying system 200, including user information not related to a particular website (e.g., integrated WBS information about users in general, not just specific websites hosted).
[0279] It will be appreciated that activation of a toolcast by the TC activator 851 can be based on an association (as described herein above). Such an association may also include activation conditions and rules. These conditions and rules may activate a toolcast based on various events occurring within or outside the underlying system 200 (e.g., a user's website) as well as data from the underlying system 200 analyzed by the activation information analyzer 8512. These may include user actions such as pressing a button, hovering a mouse near a component, pressing a link from the underlying system 200 such as a flow in the underlying system 200. This pressing may open a site page where the toolcast is active. The link may be a general link within the site or a specific link related to the toolcast.
[0280] Activation of a toolcast may also occur through an API, web service, or other interface type available to the underlying system 200. Through the interface module 83, the TC activator 851 can implement its own logic for when to trigger and activate a toolcast, separate from any logic and associations implemented by the toolcast management system 80.
[0281] In the case of an underlying system 200 that is a website, the activation information analyzer 8512 can analyze the website's DOM and state information (as well as underlying system 200 information or user data) and derive information that can be converted into toolcast nodes and opened.
[0282] The TC Activator 851 may further be activated via predefined initial nodes that may be associated with points in the underlying system 200, or from the results of an Activation Information Analyzer 8512 that examines the screen from an external visual analysis in addition to an internal / DOM analysis. Many such analysis algorithms are described in U.S. Pat. No. 11,275,815.
[0283] Activation can be based on proactive analysis, analysis of user behavior by the activation information analyzer 8512, server-side information about the underlying system 200, such as "is the user stuck or having problems in a particular underlying system 200 area," or stored by the underlying system 200 (so that "shadow" tool casts that would not be activated under normal circumstances can be activated).
[0284] The activation information analyzer 8512 can also determine activation, user related metrics, parameters, and events, which may include analysis of user metrics such as voice-based sentiment analysis and voice-based triggers, which may be based on direct voice commands or voice analysis indicating stress, frustration, etc.
[0285] Activation may also be triggered by user-related detection, for example via sensors, gesture analysis, etc., by other events or conditions that may be detected via the toolcast management system 80 / foundational system 200 interface described above, or by interaction with the foundational system 200, or by the toolcast management system 80 itself (including any mouse, keyboard, voice, or other interaction).
[0286] A runtime recommender 8513 can select which CTCs to activate. The runtime recommender 8513 can be rule-based or ML-based and can use associations and other information and events as described herein above.
[0287] The runtime recommender 8513 may also explicitly recommend to the user (rather than the internal flow engine) which toolcast is best to run at a given time. The runtime recommender 8513 may use the underlying condition specification for each toolcast; i.e., what conditions must be in place for a toolcast to be playable with respect to the state of the underlying system 200, the existence of necessary underlying system 200 structures, and the user's previous actions (such as navigating to a particular URL). The information collected and generated by the runtime recommender 8513 (such as a list of toolcasts that may be run at a particular time) may be used to create a toolcast content table for the "Tell me more" view.
[0288] It will be appreciated that the TC Player 85 can navigate within the toolcast (both BTC and CTC) based on user state and events within the underlying system 200. This user state is defined based on information extracted from the underlying system 200 (and potentially the underlying infrastructure hosting the underlying system 200) by the Activation Information Collector 8511 and the UNS Analyzer 813. Such information may include displayed underlying system 200 information (e.g., site DOM). This information may include specific details such as the currently displayed URL / page, the displayed elements, the position of content within each element (e.g., scrollbar position), etc.
[0289] This information may also include data exposed by the underlying system 200 (from the client or server side), including data available through separate parallel channels, and data extracted from the underlying system 200 and analyzed by the activation information analyzer 8512, as described above in this specification (with respect to the interface between the toolcast management system 80 and the underlying system 200, whether integrated or not).
[0290] It will be appreciated that some of the analysis by the activation information analyzer 8512 described hereinabove can be performed in advance. For example, instead of performing the analysis at run-time, the TC deployment agent 871 can perform an analysis of the deployed version of the underlying system 200 and collect initial information for the state mapping model each time changes to the underlying system 200 are deployed.
[0291] Based on such run-time or pre-execution analysis, the UNS structure mapper 84 can create and manipulate mapping models for mapping between the state and data of the underlying system 200 (such as complex DOM trees) and well-defined user states in a state chart.
[0292] The UNS Structure Mapper 84 can use a mapping model to derive a user state (as defined herein above) and convert it to a system state. The UNS Structure Mapper 84 can map collected information (DOM, user location, underlying system 200 data, or other) to states in a state chart. It can then traverse between states in the state chart based on the mapped user events and data and instruct the TC Activator 851 to activate tool casts based on the derived system state. The UNS Structure Mapper 84 can then generate outputs from the activated tool casts, including multiple output types and effects, as described in more detail herein below.
[0293] The UNS structure mapper 84 may also implement state charts that are integrated into the CTC (and form the underlying graph structure of the CTC). The toolcast management system 80 may also implement separate state charts (e.g., those related to the underlying system 200 and that are not part of the CTC but still drive separate toolcast regeneration).
[0294] It will be appreciated that the Toolcast management system 80 may use alternative structures for mapping between state and data, user activity, and Toolcast flow of the underlying system 200. These alternative structures may include graph structures and the use of branches and conditions.
[0295] As described herein above, a toolcast definition may include various "outputs" that are manipulated, displayed, or activated by the running toolcast. These typically include generating underlying system 200 events (such as keyboard or mouse events) and displaying ACEs (such as subtitles or audio). ACEs may include additional media types, including static and dynamic media.
[0296] These outputs can affect the underlying system 200 by replicating the effects of user-originated events. The TC player 85 can activate these effects through the interfaces of the interface module 83, as described herein above. In particular, the remote user simulator 853 can enable the tool cast to trigger responsive events on the underlying website DOM as if the remote user were doing so (clicking, dragging, hovering, scrolling, editing, and creating elements).
[0297] In general, the remote user simulator 853 can trigger events by simulating normal user actions (e.g., mouse clicks), thus minimizing the effort required to integrate the TCMS with the underlying system 200. For example, the remote user simulator 853 can dispatch DOM events to associated elements, which typically react as if the dispatched events were triggered by a normal user.
[0298] It will be appreciated that the TC player 850 can provide various UIs in the form of toolbars to provide user input to both the TC creator 81 and the TC player 85, as described herein above. The TC control toolbar display 854 can display a toolbar for the user to control the display of the tool cast as desired. Reference is now made to Figures 15, 16 and 17 which show such toolbar interfaces.
[0299] FIG. 15 shows a TC Player 85 running a Toolcast for a restaurant menu building system, with the Toolcast toolbar A displayed at the bottom of the page.
[0300] FIG. 16 is an expanded view of the toolbar A showing control buttons D, such as pause, play, and volume, shown on the left, flanked by an image of a virtual trainer avatar B (a person representing the “voice” of the Toolcast), the current subtitle ("Help me set up the restaurant"), and an exit button C to exit the Toolcast system.
[0301] Reference is now made to FIG. 17, which illustrates a different embodiment of the toolbar A. This version illustrates an additional drawing (ACE) F that is placed on top of the screen of the foundational system 200 by the TC player 85. In this case, the drawing is in the toolbar area of the toolcast, but it could also be added elsewhere on the foundational system 200 screen. The drawing includes "pause" and "play" labels and a chef's hat F next to the associated toolbar buttons. It will be appreciated that there is also a toolcast-specific cursor G to guide the toolcast viewer and point to associated elements. In this embodiment, the toolcast cursor is labeled "Maya" to provide the viewer or user with a personification of the toolcast virtual trainer.
[0302] It will be appreciated that with an integrated underlying system 200, the toolcast management system 80 has two important advantages. First, the TC deployment agent 871 is integrated with the development framework or WBS of the underlying system 200 and can reliably detect any toolcast failures. Second, if the required user events are difficult to simulate, the interface module 83 can inject a remote user simulator 853 into the underlying system 200 (or its underlying framework) to replace these hard to simulate actions.
[0303] The ACE displayer 855 can create additional or enhanced UI elements on top of the underlying website, or modify existing elements. These modifications can be based on the use of "floating elements" that are added on top of the current underlying system 200 view (possibly using additional display "layers"). This allows the underlying system 200 screen to be used to act as a smart whiteboard where the toolcast management system 80 user can add markers, arrows, text, etc.
[0304] The User Interaction Manager 856 can manage the interface between the TC Player 85 and the user while a toolcast is running, including receiving instructions from the user and handling additional elements such as pop-up surveys that require input during a live toolcast.
[0305] It will be appreciated that the TC player 85 can respond to each user interaction (eg, question answering).
[0306] The user interaction manager 856 may provide a "reaction mode" in which editing of the behavior (eg, actions / reactions) of a TC element may be done in a manner integrated with modified versions of the associated underlying system 200 element.
[0307] In such a mode, the user interaction manager 856 can change the display of a particular underlying system 200 element to reflect the current action associated with that element. The user can also select an action and associate it with a given underlying system 200 element.
[0308] For example, the TC Player 85 may modify an element with a yellow border if clicking on that element leads to another tool cast step, or may modify an element with a red border if clicking on the area of this element stops the tool cast.
[0309] The TC Player 85 can also modify existing elements in the underlying system 200. Such modifications may include highlighting, hiding, or changing attributes or settings of elements. In the case of an underlying website, such modifications may be made at the DOM level.
[0310] In the case of an underlying website hosted by a WBS, the toolcast management system 80 may support additions and modifications at the component level. Additionally, the underlying WBS may provide additional services such as applying dynamic layouts and responsive editing to new and modified components as recipients of such effects or actions (as described in U.S. Patents 10,185,703 and 10,984,177).
[0311] It will be appreciated that such modifications to the website may be adapted to accommodate different ways of rendering the website, as described herein above.
[0312] Further, it will be appreciated that the foundational system 200 typically operates in conjunction with the Toolcast management system 80 as well as operating without the Toolcast management system 80. Thus, navigating and manipulating the foundational system 200 can result in multiple persistent effects, such as changes to databases and requests made to connected systems.
[0313] In some cases, however, users of the toolcast management system 80 may wish to interact with the underlying system 200 in a manner that limits permanent side effects resulting from operations of the underlying system 200. Such cases include when performing a "dry run" of a toolcast to gather information for constructing a follow-up toolcast, or when editing a toolcast. For example, when making multiple edits to a toolcast that demonstrates the purchasing process for a product, the user may not want to order multiple copies of the product to use in the demonstration.
[0314] The user may also wish to limit side effects that persist during the toolcast finalization phase (described above in this specification) in which the toolcast management system 80 performs execution of the toolcast to collect timing information, and during playback of the toolcast (and using rewind or forward on the toolcast) to study the operation of the underlying system 200 with substantial side effects.
[0315] In some toolcasts, the side-effect problem is mitigated because the toolcast requires the user to activate the operation (which causes the side-effect) themselves: the TC player 85 can guide the user and prompt them to make the change, but the user can choose whether or not to do so.
[0316] For other toolcast systems, the toolcast management system 80 may use a number of techniques that may be implemented by the underlying system 200 or the underlying WBS / development framework level. These techniques may include the use of the underlying system to implement a special mode in which changes or side effects made by the underlying system are not persistently saved. The underlying system may save such changes to the underlying system's database during the toolcast session (which would otherwise result in a lack of context in the toolcast session).
[0317] Other technologies may include the implementation of a parallel database that is used when running toolcasts in place of the underlying system's regular database, as well as the implementation of an underlying transaction system with rollback / undo capabilities.
[0318] The underlying system 200 may interact with additional associated systems, which may also need to support coordinated rollback / undo between the associated systems using the techniques detailed herein above.
[0319] As described herein above, the toolcast management system 80 can utilize multiple ML (machine learning) engines 882 for analysis, recommendation generation, transformation, and other needs.
[0320] As described herein above, the ML engine manager 88 can collect data and train multiple different ML models for different needs and different ML-based engines. The ML engine manager 88 can generate new models (based on the collected training data) and evaluate their performance against existing models. The training data may include information about the collected information as well as actions taken based on various recommendations.
[0321] It is understood that the ML model may be any model suitable for the task or activity performed by each ML-based engine. Machine learning models are known in the art and are usually some form of neural network. The term refers to the ability of a system to recognize patterns and provide solution concepts based on existing algorithms and datasets. The more a system is trained, the more knowledge it develops.
[0322] The basic ML model may be a learning model (supervised or unsupervised). By way of example, such algorithms may be prediction (e.g., linear regression) algorithms, classification (e.g., decision trees, k-nearest neighbors) algorithms, time series prediction (e.g., regression-based) algorithms, association algorithms, clustering algorithms (e.g., K-means clustering, Gaussian mixture models, DBscan), or Bayesian methods (e.g., Naive Bayes, Bayesian model averaging, Bayesian adaptive trials), image-to-image models (e.g., FCN, PSPNet, U-Net), sequence-to-sequence models (e.g., RNN, LSTM, BERT, autoencoders) or generative models (e.g., GAN).
[0323] Alternatively, the ML model may implement statistical algorithms such as dimensionality reduction, hypothesis testing, one-way analysis of variance (ANOVA) testing, principal component analysis, joint analysis, neural networks, support vector machines, decision trees (including random forests), ensemble methods, and other techniques. Other ML models may be generative models (such as generative adversarial networks or autoencoders) that generate the TC definitions and elements.
[0324] In most embodiments, the ML model undergoes a training or learning phase before being released into production or runtime phase, or can begin operating on a model from an existing system or model. During the training or learning phase, the ML model can be tuned to focus on specific variables to reduce error margins or otherwise optimize its performance. The ML model may initially receive inputs from a wide variety of data, such as the collection data described herein.
[0325] In another embodiment, if appropriate for a particular task, one or more of the ML models may be implemented in a rule-based system, such as an expert system or a hybrid intelligent system incorporating multiple AI techniques, as described in the Wikipedia articles entitled "Rule-Based System" and "Hybrid Intelligent System" at en.wikipedia.com.
[0326] It will also be appreciated that the Toolcast management system 80 may provide additional functionality based on Toolcast, such functionality being outside the normal use of Toolcast via the TC player 85.
[0327] The toolcast itself operates in conjunction with the underlying system 200 (at both the BTC and CTC levels), providing input to the underlying system 200 and reviewing and analyzing its operation, however the generated products may operate standalone and not interface with a running underlying system 200.
[0328] In particular, the automated execution component 891 can cause the automated execution of the toolcast (or parts thereof) to generate a multitude of possible alternative products (or deliverables), which may have linear or non-linear / branching structures and which may or may not be interactive.
[0329] At the CTC level, the auto-executor 891 can place the various CTC sub-elements in the proper order for linear presentation. This may be based on (for example) an analysis of the content of the CTC elements or hints contained in the CTC elements. The auto-executor 891 can also use information and hints provided by the underlying website directly, or based on such information and hints from the underlying template used to build the website.
[0330] It will be appreciated that this automated execution may require the underlying system 200 to provide a series of inputs (e.g., UI interactions) to the underlying system 200 on behalf of the user. Such inputs may be added to the input sequence covered in the existing toolcast. These inputs may be generated based on collected toolcast user (playback) responses (as described above). These inputs may also be generated by an ML model that analyzes the collected inputs to recommend the correct way to proceed with the toolcast.
[0331] The generated product may include, for example, a regular video to document the underlying system 200 or to provide training on its use. Such a video may be played using a regular video file player (such as VLC by VideoLAN). The generated product may further include an interactive video using a separate interactive video player. Such an interactive video may be based, for example, on the use of "hot regions" that allow clicking within the video to branch within the video or to branch outside the video to external media.
[0332] Other generated products may include standalone websites or applications (e.g., mobile or desktop) that can provide a visual simulation of or training on the underlying system 200 without requiring access to the actual underlying system 200.
[0333] Standalone playable data files may also be included, and such formats may include timing, text, and image content that provides interactive tutorials run by (for example) a dedicated player, which still does not require the underlying system 200 to be present or any integration in order to operate, and may further include analysis and coverage maps, e.g., maps showing which portions of the underlying system 200 code (or screens or objects) are "covered" by the toolcast content.
[0334] It will be appreciated that the additional toolcast-based deliverables described herein above may also require maintenance, similar to the toolcast maintenance described above, as changes are made to the underlying system 200. In such cases, the mechanisms described above (for handling changes to the underlying system 200) may be applied to these additional toolcast-based deliverables.
[0335] It will be appreciated that the generated products may include offline products, such as written documents, generated based on the toolcast content in conjunction with the displayed underlying system 200 content.
[0336] The app store interface 8100 can support the provision and distribution of toolcasts through an app store (including in-app purchases). The app store can offer toolcasts as separate sellable objects. The app store can also offer toolcasts as add-ons to existing applications sold in the associated app store.
[0337] The tooltip handler 8101 can add toolcasts to existing tooltips, including tooltips created as toolcast-activated UI, allowing an easy way to extend apps with toolcasts. These tooltips are sometimes called live tooltips.
[0338] Live tooltips look the same as regular tooltips, but have a corresponding "Learn more" play button that immediately starts a toolcast in the same context. This quick replacement enables a way to integrate toolcasts into a system with little UI / UX (user experience) effort.
[0339] It will be appreciated that toolcasts can also be recorded by third party content creators or "influencers" and then triggered in conjunction with use of the underlying system 200. This could be, for example, through the use of a special link. In this way, a link to a website will open both the underlying system 200 and the toolcast recorded by the third party content creator.
[0340] As part of this system, both the vendors of the Toolcast Management System 80 / Underlying System 200 may employ various measures to ensure the quality, functionality, security, coverage and appropriateness of the Toolcasts provided. The vendors of the Toolcast Management System 80 or the Underlying System 200 may also disqualify (fully or partially) Toolcasts that may be fraudulent, not adequately describing the Underlying System 200, be of poor quality, infringe intellectual property rights, and pose security risks (e.g., by linking to inappropriate external websites).
[0341] Thus, the toolcast management system can be used in conjunction with an underlying system, such as a website building system, to create and run toolcasts that provide help, events, subtitles, etc. based on user data and the state of the underlying system, and can also handle direct interaction with the user.
[0342] Unless otherwise indicated, and as will be apparent from the preceding discussion, discussions throughout this specification using terms such as "processing," "computing," "calculating," "determining," and the like, are understood to refer to actions and / or processes of any type of general purpose computer, such as a client / server system, mobile computing device, smart appliance, cloud computing unit, or similar electronic computing device that manipulates and / or transforms data in the registers and / or memory of the computing system into other data in the memory, registers, or other similar information storage, transmission, or display device of the computing system.
[0343] An embodiment of the present invention may include an apparatus for performing the operations herein. The apparatus may be specially constructed for the desired purpose, or the apparatus may typically include a computing device or system having at least one processor and at least one memory selectively activated or reconfigured by a computer program stored in the computer. The resulting apparatus, when instructed by the software, may transform a general-purpose computer into the elements of the present invention described herein. The instructions may define the apparatus of the present invention to operate on a desired computer platform. Such computer programs may be stored on a computer-readable storage medium, such as, but not limited to, any type of disk, including optical disks, magneto-optical disks, read-only memory (ROM), volatile and non-volatile memory, random access memory (RAM), electrically programmable read-only memory (EPROM), electrically erasable and programmable read-only memory (EEPROM), magnetic or optical cards, flash memory, disk-on-key, or other type of medium suitable for storing electronic instructions and capable of being connected to a computer system bus. The computer-readable storage medium may be implemented in cloud storage.
[0344] Some general purpose computers may include at least one communication element to enable communication with data networks and / or mobile communication networks.
[0345] The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs written in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the desired methods. The desired structure for a variety of these systems will appear from the description that follows. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be understood that a variety of programming languages can be used to implement the teachings of the present invention as described herein.
[0346] While certain features of the invention have been illustrated and described herein, numerous modifications, substitutions, changes, and equivalents will occur to those skilled in the art, and it is to be understood, therefore, that it is the intention to cover all such modifications and changes as fall within the true spirit of the invention.
Claims
1. 1. A system for creating and displaying tool casts, comprising: A processor; a toolcast management system executing on the processor in communication with an underlying system, the toolcast management system creating, displaying, and updating the at least one toolcast to provide media guidance to the user of the underlying system according to a toolcast management interface with the underlying system and interactions between a user and at least one toolcast; The tool cast management system includes: an interface module that interfaces with the underlying system and detects at least one of objects, data, activities, and events of the underlying system that are to be recorded in a recording phase of the at least one toolcast; a TC (toolcast) creator for recording, generating and editing said at least one toolcast according to at least an output of said interface module; a TC (toolcast) player for playing said at least one toolcast while interacting with said user; The system comprising:
2. The system of claim 1 , wherein the at least one toolcast is at least one of an active tutorial, documentation, courseware, and intra-user messaging.
3. The system of claim 1 , wherein the underlying system is at least one of a website, a website building system, and a document editing system.
4. A database for storing basic tool casts and composite tool casts; a maintenance module for maintaining said at least one tool cast when changes are made to said underlying system; a toolcast synchronizer that supports synchronization of the at least one toolcast with other associated toolcasts when changes are made to the underlying system; an underlying system structure mapper that provides, for the at least one Toolcast, a mapping of the underlying system's structure, associations, events, and interfaces to the Toolcast management system; and a ML (machine learning) manager that collects data about the underlying system and the users and provides machine learning training and support to the TC creators and the TC players accordingly; The system of claim 1 , further comprising at least one of:
5. The TC creator: a toolcast storyboard creator for generating a storyboard for said at least one toolcast; a generative text engine for generating text for the storyboard of the at least one toolcast; a UNS (Understanding Systems) analyzer for analyzing the elements of said foundational systems and site structures; a business intelligence (BI) analyzer for analyzing BI information collected from the underlying system; A CTC (Composite Tool Cast) Creator to create a composite tool cast that contains a hierarchy of basic tool casts; a text-based recorder that enables a designer of the at least one toolcast to create a text-based toolcast using a rich text editor; an audio-based recorder enabling the at least one toolcast designer to record himself / herself and convert said recording into a toolcast file; an association manager for creating Toolcast associations in an interfaced configuration between the Toolcast management system and the underlying system; a TC (Toolcast) Path Optimizer for determining and optimizing a flow of activities of the at least one Toolcast; an edit-time recommender that provides editing hints and options to the designer of the at least one tool cast; a coverage analyzer for detecting mismatches between the underlying system and the at least one toolcast according to a toolcast definition of the at least one toolcast; and a UNS(underlying system) / TC(toolcast) editor providing integrated or combined editing of said underlying system with said at least one toolcast; The system of claim 1 , comprising at least one of:
6. The TC player includes: a TC activator that automatically enables activation of the at least one toolcast by the user; a remote user simulator that enables the at least one toolcast to trigger responsive events on the underlying system by simulating actions of the user; a TC (tool cast) control bar display for displaying a toolbar to allow the user to control the display of the at least one tool cast; an ACE (assistance content element) display unit that creates UI (user interface) elements added or extended on the display by the TC control bar display unit; and a user interaction manager that enables interaction between the at least one toolcast and the user during playback of the at least one toolcast; The system of claim 1 , comprising at least one of:
7. The system of claim 1 , wherein the at least one tool cast is a user-adaptable tool cast.
8. creating, displaying, and updating at least one toolcast to provide media guidance to a user of the underlying system in accordance with a toolcast management system interface with the underlying system and interactions between the user and at least one toolcast; and said creating, displaying, and updating includes: interfacing with the underlying system; Detecting at least one of objects, data, activities, and events of the underlying system that will be recorded in a recording phase of the at least one toolcast; recording, generating, and editing the at least one tool cast according to at least the output of the detecting; playing the at least one toolcast while interacting with the user; and A method comprising:
9. The method of claim 8 , wherein the at least one toolcast is at least one of an active tutorial, documentation, courseware, and intra-user messaging.
10. The method of claim 8 , wherein the underlying system is at least one of a website, a website building system, and a document editing system.
11. storing the basic tool casts and the composite tool casts in a database; maintaining the at least one tool cast when changes are made to the underlying system; supporting synchronization of the at least one toolcast with other associated toolcasts when changes are made to the underlying system; providing, for the at least one Toolcast, a mapping of the underlying system's structure, associations, events, and interfaces to the Toolcast management system; and collecting data about the underlying system and the users and responsively providing machine learning training and support for the recording, generating, and editing, and the playback of the at least one toolcast; The method of claim 8 , further comprising at least one of:
12. The recording, generating, and editing of the at least one tool cast includes: generating a storyboard of said at least one toolcast; generating text for said storyboard of said at least one tool cast; Analyzing the underlying system elements and site structure; Analyzing business intelligence (BI) information collected from the underlying systems; creating a composite tool cast that includes a hierarchy of elementary tool casts; enabling a designer of said at least one toolcast to create a text-based toolcast using a rich text editor; enabling a designer of said at least one toolcast to record himself / herself and converting said recording into a toolcast file; creating a toolcast association in an interfaced configuration between the toolcast management system and the underlying system; determining and optimizing a flow of activity of the at least one tool cast; providing editing hints and options to the designer of the at least one tool cast; detecting a mismatch between the underlying system and the at least one tool cast according to a tool cast definition of the at least one tool cast; and providing an integrated or combinatorial edit of said underlying system with said at least one toolcast; The method of claim 8 , comprising at least one of:
13. The regenerating of the at least one tool cast comprises: automatically enabling activation of the at least one tool cast by the user; enabling the at least one tool cast to trigger responsive events on the underlying system by simulating actions of the user; displaying a toolbar to enable the user to control a display of the at least one tool cast; creating additional or enhanced UI (user interface) elements on top of the display by displaying the toolbar; and enabling interaction between the at least one toolcast and the user during playback of the at least one toolcast; The method of claim 8 , comprising at least one of:
14. The method of claim 8 , wherein the at least one tool cast is a user-adaptable tool cast.