System and method for generation and interactive editing of living document
The integration of a textual content generator with a hierarchical data structure and analysis engine in website building systems addresses the lack of text content creation support, enabling efficient and effective text generation for website components, enhancing user experience and site completion.
Patent Information
- Application Number
- JP2025106265
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-05-30
- Filing Date
- 2025-06-24
- Publication Date
- 2025-09-17
AI Technical Summary
Existing website building systems lack support for generating and guiding users in creating text content, often providing only empty components or nonsensical placeholder text, leading to user frustration and incomplete site publication.
A website building system integrated with a textual content generator that uses a hierarchical data structure, information gathering, and analysis engine to interactively generate and edit text content, incorporating user and crowd-sourced data, along with predefined content and user editing, to provide tailored and effective text for website components.
Enables users to create high-quality text content efficiently, reducing writer's block and ensuring accurate, relevant content for websites, thereby improving site completion rates and user satisfaction.
Smart Images

Figure 2025134931000001_ABST
Abstract
Description
[Technical Field]
[0001] This application claims priority from U.S. Provisional Patent Applications Nos. 62 / 854,324 and 62 / 854,329, filed May 30, 2019, both of which are incorporated herein by reference.
[0002] The present invention relates generally to website building systems, and more particularly to textual content generation. [Background technology]
[0003] Website building systems are used by both beginners and professionals to create interactive websites. Existing website building systems are based on a visual editing model, and most website building systems provide multiple templates, typically including complete sample websites, website sections, and templates containing single pages or sections of pages.
[0004] A website construction system user (also called a designer, subscriber, subscribing user, or site editor) may design a website, and an end user of the website ("user's user") may access the website created by the user. Although an end user typically accesses the system in read-only mode, the website construction system (and website) may allow an end user to perform modifications to the website, such as adding or editing data records, adding talkbacks to news articles, or adding blog entries to blogs. The website construction system may actually allow multiple levels of users (i.e., two or more levels), and assign different permissions and capabilities to each level. A website construction system user (especially in a fully or partially online configuration, as described below) may register with a website construction system server, which manages the users, their websites, and access by end users.
[0005] A website building system may be a standalone system or embedded within a larger editing system. It may be online (i.e., applications are edited and stored on a server), offline, or partially online (websites are edited locally but uploaded to a central server for publication). A website building system may use an internal data architecture to store a website building system-based site, and this architecture may organize the internal data and elements of the site being handled. This architecture may differ from the external view of the site (e.g., as seen by an end user) and is typically different from the way the 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 related to editing and maintenance of the site in the website building system but are not externally visible to end users (or even to some editing users). The website building system may implement part of its functionality (including both editing and runtime functionality) on a server or set of servers and part of its functionality on client elements. The website building system may also dynamically decide whether to perform some functionality on the server or on the client platform.
[0007] A website building system handles the creation and editing of visually designed applications (such as websites), which typically consist of pages, containers, and components. Pages are displayed separately and may contain components. Components can contain containers as well as atomic components.
[0008] A website building system can support hierarchical arrangement of components using atomic components (text, images, shapes, videos, etc.) as well as various types of container components (e.g., regular containers, single-page containers, multi-page containers, gallery containers, etc.) that contain other components. Subpages contained within a container component are called minipages, each of which can contain multiple components. Some container components display only one minipage at a time, while others display multiple minipages simultaneously.
[0009] Components can have little content, or they can have internal content. An example of the first category is a star component, which does not have any internal content (but has color, size, position, and a few 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. Of course, this content can change from one instance of the text paragraph component to another. Components that have content are often called fields (e.g., "text fields").
[0010] Pages can use templates, general page templates, or component templates. Specific cases of templates include the use of an application master page that contains components duplicated in all other regular pages, or the use of an application header or footer (repeated on all pages). Templates can be used for entire pages or page sections. Website building systems can provide inheritance between templates, pages, or components, potentially including 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. Website building systems can also support dynamic layout processing, i.e., a process in which editing a given component (or other changes affecting it, such as externally driven content changes) can affect other components, as further described in U.S. Patent Application Publication No. 2013 / 0219263, entitled "Website Design System Integrating Dynamic Layout and Dynamic Content," published August 22, 2013, assigned to the common assignee of the present invention, and incorporated herein by reference.
[0012] The website building system can be extended using third-party applications and components thereof, as well as list applications (such as those described in U.S. Patent Application Publication No. 2014 / 0282218, entitled "Website Building System Integrating Data Lists with Dynamic Customization and Adaptation," published September 18, 2014, assigned to the common assignee of the present invention, and incorporated herein by reference). These third-party applications and list applications can be added and integrated into the designed website.
[0013] Such third-party applications and list applications may be purchased (or obtained) through several distribution mechanisms, such as being pre-included in the website building system's design environment, from an application store (integrated with the website building system or external to it), or directly from the third-party application vendor.
[0014] The third-party application may be hosted on the website building system vendor's own servers, on the third-party application vendor's servers, or on a fourth-party server infrastructure.
[0015] The website building system may also allow procedural code to be added to some or all of the system's entities. Such code may be written in a standard language (e.g., JavaScript), an extended version of a standard language, or a language proprietary to the particular website building system. The executed code may reference APIs provided by the website building system itself or by external providers. The code may also reference internal structures and objects of the website building system, such as pages, components, and their attributes.
[0016] Procedural code elements can be activated via event triggers, which can be associated with user activity (such as mouse movements or clicks, page transitions, etc.), other user-related activity (such as an underlying database or a specific database record being updated by another user), system events, or other types of conditions.
[0017] The activated code can be executed within a client element of a website building system, on a server platform, or using a combination of the two or a dynamically determined execution platform. Such a system is described in U.S. Patent Application Publication No. 2018 / 0293323, entitled "System and Method for Smart Interaction Between Website Components," published October 11, 2018, which is assigned to the common assignee of the present invention and incorporated herein by reference.
[0018] Typical site creation can be based on several models, including a visual editing model (where a user edits a previously created site) as shown in FIG. 1 and an automated site generation model or a combination thereof, as described in U.S. Pat. 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, assigned to the common assignee of the present invention, and incorporated herein by reference.
[0019] 1 illustrates a system 100 comprising a typical website building system 5 in communication with client systems operated by WBS vendor staff 61, site designers 62 (i.e., users), site users 63 (i.e., users' users), and an external system 70. The website building system 5 may further comprise a WBS (website building system) site manager 10, an object marketplace 15, a WBS RT (Runtime) server 20, a WBS (website building system) editor 30, a site generation system 40, and a WBS content management system (CMS) 50. It may be understood that the elements of FIG. 1 may function as described in U.S. Pat. No. 10,073,923.
[0020] In the visual editing model, users (designers) edit sites based on one or more website templates. Website building system providers can offer multiple site (or other) templates, each of which may contain complete sample websites, website sections, single pages, or page sections. Users may have the option to start with an empty site (essentially a "blank page" template), but typically start with an actual site template.
[0021] Website building system providers can offer site templates ranging from the very general (e.g., mobile site, e-store) to the more specific (e.g., law firm, restaurant, florist) to the very specific (e.g., commercial real estate law firm or Spanish tapas restaurant). Such templates are typically stored in a repository accessible to users of the website building system and are typically categorized according to business type, subtype, or industry. Templates can also be created (and categorized) not only by business type, but also by style, color range, or other parameters. Site templates can be extended with additional (typically back-end) features, services, and code to become full-fledged vertical solutions integrated with the website building system.
[0022] Thus, a user's initial experience when creating a site using a website building system's visual editor is typically for the user to select a template (e.g., according to style or industry type / subtype), possibly selecting a blank template, and then editing 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 can then publish the modified site.
[0023] Under the site generation model, a website building system generates an initial site for a user based on a selected template, which is then potentially modified by filling in common elements of information and potentially allowing follow-up editing of the generated site. This filling in is necessary because the template contains different information (such as the business name and a description of the management team) in multiple places within its pages. Thus, a user may need to change the business name (for example) in multiple places throughout the template.
[0024] Additionally, some template elements (e.g., a generic 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 manually specified (e.g., details of different people on a company's management team) or dynamically derived from an external database (e.g., product details from a "products for sale" database). Such configurations are often known as "repeaters."
[0025] Templates can also contain fields. For example, a website building system may allow a template designer to specify fields (also called "placeholders") to insert values into a template, such as {CompanyName}, {ProductName}, {ProductPrice}, etc. A user can also specify values for fields defined in the template selected for the website.
[0026] The website building system 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 website areas, colors, style information, links, formatting options, website display options, decorative elements (borders and backgrounds, etc.), etc.
[0027] The website building system may also allow the user to enter some of this additional information before selecting a template and use this information to aid in template selection (e.g., by narrowing the set of suggested templates). For example, the user may select a 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.
[0028] The system 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 system may further create connections (or bindings) between the template's multi-instance elements (described earlier in this specification) and internal or external databases that provide the data instances used to generate the displayed instances.
[0029] Once a template is selected and its fields and additional information are specified (e.g., through a questionnaire or through binding to a data source), the website building system can generate a website containing the combined information. The user can then publish the site (through the website building system or other methods).
[0030] Website building systems can perform semi-automated site creation using a different model, such as that described in U.S. Patent No. 10,073,923. Under this model, the system collects information about the user and their website requirements from multiple sources, which may include, for example, user-filled questionnaires, 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 specific industries (such as lawyers, restaurants, plumbers, graphic designers, etc.) such as basic template information for specific industries (e.g., distinguishing between real estate lawyers and personal injury lawyers).
[0031] The system may also collect external information from other sites, both internal and external to the system. Such information may influence, for example, the selection of surveys and layout elements offered, suggested defaults, etc. Such information may also be collected statistically or generally, typically to avoid disclosing 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 the user, which may be direct (e.g., an existing website address) or indirect (e.g., a business name and geographic address that may be used to find information about the business).
[0032] The collected information is analyzed and placed into a repository of content elements, which are then mapped to layout elements that present the content, and the layout elements are combined to form the site. The layout element mapping, selection, and combination process can be fully automatic or semi-automatic (i.e., includes user interaction).
[0033] To support the above functions, a website building system typically maintains a set of repositories stored on one or more servers or server farms. Such repositories may typically include a user information / profile repository, a WBS (website building system) 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 rule repository, a family / industry repository, etc. Summary of the Invention
[0034] Therefore, in accordance with a preferred embodiment of the present invention, a website building system (WBS) includes at least one processor and a text content generator and a living document generator implemented on the at least one processor. The text content generator generates a living document from a plurality of document sections stored in a storage device. The text content generator selects the document sections as a function of attributes of a website designer or end user. The living document generator updates the living document when changes occur in at least one of a legal environment, a business environment, and a website environment related to the living document.
[0035] Further, in accordance with a preferred embodiment of the present invention, the living document generator includes a monitoring engine, a policy knowledge engine (PKE), and a notification engine. The monitoring engine monitors internal and external data sources for changes that affect the living document. The PKE recommends changes to the content of section text of the living document after analyzing the impact of external legal and / or regulatory source data on the living document, and the notification engine notifies at least one of the designer and WBS vendor staff of the changes recommended by the PKE.
[0036] Furthermore, in accordance with a preferred embodiment of the present invention, the text content generator includes an HDS editor that allows a designer to select a recommended section text option for a section text and allows pre-publication and post-publication editing of the section text and section text options.
[0037] Further, in accordance with a preferred embodiment of the present invention, the living document generator includes an analytical engine that analyzes internal WBS data sources and at least one of external online and offline data sources to determine WBS information and business operational information for the living document.
[0038] Furthermore, in accordance with a preferred embodiment of the present invention, the business environment can be the designer's business operations and activities and the business operations of other designers in similar businesses and product portfolios. The legal environment can be applicable laws, statutes, regulations, directives, guidelines, standards, industry standards, and external environmental considerations. The website environment can be the designer's website, information in the WBS about the designer's website, and websites of designers in similar or equivalent businesses.
[0039] Additionally, in accordance with a preferred embodiment of the present invention, the PKE detects changes to the content of the section text and correlates the changes to the section text with changes to the associated web site.
[0040] Additionally, in accordance with a preferred embodiment of the present invention, the analysis engine detects changes to designer websites in businesses similar to the current website.
[0041] Furthermore, in accordance with a preferred embodiment of the present invention, the living document generator includes a tagger that associates tags with section text content, the tags listing the type of section, the geography to which it relates, the type of law, the type of document, the legal code associated with it, and / or its legal source.
[0042] Furthermore, in accordance with a preferred embodiment of the present invention, the PKE updates tags when updating section text content.
[0043] Furthermore, in accordance with a preferred embodiment of the present invention, the living document generator includes an association table, a linked entity graph, and / or a machine learning engine for associating attributes with section text content.
[0044] Furthermore, in accordance with a preferred embodiment of the present invention, the internal data sources of the WBS include WBS elements used on websites belonging to designers, code associated with the WBS elements, information collected from the designers, business information about the websites, website operational information, website cookies, and site commercial database information.
[0045] Additionally, in accordance with a preferred embodiment of the present invention, the external online and offline data sources include legal and regulatory online and offline repositories.
[0046] Furthermore, in accordance with a preferred embodiment of the present invention, the analysis engine comprises a machine learning engine that generates the content of the section text based on the website.
[0047] A method for WBS is also provided in accordance with a preferred embodiment of the present invention, including generating a living document from a plurality of document sections, including selecting the document sections as a function of attributes of a website designer or end user. The method also includes updating the living document when changes occur in at least one of a legal environment, a business environment, and a website environment associated with the living document.
[0048] Further, in accordance with a preferred embodiment of the present invention, the generating step includes the steps of monitoring internal and external data sources for changes affecting the living document, recommending changes to the content of the section text of the living document after analyzing the impact of the external legal and / or regulatory source data on the living document, and notifying at least one of the designer and WBS vendor staff of the changes.
[0049] Furthermore, in accordance with a preferred embodiment of the present invention, the generating step includes a step of enabling a designer to select one recommended section text option in one section text, and a step of enabling pre-publication editing and post-publication editing of the section text and the section text options.
[0050] Further, in accordance with a preferred embodiment of the present invention, the updating step includes analyzing internal WBS data sources and at least one of external online and offline data sources to determine WBS information and business operational information related to the living document.
[0051] Additionally, in accordance with a preferred embodiment of the present invention, the recommending step includes the steps of detecting changes to the content of the section text and correlating the changes to the section text with changes to the associated web site.
[0052] Additionally, in accordance with a preferred embodiment of the present invention, the analyzing step includes detecting changes to designer web sites at businesses similar to the current web site.
[0053] Furthermore, in accordance with a preferred embodiment of the present invention, the updating step includes associating tags with the section text content, the tags listing the type of section, the geography to which it relates, the type of law, the type of document, the legal code associated with it, and / or its legal source.
[0054] Furthermore, in accordance with a preferred embodiment of the present invention, the recommending step includes the step of updating the tag when updating the section text content.
[0055] Furthermore, in accordance with a preferred embodiment of the present invention, the recommending step includes utilizing an association table, a linked entity graph, and / or a machine learning engine to associate attributes with the section text content.
[0056] Furthermore, in accordance with a preferred embodiment of the present invention, the analyzing step includes generating the content of the section text based on the website using machine learning. [Brief explanation of the drawings]
[0057] 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 organization and method of operation, together with its objects, features, and advantages, may best be understood by reference to the following detailed description when read in connection with the accompanying drawings. [Figure 1] FIG. 1 is a schematic diagram of a system for creating and updating hierarchical websites. [Figure 2] FIG. 2 is a schematic diagram of a system for interactive creation and structural editing of textual content for a website building system, constructed and operative in accordance with the present invention. [Figure 3] FIG. 3 is a schematic diagram of the textual content generation system of FIG. 2 constructed and operative in accordance with the present invention. [Figure 4] FIG. 4 is a schematic diagram of elements of the HDS (hierarchical data structure) / rule handler of FIG. 3 constructed and operative in accordance with the present invention. [Figure 5] FIG. 5 is a schematic diagram of elements of the analysis engine of FIG. 3 constructed and operative in accordance with the present invention. [Figure 6] FIG. 6 is a schematic diagram of elements of the HDS editor of FIG. 3 constructed and operative in accordance with the present invention. [Figure 7] FIG. 7 is a schematic diagram of various repositories of the content management system of FIG. 3, constructed and operative in accordance with the present invention. [Figure 8] FIG. 8 is a schematic diagram of the workflow functionality of the system of FIG. 3 during an editing session, constructed and operative in accordance with the present invention. [Figure 9] FIG. 9 is a schematic diagram of elements of the data acquisition section of FIG. 3, constructed and operative in accordance with the present invention. [Figure 10] FIG. 10 is a schematic diagram of the structure of the text HDS repository of FIG. 7, constructed and operative in accordance with the present invention. [Figure 11] FIG. 11 is a schematic diagram of a sample hierarchical data structure constructed and operative in accordance with the present invention. [Figure 12A] FIG. 12A is a schematic diagram of an exemplary user interface for the HDS editor of FIG. 3, constructed and operative in accordance with the present invention. [Figure 12B]FIG. 12B is a schematic diagram of an exemplary user interface for the HDS editor of FIG. 3, constructed and operative in accordance with the present invention. [Figure 12C] FIG. 12C is a schematic diagram of an exemplary user interface for the HDS editor of FIG. 3, constructed and operative in accordance with the present invention. [Figure 13A] FIG. 13A is a schematic illustration of modifications to a sample hierarchical context-saving data structure constructed and operative in accordance with the present invention. [Figure 13B] FIG. 13B is a schematic illustration of modifications to a sample hierarchical context-saving data structure constructed and operative in accordance with the present invention. [Figure 13C] FIG. 13C is a schematic illustration of modifications to a sample hierarchical context-saving data structure constructed and operative in accordance with the present invention. [Figure 13D] FIG. 13D is a schematic illustration of modifications to a sample hierarchical context-saving data structure constructed and operative in accordance with the present invention. [Figure 14] FIG. 14 is a schematic diagram of a system for interactive creation and structured editing of living documents for a website building system constructed and operative in accordance with the present invention. [Figure 15A] FIG. 15A is a schematic diagram of elements of a system for interactive creation and structured editing of living documents for a website building system, constructed and operative in accordance with the present invention. [Figure 15B] FIG. 15B is a schematic diagram of elements of a system for interactive creation and structured editing of living documents for a website building system, constructed and operative in accordance with the present invention. [Figure 16] FIG. 16 is a schematic diagram of a portion of a living document constructed and operative in accordance with the present invention. [Figure 17] FIG. 17 is a schematic diagram of an LDG tag constructed and operative in accordance with the present invention. [Figure 18] FIG. 18 is a schematic diagram of updates to a living document constructed and operative in accordance with the present invention.
[0058] It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some 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. DETAILED DESCRIPTION OF THE INVENTION
[0059] 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 present invention.
[0060] The applicant has observed that existing website building systems do not support users in creating the actual content for each text component, nor do they provide sufficient guidance and recommendations on what best practices are in creating website content for a particular purpose. Typically, only empty components are provided without text, or with only placeholder text. For non-text content (such as images and videos), there are often many available repositories (from which the user can choose) or easy ways to generate such content (e.g., using a camera).
[0061] For text content, it can be appreciated that simple pre-written text is often insufficient (and very common). Also, there is no easy way to quickly view and select from large amounts of standard text, and starting with a "blank screen" is extremely difficult for most users (a phenomenon known as "writer's block"). Therefore, most website building systems simply fill in the text components with nonsensical sample text (such as the well-known "Lorem Ipsum"). Applicant has also found that users often do not publish their sites at all because they are unable to fill in the required text elements or are not satisfied with the text they have written.
[0062] Solutions for natural language generation (NLG), such as those using templates, rule engines, or machine learning, exist in the art. Existing NLG systems typically aim to provide automatic generation of standalone text content, such as form letters, news articles, weather forecasts, or chatbot responses. Such solutions are typically non-interactive and not well suited for use in website creation.
[0063] Applicant has also discovered that the above-mentioned deficiencies can be overcome by a system that integrates interactive generation and structured editing of text with the website building system's internal data structures and incorporates it with information (including the user's own data and that of other websites) collected as part of the automated site generation process described above. The text generation process is integrated with an interactive alternative text selection process that includes data collection, an analysis engine, a rules repository, and follow-up text component editing, as described in detail below. Such a process can be particularly useful within the website building system's site creation and editing process.
[0064] The system includes a website building system-based textual content generator that integrates a hierarchical data structure (HDS) describing a hierarchy of text element alternatives (for a given field role, as described in more detail below), an information gathering element, an information gathering element supporting the gathering of information including both information related to the current user and crowd-sourced information related to other users, a rule set and analysis engine for text handling rules, possibly based on an AI / ML engine and natural language processing, an interactive hierarchical data structure editor that can support filtering, ranking, diversifying, ordering, and adapting text options, and interactive text selection and ordering based on the hierarchical data structure, the analysis engine, and a combination of the gathered information to create textual content for the website building system site. It should be understood that the hierarchical data structure can also be viewed as having nodes and subtrees that describe field content, text paragraphs, and sentences, as discussed in more detail below.
[0065] The final text is therefore a combination of predefined content in a hierarchical data structure, additional system adaptations, user manipulations and selections, and information embedded in placeholders and free text based on user writing or editing, along with user information and crowdsourced data.
[0066]
[0023] Referring now to Figure 2, Figure 2 illustrates a system 200 for interactive generation and structural editing of textual content for a website building system, according to one embodiment of the present invention. It can be seen that the text generation process is integrated with an interactive alternative selection process, with an underlying data collection subsystem, an analysis engine and rules repository, and follow-up text component editing as described in detail below.
[0067] It will be appreciated that the system 200 described below is directed to website construction in conjunction with text generation, however, in alternative embodiments, the system 200 may use the same techniques for other object types, such as elements within a text stream (e.g., a text flow with embedded images) or other types of composite objects that can be composed of sections (e.g., a component of a background music playlist composed of a sequence of music tracks).
[0068] System 200 may include elements of system 100 as described in U.S. Patent No. 10,073,923, along with a Text Content Generator (TCG) system 80. In a typical embodiment, the constructed site may be understood to consist of sections (such as layout elements or partial page sections) that serve specific purposes and consist of similar configurations of objects (e.g., 5-tuples consisting of title / subtitle / text paragraph / button / media [image]). Some sections may contain multiple such sets, such as a section describing a list that may represent multiple such 5-tuples.
[0069] For each unique text field (e.g., section / business type combination), WBS vendor staff 61 can define optional roles and matching sets of text content defined in a specific hierarchical data structure (e.g., title / subtitle / text paragraph / button). All of these text elements can contain placeholders that are filled from information collected by site generation system 40.
[0070] It should be appreciated that the system 200 may also provide integration with external systems 70, which may include external text-related services such as text writing, editing, adaptation, review, and translation services, which may be traditional offline services (such as translation agencies) or internet-based service providers (such as FIVERR from fiverr.com).
[0071] 3, which illustrates elements of a TCG system 80. The TCG system 80 may include a role determiner 81, a HDS (Hierarchical Data Structure) / rule handler 82, an analysis engine 83, an HDS editor 84, a visual editing coordinator 85, a text generator 86, an HDS / rule coordinator 87, an HDS SEO builder 88, a Text Kit interface 89, and a data gatherer 95.
[0072] The role determiner 81 can determine the roles of text fields, and the HDS / rule handler 82 can be responsible for managing roles, their manipulation (definition and instance handling), hierarchical data structures, and rules, and updating their repository in the CMS 55 accordingly. The HDS / rule handler 82 can process both stored (CMS 55) HDS / rule data structures and in-memory structures. The analysis engine 83 can provide services related to analyzing information (based on machine learning, artificial intelligence, natural language processing, or predefined rules) to present text option recommendations to the user and modify the recommendations to roles, rules, and hierarchical data structures. The visual editing coordinator 85 can coordinate between the HDS editor 84 and the WBS editor 30. The HDS / Rules Coordinator 87 can coordinate between all of the above elements, as well as between the Role Determiner 81, HDS / Rules Handler 82, Analysis Engine 83, and Data Collector 95, and the repository within CMS 55, exchanging hierarchical data structure definitions and definitions, rules, and artificial intelligence information for the Analysis Engine 83, etc. The Text Generator 86 can generate final text used for further editing and site generation. The HDS SEO Builder 88 can further generate specific SEO-related information using information available in the hierarchical data structure instances, the Text Kit Interface 89 can provide Text Kit extraction and Kit reintegration functionality, and the Data Collector 95 can collect information used by the Analysis Engine 83. The functions of these elements are described in more detail below.
[0073] Reference is now made to Figure 4, which illustrates the elements of HDS / Rule Handler 82. HDS / Rule Handler 82 may include an orderer 821, a deleter 822, a creator 823, a filterer 824, a ranker 825, a diversifier 826, a node adaptor 827, and a rule adaptor 828. The functions of these elements are described in more detail below.
[0074] Reference is now made to FIG. 5, which illustrates elements of the analysis engine 83. The analysis engine 83 may comprise an AI (artificial intelligence) / ML (machine learning) engine 831, an NLP (nature language processing) engine 832, and a rules engine 833. The functionality of these elements is described in more detail below. It may be understood that different embodiments of the system 200 may implement only one or two of the elements of the analysis engine 83. Reference is now made to FIG. 6, which illustrates elements of the HDS editor 84. The HDS editor 84 may further include an analysis-based text creator 841, an HDS instance creator 842, an HDS creator / editor 843, a role creator / editor 844, and a rule creator / editor 845. The functionality of these elements is described in more detail below.
[0075] It can be understood that the HDS editor 84 may provide a unified editing environment for both setting up definitions in a hierarchical data structure (e.g., by WBS vendor staff 61) and editing local instances in the hierarchical data structure (e.g., by site designer 62). In an alternative embodiment, the system 200 can provide separate editing environments for each task, for example, by dividing the HDS editor 84 into separate definition editing (possibly integrating rule editing) and instance editing tools. It can be understood that this definition editing environment can implement basic hierarchical data structure definition creation using the HDS creator / editor 843, which can be manual, automatic, or a combination of the two. Manual creation of hierarchical data structure definitions can be based (for example) on a visual editing environment that supports the creation of hierarchical data structures or text transformation tables (such as the “About Us” example described below). Automatic creation can be based, for example, on the analysis of a number of text samples for a given role to detect common structures and substructures and arrange them into a suggested hierarchy of options that can be edited by the HDS editor 84. Such text samples may be collected using data collection unit 95, and follow-up analysis may be performed using analysis engine 83 (including, in particular, NLP engine 832). It may also be appreciated that the described procedures for creating and editing hierarchical data structure definitions may also be used to create sets of matching rules for application and operation of the generated hierarchical data structure.
[0076] While hierarchical data structure definition edits (as described above) are typically stored with WBS vendor staff 61, it can be understood that system 200 can make some or all of this functionality available to site designers 62. This is typically done in the context of creating private variants of hierarchical data structure definitions that can be specific to a given field, page, website, website region, or particular user (for use within multiple sites). Such private variants can implement an inheritance relationship with the original hierarchical data structure definition. System 200 may similarly allow users to perform rule edits for local rule variations. Such private variants may, for example, add private paragraph or sentence hierarchical data structure sub-hierarchies to a private variant of a particular hierarchical data structure provision, or make other changes that better reflect the user's preferences. System 200 may also allow users to create full-scale hierarchical data structure definitions (perhaps including their own private rules), which may also be transferable to other users or sold via the object marketplace 15.
[0077] Referring now to Figure 7, a typical grouping of the types of repositories that may be maintained within a content management system of an associated website building system (CMS 55), as described above, is shown. It will be appreciated that in addition to the repositories of CMS 50 described in U.S. Patent No. 10,073,923, CMS 55 may also include a TPA (Third Party Application) store 521, an AAI (Additional Administrative Information) repository 522, a text HDS repository 523, a TCG field role repository 524, and a TCG analysis rules repository 525. Naturally, all of the various repositories of CMS 55 may be used by WBS editor 30 and site generation system 40 during the website creation process.
[0078] Reference is now made to FIG. 8 , which illustrates the functionality of the TCG system 80 during an editing session. It can be appreciated that in a typical usage scenario, a user can invoke the TCG system 80 while using a website building system, during a site generation or review process, or within the WBS editor 30 (as described in more detail below). As noted above, the user is typically a website designer 62. It can be appreciated that WBS vendor staff 61 may use the TCG system at runtime to edit templates (for example). Furthermore, it can be appreciated that site users 63 may use the TCG system 80 if given certain editing privileges, including creating or editing text (such as a user updating product description text within an auction site).
[0079] It may also be appreciated that TCG system 80 may be invoked by WBS editor 30 and site generation system 40 during the website construction process. In an alternative embodiment, TCG system 80 may be standalone and operate without any involved modules.
[0080] During (for example) a page editing session, a user may select (via HDS editor 84) a text field requiring text input. Role determiner 81 may receive the field, determine its role (as described in more detail later herein), and forward it to analysis engine 83, which may retrieve one or more proposed hierarchical data structure definitions for that role.
[0081] The analysis engine 83 can send the proposed hierarchical data structure definitions to the HDS / rule handler 82. The HDS / rule handler 82 can provide them to the HDS editor 84 (which can present the user with recommended hierarchical data structure or text options). The user can then edit the hierarchical data structure (via the HDS editor 84) as needed. It can be understood that editing may include changes to the hierarchical data structure definition itself (such as branch selection, element deletion, and node reordering, as described in more detail below) as well as actual text editing. The HDS instance creator 842 can create hierarchical data structure instances from hierarchical data structure definitions (described in more detail below). Field roles and field role associations can be saved in the repositories 523 and 524.
[0082] It may be understood that editing also includes entering placeholder text values. HDS editor 84 may reference analysis engine 83 or CMS 55 directly to provide guidelines for handling text edits and hierarchical data structure changes.
[0083] The HDS editor 84 can send the hierarchical data structure instance to the HDS / rules handler 82 and then to the text generator 86 to generate the final text for the field (possibly including backlinks or other associations with the underlying hierarchical data structure instance).
[0084] The HDS / rule handler 82 may also record the resulting text and updated hierarchical data structure in the CMS 55 (including updates to the EH (editing history) repository 511 and the text HDS repository 523).
[0085] It may be further appreciated that the placeholder text may come from multiple places, including the user themselves (via the HDS editor 84), the CMS 55, or the site generation system 40 itself, and thus may bypass the HDS / rules handler 82 directly to the text generator 86.
[0086] It can also be appreciated that because text fields already have determined roles and hierarchical data structures, re-editing text fields (at a later stage in the editing process) can use a reduced workflow pattern, which may be considered a maintenance workflow rather than a creation workflow.
[0087] Another workflow may be a setup workflow used by WBS vendor staff 61 when using the Role Creator / Editor 844, HDS Creator 843 / Editor and Rule Creator Editor 845 to create the initial hierarchical data structure specification, initial role assignments and rules used by the Analysis Engine 83.
[0088] The updated text may also be used as part of SEO (Search Engine Optimization) and sent to HDS SEO Builder 88, as described in more detail below.
[0089] It may be understood that not all elements of TCG system 80 may be invoked during an editing session. For example, analysis engine 83 may be invoked to select roles for fields (requiring non-hierarchical data structure manipulation), and HDS / rules handler 82 may be invoked by visual editing coordinator 85 to adapt the hierarchical data structure to changes made to text by a user during a text editing session in WBS editor 30 (which does not include analysis engine 83).
[0090] It will also be understood that the roles of text fields (used at edit / runtime) may be set up by the user 5 via WBS vendor staff 61 (via role creator / editor 844), or by the role determiner 81 via analysis of website elements as described in more detail below. The hierarchical data structure can be set up via WBS vendor staff 61 (via HDS creator / editor 843), as can the rules used by the analysis engine 83, which are stored in TCG analysis rules repository 525.
[0091] Reference is now made to FIG. 9 , which illustrates elements of a data collection component 95. The data collection component 95 may include an internal data collection component 951 and an external data collection component 952 for collecting information from internal and external sources to the website building system (as described in more detail below in connection with the analysis engine 83). The data collection component 95 may further include a collective source data collection component 953, which may collect collective source information used to support testing of hierarchical data structures. The functionality of these components is similar to that of the internal data collection component 44, the external collection component 43, and the collective source data analyzer 423, as described in U.S. Pat. No. 10,073,923. It will be appreciated that the internal data collection component 951, the external data collection component 952, and the collective source data analyzer 953 access the same data sources using similar browsers and data extraction techniques, but the collected data is analyzed by the analysis engine 83, as described in more detail below.
[0092] It may be appreciated that the user may also edit the text generated in the WBS editor 30, similar to the HDS editor 84. In this scenario, the user may interact with the HDS editor 84 via the visual editing coordinator 85 to create the final text. In an alternative embodiment, the visual editing coordinator 85 may adapt the hierarchical data structure directly from the CMS 55 by bypassing the HDS editor 84 and sending it to the WBS editor 30. It may also be appreciated that the user may return to the HDS editor 84 in the future to benefit from structured editing of the text. The visual editing coordinator 85 may provide the necessary coordination and editing history tracking to maintain integration between the text freely edited in the WBS editor 30 and its structural hierarchical data structure-based representation.
[0093] In alternative embodiments, TCG system 80 may be used outside of the website construction system (e.g., in a standalone configuration or while still hosted on the website construction system vendor's servers). In this scenario, TCG system 80 may operate with a limited version of system 200 and may interact with the website construction system for necessary information, either directly (e.g., online) or via information sent to it by the website construction system. Alternatively, TCG system 80 may include some sub-elements of system 200 (such as elements of CMS 55 or WBS editor 30). Such a configuration may be useful, for example, for large-scale text creation or editing by external text creation / translation agencies as described hereinabove.
[0094] The TCG system 80 may be used directly through its own dedicated UI, or may be implemented by or incorporated into (via an API or web service) another system that provides the necessary UI.
[0095] It will be understood that the following description focuses on features relevant to system 200 and does not necessarily include all features available to website building systems. System 200 may also implement a subset of the described features, and not necessarily all the described features.
[0096] The following describes applications created by a website-building system and accessed by end users as websites. It should be understood that system 200 is also applicable to other categories of online applications accessed using specific client software. Such client software can run standalone or be activated from a browser (e.g., an Adobe Flash plug-in). End users can access these websites using client software on a typical PC (as shown in FIG. 2 ), but they can also be accessed on smartphones, tablet computers, and other desktop, mobile, and wearable devices. Alternatively, system 200 may be applicable to systems for generating games, mobile applications, native applications, or other application types, as described in U.S. Patent No. 9,996,566, entitled “Visual Design System for Generating a Visual Data Structure Associated with a Semantic Composition Based on a Hierarchy of Components,” issued June 12, 2018, which is assigned to the common assignee of the present invention and incorporated herein by reference.
[0097] In particular, system 200 is applicable to visual design systems used to create development environments for standalone applications such as desktop application development environments (e.g., for use with personal computers), mobile application development environments (e.g., for use with smartphones and tablets), client-server application development environments and non-browser web application development environments (for use with environments such as Adobe's Flash Player), plug-in development environments, systems for creating plug-ins and other add-on elements for other systems (web browsers or otherwise), and shop builders, i.e., systems focused on creating e-shops (or e-commerce sites).
[0098] Additionally, system 200 may be used to generate text content that is not a typical text component within an application. Exemplary uses include text provided as part of a UI or as part of a communication message, such as the actionable widget cards described in U.S. Patent Application Publication No. 2018 / 0174229, entitled "Actionable Widget Cards," published June 21, 2018, which is assigned to the common assignee of the present invention and incorporated herein by reference. These are cards that provide users with information / recommendations (such as recommended blog post text for a recently launched product or other marketing material) that can be sent to users via multiple communication channels (e.g., email, chat, application message queues, etc.). Another example is text to post to a social network (such as Facebook® or Twitter®); in this scenario, system 200 can adapt the text or provide an appropriate hierarchical data structure based on the desired distribution channel (e.g., providing shorter text for Twitter® and longer text for blog posts). Yet another example is text integrated into non-application environments / content, such as text embedded in video (e.g., captions or displayed text) or audio content (e.g., text to speech). System 200 may also be useful in the production of printed materials as part of a page design or layout system, again providing text alternatives appropriate to the provided space or other considerations related to the printed production design.
[0099] The following discussion also focuses on websites hosted by website building system providers, particularly those that provide an online presence for small businesses such as hotels, law firms, and restaurants. Such businesses are often categorized by family and industry, as described in U.S. Patent No. 10,073,923. Family defines a general type or category of business, such as school, clinic, or law firm. Industry is a specific industry or knowledge domain type. For example, in the case of a school family, the system may support multiple industries (i.e., school types), such as art, engineering, and music schools. Of course, system 200 may be applied to additional types of websites and other non-web digital creations, as described above in this specification.
[0100] As described above, the system 200 supports users in interactively creating text content for text fields within a generated website. Such fields may have roles associated with them, typically related to the field and its function within the page or page section that contains it. Roles may or may not be unique within a site, page, or page section. For example, an "About Us" page describing a business may have one "Our Company" text field, one "Key Services" text field, and multiple "Team Members" text fields.
[0101] The role of a text field may be determined in several ways. One way is for the field's role to be predefined. For example, a field may be part of a template (e.g., at the site, page, or page section level) that defines roles for some or all of its text fields. The role determiner 81 can assist the WBS vendor staff 61 or a website designer in assigning such predefined roles to associated text fields.
[0102] In the context of a site generation system such as that described in U.S. Patent No. 10,073,923, a text field may be part of a layout element, layout group, or preset page section used by the site generation system to build a given page. The role determiner 81 can assign roles to the underlying content elements to which a given layout element / layout group / preset page section is matched, or (directly) to the layout element / layout group / preset page section itself. Such assignments can be made at the HDS definition level (for vendor staff 61) or the HDS instance level (for users 62).
[0103] The role determiner 81 may also provide the user, via the HDS editor 84, with a list of possible roles from which the user may select an appropriate role (e.g., during a setup phase). It should be appreciated that the system 200 may further provide a search engine for role selection (as the number of potential roles may be very large) using operations typically provided by search engines (such as synonym searching).
[0104] The role determiner 81 can also determine and rank a set of possible roles based on additional information available to the website building system or on analysis performed by the analysis engine 83 (as described in more detail below). It should be understood that such information and analysis by the analysis engine 83 can include, for example, predefined or user-specified information about the included page or page section (e.g., for a text field in an "About Us" page, only roles such as "Company Description" or "Our Team" are provided). It can also include information entered by the user for the current field or other fields (e.g., roles selected for previous text fields). The analysis engine 83 can also use information from previous interactions with current or other users, as well as information collected from the same and other users, which may be evaluated according to the user's profile information (e.g., real estate lawyers in the United States typically use roles such as "Areas of Expertise" on the front page of their sites).
[0105] The role determination analysis performed by analysis engine 83 may also include other types of analysis of current or other site areas, possibly including analysis of site layout, components, component content, geometric or other component relationships, as well as site editing history. For example, a user creates three sets of [Image + Text] and assigns the role "Manager Biography" to each of the three text fields. The user then creates a fourth such [Image + Text] set that is geometrically aligned with the previous three sets. In this case, the role of the fourth text field is very likely also to be "Manager Biography."
[0106] In another example, the role determiner 81 may determine that a text field is associated with a nearby image field and that the displayed image is a person's face. This can be based on (for example) image metadata / name / description, or image content analysis. In such a scenario, it is reasonable to expect the role of the text field to relate to the person's details, information, or biography.
[0107] It may also be appreciated that the role determiner 81 may use available information (such as the collected information described above in this specification) to make automatic field role determinations without requiring additional user interaction.
[0108] Alternatively, the role determiner 81 may perform user-input-based analysis. One particular type of analysis is to have the user type (into a field) a free-form example of a desired type of content. The role determiner 81 can then analyze this content using the NLP engine 832 (as described in more detail below in connection with the analysis engine 83). The NLP engine 832 can recognize the specific field role (if this is required) and, possibly, additional information about the required content, and provide the user with a professionally written content variant (described in more detail below) that serves the same purpose.
[0109] It may be understood that the text entered by the user is not used as a typical search key (i.e., as used in a search engine). Rather, the role determiner 81 may instruct the NLP engine 832 to extract the user's intent and then search the HDS repository 523 for current or related roles that contain text alternatives that fulfill the same intent, even if the alternatives use text that is entirely different or unrelated to that provided by the user.
[0110] It may also be appreciated that the analysis methods used by the role determiner 81, such as those described above, may be similar to the functionality of the NLP engine 4211 of U.S. Patent No. 10,073,923, as well as various types of geometric and semantic analyses such as those described with respect to the POS locator 250 in U.S. Patent Publication No. 2015 / 0074516, entitled “System and Method for Automated Conversion of Interactive Sites and Applications to Support Mobile and Other Display Environments,” published March 12, 2015, assigned to the common assignee of the present invention, and incorporated herein by reference. The analyses described herein above may also be used by the HDS / rule handler 82 to rank hierarchical data structures and lists of hierarchical data structure nodes / subtrees as they are displayed to the user for selection, as well as the order in which they are presented (i.e., their “search rank”).
[0111] As described above in this specification, once the role of a text field is known, that knowledge can be used by TCG system 80 to create the content of the particular field. This can be done by retrieving (from HDS repository 523) the appropriate hierarchical data structure associated with the role determined by analysis engine 83. System 200 may allow multiple hierarchical data structures to be associated with a given role, using additional collected information (as described above for role determiner 81 and possibly user selection) to select the hierarchical data structure to use.
[0112] Reference is now made to Figure 10, which illustrates the subelements of HDS repository 523. For each hierarchical data structure, HDS repository 523 can store its field role associations 5231, its HDS definition 5232, and its HDS local instance 5233. It can be appreciated that a single role can have multiple hierarchical data structure definitions, and that HDS local instance 5233 can include editing context information. Thus, HDS repository 523 can remember current selections and modifications made by the user, including those that do not appear in the current display but are retained if the user returns.
[0113] The hierarchical data structure can be understood to describe various options for the generated text element to be placed in the text field, including additional attributes that provide information necessary for the various analysis and selection elements described above. The hierarchical levels may resemble node structures, with different node types. For example, a node may consist of an "option selection node" (single node), an "ordered set" of nodes or end nodes with sibling relationships. For an "any" node, the user must select one of the provided alternative subnodes (determined and ranked as described in more detail below).
[0114] An "ordered set" node is a subtree consisting of a given ordered sequence of subnodes. The user can perform various editing operations on this sequence, such as changing the order of the subnodes or deleting them.
[0115] Returning now to Figure 4, which illustrates the elements of HDS / Rules Handler 82. HDS / Rules Handler 82 can be used to modify the hierarchical data structure and adapt rules as described in more detail below. It can be appreciated that when creating an initial version for a user to edit, HDS / Rules Handler 82 can implement any ordering / ranking / diversification based on recommendations made by Analysis Engine 83 (e.g., selecting nodes to display and in what order at each displayed hierarchical data structure level).
[0116] During an editing session, HDS / rule handler 82 may provide back-end processing of the displayed hierarchical data structure, which may include consulting with analysis engine 83 for recommendations during editing. In this scenario, HDS editor 84 may be the front-end (although it may run on the client, server, or both), and HDS / rule handler 82 may provide an interface to the hierarchical data structure.
[0117] As described above in this specification, modifications to the hierarchical data structure may be made using, for example, system-initiated analysis that analyzes common changes made by multiple users and infers that permanent changes should be made to the hierarchical data structure definition. It will be appreciated that this can be entirely system-initiated (e.g., a background process that runs at a given frequency) or triggered by specific user activity (e.g., when the Nth user makes a similar change).
[0118] The HDS / Rules Handler 82 can also process hierarchical data structure changes initiated by the Visual Edit Coordinator 85 based on "normal" edits of text (generated by the TCG system 80) in text fields that affect the hierarchical data structure of the text field.
[0119] As described herein above, HDS / Rule Handler 82 can process operations and modifications on entities such as roles, rules, nodes, subtrees, and results from Analysis Engine 83. It can be appreciated that the functionality of HDS / Rule Handler 82 can be applied depending on the handled entity in question, i.e., the role, the hierarchical data structure, or the node itself.
[0120] The orderer 821 generally orders entities, the deleter 822 generally deletes entities, the creator 823 creates new entities, the filterer 824 generally filters entities, the ranker 825 generally ranks entities, the diversifier 826 diversifies entities, the node adaptor 827 applies changes to nodes, and the rule adaptor 828 may apply changes to generative analysis rules for text content in the TCG analysis rules repository 525.
[0121] Additionally, the orderer 821, filter 824, ranker 825, and duplicator 826 can function similarly to the layout ranker and filter 45, ranker 48, and duplicator 49, as described in U.S. Patent No. 9,747,258, entitled "System and Method for the Creation and Use of Visually-Diverse High-Quality Dynamic Layouts," issued August 29, 2017, assigned to the common assignee of the present invention, and incorporated herein by reference. In particular, the ranker 825 can operate according to parameters such as the frequency with which a given option is selected (by the current user, other users as described above, or other "similar" users), specific selections (used selections, saved, or generated text based on actual published selections), and other selections made by the user for other fields (e.g., comparing the alternative text of a field with selections made for other fields). The orderer 821 can perform ordering based on combining ranking information and diversity information, as described in U.S. Patent No. 9,747,258.
[0122] Reference is now made to FIG. 11, which illustrates an example of a hierarchical data structure. A typical embodiment in which a hierarchy can be used can be Level 1 (L1), document (option choice node), Level 2 (L2), paragraph ("ordered set" node), Level 3 (L3), sentence position ("ordered set" node), and Level 4 (L4), sentence variant (option choice node). Other levels may include content variants ("ordered set" nodes) and end node words / punctuation, placeholders / additional elements, etc. Additional end node elements may also include objects embedded in the text (e.g., images or shapes), hyperlinks (pointing within or outside the website), and embedded website elements (e.g., action buttons, "email" links, etc.). Thus, a user ("our company") creating content for a text field for a given role can select one of the possible content variants, each consisting of an ordered set of paragraphs, as shown (by way of example only) in the following table: Each paragraph may consist of multiple sentence positions, each of which may be filled by one of a set of sentence variants. Each sentence variant consists of words, punctuation, and placeholders. Figure 11 can also be thought of as a partial hierarchical data structure that reflects some of the text options contained in the table below.
[0123] [Table 1] [Table 2] [Table 3] [Table 4]
[0124] The table above shows a simplified example of a single content variant for an "About Us" document (where *XXX* is a placeholder). Naturally, this example provides multiple variants for the "Location" statement (Location (Any Location), Location (Multiple), and Single Location) depending on the company's location setup (defined internally or gathered from external business information), allowing the user to choose which location to retain. This may also be done using rules, as discussed in more detail below.
[0125] It can be understood that a hierarchy is typically created to allow for free editing of the ordered sequence at each level. Thus, for example, the sentences of a particular paragraph are typically written to work well in any combination or order, as seen in the table above. Indeed, in one embodiment, the orderer 821 can randomly rearrange some or all of the subnodes of a sibling "ordered set" node. This has the advantage of making different sites based on the same hierarchical data structure more distinct from each other. Such randomized paragraph / sentence selection is better from the WBS vendor's 61 perspective (i.e., the resulting sites are more diverse) and from a search engine optimization perspective (since search engines may penalize multiple sites that appear similar).
[0126] It may also be understood that a hierarchical data structure may include "fixed" elements, e.g., statements that cannot be changed, moved, or have no substitutes (if the user decides to select a sub-hierarchy that contains such statements). However, such elements may be modified as part of normal text field editing in the WBS editor 30.
[0127] A deleter 822 can delete nodes as a result of user edits, and a creator 823 can create new nodes accordingly (based on the user edits and entered text), and may also provide similar functionality for deleting and creating other entities such as roles or complete hierarchical data structures.
[0128] In alternative embodiments, system 200 may use different hierarchies, including hierarchies with more or fewer levels, or hierarchies that use additional or different node types. Additionally, as discussed in more detail below, the hierarchies may be dynamic, in that they may be modified during operation based on recommendations made by analysis engine 83.
[0129] In some embodiments, the hierarchical data structure may also reuse particular subtrees that may be hooked into different locations. Thus, the original version of the hierarchical data structure (before user modification) may be a single-rooted directed acyclic graph.
[0130] It should be understood that placeholders are internal field markers that can be filled with information such as company names, people's names, etc., as described herein above. Placeholders can be site-global (e.g., company names) or local to a given page or site area (e.g., specific product details on a multi-product site). System 200 can have this information from previous interactions with the user through generational surveys, as described in U.S. Pat. No. 10,073,923, from elsewhere within the website, or from other sources (e.g., the user's social network presence).
[0131] As described above, a user can interact with TCG system 80 and edit the hierarchical data structure via HDS editor 84, which supports performing the above-described hierarchical data structure operations on a given text field. When entering a text field, a user can invoke HDS editor 84 (for example) using a "help me write" button added to WBS editor 30.
[0132] It should be appreciated that the HDS editor 84 may allow the user to preview the suggested alternatives generated by the analysis engine 83 based on the hierarchical structure of the selected fields, according to the filtering / ranking / diversification described above in connection with the HDS / rule handler 82. Placeholders may be marked as such and filled with initial values (if known).
[0133] The HDS editor 84 may also allow the user to browse and select alternatives at all levels (e.g., have a sentence position with multiple alternatives via an option selection node).
[0134] It may be appreciated that another capability of the HDS editor 84 is the ability to allow a user to edit a sequence, for example, by deleting or moving elements (such as sentences), entering or editing placeholder values, etc. Some embodiments of the system 200 may allow a user to insert new text within the HDS editor 84 without entering a separate editing session in the WBS editor 30, as discussed in more detail below.
[0135] The HDS editor 84 may also provide options that allow hierarchy modifications that actually apply only to the local hierarchical data structure instance associated with a field. This may be the case, for example, when a user wants to move a sentence from one paragraph to another paragraph in the same field (or to another field entirely). Such a move may detach the hierarchical data structure subtree associated with the moved sentence from its original location (within the hierarchical data structure subtree of one paragraph) and reattach it to the hierarchical data structure subtree of another paragraph.
[0136] In an alternative embodiment, the HDS editor 84 may allow final text editing at this point; however, this functionality is typically reserved for the website building system's text component editor (within the WBS editor 30), although such editing may include inserting additional text, deleting nodes, and any editing of text elements. In this embodiment, the HDS editor 84 may further comprise an analysis-based text creator 841 based on (for example) analyzing images associated with text fields (via an image feature analysis engine) and creating a matching written description or caption for the particular image.
[0137] It should be understood that in edit mode (referring back to FIG. 8 ), the HDS editor 84 may load an initial version of the hierarchical data structure from the HDS repository 523, as described above. However, the HDS editor 84 may invoke the analysis engine 83 to determine initial text offerings (which may include filtering, ranking, diversifying, selecting, reordering, and deleting elements of the initial hierarchical data structure via the HDS / rule handler 82, as described herein) to create the initial version of the hierarchical data structure to be edited. This may include selecting the highest-ranking combinations so that the user can immediately start with the best offer the TCG system 80 can make. As described above, actual modifications to the hierarchical data structure are managed by the HDS / rule handler 82 (which serves as a data management backend to the front end of the HDS editor 84). The user can always modify this proposed hierarchical data structure via the HDS editor 84. During re-editing, the HDS editor 84 may use saved editing context from a previous session, as described in more detail below.
[0138] Reference is now made to Figures 12A, 12B, and 12C, which illustrate exemplary user interfaces for the HDS editor 84. Figure 12A illustrates editing a placeholder showing a company's offered services ([A]). Figure 12B illustrates a browsing screen. It can be seen that the "<" and ">" buttons ([B]) allow switching between different top-level text alternatives (i.e., a hierarchical data structure). Figure 12C illustrates alternative sentence selection when the mouse hovers over a sentence for which options are available, and a pop-up menu ([C]) shows the different options available for this sentence, filtered and ranked as described below. It can also be seen that the displayed alternative sentences already include updated placeholder values when available.
[0139] Furthermore, it can be appreciated that given the ability to reorder and remove specific sub-elements (e.g., sentences), the HDS editor 84 can provide a "physical building block" UI metaphor, similar to a child's game in which blocks with text captions are placed.
[0140] The HDS editor 84 may allow a user to edit a role-specific hierarchical data structure instance that is specific to a given text field on a given page. The edited instance is initialized using the role-specific hierarchical data structure (element selection is performed according to filters and ranking algorithms), but later changes are made to this field's specific hierarchical data structure instance.
[0141] The HDS editor 84 may also provide for saving of editing context. Reference is now made to Figures 13A-13D, which illustrate modifications to a simple hierarchical data structure. In Figure 13A, the top level has three possible choices (via "choice one" nodes): A, B, and C. Each of these consists of a sequence of subnodes (e.g., sentences), A1-A3, B1-B2, and C1-C4.
[0142] A user may start with alternative A by (for example) deleting A2 and reordering the remaining A1 and A3, producing the final sequence A3, A1 (instead of A1, A2, A3) as shown in Figure 13B. After this, the user may change their mind, switch to alternative C, and edit it, e.g., reordering C2 and C3 as shown in Figure 13C.
[0143] The HDS editor 84 can save the editing context so that if the user decides to leave alternative C and return to alternative A, the user will be returned to the edited alternative A (i.e., A3, A1) rather than the original alternative A (A1, A2, A3), as shown in FIG. 13D.
[0144] It can be understood that the context is saved at all levels, and thus each subtree is saved along with its changes. The context is per field instance, so (for example) if an e-store has multiple product pages, each containing a product description, the context is saved separately for each field instance of the product description. The HDS / rules handler 82 may store the saved context in the HDS local instance repository 5233, along with a "visual context" that describes the current user selections.
[0145] As described above in this specification, the original version of a hierarchical data structure can be a directed acyclic graph (with multiple hooks / repeated subtrees) rather than a simple tree. When a user begins editing a hierarchical data structure via the HDS editor 84, the repeated subtrees are duplicated (by the HDS instance creator 842) for each place they are referenced. This is necessary because different copies of the repeated subtrees may be modified in different ways. Duplication can be delayed until the actual repeated subtrees are actually modified (i.e., using a lazy evaluation implementation in the HDS instance creator 842).
[0146] The user can instruct the HDS editor 84 to complete the edits and instruct the text generator 86 to generate the text in the text field. The HDS editor 84 can also alert the user (via a pop-up or other user interface element) if some of the required placeholders have not been filled or if they contain original sample text that is (typically) unrelated to the user's business.
[0147] As described herein above, the HDS editor 84 can invoke the analysis engine 83 to determine the appropriate hierarchical data structure for the associated text field.
[0148] It can be appreciated that in the case of an option choice node, the HDS / rules handler 82 can filter, order, and diversify the proposed subnodes, and in the case of any sibling "ordered set" nodes, can provide the set and its order. In the case of a placeholder, the analysis engine 83 can determine the value selected for the placeholder from available information as described above in this specification.
[0149] For clarity, it can be understood that the initial (stored) hierarchical data structure definition for a given role includes complete node type information (i.e., which subnodes are associated with a given node and in what order). However, the HDS editor 84 can invoke the analysis engine 83 to determine which combinations can be displayed, and the HDS / rules handler 82 can modify the stored hierarchical data structure instance (as described above herein) to determine which alternatives to offer to the user at various levels and in what order.
[0150] As mentioned above, the analysis engine 83 is activated when the HDS editor 84 is initialized (to provide recommendations for the initial selections displayed), and also operates online during hierarchical data structure editing via the HDS editor 84. This is done to influence the choices displayed to the user (e.g., if the user wants to review alternatives for a given sentence), and possibly to recommend or automatically influence behavior (e.g., if the user makes some editing changes, rules may automatically suggest or influence additional changes).
[0151] Reference is now made to FIG. 5, which illustrates elements of the analysis engine 83. The analysis engine 83 may further include an AI / ML engine 831, an NLP engine 832, and a rules engine 833. As described above, the analysis engine 83 provides all services for the TCG system 80 based on artificial intelligence / machine learning, natural language processing, and general rules. Among its tasks, the analysis engine 83 can help the role determiner 81 select roles for text fields and select a hierarchical data structure for a given field and role.
[0152] It will be appreciated that elements of the HDS / rules handler 82 may be activated as a result of analysis performed by the AI / ML engine 831, the NLP engine 832, or the rules engine 833, as described in more detail below.
[0153] The analysis engine 83 may use rules stored in the TCG analysis rules repository 525. It may be understood that the rules may be predefined by the WBS vendor staff 61 or may be created and developed as a result of artificial intelligence, machine learning, website analysis, collective sourcing, etc., as described in more detail below.
[0154] As noted above, the analysis engine 83 may be used again in re-editing, as the suggested alternatives at each tree level may change over time due to, for example, changes to the input data evaluated by the analysis engine 83 that change the ranking and display order of alternative text options offered to the user when editing an unselected element of text. An example would be a change in the popularity of a given text option (based on analysis of selections made by other users) that affects an area of the hierarchical data structure that the user has not yet edited.
[0155] The diversifier 826 can select from the HDS repository 523 a hierarchical data structure of alternatives based on these alternatives to provide a variety of sets of text options, i.e., sets of text options that differ from each other and from the currently selected text.
[0156] It may be appreciated that rules may also recommend or influence adaptations. That is, node adapter 827 may apply changes to the hierarchical data structure, such as node / subtree removal, as a result of a text change to an existing node (and rule adapter 828 may also adapt changes to rules accordingly as a result of analysis engine 83). Thus, analysis engine 83 may determine that a separate company address statement is no longer necessary when a user edits the "Company Description" node in the "About Us" field, because the user specified a company address.
[0157] The analysis engine 83 may also apply a set of rules to make any of the above decisions based on available input information. The analysis engine 83 can analyze input information, including any of the information detailed above for the role determiner 81, for use in determining the field's role as well as additional information (such as that collected by the internal data collector 951 and external data collector 952). Such information may include predefined template information, user-specified information, site generation system information, and field information for current and other fields (including non-text fields that may still be analyzed, e.g., image fields analyzed by image understanding algorithms). Other input information considered by the analysis engine 83 (and collected by the collector 95) may also include information collected from the user of the website building system and other users, including profile information, analysis of current and other sites (both internal and external to the website building system), associated field information, and any draft text entered into the field.
[0158] The analytics engine 83 may also analyze information including aggregated source information (collected by aggregated source data collector 953) from end users of the current site or from other sites in system 200 (e.g., sites that use the same template or hierarchical data structure), such as information about the site's success, collected business intelligence (BI) and usage statistics, information about the popularity of particular pages, and information about explicit end-user rankings (e.g., in systems with questions like "how useful was this page," such as blog and support article systems). It may also analyze information about measures of user engagement (e.g., reading time, user biological feedback tracking such as mouse movement, page scrolling, eye movement detection), and information (system or designed) about implicit tests indicating user understanding of content.
[0159] Of course, system 200 can further use any of the techniques described in U.S. Patent No. 10,073,923 for collecting and analyzing aggregate source data. Thus, analysis engine 83 can evaluate and analyze information from the work of other users, including both designer and end-user information. Such analysis can be performed on a large-scale statistical basis and is subject to users' privacy, anonymity, and legal rights.
[0160] The analysis engine 83 can also consult (e.g., via internal data collection component 951) explicit hints contained in elements of a web page, website, or website-building system to guide its operation. Such hints may be applicable to any analysis and recommendation performed by the analysis engine 83, such as field role determination / selection, hierarchical data structure selection for a given role / field, and hierarchical data structure customization for a particular hierarchical data structure (both initially and during editing). Such hints can be included in user profiles, with website-level data or settings, along with additional site information (code, metadata, etc. related to the site), site generation system 40 entities (e.g., content elements / types, layout elements / types), templates (at all levels, site, page, section, etc.), component definitions and instances, and added applications (e.g., third-party applications, list applications, etc.).
[0161] Thus, for example, a rule may specify a different preferred order for paragraphs or particular sentences within the "Our Services" page for real estate lawyers in the United States compared to real estate lawyers in Europe. Such rules may be predefined or dynamically created based on an analysis of actual usage patterns by relevant users.
[0162] It will be understood that rules may also be horizontal. That is, recommendations for a given field X may depend on the selected elements and their order relative to other areas of field X or another field Y (on the same page or another page of the website). For example, the analysis engine 83 may detect that a user prefers a particular style based on the user's answers for a given field and prioritize that style relative to other fields as well. The TCG analysis rules repository 525 may also include rules about which statements work best together.
[0163] As described above, the analytics engine 83 can use a repository of predefined rules (created by WBS vendor staff 61 and stored in the TCG analytics rules repository 525), which can also be dynamically modified as described in more detail below. The AI / ML engine 831 can use artificial intelligence and machine learning (and particularly deep learning) to analyze input data and user activity and generate recommendations for the HDS / rule handler 82 regarding node filtering, ranking, diversification, and ordering. It should be understood that the AI / ML engine 831 can modify its own data structures (such as neural network models) based on its interactions with the system 200 and its learning process. The AI / ML engine 831 can also save updated versions of such data structures in the ML / AI repository 515 or a separate, matching corresponding repository in the CMS 55.
[0164] It may also be appreciated that as use of system 200 increases, the input information becomes statistically significant to additional (more detailed) segments of the population. Thus, for example, once a sufficient number of construction-related businesses use system 200, system 200 may provide better results for such businesses. This process creates a set of positive feedback loops, thereby improving system 200.
[0165] It may also be understood that in this scenario, there may be two levels of feedback loops: between the website building system and the designer, and between the designer and the end user. For each level, system 200 may deploy multiple feedback loops as loops are deployed for each user segment. It is understood that feedback loops may be considered a characteristic of the general interaction of system 200 (e.g., the interaction between designer 62 and site user 63) as a result of the behavior of system 200. Thus, it is not an explicit element supported by a particular subsystem element of system 200.
[0166] As described above in this specification, the analysis engine 83 can use analysis based on the rules engine 833, and the AI / ML engine 831 and NLP engine 832, as well as data collected by the data collector 95, to make decisions regarding how the HDS / rules handler 82 should behave with respect to filtering, ranking, and ordering of the hierarchical data structure, nodes, and roles. However, the system 200 can also use the collected data to extend or modify the hierarchical data structure and possibly the rules associated therewith, using the node adapter 827 and the rule adapter 828.
[0167] In particular, as the number of users of system 200 (and the amount of data collected from them) increases, analysis engine 83 can analyze user responses to detect certain patterns. These may include, among other things, recurring editorial changes made to the generated text.
[0168] For example, a given hierarchical data structure node X (e.g., a paragraph) consists of a sequence of three subnodes A, B, C (e.g., a sentence), in that order. Based on the editing operations of users who select node X, it is found that most of them change the order of the three subnodes to C, A, B. Furthermore, it is assumed that this repetitive editing behavior is consistent across a large number of users (also a majority). In such a scenario, the analysis engine 83 can determine that the hierarchical data structure should be rearranged to present the C, A, B sequence first, saving the extra editing operations that would be performed by most users, and instruct the HDS / rule handler 82 accordingly.
[0169] It can be appreciated that as the number of users increases, the analysis engine 83 can perform more granular analyses that take into account the user's specific parameters (such as the user's profile details or information about the user's site). Thus, if a sufficient number of photographers in Spain make a given editing change, the analysis engine 83 can decide to pre-apply the repeated change to future users who are also photographers in Spain.
[0170] It may be appreciated that modifications to the hierarchical data structure are not limited to changing the ordering (or optional filtering and ranking) of subnodes: the node adapter 827 may also delete subnodes (possibly using the deleter 822).
[0171] It may also be appreciated that in typical embodiments, adding text cannot be done through the HDS editor 84 (which is typically limited to manipulating an existing hierarchical data structure). However, a user can add additional text through the WBS editor 30, which can be incorporated into the hierarchical data structure through the visual editor coordinator 85.
[0172] The NLP engine 832 may analyze text added to the same hierarchical data structure node by multiple users to detect common themes and text or to generate common denominator text, and may use the results of such analysis to instruct the node adapter 827 and the rule adapter 828 to expand the hierarchical data structure adding additional nodes and possibly associated rules.
[0173] Thus, if a statistically significant number of photographers add one of three possible similar sentences to their business description, the NLP engine 832 can detect such occurrences through its natural language analysis and instruct the node adapter 827 to create additional subnodes that extend the "business description" node. In this scenario, the node adapter 827 can create one "any" subnode and three end nodes (for the three sentences).
[0174] In an alternative embodiment, analysis engine 83 can present the results of the above analysis to WBS vendor staff 61 responsible for content authoring (and thus creating and maintaining hierarchical data structures). WBS vendor staff 61 can then use this information to decide whether to update any hierarchical data structures.
[0175] It will be appreciated that such results may include (for example) usage statistics, success information of the text used (based on BI (Business Information) or end-user feedback as described above), or other types of information collected by data collection unit 95 as described herein above.
[0176] The information may also include common variants of text written by users for particular roles and for particular text components within templates. It may be appreciated that such information can greatly facilitate the creation and maintenance of the HDS repository 523. For example, WBS vendor staff 61 may also manually remove unpopular or unsuccessful options or create new alternative text based on commonly used text.
[0177] It may be appreciated that a user may edit the generated text when editing the containing page using WBS editor 30. Such edits may sever the connection between the generated text and the original hierarchical data structure and the selection and ordering of sub-elements of the hierarchical data structure.
[0178] However, when such visual editing is performed, the text field does not match the field's saved hierarchical data structure editing context. If the user returns to the HDS editor 84 and wants to rework the text, they may lose the changes made in the WBS editor 30. Furthermore, some possible editing changes cannot be represented in a hierarchical data structure, such as merging two statements into a single combined statement.
[0179] It can be appreciated that the ability to return to the HDS editor 84 can be important in some cases. Therefore, the system may use a visual editing coordinator 85 to attempt to maintain correspondence (if only partial) between the text structure and the HDS structure.
[0180] In the case of placeholders, the system 200 can support the ongoing maintenance of placeholder information during visual editing. Thus, the visual editing coordinator 85 can lock placeholders against accidental changes and therefore refresh the placeholder values (e.g., when the underlying data changes). Alternatively, the system 200 may allow placeholders to be refreshed when the underlying values change, but alert the user and flag those placeholders that have been modified in the WBS editor 30.
[0181] In an alternative embodiment, the HDS editor 84 may be integrated with the WBS editor 30. A single combined editor can provide both hierarchical data structure editor services and visual editor services. The same text field underlying the data structure represents both the hierarchical data structure information and the text field information. Some editing operations (such as merging sentences) may disassociate the hierarchical data structure for this area. The visual editing coordinator 85 can provide tracking of editing changes and allow users to apply "return to generated text" to specific text areas (rather than the entire field).
[0182] In another alternative embodiment, the system 200 can maintain a back-pointer from the intra-field text structure to the hierarchical data structure. Thus, changes made during editing are also sent to the visual editing coordinator 85 and applied (if possible) to the hierarchical data structure instance of the field. This can also be implemented by saving a set of edit change records that are later reapplied to the hierarchical data structure.
[0183] Once the content is finalized and approved by the user for the text fields, text generator 86 can linearize the hierarchical data structure and generate text for the text fields. This is the text that will be displayed on the website when the site is generated using site generation system 40 or otherwise inserted into web pages displayed to site designers 62 and site users 63.
[0184] It can also be appreciated that the system 200 can aid in the SEO (search engine optimization) of the website being built, since different sites created using the same template will use different text content and will not be very similar. The HDS SEO Builder 88 can further use information available in the site's hierarchical data structure instance to inject specific SEO-related information (such as keywords and metadata) into the generated / edited site for access by relevant spiders / search engines.
[0185] In one embodiment, the hierarchical data structure may include SEO keywords associated with nodes at all levels (e.g., associated with some or all of a sentence or paragraph). When a specified node is selected, the SEO keywords associated with that node are added to the META header of the page.
[0186] The NLP engine 832 can also extract SEO keywords from text that is added or modified when editing text generated by the WBS editor 30. In particular, the system 200 may assume that changes made in the WBS editor 30 to text generated by the TCG system 80 are more important in relation to or specific to the current site. Thus, such specific text modifications may be good candidates for keyword extraction for the page's META header.
[0187] In another embodiment, the system 200 may use information from a site's predefined SEO keywords and metadata. These may be selected by the user or part of a template (site or otherwise) (e.g., a bakery template may have "bread, cake, . . . "). Such information may be added to the information collected by the data collector 95 to determine any filtering, ranking, and ordering of hierarchical data structure nodes by the HDS / rule handler 82.
[0188] The system 200 may also support integration by providing text kit extraction and kit reintegration capabilities with services external to the website building system. The text kit interface 89 can extract and reintegrate text kits containing all text field content and associations associated with their locations on the website. The extracted text may include only the current field content or an extension of the associated hierarchical data structure. A kit can contain information about a single text field or multiple text fields.
[0189] The kit may also include additional relevant information. For example, the kit may include business classification information (such as business family and industry) or other metadata. This information may be used by translation marketplace sites (such as Fiverr.com) to categorize and route required service requests to the correct location within the marketplace. It may be understood that reintegrating a text kit requires extracting the modified text kit and reintegrating it into the website.
[0190] Related website building systems may also support having text fields with multiple versions stored in parallel (e.g., per language). In such a scenario, a hierarchical data structure and text kits may also be required to support such multiple versions.
[0191] It is understood that TCG system 80 (and particularly user activities and choices when interacting with it) may affect other components of system 200, including components not directly related to any particular text field. Affected areas may include additional user interactions with WBS editor 30, as well as other portions of system 200.
[0192] For example, a user's activity within the TCG system 80 can affect how the system 200 provides content for non-text fields to the user. Thus, choices a user makes when creating text content for an "About Us" field can affect the type of images, video, or audio provided to the user for the non-text fields. Impacts can include (for example) changes to the selection and ranking of provided media objects or the inclusion of additional media sources in the provided media collection. A user (in a given business / industry) who (for example) selects a "service-oriented" branch in the "About Us" hierarchical data structure for a given field / role can be provided with media that emphasizes human interactions. Meanwhile, a user who selects a "product-oriented" branch in this hierarchical data structure can be provided with media that emphasizes products typical of the given industry.
[0193] It will be appreciated that such a "reverse hint" mechanism may have many possible embodiments, which may also be combined. In one embodiment, elements (e.g., nodes) of the TCG system 80 may include reverse hints that are provided to the WBS editor 30, and these may be provided to the WBS editor 30 along with linearized text generated via the text generator 86. In another embodiment, the WBS editor 30 may include (for example) a suggested media recommendation component. The recommender may consult with the analysis engine 83 (or with appropriate elements of the CMS 55 directly) to provide media recommendations to an editing user working within the WBS editor 30.
[0194] Thus, the system 200 can generate text to assist in building a website with final text being a combination of predefined content in a hierarchical data structure, additional system adaptations, user manipulations and selections, information entered into placeholders, and free text based on user writing or editing.
[0195] As described above, the TCG system 80 generates legal text and legal documents on a website. An example of a website legal document is a site policy. During the creation of a website, the TCG system 80 collects both internal system and external environmental data related to the website and its business, which is then utilized to generate the website text and legal documents. Applicant has recognized that TCG, and other state-of-the-art text and document generation systems, are designed to generate text and documents that are "correct at the time of going to press."
[0196] However, Applicant recognizes that site policies and other legal documents are living documents that are subject to frequent changes due to changes in applicable laws and regulations and other external environmental considerations, which may require the addition or editing of paragraphs or affect the entire document. Business owners and website designers 62 must constantly monitor these changes that may affect the content of their living legal documents.
[0197] Applicant further recognized that website designers 62 who use WBS 200 to build and host websites for themselves or other business owners are interested in changes to the business environment and website environment, as well as changes to external environments, such as the legal environment described above, which may trigger document updates. The business environment can encompass business operations, the business operations of other designers in similar businesses, and product portfolios; for example, a company may begin selling a new product line or begin operations in a new geography. The website environment can be the designer's website portfolio, websites of other designers on the WBS, and / or materials from external websites. The legal environment can further encompass regulations, directives, guidelines, standards, industry standards, etc.
[0198] Reference is now made to Figures 14 and 15A-15B. Figure 14 illustrates a Living Document Generator (LDG) 300, similar to Figure 2 above, but constructed and operative in accordance with a preferred embodiment of the present invention. LDG 300 is implemented within WBS 200 and, like TCG system 80, includes an LDG engine 301 and a TCG system 80'. TCG system 80' utilizes many of the same elements as TCG system 80, and therefore like elements have like reference numerals.
[0199] Within the LDG 300, the TCG system 80' can generate initial LDG section text 303 for living documents 302 and other legal documents in the manner described above. According to a preferred embodiment of the present invention, the LDG engine 301 can monitor both internal and external sources for any changes that may affect the composition of the LDG section text 303 within the living document 302. The LDG engine 301 can then coordinate notification of affected users and updates to the document, as described below.
[0200] 15A and 15B show details of the TCG system 80′ and the LDG engine 301. The LDG engine 301 includes an LDG coordinator 305, a policy knowledge engine (PKE) 306, a PKE repository 308, an LDG tagger 315, an LDG tag repository 309, an LDG user repository 310, a monitoring engine 312, a notification engine 313, and a workflow engine 314. The LDG engine 301 can interface with multiple parts of the TCG system 80′, including specific HDS / rule handlers 82′, HDS / rule coordinator 87′, analysis engine 83′, data collector 95′, HDS editor 84′, and CMS 55, which are described in more detail below.
[0201] As described above in this specification, the TCG system 80' can help the website designer 62 create Living Documents 302, such as site policies, terms of use documents, conditions documents, privacy policy documents, cookie policy documents, shipping policies, GDPR-related required site documents, user-generated content policies, end-user license agreements (EULAs), and return and refund policies. These documents contain numerous LDG section texts 303, the exact number and content of which depend on internal and external factors, as described above. Applicant further recognizes that Living Documents are not limited to policy documents, but also to non-legal documents that are part of a website.
[0202] Like TCG 80, TCG 80' can present designer 62 with templates that include empty fields and can guide the designer through the process of selecting text blocks to fill each of these fields. TCG system 80' utilizes a number of methods to provide the user with the best text selections.
[0203] The LDG 300 operates in a similar manner to the TCG generator 80, with the addition of an LDG engine 301 to create the initial living document, monitor internal and external environmental changes that may affect the living document 302, analyze the impact and necessary changes to the living document, notify document designers 62 and HDS creators (typically WBS vendor staff 61) of material changes that may affect their documents, and coordinate updates to the HDS and documents.
[0204] The underlying HDS text structure that can be used in the LDG section text 303 of the living document 30 can include placeholders (e.g., for business names) similar to the placeholders described above in this specification. The TCG 80' can fill these placeholders when generating the document using the collected information.
[0205] The LDG 300 typically outputs a base document (e.g., a policy) or set of documents that form only the initial recommendations. The website designer 62 is typically responsible for editing the output documents and their final form. Such editing may be required to ensure that the WBS vendor is not legally responsible for the content of the final policy documents edited by the designer 62.
[0206] The LDG 300 can support sites that incorporate multiple living documents 302 for specific purposes. For example, the LDG 300 may support the creation of multiple terms of use documents that are displayed to end users of the site arriving from different geographic or regulatory regions. This variation can range from simple localization (e.g., translation) to conformance with different local laws and regulations. In this case, the LDG 300 can allow the website designer 62 to define rules that cause his site to display different versions to different end users; these rules can take into account information collected at runtime from the accessing end users. Alternatively, the LDG 300 can dictate rules that control such version selection.
[0207] The analysis engine 83' and PKE 306 can together determine which HDS text sections to present to the designer 62 for adding the LDG section text 303 and how to order and select them (including multiple levels of hierarchy). The analysis engine 83' and PKE 306 can further use AI / machine learning techniques (including the use of deep learning) and be trained on changes and edits made to living documents 62 previously proposed by the designer community (the current designer 62 and other designers) to make better recommendations in the future. Such training can incorporate specific designer parameters (as AI training data features) to better train the engine for specific designer categories.
[0208] The LDG engine 301 can focus on elements selected by the designer 62 (the entire Living Document 302 or the LDG section text 303 or subsections thereof) and can later track changes made to the laws, rules, and regulations. Thus, the LDG engine 301 can alert the associated designer 62 of the WBS 200 when changes have been made (or are about to be made) to the underlying laws, rules, and regulations related to this Living Document 302 that is actually used by the designer 62. Such alerts may range from merely informative to actually suggesting new or revised versions of various associated policies.
[0209] Similarly, the LDG 300 can detect changes to regulations through mechanisms that allow direct (explicit) reporting by the designer 62 or through (rules or AI / ML-based) analysis of edits and selections made by users. For example, if many users in country X amend a proposed terms of use document to reference new regulation Y, the LDG 300 could generate an alert or other notification to the WBS vendor staff 61. Such notifications can be analyzed internally and used to refine the proposed text base, as well as rules for text selection and ordering. It can be understood that the designer 62 only reports changes to be evaluated and is not allowed to directly modify the underlying rules repository. In an alternative embodiment, the LDG 300 can allow certain users to edit certain portions of the rules repository, subject to approval from the WBS vendor staff 61.
[0210] The LDG engine 301 can generate additional explanatory materials or documentation to help the designer 62 understand different policy document sections and subsections. Such generated materials may be accessible in a text editing environment (general WBS editor 30 or HDS editor 84'). Such materials may be tailored to the designer 62's parameters (e.g., the designer's 62 skill level or other details).
[0211] The data collector 95′ can collect additional internal, external, and derived data that is used by the analysis engine 83′ and the PKE 306 to determine which elements to include (in the generated living document 302) and how to arrange them.
[0212] Examples of internal data may include: (1) Analysis of WBS elements used on websites belonging to designer 62 (blog, e-commerce, etc.). This can be vertical elements or functions, third-party applications, WCAs, or inserted components. Such elements can provide their own hints or subsections for related documents. For example, a blog element or TPA can have its own hints and / or inserted text elements for the terms of use document, privacy policy, etc. A WBS element may provide different suggested text elements for different varieties of a given document type (e.g., there may be multiple categories of privacy policies, and a given TPA may have specific text to be inserted for each of these categories). (2) Analysis of code or other functional elements related to website elements. (3) Information collected from the designer 62 via an information entry interface such as a form, a survey interface, a visual wizard, a chat interface, or a voice interface. (4) Information about the site belonging to Designer 62, particularly its business operations, which may include, for example, the physical location of the business (or other relevant jurisdictional information applicable to the business), the business name, and other information available or collected on the business, as 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," filed June 29, 2017, which is co-owned by the applicant and incorporated herein by reference. (5) Information collected from the site itself, as well as operational information such as site usage information, site elements, or site attributes. As an example, LDG 300 may use an API that analyzes cookies on a particular site to populate a table in a cookie policy document that displays existing cookies and cookie parameters. LDG 300 may import additional information available in WBS 200 about those cookies (such as the cookie purpose) (for some or all of the cookies in the table) and add it to the displayed table. (6) Underlying site commercial database information, such as product and sales information. In particular, such information may include information regarding the geography (and associated jurisdiction) of field clients relevant to the preparation of legal documents, and information available in WBS CMS55.
[0213] Examples of external data sources may include online legal and regulatory repositories, such as the Laws page of the EU website, as well as offline legal and regulatory sources.
[0214] An example of a derived data source may be a specific AI / ML engine that generates appropriate policies and terminology based on content or service data provided by the site (e.g., based on specific products, product categories, or service categories offered by the site). Such derived data may be available (perhaps in a structured manner) to WBS 200. An exemplary AI / ML engine may be that described in U.S. Patent Application No. 16 / 878,831, filed May 20, 2020, entitled “SYSTEM AND METHOD FOR INTEGRATING ON-LINE MACHINE LEARNING FEEDBACK LOOP IN TO WEBSITE BUILDING SYSTEM SERVICES,” which is co-owned by the applicant and incorporated herein by reference. This can help LDG 300 “understand” the legal needs of designer 62 and suggest better, more specific policies based on data collected from other users (and their specific parameters and characteristics).
[0215] Reference is now made to FIG. 16 , which illustrates living documents and LDG tags. To make a document a living document, the LDG tagger 315 allows designers 62 and / or vendor staff 61 to add LDG tags 304 to all LDG section text 303, which can be stored in the LDG tag repository 309. The LDG engine 301 can use the metadata in the LDG tags 304 to keep the living document 302 alive. The metadata included in the LDG tags 304 can include which data sources were used by the analysis engine 83′ and PKE 306 to determine the need for the section text 303, which data sources were used by the analysis engine 83′ and PKE 306 to shape the content of the section text 303, which areas require the current version of the section text 303, which designers 62 and WBS staff 61 need to be notified if this section text needs to be updated, and other related metadata. User data can be stored in the LDG user repository 310.
[0216] An LDG tag 304 may typically include a set of attributes related to the use and update of the living document 302. For example, the LDG tag 304 in Figure 16 lists the LDG section ("Introduction"), its associated geography ("EU"), law type ("Product Liability"), document type ("EULA"), its law code ("X,Y,Z"), and its law source ("WWW.EULAW.COM"). Other attributes that may affect its updates may also be listed.
[0217] Once Living Documents 302 are created and LDG Tags 304 are created and stored, the LDG Coordinator 305 can operate at runtime to coordinate the monitoring, analysis, notification, and update functions within the LDG Engine 301. First, the Monitoring Engine 312, along with the Data Collector 95', can monitor the original data sources and any new data sources for significant changes in both the legal and business environments. As data sources are updated or changes are observed, the Analysis Engine 83' and PKE 306 can analyze whether the changes are significant and require a document update, whether they are informational and require informational notification to the user, or whether there are no significant changes and they can be ignored.
[0218] An example of this monitoring phase might be for a website operating in the European Union and the United States. In this case, the monitoring engine 312 and data collection unit 95' might discover that the United Kingdom voted to leave the EU as part of "Brexit." As a result of this action, some website legal documents might be changed and need to be updated. The analysis engine 83' might analyze metadata in the LDG tags 304 that identify the geographic region to which the section text 303 applies. It might also analyze business operational data to identify revenue levels, product portfolios, staffing levels, and other data. The PKE 306 is like a system lawyer that analyzes legal codes and regulations and their applicability to each section text 303, as well as current operational parameters from the analysis engine 83'. If the PKE 306 indicates that a text section 303 needs to be updated, the LDG coordinator 305 might initiate a user notification via the notification engine 313 and update via the workflow engine 314.
[0219] 17, there is shown the LDG content of two different documents 302 and their associated LDG tags 304A and 304B. In the Brexit example discussed above, the LDG tag 304 in the EULA section text 303 may indicate the region to which it applies. Thus, the LDG tag 304A in the USA EULA may include a geography tag that lists the US, while the LDG tag 304B in the EU EULA may list the EU; LDG tag 304A may also list the US code for the law code attribute, and LDG tag 304B may list the EU code for the law code attribute.
[0220] In the case of an EU EULA, an update may be required due to the UK's departure from the EU, but the similar section text 303 in the US California EULA may not require an update.
[0221] A further example of the monitoring phase may be when designer 62 may add a new product to the website portfolio. Monitoring engine 312 and data collector 95' may pass change data to analysis engine 83' and PKE 306. In this case, analysis engine 83' may identify this as the first potentially dangerous "extreme sports" product to be added to the product portfolio. PKE 306 may then determine whether such a change to the product catalog may require adding a new section to terms and conditions document 302 or may require generating a new document 302.
[0222] As another example, the PKE 306 can detect that multiple e-shops (set up by various designers) have begun carrying a particular product (e.g., smoking-related products) that is associated with a particular regulatory requirement (e.g., only sell to people over a certain age or only sell during certain hours). The PKE 306 may not have complete information about these relevant regulatory requirements, and they may differ between different e-shops (e.g., due to different versions of regulations associated with different locales). However, the PKE 306 can detect correlations, for example, changes made to related documents 302 by some e-shops just before or just after the e-shops begin carrying a particular product or product category. The PKE 306 can further check for such correlations while taking into account (for example) other parameters of the associated designers or websites. The PKE 306 can alert the WBS vendor staff 61 or other relevant designers 62 (as further described below).
[0223] Reference is now made to Figure 18, which illustrates updating a living document 302. In the example above, the PKE 306 and analysis engine 83' can analyze the metadata in the LDG tags 304 to identify which current terms and condition document sections are being used. If new sections are needed, the PKE 306 can create the necessary section texts 303 for all required documents 302 and pass them to the LDG coordinator 305 to initiate user notification via the notification engine 313 and updates via the workflow engine 314. Figure 18 illustrates how documents 302 for different regions, in this case the US and EU, may require the addition of different section texts 303, in this text version C for the EU and version R for the US.
[0224] If the analysis engine 83′ and PKE 306 are able to identify significant changes that may affect living documents, the LDG coordinator 305 can notify affected designers via the notification engine 313. The notification engine 313 can review user metadata in the LDG tags 304 to identify all designers who need to update their section text 303. The notification engine 313 can send notifications that include the urgency level, timeline, affected documents 302 and section text 303, source data, and recommended actions. If an update may be required, the notification engine 313 can include timeline information for the delivery of the updated text. The designers 62 can then decide whether to create their own updates, wait for a system-generated update, or wait for some other response. The notification engine 313 can also create notifications to the WBS vendor staff 61 of the need to create system-wide updates for the designers 62 and to update the HDS section text used during the initial creation and subsequent updates of the document 302. These notifications may contain the same information sent to the designer 62, but may also include additional information, such as the correct internal legal experts needed to review any text changes, internal priority levels, and other vendor-specific information. Once updates are created, approved, and uploaded, the notification system 313 can notify the designer 62 of the availability of updates and information on how to update their documents. Other notifications may also be generated for indirect and unaffected designers 62. Notifications may be distributed through several channels, such as email, app notifications, and through the WBS editor 30 or other parts of the system 100.
[0225] The workflow engine 314 can coordinate updates to the document 302 and section text 303. Any appropriate data or metadata collected by the data collector 95' can be passed to the analysis engine 83' and the PKE 306. Some or all of this data, along with data generated by the analysis engine 83' and the PKE 306, can then be passed to the workflow engine 314. This may include suggested edits or updates generated by the PKE 306. The PKE 306 can suggest edits in several ways. These may be based, for example, on text correlation—detecting that text section A has been replaced with text section B in an existing regulation (available from an external source), correlating text A with text used in the existing LDG document 302, and suggesting (in whole or in part) that it be changed to B. Correlation can also be done designer to designer. For example, the workflow engine 314 may detect that a particular designer has made a particular change (as described above), detect that these changes are correlated (e.g., many designers changed a version of A to a version of B), and suggest applying this change to other related occurrences of A (e.g., in the same business line); as described above, such suggested edits are typically reviewed by WBS vendor staff 61 or designers 62 to ensure accuracy and for accountability issues. The workflow engine 314 can then distribute this data to designers 62 and WBS vendor staff 61 for use in generating and updating document templates, documents 302, and section text 303.
[0226] The workflow engine 314 may also monitor affected documents 302 and section text 303 for updates. If updates are not made by the designer, the workflow engine 314 may notify the designer 62 via the notification engine 313 that action is needed. The workflow engine 314 can then monitor changes made to the website (e.g., implementation of proposed edits) or the workflow engine 314 can receive notifications from the system (e.g., the designer 62 received a message and responded to it). Similarly, the workflow engine 314 can notify the WBS vendor staff 61 that HDS and templates need updates and remind them until such updates are made or rejected.
[0227] When either the designer 62 or the WBS vendor 61 wants to update the document 302 or the section text 303, they can use the WBS editor 30 and the HDS editor 84′. The WBS editor 30 may allow the designer 62 to make updates directly to the document 302 and the section text 303 without these updates being saved in the HDS editor 81′ for use in creating subsequent documents 302 or section text 303. The document 302 may be generated by the text generator 86 and the site generation system 40 as described above. When such direct updates are made, the PKE 306 can analyze the updated document and the LDG tagger 315 can update the LDG tags 304. When the designer 62 wants to update the HDS and use these updates to update the document 302 and the section text 303 and create subsequent documents 302 and section text 303, they can use either the WBS editor 30 or the HDS editor 84′. In this case, PKE 306 can analyze the HDS entries, and LDG tagger 315 can update LDG tags 304. Thereafter, when designer 62 updates document 302 and text section 303 using the updated HDS, PKE 306 can analyze the updates to document 302, and LDG tags 315 can update LDG tags 304. Again, document 302 can be generated by text generator 86 and site generation system 40 as described above herein. It can be appreciated that HDS editor 84′ differs from HDS editor 84 in the addition of post-editing of the HDS.
[0228] While LDG 300 uses tags, it can be understood that this is just one possible embodiment. In alternative embodiments, LDG 300 can utilize an association table, a linked entity graph (e.g., a linked graph of various involved entities), an implicit mechanism (e.g., using an ML engine to provide connections, on-the-fly text analysis / understanding), or any other mechanism.
[0229] Unless otherwise indicated, throughout this specification, discussions utilizing terms such as "processing," "calculating," "computing," "determining," and the like will be understood to refer to the actions and / or processes of any type of general-purpose computer, such as a client / server system, mobile computing device, smart appliance, or similar electronic computing device, that manipulates and / or transforms physical quantities, such as physical quantities in the registers and / or memory of the computing system, into other data that are similarly represented as physical quantities in the memory, registers, or other such information storage, transmission, or display device of the computing system.
[0230] Embodiments of the present invention may include an apparatus for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general-purpose computer or client / server configuration selectively activated or reconfigured by a computer program stored in the computer. The resulting apparatus, when instructed by software, can transform a general-purpose computer into an inventive element as described herein. The instructions can define a device of the present invention that operates with a desired computer platform. Such a computer program may be stored on any type of computer-readable storage medium, such as a disk, including, but not limited to, an optical disk, a magneto-optical disk, 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), a magnetic or optical card, flash memory, a disk-on-key, or any other type of medium suitable for storing electronic instructions and capable of being coupled to a computer system bus.
[0231] 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 in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the desired method. The desired structure for a variety of these systems will be apparent from the description below. Further, 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.
[0232] While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those skilled in the art, and it is therefore to be understood that the appended claims are intended to cover all such modifications and variations as fall within the spirit and scope of the invention.
Claims
1. A website building system (WBS), at least one processor; a textual content generator implemented on the at least one processor for generating a living document from a plurality of document sections stored in a storage device, the textual content generator selecting the document sections as a function of attributes of a website designer or end user; a living document generator having an analysis engine that analyzes internal data sources of the WBS and at least one of external online and offline data sources to determine WBS information and business operational information for the living document; Equipped with the living document generator is configured to update the living document based on the WBS information and the business operational information. Website building system.
2. The living document generator a monitoring engine that monitors the internal and external data sources for changes that affect the living document; a policy knowledge engine (PKE) that recommends changes to the content of section text of the living document after analyzing the impact of external legal and / or regulatory source data on the living document; a notification engine that notifies at least one of designers and WBS vendor staff of changes recommended by the PKE; having The website construction system according to claim 1 .
3. The internal data sources of the WBS are at least one of WBS elements used on a website belonging to the designer, code associated with the WBS elements, information collected from the designer, business information about the website, operational information for the website, cookies for the website, and site commercial database information. The website construction system according to claim 1 .
4. at least one of the external online data sources and the external offline data sources comprises at least one of legal and regulatory online and offline repositories; The website construction system according to claim 1 .
5. the analysis engine includes a machine learning engine that generates content for the section text based on the website; 3. The website construction system according to claim 2.
6. the living documents comprise at least one of a site policy, terms of use document, a conditions document, a privacy policy document, a cookie policy document, a shipping policy, GDPR-related required site documents, a user-generated content policy, an end-user license agreement (EULA), a returns and refund policy; The website construction system according to claim 1 .
7. The legal data is at least one of applicable laws, statutes, regulations, directives, guidelines, standards, industry standards, and external environmental considerations; 3. The website construction system according to claim 2.
8. 1. A method for a website building system (WBS), comprising: generating a living document from a plurality of document sections stored in a storage device, the living document being generated by at least one processor, the generating comprising selecting the document sections as a function of attributes of a website designer or end user; analyzing internal data sources of said WBS using an analytics engine; analyzing at least one of external online data sources and external offline data sources to determine WBS information and business operational information related to the living document using the analysis engine; updating the living document based on the WBS information and the business operational information; have, method.
9. monitoring internal and external data sources for changes affecting said living document using a monitoring engine; recommending changes to the content of section text of the living document after analyzing the impact of external legal and / or regulatory source data on the living document using a policy knowledge engine; notifying at least one of designers and WBS vendor staff of the changes recommended by said policy knowledge engine using a notification engine; further comprising The method of claim 8.
10. The internal data sources of the WBS are at least one of WBS elements used on a website belonging to the designer, code associated with the WBS elements, information collected from the designer, business information about the website, operational information for the website, cookies for the website, and site commercial database information. The method of claim 8.
11. at least one of the external online data sources and the external offline data sources comprises at least one of legal and regulatory online and offline repositories; The method of claim 8.
12. the analysis engine includes a machine learning engine that generates content for the section text based on the website; 10. The method of claim 9.
13. the living documents comprise at least one of a site policy, terms of use document, a conditions document, a privacy policy document, a cookie policy document, a shipping policy, GDPR-related required site documents, a user-generated content policy, an end-user license agreement (EULA), a returns and refund policy; The method of claim 8.
14. The legal data is at least one of applicable laws, statutes, regulations, directives, guidelines, standards, industry standards, and external environmental considerations; 10. The method of claim 9.
Citation Information
Patent Citations
Webpage uploading system, computer program and recording medium
JP2004070619A
Online regulatory compliance system and method for facilitating compliance
US20040139053A1
Multi-jurisdictional electronic-commerce legal products, methods of production and methods of conducting business therewith
US20060282396A1
System and method for automated compliance verification
US20130246291A1
Web site creator using templates
US6684369B1