Systems and methods for generating and storing metadata in a repository

CN122925510APending Publication Date: 2026-10-16VE SYST CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202610117443.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-04-02
Filing Date
2026-01-28
Publication Date
2026-10-16

Smart Images

  • Figure CN122925510A_ABST
    Figure CN122925510A_ABST
Patent Text Reader

Abstract

A method for generating and storing a metadata representation includes receiving a first rule associated with a data object, the first rule including a trigger action, a rule condition, a first rule result action associated with the rule condition being satisfied, and a second rule result action associated with the rule condition not being satisfied. The method includes generating and storing a metadata representation. The method further includes receiving a request to perform an action on the data object. The method includes selecting the metadata representation from a first repository in response to the trigger action matching the request. The method includes extracting the rule from the metadata representation. The method includes performing the action on the data object. The method includes determining that the rule condition is satisfied. The method includes performing the first rule result action in response to the rule condition being satisfied.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to systems and methods for generating metadata and storing that metadata in a repository. Background Technology

[0002] Researchers, scientists, industry participants, academics, government regulators, and other stakeholders increasingly need efficient and simple methods to generate and store metadata. Summary of the Invention

[0003] One embodiment relates to a method for generating a metadata representation and storing the metadata representation in a repository. The method includes receiving a first rule associated with a data object, the first rule including a triggering action, a rule condition, a first rule result action associated with the rule condition being met, and a second rule result action associated with the rule condition not being met. The method also includes generating a metadata representation based on the first rule. The method further includes storing the metadata representation in a repository. The method also includes receiving a request to perform an action on the data object. The action is at least one of a create action, an update action, and a delete action. The method further includes selecting a metadata representation from a first repository in response to an action matching the request from the triggering action. The method further includes extracting a rule from the metadata representation. The method further includes performing an action on the data object. The method further includes determining that the rule condition is met. The method further includes executing the first rule result action in response to the rule condition being met.

[0004] In some embodiments, the rule condition is a first rule condition, and the method further includes receiving a second rule associated with the data object, the second rule including the triggering action, the second rule condition, and a third rule result action. In some embodiments, the metadata representation is generated based on the first rule and the second rule. In some embodiments, the method further includes extracting the second rule from the metadata representation. In some embodiments, the method further includes determining that the second rule condition is satisfied. In some embodiments, the method further includes performing a third rule result action in response to the second rule condition being satisfied. In some embodiments, the action is performed on the data object after the third rule result action is performed.

[0005] In some embodiments, the rule condition is a first rule condition, the first rule including a first order, and the method further includes receiving a second rule associated with a data object, the second rule including the triggering action, the second rule condition, a third rule result action, and the second order. In some embodiments, the metadata representation is generated based on the first rule and the second rule. In some embodiments, the method further includes extracting the second rule from the metadata representation. In some embodiments, the method further includes determining that the second rule condition is satisfied. In some embodiments, the method further includes performing a third rule result action in response to the second rule condition being satisfied. In some embodiments, the first rule result action is performed before the third rule result action, based on the first order being a higher order than the second order.

[0006] In some embodiments, the method further includes outputting an empty rule to a client computing device to enable display on a user interface. In some embodiments, the user interface includes a rule representation that includes an IF statement field, a THEN statement field, and an ELSE statement field. In some embodiments, the rule condition is received via the IF statement field. In some embodiments, a first rule result action associated with the rule condition being met is received via the THEN statement field. In some embodiments, a second rule result action associated with the rule condition not being met is received via the ELSE statement field.

[0007] In some embodiments, the data object includes at least one data field. In some embodiments, in response to the selection of an IF statement field, the user interface includes an options menu that includes the at least one data field of the data object.

[0008] In some embodiments, the data object includes multiple data fields. In some embodiments, in response to the selection of an IF statement field, the user interface includes an options menu that includes the multiple data fields of the data object. In some embodiments, the method further includes a content management server determining the type of the selected data field in response to the selection of at least one of the multiple data fields. In some embodiments, in response to the selection of at least one of the multiple data fields included in the options menu, the user interface includes an expression or operator menu that includes one or more operators associated with the type of the selected data field. In some embodiments, in response to the selected data field being a string or text, the expression menu includes equal to operator, not equal to operator, AND operator, and OR operator. In some embodiments, in response to the selected data field being a number, the expression menu includes equal to operator, not equal to operator, greater than operator, greater than or equal to operator, less than operator, and less than or equal to operator.

[0009] In some embodiments, the data object is a first data object. In some embodiments, the method further includes generating a second data object that depends on the first data object and includes a metadata representation. In some embodiments, the second data object is stored in a repository.

[0010] In some embodiments, the metadata representation is a metadata definition language (MDL) that includes at least one of the following: a create command, a rebuild command, a rename command, a change command, or a remove command.

[0011] Another embodiment relates to a content management system, including a repository and a content management server. The content management server is configured to: receive a first rule associated with a data object, the first rule including a triggering action, a rule condition, a first rule result action associated with the rule condition being met, and a second rule result action associated with the rule condition not being met; generate a metadata representation based on the first rule; store the metadata representation in the repository; and receive a request to perform an action on the data object. The action is at least one of a create action, an update action, and a delete action. The content management server is further configured to: select a metadata representation from the first repository in response to an action matching the request triggered by the triggering action; extract the rule from the metadata representation; perform the action on the data object; determine that the rule condition is not met; and perform the second rule result action in response to the rule condition not being met.

[0012] In some embodiments, the rule condition is a first rule condition. In some embodiments, the content management server is further configured to receive a second rule associated with a data object, the second rule including the triggering action, the second rule condition, and a third rule result action. In some embodiments, the metadata representation is generated based on the first rule and the second rule. In some embodiments, the content management server is further configured to extract the second rule from the metadata representation; determine that the second rule condition is satisfied; and, in response to the second rule condition being satisfied, execute the third rule result action. In some embodiments, the action is performed on the data object after the third rule result action is executed.

[0013] In some embodiments, the rule condition is a first rule condition. In some embodiments, the first rule includes a first order. In some embodiments, the content management server is further configured to receive a second rule associated with a data object, the second rule including the triggering action, the second rule condition, a third rule result action, and the second order. In some embodiments, the metadata representation is generated based on the first and second rules; the second rule is extracted from the metadata representation; the second rule condition is determined to be satisfied; and in response to the second rule condition being satisfied, the third rule result action is executed. In some embodiments, the second rule result action is executed before the third rule result action, based on the first order being a higher order than the second order.

[0014] In some embodiments, the content management server is further configured to output empty rules to client computing devices to enable display on a user interface. In some embodiments, the user interface includes a rule representation that includes IF statement fields, THEN statement fields, and ELSE statement fields. In some embodiments, the rule condition is received via the IF statement field. In some embodiments, a first rule result action associated with the rule condition being met is received via the THEN statement field. In some embodiments, a second rule result action associated with the rule condition not being met is received via the ELSE statement field.

[0015] In some embodiments, the data object includes at least one data field. In some embodiments, in response to the selection of an IF statement field, the user interface includes an options menu that includes the at least one data field of the data object.

[0016] In some embodiments, the data object includes multiple data fields. In some embodiments, in response to the selection of an IF statement field, the user interface includes an options menu that includes the multiple data fields of the data object. In some embodiments, the content management server is also configured to determine the type of the selected data field in response to the selection of at least one of the multiple data fields. In some embodiments, in response to the selection of at least one of the multiple data fields included in the options menu, the user interface includes an expression or operator menu that includes one or more operators associated with the type of the selected data field. In some embodiments, in response to the selected data field being a string or text, the expression menu includes equal to operator, not equal to operator, AND operator, and OR operator. In some embodiments, in response to the selected data field being a number, the expression menu includes equal to operator, not equal to operator, greater than operator, greater than or equal to operator, less than operator, and less than or equal to operator.

[0017] In some embodiments, the data object is a first data object. In some embodiments, the content management server is also configured to generate a second data object that depends on the first data object and includes the metadata representation. In some embodiments, the second data object is stored in a repository.

[0018] In some embodiments, the metadata representation is a metadata definition language (MDL) that includes at least one of the following: a create command, a rebuild command, a rename command, a change command, or a remove command.

[0019] Another embodiment relates to a method for generating at least one metadata representation and storing the at least one metadata representation in a repository. The method includes receiving a first rule associated with a data object, the first rule including a triggering action, a first rule condition, and a first rule result action. The method also includes receiving a second rule associated with the data object, the second rule including the triggering action, a second rule condition, and a second rule result action. The method further includes generating the at least one metadata representation based on at least one of the first rule or the second rule. The method further includes storing the at least one metadata representation in a repository. The method also includes receiving a request to perform an action on the data object. The action is at least one of a create action, an update action, and a delete action. The method further includes selecting the at least one metadata representation from a first repository in response to an action matching the request from a triggering action. The method further includes extracting a first rule from the at least one metadata representation. The method further includes extracting a second rule from the at least one metadata representation. The method further includes determining that the first rule condition is satisfied. The method further includes executing a first rule result action in response to the first rule condition being satisfied. The method further includes performing the action on the data object after executing the first rule result action. The method further includes determining that the second rule condition is satisfied in response to performing the action on the data object. The method also includes the content management server executing a second rule result action in response to the second rule condition being met.

