The field relates to electronic content management.
Content management systems generate electronic content for output to users for display, viewing, editing or manipulation. Content management systems can be used with a number of web applications to deliver content for education, business, government, non-profit services, or other applications. Over time, content management systems face challenges in incorporating updates to existing content. These challenges are especially problematic in education where content updates may be driven by requirements made at a federal, state or local level.
For example, changes to curriculum content often occur. These changes may result in updates having to be made to existing content stored in a content management system. Such updates may occur at a relatively high level, such as, new directives issued by a school board or other governing entity, which have to pass downstream to users of a content management system. Downstream users however often have preexisting custom configurations to their respective content. For example, one county or state education system or group of schools may have content configured for their own respective standards which is different than customized configurations carried out by other county or state education systems or schools. Updates generated upstream by a publisher or other education entity cannot be efficiently sent downstream to the different users. Conflicts between the updates and different custom configurations can block or limit propagation of updates downstream. These conflicts can occur due to different data structures or other incompatibilities that arise from the different custom configurations put in place by existing users, such as, different school systems.
Other approaches to managing data updates are limited or inapplicable to the demands of education content. For example, source code control systems and word processor application (such as, Microsoft Office “track changes” feature) require downstream customizers to review and accept changes or conflicting changes manually.
What is needed are electronic content management systems and methods that allow propagation of updates to heterogenous downstream content users.
Computer-implemented methods, systems and computer-readable storage medium are provided for improved online customization and authoring of content.
In an embodiment, a computer-implemented system for electronically propagating content to downstream users is provided. The system includes a content management system and a content authoring tool. The content management system is configured to manage storage of collections of content blocks. Each collection includes multiple layers of content blocks including at least one authoring layer customizable by one or more authors. The content authoring tool is coupled to the content management system and configured to manage customization of content by authors in the stored collections of content blocks.
In another feature, the content authoring tool is configured to communicate over a network through a web application with a browser at a remote computing device. The content management system updates the stored collection in accordance with the modifications performed through the content authoring tool.
In a further feature, the content authoring tool is configured to enable an author at the remote computing device to perform one or more modifications to a collection to add, remove, hide, or edit content blocks in the at least one authoring layer.
In another feature, for each content block to be added to an authoring layer of a collection, the content authoring tool calculates a rank for each added content block relative to other surrounding content blocks in the collection, and generates predecessor ID and successor ID information for respective predecessor and successor content blocks surrounding the added content block in the same authoring layer.
Further embodiments, features, and advantages of the invention, as well as the structure and operation of the various embodiments of the invention are described in detail below with reference to accompanying drawings.
Embodiments are described with reference to the accompanying drawings. In the drawings, like reference numbers may indicate identical or functionally similar elements. The drawing in which an element first appears is generally indicated by the left-most digit in the corresponding reference number.
Embodiments of the present invention provide electronic content management of content accessed through an application. An application may be a web application accessed through a browser on a computing device or a downloadable application implemented on a computing device. In embodiments, computer-implemented systems and methods perform recursive edits to content in a content management system, while allowing upstream edits to automatically flowthrough to downstream customizations. In this way, an electronic management system allows multiple stakeholders in a content management and publishing chain to automatically customize content, update content, and receive updates without human review.
Embodiments refer to illustrations described herein with reference to particular applications. It should be understood that the invention is not limited to the embodiments. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the embodiments would be of significant utility.
In the detailed description of embodiments herein, references to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Multi-Layer Authoring of Content Blocks
In an embodiment, a content management system stores digital data which may include, but is not limited to, digital media or other digital representations of physical media. Content is made up of blocks of rich text, images, videos, documents, hyperlinks, and linked or other embedded content from the content management system. Blocks can be added, deleted, edited, and hidden.
A content authoring tool is used to author content in layers of a collection of content blocks. A primary or base version (also referred to as a base layer or base level) is authored for a collection. The collection is customizable at one or more second or other successive levels (also referred to as authoring layers or levels) by authors adding new blocks in-between existing blocks at a successive layer—whether the surrounding blocks came from the base version or a second or more level. Authors can also hide blocks from the lower level.
[Level 1: Paragraph]
[Level 2: Added image]
[Level 1: Video]
[Level 1: Document]
[Level 2: Hide this Level 1 Document]
Although the authoring at this second level is distinguishable, the end result to end-users who are not authors, can be represented as a flat document without demarcation of levels such that it appears as a flattened, sequence of block content.
[Paragraph]
[Image]
[Video]
([hidden Document not displayed])
Each block is added with a calculated rank relative to the blocks surrounding it. A content block has predecessor ID and successor ID metadata to identify its flattened sequential predecessor and successor, who in turn also have similar metadata identifying theirs. When rendering a level of the document, each block is placed immediately after its known sequential predecessor. If a block has been hidden at any level, the block does not render. If when rendering, a block's predecessor is missing because it has been deleted, the block is placed directly before its recorded sequential successor. If neither a predecessor nor successor exist, the block is ordered using the rank that was calculated when it was first placed.
This content authoring tool algorithm working with a content management system is recursive enabling a situation like a curriculum author creating a national curriculum, creating a second level to localize the curriculum to a particular state, a third level managed by a customer to further customize, and even an end-user who wants to customize further for themselves or their audience, ad infinitum.
For example, automatic propagation of updates downstream may be made using a content authoring tool for a content management system in an update to instruction content made in authoring levels corresponding to a national level (U.S.A.), passed to a state level (Texas), to a city level (Austin), and then automatically incorporated in a lesson plan accessed by a teacher. A teacher may have previously created a lesson plan using existing content (a successive layer of a collection). The content management system automatically incorporates the downstream propagated updates made by authors in authoring layers using a content authoring tool into the lesson plan. When the teacher accesses the lesson plan, the updated content then appears in the lesson plan. In this way, a downstream user benefits from updates propagated from upstream sources, such as, entities at the national, state or local level who create updates for propagation by the content management system. These updates can be changes to educational curricula, standards, texts, textbooks, lesson plans or other content.
There are a number of advantages of a content authoring tool and content management system as described herein. First, the content authoring tool and content management system enables curriculum authors external and internal to manage base curricula, customize region-specific adaptations, distribute to customers who can further customize, and educators who can customize even more without much effort. This is a next-level customization algorithm and system than conventional content management systems provide.
In operation, browser 120 may communicate over network(s) 105 to platform 140 and in particular may communicate with web application 142 and content authoring tool 144. Web application 142 controls operation and data communication between online platform 140 and client computing devices 110. Content authoring tool 144 may be configured to be in communication with or a part of web application 140. Content authoring tool 144 manages authoring of collections of data including enabling customization of content in one or more layers of content blocks. Examples of customization of content include enabling different users to add or remove content blocks in rendering layers of a collection. Each collection of data includes a graph structure having a base layer and one or more successive layers of content blocks. This allows different users to add, remove or rank different content blocks in each layer. In this way, different users according to their privileges or role may customize stored collections of data and what content in a collection is rendered to end users. The operation of system 100 including content authoring tool 144 is described further below with reference to routines and examples in
For example, in step 210, a user (also called an author) of browser 120 may open web application 142 and initiate content authoring tool 144. Web application 142 may output one or more display screens or other user-interface elements to the author to allow selection of content for a collection. In response to an author's input at browser 120, content authoring tool 144 may create identifying information for the collection. The identifying information may include a collection name and graph structure information identifying a base layer and one or more successive layers of content blocks. Other metadata may be included to define properties of the content blocks in the base layer and other successive layers. The metadata for each content block includes data fields, such as, block ID, layer ID, and one or more customization control fields. Block ID may be text or numeric information identifying the block. Layer ID may be text or numeric information identifying the layer. The customization control fields can include one or more fields having data to control rendering of a content block, such as, add, remove, predecessor ID, successor ID, and/or rank. Add or remove data controls whether a content block is added or removed during rendering. Predecessor ID and successor ID identify respectively a predecessor block and a successor block, and control whether a content block is rendered after the predecessor block or the successor block. Content in a content block may be one or more of text, image, audio, video or other type of content. In one application content suitable for instruction in schools, universities, business, government or other settings is used.
Once an author has created a collection, content authoring tool 144 communicates with CMS 150 to instruct CMS 150 to store the created collection in database 160 (step 220). The stored collection may include the identifying information and metadata for the collection described above as well as the content blocks. The stored collection in database 160 may be stored in computer-readable memory on the same machine or different machines at the same or different locations depending on the database and storage architecture used.
In step 230, content authoring tool 144 enables a user (author) to customize content blocks in one or more successive layers. Content authoring tool 144 may communicate with web application 142 to output one or more display screens or other user-interface elements to the author to allow customization of content for a collection. In particular, content authoring tool 144 may enable the author to customize content blocks in one or more successive layers of a collection. For example, an author may input commands to add or remove a content block from a layer. An author may input commands to hide or edit a content block in a layer. An author may also input a command to rank an order of a content block or to place a content block relative to a predecessor or successor content block of a layer.
In step 240, content authoring tool 144 saves or updates content blocks including metadata for the content blocks representative of the customization in step 230. In step 250, content authoring tool 144 through web application 142 renders each layer of content blocks according to the metadata representative of the customization. In this way, a collection is rendered and output for display in browser 120 on client computing device 110 with customization of content provided by one or more authors.
The operation of steps 240 and 250 is described in further detail with respect
As shown in
In step 320, content authoring tool 144 calculates and stores a predecessor ID for a content block. For example, content authoring tool 144 may store the predecessor ID for the content block in a customization control field.
In step 330, content authoring tool 144 calculates and stores a successor ID for a content block. For example, content authoring tool 144 may store the successor ID for the content block in a customization control field.
As shown in
During rendering, web application 142 evaluates customization control fields to determine which content blocks to render and what order to render or place content blocks on a display.
For example, in step 410, web application 142 reads whether a customization control field indicates to hide block. If yes hide, control proceeds to hide the respective content block and not include it in rendering of the collection on a display screen (step 412).
If no hide, web application 142 reads whether a customization control field indicates to add block (step 420). If no add, control proceeds to do nothing for the respective content block with respect to rendering (step 422). If yes add, control proceeds to evaluate stored predecessor ID or successor ID to identify predecessor and successive blocks (steps 430 and 440).
If a block is to be added, web application 142 reads whether a customization control field indicates a predecessor ID (step 430). If yes, control proceeds to render the content block after a predecessor content block identified by the predecessor ID (step 432).
If no, control proceeds to render the content block after a successor content block identified by successor ID (step 440). If yes, control proceeds to render the content block after a successor content block identified by the successor ID (step 442).
If neither a stored predecessor ID or successor ID are identified, then control proceeds to render the content block to be added according to a block sequence based on the rank value in the metadata (step 450).
The example above describes web application 142 performing rendering routine 250 including steps 410-450. In other examples, web application 142 communicating with browser 120 may perform rendering routine 250. Alternatively, browser 120 alone may communicate directly with a CMS 150 and perform routine 250.
Upstream Authoring and Automatic Propagation to Downstream Users
In one application system 100 may be used with instructional content such as that incorporated in education curricula at different national, state and lesson plans. As described above, content authoring tool 144 working with a content management system 150 may be recursive enabling a situation like a curriculum author creating a national curriculum at a base level, creating a second level to localize the curriculum to a particular state, a third level managed by a customer to further customize, and even an end-user who wants to customize further for themselves or their audience, ad infinitum.
For example, automatic propagation of updates downstream may be made for a content management system in an update to instruction content made at a national level (U.S.A.), passed to a state level (Texas), to a city level (Austin), and then automatically incorporated in a lesson plan accessed by a teacher. A teacher may have previously created a lesson plan using existing content (a fourth layer of a collection). The content management system automatically incorporates the downstream propagated updates made by authors in authoring layers using a content authoring tool into the lesson plan. When the teacher accesses the lesson plan, the updated content from other authoring layers then appears in the lesson plan. In this way, a downstream user benefits from updates propagated from upstream sources, such as, entities at the national, state or local level who create updates for propagation by the content management system. These updates can be changes to educational curricula, standards, texts, textbooks, lesson plans or other content.
System 100 may be implemented on one more computing devices. In embodiments, browser 120 can be a commercially available web browser, such as, a CHROME browser available from Google Inc., an EDGE browser (or Internet Explorer) browser available from Microsoft Inc., a SAFARI browser available from Apple Inc., or other type of browser. Client computing device 110 can be any electronic computing device that can support a browser 120. A user can enter control inputs to browser 120 through a user interface (such as a keyboard, microphone, or touchscreen) at client computing device 110. For example, client computing device 110 can include, but is not limited to, a desktop computer, laptop computer, set-top box, smart television, smart display screen, kiosk, a mobile computing device (such as a smartphone or tablet computer), or other type of computing device having at least one processor and memory. In addition to at least one processor and memory, such a computing device may include software, firmware, hardware, or a combination thereof. Software may include one or more applications and an operating system. Hardware can include, but is not limited to, a processor, memory and user interface display or other input/output device.
In one embodiment, browser 110 can be coupled to one or more computer networks 105 as part of an online service. One or more client computing devices 100 are coupled over communication links to one or more networks 105. Platform 140 including web application 142 and content authoring tool 142 may be implemented on one or more servers. The servers can be any type of data server including but not limited to a server that can execute or support web application 142 and tool 144. One or more web servers can also be coupled to the servers to support World Wide Web protocols and services. Platform 140 is also coupled over communication links to one or more networks 105. Network(s) 105 can be any data network or combination of data networks, including but not limited to, a computer or telephony network, local area computer network, medium area network or the Internet.
One or more databases 160 stores collections of data including layers of content blocks and metadata as described herein. In one example, database 260 stores content blocks that includes one or more of text content, accessibility content, text-based image definitions (e.g., scalable vector graphic (SVG)), references to external raster image assets, and references to external objects (e.g., audio files, video files, and assessment items). In one implementation, database 260 can be a relational database used with a database management system that provides JSON support. Asset object storage devices can also be used with CMS 150 on any computer-readable memory device that stores objects. This can include images, audio files, video files, etc.
In operation, an author can point or navigate browser 120 to access web application 142 and content authoring tool 144. Authentication or other permissions may be needed to control access to application 142 and tool 144. For example, application 142 can send appropriate logic and data to browser 120 to configure the rules and operation of browser 120 to include functionality to support content authoring tool 144 and rendering as described herein.
During operation, browser 120 communicating with content authoring tool 144 can work online or offline to allow a user to customize content in authoring layers as described herein. Functionality of content authoring tool 144 can also be shared between browser 110 and application 142 to distribute processing and work required between client device 100 and servers on platform 140 as would be apparent to a person skilled in the art given this description.
In one embodiment, a content authoring tool and content management system, has described herein can be used in a computer networked system as part of a live online service. A computer networked system having the content management system and application can control presentation of education content on a display of a client computing device. One or more client computing devices may be coupled over communication links to one or more networks. A content management system may also be coupled to one or more databases. Network(s) can be any data network or combination of data networks, including but not limited to, a computer or telephony network, local area computer network, medium area network or the Internet.
In one implementation, a content management system may be implemented on one or more servers running on one or more computing devices. A server can be any type of data server including, but not limited to, a server that can execute or support an application interfacing on remote client computing devices. A web server can also be coupled to a server or can be a part of server. A server in a content management system can manage and access data stored in the databases.
Aspects of embodiments for an exemplary system 100 including platform 140 and web application 142 and content authoring tool 144 may be implemented electronically using hardware, software modules, firmware, tangible computer readable or computer usable storage media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems.
Embodiments may be directed to computer products comprising software stored on any computer usable medium. Such software, when executed in one or more data processing device, causes a data processing device(s) to operate as described herein.
Embodiments of the present invention have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. The breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments.
The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
This application claims the benefit of U.S. Appl. No. 63/237,950, filed Aug. 27, 2021, incorporated in its entirety be reference herein.
Number | Date | Country | |
---|---|---|---|
63237950 | Aug 2021 | US |