Patent Document ID: 9448987
Application ID: 13596740

Base Claim:
1. A computer implemented method for inserting rules-driven paragraphs into user-designated locations in a document after structural revisions, the method comprising: receiving a set of document construction rules; generating a candidate document at least by instantiating, at a computer aided module stored in computer memory, the candidate document as an instance of a document template and further by positioning a plurality of document components at respective locations in the instance of the document template prior to application of the set of document construction rules that evaluates whether one or more conditions are to be fulfilled, the document template comprising the plurality of document components, and at least one of the plurality of document components being a conditional document component associated with at least one document construction rule of the set of document construction rules; forming, by a computer, a document graph for the candidate document based at least in part on the document template, the document graph having a plurality of nodes that represent the plurality of document components and comprise respective document component labels and visibility flags; applying at least some of the set of document construction rules to the candidate document at least by traversing and annotating the document graph after the candidate document and the document graph are generated; forming a mapping data structure, separate from the document graph, and mapping from the respective document component labels to the respective locations of the plurality of nodes within the document graph with the mapping data structure; and generating a final document from the candidate document at least by rendering the conditional document component in the plurality of document components visible when a first visibility flag of the first conditional document is set to visible and rendering the conditional document component invisible when the first visibility flag of the first conditional document is set to invisible.

---

Claim 7:
7. The method of claim 1 , further comprising: receiving the document template as a part of an input to an interview process; receiving user interactions from a user during the interview process including an expert system and presented to the user in a graphical user interface; determining the document template from a template library based in part or in whole upon the user interactions during the interview; generating the document graph at least by combining results of the user interactions during the interview process with the document template; evaluating the set of document construction rules and determining a value of the respective visibility flag based in part or in whole upon results of the user interaction; modifying the candidate document after the mapping data structure and the document graph have been formed; reformatting an impacted portion of the candidate document that is affected by results of modifying the candidate document; applying one or more applicable document construction rules in the set of document construction rules before outputting any portion of a final document for the document; traversing the document graph to retrieve the location of one of the conditional nodes in the document graph with the mapping data structure based in part or in whole upon application of the one or more applicable document construction rules; setting the respective visibility flag for a document component by using the location; and outputting the final document for the document using at least the respective visibility flag, the respective document component label, and results of traversing the document graph; identifying a first node in the document graph as a container that includes one or more contained document components; receiving a conditional document component location indicating where the conditional document component from the user is located in the candidate document when the instance of the document template is instantiated; specifying the conditional document component during template definition processing; positioning the conditional document component at the conditional document component location when one or more conditional document construction rules associated with the conditional document component are evaluated to be true in applying the at least some of the set of document construction rules; modifying one or more locations of at least some document components of the plurality of document components included in the document template without modifying the document template; determining, at an expert system module, which document components are to be selected from the plurality of document components for the final document based in part or in whole upon one or more responses to one or more user-defined questions; identifying, at the expert system module, one or more logical clause selection rules from a set of logical clause selection rules defined by one or more inputs from a user, the set of logical clause selection rules modeling business regulations and standards; instantiating the instance of the document template for the candidate document with at least the one or more logical clause selection rules; determining, at the expert system, one or more first document components to be removed from the candidate template; determining, at the expert system, one or more second document components to be substituted by one or more third document components; including one or more pre-seeded document components in a customized candidate document based in part or in whole on results of applying the at least some of the set of document construction rules; identifying one or more additional document components into the plurality of document components based in part or in whole upon results of including the one or more pre-seeded document components in the customized candidate document and further upon one or more user-defined rules; and constructing a user-defined rule at least by using a user's response held in a question variable as a conditional part of the user-defined rule.