[0020] In some embodiments, the first rule result action is associated with the first rule condition being met. In some embodiments, the first rule includes a third rule result action associated with the first rule condition not being met.

[0021] In some embodiments, the method further includes outputting an empty rule to a client computing device to enable display on a user interface. In some embodiments, the user interface includes a rule representation that includes an IF statement field, a THEN statement field, and an ELSE statement field. In some embodiments, the rule condition is received via the IF statement field. In some embodiments, a first rule result action associated with the rule condition being met is received via the THEN statement field. In some embodiments, a second rule result action associated with the rule condition not being met is received via the ELSE statement field.

[0022] In some embodiments, the data object includes at least one data field. In some embodiments, in response to the selection of an IF statement field, the user interface includes an options menu that includes the at least one data field of the data object.

[0023] In some embodiments, the data object includes multiple data fields. In some embodiments, in response to the selection of an IF statement field, the user interface includes an options menu that includes the multiple data fields of the data object. In some embodiments, the method further includes a content management server determining the type of the selected data field in response to the selection of at least one of the multiple data fields. In some embodiments, in response to the selection of at least one of the multiple data fields included in the options menu, the user interface includes an expression or operator menu that includes one or more operators associated with the type of the selected data field. In some embodiments, in response to the selected data field being a string or text, the expression menu includes equal to operator, not equal to operator, AND operator, and OR operator. In some embodiments, in response to the selected data field being a number, the expression menu includes equal to operator, not equal to operator, greater than operator, greater than or equal to operator, less than operator, and less than or equal to operator.

[0024] In some embodiments, the data object is a first data object. In some embodiments, the method further includes generating a second data object that depends on the first data object and includes a metadata representation. In some embodiments, the second data object is stored in a repository.

[0025] In some embodiments, the metadata representation is a metadata definition language (MDL) that includes at least one of the following: a create command, a rebuild command, a rename command, a change command, or a remove command.

[0026] This overview is illustrative only and is not intended to be limiting in any way. Other aspects, inventive features, and advantages of the apparatus or method described herein will become apparent from the detailed description set forth herein, which is read in conjunction with the accompanying drawings, wherein like reference numerals refer to like elements. Attached Figure Description

[0027] Figure 1 The illustration shows an example high-level block diagram of an enterprise content management architecture according to an exemplary embodiment.

[0028] Figure 2 A description of a content management system having additional specific applications and interfaces connected thereto is provided according to an exemplary embodiment.

[0029] Figure 3 An example block diagram of a computing device according to an exemplary embodiment is illustrated.

[0030] Figure 4 An example high-level block diagram of a client computing device according to an exemplary embodiment is illustrated.

[0031] Figure 5 An example high-level block diagram of a content management server according to an exemplary embodiment is shown.

[0032] Figure 6 This is a flowchart of a method for generating metadata representations of rules according to an exemplary embodiment.

[0033] Figure 7 This is a flowchart of a method for executing rules extracted from metadata representation, according to an exemplary embodiment.

[0034] Figure 8 It is by Figure 1 The diagram shows the user interface of the enterprise content management architecture used to manage rule sets.

[0035] Figures 9A-9C It is by Figure 1 The diagram shows the user interface of the enterprise content management architecture, used to manage rules for rule sets.

[0036] Figure 10 It is an example metadata representation file that includes rules. Detailed Implementation

[0037] Referring to the accompanying drawings, a system and method for generating and storing metadata representations of rules are disclosed. The system and method described herein provide an improved rule enforcement system that utilizes metadata representations to store and evaluate rules at runtime. In operation, the system and method can receive rules associated with a data object and a specific CRUD action, and then generate a metadata representation based on the rule. This metadata representation can then be stored in a repository until the system and method receive a request to perform that specific action on the data object. In response, the system and method can retrieve the metadata representation and extract the rule. The rule can then be evaluated before or after the action is executed.

[0038] By leveraging metadata representation to store and retrieve rules, this system and method provide the flexibility for dynamic updates and improvements to rule execution, and represent a holistic technical improvement to rule-based systems. For example, metadata can be modified without altering the core application code. This allows rules to be updated, added, or deleted without system redeployment or downtime. In traditional systems, rules are typically hard-coded directly into the application's source code. Any changes to these rules, whether to correct errors, implement new business strategies, or optimize performance, require a full development cycle. In contrast, storing rules in metadata decouples rules from application code. The application uses a rule engine to retrieve and execute rules from the metadata store at runtime. This enables dynamic rules, where rules can be changed directly in the metadata store without application downtime. By doing so, updating rules becomes a data management task, not a software development task. In this respect, by leveraging metadata representation to store and retrieve rules, this system and method simplify the runtime rule process overall by not generating a completely new set of application code, requiring less processing power and memory.

[0039] Furthermore, by providing dynamic evaluation and execution of rules associated with triggering actions (i.e., allowing users to specify whether rules are evaluated before or after action execution), this system and method offer improved rule processing and execution, thus providing technical improvements for rule-based programming. For example, by allowing users to specify when rules are evaluated and executed, this system and method allow the system to execute actions at precise times and modify data when needed. For instance, if the action is a delete action, the user can specify a rule to be executed before the delete action, where a portion of the data object is stored for subsequent evaluation or use in other systems. In contrast, if the action is an update action, the user can specify a rule to be executed after the update action, which sends a notification indicating that a specific data object or its fields have been updated. Therefore, by providing dynamic rule execution, this system and method provide rules that are executed when needed, thus providing greater precision, efficiency, flexibility, and control for rule-based programming. For example, by executing rules only when triggered by a specific action, the system avoids unnecessary rule evaluations. This leads to more efficient resource utilization and better performance.

[0040] Furthermore, by providing point-and-click generation of IF / THEN / ELSE statements to generate rules, and by utilizing an option menu generated based on input values, this system and method transform a complex experience that typically requires a certain level of expertise (e.g., programming) into a rule generation system that requires minimal skill, thereby reducing errors and providing improved rule generation. For example, because the menu generated by the system and method described herein includes fields corresponding to the data objects associated with the rules, users can better identify and access the fields they might want to use when generating rules, thus reducing errors in the rule building process and saving processing power and memory by reducing the number of iterations in rule development. Similarly, by displaying operators corresponding to field types (e.g., numbers, strings, etc.), this system and method again reduces errors in the rule building process, thereby saving processing power and memory by requiring less validation overall (e.g., avoiding validation failure indications).

[0041] Now for reference Figure 1 The figure illustrates an enterprise content management system 100 according to an exemplary embodiment. The enterprise can be a business, organization, etc. As shown, system 100 may include a content management system 110 and multiple client computing devices 120a, 120b, ... 120n, which are interconnected via a network 150. The content management system 110 may include a content storage system 111 and a content management server 112. The content storage system 111 may have two or more content repositories, such as 111a, 111b, 111c... and 111n.

[0042] Network 150 communicatively and operably connects content management system 110 and client computing devices 120a-120n, thereby providing communicative and operable computing between content management system 110 and client computing devices 120a-120n on network 150. In various embodiments, network 150 includes any combination of a local area network (LAN), intranet, Internet, or any other suitable communication network, directly or through other interfaces.

[0043] Client computing devices 120a-120n can be any machine or system used by a user to access the content management system 110 via network 150, and can be any commercially available computing device, including laptops, desktop computers, mobile phones, smartphones, tablets, netbooks, and personal digital assistants (PDAs). Client application 121 can run from a client computing device (e.g., 120a) and access content in the content management system 110 via network 150. In some embodiments, each client computing device 120a-120n may include a network interface (not shown for communicating with the network) and processing circuitry (not shown) to process data (e.g., data records, modified data records) and / or generate requests. Client computing devices 120a-120n in Figure 4 It is shown in more detail below.

[0044] Content storage system 111 can store content accessible to client applications (e.g., 121) on client computing devices 120a-120n, and can be any commercially available storage device. Each content repository (e.g., 111a, 111b, 111c, or 111n) can store content, including data records, change data records, archived index files, etc. Data records can be stored in content repositories 111a-111n, but each tenant's data can be isolated from the data of other tenants in content storage system 111 by storing it in a separate content repository. In some embodiments, each content repository 111a-111n may include multiple supplementary repositories (see...). Figure 6 In this regard, each content repository 111a-111n can be a group or set of repositories associated with a specific customer or tenant.

[0045] Content management server 112 is typically a remote computer system accessible via a remote or local network (e.g., network 150). Content management server 112 can be any commercially available computing device. Client application (e.g., 121) processes can be active on one or more client computing devices 120a-120n. Corresponding server processes can be active on content management server 112, for reference. Figure 2One of the described front-end applications 113. The client application process and the corresponding server process can communicate with each other via network 150, thereby providing distributed functionality and allowing multiple client applications to utilize the information gathering capabilities of the content management system 110.

