Web site construction system and method for web site construction system
The website construction system addresses the limitations of current web site building systems by employing semantic complex types and smart boxes for intelligent component analysis and editing, enabling efficient and flexible web page design.
Patent Information
- Application Number
- JP2025018338
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2017-07-13
- Filing Date
- 2025-02-06
- Publication Date
- 2025-05-09
AI Technical Summary
Current web site building systems lack the ability to understand the semantic relationships between components, leading to cumbersome group editing, lack of layout reuse, and insufficient support for specialized editing behaviors, resulting in inefficient and limited design capabilities.
A website construction system that utilizes semantic complex types and smart boxes to analyze and classify components, enabling interactive editing with enhanced capabilities such as semantic decomposition, layout generation, and specialized editing behaviors.
Facilitates efficient and intelligent editing of web pages by recognizing semantic relationships between components, allowing for intelligent layout reuse and specialized editing operations, thereby enhancing user experience and design flexibility.
Smart Images

Figure 2025072535000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates generally to a website building system, and more particularly to a website building system and a method for a website building system. [Background technology]
[0002] Web site building systems have become very popular, allowing even novice web site builders to build professional looking, functional web sites. Many of these systems provide a starting point for both novice and experienced users to build a web site.
[0003] A website building system may be a stand-alone system or embedded within a larger editing system. The system may also be online (i.e., the website is edited and stored on a server), offline or partially online (the website is edited locally but not uploaded to a central server).
[0004] A website typically consists of a visually designed application that consists of multiple pages. Pages can be displayed separately and may contain components. Components are typically organized within a page as a hierarchy of containers (single or multiple pages), which in turn contain other containers or atomic components. Multi-page containers can display multiple mini-pages. Pages may also contain other elements such as third-party applications.
[0005] Pages can also use templates, including full site templates, general page templates, or component templates. Special cases of templates include the use of an application master page that contains components that are replicated on all other regular pages, and the use of an application header and / or footer that repeat on every page.
[0006] A website construction system is typically provided by a website construction system vendor. The website construction system is used by a user (also called a designer) who designs a website. The website is then used by the user's (the designer's) user (also called an end user).
[0007] Existing systems typically allow editing to occur at the component level, including the container level: adding components (e.g., by selecting one from a menu of possible component types and using drag-and-drop), removing components, moving and resizing components, changing component content, changing component attributes (e.g., through floating or fixed attribute panels applicable to the component being edited), and moving components into or out of containers.
[0008] Existing systems also allow components to be grouped (e.g., by using multiple selections of components together with group / ungroup operations), in which case the system allows operations such as moving, resizing, or changing attributes (e.g., color) to be performed on all components in the group. [Prior art documents] [Patent documents]
[0009] [Patent Document 1] US Patent Application Publication No. 2013-0219263 [Patent Document 2] US Patent Application Publication No. 2015 / 0074516 [Patent Document 3] U.S. Patent Application Serial No. 15 / 607,586 [Patent Document 4] U.S. Pat. No. 9,436,765 [Patent Document 5] US Patent Application Publication No. 2014 / 0282218 [Patent Document 6] US Patent Application Publication No. 2015 / 0310124 Summary of the Invention [Means for solving the problem]
[0010] According to a preferred embodiment of the present invention, there is provided a website construction system, the system including a memory, a processor, and at least one database storing website construction system component types, semantic complex types, and smart box definitions of a user's website, where a semantic complex type is a data structure describing a component that is composed of other components. The system also includes a smart box handler for analyzing and classifying a set of components of a page of the website as smart boxes using semantic decomposition based on the semantic complex types and the smart box definitions, and an editor for enabling interactive editing of the website including components and smart boxes, receiving one classification result from the smart box handler and providing additional editing capabilities for the smart boxes based on the classification result.
[0011] Furthermore, in accordance with a preferred embodiment of the present invention, the system also includes an updater that provides update data to the website based on the external update data and that provides update data to the at least one database.
[0012] Additionally, in accordance with a preferred embodiment of the present invention, the system includes a search engine friendly renderer that sends information about the smart boxes and the semantic complexes of the web sites to be indexed to the search engine spiders.
[0013] Furthermore, in accordance with a preferred embodiment of the present invention, the semantic complex is at least one of a base semantic complex, a concept semantic complex, and a repeater semantic complex.
[0014] Furthermore, in accordance with a preferred embodiment of the present invention, the repeater semantic complexes are lists, galleries and grids.
[0015] Furthermore, in accordance with a preferred embodiment of the present invention, the editor allows a user of the website building system to interactively specify website components in smart boxes.
[0016] Further, in accordance with a preferred embodiment of the present invention, the smart box handler includes at least one of an automatic handler for analyzing pages of the website and performing semantic decomposition based on this analysis, an offline analyzer handler for performing batch offline processing and semantic decomposition from external sites to the website and sites maintained in at least one database, and an online analyzer handler for performing online processing and semantic decomposition via the automatic handler.
[0017] Furthermore, in accordance with a preferred embodiment of the present invention, the Smart Box Handler also includes an interactive handler to allow site designers to manually configure the semantic decomposition, and an artificial intelligence / machine learning engine to perform artificial intelligence / machine learning analysis based on user activity and analysis of other websites and pages.
[0018] Further, in accordance with a preferred embodiment of the present invention, the system includes a site generation system that generates a website including the smart box, and an import handler that imports and classifies semantic decomposition definitions from systems external to the site generation system and the website building system.
[0019] Furthermore, in accordance with a preferred embodiment of the present invention, the editor includes a semantic complex sensitive editor that allows the user to apply special editing behaviors to smart boxes, and a semantic complex type editor that allows general editing of semantic complex types.
[0020] Furthermore, in accordance with a preferred embodiment of the present invention, the editor also includes a layout compiler that generates a layout definition for the website based on the layout definition language.
[0021] Furthermore, in accordance with a preferred embodiment of the present invention, the semantic complex sensitive editor includes a semantic complex editing behavior applicator that applies additional editing capabilities.
[0022] Furthermore, according to a preferred embodiment of the present invention, the semantic complex editing behavior application unit includes at least one of an animation handler that proposes and applies semantic complex-specific animations to the smart box, a layout generation application unit that extracts and applies semantic knowledge, layout and semantic complex-specific operations to the smart box, a brush application unit that applies semantic brushes to the smart box, a design kit application unit that proposes and applies associated design kits to the smart box, a resizing unit that operates semantic complex-specific resizing on the smart box, an add / remove unit that at least one of adds and removes items in the list of the smart box, an ordering unit that reorders the items in the list of the smart box, a drag-and-drop handler that operates a drag-and-drop function of the semantic complex-sensitive editor, a selection handler that operates a selection of semantic complexes in the semantic complex-sensitive editor, a matching unit that performs complex matching between semantic complexes, and a content component providing unit for providing additional and alternative components and content for the smart box.
[0023] According to a preferred embodiment of the present invention, a method for a website construction system is provided, which includes: storing a website construction system component type of a user's website, a semantic complex type which is a data structure describing a component composed of other components, and a smart box definition, analyzing and classifying a set of components of a page of the website as smart boxes using semantic decomposition based on the semantic complex type and the smart box definition, enabling interactive editing of the website including the components and smart boxes, receiving a classification result from the analysis and classification, and providing additional editing capabilities of the smart boxes based on the classification result.
[0024] Additionally, in accordance with a preferred embodiment of the present invention, the method includes providing update data to a website based on the external update data and providing the update data to at least one database.
[0025] Additionally, in accordance with a preferred embodiment of the present invention, the method includes sending information about the smart box and the semantic complexes of the web sites to be indexed to a search engine spider.
[0026] Furthermore, in accordance with a preferred embodiment of the present invention, the semantic complex is at least one of a base semantic complex, a concept semantic complex, and a repeater semantic complex.
[0027] Furthermore, in accordance with a preferred embodiment of the present invention, the repeater semantic complexes are lists, galleries and grids.
[0028] Moreover, in accordance with a preferred embodiment of the present invention, enabling interactive editing includes enabling a user of the website building system to interactively assign website components to the smart boxes.
[0029] Further, in accordance with a preferred embodiment of the present invention, the analyzing and classifying includes at least one of: analyzing pages of the website and performing semantic decomposition based on the analysis; performing batch offline processing and semantic decomposition from external sites to the website and sites maintained in at least one database; and performing online processing and semantic decomposition by analyzing pages.
[0030] Further, in accordance with a preferred embodiment of the present invention, analyzing and classifying includes allowing site designers to manually configure semantic decomposition and performing artificial intelligence and machine learning analysis based on user activity and analysis of other websites and pages.
[0031] Further, in accordance with a preferred embodiment of the present invention, analyzing and classifying includes generating a website including a smart box, and generating the website and importing and classifying semantic decomposition definitions from a system external to the website building system.
[0032] Further in accordance with a preferred embodiment of the present invention, the method includes enabling a user to apply specialized editing behaviors to smart boxes and enabling general editing of types of semantic complexes.
[0033] Further in accordance with a preferred embodiment of the present invention, the method includes generating a layout definition for the website based on the layout definition language.
[0034] Furthermore, in accordance with a preferred embodiment of the present invention, applying additional editing functions includes at least one of: proposing and applying semantic complex-specific animations to the smart boxes; extracting and applying semantic knowledge, layout and semantic complex-specific operations to the smart boxes; applying semantic brushes to the smart boxes; proposing and applying related design kits to the smart boxes; operating semantic complex-specific resizing for the smart boxes; at least one of adding and removing items in the list of the smart boxes; reordering items in the list of the smart boxes; operating a drag-and-drop function to allow a user to apply special editing behaviors; operating a selection of semantic complexes to allow a user to apply special editing behaviors; performing complex matching between semantic complexes; providing additional and alternative components and content for the smart boxes; and editing the smart boxes to form new smart boxes.
[0035] 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 read in conjunction with the accompanying drawings. [Brief description of the drawings]
[0036] [Figure 1] 1 is a system diagram of a website building system incorporating building data structures based on semantic page knowledge, constructed and operative in accordance with the present invention; [Diagram 2] 2 is a schematic diagram of the elements of the WBS routine server of FIG. 1 constructed and operative in accordance with the present invention; [Diagram 3] 2 is a schematic diagram of elements of the WBS editor of FIG. 1, constructed and operative in accordance with the present invention; [Figure 4A] 2 is a schematic diagram of elements of the content management system of FIG. 1 constructed and operative in accordance with the present invention; [Figure 4B] FIG. 3B is a schematic diagram of the relationship between the repository of FIG. 3A and its editing options, constructed and operative in accordance with the present invention; [Diagram 5] 4 is a schematic diagram of elements of the semantic complex editing behavior applicator of FIG. 3, constructed and operative in accordance with the present invention; [Figure 6] 2 is a schematic diagram of elements of the smart box handler of FIG. 1, constructed and operative in accordance with the present invention; [Figure 7] 1 is a schematic diagram of an exemplary analysis process for converting a page into its semantic decomposition, constructed and operative in accordance with this invention; [Figure 8] 2 is a schematic diagram of an internal tree representation of the elements and analysis results of FIG. 1, constructed and operative in accordance with the present invention; [Figure 9] 1 is a schematic diagram of a single repeater semantic complex having a multiple element level layout, constructed and operative in accordance with the present invention; [Figure 10] 1 is a schematic diagram of hierarchical modifications resulting from the creation of a smart box, constructed and operative in accordance with the present invention; [Figure 11] 1 is a schematic diagram of an unstructured list mutation iteration constructed and operative in accordance with the present invention; [Figure 12] 1 is a schematic diagram of a smart box and a non-smart box that are aware of handling resize operations, constructed and operative in accordance with the present invention; [Figure 13] 1 is a simplified schematic diagram of individual location dragging inside a repeater smart box, constructed and operative in accordance with the present invention; [Figure 14A] FIG. 13 is a schematic diagram of an edit decorative line smart box consisting of two lines with an umbrella shape in the middle, constructed and operative in accordance with this invention; [Figure 14B] FIG. 13 is a schematic diagram of an edit decorative line smart box consisting of two lines with an umbrella shape in the middle, constructed and operative in accordance with this invention; [Figure 14C] FIG. 13 is a schematic diagram of an edit decorative line smart box consisting of two lines with an umbrella shape in the middle, constructed and operative in accordance with this invention; [Figure 14D]FIG. 13 is a schematic diagram of an edit decorative line smart box consisting of two lines with an umbrella shape in the middle, constructed and operative in accordance with this invention; [Figure 14E] FIG. 13 is a schematic diagram of an edit decorative line smart box consisting of two lines with an umbrella shape in the middle, constructed and operative in accordance with this invention; [Figure 14F] FIG. 13 is a schematic diagram of an edit decorative line smart box consisting of two lines with an umbrella shape in the middle, constructed and operative in accordance with this invention; [Figure 14G] FIG. 13 is a schematic diagram of an edit decorative line smart box consisting of two lines with an umbrella shape in the middle, constructed and operative in accordance with this invention; [Figure 15A] 1 is a simplified schematic diagram of an Edit Sales Ribbon Smart Box, constructed and operative in accordance with the present invention; [Figure 15B] 1 is a simplified schematic diagram of an Edit Sales Ribbon Smart Box, constructed and operative in accordance with the present invention; [Figure 15C] 1 is a simplified schematic diagram of an Edit Sales Ribbon Smart Box, constructed and operative in accordance with the present invention; [Figure 15D] 1 is a simplified schematic diagram of an Edit Sales Ribbon Smart Box, constructed and operative in accordance with the present invention; [Figure 15E] 1 is a simplified schematic diagram of an Edit Sales Ribbon Smart Box, constructed and operative in accordance with the present invention; [Figure 15F] 1 is a simplified schematic diagram of an Edit Sales Ribbon Smart Box, constructed and operative in accordance with the present invention; [Figure 16A] 1 is a schematic diagram of an Edit About Smart Box, constructed and operative in accordance with the present invention; [Figure 16B] 1 is a schematic diagram of an Edit About Smart Box, constructed and operative in accordance with the present invention; [Figure 16C] 1 is a schematic diagram of an Edit About Smart Box, constructed and operative in accordance with the present invention; [Figure 16D]1 is a schematic diagram of an Edit About Smart Box, constructed and operative in accordance with the present invention; [Figure 16E] 1 is a schematic diagram of an Edit About Smart Box, constructed and operative in accordance with the present invention; [Figure 16F] 1 is a schematic diagram of an Edit About Smart Box, constructed and operative in accordance with the present invention; [Figure 17A] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 17B] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 17C] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 17D] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 17E] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 17F] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 17G] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 17H] 1 is a schematic diagram of an editing "Team Member" smart box, constructed and operative in accordance with the present invention; [Figure 18A] 1 is a schematic diagram of a compilation of repeater smart boxes constructed and operative in accordance with the present invention; [Figure 18B] 1 is a schematic diagram of a compilation of repeater smart boxes constructed and operative in accordance with the present invention; [Figure 18C] 1 is a schematic diagram of a compilation of repeater smart boxes constructed and operative in accordance with the present invention; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0037] It should be understood that for simplicity and clarity of the figures, 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.
[0038] In the following detailed description, numerous specific details are discussed 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.
[0039] Applicant has recognized that current web site building systems do not have knowledge of the meaning, role and relationship of a particular component. For example, a page may contain a picture component and two text components that together depict a person (e.g., a photo of the person, a name and a title of the person). When a user moves the photo, the two related text components do not move with the photo unless the user manually marks the picture component and the two text components as a component group. Applicant has further recognized that the use of such groups in the prior art can be problematic. Most users do not recognize the need to group components. Once components are grouped, making changes to a subset of the group (without affecting the other group members) can be cumbersome or impossible. Furthermore, grouping components typically only allows each component to be moved or recognized together, but does not (cannot) exhibit additional features that are inferred from the components forming a joint semantic unit together. For example, a set of images can form a gallery that can provide special functions such as rearrangement of the images to provide different gallery layouts and animations, etc. In the above example of a picture component and two text components, there is no way for the system to determine that the picture component and the two text components form a "portrait group" and should be treated as such.
[0040] Additionally, Applicant has recognized that current web site building systems lack support for the reuse of "layout knowledge." For example, if a page contains multiple sets of "portraits" as described above, there is no way for changes made to one set to be applied to another set.
[0041] In another example, if a user decides that a particular visual layout for a single "portrait" set is visually superior, there is no easy way to apply this change to another "portrait" set, or only to that "portrait" set. The user may wish to change the layout of all "portrait" sets on the page so that they all have the same layout, without modifying other [image+text+text] component sets that do not form "portraits". This is specifically the case when the selected visual layout requires some changes to be made to the relative positions and sizes of each component of the "portrait" set.
[0042] Existing systems do not provide support for smart alternative layout selection; that is, existing systems do not provide a way to quickly evaluate multiple possible layouts of such a set of "figures." In particular, existing systems do not provide a way to evaluate possible layouts that relate to special meanings or characteristics; for example, there is no way to evaluate layouts that are specific to a "figure set" as opposed to any general layout of a picture-text-text component combination.
[0043] Existing systems also do not support specialized editing behaviors, i.e., no method is provided for editing behavior to accommodate component sets with specialized capabilities and requirements. For example, existing systems do not provide a method for a resize operation (when applied to a specialized set of components) to be applied separately to separate components of a set. For example, when shrinking a "portrait" set, existing systems fail to provide an option to shrink the person's name at a smaller zoom factor than the person's photo.
[0044] In another example, when resizing a group consisting of two shapes with a line between them (called a "decoration line"), the default resize behavior does not handle the group properly: If the user (for example) stretches (resizes) the group horizontally, the system will either resize all components proportionally (resulting in overly thick lines), or simply stretch the lines and shapes horizontally (resulting in non-proportional shapes), when the desired result would be to stretch only the middle line and resize the shape while preserving its aspect ratio.
[0045] The system can resolve this situation with some semantic-based specific resize behavior, such as correct resizing (stretching the line while keeping the shape at the same size), or with a semantic-based specific animation (e.g., a center line gradually appears from the center to the edge, and then the shape appears). The system can also allow the user to change the decoration line meaning to a different decoration line variant (e.g., a different shape or a different line shape configuration) that may be more appropriate for the new size.
[0046] Such special behavior may be beneficial for user-initiated editing operations and when involving the use of dynamic or responsive layouts (e.g., when a given page is displayed on another screen of a different size, resolution or aspect ratio), as described in U.S. Patent Application Publication No. 2013 / 0133364, entitled "Web Site Design System Integrating Dynamic Layout and Dynamic Content," published on August 22, 2013, and assigned to the common assignee of the present invention.
[0047] Applicant has recognized that the above-mentioned inadequacies may be addressed with a system that is capable of analyzing a page to create, maintain, and use a dual model of the page being edited. Under this model, in addition to the normal component hierarchy, some (or all) of the components may be categorized and grouped under a parallel hierarchy (or hierarchies) called smart box elements. This hierarchy (or hierarchies) of smart box elements may be referred to as the semantic decomposition of the page (or website). It is to be understood that such smart box hierarchies may be entirely separate hierarchies or may be merged into the main component hierarchy, as further described below. It is also to be understood that smart boxes may be nested within each other, i.e., one smart box may contain another smart box.
[0048] The system can create and maintain a semantic decomposition based on semantic knowledge extracted from page components as well as other sources (e.g., inter-component anchors, component edit history, component attributes, content or feature analysis, heuristic or machine learning techniques, etc.). An example of an algorithm for extracting several types of semantic information and semantic relationships between components is described in U.S. Patent Application Publication No. 2015 / 0133634, entitled “System and Method for Automated Conversion of Interactive Sites and Applications to Support Mobile and Other Display Environments,” published on March 12, 2015, and assigned to a common assignee of the present invention.
[0049] The system may also integrate data sources with external information sources not related to the actual page editing process and component visual attributes, such as business or other information about the website, its pages, and the website owner (if available). It is understood that data may be extracted from sources such as those described in U.S. Patent Application Publication No. 2013 / 0133994, entitled “System and Method for the Creation and Update of Hierarchical Websites Based on Collected Business Knowledge,” filed May 29, 2017, and assigned to the common assignee of the present invention.
[0050] It should also be appreciated that such smart boxes can conform to predefined semantic-based data types called semantic complexes, e.g., a "picture + associated caption" data type, a "list of team members" data type, etc. A semantic complex can also be considered as a "component built from a collection of other components," as discussed in more detail below. A semantic complex is a data type, whereas a smart box is a specific instance of a data type on a given page. The system can also support smart boxes that do not conform to any particular predefined semantic complex data type. Thus, the system can analyze the page being edited (per a database of semantic-based data types) and automatically classify a set of elements as a semantic complex based on component analysis and matching, as discussed in more detail below.
[0051] Some semantic complexes may be repeater semantic complexes such as lists, galleries and grids that display multiple sub-elements, and some may be non-repeating (such as the "picture+caption" semantic complex mentioned above).
[0052] The system can then perform operations to extract and apply semantic knowledge and layouts to the various smart boxes, as well as specific manipulations of the semantic complexes, as discussed in more detail below. The system can further modify its editing behavior to adapt to the particular smart box being edited.
[0053] It should be understood that semantic complexes can be classified as two types: low-level basic semantic complexes and high-level conceptual semantic complexes.
[0054] A base semantic complex may include a joint combination of components that together form a unit having a binding means. Examples of base semantic complexes include image and text components forming an image and depiction base semantic complex, several text components forming a text paragraph base semantic complex, a repeating sequence of similar components forming a list base semantic complex, and a set of images forming an image gallery base semantic complex.
[0055] A concept semantic complex, as will be understood, may include a combination of components that together embody a particular concept or content element. Examples of concept semantic complexes include picture+text(title)+text(description)+number(price) that together form a product depiction concept semantic complex, and picture+text(name)+text(email)+number(phone number)+text(address) that together form a personal contact concept semantic complex.
[0056] It should be understood that while basic semantic complexes are defined in the domain of "website building system components," concept semantic complexes are defined in the domain of the "real world," that is, human conversations that have meaning outside of websites (such as business terms and concepts).
[0057] It should be appreciated that the system can also support the notion of "roles" or "fields." For example, a "team member" concept semantic complex can have a "name" field and an "email" field, both of which are textual components but distinct from each other. A "team member" identifier module can match a text field contained within the "team member" concept semantic complex to a given role (for example) based on the content of the text field (e.g., an email field could contain a valid email address ending with "@" followed by a valid domain name).
[0058] Roles can be mandatory or optional (e.g., the absence of a name field does not identify a set of fields as a "team member" concept-semantic complex, but the absence of an email field may identify some or all potential concept-semantic complexes). Roles may have additional role-specific attributes, such as field validation rules or field detection rules. Roles can also play a part of identification heuristics (e.g., if there is an email field, it is likely to be a team member concept-semantic complex).
[0059] Reference is now made to Figure 1, which illustrates a system 100 of a website building system 5. The website building system incorporates building data structures based on semantic page knowledge according to one embodiment of the present invention.
[0060] The system 100 may include a website construction system 5, a website construction system site manager (management section) 10, a target market 15, a website construction system (WBS) runtime server 20, a website construction system (WBS) editor 30, a site generation system 40, a content management system 50, a smart box handler 80, and an updater 90. The website construction system 5 can communicate with a website construction system vendor personnel 61, a site designer 62, a client system operated by a site viewer 63, and an external system 70. The smart box handler 80 can classify components and pages as smart boxes, and the updater 90 can provide update data to other elements and the content management system 30 based on external update data. It should be understood that the functions of the remaining elements may be as described in Patent Document 3.
[0061] The object marketplace 15 can enable exchange of objects (such as element types and smart complex types) between object vendors and site designers 62 via the website building system 5. The WBS RT (runtime) server 20 can handle run-time access by (possibly multiple) site viewers 63. The WBS editor 30 can enable site designers 62 to generate and edit sites, and provide and apply smart alternative layouts. The smart editing behavior and site generation system 40 can also generate the actual site based on the generated semantic complexes (possibly based on external or provided user information). The content management system 50 can hold data related to the associated website, along with semantic complex types and smart box definitions. The smart box handler 80 can also analyze and classify semantic complexes, both internally from website pages and externally from imported data structures, as described in more detail below.
[0062] Reference is now made to Figure 2, which illustrates elements of a WBS runtime server 20. The WBS runtime server 20 may further comprise a renderer coordinator 21, a normal renderer 22, a search engine friendly renderer 23, a site map renderer 24, and a WBS viewer 25. The normal renderer 22 may further comprise a runtime (RT) semantic complex behavior applier 221. The search engine friendly renderer 23 may further comprise a runtime (RT) search engine friendly and semantic complex behavior applier 231. The site map renderer 24 may further comprise a site map SEO and semantic complex behavior applier 241. The renderer coordinator 21, normal renderer 22, search engine friendly renderer 23, and site map renderer 24 may be similar to the renderers described in U.S. Patent Application Publication No. 2016 / 0133991, entitled “System for Deep Linking and Search Engine Support for Web Sites Integrating Third Party Application and Components,” which was issued on September 6, 2016, and is assigned to the common assignee of the present invention. It should be appreciated that the WBS viewer 25 may enable a user to edit a smart box in certain circumstances (e.g., adding a blog post to a blog smart box) or apply smart box-related operations to a smart box (e.g., temporarily applying an alternative layout to the viewed page portion).
[0063] The RT semantic complex behavior applier 221 can apply semantic complex behaviors at runtime, and the RT search engine friendly and semantic complex behavior applier 231 can apply search engine optimization related semantic complex techniques (i.e., extract data for use for search engine optimization accordingly). The sitemap SEO and semantic complex behavior applier 241 can also apply semantic complex behaviors, as discussed in more detail below.
[0064] Reference is now made to FIG. 3, which illustrates elements of the WBS editor 30. It should be appreciated that the WBS editor 30 may enable direct visual creation and editing of semantic complexes and smart boxes for website building system sites stored in the content management system 50. The WBS editor 30 may also allow editing of the created sites. The WBS editor 30 may comprise a semantic complex sensitive editor 31, a semantic complex type editor 32, a layout compiler 33, and a coordinator 34. The semantic complex sensitive editor 31 may comprise a semantic complex (SC) editor behavior applier 311.
[0065] It should be understood that the WBS editor 30 may be a conventional website building system visual editor with knowledge of how to process semantic complexes. The semantic complex sensitive editor 31 may allow a user to interactively specify components in smart boxes and may allow the user to apply special edits, as described in more detail below. The semantic complex type editor 32 may also allow the WBS vendor personnel 62 to edit the semantic complex types.
[0066] A layout compiler 33 can generate a layout definition for a site, and a coordinator 34 can coordinate between various elements within the WBS editor 30, external elements, databases, etc. The functions of these elements are described in more detail below.
[0067] It should be appreciated that at any stage during the creation and editing of a website, the WBS editor 30 can perform semantic decomposition based on explicit user or site designer 62 edits. In this scenario, the semantic complex sensitive editor 31 may enable a user building or editing a page to similarly create and edit smart boxes in much the same way that the user creates regular components and containers. For example, the WBS editor 30 may provide a set of possibly predefined smart boxes as part of the regular component palette displayed by the WBS editor 30, as described in more detail below.
[0068] The following discussion focuses on an implementation of the WBS editor 30 implemented in the realm of website building systems, although in alternative embodiments, the WBS editor 30 can be implemented in a variety of visual design systems and other environments used for web-related and non-web-related purposes, i.e., specific site or application creation tools, blog creation tools, systems used to create and modify mobile device applications (such as smartphone apps), native application building systems for mobile, desktop, client-server or other environments, non-browser web application development environments and plug-in development environments (for use in environments such as the Adobe Flash Player available from Adobe.com), systems for creating plug-ins and other add-on elements for other systems (web browsers or otherwise), etc.
[0069] The WBS editor 30 can also be implemented with a shop builder, a system used to create an e-shop (or e-commerce site), a system used to edit pages in a social network or other presence providing platform, a multi-target visual design system, a visual design system for creating applications for multiple platform types, and application conversion and import tools.
[0070] As discussed above, semantic complexes can be based on page components as well as other sources (e.g., inter-component anchors, component edit history, component attributes, content or feature analysis, heuristic or machine learning techniques, etc.). The content management system 50 can hold all forms of content and layouts related to the website building system 5, as shown in FIG. 4A, which is referred to herein. The content management system 50 can include a smart box definition repository 501, a semantic complex type repository 502, a design kit repository 503, a WBS (website building system) component repository 504, a WBS site repository 505, a business intelligence repository 506, an edit history repository 507, a user information repository 508, a rule repository 509, an ML / AI (machine learning / artificial intelligence) repository 510, a layout repository 511, and a content management system coordinator 512 that integrates data between the content management system 50 and the system 100.
[0071] The WBS site repository 505 may include both generated sites (created by the site generation system 40) and other WBS sites (created by the WBS editor 30 or by other means, such as direct conversion from other systems). It should be understood that the categories are not definitive, as generated sites may be further edited by the WBS editor 30.
[0072] The WBS component repository 504 can contain component type definitions for the website building system 5, i.e., describe the parameters and properties of various element types (such as text components, media components, containers, and complex components such as galleries, sliders, and third-party applications). These component type definitions are then used by the WBS editor 30 to perform interactive, direct editing of the site (e.g., enabling visual WYSIWYG editing of pages), as described in more detail below. These component types are also used as the basic building blocks for the various layout element types generated by the site generation system 40 described above.
[0073] The rules repository 509 may store all the rules relating to semantic decomposition, layout calculation, etc., as described in more detail below.
[0074] Reference is now made to Figure 4B, which illustrates the relationship between the repository of Figure 4A and its editing options, and their use of smart box definitions and semantic complex types, as discussed in more detail below.
[0075] Content management system 50 may be implemented using a single database or multiple databases, based on one or more servers or server farms. Content in content management system 50 may be distributed based on logical relationships (e.g., information related to a single site being kept together), geography, connectivity (e.g., available bandwidth), security, user profiles, data profiles, access profiles, or other parameters.
[0076] It should be appreciated that the WBS editor 30 can perform semantic decomposition to create smart boxes (i.e., semantic complex instances). It should also be appreciated that the WBS editor 30 can create or modify smart boxes in a number of ways.
[0077] Reference is now made to Figure 5, which illustrates the components of the SC editing behavior applier 311. It should be understood that the functionality of the components of the SC editing behavior applier 311 is also applicable to the RT SC behavior applier 221, the SEF SEO and SC behavior applier 231, and the Sitemap SEO and SC behavior applier 241. The SC editing behavior applier 311 may include an animation handler 3111, a brush applier 3112, a design kit applier 3113, an alternative layout selector / applier 3114, a resizer 3115, an adder / deleter 3116, an orderer 3117, a drag-and-drop handler 3118, a selection handler 3119, a matcher 3120, and a content / component offerer 3121.
[0078] The animation handler 3111 can suggest and apply semantic complex specific animations, the brush applier 3112 can apply semantic brushes, and the design kit applier 3113 can suggest relevant design kits based on the design kit repository 503 that contains design kits prepared by (for example) WBS vendor personnel 61. The alternative layout selector / applier 3114 can suggest and apply alternative layouts, the resizer 3115 can handle semantic complex specific resizing, the adder / deleter 3116 can add or remove items in a list, the orderer 3117 can reorder items in a list, the drag and drop handler 3118 can handle drag and drop functionality, the selection handler 3119 can handle semantic complex selection, the matcher 3120 can perform complex matching, and the content / component offerer 3121 can provide additional or alternative components and content. The functions of these elements are explained in more detail below.
[0079] Reference is now made to Figure 6, which illustrates the elements of the Smart Box Handler 80. The Smart Box Handler 80 may comprise an Auto Handler 81, an Interactive Handler 82, an Import Handler 83, an Artificial Intelligence (AI) / Machine Learning (ML) 84, an Offline Analyzer / Handler 85, and an Online Analyzer / Handler 86.
[0080] The automatic handler 81 can perform semantic decomposition based on analysis of existing pages. The automatic handler 81 can analyze edited pages (during an editing session or after an editing session, such as during a save) to perform semantic decomposition. The interactive handler 82 can be used by a site designer to manually configure semantic decomposition (i.e., define which components are included in a smart box or in another smart box within a smart box). The import handler 83 can import and classify semantic decomposition definitions from external systems 70 and the generation system 40. Also, the artificial intelligence / machine learning machine 84 can perform analysis based on user activity and analysis of other websites and pages. The offline analyzer / handler 85 can work with the automatic handler 81 and the import handler 83 to perform batch offline processing and semantic decomposition from external sites and sites held in the content management system 50. The online analyzer / handler 86 can work with the automatic handler 81 and the interactive handler 82 to perform online processing and semantic decomposition. The functionality of these elements is described in more detail below.
[0081] The automatic handler 81 can create a semantic decomposition of an existing component-based page. The decomposition process can be based on semantic knowledge extracted from the components of the page, as described above, as well as other sources (e.g., inter-component anchors, component edit history, business information, component attributes, content analysis, etc.).
[0082] Users can also create pages that contain both regular components and smart boxes. Furthermore, the semantic complex sensitive editor 31 may allow regular components and smart boxes to overlap, and various forms of these two component classes to be mixed (e.g., adding regular components into a smart box). Alternatively, the site designer 62 can manually set the semantic decomposition using the interactive handler 82.
[0083] The import handler 83 may also perform semantic decomposition based on part of the page generation process. It should be appreciated that the site generation system 40 may generate the page along with its semantic decomposition as discussed in U.S. Patent No. 6,399,433, which describes a system for generating web sites based on extracted or provided information about the underlying business. The generated site is made up of multi-component layout elements that may be viewed by the editor 30 as smart boxes.
[0084] The WBS editor 30 may also perform semantic decomposition based on manual classification edits. The semantic complex sensitive editor 31 may also allow the user to review the smart box classification assignments (from the smart box handler 80) and manually modify the smart box classifications via the interactive handler 82. For example, the user may view a smart box classified by the smart box handler 80 as "employee depiction" and either delete the definition entirely or change the definition to another smart box type (i.e., semantic complex) selected from a list of relevant smart boxes for a given component collection (such as "visitor depiction"). The WBS editor 30 may also allow the user to directly add smart boxes in the same way that a normal component can be added by selecting a particular smart box type (e.g., semantic complex) from the "Add Object" menu of the WBS editor 30. Exemplary user interfaces that provide the user with the ability to add smart boxes are shown in FIGS. 15A, 16A, and 17A. Exemplary user interfaces that provide a user with the option to convert an existing smart box to another smart box type are shown in Figures 14B, 17C, 17D and 17E and are described in more detail below.
[0085] For all of the above methods, it should be appreciated that the updater 90 can update the semantic decomposition over the period in which the page is updated, for example by invoking the automatic handler 81 during editing as components are edited and modified.
[0086] The WBS editor 30 may also provide additional methods or methods to combine any of the above methods. For example, the editor 30 may allow a user to edit a page that contains not only regular components (and containers) but also smart boxes. However, the WBS editor 30 may also perform on-the-fly analysis of the edited components and convert the created component set into a smart box if relevant.
[0087] Alternatively, instead of editing or creating semantic complexes, as described in more detail below, an import handler 83 may import semantic decomposition definitions from an external system 70, or the WBS editor 30 may enable semantic complexes to be added from the destination market 15.
[0088] Reference is now made to Figure 7, which illustrates the process carried out by the automatic handler 81 when a semantic decomposition is produced by analysis of an existing page. As shown, plate [A] shows a page containing nine components, namely five text components [a, e, f, g, i] and four picture components [b, c, d, h].
[0089] The auto handler 81 can analyze this page using (for example) an analysis of the size, location, relative position (to each other) of the components, and possibly the text and picture content. The auto handler 81 can also look up business information stored in the business intelligence repository 506 about the owner of the particular page. Based on this analysis, the auto handler 81 can determine:
[0090] Each of the three pairs [b,e], [c,f] and [d,g] is a combination of [picture + associated caption], and in particular, these three pairs are a set of pictures of a person with his or her name on them. It should be understood that in this scenario, these three people are in fact three partners of a particular organization (e.g., a law firm, partnership) that owns the site to which this page belongs. The automatic handler 81 can also determine that the text component [i] contains a description of the scene shown in the picture component [h].
[0091] Based on this analysis, the auto-handler 81 can create an internal representation in which the smart boxes are defined (and shown as virtual containers in plate [B] of FIG. 7). Thus, the auto-handler 81 can define:
[0092] Three [team member] smart boxes: [k] which encompasses [b,e], [l] which encompasses [c,f], and [m] which encompasses [d,g].
[0093] [Team Member List] smart box [j] encompasses [k, l, m].
[0094] [Image + Description] Smart box [n] that encompasses [h, i].
[0095] It will be appreciated that the two different representations can also be represented (internally) using an element tree, as shown in Figure 8 to which reference is now made, which presents a classification by a collation tree of the two plates "A" and [B] of Figure 7.
[0096] In an alternative embodiment, the system 100 may not have the business information on the website, and the automated handler 81 may base its analysis on other available information (such as geometric properties, content, visual attributes, and edit history of the components stored in the content management system 50). In this embodiment, the automated handler 81 may be limited to the basic semantic complexes (rather than the conceptual semantic complexes), and may only create [image+caption] smart box[k,l,m] and [image+description] smart box[n]. In this scenario, the automated handler 81 may not be able to create or define something similar to the [team member list] smart box[j] based on the underlying business information. However, it may still be able to know if and how the three [image+caption] smart boxes[k,l,m] are related to each other, and possibly infer additional information based on (for example) geometric similarity, order, etc. The automated handler 81 may also use information from the artificial intelligence / machine learning machine 36 to infer that each [image+description] set depicts a person.
[0097] It should be understood that in both above analyses, component [a] (a single textual component) does not correspond to any semantic complex definition and is left as a "normal" (non-smart box) component in the smart box hierarchy.
[0098] It should be understood that a layout is a specification of the arrangement of a set of components, including component attributes such as position (X, Y), size (height, width), rotation, order (Z-order) and dynamic layout anchors, as described in U.S. Patent No. 5,399,363.
[0099] Furthermore, it should be appreciated that some embodiments of the system 100 only support non-hierarchical (one level) layouts, while other embodiments support hierarchical layouts (including multiple levels of containing elements), in which the layout information may also include containing hierarchy information.
[0100] A layout does not include non-geometric attributes such as component type or content. However, additional component attributes can be associated with a layout, e.g., repeater-related attributes for a grid-style repeater, i.e. row number, column number, H / V spacing, etc. (But more often the additional component attributes are properties of the semantic complex or smart box with which the layout is associated). These attributes are usually properties of the smart box.
[0101] Other component attributes may include component frame information (i.e. frame type, bevel parameters) that are typically properties of smart boxes and additional decorative elements, such as dividing lines.
[0102] In a list-type layout, attributes may include an indication of what component data is exported for editing, along with component order, list organization, horizontal lines, vertical lines, grids, circles, etc. For example, in a semantic complex that represents an image with a caption, the WBS editor 30 may make the text and image URL visible for editing only, and similarly not make visible an image in crop mode that is part of the image data.
[0103] Other attributes may include actions that can be performed on the semantic complex, styles that can be applied to the semantic complex (or specific elements thereof), and animations that are applied to the semantic complex. Exemplary user interfaces for selecting alternative formats of the smart box are shown in Figures 17F and 17G and are described in more detail below.
[0104] It should be understood that a layout is generally defined (herein) in terms of absolute x / y / h / w values (e.g., relative to the top left corner of the containing region / container / page), but the essence of a layout is in the relative placement and size of the various components, i.e., how each component is in relationship to other components of the layout.
[0105] Thus, the system 100 can support relatively defined layouts that are dynamically calculated based on the relative component placements, the actual component definitions, and the dimensions of the box that contains the component placements. Such relatively defined layouts are therefore relative to the dimensions of the enclosing box.
[0106] For example, when applying a relatively defined layout A to an existing set of components B (as described in more detail below), the layout compiler 33 may move and resize frame regions within A to better fit the set of components B (preserving the relative positions and sizes of each element).
[0107] In another embodiment, the WBS editor 30 can define a layout definition language that can allow a layout to be defined in a natural abstract language. For example, the layout of a smart box that contains an image, a title, and a description can be defined as follows:
[0108] Title: 1st Image: After title Description: After the picture It should be appreciated that the layout compiler 33 can read the layout definition language description to generate a detailed layout definition for use by the rest of the system 100. The layout compiler 33 can start by obtaining the height and width of the box that contains the layout. From here, the layout compiler 33 can determine whether the component flow is horizontal (width>>height) or vertical (otherwise). It should be appreciated that the layout compiler 33 can also allow the flow direction to be explicitly specified and can support additional flow types.
[0109] After determining the flow, the Layout Compiler 33 can generate a layout based on the following guidelines: if the flow is "vertical", start by placing the title "first" (meaning "top" in this scenario), then place the image "after title", which in vertical flow means "below title", then place the description similarly.
[0110] It should be appreciated that the layout compiler 33 can support additional "position indicators" that can be used to specify that a given component is to be placed at the top / bottom / left / right regardless of flow direction, or that a given component is to be placed in the center of a bounding box.
[0111] It should be appreciated that the layout compiler 33 can also support "size directives" that can guide the layout compiler 33 to define the size assigned to a component. In the absence of such size directives, the layout compiler 33 can use default rules (such as preserving aspect ratios for images, maximum width / height for text, etc.). Size directives can define widths in absolute terms, relative to the available screen (or other containing area) size, etc.
[0112] Components can have size constraints (min, max or fixed) that can be used when generating the layout and also when resizing the component or its containing smart box.
[0113] It should be appreciated that the layout compiler 33 can generate multiple layout alternatives based on the relevant layout rules and defined components, and can eliminate generated layout alternatives that violate certain constraints and design rules (including possibly interfering with or overlapping external components).
[0114] The layout compiler 33 may generate layout information (x, y, w, h) for each component. The layout compiler 33 may then perform validation checks to verify that the output layout is valid, e.g., there are no overlapping components (if such condition is required), no components exceed the box boundaries. For each semantic complex, several layout rules may be defined (and stored in the rules repository 509), which allows the layout compiler 33 to immediately try the next layout guideline if the layout is invalid. The layout compiler 33 typically refrains from generating intersecting components, as the applicant recognizes that such overlaps generally lead to problematic layouts.
[0115] It should be understood that each element (eg, page, smart box, and other containers) that contains components has a current layout (the layout in which the element is currently contained).
[0116] It should also be appreciated that each semantic complex can be associated with one or more associated layouts, which can be provided to the user (as alternative layouts), selected, and applied (thereby replacing the current layout) to any smart boxes that fit the semantic complex by an alternative layout selector / applier 3114. These layouts can be collected from a number of sources, as discussed further below.
[0117] It should be understood that different smart boxes conforming to the same semantic complex can still use different layouts (possibly with the exception of inner strict repeater semantic complexes, as explained in more detail below).
[0118] The system 100 may also support a mechanism that allows a layout to adapt to a set of components (in a smart box) that does not strictly fit the layout (e.g., has additional or missing components to those specified in the layout). To do this, the alternative layout selector / applier 3114 may modify the associated layout by placing the extra components that were added (in addition to the components of the semantic complex request) in the smart box before applying, e.g., extending, it.
[0119] Thus, the layout definition may include dedicated "landing zones" for such additional components (as discussed in U.S. Patent Application Publication No. 2014 / 0133634, entitled "Device, System, and Method of Website Building by Utilizing Data Lists," published March 13, 2014, and assigned to the common assignee of the present invention). Additional such adaptation mechanisms are described in U.S. Patent Application Publication No. 2014 / 0133634, entitled "System and Method for the Creation and Use of Visually-Diverse High-Quality Dynamic Layouts," published October 29, 2015, and assigned to the common assignee of the present invention. The smart box may include a list of specific modifications made to the layout (in addition to the current layout being used), such as adding or removing components.
[0120] It should be understood that the above mentioned adaptations are done at the smart box (instance) level and not at the semantic complex (type / method) level, i.e. the semantic complex sensitive editor 31 can create local variants and leave the semantic complex unmodified.
[0121] Furthermore, during editing, if components are added to a given smart box, the smart box can accommodate the new component (component set) by changing its layout to include the newly added components.
[0122] A container is an HTML Similar to a tag, it should be understood to refer to a page element (often called a "box" in the UI) that can contain other elements (which may themselves be containers).
[0123] A container may be a single-page container or a multi-page container (containing multiple "component pages," also called minipages). Container definitions are persistent (persist from session to session). Moving a container during editing causes a corresponding movement of its internal elements; that is, internal element positions are defined relative to the containing container. The WBS editor 30 may allow for the placement of components that intersect or are geometrically within a container but are not considered contained.
[0124] Components can enter and exit containers. The website building system 5 may have multiple container types that differ in their visual (or other) attributes. Containers are generally agnostic to the types of components they contain, since they can contain any combination of components. However, the system 100 may define container types (such as an "image gallery container") that may have restrictions on the types of components they contain.
[0125] A group should be understood as a set of components that are explicitly grouped by the user and therefore can be treated as a single component. Components can be either regular (atomic) components or containers. The layout of a group is determined by its grouping components layout information (x, y, h, w).
[0126] Group definitions may be initiated by the user (e.g., by selecting components and choosing the "Group Together" operation) or by the WBS editor 30 (which may suggest possible groups based on, for example, an analysis of the components) and approved by the user. The system 100 can also create group definitions fully automatically, without requiring user approval, for example, if the described analysis results in a group definition with a very high level of certainty.
[0127] Selecting and dragging a group will cause all group components to move together: resizing and rotation will apply to all components, and they will typically move similarly to preserve the original relative placement of the group.
[0128] Groups can also be implemented by transparent containers: elements interspersed among the elements of a group are not contained by the group (and its implementing container, if any), even if they overlap the area of the group or any of the elements of the group. Thus, if a group is implemented using a transparent container, the container must support holding elements that overlap the container but are not contained by it (i.e., containment and overlap are separate relationships).
[0129] It should also be understood that groups can be temporary, i.e. the group definition is only used temporarily for a particular editing operation, similar to a block selection in a word processor (e.g. for copy / paste), although not necessarily contiguous. In this scenario, the group definition may disappear immediately after an operation (such as rotating the group) is performed. Such groupings are similar to multi-selection options, but somewhat more persistent, e.g. they may remain active during a multi-step editing operation, which would cause the multi-selection to disappear.
[0130] Groups may also be session-based, i.e., group definitions are maintained or persisted throughout a session, i.e., group definitions are recorded in the underlying website building system database and persist from session to session.
[0131] It should be appreciated that the system 100 may allow group definitions to be converted to smart boxes (e.g., instance elements) and even semantic complexes (which may be used elsewhere). The WBS editor 30 may also allow group definitions to be edited (e.g., allowing functions and properties to be added to the group) as they are converted to smart boxes or semantic complexes.
[0132] In all cases, the website building system 5 can typically perform necessary operations such as "group", "disband group", "add to group" and "remove from group".
[0133] As discussed above, a semantic complex is a data type or schema that describes a set of elements that form a unique and jointly meaningful unit. The elements may be page components, containers or other semantic complexes.
[0134] A semantic complex can describe an actual set of elements or can describe a container that contains the elements. As discussed above, the system 100 can support low-level base semantic complexes and high-level concept semantic complexes.
[0135] A semantic complex may have a set of associated layouts. Each semantic complex instance may use a different layout from the layout set. Multiple instances of the same semantic complex may have different layouts, and the layouts of a semantic complex instance may be edited without "losing" the semantic complex bindings.
[0136] It should be understood that semantic complexes are typically "node-level" entities rather than "tree-level" entities, and depict a single hierarchical level (e.g., "list") rather than multiple levels (e.g., "a list whose members are each a picture+caption pair").
[0137] However, a semantic complex may impose some conditions on its member components "down the tree", for example a list semantic complex may require that all its member components (list members) have the same semantic complex themselves (i.e. all have the same set of internal components). A semantic complex may also implement operations that take into account or affect lower level components (e.g. "make all contained list items fit a given layout"). A semantic complex defines a set of possible customizations, operations and behaviors, as discussed in more detail below.
[0138] As discussed above, a smart box is a container (or set of components) that conforms to a particular semantic complex, i.e., it is an instance of that semantic complex. Thus, a smart box knows its semantic role and can apply the customizations and behaviors of the semantic complex to its container and its internal elements.
[0139] A smart box has specific values of the matching semantic complex attributes. For example, a smart box matching a grid semantic complex may have specific values of the "row number" and "column number" semantic complex attributes. As another example, a semantic complex may define an (abstract) list of elements, and the matching smart box may store references to the actual list members and their order (among other things).
[0140] A complete page can also be classified as a smart box where a matching semantic complex is associated with the page. The page may be a complete page or a page without major "site features" (such as site-level headers and footers).
[0141] It should be appreciated that since semantic complexes are typically organized as a set of multiple hierarchies, smart boxes can also be organized as one or more hierarchies.
[0142] A smart box can also be aware of the internal order (flow) of its children, for example when implementing a list of sub-elements. However, in many cases a smart box cannot have this information. For example, a smart box can implement an "arbitrary collection of pictures" semantic complex that may even be moved around freely by the end user, but which has no inherent order among its components.
[0143] The system 100 can also support "soft conformance" to semantic complexes. That is, it is possible to have a smart box that conforms to a semantic complex "as a whole" with some modifications (e.g., some additional extra components) but is still considered relevant to that semantic complex. For example, the system 100 can support a list smart box where some members do not conform to a semantic complex made up of standard list members.
[0144] As discussed above, some semantic complexes may be repeater semantic complexes, i.e., they consist of similar elements that are repeated regularly or irregularly.
[0145] A repeater semantic complex may correspond to an actual repeater component, for example an image gallery defined within a web page by the website building system 5. Alternatively, a repeater semantic complex may be identified and defined during analysis (as described in more detail below) without an actual corresponding repeater component, for example when the smart box handler 80 identifies arrangements of similar elements and decides to classify them as repeater semantic complexes, as discussed in more detail below.
[0146] A repeater semantic complex can be structured or unstructured. A structured repeater semantic complex is one whose elements must always have the same layout, format, size and position (i.e., placement). An unstructured repeater semantic complex is one whose elements can be edited separately, including changing their position, size, content, layout, format, etc. The system 100 can provide configuration options (via a UI or otherwise) to specify which changes are allowed. Thus, for example, a particular unstructured repeater semantic complex can allow size and position changes, but cannot allow internal layout changes.
[0147] The smart box handler 80 can determine whether a repeater semantic complex is structured by analyzing the sub-repeater components. The smart box handler can also determine whether a repeater semantic complex is structured based on direct specification from the user via the UI or API of the system 100, or by analyzing the various containment elements.
[0148] It should be understood that a repeater semantic complex has two types of layout associated with it: repeater-level layout and element-level layout.
[0149] A repeater level layout specifies how various elements are arranged inside a repeater semantic complex (e.g., as a vertical list, a horizontal list, an NxM grid, etc.). Repeater level layouts can be stretchable and can have a definite order, so that when an element is added or removed, it is clear how other elements move in the layout.
[0150] Element level layout specifies the internal composition of each of the elements of a repeater semantic complex.
[0151] It should be understood that a single repeater semantic complex may actually have multiple element level layouts, for example as shown in FIG. 9 to which reference is now made. As shown, the repeater semantic complex 101 is a zebra repeater semantic complex. That is, the containment list elements are alternatingly right and left justified. Each of the subelements of the repeater semantic complex 101 contains a picture and three text fields. However, the left justified elements (such as 201, 203, and 205) use element level layout 103 (the picture is on the right side of the element level layout), while the right justified elements (such as 202 and 204) use element level layout 104 (the picture is on the left side of the element level layout).
[0152] The system 100 can also support integration of (and dependencies between) repeater level layouts and element level layouts, possibly using multiple repeater level layouts. Thus, the system 100 can support repeater semantic complexes where the repeater level layouts can be vertical or horizontal lists. A vertical repeater level layout can use a right / left set of zebra element level layouts, and a horizontal repeater level layout can similarly use a set of bottom / top element level layouts.
[0153] It should be appreciated that there are additional repeater semantic complex related capabilities (eg, trying databases, reordering, etc.), which are described in more detail below.
[0154] As discussed above, the automatic handler 81 can analyze the page and attempt to split the page into a collection of semantic complexes. This can be an offline process (performed on the stored page) or an online process (performed interactively as the user edits the page).
[0155] It should be understood that not all components may be part of the semantic complex hierarchy. For example, the auto-handler 81 may ignore background images and not include them in any analysis. The auto-handler 81 may also perform pre-processing and "clean-up" on pages or page sections to prepare the pages for semantic decomposition. Such pre-processing may be like the processing performed by the pre-processor 201 described in US Pat. No. 5,399,431 or the page analyzer 44 described in US Pat. No. 5,399,431.
[0156] Furthermore, the automatic handler 81 can recognize separate and unrelated parts of a page, each with some structure, and can create multiple semantic complex hierarchies that are processed separately and not combined with each other.
[0157] It should be understood that a semantic complex hierarchy can mix regular components, basic semantic complexes and concept semantic complexes. For example, a possible semantic complex hierarchy could be a "product" concept semantic complex whose contained components are regular image and text components.
[0158] One example of a larger "mixed" hierarchy (which can be analyzed in multiple ways depending on the semantic complex defined) would be an "About" web page describing a company (usually a non-semantic complex, but could also be a semantic complex), a "Our Team" section (the "Team" concept semantic complex), a team member list (list base semantic complex) and a single list member entry, where images and names (the "Team Member" concept semantic complex) might be included, along with certain components that are mapped as constituents and possibly have semantic roles (e.g. one text component is marked as "Title").
[0159] In an exemplary embodiment of the system 100, semantic complexes / smart boxes can be implemented as containers. Thus, if the auto-handler 81 determines that a semantic complex should be formed with a given set of components, it can build a (usually invisible) container that encompasses the given set of components and make this container part of the normal page container structure / hierarchy. The auto-handler 81 can also use groups for this purpose and can implement semantic complexes as invisible groups. It should be understood that later designs may allow semantic complex groups to cross existing container boundaries.
[0160] The automated handler 81 can build such smart box containers strictly within the existing hierarchy. As shown in Figure 10, to which reference is now made, the analysis process can determine (for example) that three of the five child components of container X (components B, C, and D) should be collapsed under a newly created smart box Y (i.e., with B / C / D following the schema of Y). This newly created smart box is then incorporated into the component hierarchy.
[0161] In an alternative embodiment, the constructed smart box can be an actual regular website construction system container type and is added to the website construction system page hierarchy. The container can be transparent or invisible so as not to affect the displayed page. The system 100 can provide different displays of the smart box in the editing and viewing environments. For example, the system 100 can explicitly display the smart box in the WBS editor 30 or similarly provide some visual cue for the presence of the smart box (to get feedback from the user while editing) but make it invisible when viewed in the WBS viewer 25 (because the site user does not need to be aware of the smart box structure).
[0162] In yet another embodiment, the constructed smart boxes may be arranged as a separate hierarchy (or set of hierarchies) that is kept separate from the normal website construction system page hierarchy, but visual displays from the two hierarchies may be incorporated into both the WBS editor 30 and the WBS viewer 25, as the case may be.
[0163] It should be appreciated that the WBS editor 30 may also modify existing component hierarchies in a semantic complex decomposition process, allowing components from different containers to be possibly combined (taking a component out of its container), a container to be "flattened" (i.e., attaching its contents to a higher level container), and the like. Such modifications may involve modifying the existing structure and hierarchy and replacing it with an analytically based alternative. If performed online (i.e., not in offline batch mode), the WBS editor 30 may prompt the user for confirmation of such structural modifications, or alternatively, may perform the structural modifications (without explicit user approval) if the analytical certainty level is very high.
[0164] For all of the above embodiments and variations, it should also be understood that the WBS editor 30 (via the interactive handler 82) can create a smart box definition that is either temporary, i.e., functional only for the duration of a particular editing operation, session level, i.e., functional for the entire editing session, or persistent, i.e., retained in the website building system (until modified) that is the underlying database and reflects a persistent part of the page definition.
[0165] As discussed above, the automatic handler 81 can perform the analysis process offline for the entire page. Alternatively, the WBS editor 30 can continuously update the semantic complex hierarchy based on changes made to the page during editing. This can be at page load time, based on user-initiated actions (such as marking or selecting a container), after any changes to the document, etc. In the case of user actions, the action can be implicit (e.g., analysis occurs as a result of other editing activities) or explicit ("analyze this selected area").
[0166] Initially, the auto-handler 81 may perform cleanup and pre-processing steps (e.g., removal of decorations, etc.) to prepare a version of the page's component hierarchy for scanning, as described above. It should be appreciated that the auto-handler 81 may perform analysis based on the components themselves, their attributes, and information extracted from other sources. This analysis may include specific component attributes as well as comparisons between components, as described in more detail below.
[0167] Primary sources of information may include, but are not limited to, existing container structures that provide strong indications for grouping various components and the use of object grouping and dynamic layout anchoring information (i.e., if the underlying website building system provides component grouping capabilities, then a set of grouped (or anchored) components are more likely to together form a semantic complex).
[0168] Another source of information is layout information (as defined above), including component size, position, priority, dynamic layout anchors, etc. For example, image and text components that are very close to each other are very likely to together form an image+caption semantic complex. As another example, a set of images with similar size and similar spacing may be an image gallery semantic complex (even if it is not defined as a gallery component).
[0169] Another source is constituent content: for example, the automatic handler 81 can identify that certain text constituents contain related text content (based on font, character size, text attributes, or actual text content / keyword analysis) and therefore can integrate these text constituents into a single multi-constituent paragraph semantic complex.
[0170] Other sources may include other component attributes (e.g., the automatic handler 81 may infer that multiple components having very similar visual styles, color combinations, or decorations may be related) and hints associated with particular templates, template applications, objects, etc. (e.g., hints from the original template designer, application designer, etc.). Such hints may be added directly to support the analysis process. Because many websites are built based on site templates, some of the hints added to the original site template may remain in modified versions of the template included in the site.
[0171] Edit history and timing can also be used, including specific object property changes. For example, if four components are added one after the other in a short period of time with no intervening components, then these components are more likely to form a semantic complex together. Furthermore, if these four components are similar, or at least semantically equivalent, then these components may together form a repeater semantic complex (as discussed in more detail below).
[0172] Other information may also include collected BI information about the actual use of components (including use by end users viewing web pages). This information may be important for site elements that allow end users to interact with the component. In this case, the element analysis may use aggregated information about such interactions. For example, if a page has multiple buttons that open "more information" popup windows, and if end users tend to use a particular subset of these buttons (possibly in a particular order), then the page will display an inherent relationship between these buttons, even if such a relationship was not explicitly specified by the designer.
[0173] The analysis can also use direct feedback from the user. For example, the smart box handler 80 can interact with the user regarding specific semantic assumptions and additional page construction / element usage information (including edit history / BI) about other pages and other sites. These pages and sites can include additional pages and sites of the current user, and can also include such information about additional users (subject to relevant legal and privacy considerations, and using only aggregated information).
[0174] It is understood that such additional reviewed information can be analyzed across the entire system or can be based on filtering users and sites according to criteria such as similarity to the current user (e.g., based on geography, skill level, industry, site type, subsite template used, etc.).
[0175] Thus, for example, the automation handler 81 can decompose previous manual or automated decompositions of pages into smart box hierarchies and apply this information to similar pages created by users.
[0176] The artificial intelligence / machine learning machine 36 may collect such disassembly information using standard machine learning and artificial intelligence techniques, thereby enabling the automated handler 81 to make recommendations based on an internally built knowledge base. Thus, decisions made by a user (performing manual disassembly) may be used as training data for an artificial neural network modeling smart box creation based on multiple sources of information as described above.
[0177] The automatic handler 81 may use any of the grouping techniques described in US Pat. No. 6,399,633, such as those used by the POS locator 250 or the supernode creator 230. Such grouping techniques may be used to identify locations of groups of components (including components from separate locations in the component tree) that should be analyzed together.
[0178] The automatic handler 81 can base its analysis on multiple heuristics to classify components and collections of further components, recognize semantic complexes, and build semantic complex / smart box hierarchies from bottom to top.
[0179] In one limited alternative embodiment, the auto handler 81 can perform the analysis at a single container level without having to build the entire smart box hierarchy (i.e., creating smart boxes within specific containers based on their components).
[0180] Once a semantic complex is recognized, the automatic handler 81 can build a smart box that contains and encompasses the specific elements contained in the semantic complex. This smart box is then associated with the given semantic complex. The contained elements can be components, containers or another smart box.
[0181] The automatic handler 81 can perform semantic complex recognition by matching a semantic complex schema with the analyzed component set.
[0182] The automatic handler 81 can also map atomic elements to semantic types that have a single meaning whenever possible. Such semantic types can include (for example) title, paragraph, page, title, number, content image, background image, etc. Matching against semantic complex schemata can be done using these schema types. Semantic types can themselves be organized as hierarchies, and the comparison is done between a semantic type and its (multiple levels) parent types, as described in US Pat. No. 5,399,363.
[0183] It should be understood that the main heuristic for identifying semantic complexes can be based on heuristic-specific criteria, and thus find out which elements (constituents, containers, other semantic complexes) combine to form a new higher-level semantic complex. For example, a collection of [image+text] pairs may form a list semantic complex that contains multiple [image+caption] semantic complexes.
[0184] A particular heuristic may be "soft" or "strict". A soft heuristic may tolerate some deviations from the expected component pattern. For example, a box with four text-image pairs and an additional single image (without matching text) would still be considered a list of text-image pairs, and the single image would become part of this list structure. In such a case, the soft heuristic would create an unstructured repeater smart box (as described above), which would tolerate some list members differing from the typical list member structure.
[0185] The automated handler 81 may include heuristic quality metrics, for example the distance between an image and text may determine a quality score, or how likely it is that these two elements are related and should be combined into an [image+caption] semantic complex.
[0186] The automatic handler 81 may further include a method for determining which heuristic to use when the heuristics conflict. For example, if two text components (e.g., A and B) are both near an image C, the automatic handler 81 may have to choose which one to use together with the image to form the [image + caption] semantic complex. Possible factors to consider may include (for example):
[0187] Is A or B between the other text field and C (for example, is B between A and C)? Which is closer to C, A or B? Which, A or B, aligns better or in more places with C (for example, does it have more aligned edges or centerlines)? Was either A or B created together with C and the other not (based on the recorded edit history)? Is A or B more likely to be related to another component D (e.g., is it closely aligned with D or closer to D)? Which content of the text component (A or B) is more closely related to the content of image C (using text analysis / natural language processing and image content analysis)? It should be appreciated that once a hierarchy (or set of hierarchies) of semantic complexes has been defined, a user may perform a variety of general or semantic complex-specific activities, as discussed in more detail below.
[0188] It should be understood that both the automatic handler 81 and the interactive handler 82 can also modify the semantic complex hierarchy (and the hierarchy of the repeater semantic complexes) based on an external database of data or another data source. For example, the list repeater semantic complexes can reflect the contents of an external database.
[0189] The automatic handler 81 and interactive handler 82 can also continually update the repeater semantic complex based on changes in the external database (including adding, deleting and modifying list elements).
[0190] This update can occur during editing as well as runtime (e.g., in the WBS viewer 25), with the displayed layout being modified based on the repeater semantic complex definition and (in this case) the layout selected for the list element.
[0191] As discussed above, the interaction handler 82 can implement user interaction in the semantic decomposition process. The interaction handler 82 can also interact with the user when semantic ambiguity exists and can further enable the user to clarify semantic complexes. Such interaction can occur within the context of an editing session conducted by the WBS editor 30 or as part of a separate session.
[0192] For example, via the interactive handler 82, the user can mark several fields that should be combined into a single semantic complex. The interactive handler 82 can try to locate matching semantic complexes based on a semantic signature search, i.e., extracting semantic signatures from selected components and searching for semantic complexes with the closest semantic signatures (as further described in US Pat. No. 5,399,433). The semantic complex sensitive editor 31 can provide the user with several possible alternative semantic complexes and allow the user to select one. In case of an incomplete match, the semantic complex sensitive editor 31 may need to adapt the semantic complex to the actual set of matching components, possibly creating a local semantic complex variant.
[0193] The semantic complex sensitive editor 31 may also allow a user to define customized semantic complexes based on a particular pre-existing set of components, or based on a schema definition imported from (for example) an external data source or database. Such semantic complexes can then be used for further decomposition and adaptation smart box creation.
[0194] It should be appreciated that there may be a variety of functions and capabilities that the website building system 5 may provide based on or in conjunction with semantic decomposition.
[0195] These functions and capabilities may include providing alternative layouts to particular smart boxes (as described in US Pat. No. 6,399,633) and applying semantic transformations / reclassifications to particular smart boxes. Semantic transformations may occur when an editing change causes a particular component set smart box to be reclassified as an alternative smart box. For example, an image inside a container may be classified as an "image box" smart box. If a text field is added, the container may be reclassified as an "image with caption" smart box. In another example, a set of text components includes text describing the hours of operation of a store (and is analyzed and classified as an "hours of operation" semantic complex). When these text components are modified to include address information, the auto-handler 81 may recognize the new text and reclassify the components as an "address" semantic complex. When such a reclassification occurs, the auto-handler 81 may perform some associated action, such as suggesting layout modifications or adding various icons.
[0196] Another operation may include applying a "semantic brush" editing operator, as described in more detail below. Such an operator may be used to copy / paste layout, style or formatting from one smart box to another, similar to copying content using regular copy / paste, or copying colors with the "color brush" operator.
[0197] Other operations may include adding or moving an item to a list smart box with an immutable semantic structure, merging multiple separate smart boxes or components into a single list-type top-level smart box, creating a connection between a repeater smart box and a database, including reading data from the database into the repeater smart box, and extracting data from the repeater smart box into the database.
[0198] As discussed above, a smart box can provide the user with suggested alternative layouts that can then be applied to elements inside the smart box. Such layouts can come from a number of sources, including (for example) predefined layouts and extracted layouts, as discussed in more detail below.
[0199] US Patent No. 6,399,433 further details extracting such layouts, filtering high quality layouts, and selecting layouts that are semantically equivalent (e.g., to smart box content) but visually distinct.
[0200] The alternative layout selector / applier 3114 can select an alternative layout (from the layout repository 511) and apply it to the associated smart box, modifying component parameters as necessary (including dynamic layout related effects on other components and containers). The alternative layout selector / applier 3114 can also record the current layout selected for this smart box. As discussed in more detail below, the alternative layout selector / applier 3114 can also apply the selected layout (automatically or subject to user approval) to other members of the same repeater semantic complex.
[0201] It should be appreciated that some embodiments of the system 100 may use layouts that specify additional non-geometric information, such as color schemes, styles and fonts.
[0202] The system 100 can further support animation layouts. Animation definitions are separate attributes that can be applied to some or all of the layout types by the animation handler 3111. However, the animation types supported may depend on the layout or semantic complex type itself. Animations can be applied to lists as well as regular smart boxes, so that a component can be animated into its place (for example) in a list. An exemplary user interface for selecting an animation type is shown in FIG. 14D, which is described in more detail below.
[0203] The system 100 can also provide predefined layouts, which may be created (for example) by a website building system vendor or by a specialized third party. The layout types may include general layouts (such as horizontal or vertical component placement) that are applicable to all types of semantic complexes. This is actually a "layout creation rule" rather than a set of component geometry information. WBS vendor personnel 61 may create a set of layouts for three semantic complexes that fit into a square with, for example, 200-300 pixels per side.
[0204] The system 100 can also provide semi-generic layouts that can be applied to a subset of the available semantic complexes (such as a grid array) and customized layouts created for specific semantic complexes or component combinations. For example, the semantic complex "Contact us" can include a variety of high-quality, hand-designed contact information boxes.
[0205] Other layouts provided may include parameterized layouts that the user can adapt. For example, a grid layout may be parameterized to allow the user to control the number of rows / columns and the row / column spacing. As another example, a simple vertical layout may be parameterized so that the user specifies whether the placement of the vertical components is left justified, right justified, or centered. The actual parameter values used are stored with the smart box instance.
[0206] The system 100 can also provide a directed flow layout. This layout can be based on determining an order for the components (such as the logical order in which the components are read if they are text components) and then reordering the components into "lines" as if they were ordered by a word processing system. Such an order can be horizontal (e.g., as in the normal order of English text from left to right) or vertical (similar to the order used for some Far Eastern languages). Such components can typically have a primary direction (e.g., a top-to-bottom line order) as well as a secondary direction (e.g., a component order from left to right or right to left within a line). The components can also have additional parameters (e.g., related to alignment and spacing).
[0207] In an alternative embodiment, the alternative layout selector / applier 3114 can arrange components along a curve, such as a polygon, a circle, or a user-specified curve.
[0208] The semantically complex sensitive editor 31 may allow the user to manually specify the order of the components, or alternatively, the automatic handler 81 may determine the order of the components by analyzing and selecting an appropriate order that matches the natural reading order of the components (e.g., using techniques such as that of the orderer 240 described in US Pat. No. 5,399,323).
[0209] The system 100 can provide advanced layouts beyond simply changing size and position. Such advanced layouts can include additional information beyond the usual layout parameters (e.g., x / y / h / w / priority / anchor of components). In one embodiment of the system 100, an existing container component can be replaced with a new smart box container that contains the same data and components (i.e., with various component transformations).
[0210] Such advanced layouts may include paginated layouts, which divide the smart box component into multiple pages and allow switching between pages (using scroll bars, next / previous page buttons, sliders, page selection menus, etc.), and "reveal more" layouts that divide the smart box component into a basic area and one or more extended areas. The semantically complex sensitive editor 31 allows the user to view the basic area and (for example) to open any extended areas within the basic area using the appropriate "reveal more" button. The user can also close any "reveal more" areas using a "reveal less" button that appears when an extended area is opened. Components may be in either area and may be duplicated in multiple areas.
[0211] Yet another advanced layout is the slider layout, which is a container divided into pages that can slide to the right or left. This layout can be applied to any type of container (including lists with multiple display elements) that allows its contents to be revealed by sliding.
[0212] The system 100 can also provide extracted layouts, which are layouts extracted from actual instances of the same semantic complex on websites created by the same user or different users. US Pat. No. 6,399,433 further details extracting such layouts, filtering high quality layouts, and selecting layouts that are semantically equivalent (e.g., to smart box content) but visually different.
[0213] It should be appreciated that in this scenario, the alternative layout selector / applier 3114 can also extract such layouts from the same or (semantically) similar semantic complexes of the same or another website of the same user. If the semantic complex being processed is a repeater semantic complex element (e.g., a list element), the layout can be extracted from another member of the same repeater semantic complex, or from another member of an existing equivalent repeater semantic complex (e.g., from another page of the same site).
[0214] The system 100 can also provide additional automatically generated layouts that may be based on the actual components inside the smart box. The system 100 can provide several types of such automatically generated layouts, as described in U.S. Patent Application Publication No. 2009 / 0233636.
[0215] It should be appreciated that the alternative layout selector / applier 3114 can suggest alternative layouts based on an explicit user request, or can do so automatically based on specific UI triggers and based on the context of the page. For example, the alternative layout selector / applier 3114 can provide possible layouts for a container as it is created (e.g., based on another container in the same page). An exemplary user interface that provides a user with multiple layouts for a given smart box is shown in FIG. 16C, which is described in more detail below.
[0216] The alternative layout selector / applier 3114 can also collect information as the page is being built and suggest possible layouts based on the particular information collected. For example, the alternative layout selector / applier 3114 can recognize that the user is creating a "contact us" smart box (based on the number of components being edited) and then provide several "contact us" possible layouts for that smart box, including mapping fields already created into the suggested possible layouts.
[0217] The alternative layout selector / applier 3114 may also filter the possible layouts, limiting the display to (for example) the top X relevant layouts.
[0218] An alternative layout selector / applier 3114 can suggest alternative layouts for a particular smart box, or a group of related smart boxes. Such suggestions can be based on semantic searching for high-quality semantically equivalent (but visually distinct) layouts, as described in U.S. Pat. No. 6,399,363.
[0219] It should be appreciated that in this embodiment, the layout discovery system can be triggered based on the processed component set (i.e., the set of elements that match the layout being evaluated) that is automatically defined by the page analysis process. Matching can be performed using predefined semantic types or by a regular semantic matching process (where types can be mapped to more generalized types, e.g., "text paragraph" => "text component"). Matching can also be extended with additional business-related component information as described above.
[0220] Thus, for a given [Picture + Caption] smart box, the alternative layout selector / applier 3114 can search for other [Picture + Caption] layouts, or (more narrowly) for [Team Member] layouts.
[0221] Once an alternative layout is selected, the alternative layout selector / applier 3114 applies it to the associated smart box and may modify component parameters as necessary (including dynamic layout related effects on other components and containers). The alternative layout selector / applier 3114 may record the current layout selected for this smart box. As will be further described in more detail below, the alternative layout selector / applier 3114 may also apply the selected layout (automatically or subject to user approval) to other members of the same repeater semantic complex. When applying a layout, the alternative layout selector / applier 3114 may make data modifications (e.g., text alignment) that are relevant to the layout.
[0222] As discussed above, the SC Edit Behavior Applier 311 may allow layouts to be copied from one smart box (source smart box) to another (target smart box). This copying is at the specific smart box (instance) level, not the semantic complex (type) level. The Brush Applier 3112 can actually copy from the source instance, which may be a modified / customized layout that is not specific to the semantic complex in the source smart box. The Brush Applier 3112 can copy the complete smart box layout, not just the layout number or pointer.
[0223] The brush applier 3112 can work on any type of component, not just smart boxes. For example, the brush applier 3112 may be able to copy-paste the layout of one image to another. This depends on the source and target having the same or equivalent semantic classes.
[0224] At a basic level, it should be understood that a layout can be extracted from a given source smart box and applied to any target smart box using the same semantic complex, just as color can be sampled from a given picture region and applied to another picture region. The extracted layout includes references to the resulting semantic complexes that help match other smart boxes.
[0225] At a more advanced level, the brush applier 3112 may allow applying the extracted layout to the smart box using separate semantic complexes that are still semantically equivalent to the source semantic complex. This can be done by the SC editing behavior applier 311 by creating semantic matches between the source and target semantic complexes (as described in US Pat. No. 5,399,433) and applying the layout for each of these semantic matches. The SC editing behavior applier 311 can prompt the user when the semantic matches cannot be completed automatically or are otherwise ambiguous, and the user can then manually resolve these issues.
[0226] At a more advanced level, an alternative layout selector / applier 3114 may allow an extracted layout to be applied to a smart box using a different semantic complex that is not semantically equivalent to the source semantic complex. This works as before, but the "extra" elements in the target smart box may move (whenever possible) together with the associated elements in the target smart box, or may otherwise stay in their position. For example, if the layout to be applied moves and resizes a given picture component, and the target semantic complex contains an associated caption component, the caption component may move (and possibly resize) together with the picture to keep the same relative position (or size ratio) even though the applied layout does not reference the caption component.
[0227] It should be understood that a repeater smart box (an instance of a repeater semantic complex) is typically a list whose items are components (e.g., a gallery of pictures) or other smart boxes (e.g., a list of product semantic complexes, each of which contains components displaying a product picture, name, description, price, etc.).
[0228] Thus, a repeater smart box essentially consists of a list of items presented using the layout of the top-level smart box, with each item having its own layout.
[0229] As discussed above with respect to repeater semantic complexes, repeater smart boxes can be structured (all items must have the same layout) or unstructured (each item may have a different layout). There can also be repeater smart box variants with multiple item types, each with its own semantic complex and layout. Some repeater smart boxes can be structured but still contain items with multiple layout types, such as the zebra list described above with respect to FIG. 9.
[0230] The Repeater Smart Box can display all list items simultaneously (typical of small lists), or it can display only a "window" of one or more items in the list, making the rest accessible via scroll bars, pagination, previous / next buttons, mini / thumbnail selection menus, touch screen gestures, programmatic control, or other means.
[0231] When processing repeater smart boxes, the SC Edit Behavior Applier 311 can provide several list-related operations, as discussed in more detail below.
[0232] As discussed above, the system 100 may provide the ability to select and apply an alternative layout (among related predefined / constructed / extracted layouts). Such functionality may be applicable at the list level or at the list item level, with the user being able to select alternative layouts at both levels separately.
[0233] It should be appreciated that this functionality may be made available via the semantically complex sensitive editor 31 and also (possibly in a limited manner) to the WBS viewer 25, as discussed in more detail below.
[0234] It should be further appreciated that for each listing, the system 100 can maintain a reference to the particular layout and its parameters used. Such a reference can point to one of the layouts available for the particular semantic complex that matches the listing, or to a customized / specific layout used for the particular listing.
[0235] Alternatively, the user can modify the items and layout via a semantically complex sensitive editor 31. Changes can include layout changes such as adding, removing, moving and resizing contained components, and other non-layout changes such as component content changes, property changes, style changes, decoration element changes, etc.
[0236] In this scenario, the semantically complex sensitive editor 31 can provide a "keep the same design for all items" feature (e.g., via a "lock design" UI checkbox or property setting). When invoked, this feature can take design changes made to one list item and apply them to all other items in the same list.
[0237] It should be understood that even if "Lock Design" is not selected, the WBS editor 30 can still ask the user whether changes to a given list item should be applied to all items.
[0238] The semantically complex sensitive editor 31 can even apply a "lock design" feature to a list item that has been made different, for example selectively applying changes to semantically matching components of another item.
[0239] Reference is now made to Figure 11, which illustrates change replication for unstructured lists. As illustrated in Scenario 1, unstructured list A contains some items that contain [picture+caption] combinations (e.g., [a], [b], and [e]) and other items that do not contain such combinations ([c] and [d]). A layout change made to list item [a] (e.g., a thick frame added around the picture) is applied to the other items that contain [picture+caption] (i.e., to [b] and [e]) even though the layouts of [b] and [e] are not identical to that of [a] (Scenario 2). However, this change is not applied to [c] and [d].
[0240] The "lock design" feature can also work in a list with multiple item types, each of which has a different type-specific semantic complex and layout. In this scenario, the SC editing behavior applier 311 can make modifications to a given item that apply only to items of the same type, or that can apply to all items (including those of different types). For items of different types, modifications are applied by making semantic matches between the types, and only if applicable.
[0241] The SC Edit Behavior Applier 311 can apply such changes immediately or together with batch changes, and can apply changes at specific points in time (at the end of editing a particular area, upon a save request, upon an explicit "analysis layout" request, based on the number or scope of changes, etc.).
[0242] It should be appreciated that a container component can be classified as a repeater smart box (ie, marked as a repeater semantic complex type in the semantic analysis) in a number of ways, which are described in more detail below.
[0243] It should also be appreciated that components can be pre-classified as repeater smart boxes by components that are list components, gallery components, or list applications, for example as described in US Pat. No. 6,399,363.
[0244] The automatic handler 81 can classify a container component as a repeater smart box if the inner component (regular or container) is duplicated, thereby creating a two-item list.
[0245] Such duplication can be done using normal component copying (e.g., a page editor "copy+paste" operation), or using a specific "insert another such component" editing option.
[0246] It should be understood that this type of classification is done during the editing session, with hint flags being left for a later semantic resolution process.
[0247] During the semantic decomposition process, the automatic handler 81 can classify the container component A as a repeater smart box during the semantic decomposition process by detecting similarities between multiple components that are directly contained within the container component A.
[0248] Such similarity may be attribute-based, semantic (ie, semantic similarity based on the internal content of each component), layout-based (eg, components are arranged and ordered as a list), or a combination of these.
[0249] It should be appreciated that the automatic handler 81 can recognize similarly containing sub-containers that are not visually aligned in a list, for example.
[0250] The auto handler 81 can also analyze and recognize lists that consist of elements that belong to multiple semantic complexes, and can create repeater smart boxes that define lists with multiple item types. The auto handler 81 can further analyze and recognize anomalous items that do not strictly fit any of the contained semantic complexes. The auto handler 81 can further compare such anomalous items to multiple possible semantic complexes to determine the most likely "base" semantic complex X, and mark the anomalous item as "fixed X." Such an analysis can be based on the edit history of a particular region.
[0251] Once a repeater smart box is recognized by the auto handler 81, it can convert the sub-container component into a gallery / list type component. This conversion can open up additional editing options to the user (e.g. "quickly rearrange by changing the number of rows and columns" or other options specific to the gallery type).
[0252] It should be understood that the following discussion refers to the typical case where a repeater smart box implements an ordered list of items. However, a repeater smart box can also implement additional underlying data models, such as (for example) a tree of items that can be moved laterally using right / left / up / down buttons. A repeater smart box can also implement (for example) a graph model of smart box nodes that transition along available edges.
[0253] It should also be understood that a typical repeater smart box has a subordinate ordered list. The semantic complex sensitive editor 31 can provide a set of operations that can be used to manipulate this list, such as an orderer 3117 (i.e., moving items up / down to different positions in the list), an adder / deleter 3116 (adding or removing items), and a brush applier 3112 that allows the user to apply a set of data values to a given list item. This set is equivalent to a semantic brush that applies layout (or other semantic attributes) without affecting the data.
[0254] It should be appreciated that website building systems typically include a variety of object editing operations that are typically effected using a mouse or a keyboard or both. These operations may include selecting, dragging, dropping, resizing, rotating, copying, pasting, etc.
[0255] The system 100 can support smart-box specific editing behaviors that are implemented by the SC editing behavior applier 311 based on the presence of smart box definitions. Such behaviors can be adapted to the semantic complex editing as a whole or to the specific smart box or combination of smart boxes being edited. Thus, semantic complexes can affect common editing operations such as resize, rotate, copy and paste, drag and drop, and selection.
[0256] It should be appreciated that the SC edit behavior applier 311 may also enable a user to perform edit operations on or otherwise customize some or all of the sub-elements of a given smart box. This can be done by "splitting" the requested smart box before editing and "recreating" the smart box after editing. Alternatively, the system 100 may enable direct editing of sub-elements or groups of sub-elements. Exemplary user interfaces that allow edit or customization operations to be applied to smart box sub-elements, including selecting the affected smart box sub-elements according to their role (e.g., "title" or "line number 1"), are shown in Figures 14C, 14E, 14F, and 15C, which are described in more detail below. It should be appreciated that such edits can create smart boxes with local variable elements of a system-wide smart composite.
[0257] For example, a resize operation used to increase the size of a repeater smart box may add additional display items to the end of the repeater smart box (rather than simply "stretching" the current number of display items into a larger area).
[0258] The resizer 3115 can rearrange the components of a given smart box into a different layout (more densely or sparsely as needed). Additionally, the resizer 3115 can shrink the smart box by hiding some of its fields to fit more important fields into the now reduced space. The resizer 3115 can preserve hidden field contents associated with a smart box and redisplay them if the smart box is further resized or otherwise modified to use a layout that includes these hidden fields. Such capabilities are extremely useful in dynamic layout or responsive design situations (where elements and groups may need to be resized frequently and automatically), as further described in US Pat. No. 6,399,433.
[0259] As another example, the resizer 3115 can resize a given combination of shapes differently based on a given set of rules. An example of the results of a smart box specific resize operation is shown in Figure 14G, which is now compared to Figure 14F. It should be appreciated that the SC edit behavior applier 311 can also implement smart composite specific rotation rules and rotation elements similar to the resizer 3115.
[0260] Reference is now made to Figure 12, which illustrates smart box and non-smart box recognition processing of a resize operation. As shown, a page [P] contains a "Person Details" smart box [S] consisting of a picture [a], a name [b] ("Jack Smith"), and a phone number [c] ("555-5555"). A normal resize operation [A] would shrink all three proportionally, making the image hard to see and the name and phone number too small. A resizer 3115 [B] could remove the phone number [c], shrink the picture "a" somewhat (by reducing the borders assigned to it), shrink the name [b] very slightly (keeping it legible), and possibly switch the font to one that is legible at smaller font sizes.
[0261] In another example, the adder / deleter 3116, when applied to a list item, can add the newly created element to the end of the list as a new list item and scroll to the end of the list. An exemplary user interface for adding an item to a list repeater smart box is shown in Figures 18A and 18B, which are described in more detail below.
[0262] When applied to a repeater smart box, the drag-and-drop handler 3118 can adapt the dropped component X to the repeater smart box list item scheme and can add the dropped (and adapted) item Y to the repeater smart box sublist by inserting the new item Y into the right visual logical location of the list per the drag-and-drop position (including making space for the dropped item Y by moving, compressing or resizing other list items). If the repeater smart box list supports multiple semantic complexes (i.e., multiple item types), the drag-and-drop handler 3118 can determine the best semantic complex to use for the dropped item Y. Such a determination can include mapping fields of Y to an existing semantic complex, modifying an existing semantic complex, or creating a new semantic complex if necessary.
[0263] The drag and drop handler 3118 can limit the allowable drag or drop range of a smart box by certain rules based on higher level containers. For example, when selecting an item from a list and moving it around, the movement can be limited to the box that surrounds the list.
[0264] In addition, the drag-and-drop handler 3118 can also perform individual position dragging specific to repeater smart boxes, as depicted in FIG. 13, to which reference is now made. As shown, a layout [A] can contain a repeater smart box [B] that contains five list items [a-e]. When a user drags item [a], item [a] cannot be dragged to any position inside [A] (even inside [B]). Instead, item [a] can only be dragged (and "jumped to") to a position between other list items (e.g., between [b] and [c], between [c] and [d], etc.). When attempting to drag [a], the user only sees a transparent frame being dragged, but the frame can snap into any appropriate position during the drag or as soon as the frame is dropped (as in a "snap-to-grid" option). Dropping in this way can move or modify the other list items mentioned above (to make room for the item being dropped). The drag-and-drop handler 3118 can also present a preview of the effect of the drop that is expected (by the semantically complex sensitive editor 31) before the user drops the drag object.
[0265] It should be appreciated that editing operations applied to a list item (eg, resizing) may be applied to other list items automatically or following user confirmation.
[0266] It should also be appreciated that the selection handler 3119 can provide different choices for highlighting per smart box detail (e.g., different colors or shapes of highlighting per list item type). These choices can include clicking to select the smart box default list. Each choice can be drilled down by further clicking (e.g., down to the item and item components).
[0267] When selecting a component in the editor, the selection handler 3119 checks whether nearby components are related (using the Partial Ordered Set (POS) algorithm described in US Patent No. 5,993,333) and provides for making an extended selection as a group (which also includes related components).
[0268] When making a selection, the selection handler 3119 initially selects one group. Further selections may select just one component (e.g., the image component from a text-image pair) and, as it is moved around, resize the virtual box containing the text and image and possibly move the associated text component. This movement may also move other components inside the box.
[0269] When selecting an item from a list containing multiple item types, the selection handler 3119 may select all items with the same type as the one pointed to by the mouse. When deleting a list item, the semantically complex sensitive editor 31 may close the vacated space and may also redistribute the (now available) space of the region among other smart boxes.
[0270] Reference is now made to Figures 14A-14G, 15A-15F, 16A-F, 17A-H, and 18A-18C, which illustrate user interfaces and behaviors when editing smart boxes. These user interfaces and behaviors relate to implementations of the capabilities described above and may be implemented using alternative user interfaces or other methods of operation. While these examples use explicitly defined smart boxes, it should be understood that editing operations may also be applicable to smart boxes created by site analysis or during automated site construction.
[0271] 14A-14G show the editing of a decorated line smart box consisting of two lines with an umbrella shape in the center.
[0272] FIG. 14A shows an example of a decorative line.
[0273] FIG. 14B illustrates a user interface that allows customization of the decorative line design.
[0274] FIG. 14C shows a user interface that allows the user to specify which portions of the smart box should be customized.
[0275] FIG. 14D shows a user interface that allows the user to specify animations for each portion of the smart box, possibly separately.
[0276] FIG. 14E shows an advanced user interface that allows the user to select and separately manipulate (eg, rotate) components that are part of the smart box.
[0277] Figure 14F shows the result of such a rotation, where the smart box matches the "line with umbrella" decorated line semantic complex, but with a local variant in which the umbrella stands upright and is not rotated as in the regular semantic complex.
[0278] FIG. 14G shows the result of a resize operation (in this case horizontal shrink) properly applied to the smart box, where the lines have been shortened and the image in between remains the same.
[0279] Reference is now made to Figures 15A-15F, which illustrate editing the Sales Ribbon Smart Box.
[0280] FIG. 15A shows a selection menu displaying multiple sales ribbon semantic complexes for selection.
[0281] FIG. 15B shows a single "On Sale" smart box selected.
[0282] FIG. 15C shows a user interface that allows the user to specify which portions of the smart box should be customized.
[0283] FIG. 15D shows a rich-text based customization UI for a smart box.
[0284] 15E shows a content-based text editing customization UI for the Smart Box, which can be associated with various semantic complexes, similar to the binding of questions to content elements described in U.S. Pat. No. 6,399,363.
[0285] FIG. 15F shows a variation of the UI of FIG. 15E that further includes related content suggestions.
[0286] Reference is now made to Figures 16A-16F, which illustrate editing the "About" Smart Box.
[0287] FIG. 16A shows a selection menu displaying several "About" semantic complexes for selection.
[0288] FIG. 16B shows a single "About" smart box selected.
[0289] FIG. 16C illustrates a user interface that allows the user to select an alternative internal layout to apply to components inside the "About" Smart Box.
[0290] 16D shows another layout selection interface in which the layout is shown together with an associated design kit. Design kits are further described in US Pat. No. 6,399,633.
[0291] FIG. 16E shows a specific “Add Component” panel UI adapted to suggest adding specific components and component arrangements to the smart box (depending on the semantic complex used).
[0292] FIG. 16F shows a specific content manager UI that allows a user to manage the content inside the smart box.
[0293] Reference is now made to Figures 17A-17H, which illustrate editing the "Team Members" smart box.
[0294] FIG. 17A shows a selection menu displaying multiple "team member" semantic complexes for selection.
[0295] FIG. 17B shows a single "Team Member" smart box selected.
[0296] 17C shows a user interface that allows the user to select and apply an alternative internal layout and design to the components inside the "Team Member" Smart Box. Any actual content input by the user into the Smart Box can be used in the new layout and design.
[0297] FIG. 17D shows the “Team Members” smart box in the new layout.
[0298] FIG. 17E shows the "Team Members" smart box with a new layout and replaced (picture) content.
[0299] FIG. 17F shows a user interface for specifying alternative styles in a smart box.
[0300] Figure 17G shows the smart box after the style has been changed: the user-specified data (the image) has been preserved, but the non-specified data (the team member names) has been replaced.
[0301] FIG. 17H shows a user interface for specifying a design kit.
[0302] Reference is now made to Figures 18A-18C, which illustrate editing a repeater smart box.
[0303] FIG. 18A shows the addition of a single "team member" smart box.
[0304] FIG. 18B shows using the “Add Another” button to add a second “Team Member” smart box, thereby creating a list smart box with two instances of the “Team Member” smart box.
[0305] 18C shows a user interface that allows a user to select and apply an alternative list layout to a list repeater smart box. Such layouts specify the list arrangement rather than affecting the layout of the list element's internal subelements.
[0306] It should be appreciated that these operations are in addition to operations that affect the style and layout of the list and its items, such as globally modifying spacing between items, list animations, composite item styling (i.e., styling applied to multiple list items), etc. These operations can be performed by multiple interfaces, including (for example) a visual page editor interface that is used to edit the component as a whole (including moving, resizing, and drag-and-drop operations). The WBS editor 30 can provide additional user interfaces to support such operations. For example, in an item addition, the WBS editor 30 can provide a data entry form (e.g., pop-up form or in-place) that allows the value of the added item to be specified. The semantically composite sensitive editor 31 can also provide the ability to modify the displayed list, possibly moving and / or resizing currently displayed list items to make room for a smart box representing the new list item. Similarly, in a list item deletion, the adder / deleter 3116 can rearrange existing items to close the "gap" created by removing the smart box representing the deleted item.
[0307] Operations can also be performed through a specialized list editor interface, which shows only the list data and supports related operations, possibly including data editing, adding / removing records, reordering records, adding / removing fields, filtering, view control (pagination or scrolling), etc. An example of this is shown in Figures 18A-18C, to which reference will now be made again. System 100 can implement such a list editor using a list-like interface, a side menu, a spreadsheet-like grid interface, or other UI. System 100 can provide dedicated list editors for various list type types.
[0308] The operations may also be performed through additional interfaces, such as an API or web services that support related operations, or by another system that accesses an external database containing the list items (for virtual lists, as described below).
[0309] It should be understood that these interfaces affect the same data (the same sublists) and therefore each interface reflects changes made in the other interfaces - for example, adding an item to a list through the visual page editor will affect the displayed list interface and vice versa.
[0310] It should be appreciated that the system 100 may typically display list elements using a visual order that matches the internal logical order of the sublist data.
[0311] In such a case, each time a list item is visually moved (in the WBS editor 30) so as to swap positions with another list item, the orderer 3117 can concurrently reorder the elements in the data list. Similarly, if the internal data list is edited (e.g., using the list editor described above) and the data records are reordered, the visual order of the collation elements is also modified.
[0312] It should be appreciated that list elements may typically be arranged as a series of adjacent rectangular elements arranged along a vertical stack, horizontal column or grid (gallery) (as shown in Figure 18C), but other arrangements are possible, such as along a curve (such as a circle), using sliders or 3D arrangements, album-like packing inside an area, etc.
[0313] The WBS editor 30 can also implement a class of unstructured repeater semantic complexes in which list elements can be placed in any position. Such repeater semantic complex position changes (e.g., caused by moving a list element) do not cause automatic reordering of the subordinate data lists. In such repeater smart boxes (i.e., repeater semantic complex instances), the list elements may have a visual arrangement (or possibly an order) that is not related to the subordinate list order (the logical order of the list elements).
[0314] It should further be appreciated that the system 100 can support data conversion, export / import, or direct connections between the displayed repeater smart boxes and the underlying databases containing the data items.
[0315] Sublists (for a given repeater smart box) can be implemented as internal lists in the WBS site repository 505 (internal lists) or as lists stored in an external database linked to the particular repeater smart box (virtual lists because they reflect the external database and not the internal "list contents"). Virtual lists can typically be large and are typically used in layouts that represent only a "window" displaying a subrange of the list items mentioned above (rather than displaying all list items). The system 100 can also have multiple virtual lists linked to the same database to have multiple viewpoints into one database.
[0316] Thus, a virtual list repeater smart box can reflect the contents of an external database. The linkage may include filters (i.e., selection criteria) that allow the repeater smart box to reflect a subset of the records in the database.
[0317] When the database changes (even through external access outside of the website building system 5), the changes can be reflected in any Virtual List Smart Boxes that are linked to the database.
[0318] It should be appreciated that the system 100 can also support actual data transformation in both directions, i.e., the updater 90 can import from an external database to create an internal list, which cannot be linked to the database and therefore cannot reflect later changes in the database.
[0319] The updater 90 can also create (export) databases from the internal lists. Such databases can be created to interface with other systems, to keep archival copies, etc.
[0320] It should be understood that a list smart box can contain multiple item types. Thus, a smart box can use items (via virtual lists, imports or exports) from database types, allowing a single repository to contain multiple record types such as an object oriented database or content management system.
[0321] It should also be understood that a smart box can provide additional services and capabilities. For example, a smart box can provide a layout control interface (programmatic or otherwise) that allows another part of the system 100 to read and control layout parameters such as padding, text size, etc. Such an interface may also provide such functionality to a website built using the system 100, allowing the site to switch the layout of a given smart box, for example, by pressing a button on the operating site (i.e., during runtime).
[0322] Smart boxes can also provide a UI or interface that allows some changes to be applied to multiple containing smart boxes (possibly at multiple levels of containment). This is similar to the "Lock Design" UI checkbox and functionality described above (where changes made to one list element are applied to other list elements). In this case, the changes are applied to the child smart box (or component) rather than to sibling smart boxes.
[0323] The Matcher 3120 can perform strict semantic complex matching (applying changes only to type-matching smart boxes), or soft semantic complex matching (applying changes whenever applicable to a given smart box). These changes may include style changes, adding / removing components, layout changes, decoration element changes, etc. Such changes may be necessary when (for example) other elements of the SC Editing Behavior Applier 311 need to apply changes to one or more smart boxes whose structure or match to a given semantic complex definition may change.
[0324] The smart box can also suggest related components and content that may be added based on a particular semantic complex. For example, for a contact semantic complex, the content / component offerer 3121 can offer to add a complementary Google Maps widget if such a widget was not included.
[0325] The content / component offerer 3121 can also provide additional or alternative components, or recommend not adding a particular component or smart box.
[0326] For example, when creating or editing a concept semantic complex for a wedding event, the content / component offerer 3121 can provide the user with a predefined image from the wedding world image inventory. Exemplary user interfaces for providing additional components using smart boxes are shown in FIG. 15F and FIG. 16E. An exemplary user interface that allows a user to manage the content inside a smart box is shown in FIG. 16F. The system 100 may further allow a user to manage the content of a given smart box using a specific customization dialogue (or question) associated with the smart box. Such customization dialogue can be predefined (and typically stored together with the semantic complex definition in the semantic complex type repository 502) or automatically generated based on the smart complex definition. This is similar to the combination and generation of questions based on content elements described in U.S. Pat. No. 6,399,313. Such dialogue can use the field role information of the smart components. Exemplary user interfaces displaying such associated customization dialogues are shown in FIG. 15D (rich text based dialogue) and FIG. 15E (pure content dialogue).
[0327] Such suggested additional content may be stored in the WBS site repository 505 or may be collected from external sources (either associated with the user or separate) as described in US Pat. No. 6,399,633.
[0328] It should be appreciated that the system 100 may allow a user to mark any set of components and convert that set into a semantic complex or to be arranged by the semantic complex sensitive editor 31. The user may be requested to provide additional details (e.g., a semantic complex name). The semantic complex sensitive editor 31 may also allow the user to tag the created semantic complex based on a user-specific or system-wide set of tags or to specify a semantic type for the semantic complex (from the semantic complex type repository 502).
[0329] This allows users to enhance the semantic complex type repository 502 and any layout repository of the system 100, and to reuse semantic complexes and layouts in additional locations on the website.
[0330] The created semantic complex / layout can be restricted for use by the same user, distributed to specific user groups, or made public (e.g., through a destination marketplace 15) for free or paid use by a wider audience. In the latter case, the user may be required to add market-related information (identification information, pricing information, market information, classification, discoverability-related information, etc.).
[0331] The system 100 may also allow for the definition of one or more designs (themes / skins) for each semantic complex. Such designs may affect some or all of the components of the semantic complex, keeping them in the same "design language."
[0332] A design may specify component characteristics such as fonts, frame styles, colors, etc. Design choices are usually independent of layout choices. Some component attributes are design-related and some are layout-related.
[0333] For example, a "metal" design for the [image + caption] semantic complex might include the following:
[0334] Modify image skins to add "bolt" decorations to image corners.
[0335] Change the caption font to a metal themed font.
[0336] Specifies the component background color to be metallic gray.
[0337] The semantic complex type editor 32 may allow the WBS vendor personnel 61 or the site designer 62 to define such designs. The site designer 62 may then select the relevant design for the semantic complex in use, and may also explicitly apply a design (such as "metal" above) to multiple semantic complexes, each of which may provide its own implementation of the metal design. It should be understood that the user may then sell the design via the destination marketplace 15. Exemplary user interfaces for selecting a design kit are shown in Figures 16D and 17H.
[0338] It should also be understood that an alternative semantically complex layout typically modifies the layout of the internal components of a smart box without changing the size of the outer box of the smart box itself, but the system 100 may allow specification of alternative box sizes as part of the layout definition.
[0339] The semantically complex sensitive editor 31 can suggest to the user a box size change for the smart box. The default is to keep the existing size. The size can be changed to keep the ratio or to use the suggested external ratio.
[0340] In another example, a user may add a button to a given smart box (via the normal editing UI) and that semantic complex / smart box cannot have a valid layout with extra buttons because of the dimensions of its containing box. The semantic complex sensitive editor 31 allows adding a button in any position (e.g., top left) and allows the user to reposition the buttons.
[0341] Alternatively, the semantic complex sensitive editor 31 can suggest to the user to modify the box size to make room for the button. In an alternative embodiment, the semantic complex sensitive editor 31 can attempt to find possible positions between existing components in the layout.
[0342] It should be appreciated that the semantic decomposition process can create a structure that describes some of the components within a website, which reflects a better human understanding of the website than the information presented by a typical component tree or HTML display. The system 100 can use this structure when emitting website content to be indexed by search engine spiders.
[0343] For example, the contents of list items can be emitted according to the logical list order, even if the list elements are placed separately on the page (e.g., due to aesthetic considerations).As another example, in a page containing multiple picture and text components, semantic decomposition can provide a better definition of which text (caption) belongs to which image.
[0344] Based on this better organized content (released to indexing spiders), search engines can create better indexes that provide better access to your site.
[0345] The search engine friendly renderer 23 can further emit additional information towards the indexing spider, including additional URL parameters related to a particular smart box in a page (including semantic resolution details), its configuration, and its current state. Such URL parameters can describe, for example, information about the currently displayed smart box layout (for smart boxes that support multiple displayable layouts), the current position of a repeater smart box in a given sublist, etc. This may enable the indexed page to be reconstructed with better accuracy using the retrieved URLs. A similar mechanism (used with a third-party application instead of a smart box) is described in US Pat. No. 6,399,433.
[0346] It should be understood that some of the Smart Box related features may function in the WBS Viewer 25 as well as in the WBS 30 editing environment.
[0347] The website building system 5 can provide site viewer alternative layout selection. The WBS viewer 25 allows the site designer 62 to expose some of the possible layouts of a given smart box to the site end user. In such a case, the WBS viewer 25 can provide the user or the site viewer 63 with a specific way (e.g., using a specific widget or UI device) to change the layout of a particular smart box to one of the exposed (suggested) alternative layouts. This allows the user to view a portion of the displayed information in multiple ways. Such a change (e.g., selecting an alternative view) affects the entire page layout and, when implemented in the system 100, may require the operation of dynamic layout or responsive design mechanisms.
[0348] The website building system 5 may also be updated due to updates of the virtual list under a particular repeater smart box. A created site may contain a virtual list repeater smart box that is linked to an external database. Such a database may be updated externally through another system, which simultaneously accesses the same database through the website building system operations (including both editing and viewing operations).
[0349] In such cases, the virtual list can reflect changes in the external database. The updater 90 can update the contents of the displayed list smart box, including processing visual changes made to the list and item smart boxes, and possibly to adjacent smart boxes.
[0350] Thus, the use of semantic complexes and smart boxes may enable website building systems to take semantic page knowledge into account in order to apply effective editing actions and to enable reuse of layout knowledge and smart alternative layout selections.
[0351] Unless otherwise indicated, and as will be apparent from the above discussion, discussions throughout this specification using terms such as "processing," "calculating," "computing," "determining," and the like, should be understood to refer to the operation and / or processing of any type of general-purpose computer, such as a client / server system, mobile computing device, smart appliance, or similar electronic computing device, which manipulates and / or transforms data represented as physical quantities in the registers and / or memory of the computing system to become other data similarly represented as physical quantities in the memory, registers, or other such information storage, transmission, or display device of the computing system.
[0352] An embodiment of the present invention may include an apparatus for performing the operations herein. The apparatus may be specially constructed for the desired purpose or may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. The resulting apparatus, when instructed by software, can transform the general purpose computer into the inventive elements discussed herein. The instructions can define the device of the present invention in operation by the computer platform for which the device is desired. Such computer programs can be stored on a computer readable storage medium, such as, but not limited to, any type of disk, including optical disks, magneto-optical disks, read only memory (ROM), volatile and non-volatile memory, random access memory (RAM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), magnetic or optical cards, flash memory, disk-on-key, or any other type of medium suitable for storing electronic instructions, and which can be coupled to a computer system bus.
[0353] 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 a more specialized apparatus to implement the desired methods. A desired structure for a variety of these systems will appear from the description that follows. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be understood that a variety of programming languages may be used to implement the teachings of the present invention.
[0354] 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 changes as fall within the true spirit and scope of the invention.
[0355] This application claims priority to U.S. Provisional Patent Application No. 62 / 367,151, filed July 27, 2016, and U.S. Provisional Patent Application No. 62 / 531,897, filed July 13, 2017, both of which are incorporated herein by reference.
Claims
1. A website building system (WBS), A processor; at least one database storing web sites constructed by users of the WBS, the web sites having instances of components and semantic complexes, the at least one database also storing at least a plurality of types of semantic complexes, a type of semantic complex defining a combination of related components with associated editing operations and behaviors; a layout repository containing alternative layouts for multiple types of semantic complexes; an alternative layout selector / applier, executing on the processor, for receiving a user selection of an instance of a semantic complex on a page of a website, extracting from the layout repository alternative layouts compatible with the semantic complex type of the selected semantic complex, receiving the alternative layout selected by the user, and modifying components of the semantic complex in response; A website building system comprising:
2. the type of semantic complex is at least one of a base semantic complex, a concept semantic complex, and a repeater semantic complex; The WBS of claim 1.
3. the alternative layout selector / applier adjusts dynamic layout parameters of other components and containers on the page that are affected by the modification of component parameters in the semantic complex. The WBS of claim 1.
4. the alternative layout selector / applier applies the alternative layout selected by the user to other members of the repeater semantic complex; The WBS of claim 1.
5. the alternative layout selector / applier suggests alternative layouts for the semantic complex according to at least one of an explicit user request, a UI trigger, and a context of the page; The WBS of claim 1.
6. the suggestion is based on a layout that is semantically equivalent to the semantic complex; The WBS according to claim 4.
7. a semantic complex type editor that allows a vendor or user of the WBS to create and edit the types of the semantic complexes; The WBS of claim 1.
8. A method for a website building system (WBS), comprising: storing web sites constructed by users of said WBS in at least one database, said web sites having instances of components and semantic complexes, also storing at least a plurality of types of semantic complexes, where a type of semantic complex defines a combination of related components with associated editing operations and behaviors; storing alternative layouts for multiple types of semantic complexes in a layout repository; receiving a user selection of an instance of the semantic complex on a page of the website; extracting from the layout repository alternative layouts compatible with the semantic complex type of the selected semantic complex; receiving an alternative layout selected by a user; modifying the constituents of said semantic complex accordingly; and A method for providing the above.
9. the type of semantic complex is at least one of a base semantic complex, a concept semantic complex, and a repeater semantic complex; The method according to claim 8.
10. the modifying adjusts dynamic layout parameters of other components and containers on the page that are affected by the modification of a component parameter in the semantic complex. The method according to claim 8.
11. said modifying includes applying an alternative layout selected by said user to other members of the repeater semantic complex. The method according to claim 8.
12. the modifying suggests alternative layouts for the semantic complex according to at least one of an explicit user request, a UI trigger, and a context of the page. The method according to claim 8.
13. the suggestion is based on a layout that is semantically equivalent to the semantic complex; The method of claim 12.
14. enabling a vendor or user of the WBS to create and edit types of semantic complexes; The method according to claim 8.
Citation Information
Patent Citations
Device for allocating material prepared as digital data
JP1998269374A
Website preparing support system and method therefor
JP2002229973A
Method and system for the use of adjustment handles to facilitate dynamic layout editing
US20130232403A1
Web page rendering on wireless devices
US20150169509A1
System and method for the creation and use of visually-diverse high-quality dynamic layouts
US20150310124A1