Device, system, and method for building a website using data lists
The Website Building System automates the selection and adaptation of views for content items, addressing the challenge of creating sophisticated websites without programming skills, enabling efficient and interactive website construction.
Patent Information
- Application Number
- JP2024018617
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2013-03-14
- Filing Date
- 2024-02-09
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2034-03-13
AI Technical Summary
Existing website construction methods struggle to efficiently create sophisticated and interactive websites without requiring advanced programming skills, as they often rely on manual coding and lack automated tools for dynamic content adaptation and layout management.
A Website Building System (WBS) that includes a pool of content items, views, and a dynamic matching and adaptation module to automatically select and adapt suitable views for content items, supporting inheritance, customization, and layout management, enabling novice users to build websites with rich user experiences.
Facilitates the creation of interactive websites by automating the selection and adaptation of views, allowing users without programming skills to build sophisticated websites efficiently, enhancing user experience and reducing the complexity of website construction.
Smart Images

Figure 0007749044000001 
Figure 0007749044000002 
Figure 0007749044000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to the field of website construction. [Background technology]
[0002] Millions of users use the Internet every day to read or otherwise consume web content. For example, a user may utilize a personal computer, laptop computer, smartphone, or tablet, and typically launch a browser, to read online news, watch online videos, interact with other users via social networks, play online games, etc.
[0003] Some websites may be built by manually writing code, such as HTML code and / or JavaScript, among other things. However, as websites have become more sophisticated and provide richer and more interactive user experiences, various "website builder" tools have been introduced to facilitate and / or automate the construction of particular web pages and even entire websites. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] US Patent Application Publication No. 2013 / 0219263 [Patent Document 2] US Patent Application Publication No. 2014 / 0282130 Summary of the Invention
[0005] The present invention may comprise, for example, a device, system, and method for building a website using data lists.
[0006] According to some exemplary embodiments of the present invention, for example, a Website Building System (WBS) comprises a pool of content items to be displayed on a website to be built, a set of views that can be used to display the items, each view being a template for a section of a web page of the website, and a dynamic matching and adaptation module that dynamically provides a suitable view for each content item for displaying the content item on the website.
[0007] In some embodiments, for example, the dynamic matching and adaptation module performs at least one of: (a) locating a matching view from the set of views; (b) constructing a matching view on the fly; and (c) locating a matching view from the set of views and modifying the located view.
[0008] In some embodiments, for example, the system supports an item type, and at least one view in the set of views is associated with the item type and usable to display items belonging to the item type.
[0009] In some embodiments, for example, the dynamic matching and adaptation module matches views to content items by matching suitable views to the item type of the content item.
[0010] In some embodiments, for example, the WBS further comprises a view manager that creates views having one or more conditional elements.
[0011] In some embodiments, for example, the pool of content items includes at least one item collection that is updatable via at least one of a collection update application programming interface (API), a collection update web service, an RSS feed, and a collection update interface based on an external data source.
[0012] In some embodiments, for example, the WBS further comprises a website / view converter that directly utilizes a website page as a view for a content item.
[0013] In some embodiments, for example, the WBS further comprises a pre-association module that associates a given view with a given item, and the dynamic matching and matching module performs dynamic matching based on the pre-association between the view and the item.
[0014] In some embodiments, for example, the pre-association includes an explicit specification of the pre-association between the given item and the given view.
[0015] In some embodiments, for example, the pre-association is based on at least one of a name attribute, a context attribute.
[0016] In some embodiments, for example, the matching and matching module includes a view pool searcher that searches a pool of predefined views for one or more views that match a given item.
[0017] In some embodiments, for example, the view pool searcher includes a keyword-based searcher that matches views with items based on one or more keywords.
[0018] In some embodiments, for example, the view pool searcher includes an attribute-based searcher that matches views with items based on one or more attribute matches.
[0019] In some embodiments, for example, the view pool searcher includes a field matching searcher that matches views to items based on one or more field matches.
[0020] In some embodiments, for example, the view pool searcher includes an application-related parameter searcher that matches views with items based on one or more application-related parameters.
[0021] In some embodiments, for example, the dynamic matching and adaptation module eliminates one or more matching view candidates by considering the form factor of the electronic device being used to view the website.
[0022] In some embodiments, for example, the system supports view inheritance via a view inheritance module that can create derived views that inherit features from existing views.
[0023] In some embodiments, for example, the WBS further comprises a parent view searcher that searches up a view inheritance tree for a suitable view if a given view is not appropriate for given content.
[0024] In some embodiments, for example, the WBS further comprises a view manager that automatically creates derived views based on item types.
[0025] In some embodiments, for example, the system supports inheritance of item types via an item type inheritance module that can create derived item types that inherit features from existing item types.
[0026] In some embodiments, for example, the WBS further comprises a view manager that automatically creates derived item types based on derived views.
[0027] In some embodiments, for example, the WBS further comprises a parent searcher that searches up the type inheritance tree to locate views that match the parent type of a given item type.
[0028] In some embodiments, for example, the matching and adaptation module adapts located views that match a parent item type according to modifications made to derived item types from the parent item type.
[0029] In some embodiments, for example, the WBS further comprises a ranking module that ranks potential matching views for a given content item.
[0030] In some embodiments, for example, the ranking module applies ranking to at least one of field matching, keyword matching, and attribute matching.
[0031] In some embodiments, for example, the WBS further comprises a view priority manager that assigns a priority value to each view, and the dynamic matching module finds multiple matching candidate views and selects one view to utilize from the multiple matching candidate views based on the priority value.
[0032] In some embodiments, for example, the WBS further comprises a callback manager that defines view rating callbacks for selecting a view to utilize from multiple candidate matching views identified by the dynamic matching module.
[0033] In some embodiments, for example, the dynamic matching module finds views of multiple matching candidates and invokes an end user selection interface generator to generate an end user selection user interface that allows an end user to switch between views of the multiple matching candidates.
[0034] In some embodiments, for example, the content item is made visible using a polymorphic display that utilizes two or more display formats that can be switched by the end user, and the end user's selection of a particular display format in the polymorphic display affects the matching of views with content items.
[0035] In some embodiments, for example, the WBS further comprises a view selection persistence enforcer that enforces persistence among views of a sequence of items displayed from a given set of items of the same item type.
[0036] In some embodiments, for example, the matching and matching module includes a dynamic view constructor that dynamically modifies a top-ranking candidate among multiple matching candidate views for a given content item, if the matching and matching module does not find any predefined matching views that match the content item with a matching score greater than a threshold.
[0037] In some embodiments, for example, the matching and matching module includes a dynamic view constructor that dynamically builds a view for a given content item and dynamically modifies the view if the matching and matching module does not find any predefined matching views that match the content item with a matching score greater than a threshold.
[0038] In some embodiments, for example, the WBS further comprises an integrated searcher / constructor module that searches a pool of predefined views to locate a matching view and modifies the view on the fly to accommodate one or more characteristics of a given content item.
[0039] In some embodiments, for example, the WBS further comprises an in-view zone divider that divides the display into two or more zones, each zone accommodating two or more elements of the content item.
[0040] In some embodiments, for example, the WBS further comprises a landing zone placement module that places new components within a view based on landing zones defined relative to existing components in the view.
[0041] In some embodiments, for example, the landing zone placement module selects the appropriate landing zone based on properties of the component to be placed.
[0042] In some embodiments, for example, the landing zone placement module automatically generates the landing zone based on at least one of the following: an edge of a container, an edge of a minipage, an edge of a container of a given type, an edge of a container of a given attribute, a location following a recent field addition that has at least a given amount of empty screen space, or within a newly created page or minipage.
[0043] In some embodiments, for example, the WBS further comprises a dynamic layout manager that applies one or more dynamic layout rules to the particular view.
[0044] In some embodiments, for example, the dynamic layout manager takes into account the dynamic layout rules and dynamic layout anchors.
[0045] In some embodiments, for example, the WBS further comprises an embedded view creator that creates an embedded version of a view that is (a) matched, or (b) dynamically constructed on the fly, or (c) dynamically adapted on the fly.
[0046] In some embodiments, for example, the embedded view creator includes a view-to-field matching module that maps each data component in the view to a matching field of the item.
[0047] In some embodiments, for example, the view-to-field matching module utilizes at least one of: (a) pre-association data; (b) common names used by view components and item fields; and (c) queries via matching keywords assigned to view components and item fields.
[0048] In some embodiments, for example, the embedded view creator includes a component resize module that resizes missing fields to a dimension of zero.
[0049] In some embodiments, for example, the embedded view creator includes a view display size adjuster that optimizes the size of at least one component within the particular view to accommodate the aspect ratio of the display unit being used.
[0050] In some embodiments, for example, the view display size adjuster includes a target width generator that performs dynamic layout calculations to generate a set of possible target widths for the component and determine a corresponding height for each target width, and a target width selector that selects one target width that best accommodates the aspect ratio of the display unit being used.
[0051] In some embodiments, for example, the given view includes a repeater component contained within the view, the repeater component displaying a secondary list related to a primary list of content items displayed via the given view.
[0052] In some embodiments, for example, the WBS further comprises a repeater component display module that displays the secondary list by using the same name and context attributes that the primary list has according to the given view.
[0053] In some embodiments, for example, the WBS further comprises a linking component manager that defines linking components, including containers that display content retrieved from the pool of content items.
[0054] In some embodiments, for example, the linking component manager displays one mini-page at a time, containing one content item from the pool of content items.
[0055] In some embodiments, for example, the linking component manager animates the transitions between browsed content items.
[0056] In some embodiments, for example, the linking component manager simultaneously displays a gallery of content items.
[0057] In some embodiments, for example, the linking component manager may display one or more content items linked by the linking component in response to a direct URL that links directly to the linking component.
[0058] In some embodiments, for example, the linking component manager is associated with a relationship list linking manager to link two linking components together based on the relationship lists of the content items.
[0059] In some embodiments, for example, the linking component manager is associated with an aggregator field linking manager to link two linking components together based on an aggregation function that calculates an aggregated value based on items in one of the two linking components.
[0060] In some embodiments, for example, the linking component manager is associated with a tag cloud linking manager to link two linking components to each other based on a selection of a tag from a tag cloud associated with one of the two linking components.
[0061] In some embodiments, for example, the linking component manager is associated with a hierarchical tree linking manager to link two linking components together based on a hierarchical tree having at least one parent / child pointer.
[0062] In some embodiments, for example, the linking component manager is associated with a form display linking manager to link two linking components together based on a request from a first linking component to display an alternative presentation of the first linking component's currently displayed item.
[0063] In some embodiments, for example, the WBS further comprises a dynamic layout manager that modifies the layout of linking components, including the views, based on presentation properties of content items within the views.
[0064] In some embodiments, for example, the WBS further comprises a specific item adaptation module that adapts a specific content item by performing at least one of: (a) adding one or more components to the displayed content in the context of the particular view being applied; (b) removing one or more components of the displayed content in the context of the particular view being applied; or (c) modifying one or more components of the displayed content in the context of the particular view being applied.
[0065] In some embodiments, for example, the specific item adaptation module includes a local variant creator that creates a local variant of a given view as an internal derived view and adds a layer of modification to the internal derived view.
[0066] In some embodiments, for example, the internal derived view is stored with an identification of the item to which the internal derived view applies.
[0067] In some embodiments, for example, the internal derived view is stored in the current list application that includes the item to which the internal derived view applies.
[0068] In some embodiments, for example, the particular item adaptation module includes a customization module that applies view customizations to all instances of a given view.
[0069] In some embodiments, for example, the WBS further comprises an application store manager module that manages an application store that enables a website designer to acquire one or more objects generated by the website building system, the acquiring including at least one of (a) downloading, (b) acquiring from a storage item, (c) acquiring from a shipped storage item, (d) acquiring from a server computer that stores the object, and (e) acquiring from a cloud computing server.
[0070] According to some exemplary embodiments of the present invention, for example, a computerized method for constructing the website includes storing a pool of content items to be displayed on the website to be constructed, storing a set of views that can be used to display the items, each view being a template for a section of a web page of the website, and performing dynamic matching and adaptation to dynamically provide a suitable view for each content item for displaying the content item on the website.
[0071] In some embodiments, for example, the method includes at least one of: (a) locating a matching view from the set of views; (b) constructing a matching view on the fly; and (c) locating a matching view from the set of views and modifying the located view.
[0072] In some embodiments, for example, the method further includes associating a given view with a given item, and the dynamic matching and adaptation includes performing dynamic matching based on a pre-association of the view with the item.
[0073] In some embodiments, for example, the method further includes supporting view inheritance by generating derived views that inherit features from existing views.
[0074] In some embodiments, for example, the method further includes ranking potential matching views for a given content item.
[0075] In some embodiments, for example, the method includes dynamically modifying a top-ranking candidate among a plurality of candidate matching views for a given content item if the matching and adaptation does not find any predefined matching views that match the content item with a matching score greater than a threshold.
[0076] In some embodiments, for example, the method includes applying one or more dynamic layout rules to the particular view.
[0077] In some embodiments, for example, the given view includes a repeater component included within the view, the repeater component displaying a secondary list of content items related to a primary list of content items displayed via the given view.
[0078] In some embodiments, for example, the method includes defining a linking component that includes a container that displays content obtained from the pool of content items.
[0079] In some embodiments, for example, the method includes performing a specific item adaptation to adapt a specific content item by performing at least one of: (a) adding one or more components to the displayed content in the context of the particular view being applied; (b) removing one or more components of the displayed content in the context of the particular view being applied; or (c) modifying one or more components of the displayed content in the context of the particular view being applied.
[0080] In some embodiments, for example, the method includes managing an application store that enables a website designer to obtain one or more objects generated by the website building system, the obtaining including at least one of (a) downloading, (b) obtaining from a storage item, (c) obtaining from a shipped storage item, (d) obtaining from a server computer that stores the objects, and (e) obtaining from a cloud computing server.
[0081] Some embodiments may include, for example, a storage medium having stored thereon instructions that, when executed by a machine, cause the machine to perform a method in accordance with the present invention.
[0082] In some embodiments, for example, the one or more objects include one or more of a view, a template, an item type, a collection of items, a list application, and a linking component.
[0083] The present invention may provide other and / or additional benefits or advantages.
[0084] For purposes of clarity and simplicity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity of presentation. Furthermore, reference numerals may be repeated among the figures to indicate corresponding or similar elements. The figures are listed below. [Brief explanation of the drawings]
[0085] [Figure 1] FIG. 1 illustrates a schematic block diagram of a website building system (WBS) that may be used to build a website, according to some exemplary embodiments of the present invention. [Figure 2] FIG. 2 illustrates a schematic block diagram of a WBS, particularly showing components and their contents, according to some exemplary embodiments of the present invention. [Figure 3] FIG. 2 illustrates a schematic block diagram of a WBS, illustrating, among other things, inheritance between objects, according to some exemplary embodiments of the present invention. [Figure 4] FIG. 1 illustrates a schematic block diagram of a WBS, particularly illustrating templates, according to some exemplary embodiments of the present invention. [Figure 5] FIG. 1 illustrates a schematic block diagram of a WBS, particularly illustrating item types, according to some exemplary embodiments of the present invention. [Figure 6] FIG. 1 illustrates a schematic block diagram of a WBS, illustrating, among other things, collections and items, according to some exemplary embodiments of the present invention. [Figure 7] FIG. 2 illustrates a schematic block diagram of a WBS, illustrating in particular a Linking Component (LC), according to some exemplary embodiments of the present invention. [Figure 8] FIG. 1 illustrates a schematic block diagram of a WBS, illustrating in particular views and modules for managing those views, according to some exemplary embodiments of the present invention. [Figure 9]FIG. 1 illustrates a schematic block diagram of a WBS, illustrating in particular views and modules for managing those views, according to some exemplary embodiments of the present invention. [Figure 10] FIG. 1 illustrates a schematic block diagram of a WBS, illustrating in particular the three-stage process of view matching / construction and writing modules, according to some exemplary embodiments of the present invention. [Figure 11] FIG. 2 illustrates a schematic block diagram of a WBS, particularly illustrating view location (or view-item matching), according to some exemplary embodiments of the present invention. [Figure 12] 1 illustrates a schematic block diagram of a WBS, particularly illustrating pre-association of views, according to some exemplary embodiments of the present invention; [Figure 13] FIG. 1 illustrates a schematic block diagram of a WBS, particularly illustrating view searching, according to some exemplary embodiments of the present invention. [Figure 14] 1 illustrates a schematic block diagram of a WBS, particularly illustrating dynamic view construction, according to some exemplary embodiments of the present invention; [Figure 15] 1 illustrates a schematic block diagram of a WBS, particularly illustrating view selection and polymorphic display, according to some exemplary embodiments of the present invention; [Figure 16] 1 illustrates a schematic block diagram of a WBS, particularly illustrating the creation of embedded views, according to some exemplary embodiments of the present invention; [Figure 17] 1A-1C illustrate schematic block diagrams of a WBS illustrating dynamic layout and adjustment of embedded views, according to some exemplary embodiments of the present invention; [Figure 18] 10A-10C illustrate schematic block diagrams of a WBS illustrating placement and modification of landing zones, according to some exemplary embodiments of the present invention. [Figure 19] 1 illustrates a schematic block diagram of a WBS, particularly illustrating view modification, according to some exemplary embodiments of the present invention; [Figure 20]FIG. 1 illustrates a schematic block diagram of a WBS, particularly illustrating LC concatenation management, according to some exemplary embodiments of the present invention. [Figure 21] FIG. 1 illustrates a schematic block diagram of a WBS, particularly illustrating app store integration, according to some exemplary embodiments of the present invention. [Figure 22] FIG. 2 illustrates an exemplary user interface (UI) supporting explicit collection updates for a restaurant listing application (LA), according to some exemplary embodiments of the present invention. [Figure 23A] FIG. 1 illustrates an exemplary restaurant LA displaying a hierarchy of items from multiple collections within one LC, according to some exemplary embodiments of the present invention. [Figure 23B] FIG. 1 illustrates an annotated version of an LA for an exemplary restaurant, according to some exemplary embodiments of the present invention. [Figure 24] FIG. 10 illustrates a sample LC displaying one enlarged item, according to some exemplary embodiments of the present invention. [Figure 25] 10A-10C illustrate sample LCs displaying multiple item views in a multi-column, gallery-style format according to some exemplary embodiments of the present invention. [Figure 26] FIG. 10 illustrates an example search box used to select items to be included in a list as generated by the system, according to some exemplary embodiments of the present invention. [Figure 27] 10A-10C illustrate exemplary effects of increasing the "item spacing" value on spacing between view instances in a sample LA, according to some exemplary embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0086] In the following detailed description, numerous specific details are set forth to provide a thorough understanding of some embodiments. However, those skilled in the art will understand that some embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, units and / or circuits have not been described in detail so as not to obscure the discussion.
[0087] The present invention may comprise a website building system (WBS) in which list components and list applications, as described herein, may be implemented. The WBS may be used by designers or programmers or others who wish to build websites. Some embodiments of the WBS may be configured to be suitable for novice or amateur users, or for website builders who do not necessarily have advanced programming skills (or any skills at all) and who are not necessarily proficient in programming languages. Direct users of the WBS are those who can use the WBS to create websites and may be referred to as "designers," while the websites themselves, once built and published, may be used by "end users."
[0088] In accordance with the present invention, a WBS may comprise and / or enable the following features: items and item collections; item types; views (including conditional elements, computed elements, and other elements); templates and inheritance (including derived views and derived types); linking components (LCs); dynamic matching between items, types, and views; support for automatic creation of item types based on derived views and vice versa; support for customization and automatically generated customization dialogs; support for matching specific items; support for creating connections between relationship LCs; and support for application store integration for all the above features.
[0089] Some embodiments of the present invention may be utilized in conjunction with the systems, methods, modules, and / or components described in U.S. Patent Application Publication No. 2013 / 0219263, entitled "Web Site Design System Integrating Dynamic Layout and Dynamic Content," filed February 20, 2013, and published as U.S. Patent Application Publication No. 2013 / 0219263, the entirety of which is incorporated herein by reference.
[0090] Pages, Containers, and Components
[0091] 1, there is illustrated a schematic block diagram of a website building system (WBS) 100 that may be used to build a website 110, according to some exemplary embodiments of the present invention. The WBS 100 may be used to build, create, edit, and / or generate the website 110, which may comprise pages 111 that may include components 120 (e.g., text, images, video).
[0092] Components 120 may be, for example, atomic components 121 and / or container components 122. For example, container components 122 may be single-page containers 123 or multi-page containers 124 (containing multiple mini-pages 125 separated from one another). It should be clear that these are merely non-limiting, illustrative examples. In particular, while Figure 1 illustrates a particular configuration of components and containers, many similar configurations are possible.
[0093] The multi-page container 124 may display a single mini-page 125 at a time (single-page view), or may display multiple or all mini-pages 125 (e.g., implemented as a gallery view, carousel view, or collection view, as illustrated in FIG. 25 ). The multi-page container 124 may have a fixed display mode (e.g., gallery view only) or may allow the user to switch between multiple display modes.
[0094] When viewing a page that includes a multi-page container 124, a user can navigate among the various mini-pages 125 contained in a given multi-page container 124 using one or more suitable mechanisms, such as navigation buttons (e.g., first, previous, next, last) and / or visual selection from multiple visible mini-pages 125 (or thumbnails, reduced views thereof).
[0095] Referring to FIG. 2, a schematic block diagram of WBS 100 is illustrated, particularly showing components 120 (e.g., components 120 of page 111 of website 110) and their content 130, according to some exemplary embodiments of the present invention.
[0096] Components 120 may have content 130, such as text content for a text component, an image for an image component, or video content for a video player component. Components 120 may have (or be associated with) attributes 131, such as display attributes 132 (e.g., color, frame) and layout attributes 133 (e.g., size and position). It should be apparent that FIG. 2 illustrates a non-limiting, exemplary embodiment, and that various attributes 131, 132, and / or 133 do not necessarily "depend" on content 130. For example, some of the components in WBS 100 may have (or be associated with) attributes 131, 132, and / or 133, but not necessarily have content 130. Similarly, for some component types, attributes 131, 132, and / or 133 may be completely separate (and / or independent) from specific content or from any content. In other component types, content may be associated with attributes, for example, one or more particular font types and / or colors may be associated with elements of text shown in a text component.
[0097] The WBS 100 may generate a page definition, which may include dynamic layout rules (e.g., anchors connecting the edges of multiple components), which may be handled by a Dynamic Layout Manager (DLM) 101. For example, the DLM 101 may be invoked whenever a Dynamic Layout (DL) trigger is invoked, such as a change that affects the page layout (e.g., adding a component, removing a component, changing the content of a component in a way that affects the size of the component, moving a component, changing the size of a component), a content change for a component that reflects external content, etc. Other suitable triggers or trigger mechanisms may be used, such as those described in detail in the aforementioned patent document 1.
[0098] Inheritance relationships
[0099] 3, there is illustrated a schematic block diagram of a WBS 100 illustrating, among other things, certain inheritances between objects, according to some exemplary embodiments of the present invention. The WBS 100 may include an inheritance support manager 102 capable of supporting inheritance relationships between entities of a given entity type, including, among other entity types, such as templates (which may include pages), item types, and views.
[0100] When entity A inherits from entity B, the sub-elements of A are copied or imported from the sub-entities of B. For example, entity B may be referred to as "parent entity B" (labeled 141), while entity A may be referred to as "child entity A" or "inheriting entity A" (labeled 142). Note that entity A may include local modifications to the sub-elements copied from B, including (without limitation) adding new sub-elements, deleting copied sub-elements, or changing properties of copied sub-elements. The local modifications only apply to inheriting entity A, not to parent entity B.
[0101] Inheritance support manager 102 may include, utilize, or be associated with one or more inheritance enablement modules, such as inheritance by copy module 103 and / or full inheritance module 104 (which may also be referred to as a "continuous inheritance" module because the inheritance chain continues to affect inheriting entity A when subsequent modifications are made to parent entity B). Note that in some embodiments, WBS 100 may support only inheritance by copy, while in other embodiments, WBS 100 may support only full inheritance. Thus, in some embodiments, WBS 100 may support either full inheritance or inheritance by copy, but not both.
[0102] The inheritance by copy module 103 may enable inheritance by copy, so that entity A is a separate entity based on parent entity B, created by copying the structure and sub-elements of parent entity B. However, the copy is a separate entity and does not reflect changes made to parent entity B after the creation of inheriting entity A.
[0103] Full inheritance module 104 may enable full inheritance so that an inherited entity A remains (even when modified) an instance of parent entity B. For example, if parent entity B is modified after inherited entity A is created, the changes made to parent entity B are automatically reflected in inherited entity A and combined with any local modifications made to inherited entity A.
[0104] The inheritance support manager 102 and / or its modules may support (for each entity type that supports inheritance) any one or combination of the following inheritance types: (a) regular inheritance, in which A inherits from B; (b) multi-level inheritance, in which A inherits from B, which inherits from C; (c) multiple inheritance, in which A inherits from both B and C and combines descendants from both; and (d) diamond inheritance, in which A inherits from both B and C, and both B and C inherit from another entity, D.
[0105] Templates
[0106] Referring to FIG. 4, a schematic block diagram of WBS 100, particularly illustrating templates, is illustrated, according to some exemplary embodiments of the present invention. WBS 100 may include a template manager 105 capable of managing page templates 128. For example, a template 128 may be a special type of page (or mini-page) that is not part of the regular website being edited. A template 128 may be embedded in a regular page or added to the content of such a page, or additionally or alternatively, a template 128 may be used as the basis for creating a new page. In some embodiments, both of these functions of a template 128 may be implemented by defining a page that inherits from a particular template. Optionally, a page may include multiple templates, all of which may be combined together with the page's content.
[0107] WBS 100 may also support single-component templates 129, which describe the properties of one component and may be used in building other templates and pages. Note that page templates 128 may be viewed as multiple-component templates with additional page-level properties (e.g., dynamic layout anchors).
[0108] In some embodiments, WBS 100 may enable or support template types such as page templates 128; single component templates 129; list application templates 127; and view templates 126. Note that the various types of templates described above for illustrative purposes pertain to objects that may have widely differing scopes and / or complexities and / or characteristics. For example, a list application template may describe a complete application environment, or a substantial portion thereof, such as a turnkey restaurant site (e.g., as illustrated in FIG. 21 ), a turnkey news reporting website, etc. As such, a list application template may include multiple item types—items, collections, views, and pages—all of which are used to create or generate an actual website.
[0109] Optionally, WBS 100 may support or allow inheritance relationships between templates, such that modified templates may be derived from a base template. This feature of the present invention may be applied to inheritance relationships between pages and templates (e.g., a particular page inherits from one or more templates).
[0110] Item type
[0111] Referring to FIG. 5 , a schematic block diagram of the WBS 100, illustrating, among other things, item types, according to some exemplary embodiments of the present invention, is illustrated. The WBS 100 may include a type manager 106 capable of managing “types,” or item types 135, which may be data record definitions (e.g., item schemas) that describe items. For example, the exemplary item type 135 may include a set of fields 136 (e.g., text, number, image). Optionally, one possible field type is a pointer 137 to an item (or set of items), which may be used to create an item hierarchy (via a pointer to a parent), an item chain (via a pointer to a next item), or other inter-item relationships between two or more items. Yet another possible field type is a set of tags (selected from a list of tags for a given field), which may be used to mark items for retrieval via a mechanism such as a tag cloud.
[0112] Item types 135 may inherit from other item types 135, with optional additions, deletions, and modifications. For example, a "shirt" item type may inherit from a "clothing" item type and may have an additional field "sleeves (short / long sleeves)."
[0113] Pools of item types 135 may be defined at the collection level, application level, designer level, or WBS level. Optionally, WBS 100 may support one or more item type pools 138 at one or more appropriate levels.
[0114] Collections and Items
[0115] Referring to FIG. 6, a schematic block diagram of a WBS 100 is illustrated, illustrating, among other things, collections and items, according to some exemplary embodiments of the present invention. The WBS 100 may include or be associated with a backend database 143 that may include one or more collections 144 of items 145. Each collection 144 may include one or more items 145. Each item 145 may be associated with a specified item type 136. A collection may be unified (e.g., all items in the collection have the same item type) or non-unified (e.g., at least two of the items in the collection have two different item types). Note that for purposes of illustration, FIG. 6 shows that the database 143 includes both collections 144 and items 145. In some embodiments, because collections include items, the collections and items may have a hierarchical relationship.
[0116] Collection Update
[0117] A collection 144 of items 145 may be updated, for example, by adding items 145, removing items 145, and / or modifying items 145. For example, WBS100 may optionally include a collection manager 146 that can provide automatically generated screens that a user (e.g., a designer, developer, website creator) may use to update or edit a collection 144; for example, an example UI, such as that illustrated in FIG. 22, supports collection updates (e.g., adding, removing, or editing menus / sections / dishes) for a restaurant listing application. Additionally or alternatively, developers can create their own collection update forms 147 to provide to end users for runtime collection updates.
[0118] In some embodiments, WBS 100 may provide a programmatic interface (e.g., collection update API 148) through which an authored website may interface directly with collection manager 146 to update collections 144. Optionally, WBS may provide an interface (e.g., collection update web service 149) that allows external applications (e.g., web applications, mobile applications, desktop applications, cloud-based applications, etc.) to access and update collections 144 directly without having to access collections 144 through an authored website. In some embodiments, WBS 100 may provide a collection update interface 150 based on external data sources (e.g., RSS feeds) to add to a given collection 144, and WBS itself may be responsible for updating collections 144 based on incoming data feeds.
[0119] Optionally, collections 144 may be constructed to represent (or point to) data that resides in external systems or datasets, e.g., as "virtual collections" 151, in which case changes in the underlying systems or datasets are automatically reflected in virtual collections 144.
[0120] Linking Component
[0121] Referring to FIG. 7 , a schematic block diagram of a WBS 100 is illustrated, illustrating in particular a linking component (LC) according to some exemplary embodiments of the present invention. The WBS 100 may include or enable the use of a linking component (LC) 152, which may be managed or handled via the LC manager 106 module. Each LC 152 may be a special type of multi-page container that displays items retrieved from one or more collections via views dynamically or statically associated with each item, with each minipage displaying one item via an associated view. Implementations may support multiple types of LCs 152, including (a) an LC 152 that displays one minipage (as well as related items and views associated with the related items) at any given time; and (b) an LC 152 that displays several minipages simultaneously (e.g., a gallery or carousel-type container) or may show multiple items via associated views (e.g., each view displayed within a minipage). An LC 152 may be used directly (e.g., by being included in a page or minipage) or through a template that includes the LC 152 (e.g., like any other component that may be included in a template). A single page or minipage may contain multiple LCs 152.
[0122] Optionally, an LC may be associated directly with a particular item, with items in a collection, or with a set of collections (which may be displayed one after the other or hierarchically, e.g., using a table-of-contents-like structure). For example, a restaurant list application (LA) (as illustrated in FIG. 23) may use a menu LC that displays a hierarchical menu structure, thereby displaying items from a "menu" collection (e.g., the current menu name), a "section" collection (e.g., menu section names "salads," "side dishes & starters," etc.), and a "dish" collection (e.g., the name and price of a particular dish). Such an LC may be referred to herein as a composite LC.
[0123] In some embodiments, the virtual mini-page generator 107 may automatically generate a virtual mini-page for each item of one or more collections associated with the LC 152. It should be apparent that a single LC 152 may be associated with multiple collections, some of which may be virtual and some of which may not. Once the LC 152 is displayed, designers and users may manually navigate among the multiple displayed mini-pages of that LC, for example, by using scroll bars or navigation buttons (e.g., first, previous, next, last). Designers and users can also perform additional operations, as described herein.
[0124] According to the present invention, the WBS 100 may include an LC direct access module 153 that may enable direct linking with the LC 152, e.g., allowing a page containing the LC to be directly accessed using a URL. Such exemplary direct URLs may include, for example:
[0125] www.MySite.com / prefix / MyPage.html?MyItem
[0126] www.MySite.com / prefix / MyPage.html?LC1=MyItem1&LC2=MyItem2
[0127] www.MySite.com / prefix / MyPage.html?LC1=MyFilterQueryString
[0128] Such a direct link may cause WBS100 to open a particular page (including LC152) with LC152 already displaying the requested item, or with a given query used to filter the items in a manner similar to how a query and parameters are added to a regular URL (e.g., to be passed on for processing by a PHP program).
[0129] When WBS100 opens a page containing LC152, with LC152 displaying the results of a query derived from a URL, LC152 displays the results of the query as a query result structure 108, which may be detailed or summarized. A result list is not necessarily a page or a minipage by itself, but may have any or predefined structure defined by WBS100. A detailed result list may optionally include multiple minipages (e.g., one minipage for each found result), which may differ from the regular situation in which LC152 displays one or more minipages at any time.
[0130] Optionally, the WBS 100 may be configured to restrict such direct or deep links to particular LCs 152 or to particular LC types. For example, the LC linking constraints module 154 may be used to define constraints or restrictions on direct links to LCs or LC types and may be responsible for enforcing such LC linking constraints.
[0131] In some embodiments, WBS 100 may provide an alternative interface (e.g., a web services-based interface or a message passing-based interface) to access one or more of the functionality described above.
[0132] WBS100 may optionally define and utilize special LC152 for specific uses, such as displaying only a filter search box (with results displayed elsewhere); displaying a results list; or displaying a "tag cloud," i.e., a group of tags that qualify the items in a given collection.
[0133] Exemplary uses of LC152 may include one or more of: (a) LC152 being directly associated with (and displayed as) one pre-specified top-level item (see FIG. 24); (b) LC152 being directly associated with one pre-specified top-level item and displaying this item along with one or more included relationship lists (where the relationship lists indicate related items from the same or different collections (see FIG. 23A)); (c) LC152 being associated with a filtered collection (by a filter that selects a given set of items from a list) and implementing manual pre-selection of items or actual dynamic queries.
[0134] In addition to navigating the list (as described above), WBS 100 may, depending on the designer / user's permissions and privileges, allow additional operations that can be invoked when the list is displayed on LC 152. Such additional operations may include (a) jumping to an add item form (e.g., a view used in add item mode, as described herein); (b) jumping to an expanded item page; (c) jumping to a relationship list; (d) jumping to edit item, etc.
[0135] View
[0136] 8-9, there is illustrated a schematic block diagram of WBS 100, particularly illustrating views and modules for managing such views, according to some exemplary embodiments of the present invention. Each view 155 may be a special type of template used to display items from a collection. Each view 155 displays one item, while multiple item displays can be achieved using multiple views within LC 152.
[0137] WBS100 may include a view manager 156 that can utilize different views 155 for different items of the same collection. For example, as a user navigates through blog records that have multiple formats (e.g., text entries, image entries, video entries), the view 155 used for display may change for each item, changing the displayed format in the process.
[0138] A view 155 may include fixed view elements 157 that always apply to (or are included in) the displayed view, and / or conditional view elements 158, which may be associated with view conditions 159. For example, the conditional view elements 158 may depend on one or more of: (a) the presence of a given data field in the underlying item; (b) the value of a given data field in the underlying item; (c) a pre-specified scheme involving the values of the data field and the relationships between the values of the data field; (d) parameters of the display LC 152 (e.g., displaying a given field only when displaying in a list-type gallery); (e) user attributes obtained from a user profile or other source (e.g., displaying a particular field only for internal users within an organization or for users in a particular geographic area); or (f) mode of use (e.g., whether the view 155 is being used for creating, editing, or viewing).
[0139] In an exemplary embodiment, the view 155 may include one or more of the following elements: (a) regular or fixed view elements 157 (e.g., page title, background image); (b) data components 162 filled with data from display items (e.g., prices of homes for sale, images of such homes, description text); (c) repeater components 163 (as described herein) used to display relationship lists within the view; (d) calculated components 164 that display information calculated based on content from the display items (e.g., value of value-added tax (VAT) on prices obtained from a numeric price field); (e) conditional view elements 158 whose inclusion in the display (or their attributes) depends on view conditions 159 (e.g., displaying a colored ribbon for restaurant items that have a predefined value in the field "Today's Picks"); (f) data validation rules 161 that may depend on view conditions 159; and (g) conditional dynamic layout elements 165, which may be dynamic layout rules and anchors that may depend on view conditions 159.
[0140] WBS100 may include a view inheritance module 166 that allows a view 155 to inherit from one or more other views 155, with additions, deletions, and modifications applied. For example, a "shirt" view may inherit from a "clothing" view and may have an additional component, "sleeves (short / long sleeves)," thereby creating a derived view 167.
[0141] Note that views and item types are different entities and exist in different pools, but both may have subordinate entities such as fields and may have inheritance relationships (items can inherit from other items in the item pool, and views can inherit from other views in the view pool). Item types define which fields are included in an item, while views define how those fields are displayed. WBS 100 may include a dynamic view constructor 169 that allows for the dynamic construction of views based on information in the underlying template type and the particular item being displayed.
[0142] One or more pools of views 168 may be implemented at the application level, the designer level, or the WBS level. Optionally, views 155 may be predefined to be associated with item types, such that a particular view 155 must always "belong" to a given item type (or an item type that inherits from it).
[0143] Using Views for Item Display
[0144] WBS100 may include an item display module 170, which may display items by using a predefined algorithm. First, a view matching the item display is located (or created on the fly). For example, item display module 170 may locate a view pre-associated with the item or a selected view by searching a pool of available views. Alternatively, if an appropriate view is not located, item display module 170 may automatically construct an appropriate view “on the fly” based on the item definition. Second, item display module 170 may create an embedded version of the selected view by (a) matching each data component (if possible) with the item's fields and using the content of the matching fields; (b) determining the values of all calculated components; and (c) determining whether conditional view elements should be included. Item display module 170 may then perform a dynamic layout on the embedded view, thereby applying the resulting layout modifications to field content, conditional view elements, etc., and proceeding to display the embedded view.
[0145] For example, when displaying LC152, which is a gallery-type multi-page container that simultaneously displays multiple collection items, it should be noted that processing may be performed for multiple collection items.
[0146] Repeater components and using views within views
[0147] A view 155 may include one or more repeater components 163. Each repeater component 163 may be similar to an LC 152 as a whole, but contained within a view 155. Each repeater component 163 may display a given list, typically a list related to the main item displayed in the view 155. For example, a person item may be related to other person items (e.g., the person's friends) and car items (e.g., the cars the person owns). A person view may include two repeater components 163 that display these lists (a "friends" list and a "cars" list). These two repeater components 163 display the particular list associated with the current person being viewed or highlighted in the LC 152 that views the main person. It should be noted that a repeater LC should be distinguished from a composite LC as described above (and illustrated in FIG. 23A) (i.e., a repeater LC displays different relationship lists in different LCs), while a composite LC contains multiple lists displayed within a single LC.
[0148] Unless overridden by specific configuration parameters, the repeater component display module 171 may ensure that the repeater component 163 displays the list using the same view attributes (e.g., name, context) as the view 155 used to display the main component. For example, a view named XYZ for type A may be used to display items of type A, each of which is linked to a set of items of type B, and the list of items of type B (related to the current type A) will be displayed in the repeater component 163 (as default, unless configured otherwise) using a view named XYZ for type B.
[0149] Use of website pages for displaying items
[0150] In some embodiments of the present invention, instead of a view being used to display an item in an LC, the system may directly utilize a website page as if it were a view. In such a case, the system may display data from the associated item directly within a data component included in the website page. For example, a designer may include a data component within a regular website page and specify from which item the component's data should be obtained. Optionally, a web page / view converter 172 may be included in the WBS 100 to implement conversion or adaptation of a web page for utilization as a view.
[0151] The items used as data sources may be selected for each data component in one or more suitable ways, for example, from (a) items specifically associated with the website page (so that if this item is changed, such as in another page that inherits from the current page, this will affect all data components); (b) items pre-associated for this particular component; or (c) candidate items, such as items that answer queries specified at the page or component level. Data components may also specify the data fields to be used directly or may use field discovery / query mechanisms.
[0152] Optionally, such pages may be constructed and modeled into templates that can be reused to display different items within a manually constructed set of pages, and the designer may simply specify which components have changed when an alternate item is associated with the page.
[0153] Three-step process
[0154] 10, a schematic block diagram of WBS 100 is illustrated, illustrating in particular the view matching / construction and writing modules, which are a three-stage process, according to some exemplary embodiments of the present invention. WBS 100 may include, for example, (a) a view-to-item matching module 109A, which may search and locate views that match the items to be displayed and may dynamically construct views on the fly if a suitable pre-defined view is not found, (b) a view filler module 109B, which may create embedded views based on the fields of the view and the fields of the item, and (c) a DL applicator 109C, which may apply a dynamic layout to the embedded views.
[0155] Step 1: Locate a view that matches the item (or item type)
[0156] 11, there is illustrated a schematic block diagram of WBS 100, particularly illustrating view location (or view-to-item matching), according to some exemplary embodiments of the present invention, which may be the first stage of the three-stage process referred to above.
[0157] The step of locating a view that matches an item may be performed by, for example, (i) a view pre-association module 112A for pre-associating a view with an item and / or item type; (ii) a view searcher module 112B for searching a pool of available views; and / or (iii) an on-the-fly dynamic view constructor 112C for dynamically constructing an appropriate view “on the fly.”
[0158] Pre-associating views with fields and / or field types
[0159] 12, a schematic block diagram of WBS 100 is illustrated, illustrating in particular the pre-association of views, according to some exemplary embodiments of the present invention. WBS 100 may include a view pre-association module 173 (which may be similar to view pre-association module 112A mentioned above) that enables pre-association of a view (or multiple views) with a particular item and / or particular item type. This may be done during creation or editing of a particular item and / or item type, or during creation or editing of an inheritance of items and item types.
[0160] A view association may be performed by a designer, who may explicitly associate a view with any given item type, and that association will be used for all items that have that given item type. The association may also be used for all item types that inherit from that given item type, unless the item type has its own explicitly assigned view. A designer may also explicitly associate a view with any particular item, thereby overriding the view associated with that given item's item type.
[0161] Optionally, attribute-based pre-association module 113A may enable pre-association of views via attribute parameters 113D (including the use of context-based association, associations that match type-specific names and inheritance, as described further below). For example, attribute-based pre-association may be used when the system needs to link views according to a general name, context, classification, or other parameter. Attribute-based pre-association module 113A may support attribute-based pre-association in the following manner: (a) the system defines specific attributes for views (e.g., name, context); (b) the view creator assigns values to these attributes; (c) the designer (using lists and views) specifies values for given attributes; and (d) a view is selected based on the values of the provided attributes (e.g., name, context).
[0162] In one illustrative example, the system may include a name attribute 113E for each view, specific to each item type. A designer may specify the name of the view to use when defining an LC (or web page). For each item type, the view with the given name and associated with the given item type is used. Note that there may be multiple views with the same name for different item types, and thus specifying the name of a view may actually create multiple association relationships (e.g., as described herein with respect to the Repeater component).
[0163] In another illustrative example, the system may assign the possible values "thumbnail mode" and "zoom mode" to the context attribute 113F. For a given LC (or repeater component or web page), the designer may specify a context for view selection (e.g., thumbnail mode or zoom mode), and the selected view (for each type) is the view with the given context. An illustrative example is shown in Figures 23A and 25, which show the same restaurant listing application with three collections: menu, section, and cuisine (and matching item types). However, there are multiple views associated with each of the three types, which are arranged as layouts, with each layout defining a specific view for each of the three types. As can be seen from these figures, the user may select a layout in the layout selection area (e.g., layout[x] in Figure 23B, layout[y] in Figure 25), which affects the view used for each of the three item types. The layout name / code serves as the context variable in this case.
[0164] Alternatively, multiple views may be explicitly associated with a given item or item type. In such cases, the conditional selector module 173B may define and / or enforce one or more conditions for selecting one of the associated views. Such conditions may include (a) the type of LC used to display the items (e.g., a large-area container may use a detailed view (displaying many fields), while a gallery-style container may use a smaller view that includes only thumbnails and descriptive text); (b) the content of a particular “selector” field of the displayed item; (c) the identity of the user accessing the collection or a particular property of the accessing user's user profile (e.g., an online store employee may be able to see more information in additional fields compared to the content displayed to a visiting guest user), etc.
[0165] Optionally, view-by-function association module 173C may be used to associate and enforce different views for different functions. For example, WBS 100 may assign different views for viewing items, creating items, and updating items. A designer may define these views and may also specify that a given view is used for multiple functions (e.g., for both creating and updating items).
[0166] Search for available pools of views
[0167] 13, a schematic block diagram of WBS 100 is illustrated, illustrating view searching in particular, according to some exemplary embodiments of the present invention. WBS 100 may include a view pool searcher 174 (a searcher module for searching a pool of views), which may perform a search query on the pool of views to locate matching views. The pool of applicable views may be defined at any appropriate level, for example, at the system level, application level, item collection level, or item type level. The pool of applicable views may also be a combination of several pools (e.g., defined at different levels).
[0168] The view pool searcher 174 may utilize one or more suitable query types, such as keyword-based, field matching, attribute matching, application-related parameter, or other suitable types of queries. The view pool searcher 174 may combine two or more of the query methods, for example, selecting from among views that have matching fields and applying specific conditions to view attributes.
[0169] Keyword-based view searches may be implemented using the keyword-based view searcher 174A module or submodules, in which both item types and views can have keywords attached or associated with them (e.g., one or more keywords that may be selected from a predefined list). A matching algorithm attempts to locate the view with the greatest keyword match with the item type keyword list.
[0170] In a field-matching view search, the field matching searcher 174B module or submodules may search for a view with a set of components that best matches a set of fields of an item. Matching may be performed according to field names, attributes, or special match IDs. Ranking or scoring or ranking of matches may be performed by the scoring / ranking module 175, for example, by comparing the number of matching fields or by calculating a weighted score using weights for each field.
[0171] Optionally, a field data dictionary 176 may be defined and used (e.g., at the system level, application level, or another level) to create both item type fields and view components. Matching may be performed using the field data dictionary 176, for example, by utilizing a dictionary searcher 177 to locate view components and item fields that have matching underlying data dictionary fields.
[0172] The attribute-based searcher 178 may perform attribute-based searches. For example, a view may have additional attributes assigned to it to aid in matching the view with an item. An item type (or item) may include a query (using an appropriate query or expression language) that is applied to associated or available views to select which view is the best match for the item based on one or more of the view attributes. The query may be fully specified (e.g., it may include all conditions) or may be parameterized to include one or more parameters such as: (a) item-specific values (e.g., the query is specified at the item type level, but the item has specific parameters embedded); (b) item data field values (e.g., parameters based on data fields of a particular item); (c) LC type (e.g., parameters that depend on the particular LC in which the view is to be displayed), e.g., LC size and container type, which may determine which view size is optimal; and / or (d) general environment values (e.g., user classification and privileges). Attribute-based searching may be implemented as a generalized version of the pre-association of view attributes (eg, via name / context) described above.
[0173] Optionally, matching of views and item types may be performed based on application-related parameters, by utilizing application-related parameter searcher 179. Thus, the view search may take application-related parameters into account, e.g., different views may be dynamically selected for the first and last items in the results of a filter query. In this way, "next" and "previous" navigation buttons may be dynamically displayed as needed.
[0174] Because some of the matching techniques described above may produce multiple candidate views for displaying a particular item, the multiple match results handler 180 may handle multiple results. In such cases, match ratings (e.g., generally similar to search engine rankings) may be used to select the best view to use from among the candidate results. Additionally, the multiple match results handler 180 may choose to use the best match found, but may also maintain a list of candidate views and provide a GUI element that allows the user to toggle the display to utilize one of the other candidate views found.
[0175] Fallback handler 181 may ensure fallback to a parent item type. For example, an item type may be created through an inheritance process based on other item types and a set of modifications. If no results (or "good" results, or high-quality matches, or high-scoring matches) are found for a given item and item type, fallback handler 181 may instruct a re-run of the matching process using the same item data values (if relevant), but using the item type that is the parent of the current item type. For example, a "shirt" item type may be derived from a parent item type "product." If no matching view (or high-scoring matching view) is found for an item of type "shirt," the matching process may be automatically repeated, this time using the parent item type "product" rather than the item type "shirt."
[0176] Dynamic View Building
[0177] 14, a schematic block diagram of WBS 100 is illustrated, illustrating in particular dynamic view construction, according to some exemplary embodiments of the present invention. WBS 100 may include a dynamic view constructor 182, which may dynamically generate one or more views "on the fly" to display item fields when necessary or preferred, instead of or in addition to searching a pool of existing views (e.g., when no match or only low-scoring matches are found within the existing pool of views). Instructions for automatic view construction may be predefined or provided along with field definitions.
[0178] In an exemplary embodiment, for example, dynamic view constructor 182 may implement multiple abstract, generic view templates that simply divide the display area into regions. These templates are implemented using the in-view region divider 182A module or submodules. Each item type may specify which of these generic templates to use. Each field may specify, for example, the region in which the field should be placed and an alignment code indicating where the field should be added (e.g., top left, bottom center), as well as how the field may relate to previous fields in the same region (e.g., join after previous field; new line; same way, below but aligned to the left). Fields may also specify anchors or other layout rules for dynamic layout types (e.g., a rule specifying that two particular fields should be aligned horizontally). Dynamic view constructor 182 may therefore automatically create an appropriate view for each item type based on given instructions and rules. This may be particularly useful for the automated creation of data entry forms, update forms, and / or other forms.
[0179] Integrated view lookup / dynamic construction
[0180] As described above, WBS100 may locate views (using pre-association or search) or may dynamically create views. Furthermore, WBS100 may also integrate the two approaches by using the dynamic view construction techniques described above (e.g., landing zones) to locate a base view and then expanding (if necessary) or otherwise modifying (via located view modification module 182B). This may be implemented using searcher / constructor module 183 and may be particularly useful for items that have a relatively fixed base format (and set of fields) to which additional fields are also dynamically added (e.g., an RSS feed with optional fields).
[0181] View Selection and Polymorphic Display
[0182] 15, a schematic block diagram of WBS 100 is illustrated, illustrating, among other things, view selection and polymorphic display, according to some exemplary embodiments of the present invention. In some cases, multiple views (e.g., views 155A, 155B, and 155C) may be available for viewing the same item. This may occur, for example, because a designer pre-associates multiple views with the same item (or item type), or because a view selection query results in multiple matching views. The set of possible matching views may be known in advance (e.g., if the views were pre-associated with the item) or may be dynamically determined (e.g., for views located using a matching query).
[0183] In such cases, WBS100 may provide the designer with one or more options, such as (a) utilizing a view priority manager 184A to attach priority values to various views (assuming those views are known in advance) and have WBS100 select the view with the highest priority value; (b) using a hook / callback manager 184B to define hooks or callbacks to the application, thereby allowing the application to select the correct view to use; and (c) using an end user selection UI generator 184C to present multiple view options to the end user and allow the end user to select the view to be used for a given item (e.g., using a default view and including a "change view" drop-down menu or combo box widget in the display).
[0184] In a first illustrative example, view selection persistence enforcer 184D can ensure that view selections are persistent. For example, item displays typically allow end users to navigate through displayed items in a collection (e.g., navigate to the previous or next item). Display items may have different views used to display the displayed items. View selection persistence enforcer 184 may allow a designer to specify that the selection of a view for displaying a given item type is persistent. Thus, if an end user navigates through items in a collection and returns to the same item type, the same view (among multiple possible views) may be used unless there is a specific reason not to reuse it (such as the association of a separate, distinct view for the viewed item).
[0185] In a second illustrative example, the polymorphic display generator 185 may enable polymorphic displays. For example, an end user may influence the selection of a view by changing the primary display type (e.g., multi-page container type) used by the LC to display items. A designer may allow an end user to decide whether to view a given list in "list mode" (displaying one or two rows of information per item) or in "page mode" (displaying a full page of information from a given item). Similarly, a designer may allow an end user to switch the LC display between a grid-style gallery (displaying items arranged in a grid) and a slider-style gallery (displaying items in a slideshow-like arrangement). The selection of the LC display mode may similarly affect the view selected for display. The polymorphic display generator 185 may be used to ensure that a user can switch between multiple views (or LC displays) that the designer has pre-specified for this purpose.
[0186] Stage 2: Create an embedded view based on the view and item fields
[0187] 16, a schematic block diagram of WBS 100 is illustrated, illustrating, among other things, the creation of embedded views, according to some exemplary embodiments of the present invention. WBS 100 may include an embedded view creator 186 that creates embedded versions of matched views or dynamically constructed views. It should be apparent that embedded views may be instances of view entities and are dynamically constructed based on data provided by items.
[0188] First, the embedded view creator 186 may utilize the view-to-field matching module 186A or a subordinate module to map each data component in a view to a matching field of the item type (and underlying items). This may be done using one or more of: (a) an explicit pre-association by the designer; (b) a common name used in the view component and the item field; (c) a special association ID; (d) a query via matching keywords assigned to the view component and the item field; or (e) a query defined on the data component that searches pre-specified attributes of the matching item's fields. If the data component does not exist (e.g., title text), such matching may not be necessary.
[0189] The missing field handler 187 may handle missing fields. A missing field is a field in the view where a matching item field (whose content should be filled in) was not found. For example, if a matching field is not found, the missing field handler 187 may display appropriate text or an image in the location of the view component (provided by the data component itself or by the WBS 100). This can occur during design or during runtime (e.g., when an item is provided by an RSS feed and some required fields are missing). Optionally, a subtle or unobtrusive warning message may be provided, displayed, or logged. The actual display message shown may depend on the URL used in the call or user login, allowing the designer to receive a more comprehensive message, for example.
[0190] If the component has an anchor or other DL-related association, missing field handler 187 may not delete the component, but rather may resize it to a size of zero using component resize module 187A. If the component does not have an anchor or other DL-related association, missing field handler 187 may delete the component along with any layout-related spacers attached to it, so that no extra space is left behind that would be added if the field were present.
[0191] Second, embedded view creator 186 may utilize component value calculator 186B to determine the values of all computed components, including values computed based on field values, particularly those embedded in data components. Third, embedded view creator 186 may determine whether conditional components should be included, e.g., a view may include conditional components whose inclusion depends on one or more conditions.
[0192] Phase 3: Applying the dynamic layout to the embedded view
[0193] 17, a schematic block diagram of the WBS 100 illustrating dynamic layout and adjustment of embedded views is illustrated, according to some exemplary embodiments of the present invention. For example, the DLM 101 may apply DL processing to the full page (or mini-page) containing the LC based on the embedded view. This DL processing may be performed in conjunction with determining the best display size to use for the embedded view.
[0194] The DL process may take into account specified DL rules 101A and / or DL anchors 101B, which may be derived from (a) underlying items, including LCs; (b) fixed DL information contained in the view definition; or (c) conditional DL information contained in the view definition that is applicable depending on specified view conditions.
[0195] DL processing may affect the entire page containing the LC. For example, if the LC is used to view a new item where a given text field is larger than the currently displayed item, the DLM 101 may increase or grow the size of the entire displayed mini-page (including the view), thereby increasing the LC, and may also cause the component to be moved or relocated within the page in which it is contained.
[0196] The DLM 101 may apply animation and transition effects so that changes resulting from switching items (and possibly views) in the LC may be presented through smooth, animated changes rather than abrupt changes.
[0197] Determining and adjusting the display size of a view
[0198] The display area required by a particular embedded view instance may vary and may be determined and / or adjusted (e.g., modified) by view display size adjuster 188 because data components (e.g., text, images) within a view may contain different amounts of data for different instances of the view. Views are typically displayed using dimensions defined for the view in WBS 100. However, in some cases, the dimensions may be optimized for a particular screen, browser, or device configuration. In such cases, view display size adjuster 188 may adjust the area allocated to the view to take into account the particular embedded view data.
[0199] For example, changing the width of a view may affect the height of the view: in particular, a text display component that needs to fit into a smaller area (horizontally) may grow vertically to display the same amount of text (e.g., broken down into more lines).
[0200] The view display sizer 188 may optimize the display view for the most aesthetically pleasing result. For example, the view display sizer 188 attempts to find the best dimensions for the view (and resulting layout) to achieve or optimize one or more (possibly conflicting) targets, such as: (a) matching the aspect ratio of the display view as closely as possible to the application's browser display window; (b) minimizing the amount of scrolling required to see the entire view (e.g., if the view expands vertically downward and requires scrolling); and (c) adhering to all DL rules and anchors specified for the view.
[0201] In an exemplary embodiment, the view display size adjuster 188 may perform operations such as: (a) taking the original view instance width; (b) utilizing the target width generator 188A to create a set of possible target widths, starting from the original width down to a predefined value parameter (e.g., 100 pixels), thereby creating a set of possible "target widths" (e.g., target widths calculated by limiting the set dimensions by a minimum difference between dimensions); (c) performing DL calculations on the view instance for each of the target widths and obtaining the resulting height for each of the target widths; (d) using the target width selector 188B module or a subordinate module to find and select the resulting set of heights and widths that closest matches the aspect ratio of the enclosing page display window but does not exceed the available screen height; (e) for each one of the target widths, if the height exceeds the available screen height, selecting the target width with the smallest height.
[0202] View Modifications and Derived Views
[0203] A view modification module 189 may allow a designer to modify a view by adding, removing, and / or modifying displayed components. The system may allow the designer to apply modifications "in-place" (e.g., affecting the actual view and all items that use it) or to create derived (inherited) views from the edited (modified) view.
[0204] A derived view may be thought of as an inheritance-based variation of a parent view. For example, a "shirt" view is a derived child of a "product" view, but may have an additional "color" attribute / field. If a view is associated with a given item type (or types), creating a derived view may similarly create a modified item type (or types), and the modified item type (or types) may be used to create items in the associated collection or other collections.
[0205] According to the present invention, WBS100 may use a given view if it is relevant to an item, or if it cannot use the given view, WBS100 may invoke parent view searcher 190 to walk up the inheritance tree (or inheritance chain) and use a higher-level view to display the given item. In some embodiments, if a matching view is not found, WBS100 may walk up the item type inheritance tree (e.g., using fallback handler 181), while in other embodiments, if a matching view is not found, WBS100 may walk up the view inheritance tree (e.g., using parent view searcher 190). In other embodiments, a combination of both methods may be used, along with a mechanism for determining on the fly which matching method is preferred or which match result is preferred and should be used.
[0206] The created (modified) view is available to other items as well. When creating or modifying a derived view, the derived view may be applied to (or pre-associated with) an existing item or item type.
[0207] WBS100 may also provide the reverse option, allowing a designer to create a derived type and have WBS100 automatically invoke the derived view generator 191 to automatically create a matching derived view as well, e.g., creating a derived view based on a derived type (rather than creating a derived type based on a derived view).
[0208] Designers may create new components based on single-component templates. The view creator may also include such single-component templates along with the created views, and such component templates may be suggested to designers who wish to modify the templates.
[0209] Component Landing Zone
[0210] Referring to FIG. 18 , a schematic block diagram of WBS 100 illustrating landing zone placement and modification, according to some exemplary embodiments of the present invention, is illustrated. WBS 100 may support landing zones, such that new components added to a view can be automatically or semi-automatically placed within the view by landing zone placement module 192. A view designer may define multiple landing zones within a view template. For example, components may be arranged in multiple columns, with landing zones created at the bottom of each column, or alternatively, components may be arranged in a particular container hierarchy, with landing zones defined at the bottom of some (but not all) of the containers. The designer of the original view may use landing zone editor 193 to explicitly specify landing zones, assign names to defined “landing zones,” and specify various landing zone attributes. When a new component is added to a view, a list (e.g., a drop-down list) of landing zone names is presented, and the designer may select a target area for the new component.
[0211] Landing zones may include designer-specific attributes that define rules for finding matching component templates. For example, if a designer specifies that a new component will be added to a wide column, the system may recommend a component template for a wide format. This effect can work both ways, so landing zone selection may influence the recommended component template and vice versa.
[0212] Optionally, landing zone generator 194 can automatically generate landing zones, for example: (a) at the end of each container or minipage; (b) at the end of a container with a given type or attribute; (c) following the most recent field addition; (d) at a location with at least a given amount of empty screen space; or (e) within a newly created page or minipage (e.g., by adding a component to an additional page of a multi-page container). As components are added to a view (using landing zones or otherwise), the view's layout is recalculated through the use of dynamic layout.
[0213] Applying Derived Views
[0214] Referring to FIG. 19, a schematic block diagram of WBS 100 is illustrated, illustrating in particular the modification of a view, according to some exemplary embodiments of the present invention. When modifying a view, WBS 100 may create a derived view that inherits from the existing view being modified. An existing view may be associated with multiple item types (potentially used by multiple items in multiple collections) and may also be directly associated with multiple items in multiple collections. In such cases, WBS 100 may invoke a "bulk search and reassociation" module 195 to perform mass (or bulk, or batch) reassociation of types and / or items.
[0215] For example, the "Bulk Search and Reassociation" module 195 may examine all types and / or items directly or indirectly associated with an existing view and reassociate those types and / or items with the derived view. Reassociation criteria may include conditions such as (a) conditions based on the content of item fields; (b) conditions based on the existence of item fields; (c) conditions based on type / item attributes; and (d) combinations of the above criteria. Optionally, manual confirmation may be requested from the designer (e.g., on a type-by-type or item-by-item basis) as to which types / items should be reassociated.
[0216] In one illustrative example, when creating a "Shirt" item type derived from the "Product" item type, a designer may specify that the product collection be examined and that all "Product" items that have the word "Shirt" in their title and were created in the last two months be automatically converted to the "Shirt" type.
[0217] Customization and Customization Dialogs
[0218] WBS100 may include a customization module 201 that allows for the creation of customization dialogs that can be used by a designer (and potentially an end user) to customize various parameters and attributes in the displayed list application.
[0219] It will be understood that customization module 201 may include, be associated with, utilize, or implement various features and / or techniques and / or sub-modules and / or processes, as described, for example, in U.S. Patent Application Publication No. 2010 / 012939-PC, filed on the same date herewith (March 13, 2014), entitled "A System and Method for Dialog Customization," which is incorporated herein by reference in its entirety.
[0220] Such customization may be applied to website elements, including views, items, and view / item combinations (e.g., a given item may be customized in a certain way, but only when displayed in a given view). This customization may also be applied to third-party applications included in the created website. Customization options may be available to the designer, or perhaps even to downstream users of the application with certain design / modification privileges.
[0221] Customizations may affect not only the attributes and elements of a particular item or participating view, but also other objects related to them (e.g., related through inclusion or inheritance). Customizations may include customizations such as (a) whether the system displays a given component (yes or no); (b) fixed content (e.g., title text); (c) display attributes of a particular component (e.g., font, size, color); (d) screen distance (e.g., the distance between a dish name and its description); (e) counts (e.g., the number of columns in a multi-column display); (f) general parameters (which are passed to components / elements that handle the display); and / or other appropriate customizations.
[0222] WBS 100 supports customization through the use of generated dialogs that contain the attributes that are the subject of customization. Such dialogs are generated using Customization Dialog Builder 201A, displayed to the user (and allow for user interaction) using Customization Dialog Display 201B, and applied to affected elements using Customization Dialog Result Applicator 201C.
[0223] In many cases, a single customization value should affect multiple elements. For example, the same color adjustment should be applied to multiple components within a display view that need to remain harmonious, or the distance between the right edge of a view and two separate components may be adjusted but must remain the same for both components. Furthermore, customization may affect, for example, a specific display view, all display views (of a given type, or of all types), all instances of a given view or view within a given range (even if not currently displayed), or a specific view instance as explicitly selected by the designer.
[0224] The effect of a customization may not be the same on all affected objects. For example, components A and B may need to maintain a particular layout, such that the distance from the top of the view to component B is twice the distance from the top of the view to component A. In such cases, customizations may be applied individually (using object-specific formulas) as needed.
[0225] An example customization dialog is shown in Figure 23A. In this example, a restaurant listing application (LA) displays items from three collections (menus, sections, and dishes) hierarchically within a single LC. The system generates the customization dialog shown, which includes customizations for "Section Image Height," "Show Section Images," "Show Section Separators," "Show Dish Descriptions," "Show Dish Prices," and "Item Spacing." Values entered through this dialog affect all views displayed in the current LC.
[0226] Continuing with this example, Figure 27 illustrates how changing the customization value "Item Spacing" (A) from 15 pixels (shown in Figure 23A) to 123 pixels increases the spacing (B) between multiple instances of the "Cooking" view.
[0227] Generated dialogs may be pre-specified or automatically generated. Generated dialogs may be standalone UI elements or integrated with the rest of the WBS100 UI. Generated dialogs may also be displayed automatically or require explicit invocation by the designer.
[0228] Specific item conformance
[0229] WBS 100 may include a specific item adaptation module 196 that creates adaptations for specific items, for example, by adding (e.g., by drag and drop) specific components to a displayed item at the item level and in the context of a particular view. This may be used, for example, to add "decoration" elements to a particular item, or to add as much additional information as is available to a particular item without having to create a separate item type and view.
[0230] For example, WBS100 may utilize local transformation creator 196A to automatically create a local transformation of a view, or an "internal" derived view. The adaptation may be stored within this local transformation of the derived view as a "layer" of modifications to the existing view. WBS100 may store this derived view at the site level, page level, or LC level, along with the ID of the item to which the adaptation applies. The adaptation may be stored with the same list application whose instances are used at the site. The same LC or page may store multiple adaptations for multiple items. WBS100 applies the adaptation whenever an item is displayed in a particular LC using a particular view.
[0231] In some embodiments, the specific item matching module 196 may optionally provide the ability to apply the same matching to other items in the same LC that use the same view, or to other views.
[0232] If adaptation is stored at the site level, it applies to instances of the same item displayed in the same view in different LCs (or repeater components). Adaptation is different from item customization. Note that, for example, adaptation involves adding additional elements and components to an existing item, while customization involves changing the parameters and attributes of one of the items (or views) based on pre-defined possible customizations. Note that customization may include "show or don't show component X," which can make the customization appear like adding a new component.
[0233] Filter and Search Boxes
[0234] Optionally, the search box creator 197 can allow a designer to specify that a given LC display a subset of items of the associated collection selected according to given search criteria (e.g., a given query or other filter applied to a field). The designer can further specify that such a search box be displayed to an end user when viewing the LC, thereby allowing the end user to selectively filter or search the displayed content. An example of such a search box is shown in FIG. 26.
[0235] LC connection
[0236] Referring to FIG. 20 , a schematic block diagram of the WBS 100 is illustrated, particularly illustrating link management of LCs, according to some exemplary embodiments of the present invention. For example, the LC link manager 198 may enable LCs present on the same page or template to be linked (or linked to each other) in one or more suitable ways. Linked LCs may exist in different containers (or container levels) within the page. These links may form a network, such that a particular LC may be linked to multiple other LCs. The LC link manager 198 may support various types of LC linkages, such as relationship list linkages, aggregator field linkages, tag cloud linkages, item tree linkages, and / or form display linkages.
[0237] Relationship list linkages may be managed or handled by a relationship list linkage manager 198A, in which a first LC "A" displays a "master item" collection (e.g., a list of hotels) while a second LC "B" displays a "dependent item" collection (e.g., guest reviews for each hotel). Pre-specified fields of the current item in LC "A" may be used to query the collection displayed in LC "B" to select dependent items. LC "B" simply displays selected items that match the current item in LC "A." The designer may define additional filtering and / or sorting criteria for querying the dependent item collection (e.g., selecting only the first K reviews, selecting only reviews containing a particular rating range). This may be implemented in any suitable manner, including using a full query language (e.g., SQL). One "master item" LC may be linked to multiple relationship list LCs, e.g., adding relationship list displays of the top 10 and / or bottom 10 reviews. This may be achieved using a Repeater component included in the View rather than a separate Relationship LC.
[0238] Aggregator field linkages may be managed or handled by the Aggregator Field Linkage Manager 198B and may be appropriate when relationship list linkages are defined. The designer may add calculated fields to the display on the master item LC "A" that display the value of an aggregation function applied to a particular field of the items in the dependent list. Such aggregation functions may include, for example, count, sum, average, median, minimum, maximum, or other suitable functions.
[0239] The tag cloud linkage may be managed or handled by a tag cloud linkage manager 198C, which may link the tag cloud LC to the regular LC, with both LCs associated with the same collection. The tag cloud LC may be automatically populated with tags derived from existing items in the associated list (or a portion of the list based on filtering criteria). A user may multiple-select multiple tags from the tag cloud LC. The selected tags may be used to form a query, which may act as a filter to determine which items are shown in the second LC "B." This may be a private case of a "relationship query LC" (a relationship LC used only to make queries).
[0240] Item tree linking may be managed or handled by item tree linking manager 198D, in which the LC may display a sub-hierarchy of items (e.g., an item tree), such as an organizational chart or a family tree. The hierarchy may be defined through the presence of pointer fields in the items, e.g., a pointer to a parent item, a set of linked pointers to sibling items. Besides using a tree-like structure to display mini-pages (each containing a view used to view one item), the structure may be similar to other carousel-type LCs (which also display multiple items).
[0241] Form-view binding, which may be managed or handled by the form-view binding manager 198E, may involve a LC[a] requesting that a given item [b] be opened in a given secondary LC[c] using either an automatically selected view or a specific view [d]. This can be used, for example, to display an alternative version of the item currently displayed in LC[a], such as a detailed version of the same item using a more detailed view, or to display an alternative presentation of the same information (e.g., displaying a location on a pop-up map instead of a text address). Similarly, this method may be used to display an "Add Item" form for creating a new item, or an "Update Item" or "Delete Item" form.
[0242] App Store Integration
[0243] 21 , a schematic block diagram of WBS 100 is illustrated, particularly illustrating app store integration, according to some exemplary embodiments of the present invention. WBS 100 may include or be associated with an application store (“app store”) 199, which may be operated or managed via an app store manager module 199A. For illustrative purposes, an external app store 199 is shown, but it should be apparent that app store 199 may optionally include one or more application stores, which may be operated by a WBS vendor or a third party and may be internal or external to WBS 100. Developers at any level (e.g., legitimate site developers or independent third-party developers) may include one or more objects in app store 199 (e.g., depending on the developer's permission) for purchase and / or download by other users. Such objects can include list applications; views; templates (at all levels); item types; collections (e.g., selling access to a collection rather than the collection itself); components (e.g., specific LCs with complete associations); etc.
[0244] Developers may also define or add icons, marketing materials, prices, search keywords, and various attributes to objects provided in the app store 199. Provided objects may contain encapsulated versions of other objects that they require; for example, a view object may contain multiple item-type objects that may be required for the operation of the view object.
[0245] The provided objects may optionally reference objects that are not included; for example, a list application may rely on a particular view that is not included with the list application, and such a view may be provided by including a website. WBS100 may utilize a missing reference handler 117 to resolve such missing references upon including the object by one or more suitable methods, such as (a) automatic resolution by name and type of the missing reference; (b) prompting the designer to provide an explicit resolution; or (c) creating a "draft version" of the missing reference object based on available information (type, name, attribute values) and marking it for subsequent completion by the designer before publication. Missing reference handler 117 may perform a search of likely candidates (e.g., based on similar names, similar properties, specific search attributes) and provide the designer with a ranked list of possible matches.
[0246] For example, discussions herein utilizing terms such as "processing," "calculating," "calculating," "determining," "establishing," "analyzing," "checking," and the like may refer to operations and / or processing of a computer, computing platform, computing system, or other electronic computing device that manipulates and / or transforms data represented in physical quantities (e.g., electronic quantities) in the computer's registers and / or memory into other data also represented in physical quantities in the computer's registers and / or memory or in other information storage media that may store instructions for performing the operations and / or processing.
[0247] Some embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment containing both hardware and software elements. Some embodiments of the present invention may be implemented in software, firmware, resident software, microcode, an application that can be downloaded and / or installed by a user, an application that can be run in a browser, a client-side application, a server-side application, a client-server application, etc. Some embodiments of the present invention may take the form of a computer program product, a computer-usable or computer-readable medium accessible by a computer or any instruction execution system, that provides program code for use by or in connection with a computer or any instruction execution system. For example, a computer-usable or computer-readable medium may be or include any apparatus capable of containing, storing, communicating, propagating, or transferring a program for use by or in connection with an instruction execution system or device. Some embodiments of the present invention may be implemented, for example, using a machine-readable medium or article capable of storing instructions or sets of instructions that, when executed by a machine, cause the machine (e.g., a computer or electronic device) to perform the methods and / or operations described herein.
[0248] Some embodiments of the present invention may include or utilize, for example, processors, central processing units (CPUs), digital signal processors (DSPs), controllers, integrated circuits (ICs), memory units, storage units, input units, output units, wired and / or wireless communication units, operating systems, and other suitable hardware components and / or software modules.
[0249] Some embodiments may be implemented as or using an application or "app" for a smartphone or tablet or portable computing device, which may be downloaded and / or installed onto such an electronic device from an "app store" or online marketplace for applications.
[0250] Any features, operations, components, and / or features described herein with reference to one or more embodiments of the invention may be combined with or utilized in combination with one or more other features, operations, components, and / or features described herein with reference to one or more other embodiments of the invention.
[0251] While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will occur to those skilled in the art. Accordingly, it is intended that the claims cover all such modifications, substitutions, changes, and equivalents.
[0252] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority from U.S. Provisional Application No. 61 / 781,866, filed March 14, 2013, which is incorporated herein by reference in its entirety.
Claims
1. a pool of item types; a pool of content items to be displayed on a website to be constructed, the content items having one of the item types; a set of available views for displaying the content item on the website; an inheritance support manager capable of supporting inheritance relationships between entities of a given entity type, the entity type being at least one of an item type and a view; A website building system (WBS) having:
2. The WBS of claim 1 , wherein the inheritance support manager creates derived item types that inherit characteristics from existing item types.
3. The WBS of claim 1 , wherein the inheritance support manager automatically creates derived item types based on derived views.
4. 10. The WBS of claim 1, further comprising a parent searcher that searches upward in a type inheritance tree to identify views that match parent types of a given item type.
5. 3. The WBS of claim 2, wherein data fields of a descendant type are copied from data fields of a parent type.
6. 6. The WBS of claim 5, wherein the data fields of the derived item type are modified after copying from the data fields of the parent type.
7. 7. The WBS of claim 6, wherein the inheritance support manager performs modifications to the derived item type, the modifications being at least one of adding new data fields, deleting copied data fields, and changing properties of copied data fields.
8. 2. The WBS of claim 1, wherein the inheritance support manager supports at least one inheritance type or combination of inheritance types, the inheritance types being at least one of (a) regular inheritance, (b) multi-level inheritance, (c) multiple inheritance, and (d) diamond inheritance.
9. 1. A computerized method for building a website, comprising: storing a pool of item types; storing a pool of content items to be displayed on a website to be constructed, the content item type being one of the item types; storing a set of available views for displaying the content item on the website; Supporting inheritance relationships between entities of a given entity type, where the entity type is at least one of an item type and a view; 1. A computerized method comprising:
10. 10. The computerized method of claim 9, wherein said supporting includes creating derived item types that inherit features from existing item types.
11. 10. The computerized method of claim 9, wherein said supporting automatically creates derived item types based on derived views.
12. 10. The computerized method of claim 9, further comprising searching upward in a type inheritance tree to identify views that match parent types of a given item type.
13. 10. The computerized method of claim 9, wherein said supporting includes copying data fields of a parent type to data fields of a derived item type.
14. 12. The computerized method of claim 11, wherein said supporting includes modifying data fields of a derived item type after copying from data fields of a parent type.
15. 15. The computerized method of claim 14, wherein the supporting includes performing modifications to the derived item type, the modifications being at least one of adding new data fields, deleting copied data fields, and changing the properties of copied data fields.
16. 10. The computerized method of claim 9, wherein the inheritance relationship is at least one of (a) regular inheritance, (b) multi-level inheritance, (c) multiple inheritance, and (d) diamond inheritance.
Citation Information
Patent Citations
Method, system and program for invoking content management directive (invoking content management directive)
JP2007242013A
Web-site creation support device and program
JP2010049598A
Visual treatment for user interface in content integration framework
JP2012120157A
Web site design system integrating dynamic layout and dynamic content
US20130219263A1
System and method for dialog customization
US20140282130A1