[0046] In some embodiments, the content management server 112 may include a rule management controller 114 that can receive, store, and manage rule sets comprising multiple rules. For example, the rule management controller may receive a rule set associated with a specific data object and a specific triggering action (e.g., create, update / modify, and delete / remove) from one of the client computing devices (e.g., 120a). The rule set may include multiple rules, and each rule may include a specific triggering action, a specific data object, a specific rule result action, and specific rule conditions, which will be discussed further herein. The rule management controller 114 may then determine at runtime whether the rule is applicable and execute the rule result action. In some embodiments, the rule management controller 114 may generate a metadata definition language (MDL) representing each specific rule in the rule set.

[0047] MDL may be similar to a Data Definition Language (DDL) in a database and provides runtime operations to create, describe (read), update, and remove (delete) components that constitute one of the content repositories 111a-n in its configuration. In this respect, MDL is a tool for programmatically manipulating data records. For example, MDL uses CRUD-like commands to manage the data records of the content management system 110. Based on MDL commands, the content management system 112 can use CREATE, RECREATE, RENAME, ALTER, and DROP commands to manage the data records of the content management system 110, which are described in detail in U.S. Patent Application No. 15 / 228,968 and U.S. Patent No. 12,106,081, which are incorporated herein by reference in their entirety.

[0048] Furthermore, the content management server 112 may include a metadata extractor 116 that can retrieve the MDL of a representation rule (i.e., metadata representation) at runtime and generate tenant code for the representation rule. For example, the metadata extractor 116 may receive the MDL and determine the portions of the representation rule. The metadata extractor 116 can then generate tenant code for the content management server 112 to execute at runtime. Figure 10 An example of an MDL 1000 including rules is shown. In some embodiments, the change data extractor 116 can generate an MDL based on these rules. In other embodiments, the content management server 112 may include a metadata generator (not shown) that can generate an MDL based on these rules.

[0049] Although the front-end application 113, back-end system 115, rule management controller 114, and metadata extractor 116 appear to be on a single server, it should be understood that they can be implemented in multiple computing devices (e.g., each with multiple servers, each front-end application 113 with one server, each back-end system 115 with one server, rule management controller 114 with one server, etc.).

[0050] In one implementation, the content management system 110 can be a multi-tenant system, where various elements of hardware and software can be shared by one or more clients. For example, a server can handle requests from multiple clients simultaneously, and the content storage system 111 can store content from multiple clients. In a multi-tenant system, users are typically associated with specific clients. For example, a user might be an employee of one of several pharmaceutical companies that are tenants or clients of the content management system 110.

[0051] In one embodiment, the content management system 110 can run on a cloud computing platform. Users can independently access content in the cloud by using virtual machine images or by purchasing access to services maintained by a cloud database provider.

[0052] In one embodiment, the content management system 110 may be provided as Software as a Service ("SaaS") to allow users to access the content management system 110 using a thin client.

[0053] Figure 2 A description of a content storage system 111 according to an exemplary embodiment is provided, and additional specific applications and interfaces connected thereto are shown. In one embodiment, this content storage system 111 is a cloud-based or distributed network system for consolidating enterprise data, typically integrating multiple content repositories within the enterprise into a single system with coordinated control, measurement capabilities, and auditing of data creation, access, and distribution.

[0054] In one embodiment of a content storage system 111 for the life sciences industry, as shown in the figure, the content storage system 111 may include specific data sets for front-end applications 113 for the following areas and / or specific business processes: The research and development (R&D) front-end application 208 supports the aggregation of materials supporting research and initial clinical trial submissions by building an organized and controlled content repository within the content management system 110 (more specifically, the content repository 111a). Elements that can be stored, organized, and managed through this front-end application include submission bills of materials, Drug Information Association (DIA) reference model support, and submission-ready presentations. This front-end application 208 is designed to provide an interface to the content management system 110, enabling researchers, contract research organizations (CROs), and other collaborating partners to access and / or distribute content through a single controlled document system.

[0055] The clinical trial front-end application 210 supports faster and more organized access to trial documents and reports, while also enabling seamless collaboration between sponsors, CROs, trial centers, investigators, and other trial participants. Specific functionalities simplify research and trial center management and support the DIA trial master file (TMF) reference model. This front-end application accesses the content management system 110, further supporting efficient content delivery between this stage and other stages of the life sciences process, such as within the content repository 111b.

[0056] Manufacturing and Quality Application 212 enables the creation, review, approval, and distribution of controlled documents within the organization and with external partners, within the context of material control and other manufacturing elements. Application 212 provides capabilities supporting the manufacturing process, including watermarking, controlled printing, signature representation, and "read and understand" signature functionality. Documents and metadata related to this process are managed and stored in a content management system 110 (more specifically, a content repository 111c), ensuring that related documents are not distributed in violation of laws and company policies.

[0057] Medical communication application 214 provides communication with healthcare institutions, including call center access, integration, and interface functions. Specific access control functions and metadata associated with this application 214 include expiration and periodic review elements, multi-channel support, global documentation, and automated response packages generated via content management system 110. Related documentation can be stored in content repository 111d.

[0058] Marketing and sales application 216 provides an end-to-end solution for the development, approval, distribution, expiration, and withdrawal of promotional materials. Specific features include support for global content, generation of approved FDA Form 2253 (or similar international forms), online document and video annotation, and a built-in digital asset library (DAL). Similarly, communications can be conducted through content management system 110, and promotional materials can be stored in content repository 111e.

[0059] In some embodiments, backend system applications 115 are provided for managing data, forms, and other communications within the content management system 110. For example, backend system applications 115 may include a regulatory compliance engine 222 to facilitate regulatory compliance, including audit trail systems, electronic signature systems, and system traceability, to comply with government regulations such as 21 CFR Part 11, Annex 11, and GxP requirements. The regulatory compliance engine 222 may include processors for developing metadata around document and project folder access to ensure, from a regulatory compliance perspective, that only approved access is permitted. The regulatory compliance engine 222 may also include pre-verification capabilities to build controlled content that supports installation qualification (IQ) and / or operational qualification (OQ), thereby saving customers significant system verification costs.

[0060] In some embodiments, backend system 115 may include a reporting engine 224 for reporting a complete audit trail of documents, their attributes, and changes. These easy-to-browse reports show end users and management how content moves through its lifecycle over time, enabling tracking of "plan vs. reality" and identification of process bottlenecks. The reporting engine may include processors for developing and reporting lifecycle and document management reports based on project data stored in content management system 110 and access metadata associated with documents, forms, and other communications.

[0061] In some embodiments, the backend system 115 may include an administration portal 226, through which administrators can control documents, properties, users, security, workflows, and reports via a simple, click-based web interface. Customers can also quickly change and extend applications or create entirely new applications, including without writing additional software code.

[0062] In some embodiments, the backend system 115 may include a search engine 228 through which the content management system 110 can provide simple, relevant and secure search.

[0063] In some embodiments, the content management system 110 may include additional backend systems.

[0064] In providing the overall combination of front-end application 113 and back-end system 115, the various applications can also coordinate and communicate through service gateway 230, which in turn can provide communication with various web servers and / or web service APIs. Such web servers and / or web service APIs may include access to some or all of the content layer and metadata layer of the various front-end application 113 and back-end system 115, thereby enabling seamless integration between complementary systems.

[0065] In the context of the embodiments described, content in one repository (e.g., content repository 111a for R&D front-end application 208) can be reused in another repository (e.g., content repository 111d) by another front-end application (e.g., medical communication application 214).

[0066] In some embodiments, the content management system 110 can store content for other industries.

[0067] Figure 3 The illustration shows an example block diagram of a computing device 300 according to an exemplary embodiment, which can be used as... Figure 1 The client computing devices 120a-120n and content management server 112 are included. Computing device 300 is merely an example of a suitable computing environment and is not intended to imply any limitation on its use or scope of functionality. Computing device 300 may include a processing unit 301, system memory 302, input devices 303, output devices 304, a network interface 305, and a system bus 306 that interconnects these components.

[0068] Processing unit 301 may be configured to execute computer instructions stored in a computer-readable medium (e.g., system memory 302). In some embodiments, processing unit 301 may be implemented as a general-purpose processor, application-specific integrated circuit (ASIC), one or more field-programmable gate arrays (FPGAs), digital signal processors (DSPs), a set of processing components, or other suitable electronic processing components.

[0069] System memory 302 typically includes various computer-readable media, which can be any available media accessible to processing unit 301. For example, system memory 302 may include one or more storage devices (e.g., RAM, NVRAM, ROM, flash memory, hard disk storage, etc.) that store data and / or computer code used to facilitate the various processes described herein. That is, in operation and use, system memory 302 stores at least a portion of the instructions and data to be executed by processing unit 301. System memory 302 may be or include tangible, non-transient volatile memory and / or non-volatile memory.

[0070] Users can input commands and information into computing device 300 through input device 303. Input device 303 may be, for example, a keyboard, touch screen input device, touchpad, mouse, RFID scanner, sensor, microphone and / or stylus.

[0071] The computing device 300 can provide its output through an output device 304, which can be, for example, a monitor or other type of display device, an RFID scanner, a sensor, a speaker, or a printer.

[0072] Computing device 300 can operate via network interface 305 in a networked or distributed environment using logical connections to one or more other computing devices, which may be personal computers, servers, routers, network PCs, peer-to-peer devices, smartphones, or any other media consumption or transmission devices, and may include any or all of the elements described above. Logical connections may include networks (e.g., network 150) and / or buses. Network interface 305 may include program logic and / or hardware-based components for connecting computing device 300 to network 150. For example, network interface 305 may include any combination of wireless network transceivers (e.g., cellular modems, broadband modems, Bluetooth transceivers, Wi-Fi transceivers, Li-Fi transceivers, etc.) and / or wired network transceivers (e.g., Ethernet transceivers). In some embodiments, network interface 305 includes hardware and machine-readable media whose architecture supports communication via multiple data communication channels (e.g., wireless, Bluetooth, near field communication (NFC)). In some embodiments, network interface 305 includes cryptographic logic and capabilities to establish secure communication sessions.

[0073] Figure 4 An example high-level block diagram of a client computing device (e.g., 120a) according to an exemplary embodiment is illustrated. The client computing device 120a can be implemented using the computing device 300 described above, and may have a processing unit 1201, a system memory 1202, an input device 1203, an output device 1204, and a network interface 1205, which are interconnected via a system bus 1206. The system memory 1202 may store a client application 121.

[0074] Figure 5 An example high-level block diagram of a content management server 112 according to an exemplary embodiment is illustrated. The content management server 112 may be implemented using a computing device 300 and may have a processing unit 1121, system memory 1122, input device 1123, output device 1124, and network interface 1125, which are interconnected via a system bus 1126. The system memory 1122 may store a front-end application 113, a back-end system 115, an archive controller 114, and a change data extractor 116.

[0075] Now for reference Figure 6 According to an exemplary embodiment, a method 600 for generating metadata representations of at least one rule is shown. Method 600 can be derived from... Figure 1 The system executes this. More specifically, method 600 can be executed by content management server 112.

[0076] Method 600 begins at step 604, in which the content management server 112 receives a rule set containing multiple rules. In some embodiments, these rules can be accessed via a user interface (e.g., see...). Figure 8 The rule set is received from one of the client computing devices (e.g., 120a). In some embodiments, prior to step 604, the content management server 112 may receive the rule set, and then in step 604, the content management server 112 may receive the rules that identify the rule set. The rule set may be associated with specific data objects and triggering actions (e.g., create, modify / update, and / or delete / remove, see...). Figure 8 ) association. Similarly, each rule in a rule set can include a specific object, a specific triggering action, and rule conditions (see Figures 9A-9C The IF statement in 940), rule result action (see Figures 9A-9C The Then statement (942) or the else statement (944) in the text.

[0077] In some embodiments, each rule may also include a level or sorting value that defines the order in which rules in the rule set are executed. For example, a rule containing level "1" may be executed before a rule containing level "2", which in turn is executed before a rule containing level "3", and so on. In some embodiments, the rule set may contain only a maximum threshold number of rules (e.g., 5-10 rules, 5 rules, 10 rules, 20 rules, 50 rules, etc.). Therefore, if a user attempts to add more rules than the threshold number, the content management server 112 may output a notification indicating that no more rules can be added.

[0078] By providing a single rule set of up to 50 rules for specific actions and data objects, this system and method offer a runtime rule evaluation approach that enables a reliable and consistent runtime environment. For example, if a node can contain a large number of rules (e.g., 100, 1000, etc.), rule evaluation will consume significant processing power and memory, thus interfering with other system functions (e.g., modifying data records). Similarly, if a rule set can only contain a small number of data records (e.g., 10 rules, 5 rules, etc.), users can only evaluate a few rules at runtime, rendering the rules almost useless. In this regard, the 50-rule limit provides a technical improvement to rule-based systems by offering a runtime rule evaluation method that enables a reliable and consistent runtime environment.

[0079] Once the content management server 112 receives the rule set, method 600 can proceed to step 608, where the content management server 112 verifies the rule set. In some embodiments, if only a single rule is received in step 604, the content management server 112 can verify that single rule in step 608. To verify the rule set, the content management server 112 can check for errors (e.g., spelling errors, structural errors, syntax errors, etc.) in the rule conditions and the resulting actions of the rule conditions and / or execute the rule conditions and the expressions contained within them to determine if these expressions are valid. For example, a rule condition might contain the expression "response_date_c>"08 / 15 / 2024". Therefore, the content management server 112 can determine that the rule condition is invalid due to a spelling error that does not include the correct field name "response_date__c". In another example, a rule condition might contain the expression "response_date__c>"08 / 15 / 2024"&&". Therefore, content management server 112 may determine that the rule condition is invalid due to a syntax error of not having an appended statement after "&&". In another example, content management server 112 may be unable to validate the rule if it determines that the rule does not contain a rule condition result action (e.g., no value in then statement 942 and / or else statement 944).

[0080] Once the content management server 112 has validated the rules and / or rule sets, method 600 proceeds to step 612, in which the content management server 112 generates a metadata representation (e.g., a set of MDLs) for each rule in the rule set. In some embodiments, the content management server 112 may generate a single metadata representation for the rule set. To generate the metadata representation, the content management server 112 may clean and / or modify each rule in the validated rule set. For example, the content management server 112 may modify the rule value from a first format (e.g., "UpdateCurrent Record(response_date__c== "07 / 07 / 25"...)) to a second format (e.g., see...). Figure 10In another example, content management server 112 can add specific text to rules that are not displayed in the user interface (e.g., "active(true)" object('medical_inqury_v')" etc.). Therefore, in step 612, content management server 112 can generate a metadata representation for each rule, modify each rule, and add the modified rule to the metadata representation. For example, content management server 112 can parse the rule and generate a portion of the metadata representation for each part of the rule (e.g., the first part of the metadata representation ("event ('create')" for a specific triggering action), the second part of the metadata representation ("object ('medical_inqury')" for a specific object of the rule), the third part of the metadata representation ("if_then_else('If(...)" for rule conditions), the fourth part of the metadata representation ("if_then_else('... Then(...) Else(...)" for a specific rule condition result action, etc.).

[0081] Once the content management server 112 has generated a metadata representation for each rule in the rule set, method 600 proceeds to step 616, in which the content management server 112 generates a second data object associated with the first data object. This second data object can be a sub-data object of the first data object (i.e., a data object directly related to and dependent on the first data object (i.e., requiring the existence of the first object or record for the sub-object to exist)). For example, in... Figure 8 In the example shown, the first data object could be a medical consultation data object (e.g., medical_inquiry_c). Then, the second / sub-data object could be an action trigger data object (e.g., action_trigger_c), which depends on the medical consultation data object. Therefore, in step 616, the content management server 112 can generate the second data object based on the metadata representation. For example, the second data object could contain each metadata representation.

[0082] In some embodiments, the first data object may contain a sub-(second) data object for each metadata representation (e.g., each rule in a rule set). In other embodiments, the first data object may contain a sub-(second) data object for each rule set, which in turn may contain a sub-(third) data object for each metadata representation it contains (e.g., each rule in a rule set). Thus, in step 616, the content management server 112 may generate a second data object and then generate a third data object for each metadata representation. In some embodiments, the first data object may contain sub-data objects for each action type further described herein (e.g., create, update / modify, and delete / remove). In this respect, the first data object may contain a first sub-data object for the create action, a second sub-data object for the update action, and a third sub-data object for the delete action. Then, each sub-data object (first to third sub-data objects) may contain a metadata representation of the rule associated with the corresponding specific action.

[0083] Once the content management server 112 generates a second data object containing metadata representation, method 600 continues to step 620, in which the content management server 112 may store the second data object in a repository (e.g., one of content repositories 111a-n). In some embodiments, the second data object may be stored in the repository in association with the first data object (e.g., as its child data object).

[0084] Although method 600 is described for a single specific data object and a single specific action, it should be understood that method 600 can be repeated for each specific data object and each specific action further described herein. For example, content management server 112 can execute method 600 for each action (e.g., three times: once for creation, once for modification, and once for deletion) for a first data object (e.g., a medical consultation data object). In this regard, content management server 112 can receive three rule sets (one for each action), generate three sub-data objects associated with the first data object (one for each action), and store these three sub-data objects in a repository. Similarly, the same process can be repeated for each specific data object in content storage system 111.

[0085] Now for reference Figure 7According to an exemplary embodiment, a method 700 for executing rules extracted from a metadata representation is shown. While different in general, it should be understood that any steps or discussions of method 700 can be applied to or included in method 600, and vice versa, and such combinations are included within the scope of this disclosure. For example, content management server 112 can execute method 700 to receive rules and generate a metadata representation associated with a particular rule, and then execute method 700 to extract the rule from the metadata at runtime and execute the rule. Therefore, method 700 can be... Figure 1 The system executes this. More specifically, method 700 can be executed by content management server 112.

[0086] Method 700 begins at step 704, in which the content management server 112 receives a request to perform an action on a specific data object. In some embodiments, this request may be received from one of the client computing devices 120a-n. Furthermore, the action may include creating a data record based on the data object (i.e., instantiating the data object), deleting a data record as an instantiated version of the data object, and / or modifying a data record as an instantiated version of the data object. In some embodiments, additional actions may be included, such as generating a new data object based on the specific data object (e.g., a child data object, an inherited data object, etc.) and / or making specific modifications / updates to a data record as an instantiated version of the data object (e.g., a state change, setting a specific field or value to a specific field or value, etc.).

[0087] Once content management server 112 receives the request, it can proceed to step 708, where it performs the requested action. For example, in step 708, content management server 112 can create, update, or delete a data record. In some embodiments, content management server 112 can perform other actions described herein (e.g., generating a second data object, etc.). In some embodiments, step 708 and the action execution can be performed at the end of method 700 (e.g., after step 724). In other embodiments, step 708 and the action execution can be dynamically performed in method 700 based on the specific action type and / or the specific data object requested (e.g., before step 712 or after step 724). For example, if the action is a creation action, content management server 112 can perform the action (create a record) before step 712 because the data record may be needed for a rule result action further described herein. In contrast, if the action is a deletion action, content management server 112 can perform the action (delete a record) after step 724 because the data record may be needed for a rule result action further described herein. In contrast, if the action is a modification / update action, the request can specify the order in which the content management server 112 performs the action (modifies the record) (e.g., before step 712 or after step 724).

[0088] In some embodiments, the content management server 112 may receive a first rule set containing rules to be evaluated before the action is executed, and a second rule set containing rules to be evaluated after the action is executed. For example, the content management server 112 may receive a first rule containing a first rule condition and a first rule result action, and a second rule containing a second rule condition and a second rule result action. Therefore, the content management server 112 may generate a first metadata representation containing the first rule and a second metadata representation containing the second rule. Then, before executing the action, the content management server 112 may extract the first rule (based on the first rule being specified as occurring before the action) and evaluate the rule. If the first rule condition is satisfied, the content management server 112 may execute the first rule result action. After executing the action, the content management server 112 may extract the second rule from the second metadata representation and evaluate the rule. If the second rule condition is satisfied, the content management server 112 may execute the second rule result action.

[0089] By providing dynamic evaluation and execution of rules associated with triggering actions, this system and method offer improved rule processing and execution, thus providing technical improvements for rule-based programming. For example, by allowing users to specify when rules are evaluated and executed, this system and method allow the system to execute actions at precise times and modify data when needed. For instance, if the action is a delete action, the user can specify a rule to be executed before the delete action, where a portion of the data object is stored for subsequent evaluation or use in other systems. In contrast, if the action is an update action, the user can specify a rule to be executed after the update action, which sends a notification indicating that a specific data object or its fields have been updated. Therefore, by providing dynamic rule execution, this system and method provide rules that are executed when needed, thus providing greater precision, efficiency, flexibility, and control for rule-based programming. For example, by executing rules only when triggered by a specific action, the system avoids unnecessary rule evaluations. This leads to more efficient resource utilization and better performance.

[0090] Once the content management server 112 has performed the action, method 700 proceeds to step 712, in which the content management server 112 determines at least one metadata representation associated with a specific data object. For example, the content management server 112 may identify a specific data object (e.g., the first data object of method 600) in response to the request, and determine / select a second data object of method 600. In this respect, the content management server 112 may determine / select each metadata representation associated with a specific data object and a specific action of the request. For example, as described with respect to method 600, the content management server 112 may generate a sub-data object for each specific data object and each specific action. In this respect, if the specific data object is a case dataset and the specific action is removal, the content management server 112 may determine a sub-data object associated with the case dataset data object and the removal action. The content management server 112 may then select or determine the metadata representation contained in that sub-data object.

[0091] In some embodiments, in step 712, the content management server 112 may select / determine multiple metadata representations. For example, a sub-data object described herein may contain multiple data object representations (e.g., one for each rule in a rule set). Therefore, in step 712, the content management server may determine / select each metadata representation associated with a particular data object and a specific action of a request.

[0092] Once the content management server 112 has determined the metadata representation associated with a specific action of a particular data object and request, method 700 proceeds to step 716, in which the content management server 112 extracts rules from one of the metadata representations. Each rule (also referred to as an event) may include rule conditions and rule result actions. In some embodiments, the rule may be a tenant code that the content management server 112 can execute to evaluate the rule conditions and execute the rule result action. For example, the content management server 112 may extract executable tenant code from the metadata representation and then execute that tenant code at runtime. In some embodiments, the tenant code may be registered in a tenant code registry (not shown).

[0093] Rule conditions can contain expressions that include specific data fields indicating whether the rule is satisfied. For example, a rule condition can contain specific fields of a requested specific data object (e.g., response date, country, etc.) and expressions that include specific fields that can be evaluated as true or false. Figure 9B A sample rule condition is shown, containing the expression ("response_date_c>"08 / 15 / 2024"&&country_v== "USA"). Therefore, to determine whether a rule condition is met, the content management server 112 can select specific fields and evaluate them in the expression. In the example above, if the response date is greater than (i.e., later than) 8 / 15 / 2024 and the country field is USA, the rule condition is met. If the response date is earlier than 8 / 15 / 2024 or the country field is a different country, the content management server 112 can determine that the rule condition is not met.

[0094] Similarly, a rule result action can be a specific function or action taken by the content management server 112 when a rule condition is met. In this respect, a rule result action may differ from the requested action, which may be a CRUD-like command (e.g., create, update, and delete). For example, a rule result action can include a full set of functions and data modification actions, such as setting specific fields of a data record, adding specific fields to a data record, creating a new data record, generating and sending a notification to a specific user, or changing a workflow record (e.g., from a first state to a second or third state). Figure 9C The action menu 950 displays some example rule result actions.

[0095] In some embodiments, each rule may include multiple rule result actions, including a first rule result action (also known as a rule fulfillment result action) and a second rule result action (also known as a rule failure result action). The first rule result action can be executed when the content management server 112 determines that the rule condition is met (as indicated by THEN statement 942). In contrast, the second rule result action can be executed when the content management server 112 determines that the rule condition is not met (as indicated by ELSE statement 944). In some embodiments, the second rule result action may be optional. For example, some rules may contain a single rule result action (e.g., a rule result action executed when the rule condition is met), and some rules may contain two rule result actions (e.g., a rule result action executed when the rule condition is met and a rule result action executed when the rule condition is not met).

[0096] Once the content management server 112 has extracted the rules, method 700 proceeds to step 720, where the content management server 112 determines whether the rule conditions are met. For example, each rule condition may contain an expression that includes multiple data record fields. Therefore, the content management server 112 can select fields and evaluate the expression to true or false. If the expression evaluates to true, the content management server 112 can determine that the rule condition is met, and method 700 can proceed to step 724, where the content management server 112 executes a rule result action (e.g., a first rule result action). In contrast, if the expression evaluates to false, the content management server 112 can determine that the rule condition is not met, and method 700 can terminate (if the rule contains only a single rule result action), or method 700 can proceed to step 728, where the content management server 112 executes a second rule result action.

[0097] As described above, the content management server 112 may determine / select multiple metadata representations in step 712. Therefore, method 700 may perform steps 716-728 for each metadata representation. For example, in step 712, the content management server 112 may determine four metadata representations, each associated with a specific rule. Therefore, the content management server 112 may perform steps 716-728 for each metadata representation. In some embodiments, each rule may also include a rank or order. Therefore, the content management server 112 may first perform steps 716-728 for the highest-ranking rule, then the next highest-ranking rule, and so on.

[0098] In an illustrative example, content management server 112 may select three metadata representations in step 712: a first metadata representation associated with the first rule, containing the highest level (but the lowest actual value) (e.g., 1), the first rule condition, and the first rule result action; a second metadata representation associated with the second rule, containing the second highest level (e.g., 2), the second rule condition, the second rule result action, and the third rule result action; and a third metadata representation associated with the third rule, containing the lowest level of the three (but the highest actual value) (e.g., 3), the third rule condition, and the fourth rule result action. Therefore, content management server 112 may extract the first rule in step 716. Then, in step 720, content management server 112 may determine that the first rule condition is not met, and since the rule contains only a single rule result action, return to step 716, where content management server 112 may extract the second rule. In step 720, content management server 112 may determine that the second rule condition is not met and continue to step 728 to execute the third rule result action (because the second rule contains multiple rule result actions). Then, content management server 112 may return to step 716 to extract the third rule. In step 720, the content management server 112 can determine that the third rule condition is met. In response, the content management server 112 can proceed to step 724 and execute the fourth rule result action. In this respect, the content management server 112 can extract and execute rules based on their respective levels / sortings.

[0099] Now for reference Figures 8-10 According to an exemplary embodiment, a user interface is shown that is displayed to a user of one or more client computing devices 120a-n during method 600 and / or 700. As described above, Figures 8-10 The user interface can be one or more web interfaces generated by the content management system and rendered by each client computing device 120a-n as part of a web application, or a graphical user interface downloaded and generated by each client computing device 120a-n as part of a software application (e.g., a mobile application, etc.). Furthermore, Figures 8-10 The user interface displayed above allows users to communicate with the content management system 110 via a corresponding client computing device (e.g., 120a) (specifically via input and output devices (e.g., 303 and 304, respectively)). Through interaction with various user interfaces, users can provide user input, feedback, and other data requested by the content management system 110. In this regard, it should be understood that each interaction of the user described herein... Figures 8-10The user interface interactions can be provided to one or more client computing devices 120a-n and then transmitted to the content management system 110, and each action that occurs for the respective client computing device 120a-n (e.g., navigating to a specific page, generating a pop-up window, etc.) as described herein can be performed by the content management system 110.

[0100] Now for reference Figure 8 The rule set page 800 is displayed and can be shown on the display of one of the client computing devices 120a-n. Generally, the rule set page 800 provides a user interface for creating, viewing, and managing specific rules within a rule set. As shown, the rule set page 800 includes a data object title or field 804, a first action button 816, a second action button 820, a third action button 821, a first (also called pre-action) rule set section 808, and a second (also called post-action) rule set section 830. To render or generate the rule set page 800 on the client computing device (e.g., 120a), the content management system 110 (more specifically, the content management server 112) can provide the client computing device (e.g., 120a) with a specific rule set and / or metadata representation. In some embodiments, the content management system 110 can provide the client computing device with an empty rule set / rule to render or generate the rule set page 800 on the client computing device. For example, the rule may contain each field and / or record of the rule, but without values. In other embodiments, an empty rule may contain a filler / template field (e.g., null, "Title" for the title field, "Name" for the name field, etc.).

[0101] The data object title or field 804 can be a text field that contains or identifies a data object associated with a rule set of the first rule set section 808 and the second rule set section 830. For example, the rules specified in the first rule set section 808 and the second rule set section 830 can be associated with the data object in the data object title 804 experiencing a selected action button (e.g., ...). Figure 8 The second action button (820) in the middle is associated with or responds to a specific action.

[0102] In this regard, action buttons 816-821 can be selectable buttons, a set of rules for navigating to the data object in the data object header 804, and specific actions of the buttons. For example, in Figure 8In this case, the second action button 820 (e.g., the update button 820) is selected. Therefore, the rules in rule sets 808 and 830 can be executed in response to a request from the content management server 112 to perform an update action on the medical consultation data object (as shown in data object header 804). Conversely, if the first action button 816 (e.g., the create button 816) is selected, the rules in rule sets 808 and 830 can be executed in response to a request from the content management server 112 to perform a create action on the medical consultation data object (as shown in data object header 804).

[0103] As shown in the figure, the rule set page 800 includes two rule set sections: a first rule set section 808 and a second rule set section 830. The first rule set section 808 provides a user of the client computing device (e.g., 120a) with an interface for creating, managing, and viewing rules evaluated or executed before a requested action is performed (e.g., step 708 of method 700). Conversely, the second rule set section 830 provides a user of the client computing device (e.g., 120a) with an interface for creating, managing, and viewing rules evaluated or executed after a requested action is performed (e.g., step 708 of method 700).

[0104] In this regard, the first rule set portion 808 may include a create button 810 and one or more rule representations (not shown, but likely similar to or identical to rule representation 834). The create button 810 may be a selectable button that, when selected, causes a client computing device (e.g., 120a) to generate a rule representation. The rule representation can then receive rule conditions and rule result actions, which can be provided to the content management server 112 to generate metadata representations.

[0105] Similarly, the second rule set portion 830 may include a create button 832 and one or more rule representations 834. The create button 832 may be a selectable button that, when selected, causes a client computing device (e.g., 120a) to generate a rule representation 832. The rule representation 832 may then receive rule conditions and rule result actions, which can be provided to the content management server 112 to generate metadata representations.

[0106] Now for reference Figures 9A-9CThe rule page 900 is displayed and can be shown on the display of one of the client computing devices 120a-n. Generally, the rule page 900 provides a user interface for setting, viewing, and managing specific rules of a rule set. In some embodiments, the rule page 900 can provide an interface for setting, viewing, and managing multiple cascading rules of a rule set. As shown, the rule page 900 includes a details section 901, a cancel button 902, one or more save buttons 903, and an action list (also referred to as rule management) section 930. To render or generate the rule page 900 on the client computing device (e.g., 120a), the content management system 110 can provide the client computing device (e.g., 120a) with rules containing rule conditions and rule result actions. The cancel button 902 can be an optional button for discarding or deleting any changes made to the rules on the rule page 900. In contrast, the save buttons 903 can be optional buttons that cause the client computing device (e.g., 120a) to provide the rules of the rule page 900 to the content management system 110 (e.g., content management server 112) for storage as metadata representation. In some embodiments, only rules in the active state are generated as metadata representations.

[0107] The details section 901 may contain general details related to the rules on the rules page 900. As shown in the figure, the details section 901 includes a tag field 904, a name field 908, an event or action field 912, a sorting field 916, a status field 920, and a description field 922. Both the tag field 904 and the description field 922 can be text fields, containing a general description of the rules on the rules page 900. In this regard, the tag can be a brief description, and the description can be a longer description / summary.

[0108] Name field 908 can be a text field containing the name of the object record that defines the rule on rule page 900. For example, the name in name field 908 can be used in the tenant code and metadata representation to invoke and execute the rule at runtime (see, for example, the name in MDL file 1000). Similarly, event field 912 can be a text field containing the action that defines when the rule is evaluated / executed and the time of rule execution (e.g., before the action, after the action, etc.). For example, Figure 9A Event field 912 contains the action "Update (after saving)". Therefore, the rules on rule page 900 can be evaluated after the update action is executed.

[0109] The sort field 916 can be a text or numeric field containing the order in which the rules of rule page 900 are executed in the rule set. For example, the rule set can contain up to 500 rules. Therefore, since the sort field 916 contains the number 100, it indicates that this rule is evaluated after the other 99 rules have been evaluated (e.g., the 100th rule in order). In this respect, the first rule to be evaluated contains the highest or first sort (e.g., 1), and the last rule to be evaluated contains the lowest or last sort (e.g., 500).

[0110] The status field 920 can be a selection list field containing multiple status options for the rules on rule page 900. For example, the status field 920 can be set to inactive, active, and / or currently inactive (indicating that a specific event (e.g., a specific date, a specific set of values, a specific time, or a time period) activated the rule). Therefore, when a rule is inactive, it may not be evaluated at runtime. In contrast, when a rule is active, it can be evaluated at runtime.

[0111] The action list (also known as rule management) section 930 provides a user interface for creating and managing rules, including rule conditions and one or more rule result actions, for the user of the client computing device (e.g., 120a). As shown, the action list section 930 includes a create or add button 932 and one or more action blocks (also known as rule representations) 934. The add or create button 932 is a selectable button that, when selected, causes the client computing device (e.g., 120a) to generate and display an empty action block 934 on the action list 930.

[0112] Each action block or rule representation 934 uses the if / then / else syntax to define specific rule conditions and rule result actions. In this respect, each rule includes an IF statement 940, a THEN statement 942, and an ELSE statement 944. The IF statement 940 can be a text block that defines the rule conditions using an evaluable expression. For example, a user of a client computing device (e.g., 120a) can provide an expression in the IF statement 940 that can evaluate to true or false (e.g., "field 1==5"). Therefore, the content management server 112 can receive a rule containing the IF statement 940, generate an MDL containing the IF statement 940, and evaluate the IF statement 940 at runtime. If the IF statement 940 evaluates to true, the content management server 112 can determine that the rule conditions are met and execute the rule result action of the THEN statement 942. If the IF statement 940 evaluates to false, the content management server 112 can determine that the rule conditions are not met and execute the rule result action of the ELSE statement 944.

[0113] In this regard, both THEN statement 942 and ELSE statement 944 can be text blocks that define the rule result action of the rule on rule page 900. For example, a user of a client computing device (e.g., 120a) can provide executable action statements to THEN statement 942 and ELSE statement 944. Therefore, content management server 112 can receive a rule containing THEN statement 942 and ELSE statement 944, generate an MDL containing THEN statement 942 and ELSE statement 944, evaluate IF statement 940 at runtime, and execute the action of THEN statement 942 or ELSE statement 944.

[0114] Each action block (also known as a rule or rule representation) 934, in addition to being generated by typing, also provides point-based generation of IF / THEN / ELSE statements 940-944. For example, Figure 9A This displays an example of a selection (e.g., by clicking a computer mouse) of an IF statement 940 (first time), which may result in an overlay display of the Fields and Functions Options menu 948. The Fields and Functions Options menu 948 displays multiple fields and functions that can be selected and added to the IF statement 940. For example, if the field "compound" is selected, the text "compound_c" might be added to the IF statement 940. Similarly, the fields in the Fields and Functions Options menu 948 can be fields of a data object associated with a rule on the rules page 900. For example, the "compound" field might be a field of a medical consultation data object. In this regard, the content management server 112 can provide the data object field of the rule to a client computing device (e.g., 120a) for display in the Fields and Functions Options menu 948. In some embodiments, when the IF statement 940 is empty, the Fields and Functions Options menu 948 may be automatically set to a field filter (because IF statements typically begin with a field).

[0115] Once the user of the client computing device (e.g., 120a) selects an initial field and / or function from the field and function option menu 948, the operator option menu 949 may be automatically overwritten, and each operator can subsequently be selected and added to the IF statement 940. For example, if the operator "=" is selected, "=" might be added to the IF statement 940. Furthermore, the operator option menu 949 may contain operators corresponding to the fields included in the IF statement 940. For example, if the field is numeric, the operator option menu 949 may contain operators "=", "!=", ">", ">=", "<", and "<=". In contrast, if the field is a string or text value, the operator option menu 949 may contain operators "=", "!=", "&&", and "||", but not ">", because strings cannot be compared in size. In this respect, the operator option menu 949 can be generated to contain operators corresponding to specific fields included in the IF statement 940.

[0116] Then, once the user of the client computing device (e.g., 120a) selects an operator from the operator option menu 949, the field and function option menu 948 may be automatically overridden. This may result in the overridden display of the field and function option menu 948 for selecting field or function options, which can be added to the IF statement 940 to complete the IF statement 940.

[0117] In comparison, Figure 9C This shows an example of a user selecting THEN statement 942 or ELSE statement 944, which may result in an overlay display of the Action Options menu 950. The Action Options menu 950 displays several system-defined actions that can be selected and added to THEN statement 942 or ELSE statement 944. For example, if the action "Create Record" is selected, the text "create_record()" might be added to the corresponding statement. In some embodiments, the action may automatically populate the name of the data object associated with the rule. For example, if the action "Create Record" is selected, the text "create_record(medical_inquiry_v)" might be added to the corresponding statement (because the medical consultation data object is associated with the rule).

[0118] By providing point-and-click generation of IF / THEN / ELSE statements (940-944) through an options menu generated based on input values, this system and method transform a complex experience that typically requires a certain level of expertise (e.g., programming) into a rule generation system that requires very little skill, thereby reducing errors and providing improved rule generation. For example, because the menu generated by the system and method described herein includes fields corresponding to the data objects associated with the rules, users can better identify and access the fields they might want to use when generating rules, thus reducing errors in the rule building process and saving processing power and memory by reducing the number of iterations in rule development. Similarly, by displaying operators corresponding to field types (e.g., numbers, strings, etc.), this system and method again reduces errors in the rule building process, thereby saving processing power and memory by requiring less validation overall (e.g., avoiding validation failure indications).

[0119] Each action block 934 may also include an edit button 936, a delete button 938, and a verify button 946. The delete button 938 is a selectable button that, when selected, causes the corresponding action block 934 to be deleted. Similarly, the edit button 936 is a selectable button that, when selected, causes the corresponding action block 934 to become editable, allowing the IF / THEN / ELSE statements 940-944 to be modified by the client computing device (e.g., 120a).

[0120] Verification button 946 is an optional button that causes a client computing device (e.g., 120a) to output the rule of action block 934 to content management server 112, which can then verify the rule as described in step 608 of method 600. In some embodiments, if rule verification fails, content management server 112 can provide an indication to the client computing device (e.g., 120a), which can then display the indication on rule page 900. Conversely, if the rule verification passes, content management server 112 can provide an indication to the client computing device (e.g., 120a), which can then display the indication on rule page 900.

[0121] By providing inline validation for Action Block 934, this system and method offer a simpler and more accurate set of rules that can be corrected before being generated into MDL and executed. For example, by providing inline validation, this system and method provide real-time feedback as the user enters rule conditions and rule result actions, immediately highlighting errors or suggesting corrections. This proactive approach significantly enhances the user experience, reduces errors, and improves efficiency. For instance, due to the inline validation of Action Block 934, users can identify and correct syntax errors while typing, preventing them from continuing to use problematic rules, which provides improved rule quality and an enhanced graphical user interface.

[0122] Now for reference Figure 10 The image shows a sample Metadata Definition Language (MDL) file 1000 (also known as a metadata representation). As shown, the MDL in MDL file 1000 may be part of a specific data object (e.g., a "new_inquiry_response_c" object). In this respect, MDL may be similar to Data Definition Language (DDL) in a database, providing runtime operations to create, describe (read), update, and remove (delete) components that constitute one of the content repositories 111a-n in its configuration. In this respect, MDL is a tool for programmatically manipulating data records. For example, MDL uses CRUD-like commands to manage data records in content management system 110. Based on MDL commands, content management system 112 can use CREATE, RECREATE, RENAME, ALTER, and DROP commands to manage data records in content management system 110.

[0123] The embodiments described herein have been described with reference to the accompanying drawings. The drawings illustrate certain details of specific embodiments of the systems, methods, and programs described herein. However, the description of these embodiments with reference to the drawings should not be construed as imposing any limitation on the disclosure that may exist in the drawings.

[0124] It should be understood that, unless explicitly stated using the phrase "means for...", no element of the claims in this application shall be construed in accordance with 35 USC § 112(f).

[0125] As used herein, the term "circuit" can include hardware configured to perform the functions described herein. In some embodiments, each corresponding "circuit" can include a machine-readable medium for configuring hardware to perform the functions described herein. A circuit can be embodied as one or more circuit components, including but not limited to processing circuitry, network interfaces, peripheral devices, input devices, output devices, sensors, etc. In some embodiments, a circuit can take the form of one or more analog circuits, electronic circuits (e.g., integrated circuits (ICs), discrete circuits, system-on-a-chip (SoC) circuits), telecommunications circuits, hybrid circuits, and any other type of "circuit". In this respect, a "circuit" can include any type of component for implementing or facilitating the implementation of the operations described herein. For example, a circuit described herein can include one or more transistors, logic gates (e.g., NAND gates, AND gates, NOR gates, OR gates, XOR gates, NOT gates, XNOR gates), resistors, multiplexers, registers, capacitors, inductors, diodes, wiring, etc.

[0126] The "circuit" may also include one or more processors communicatively coupled to one or more memories or memory devices. In this regard, the one or more processors may execute instructions stored in memory or instructions accessible to one or more processors. In some embodiments, the one or more processors may be embodied in various ways. The one or more processors may be configured to perform at least the operations described herein. In some embodiments, the one or more processors may be shared by multiple circuits (e.g., circuit A and circuit B may include or share the same processor that, in some exemplary embodiments, executes stored or otherwise accessed instructions through different regions of memory). Alternatively, the one or more processors may be configured to perform or otherwise perform certain operations independently of one or more coprocessors. In other embodiments, two or more processors may be connected via a bus to enable independent, parallel, pipelined, or multithreaded instruction execution. Each processor may be implemented as one or more general-purpose processors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), or other suitable electronic data processing components configured to execute instructions provided by memory. The one or more processors may take the form of a single-core processor, a multi-core processor (e.g., dual-core, quad-core, etc.), a microprocessor, etc. In some embodiments, the one or more processors may be external to the device. For example, one or more processors may be remote processors (e.g., cloud-based processors). Alternatively, one or more processors may be internal to the device and / or local. In this regard, circuitry or components thereof may be placed locally (e.g., as part of a local server, a local computing system) or remotely (e.g., as part of a remote server, such as a cloud-based server). Therefore, the term "circuitry" as used herein may include one or more components distributed across multiple locations. Furthermore, each circuitry described herein may be distributed across multiple locations (e.g., each circuitry as part of one or more remote servers).

[0127] Example systems used to implement the entire system or parts of an embodiment may include general-purpose computing devices, in the form of computers, including processing units, system memory, and a system bus that links various system components, including the system memory, to the processing units. Each storage device may include non-transient volatile storage media, non-volatile storage media, non-transitory storage media (e.g., one or more volatile and / or non-volatile memories), etc. In some embodiments, non-volatile storage media may take the form of ROM, flash memory (e.g., flash memory such as NAND, 3D NAND, NOR, 3D NOR), EEPROM, MRAM, magnetic storage, hard disk, optical disk, etc. The above combinations are also included within the scope of machine-readable media. In this regard, machine-executable instructions include, for example, instructions and data that cause a general-purpose computer, a special-purpose computer, or a special-purpose processing machine to perform a particular function or group of functions. Each respective storage device may, according to exemplary embodiments described herein, operably maintain or otherwise store data related to operations performed by one or more associated circuits, including processor instructions and associated data (e.g., database components, object code components, script components).

[0128] It should also be noted that the term "input device" as used herein can include any type of input device, including but not limited to keyboards, keypads, mice, joysticks, or other input devices that perform similar functions. In contrast, the term "output device" as used herein can include any type of output device, including but not limited to computer monitors, printers, fax machines, or other output devices that perform similar functions.

[0129] It should be noted that although the diagrams herein may show a specific order and composition of method steps, it should be understood that the order of these steps may differ from that depicted. For example, two or more steps may be performed concurrently or partially concurrently. Furthermore, some method steps performed as discrete steps may be combined, steps performed as combined steps may be separated into discrete steps, and the order of certain processes may be reversed or otherwise altered. According to alternative embodiments, the order or sequence of any element or device may be changed or replaced. Therefore, all such modifications are intended to be included within the scope of this disclosure as defined by the appended claims. Such variations will depend on the machine-readable medium and hardware system chosen, as well as the designer's choice. It should be understood that all such variations are within the scope of this disclosure. Similarly, the software and Web implementations of this disclosure can use standard programming techniques, as well as rule-based logic and other logic, to perform various database search steps, association steps, comparison steps, and decision steps.

[0130] The foregoing description of the embodiments is presented for illustrative and descriptive purposes. It is not intended to be exhaustive or to limit the present disclosure to the precise forms disclosed, and modifications and variations may be made based on or derived from the foregoing teachings. These embodiments were chosen and described to explain the principles of the present disclosure and its practical application, enabling those skilled in the art to utilize various embodiments and modifications suitable for the particular purpose contemplated. Other substitutions, modifications, variations, and omissions may be made in the design, operating conditions, and embodiments without departing from the scope of the present disclosure as set forth in the appended claims.

Claims

1. A method for generating a metadata representation and storing the metadata representation in a repository, the method comprising: The content management server receives a first rule associated with the data object, which includes a triggering action, a rule condition, a first rule result action associated with the rule condition being met, and a second rule result action associated with the rule condition not being met. The content management server generates metadata representations based on this first rule; The content management server stores the metadata representation in the repository; The content management server receives requests to perform actions on data objects. This action is a creation action; The content management server responds to the triggering action by selecting a metadata representation from the first repository, matching the action of the request. The content management server extracts rules from the metadata representation; The content management server performs this action on the data object, thereby instantiating a data record based on the data object; The content management server determines whether the rule conditions are met; and The content management server responds to the rule condition being met by executing the first rule result action.

2. The method according to claim 1, wherein, This rule condition is the first rule condition, and the method further includes: The content management server receives a second rule associated with the data object. This second rule includes the triggering action, the second rule condition, and the third rule result action. The metadata is generated based on the first rule and the second rule; The second rule is extracted from the metadata representation by the content management server; The content management server determines that the second rule condition is met; and In response to the second rule condition being met, the content management server executes the third rule result action. The action is performed on the data object after the result action of the third rule is executed.

3. The method according to claim 1, wherein, The rule condition is a first rule condition, wherein the first rule includes a first ordering, and wherein the method further includes: The content management server receives a second rule associated with the data object. This second rule includes the triggering action, the second rule condition, the third rule result action, and the second sorting. The metadata is generated based on the first rule and the second rule; The second rule is extracted from the metadata representation by the content management server; The content management server determines that the second rule condition is met; and In response to the second rule condition being met, the content management server executes the third rule result action. Where the first sort is a higher sort than the second sort, the first rule result action is executed before the third rule result action.

4. The method according to claim 1, further comprising: The content management server outputs empty rules to the client computing device to enable display on the user interface, which includes: The rule indicates that it includes fields for IF statements, THEN statements, and ELSE statements. The rule condition is received through the IF statement field, the first rule result action associated with the rule condition being met is received through the THEN statement field, and the second rule result action associated with the rule condition not being met is received through the ELSE statement field.

5. The method according to claim 4, wherein, The data object includes at least one data field, and the user interface includes an options menu that includes the at least one data field of the data object in response to the selection of the field in the IF statement.

6. The method according to claim 1, wherein, This data object is the first data object, and its method further includes: A second data object, which depends on the first data object and includes metadata representation, is generated by the content management server. The second data object is stored in the warehouse.

7. The method according to claim 1, wherein, Metadata representation is a metadata definition language (MDL) that includes at least one of the following: create command, rebuild command, rename command, change command, or remove command.

8. A content management system for generating and storing metadata representations, comprising: storehouse; and The content management server is configured as follows: Receive a first rule associated with a data object, the first rule including a triggering action, a rule condition, a first rule result action associated with the rule condition being met, and a second rule result action associated with the rule condition not being met; Metadata representation is generated based on this first rule; Storing metadata representations in a repository; Receive requests to perform actions on data objects. This action is a creation action; In response to the action that triggers the action matching request, select metadata representation from the first repository; Extract rules from metadata representation; Perform this action on the data object, thereby instantiating a data record based on the data object; It is determined that the rule condition was not met; and If the condition of this rule is not met, the result action of the second rule is executed.

9. The content management system according to claim 8, wherein, This rule condition is the first rule condition, and the content management server is also configured as follows: Receive a second rule associated with the data object, the second rule including the triggering action, the second rule condition, and the third rule result action. The metadata is generated based on the first rule and the second rule; Extract the second rule from the metadata representation; It is determined that the second rule condition is met; as well as In response to the second rule condition being met, the third rule result action is executed. The action is performed on the data object after the result action of the third rule is executed.

10. The content management system according to claim 8, wherein, The rule condition is the first rule condition, and the first rule includes a first sort, and the content management server is also configured as follows: Receive a second rule associated with the data object, the second rule including the triggering action, the second rule condition, the third rule result action, and the second sorting. The metadata is generated based on the first rule and the second rule; Extract the second rule from the metadata representation; It is determined that the second rule condition is met; as well as In response to the second rule condition being met, the third rule result action is executed. The first sort is higher than the second sort, and the second rule result action is executed before the third rule result action.

11. The content management system according to claim 8, wherein, The content management server is also configured as follows: Output empty rules to the client computing device to enable display on the user interface, which includes: The rule indicates that it includes fields for IF statements, THEN statements, and ELSE statements. The rule condition is received through the IF statement field, the first rule result action associated with the rule condition being met is received through the THEN statement field, and the second rule result action associated with the rule condition not being met is received through the ELSE statement field.

12. The content management system according to claim 11, wherein, The data object includes at least one data field, and the user interface includes an options menu that includes the at least one data field of the data object in response to the selection of the field in the IF statement.

13. The content management system according to claim 8, wherein, This data object is the first data object, and the content management server is also configured as follows: Generate a second data object that depends on the first data object and includes metadata representation. The second data object is stored in the warehouse.

14. The content management system according to claim 8, wherein, Metadata representation is a metadata definition language (MDL) that includes at least one of the following: create command, rebuild command, rename command, change command, or remove command.

15. A method for generating at least one metadata representation and storing the at least one metadata representation in a repository, the method comprising: The content management server receives a first rule associated with the data object, which includes a triggering action, a first rule condition, and a first rule result action. The content management server receives a second rule associated with the data object, which includes a triggering action, a second rule condition, and a second rule result action. The content management server generates the at least one metadata representation based on at least one of the first rule or the second rule; The content management server stores at least one metadata representation in the repository; The content management server receives requests to perform actions on data objects. This action is a creation action; In response to the triggering action matching the request, the content management server selects at least one metadata representation from the first repository; The first rule is extracted by the content management server from the at least one metadata representation; The second rule is extracted by the content management server from the at least one metadata representation; The content management server determines whether the first rule condition is met; The content management server responds to the fact that the first rule condition is met by executing the result action of the first rule; After the content management server executes the action resulting from the first rule, it performs the action on the data object, thereby instantiating a data record based on the data object; The content management server, in response to performing the action on the data object, determines that the second rule condition is met; and The content management server responds to the fact that the second rule condition is met by executing the result action of the second rule.

16. The method according to claim 15, wherein, The first rule result action is associated with the first rule condition being met, and the first rule includes a third rule result action associated with the first rule condition not being met.

17. The method of claim 16, further comprising: The content management server outputs an empty first rule to the client computing device to enable display on the user interface, which includes: The rule indicates that it includes fields for IF statements, THEN statements, and ELSE statements. The first rule condition is received through the IF statement field, the first rule result action associated with the first rule condition being met is received through the THEN statement field, and the third rule result action associated with the first rule condition not being met is received through the ELSE statement field.

18. The method according to claim 17, wherein, The data object includes at least one data field, and the user interface includes an options menu that includes the at least one data field of the data object in response to the selection of the field in the IF statement.

19. The method according to claim 15, wherein, This data object is the first data object, and its method further includes: A second data object, which depends on the first data object and includes metadata representation, is generated by the content management server. The second data object is stored in the warehouse.

20. The method of claim 15, wherein, Metadata representation is a metadata definition language (MDL) that includes at least one of the following: create command, rebuild command, rename command, change command, or remove command.

Citation Information

Patent Citations

  • Uploading tenant code to a multi-tenant system

    US12106081B1

  • Configuring Content Management Systems

    US20180039527A1