diff --git a/docs/Makefile b/docs/Makefile index 404ecef5..5c3d717c 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -22,4 +22,5 @@ watch: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile + @rm -rf ./_build @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/about/introduction/knowledge-model.rst b/docs/about/introduction/knowledge-model.rst index 773f7575..976c6a2c 100644 --- a/docs/about/introduction/knowledge-model.rst +++ b/docs/about/introduction/knowledge-model.rst @@ -40,7 +40,7 @@ The knowledge model consists of chapters at the top level. Each chapter has a ** Question -------- -Questions are used to collect the answers from users. Each question has a **title** (the actual question), a **description**, a **phase** when it becomes desirable, a list of :ref:`references` and :ref:`experts`, and a selection of :ref:`question tags`. +Questions are used to collect the answers from users. Each question has a **title** (the actual question), a **description**, a **phase** when it becomes desirable, a list of :ref:`resource pages` gathered in a :ref:`resource collection` or :ref:`URL references` and :ref:`experts`, and a selection of :ref:`question tags`. Then there are some additional settings based on the **question type**. @@ -101,6 +101,13 @@ Multi-Choice Question The multi-choice question has a list of :ref:`choices`. Users can then pick as many of those choices as they wish. There are, however, no follow-up questions available for this question type. +.. _item-select-question: + +Item Select Question +^^^^^^^^^^^^^^^^^^^^ + +The item selection question works in conjunction with the :ref:`list of items question`. It is used to select one of the previously created items within a series of interconnected list of items question. + .. _answer: Answer @@ -124,17 +131,26 @@ Choice A choice is used with :ref:`multi-choice questions`. It only contains a **label** which is presented to the user. -.. _reference: +.. _resource-collection: + +Resource Collection +-------------------- + +We can provide some additional reference resources for :ref:`questions` to help users better understand it or learn more details. There are two types of references. + +.. _resource-page: + +Resource Page Reference +^^^^^^^^^^^^^^^^^^^^^^^ -Reference ---------- +A resource page reference is a link to a page in the |project_name| itself. It has **title** which is the name of the page and a **content** that describes what the reference is about. Resource pages are gathered in the resource collections. -We can provide some additional references for :ref:`questions` to help users better understand it or learn more details. There are more types of references. +.. _url-reference: URL Reference -^^^^^^^^^^^^^ +------------- -A URL reference is a simple link to any website. It has **URL** which is the actual link and a **label** that describes what the reference is about. +A URL reference is a simple link to any website. It has **URL** which is the actual link and a **label** that describes what the reference is about. URL reference is set up on a level of question, not on a level of knowledge model. Book Reference ^^^^^^^^^^^^^^ @@ -143,13 +159,6 @@ Book Reference Book references are deprecated. -Resource Page Reference -^^^^^^^^^^^^^^^^^^^^^^^ - -.. warning:: - Resource page references are not yet implemented. - - .. _expert: Expert diff --git a/docs/about/introduction/knowledge-model/knowledge-model-schema.png b/docs/about/introduction/knowledge-model/knowledge-model-schema.png index 44332aaa..aa18e5c0 100644 Binary files a/docs/about/introduction/knowledge-model/knowledge-model-schema.png and b/docs/about/introduction/knowledge-model/knowledge-model-schema.png differ diff --git a/docs/application/knowledge-models/editors/detail/knowledge-model.rst b/docs/application/knowledge-models/editors/detail/knowledge-model.rst index 3ca4d037..759f58ef 100644 --- a/docs/application/knowledge-models/editors/detail/knowledge-model.rst +++ b/docs/application/knowledge-models/editors/detail/knowledge-model.rst @@ -45,19 +45,18 @@ There are different entities we can edit in the knowledge model, the editor show - :ref:`Question` - :ref:`Answer` - :ref:`Choice` -- :ref:`Reference` - :ref:`Expert` - :ref:`Metric` - :ref:`Phase` - :ref:`Question Tag` - :ref:`Integration` +- :ref:`Resource Collection` .. figure:: knowledge-model/editor-form.png Example of question editor form. - Besides their own fields, each entity has so called **Annotations**. They are arbitrary key value pairs that can be assigned to the entity and used later, when :ref:`developing a document template`. diff --git a/docs/application/projects/list/detail/questionnaire.rst b/docs/application/projects/list/detail/questionnaire.rst index 580e059f..8431f960 100644 --- a/docs/application/projects/list/detail/questionnaire.rst +++ b/docs/application/projects/list/detail/questionnaire.rst @@ -38,7 +38,6 @@ There are three desirability states the question can be in: If there is no phase defined on the knowledge model, the current phase selection is not visible in the questionnaire detail. - Chapters ======== @@ -108,6 +107,7 @@ There is a trash bin icon in the item's top right corner that we can use to **de List of items question with a single item. + Value Question -------------- @@ -132,7 +132,6 @@ When we pick an answer from the list, we not only have the answer but also **a l Integration question with a response from FAIRsharing containing also a link. - Multi-Choice Question --------------------- @@ -143,6 +142,19 @@ Multi-choice question is similar to the options question, however we can choose Multi-choice question with many choices. +Item Select Question +-------------------- + +The item selection question is used together with the list of items question. When creating an item selection question, you must choose one of the existing list of items questions. The answers provided to that list of items question are then offered as possible answers in the item selection question. + +.. TODO:: + + Add a screenshot of the item select question. + +.. .. figure:: questionnaire/item-select-question.png + +.. Item select question with a list of items as possible answers. + View settings ============= diff --git a/docs/conf.py b/docs/conf.py index 5f55d122..6864b4ed 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -25,7 +25,7 @@ project_name_full = 'Data Stewardship Wizard' # The full version, including alpha/beta/rc tags -version = release = '4.9' +version = release = '4.10' rst_prolog = f""" diff --git a/docs/more/development/document-templates/dev-notes.rst b/docs/more/development/document-templates/dev-notes.rst new file mode 100644 index 00000000..d141cc6c --- /dev/null +++ b/docs/more/development/document-templates/dev-notes.rst @@ -0,0 +1,45 @@ +.. _document-template-dev-notes: + +Document Template Development Notes +*********************************** + +Here we collect general recommendations and best practices to develop document templates. In case you would like to include a specific notes, please let us know - any suggestions are appreciated. + +Missing or Special Fonts +======================== + +**Issue**: It may happen that certain fonts are not installed in the document worker (affecting PDF documents) or user's device (affecting client-rendered documents like HTML or SVG). This may result in weird/incorrect characters appearing incl. rectangular shapes. + +**Recommendations**: Include fonts via CSS/HTML, e.g. using the `Google Fonts `_ or other similar: + +.. code:: html + + + Data Management Plan + + + + + + + + +It is not recommended to add fonts as part of the document template for performance and usage reasons. + + +Misplaced Content in PDF +======================== + +**Issue**: It may happen that content is placed over header/footer or incorrectly split between pages. + +**Recommendations**: First, avoid incorrect HTML structures such as empty list items, nested paragraphs, tables without ``tbody`` etc. Then also make sure that the page, footer and header sizes are correctly set via CSS. Similarly, you can prevent page break using CSS. In case of issues, also refer to the :ref:`WeasyPrint step ` or directly the `WeasyPrint documentation `_. + + +Styling MS Word Documents +========================= + +**Issue**: CSS and HTML styling is not appearing correctly in MS Word documents (transformed from HTML via the Pandoc step). + +**Recommendations**: CSS styles do not affect resulting MS Word documents as that is not possible with Pandoc. The Word document will use the matching styles based on certain HTML tags (e.g. ````, ``<h1>``, ``<p>``, or ``<table>``). You can adjust how those look by creating ``reference.docx`` document with desired styles incl. headers/footers. Ideal way is to download MS Word document generated, adjust styles as needed, and store it as the ``reference.docx`` document. Then, it can be simply added to the document template and used for the :ref:`Pandoc step <document-template-step-pandoc>` via ``args``. Please check directly the `relevant part of the Pandoc documentation <https://pandoc.org/MANUAL.html#option--reference-doc>`_. diff --git a/docs/more/development/document-templates/document-context.rst b/docs/more/development/document-templates/document-context.rst index 99863097..36ae6c7d 100644 --- a/docs/more/development/document-templates/document-context.rst +++ b/docs/more/development/document-templates/document-context.rst @@ -10,29 +10,50 @@ Document Context Document context is an object that carries all information related to a DSW questionnaire in order to produce a document. To investigate it, it is the best to use *Questionnaire Report* template with ``JSON`` format. The core fields are: * ``config`` = object with DSW configuration related to documents, e.g., ``clientUrl`` for referring to the DSW instance -* ``createdAt`` = timestamp when the document was created -* ``createdBy`` = object describing author of the document +* ``document`` = object with the details about the document + * ``createdAt`` = when the document was created (initial creation, not final generation of the document) + * ``createdBy`` = user that created the document + * ``documentTemplateId`` = ID of the document template used of the document + * ``formatUuid`` = UUID of the format in the document template + * ``name`` = name of the document (entered when creating, not file name) + * ``uuid`` +* ``extras`` = additional data added by document worker if requested +* ``groups`` = groups with access to the project * ``knowledgeModel`` = object describing used KM for the questionnaire - * ``chapterUuids`` = list of UUIDs for chapters - * ``integrationUuids`` = list of UUIDs for integrations - * ``tagUuids`` = list of UUIDs for tags + * ``annotations`` = list of key-value annotations of KM top-level entity + * ``chapterUuids`` = list of UUIDs for chapters (ordered) + * ``integrationUuids`` = list of UUIDs for integrations (ordered) + * ``metricUuids`` = list of UUIDs for metrics (ordered) + * ``phaseUuids`` = list of UUIDs for phases (ordered) + * ``resourceCollectionUuids`` = list of UUIDs for resource collections (ordered) + * ``tagUuids`` = list of UUIDs for tags (ordered) * ``entities`` = contains ``questions``, ``answers``, and other maps with UUID-entity pairs - * ``name`` = name of the knowledge model * ``uuid`` = UUID of the knowledge model -* ``level`` = current desirability level selected for the questionnaire -* ``levels`` = list of desirability levels possible -* ``metrics`` = list of available metrics +* ``metamodelVersion`` = metamodel version of the document context (document template metamodel version) * ``organization`` = object describing organization that runs the DSW instance + * ``affiliations`` = list of suggested affiliation within the organization + * ``description`` + * ``name`` + * ``organizationId`` * ``package`` = object with metadata about the KM package such as ``version``, ``name``, or ``description`` -* ``questionnaireName`` = name of the questionnaire -* ``questionnaireReplies`` = map of replies with path-reply pairs, each reply has ``type`` and ``value`` -* ``questionnaireUuid`` = UUID of the questionnaire +* ``questionnaire`` = object representing the questionnaire + * ``createdAt`` = when the questionnaire/project was created + * ``createdBy`` = original author who created the questionnaire/project + * ``description`` = optional description of the questionnaire/project + * ``labels`` = path-list map of labels on questions (i.e. TODOs) + * ``name`` = name of the questionnaire/project + * ``phaseUuid`` = UUID of the current phase selected + * ``replies`` = path-object map of replies to questions + * ``updatedAt`` = when the questionnaire/project was last updated + * ``uuid`` = UUID of the questionnaire/project + * ``versionUuid`` = optional UUID of the current version of the questionnaire + * ``versions`` = ordered list of questionnaire versions (objects with details) * ``report`` = object that contains report for the questionnaire that contains computed information about number of answered questions as well as metric values -* ``updatedAt`` = timestamp when the document was last updated -* ``uuid`` = UUID of the document +* ``users`` = users with access to the project (each entry contains ``perms`` list and ``user`` object) This structure is provided to a Jinja template in :doc:`steps/jinja` and outputted from :doc:`steps/json`. We can use the JSON step to observe the actual content of the document context (structure as well as the values). Finally, we can also check :doc:`../metamodel-schemas` (the relevant JSON schema for document context). +.. _document-context-obj: Objectified Document Context ============================ @@ -69,11 +90,14 @@ DocumentContext - ``config`` (:ref:`odc-context-config`) - ``current_phase`` (``Optional[``\ :ref:`odc-phase`\ ``]``) - ``document`` (:ref:`odc-document`) +- ``groups`` (``list[``\ :ref:`odc-group-perm`\ ``]``) - ``km`` (:ref:`odc-knowledge-model`) +- ``metamodel_version`` (``int``) - ``organization`` (:ref:`odc-organization`) - ``package`` (:ref:`odc-package`) - ``questionnaire`` (:ref:`odc-questionnaire`) - ``report`` (:ref:`odc-report`) +- ``users`` (``list[``\ :ref:`odc-user-perm`\ ``]``) Aliases: @@ -99,6 +123,10 @@ Document ~~~~~~~~ - ``uuid`` (``str``) +- ``name`` (``str``) +- ``document_template_id`` (``str``) +- ``format_uuid`` (``str``) +- ``created_by`` (:ref:`odc-user`) - ``created_at`` (``datetime``) - ``updated_at`` (``datetime``) @@ -136,12 +164,16 @@ Questionnaire - ``uuid`` (``str``) - ``name`` (``str``) +- ``description`` (``Optional[str]``) - ``version`` (``Optional[``\ :ref:`odc-questionnaire-version`\ ``]``) -- ``versions`` - (``list[``\ :ref:`odc-questionnaire-version`\ ``]``) +- ``versions`` (``list[``\ :ref:`odc-questionnaire-version`\ ``]``) - ``phase`` (``Optional[``\ :ref:`odc-phase`\ ``]``) +- ``project_tags`` (``list[str]``) - ``replies`` (:ref:`odc-replies-container`) +- ``todos`` (``list[str]``) - ``created_by`` (:ref:`odc-user`) +- ``created_at`` (``datetime``) +- ``updated_at`` (``datetime``) .. _odc-questionnaire-version: @@ -176,6 +208,34 @@ User - ``updated_at`` (``datetime``) +.. _odc-user-group: + +UserGroup +~~~~~~~~~ + +- ``uuid`` (``str``) +- ``name`` (``str``) +- ``description`` (``str``) +- ``private`` (``bool``) +- ``members`` (``list[``\ :ref:`odc-user-membership`\ ``]``) +- ``created_at`` (``datetime``) +- ``updated_at`` (``datetime``) + + + +.. _odc-user-membership: + +UserMembership +~~~~~~~~~~~~~~ + +- ``uuid`` (``str``) +- ``first_name`` (``str``) +- ``last_name`` (``str``) +- ``gravatar_hash`` (``str``) +- ``image_url`` (``Optional[str]``) +- ``membership_type`` (``str``) - one of: ``member``, ``owner`` + + .. _odc-simple-author: SimpleAuthor @@ -188,6 +248,38 @@ SimpleAuthor - ``gravatar_hash`` (``Optional[str]``) +.. _odc-user-perm: + +UserPermission +~~~~~~~~~~~~~~ + +- ``user`` (:ref:`odc-user`) +- ``permissions`` (``list[str]``) - contains: ``VIEW``, ``COMMENT``, ``EDIT``, ``ADMIN`` + +Helpers: + +- is_viewer (``bool``) +- is_commenter (``bool``) +- is_editor (``bool``) +- is_owner (``bool``) + + +.. _odc-group-perm: + +GroupPermission +~~~~~~~~~~~~~~~ + +- ``group`` (:ref:`odc-user-group`) +- ``permissions`` (``list[str]``) - contains: ``VIEW``, ``COMMENT``, ``EDIT``, ``ADMIN`` + +Helpers: + +- is_viewer (``bool``) +- is_commenter (``bool``) +- is_editor (``bool``) +- is_owner (``bool``) + + .. _odc-report: Report @@ -248,6 +340,7 @@ KnowledgeModel - ``integrations`` (``list[``\ :ref:`odc-integration`\ ``]``) - ``metrics`` (``list[``\ :ref:`odc-metric`\ ``]``) - ``phases`` (``list[``\ :ref:`odc-phase`\ ``]``) +- ``resource_collections`` (``list[``\ :ref:`odc-resource-collection`\ ``]``) - ``tags`` (``list[``\ :ref:`odc-tag`\ ``]``) Aliases: @@ -279,6 +372,7 @@ dictionaries: - ``phases`` (``dict[str,``\ :ref:`odc-phase`\ ``]``) - ``questions`` (``dict[str,``\ :ref:`odc-question`\ ``]``) - ``references`` (``dict[str,``\ :ref:`odc-reference`\ ``]``) +- ``resource_collections (``dict[str,``\ :ref:`odc-resource-collection`\ ``]``) - ``tags`` (``dict[str,``\ :ref:`odc-tag`\ ``]``) @@ -368,6 +462,13 @@ ListQuestion - ``followups`` (``list[``\ :ref:`odc-question`\ ``]``) +.. _odc-item-select-question: + +ItemSelectQuestion +'''''''''''''''''' + +- ``list_question`` (``Optional[``\ :ref:`odc-list-question`\ ``]``) + .. _odc-answer: @@ -440,8 +541,30 @@ URLReference ResourcePageReference ''''''''''''''''''''' -- ``short_uuid`` (``str``) -- ``url`` (``str``) - URL composed using ``client_url`` from :ref:`odc-context-config` +- ``resource_page`` (``Optional[``\ :ref:`odc-resource-page`\ ``]``) + + +.. _odc-resource-collection: + +ResourceCollection +^^^^^^^^^^^^^^^^^^ + +- ``uuid`` (``str``) +- ``title`` (``str``) +- ``pages`` (``list[``\ :ref:`odc-resource-page`\ ``]``) +- ``annotations`` (``dict[str,str]``) + +.. _odc-resource-page: + + +ResourcePage +^^^^^^^^^^^^ + +- ``uuid`` (``str``) +- ``title`` (``str``) +- ``content`` (``str``) +- ``collection`` (:ref:`odc-resource-collection`) +- ``annotations`` (``dict[str,str]``) .. _odc-metric: @@ -602,6 +725,22 @@ Notes: - ``question`` is always :ref:`odc-list-question` - You can iterate directly over reply object (``for item in reply``) + +ItemSelectReply +^^^^^^^^^^^^^^^ + +- ``item_uuid`` (``str``) +- ``item_title`` (``str``) + +Aliases: + +- ``value`` (``str``) - same as ``item_uuid`` + +Notes: + +- ``question`` is always :ref:`odc-item-select-question` + + IntegrationReply ^^^^^^^^^^^^^^^^ diff --git a/docs/more/development/document-templates/document-context.svg b/docs/more/development/document-templates/document-context.svg index 0177d4b8..ff4c3661 100644 --- a/docs/more/development/document-templates/document-context.svg +++ b/docs/more/development/document-templates/document-context.svg @@ -1 +1,8026 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="2680" height="1570" stroke="#000" stroke-linecap="square" stroke-miterlimit="10" color-interpolation="auto" font-family="'Dialog'" font-size="12" style="background-color:#fff" viewBox="-20 -20 2680 1570"><defs><clipPath id="a" clipPathUnits="userSpaceOnUse"><path d="M0 0v60h190V0Z"/></clipPath><clipPath id="b" clipPathUnits="userSpaceOnUse"><path d="M0 0v170h190V0Z"/></clipPath><clipPath id="c" clipPathUnits="userSpaceOnUse"><path d="M0 0v70h200V0Z"/></clipPath><clipPath id="d" clipPathUnits="userSpaceOnUse"><path d="M0 0v90h170V0Z"/></clipPath><clipPath id="e" clipPathUnits="userSpaceOnUse"><path d="M0 0v100h190V0Z"/></clipPath><clipPath id="f" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h220V0Z"/></clipPath><clipPath id="g" clipPathUnits="userSpaceOnUse"><path d="M0 0v150h190V0Z"/></clipPath><clipPath id="h" clipPathUnits="userSpaceOnUse"><path d="M0 0v150h250V0Z"/></clipPath><clipPath id="i" clipPathUnits="userSpaceOnUse"><path d="M0 0v80h130V0Z"/></clipPath><clipPath id="j" clipPathUnits="userSpaceOnUse"><path d="M0 0v90h210V0Z"/></clipPath><clipPath id="k" clipPathUnits="userSpaceOnUse"><path d="M0 0v90h160V0Z"/></clipPath><clipPath id="l" clipPathUnits="userSpaceOnUse"><path d="M0 0v130h160V0Z"/></clipPath><clipPath id="m" clipPathUnits="userSpaceOnUse"><path d="M0 0v150h330V0Z"/></clipPath><clipPath id="n" clipPathUnits="userSpaceOnUse"><path d="M0 0v130h190V0Z"/></clipPath><clipPath id="o" clipPathUnits="userSpaceOnUse"><path d="M0 0v210h170V0Z"/></clipPath><clipPath id="p" clipPathUnits="userSpaceOnUse"><path d="M0 0v180h230V0Z"/></clipPath><clipPath id="q" clipPathUnits="userSpaceOnUse"><path d="M0 0v150h230V0Z"/></clipPath><clipPath id="r" clipPathUnits="userSpaceOnUse"><path d="M0 0v180h160V0Z"/></clipPath><clipPath id="s" clipPathUnits="userSpaceOnUse"><path d="M0 0v100h160V0Z"/></clipPath><clipPath id="t" clipPathUnits="userSpaceOnUse"><path d="M0 0v80h160V0Z"/></clipPath><clipPath id="u" clipPathUnits="userSpaceOnUse"><path d="M0 0v50h160V0Z"/></clipPath><clipPath id="v" clipPathUnits="userSpaceOnUse"><path d="M0 0v130h230V0Z"/></clipPath><clipPath id="w" clipPathUnits="userSpaceOnUse"><path d="M0 0v90h140V0Z"/></clipPath><clipPath id="x" clipPathUnits="userSpaceOnUse"><path d="M0 0v190h220V0Z"/></clipPath><clipPath id="y" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h190V0Z"/></clipPath><clipPath id="z" clipPathUnits="userSpaceOnUse"><path d="M0 0v180h190V0Z"/></clipPath><clipPath id="A" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h200V0Z"/></clipPath><clipPath id="B" clipPathUnits="userSpaceOnUse"><path d="M0 0v70h180V0Z"/></clipPath><clipPath id="C" clipPathUnits="userSpaceOnUse"><path d="M0 0v60h180V0Z"/></clipPath><clipPath id="D" clipPathUnits="userSpaceOnUse"><path d="M0 0v320h370V0Z"/></clipPath><clipPath id="E" clipPathUnits="userSpaceOnUse"><path d="M0 0v200h220V0Z"/></clipPath><clipPath id="F" clipPathUnits="userSpaceOnUse"><path d="M0 0v280h220V0Z"/></clipPath><clipPath id="G" clipPathUnits="userSpaceOnUse"><path d="M0 0v320h70V0Z"/></clipPath><clipPath id="H" clipPathUnits="userSpaceOnUse"><path d="M0 0v200h620V0Z"/></clipPath><clipPath id="I" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h70V0Z"/></clipPath><clipPath id="J" clipPathUnits="userSpaceOnUse"><path d="M0 0v510h720V0Z"/></clipPath><clipPath id="K" clipPathUnits="userSpaceOnUse"><path d="M0 0v130h1030V0Z"/></clipPath><clipPath id="L" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h160V0Z"/></clipPath><clipPath id="M" clipPathUnits="userSpaceOnUse"><path d="M0 0v100h270V0Z"/></clipPath><clipPath id="N" clipPathUnits="userSpaceOnUse"><path d="M0 0v100h30V0Z"/></clipPath><clipPath id="O" clipPathUnits="userSpaceOnUse"><path d="M0 0v320h100V0Z"/></clipPath><clipPath id="P" clipPathUnits="userSpaceOnUse"><path d="M0 0v460h140V0Z"/></clipPath><clipPath id="Q" clipPathUnits="userSpaceOnUse"><path d="M0 0v320h50V0Z"/></clipPath><clipPath id="R" clipPathUnits="userSpaceOnUse"><path d="M0 0v120h90V0Z"/></clipPath><clipPath id="S" clipPathUnits="userSpaceOnUse"><path d="M0 0v30h90V0Z"/></clipPath><clipPath id="T" clipPathUnits="userSpaceOnUse"><path d="M0 0v200h310V0Z"/></clipPath><clipPath id="U" clipPathUnits="userSpaceOnUse"><path d="M0 0v200h410V0Z"/></clipPath><clipPath id="V" clipPathUnits="userSpaceOnUse"><path d="M0 0v50h200V0Z"/></clipPath><clipPath id="W" clipPathUnits="userSpaceOnUse"><path d="M0 0v410h290V0Z"/></clipPath><clipPath id="X" clipPathUnits="userSpaceOnUse"><path d="M0 0v50h260V0Z"/></clipPath><clipPath id="Y" clipPathUnits="userSpaceOnUse"><path d="M0 0v410h70V0Z"/></clipPath><clipPath id="Z" clipPathUnits="userSpaceOnUse"><path d="M0 0v60h150V0Z"/></clipPath><clipPath id="aa" clipPathUnits="userSpaceOnUse"><path d="M0 0v100h40V0Z"/></clipPath><clipPath id="ab" clipPathUnits="userSpaceOnUse"><path d="M0 0v140h930V0Z"/></clipPath><clipPath id="ac" clipPathUnits="userSpaceOnUse"><path d="M0 0v260h610V0Z"/></clipPath><clipPath id="ad" clipPathUnits="userSpaceOnUse"><path d="M0 0v550h1770V0Z"/></clipPath><clipPath id="ae" clipPathUnits="userSpaceOnUse"><path d="M0 0v180h290V0Z"/></clipPath><clipPath id="af" clipPathUnits="userSpaceOnUse"><path d="M0 0v240h850V0Z"/></clipPath><clipPath id="ag" clipPathUnits="userSpaceOnUse"><path d="M0 0v860h1270V0Z"/></clipPath><clipPath id="ah" clipPathUnits="userSpaceOnUse"><path d="M0 0v150h140V0Z"/></clipPath><clipPath id="ai" clipPathUnits="userSpaceOnUse"><path d="M0 0v380h1110V0Z"/></clipPath><clipPath id="aj" clipPathUnits="userSpaceOnUse"><path d="M0 0v230h260V0Z"/></clipPath><clipPath id="ak" clipPathUnits="userSpaceOnUse"><path d="M0 0v400h170V0Z"/></clipPath><clipPath id="al" clipPathUnits="userSpaceOnUse"><path d="M0 0v50h220V0Z"/></clipPath><clipPath id="am" clipPathUnits="userSpaceOnUse"><path d="M0 0v210h210V0Z"/></clipPath><clipPath id="an" clipPathUnits="userSpaceOnUse"><path d="M0 0v80h200V0Z"/></clipPath><clipPath id="ao" clipPathUnits="userSpaceOnUse"><path d="M0 0v130h70V0Z"/></clipPath><clipPath id="ap" clipPathUnits="userSpaceOnUse"><path d="M0 0v410h280V0Z"/></clipPath><clipPath id="aq" clipPathUnits="userSpaceOnUse"><path d="M0 0v80h220V0Z"/></clipPath><clipPath id="ar" clipPathUnits="userSpaceOnUse"><path d="M0 0v50h330V0Z"/></clipPath><clipPath id="as" clipPathUnits="userSpaceOnUse"><path d="M0 0v140h70V0Z"/></clipPath><clipPath id="at" clipPathUnits="userSpaceOnUse"><path d="M0 0v50h180V0Z"/></clipPath><clipPath id="au" clipPathUnits="userSpaceOnUse"><path d="M0 0v120h210V0Z"/></clipPath><clipPath id="av" clipPathUnits="userSpaceOnUse"><path d="M0 0v150h70V0Z"/></clipPath><clipPath id="aw" clipPathUnits="userSpaceOnUse"><path d="M0 0v320h350V0Z"/></clipPath><clipPath id="ax" clipPathUnits="userSpaceOnUse"><path d="M0 0v220h130V0Z"/></clipPath><clipPath id="ay" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h80V0Z"/></clipPath><clipPath id="az" clipPathUnits="userSpaceOnUse"><path d="M0 0v100h180V0Z"/></clipPath><clipPath id="aA" clipPathUnits="userSpaceOnUse"><path d="M0 0v50h170V0Z"/></clipPath><clipPath id="aB" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h390V0Z"/></clipPath><clipPath id="aC" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h210V0Z"/></clipPath><clipPath id="aD" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h30V0Z"/></clipPath><clipPath id="aE" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h230V0Z"/></clipPath><clipPath id="aF" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h430V0Z"/></clipPath><clipPath id="aG" clipPathUnits="userSpaceOnUse"><path d="M0 0v190h90V0Z"/></clipPath><clipPath id="aH" clipPathUnits="userSpaceOnUse"><path d="M0 0v200h90V0Z"/></clipPath><clipPath id="aI" clipPathUnits="userSpaceOnUse"><path d="M0 0v110h90V0Z"/></clipPath><clipPath id="aJ" clipPathUnits="userSpaceOnUse"><path d="M0 0v100h240V0Z"/></clipPath></defs><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V59H.5z" clip-path="url(#a)" transform="translate(1070 1220)"/><path fill="none" d="M.5.5H189V59H.5z" clip-path="url(#a)" transform="translate(1070 1220)"/><text xml:space="preserve" x="34" y="17.817" stroke="none" clip-path="url(#a)" font-family="sans-serif" font-size="14" transform="translate(1070 1220)">WidgetIntegration</text><path fill="none" d="M1 23.817h188" clip-path="url(#a)" transform="translate(1070 1220)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#a)" font-family="sans-serif" font-size="14" transform="translate(1070 1220)">widget_url: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V169H.5z" clip-path="url(#b)" transform="translate(1310 1220)"/><path fill="none" d="M.5.5H189V169H.5z" clip-path="url(#b)" transform="translate(1310 1220)"/><text xml:space="preserve" x="46" y="17.817" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">ApiIntegration</text><path fill="none" d="M1 23.817h188" clip-path="url(#b)" transform="translate(1310 1220)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rq_url: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rq_method: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rq_headers: dict[str,str]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rq_body: str</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rq_empty_search: bool</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rs_list_field: Optional[str]</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rs_item_id: Optional[str]</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#b)" font-family="sans-serif" font-size="14" transform="translate(1310 1220)">rs_item_template: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H199V69H.5z" clip-path="url(#c)" transform="translate(1700 1190)"/><path fill="none" d="M.5.5H199V69H.5z" clip-path="url(#c)" transform="translate(1700 1190)"/><text xml:space="preserve" x="19" y="17.817" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1700 1190)">ResourcePageReference</text><path fill="none" d="M1 23.817h198" clip-path="url(#c)" transform="translate(1700 1190)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1700 1190)">short_uuid: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H199V69H.5z" clip-path="url(#c)" transform="translate(1700 1100)"/><path fill="none" d="M.5.5H199V69H.5z" clip-path="url(#c)" transform="translate(1700 1100)"/><text xml:space="preserve" x="53" y="17.817" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1700 1100)">URLReference</text><path fill="none" d="M1 23.817h198" clip-path="url(#c)" transform="translate(1700 1100)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1700 1100)">label: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1700 1100)">url: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H169V89H.5z" clip-path="url(#d)" transform="translate(1960 1100)"/><path fill="none" d="M.5.5H169V89H.5z" clip-path="url(#d)" transform="translate(1960 1100)"/><text xml:space="preserve" x="50" y="17.817" stroke="none" clip-path="url(#d)" font-family="sans-serif" font-size="14" font-style="italic" transform="translate(1960 1100)">Reference</text><path fill="none" d="M1 23.817h168" clip-path="url(#d)" transform="translate(1960 1100)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#d)" font-family="sans-serif" font-size="14" transform="translate(1960 1100)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#d)" font-family="sans-serif" font-size="14" transform="translate(1960 1100)">type: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#d)" font-family="sans-serif" font-size="14" transform="translate(1960 1100)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V99H.5z" clip-path="url(#e)" transform="translate(1280 930)"/><path fill="none" d="M.5.5H189V99H.5z" clip-path="url(#e)" transform="translate(1280 930)"/><text xml:space="preserve" x="73" y="17.817" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(1280 930)">Expert</text><path fill="none" d="M1 23.817h188" clip-path="url(#e)" transform="translate(1280 930)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(1280 930)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(1280 930)">name: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(1280 930)">email: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(1280 930)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H219V109H.5z" clip-path="url(#f)" transform="translate(980)"/><path fill="none" d="M.5.5H219V109H.5z" clip-path="url(#f)" transform="translate(980)"/><text xml:space="preserve" x="72" y="17.817" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(980)">ReportItem</text><path fill="none" d="M1 23.817h218" clip-path="url(#f)" transform="translate(980)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(980)">indications: list[ReportIndication]</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(980)">metrics: list[ReportMetric]</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(980)">chapter: Optional[Chapter]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V149H.5z" clip-path="url(#g)" transform="translate(1500)"/><path fill="none" d="M.5.5H189V149H.5z" clip-path="url(#g)" transform="translate(1500)"/><text xml:space="preserve" x="38" y="17.817" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">ReportIndication</text><path fill="none" d="M1 23.817h188" clip-path="url(#g)" transform="translate(1500)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">indication_type: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">answered: int</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">unanswered: int</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">total: int</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">percentage: float</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">is_for_phase: bool</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#g)" font-family="sans-serif" font-size="14" transform="translate(1500)">is_overall: bool</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H199V69H.5z" clip-path="url(#c)" transform="translate(1270 110)"/><path fill="none" d="M.5.5H199V69H.5z" clip-path="url(#c)" transform="translate(1270 110)"/><text xml:space="preserve" x="56" y="17.817" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1270 110)">ReportMetric</text><path fill="none" d="M1 23.817h198" clip-path="url(#c)" transform="translate(1270 110)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1270 110)">measure: float</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#c)" font-family="sans-serif" font-size="14" transform="translate(1270 110)">metric: Metric</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H219V109H.5z" clip-path="url(#f)" transform="translate(530)"/><path fill="none" d="M.5.5H219V109H.5z" clip-path="url(#f)" transform="translate(530)"/><text xml:space="preserve" x="87" y="17.817" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(530)">Report</text><path fill="none" d="M1 23.817h218" clip-path="url(#f)" transform="translate(530)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(530)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(530)">total_report: ReportItem</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(530)">chapter_reports: list[ReportItem]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(530)">created_at: datetime</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#f)" font-family="sans-serif" font-size="14" transform="translate(530)">updated_at: datetime</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H249V149H.5z" clip-path="url(#h)" transform="translate(2380 430)"/><path fill="none" d="M.5.5H249V149H.5z" clip-path="url(#h)" transform="translate(2380 430)"/><text xml:space="preserve" x="100" y="17.817" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">Answer</text><path fill="none" d="M1 23.817h248" clip-path="url(#h)" transform="translate(2380 430)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">label: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">advice: Optional[str]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">metric_measures: list[MetricMeasure]</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">followups: list[Question]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">parent: OptionsQuestion</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#h)" font-family="sans-serif" font-size="14" transform="translate(2380 430)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V99H.5z" clip-path="url(#e)" transform="translate(2060 890)"/><path fill="none" d="M.5.5H189V99H.5z" clip-path="url(#e)" transform="translate(2060 890)"/><text xml:space="preserve" x="72" y="17.817" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(2060 890)">Choice</text><path fill="none" d="M1 23.817h188" clip-path="url(#e)" transform="translate(2060 890)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(2060 890)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(2060 890)">label: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(2060 890)">parent: MultiChoiceQuestion</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#e)" font-family="sans-serif" font-size="14" transform="translate(2060 890)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H129V79H.5z" clip-path="url(#i)" transform="translate(2470 230)"/><path fill="none" d="M.5.5H129V79H.5z" clip-path="url(#i)" transform="translate(2470 230)"/><text xml:space="preserve" x="15" y="17.817" stroke="none" clip-path="url(#i)" font-family="sans-serif" font-size="14" transform="translate(2470 230)">MetricMeasure</text><path fill="none" d="M1 23.817h128" clip-path="url(#i)" transform="translate(2470 230)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#i)" font-family="sans-serif" font-size="14" transform="translate(2470 230)">measure: float</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#i)" font-family="sans-serif" font-size="14" transform="translate(2470 230)">weight: float</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#i)" font-family="sans-serif" font-size="14" transform="translate(2470 230)">metric: Metric</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H209V89H.5z" clip-path="url(#j)" transform="translate(900 1360)"/><path fill="none" d="M.5.5H209V89H.5z" clip-path="url(#j)" transform="translate(900 1360)"/><text xml:space="preserve" x="66" y="17.817" stroke="none" clip-path="url(#j)" font-family="sans-serif" font-size="14" transform="translate(900 1360)">StringReply</text><path fill="none" d="M1 23.817h208" clip-path="url(#j)" transform="translate(900 1360)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#j)" font-family="sans-serif" font-size="14" transform="translate(900 1360)">value: str</text><path fill="none" d="M1 44.635h208" clip-path="url(#j)" transform="translate(900 1360)"/><text xml:space="preserve" x="5" y="59.452" stroke="none" clip-path="url(#j)" font-family="sans-serif" font-size="14" transform="translate(900 1360)">as_number: Optional[float]</text><text xml:space="preserve" x="5" y="75.269" stroke="none" clip-path="url(#j)" font-family="sans-serif" font-size="14" transform="translate(900 1360)">as_datetime: Optional[datetime]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H159V89H.5z" clip-path="url(#k)" transform="translate(360 1360)"/><path fill="none" d="M.5.5H159V89H.5z" clip-path="url(#k)" transform="translate(360 1360)"/><text xml:space="preserve" x="21" y="17.817" stroke="none" clip-path="url(#k)" font-family="sans-serif" font-size="14" transform="translate(360 1360)">MultiChoiceReply</text><path fill="none" d="M1 23.817h158" clip-path="url(#k)" transform="translate(360 1360)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#k)" font-family="sans-serif" font-size="14" transform="translate(360 1360)">choice_uuids: list[str]</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#k)" font-family="sans-serif" font-size="14" transform="translate(360 1360)">choices: list[Choice]</text><path fill="none" d="M1 60.452h158" clip-path="url(#k)" transform="translate(360 1360)"/><text xml:space="preserve" x="5" y="75.269" stroke="none" clip-path="url(#k)" font-family="sans-serif" font-size="14" transform="translate(360 1360)">value: list[str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H159V89H.5z" clip-path="url(#k)" transform="translate(540 1360)"/><path fill="none" d="M.5.5H159V89H.5z" clip-path="url(#k)" transform="translate(540 1360)"/><text xml:space="preserve" x="34" y="17.817" stroke="none" clip-path="url(#k)" font-family="sans-serif" font-size="14" transform="translate(540 1360)">ItemListReply</text><path fill="none" d="M1 23.817h158" clip-path="url(#k)" transform="translate(540 1360)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#k)" font-family="sans-serif" font-size="14" transform="translate(540 1360)">items: list[str]</text><path fill="none" d="M1 44.635h158" clip-path="url(#k)" transform="translate(540 1360)"/><text xml:space="preserve" x="5" y="59.452" stroke="none" clip-path="url(#k)" font-family="sans-serif" font-size="14" transform="translate(540 1360)">value: list[str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H159V129H.5z" clip-path="url(#l)" transform="translate(720 1360)"/><path fill="none" d="M.5.5H159V129H.5z" clip-path="url(#l)" transform="translate(720 1360)"/><text xml:space="preserve" x="24" y="17.817" stroke="none" clip-path="url(#l)" font-family="sans-serif" font-size="14" transform="translate(720 1360)">IntegrationReply</text><path fill="none" d="M1 23.817h158" clip-path="url(#l)" transform="translate(720 1360)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#l)" font-family="sans-serif" font-size="14" transform="translate(720 1360)">value: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#l)" font-family="sans-serif" font-size="14" transform="translate(720 1360)">item_id: Optional[str]</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#l)" font-family="sans-serif" font-size="14" transform="translate(720 1360)">is_plain: bool</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#l)" font-family="sans-serif" font-size="14" transform="translate(720 1360)">is_integration: bool</text><path fill="none" d="M1 92.087h158" clip-path="url(#l)" transform="translate(720 1360)"/><text xml:space="preserve" x="5" y="106.904" stroke="none" clip-path="url(#l)" font-family="sans-serif" font-size="14" transform="translate(720 1360)">id: Optional[str]</text><text xml:space="preserve" x="5" y="122.722" stroke="none" clip-path="url(#l)" font-family="sans-serif" font-size="14" transform="translate(720 1360)">url: Optional[str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H329V149H.5z" clip-path="url(#m)" transform="translate(570 880)"/><path fill="none" d="M.5.5H329V149H.5z" clip-path="url(#m)" transform="translate(570 880)"/><text xml:space="preserve" x="107" y="17.817" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">RepliesContainer</text><path fill="none" d="M1 23.817h328" clip-path="url(#m)" transform="translate(570 880)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">replies: dict[str, Reply]</text><path fill="none" d="M1 44.635h328" clip-path="url(#m)" transform="translate(570 880)"/><text xml:space="preserve" x="5" y="59.452" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">get(path: str) -> Optional[Reply]</text><text xml:space="preserve" x="5" y="75.269" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">values(path: str) -> Iterable[Reply]</text><text xml:space="preserve" x="5" y="91.087" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">keys(path: str) -> Iterable[str]</text><text xml:space="preserve" x="5" y="106.904" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">items(path: str) -> ItemsView[str,Reply]</text><text xml:space="preserve" x="5" y="122.722" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">iterate_by_prefix(path_prefix: str): Iterable[Reply]</text><text xml:space="preserve" x="5" y="138.539" stroke="none" clip-path="url(#m)" font-family="sans-serif" font-size="14" transform="translate(570 880)">iterate_by_suffix(path_suffix: str): Iterable[Reply]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V129H.5z" clip-path="url(#n)" transform="translate(390 1150)"/><path fill="none" d="M.5.5H189V129H.5z" clip-path="url(#n)" transform="translate(390 1150)"/><text xml:space="preserve" x="49" y="17.817" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(390 1150)">SimpleAuthor</text><path fill="none" d="M1 23.817h188" clip-path="url(#n)" transform="translate(390 1150)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(390 1150)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(390 1150)">first_name: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(390 1150)">last_name: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(390 1150)">image_url: Optional[str]</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(390 1150)">gravatar_hash: Optional[str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H169V209H.5z" clip-path="url(#o)" transform="translate(0 510)"/><path fill="none" d="M.5.5H169V209H.5z" clip-path="url(#o)" transform="translate(0 510)"/><text xml:space="preserve" x="69" y="17.817" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">User</text><path fill="none" d="M1 23.817h168" clip-path="url(#o)" transform="translate(0 510)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">first_name: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">last_name: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">email: str</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">role: str</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">image_url: Optional[str]</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">affiliation: Optional[str]</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">permissions: list[str]</text><text xml:space="preserve" x="5" y="165.174" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">sources: list[str]</text><text xml:space="preserve" x="5" y="180.991" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">created_at: datetime</text><text xml:space="preserve" x="5" y="196.809" stroke="none" clip-path="url(#o)" font-family="sans-serif" font-size="14" transform="translate(0 510)">updated_at: datetime</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H229V179H.5z" clip-path="url(#p)" transform="translate(150 790)"/><path fill="none" d="M.5.5H229V179H.5z" clip-path="url(#p)" transform="translate(150 790)"/><text xml:space="preserve" x="67" y="17.817" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">Questionnaire</text><path fill="none" d="M1 23.817h228" clip-path="url(#p)" transform="translate(150 790)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">name: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">description: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">project_tags: list[str]</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">version: QuestionnaireVersion</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">versions: list[QuestionnaireVersion]</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">phase: Optional[Phase]</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">replies: RepliesContainer</text><text xml:space="preserve" x="5" y="165.174" stroke="none" clip-path="url(#p)" font-family="sans-serif" font-size="14" transform="translate(150 790)">created_by: User</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H229V149H.5z" clip-path="url(#q)" transform="translate(150 1050)"/><path fill="none" d="M.5.5H229V149H.5z" clip-path="url(#q)" transform="translate(150 1050)"/><text xml:space="preserve" x="41" y="17.817" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">QuestionnaireVersion</text><path fill="none" d="M1 23.817h228" clip-path="url(#q)" transform="translate(150 1050)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">event_uuid: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">name: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">description: str</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">created_by: Optional[SimpleAuthor]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">created_at: datetime</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#q)" font-family="sans-serif" font-size="14" transform="translate(150 1050)">updated_at: datetime</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H159V179H.5z" clip-path="url(#r)" transform="translate(220 540)"/><path fill="none" d="M.5.5H159V179H.5z" clip-path="url(#r)" transform="translate(220 540)"/><text xml:space="preserve" x="52" y="17.817" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">Package</text><path fill="none" d="M1 23.817h158" clip-path="url(#r)" transform="translate(220 540)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">id: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">organization_id: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">km_id: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">version: str</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">versions: list[str]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">name: str</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">description: str</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">created_at: datetime</text><path fill="none" d="M1 155.356h158" clip-path="url(#r)" transform="translate(220 540)"/><text xml:space="preserve" x="5" y="170.174" stroke="none" clip-path="url(#r)" font-family="sans-serif" font-size="14" transform="translate(220 540)">org_id: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H159V99H.5z" clip-path="url(#s)" transform="translate(220 410)"/><path fill="none" d="M.5.5H159V99H.5z" clip-path="url(#s)" transform="translate(220 410)"/><text xml:space="preserve" x="35" y="17.817" stroke="none" clip-path="url(#s)" font-family="sans-serif" font-size="14" transform="translate(220 410)">Organization</text><path fill="none" d="M1 23.817h158" clip-path="url(#s)" transform="translate(220 410)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#s)" font-family="sans-serif" font-size="14" transform="translate(220 410)">id: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#s)" font-family="sans-serif" font-size="14" transform="translate(220 410)">name: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#s)" font-family="sans-serif" font-size="14" transform="translate(220 410)">description: Optional[str]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#s)" font-family="sans-serif" font-size="14" transform="translate(220 410)">affiliation: list[str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H159V79H.5z" clip-path="url(#t)" transform="translate(220 300)"/><path fill="none" d="M.5.5H159V79H.5z" clip-path="url(#t)" transform="translate(220 300)"/><text xml:space="preserve" x="45" y="17.817" stroke="none" clip-path="url(#t)" font-family="sans-serif" font-size="14" transform="translate(220 300)">Document</text><path fill="none" d="M1 23.817h158" clip-path="url(#t)" transform="translate(220 300)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#t)" font-family="sans-serif" font-size="14" transform="translate(220 300)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#t)" font-family="sans-serif" font-size="14" transform="translate(220 300)">created_at: datetime</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#t)" font-family="sans-serif" font-size="14" transform="translate(220 300)">updated_at: datetime</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H159V49H.5z" clip-path="url(#u)" transform="translate(220 220)"/><path fill="none" d="M.5.5H159V49H.5z" clip-path="url(#u)" transform="translate(220 220)"/><text xml:space="preserve" x="30" y="17.817" stroke="none" clip-path="url(#u)" font-family="sans-serif" font-size="14" transform="translate(220 220)">ContextConfig</text><path fill="none" d="M1 23.817h158" clip-path="url(#u)" transform="translate(220 220)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#u)" font-family="sans-serif" font-size="14" transform="translate(220 220)">client_url: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H229V129H.5z" clip-path="url(#v)" transform="translate(720 1150)"/><path fill="none" d="M.5.5H229V129H.5z" clip-path="url(#v)" transform="translate(720 1150)"/><text xml:space="preserve" x="95" y="17.817" stroke="none" clip-path="url(#v)" font-family="sans-serif" font-size="14" font-style="italic" transform="translate(720 1150)">Reply</text><path fill="none" d="M1 23.817h228" clip-path="url(#v)" transform="translate(720 1150)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#v)" font-family="sans-serif" font-size="14" transform="translate(720 1150)">path: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#v)" font-family="sans-serif" font-size="14" transform="translate(720 1150)">fragments: list[str]</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#v)" font-family="sans-serif" font-size="14" transform="translate(720 1150)">reply_type: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#v)" font-family="sans-serif" font-size="14" transform="translate(720 1150)">question: Question</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#v)" font-family="sans-serif" font-size="14" transform="translate(720 1150)">created_by: Optional[SimpleAuthor]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#v)" font-family="sans-serif" font-size="14" transform="translate(720 1150)">created_at: datetime</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H139V89H.5z" clip-path="url(#w)" transform="translate(1130 1360)"/><path fill="none" d="M.5.5H139V89H.5z" clip-path="url(#w)" transform="translate(1130 1360)"/><text xml:space="preserve" x="26" y="17.817" stroke="none" clip-path="url(#w)" font-family="sans-serif" font-size="14" transform="translate(1130 1360)">AnswerReply</text><path fill="none" d="M1 23.817h138" clip-path="url(#w)" transform="translate(1130 1360)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#w)" font-family="sans-serif" font-size="14" transform="translate(1130 1360)">answer_uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#w)" font-family="sans-serif" font-size="14" transform="translate(1130 1360)">answer: Answer</text><path fill="none" d="M1 60.452h138" clip-path="url(#w)" transform="translate(1130 1360)"/><text xml:space="preserve" x="5" y="75.269" stroke="none" clip-path="url(#w)" font-family="sans-serif" font-size="14" transform="translate(1130 1360)">value: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H219V189H.5z" clip-path="url(#x)" transform="translate(870 220)"/><path fill="none" d="M.5.5H219V189H.5z" clip-path="url(#x)" transform="translate(870 220)"/><text xml:space="preserve" x="27" y="17.817" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">KnowledgeModelEntities</text><path fill="none" d="M1 23.817h218" clip-path="url(#x)" transform="translate(870 220)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">answers: dict[str,Answer]</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">chapters: dict[str,Chapter]</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">choices: dict[str,Choice]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">experts: dict[str,Expert]</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">integrations: dict[str,Integration]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">metrics: dict[str,Metric]</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">phases: dict[str,Phase]</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">questions: dict[str,Question]</text><text xml:space="preserve" x="5" y="165.174" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">references: dict[str,Reference]</text><text xml:space="preserve" x="5" y="180.991" stroke="none" clip-path="url(#x)" font-family="sans-serif" font-size="14" transform="translate(870 220)">tags: dict[str,Tag]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V109H.5z" clip-path="url(#y)" transform="translate(1280 810)"/><path fill="none" d="M.5.5H189V109H.5z" clip-path="url(#y)" transform="translate(1280 810)"/><text xml:space="preserve" x="82" y="17.817" stroke="none" clip-path="url(#y)" font-family="sans-serif" font-size="14" transform="translate(1280 810)">Tag</text><path fill="none" d="M1 23.817h188" clip-path="url(#y)" transform="translate(1280 810)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#y)" font-family="sans-serif" font-size="14" transform="translate(1280 810)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#y)" font-family="sans-serif" font-size="14" transform="translate(1280 810)">name: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#y)" font-family="sans-serif" font-size="14" transform="translate(1280 810)">description: Optional[str]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#y)" font-family="sans-serif" font-size="14" transform="translate(1280 810)">color: str</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#y)" font-family="sans-serif" font-size="14" transform="translate(1280 810)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V179H.5z" clip-path="url(#z)" transform="translate(1070 970)"/><path fill="none" d="M.5.5H189V179H.5z" clip-path="url(#z)" transform="translate(1070 970)"/><text xml:space="preserve" x="56" y="17.817" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" font-style="italic" transform="translate(1070 970)">Integration</text><path fill="none" d="M1 23.817h188" clip-path="url(#z)" transform="translate(1070 970)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">id: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">name: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">type: str</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">logo: Optional[str]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">props: dict[str,str]</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">item_url: Optional[str]</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">annotations: dict[str,str]</text><path fill="none" d="M1 155.356h188" clip-path="url(#z)" transform="translate(1070 970)"/><text xml:space="preserve" x="5" y="170.174" stroke="none" clip-path="url(#z)" font-family="sans-serif" font-size="14" transform="translate(1070 970)">item(item_id: str) -> str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H199V109H.5z" clip-path="url(#A)" transform="translate(1270 280)"/><path fill="none" d="M.5.5H199V109H.5z" clip-path="url(#A)" transform="translate(1270 280)"/><text xml:space="preserve" x="78" y="17.817" stroke="none" clip-path="url(#A)" font-family="sans-serif" font-size="14" transform="translate(1270 280)">Metric</text><path fill="none" d="M1 23.817h198" clip-path="url(#A)" transform="translate(1270 280)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#A)" font-family="sans-serif" font-size="14" transform="translate(1270 280)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#A)" font-family="sans-serif" font-size="14" transform="translate(1270 280)">title: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#A)" font-family="sans-serif" font-size="14" transform="translate(1270 280)">description: Optional[str]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#A)" font-family="sans-serif" font-size="14" transform="translate(1270 280)">abbreviation: str</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#A)" font-family="sans-serif" font-size="14" transform="translate(1270 280)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V129H.5z" clip-path="url(#n)" transform="translate(1280 630)"/><path fill="none" d="M.5.5H189V129H.5z" clip-path="url(#n)" transform="translate(1280 630)"/><text xml:space="preserve" x="75" y="17.817" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 630)">Phase</text><path fill="none" d="M1 23.817h188" clip-path="url(#n)" transform="translate(1280 630)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 630)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 630)">title: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 630)">description: Optional[str]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 630)">order: int</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 630)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H179V69H.5z" clip-path="url(#B)" transform="translate(2070 660)"/><path fill="none" d="M.5.5H179V69H.5z" clip-path="url(#B)" transform="translate(2070 660)"/><text xml:space="preserve" x="22" y="17.817" stroke="none" clip-path="url(#B)" font-family="sans-serif" font-size="14" transform="translate(2070 660)">IntegrationQuestion</text><path fill="none" d="M1 23.817h178" clip-path="url(#B)" transform="translate(2070 660)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#B)" font-family="sans-serif" font-size="14" transform="translate(2070 660)">integration: Integration</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#B)" font-family="sans-serif" font-size="14" transform="translate(2070 660)">props: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 750)"/><path fill="none" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 750)"/><text xml:space="preserve" x="19" y="17.817" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 750)">MultiChoiceQuestion</text><path fill="none" d="M1 23.817h178" clip-path="url(#C)" transform="translate(2070 750)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 750)">choices: list[Choice]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 420)"/><path fill="none" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 420)"/><text xml:space="preserve" x="47" y="17.817" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 420)">ListQuestion</text><path fill="none" d="M1 23.817h178" clip-path="url(#C)" transform="translate(2070 420)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 420)">followups: list[Question]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 580)"/><path fill="none" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 580)"/><text xml:space="preserve" x="40" y="17.817" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 580)">ValueQuestion</text><path fill="none" d="M1 23.817h178" clip-path="url(#C)" transform="translate(2070 580)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 580)">value_type: str</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 500)"/><path fill="none" d="M.5.5H179V59H.5z" clip-path="url(#C)" transform="translate(2070 500)"/><text xml:space="preserve" x="32" y="17.817" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 500)">OptionsQuestion</text><path fill="none" d="M1 23.817h178" clip-path="url(#C)" transform="translate(2070 500)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#C)" font-family="sans-serif" font-size="14" transform="translate(2070 500)">answers: list[Answer]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H369V319H.5z" clip-path="url(#D)" transform="translate(1640 490)"/><path fill="none" d="M.5.5H369V319H.5z" clip-path="url(#D)" transform="translate(1640 490)"/><text xml:space="preserve" x="153" y="17.817" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" font-style="italic" transform="translate(1640 490)">Question</text><path fill="none" d="M1 23.817h368" clip-path="url(#D)" transform="translate(1640 490)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">type: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">title: str</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">text: Optional[str]</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">experts: list[Expert]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">references: list[Reference]</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">tags: list[Tag]</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">required_phase: Optional[Phase]</text><text xml:space="preserve" x="5" y="165.174" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">is_required: bool</text><text xml:space="preserve" x="5" y="180.991" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">replies: dict[str, Reply]</text><text xml:space="preserve" x="5" y="196.809" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">parent: Union[Chapter,ListQuestion,Answer]</text><text xml:space="preserve" x="5" y="212.626" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">annotations: dict[str,str]</text><path fill="none" d="M1 218.626h368" clip-path="url(#D)" transform="translate(1640 490)"/><text xml:space="preserve" x="5" y="233.443" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">url_references: list[URLReference]</text><text xml:space="preserve" x="5" y="249.261" stroke="none" clip-path="url(#D)" font-family="sans-serif" font-size="14" transform="translate(1640 490)">resource_page_references: list[ResourcePageReference]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H189V129H.5z" clip-path="url(#n)" transform="translate(1280 490)"/><path fill="none" d="M.5.5H189V129H.5z" clip-path="url(#n)" transform="translate(1280 490)"/><text xml:space="preserve" x="68" y="17.817" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 490)">Chapter</text><path fill="none" d="M1 23.817h188" clip-path="url(#n)" transform="translate(1280 490)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 490)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 490)">title: str</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 490)">text: Optional[str]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 490)">questions: list[Question]</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 490)">reports: list[ReportItem]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#n)" font-family="sans-serif" font-size="14" transform="translate(1280 490)">annotations: dict[str,str]</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H219V199H.5z" clip-path="url(#E)" transform="translate(870 480)"/><path fill="none" d="M.5.5H219V199H.5z" clip-path="url(#E)" transform="translate(870 480)"/><text xml:space="preserve" x="52" y="17.817" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">KnowledgeModel</text><path fill="none" d="M1 23.817h218" clip-path="url(#E)" transform="translate(870 480)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">uuid: str</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">chapters: list[Chapter]</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">integrations: list[Integration]</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">metrics: list[Metric]</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">phases: list[Phase]</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">tags: list[Tag]</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">entities: KnowledgeModelEntities</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">annotations: dict[str,str]</text><path fill="none" d="M1 155.356h218" clip-path="url(#E)" transform="translate(870 480)"/><text xml:space="preserve" x="5" y="170.174" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">a: dict[str,str]</text><text xml:space="preserve" x="5" y="185.991" stroke="none" clip-path="url(#E)" font-family="sans-serif" font-size="14" transform="translate(870 480)">e: KnowledgeModelEntities</text><path fill="none" fill-opacity="0" stroke="none" stroke-opacity="0" d="M.5.5H219V279H.5z" clip-path="url(#F)" transform="translate(530 220)"/><path fill="none" d="M.5.5H219V279H.5z" clip-path="url(#F)" transform="translate(530 220)"/><text xml:space="preserve" x="45" y="17.817" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" font-weight="bold" transform="translate(530 220)">DocumentContext</text><path fill="none" d="M1 23.817h218" clip-path="url(#F)" transform="translate(530 220)"/><text xml:space="preserve" x="5" y="38.635" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">config: ContextConfig</text><text xml:space="preserve" x="5" y="54.452" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">current_phase: Optional[Phase]</text><text xml:space="preserve" x="5" y="70.269" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">document: Document</text><text xml:space="preserve" x="5" y="86.087" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">km: KnowledgeModel</text><text xml:space="preserve" x="5" y="101.904" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">organization: Organization</text><text xml:space="preserve" x="5" y="117.722" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">package: Package</text><text xml:space="preserve" x="5" y="133.539" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">questionnaire: Questionnaire</text><text xml:space="preserve" x="5" y="149.356" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">report: Report</text><path fill="none" d="M1 155.356h218" clip-path="url(#F)" transform="translate(530 220)"/><text xml:space="preserve" x="5" y="170.174" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">e: KnowledgeModelEntities</text><text xml:space="preserve" x="5" y="185.991" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">cfg: ContextConfig</text><text xml:space="preserve" x="5" y="201.809" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">doc: Document</text><text xml:space="preserve" x="5" y="217.626" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">qtn: Questionnaire</text><text xml:space="preserve" x="5" y="233.443" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">org: Organization</text><text xml:space="preserve" x="5" y="249.261" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">pkg: Package</text><text xml:space="preserve" x="5" y="265.078" stroke="none" clip-path="url(#F)" font-family="sans-serif" font-size="14" transform="translate(530 220)">replies: RepliesContainer</text><g fill="none" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M10.5 300.5v-289" clip-path="url(#G)" transform="translate(1960 800)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M17 22.258 10.5 11 4 22.258" clip-path="url(#G)" transform="translate(1960 800)"/></g><g stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="14" y="38.817" clip-path="url(#G)" transform="translate(1960 800)">1</text><text xml:space="preserve" x="14" y="284" clip-path="url(#G)" transform="translate(1960 800)">parent</text></g><g fill="none" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M570.5 119.5v-99M570.5 20.5h-560M10.5 20.5v160" clip-path="url(#H)" transform="translate(1830 310)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M577 108.742 570.5 120l-6.5-11.258" clip-path="url(#H)" transform="translate(1830 310)"/></g><g stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="574" y="104" clip-path="url(#H)" transform="translate(1830 310)">0..1</text><text xml:space="preserve" x="14" y="164" clip-path="url(#H)" transform="translate(1830 310)">parent</text></g><g fill="none" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M10.5 90.5v-79" clip-path="url(#I)" transform="translate(2090 800)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M17 22.258 10.5 11 4 22.258" clip-path="url(#I)" transform="translate(2090 800)"/></g><g stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="14" y="38.817" clip-path="url(#I)" transform="translate(2090 800)">1</text><text xml:space="preserve" x="14" y="74" clip-path="url(#I)" transform="translate(2090 800)">parent</text></g><g fill="none" stroke="#357546" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M699.5 20.5h-629M70.5 20.5v460M70.5 480.5h-60" clip-path="url(#J)" transform="translate(940 780)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M688.742 14 700 20.5 688.742 27" clip-path="url(#J)" transform="translate(940 780)"/></g><g fill="#357546" stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="671.148" y="33.817" clip-path="url(#J)" transform="translate(940 780)">1</text><text xml:space="preserve" x="29" y="493.817" clip-path="url(#J)" transform="translate(940 780)">question</text></g><path fill="none" d="M1010.5 20.5h-860M150.5 20.5v80M150.5 100.5h-139M22.258 94 11 100.5l11.258 6.5" clip-path="url(#K)" transform="translate(1460 240)"/><text xml:space="preserve" x="946.947" y="33.817" stroke="none" clip-path="url(#K)" font-family="sans-serif" font-size="14" transform="translate(1460 240)">metric</text><text xml:space="preserve" x="29" y="113.817" stroke="none" clip-path="url(#K)" font-family="sans-serif" font-size="14" transform="translate(1460 240)">1</text><g fill="none" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M140.5 10.5h-90M50.5 10.5v70M50.5 80.5h-39" clip-path="url(#L)" transform="translate(2240 440)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M22.258 74 11 80.5 22.258 87" clip-path="url(#L)" transform="translate(2240 440)"/></g><g stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="29" y="93.817" clip-path="url(#L)" transform="translate(2240 440)">0..1</text><text xml:space="preserve" x="76.004" y="23.817" clip-path="url(#L)" transform="translate(2240 440)">parent</text></g><path fill="none" d="M10.5 80.5h70M80.5 80.5v-70M80.5 10.5h59M128.742 17 140 10.5 128.742 4" clip-path="url(#L)" transform="translate(2240 470)"/><text xml:space="preserve" x="29" y="93.817" stroke="none" clip-path="url(#L)" font-family="sans-serif" font-size="14" transform="translate(2240 470)">answers</text><text xml:space="preserve" x="95.541" y="23.817" stroke="none" clip-path="url(#L)" font-family="sans-serif" font-size="14" transform="translate(2240 470)">0..*</text><path fill="none" d="M10.5 11.5v39M10.5 50.5h240M250.5 50.5v30" clip-path="url(#M)" transform="translate(1150 1140)"/><path fill="#fff" stroke="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#M)" transform="translate(1150 1140)"/><path fill="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#M)" transform="translate(1150 1140)"/><path fill="none" d="M10.5 11.5v69" clip-path="url(#N)" transform="translate(1150 1140)"/><path fill="#fff" stroke="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#N)" transform="translate(1150 1140)"/><path fill="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#N)" transform="translate(1150 1140)"/><path fill="none" d="M50.5 299.5v-109M50.5 190.5h-40M10.5 190.5v-180M57 288.742 50.5 300 44 288.742" clip-path="url(#O)" transform="translate(1990 800)"/><text xml:space="preserve" x="54" y="284" stroke="none" clip-path="url(#O)" font-family="sans-serif" font-size="14" transform="translate(1990 800)">0..*</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#O)" font-family="sans-serif" font-size="14" transform="translate(1990 800)">references</text><g fill="none" stroke="#00f" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M49.5 430.5h-39M10.5 430.5v-160M10.5 270.5h110M120.5 270.5v-260" clip-path="url(#P)" transform="translate(1650 800)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M38.742 424 50 430.5 38.742 437" clip-path="url(#P)" transform="translate(1650 800)"/></g><text xml:space="preserve" x="5.541" y="443.817" fill="#00f" stroke="none" clip-path="url(#P)" font-family="sans-serif" font-size="14" transform="translate(1650 800)">0..*</text><g fill="none" stroke="#00f" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M10.5 299.5v-289" clip-path="url(#Q)" transform="translate(1790 800)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M17 288.742 10.5 300 4 288.742" clip-path="url(#Q)" transform="translate(1790 800)"/></g><text xml:space="preserve" x="14" y="284" fill="#00f" stroke="none" clip-path="url(#Q)" font-family="sans-serif" font-size="14" transform="translate(1790 800)">0..*</text><path fill="none" d="M69.5 10.5h-39M30.5 10.5v90M30.5 100.5h-20" clip-path="url(#R)" transform="translate(1890 1130)"/><path fill="#fff" stroke="none" d="M58.742 4 70 10.5 58.742 17Z" clip-path="url(#R)" transform="translate(1890 1130)"/><path fill="none" d="M58.742 4 70 10.5 58.742 17Z" clip-path="url(#R)" transform="translate(1890 1130)"/><path fill="none" d="M69.5 10.5h-59" clip-path="url(#S)" transform="translate(1890 1130)"/><path fill="#fff" stroke="none" d="M58.742 4 70 10.5 58.742 17Z" clip-path="url(#S)" transform="translate(1890 1130)"/><path fill="none" d="M58.742 4 70 10.5 58.742 17Z" clip-path="url(#S)" transform="translate(1890 1130)"/><path fill="none" d="M11.5 170.5h229M240.5 170.5v-160M22.258 177 11 170.5l11.258-6.5" clip-path="url(#T)" transform="translate(1460 800)"/><text xml:space="preserve" x="29" y="183.817" stroke="none" clip-path="url(#T)" font-family="sans-serif" font-size="14" transform="translate(1460 800)">0..*</text><text xml:space="preserve" x="244" y="38.817" stroke="none" clip-path="url(#T)" font-family="sans-serif" font-size="14" transform="translate(1460 800)">experts</text><g fill="none" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M360.5 109.5v-89M360.5 20.5h-350M10.5 20.5v160" clip-path="url(#U)" transform="translate(1830 310)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M367 98.742 360.5 110 354 98.742" clip-path="url(#U)" transform="translate(1830 310)"/></g><g stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="364" y="94" clip-path="url(#U)" transform="translate(1830 310)">0..1</text><text xml:space="preserve" x="14" y="164" clip-path="url(#U)" transform="translate(1830 310)">parent</text></g><g fill="none" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M11.5 20.5h169" clip-path="url(#V)" transform="translate(1460 550)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M22.258 27 11 20.5 22.258 14" clip-path="url(#V)" transform="translate(1460 550)"/></g><g stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="29" y="33.817" clip-path="url(#V)" transform="translate(1460 550)">0..1</text><text xml:space="preserve" x="116.004" y="33.817" clip-path="url(#V)" transform="translate(1460 550)">parent</text></g><g fill="none" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M10.5 10.5v310M10.5 320.5h230M240.5 320.5v69" clip-path="url(#W)" transform="translate(1140 100)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M234 378.742 240.5 390l6.5-11.258" clip-path="url(#W)" transform="translate(1140 100)"/></g><g stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="244" y="374" clip-path="url(#W)" transform="translate(1140 100)">0..1</text><text xml:space="preserve" x="14" y="38.817" clip-path="url(#W)" transform="translate(1140 100)">chapter</text></g><g fill="#357546" stroke="#357546"><path fill="none" d="M700.5 20.5h-650M50.5 20.5v460M50.5 480.5h-39M22.258 474 11 480.5l11.258 6.5" clip-path="url(#J)" transform="translate(940 750)"/><text xml:space="preserve" x="634.63" y="33.817" stroke="none" clip-path="url(#J)" font-family="sans-serif" font-size="14" transform="translate(940 750)">replies</text><text xml:space="preserve" x="29" y="493.817" stroke="none" clip-path="url(#J)" font-family="sans-serif" font-size="14" transform="translate(940 750)">0..*</text></g><path fill="none" d="M239.5 20.5h-229M228.742 14 240 20.5 228.742 27" clip-path="url(#X)" transform="translate(740 60)"/><text xml:space="preserve" x="195.541" y="33.817" stroke="none" clip-path="url(#X)" font-family="sans-serif" font-size="14" transform="translate(740 60)">0..*</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#X)" font-family="sans-serif" font-size="14" transform="translate(740 60)">chapter_reports</text><g fill="none" stroke="#00f" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M10.5 389.5v-379" clip-path="url(#Y)" transform="translate(610 490)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M17 378.742 10.5 390 4 378.742" clip-path="url(#Y)" transform="translate(610 490)"/></g><g fill="#00f" stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="14" y="38.817" clip-path="url(#Y)" transform="translate(610 490)">replies</text><text xml:space="preserve" x="14" y="374" clip-path="url(#Y)" transform="translate(610 490)">1</text></g><g fill="none" stroke="#00f" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M129.5 20.5h-119" clip-path="url(#Z)" transform="translate(740 310)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M118.742 14 130 20.5 118.742 27" clip-path="url(#Z)" transform="translate(740 310)"/></g><g fill="#00f" stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="101.147" y="33.817" clip-path="url(#Z)" transform="translate(740 310)">1</text><text xml:space="preserve" x="29" y="33.817" clip-path="url(#Z)" transform="translate(740 310)">e</text></g><path fill="none" d="M10.5 11.5v69M4 22.258 10.5 11 17 22.258" clip-path="url(#aa)" transform="translate(970 400)"/><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#aa)" font-family="sans-serif" font-size="14" transform="translate(970 400)">1</text><text xml:space="preserve" x="14" y="64" stroke="none" clip-path="url(#aa)" font-family="sans-serif" font-size="14" transform="translate(970 400)">e</text><path fill="none" d="M909.5 20.5h-579M330.5 20.5v90M330.5 110.5h-320M898.742 14 910 20.5 898.742 27" clip-path="url(#ab)" transform="translate(370 720)"/><text xml:space="preserve" x="29" y="123.817" stroke="none" clip-path="url(#ab)" font-family="sans-serif" font-size="14" transform="translate(370 720)">phase</text><text xml:space="preserve" x="863.436" y="33.817" stroke="none" clip-path="url(#ab)" font-family="sans-serif" font-size="14" transform="translate(370 720)">0..1</text><g fill="none" stroke="#00f" stroke-dasharray="1,2" stroke-linecap="butt" stroke-miterlimit="5"><path d="M589.5 230.5h-579M10.5 230.5v-220" clip-path="url(#ac)" transform="translate(690 490)"/><path stroke-dasharray="none" stroke-linecap="square" stroke-miterlimit="10" d="M578.742 224 590 230.5l-11.258 6.5" clip-path="url(#ac)" transform="translate(690 490)"/></g><g fill="#00f" stroke="none" font-family="sans-serif" font-size="14"><text xml:space="preserve" x="14" y="38.817" clip-path="url(#ac)" transform="translate(690 490)">current_phase</text><text xml:space="preserve" x="543.436" y="243.817" clip-path="url(#ac)" transform="translate(690 490)">0..1</text></g><path fill="none" d="M10.5 470.5v50M10.5 520.5h1720M1730.5 520.5v-509M1737 22.258 1730.5 11l-6.5 11.258" clip-path="url(#ad)" transform="translate(430 980)"/><text xml:space="preserve" x="14" y="498.817" stroke="none" clip-path="url(#ad)" font-family="sans-serif" font-size="14" transform="translate(430 980)">choices</text><text xml:space="preserve" x="1734" y="38.817" stroke="none" clip-path="url(#ad)" font-family="sans-serif" font-size="14" transform="translate(430 980)">0..*</text><path fill="none" d="M210.5 90.5v-70M210.5 20.5h-200M10.5 20.5v139M4 148.742 10.5 160l6.5-11.258" clip-path="url(#ae)" transform="translate(1890 330)"/><text xml:space="preserve" x="214" y="74" stroke="none" clip-path="url(#ae)" font-family="sans-serif" font-size="14" transform="translate(1890 330)">followups</text><text xml:space="preserve" x="14" y="144" stroke="none" clip-path="url(#ae)" font-family="sans-serif" font-size="14" transform="translate(1890 330)">0..*</text><path fill="none" d="M770.5 160.5v-140M770.5 20.5h-760M10.5 20.5v199M4 208.742 10.5 220l6.5-11.258" clip-path="url(#af)" transform="translate(1660 270)"/><text xml:space="preserve" x="774" y="144" stroke="none" clip-path="url(#af)" font-family="sans-serif" font-size="14" transform="translate(1660 270)">followups</text><text xml:space="preserve" x="14" y="204" stroke="none" clip-path="url(#af)" font-family="sans-serif" font-size="14" transform="translate(1660 270)">0..*</text><path fill="none" d="M10.5 830.5h1230M1240.5 830.5v-819M1247 22.258 1240.5 11l-6.5 11.258" clip-path="url(#ag)" transform="translate(1260 570)"/><text xml:space="preserve" x="29" y="843.817" stroke="none" clip-path="url(#ag)" font-family="sans-serif" font-size="14" transform="translate(1260 570)">answer</text><text xml:space="preserve" x="1244" y="38.817" stroke="none" clip-path="url(#ag)" font-family="sans-serif" font-size="14" transform="translate(1260 570)">1</text><path fill="none" d="M10.5 130.5v-119M17 22.258 10.5 11 4 22.258" clip-path="url(#ah)" transform="translate(2500 300)"/><text xml:space="preserve" x="14" y="114" stroke="none" clip-path="url(#ah)" font-family="sans-serif" font-size="14" transform="translate(2500 300)">metric_measures</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#ah)" font-family="sans-serif" font-size="14" transform="translate(2500 300)">0..*</text><path fill="none" d="M1000.5 10.5h90M1090.5 10.5v340M1090.5 350.5H11.5M22.258 344 11 350.5l11.258 6.5" clip-path="url(#ai)" transform="translate(1250 690)"/><text xml:space="preserve" x="1019" y="23.817" stroke="none" clip-path="url(#ai)" font-family="sans-serif" font-size="14" transform="translate(1250 690)">integration</text><text xml:space="preserve" x="29" y="363.817" stroke="none" clip-path="url(#ai)" font-family="sans-serif" font-size="14" transform="translate(1250 690)">1</text><path fill="none" d="M180.5 20.5h-169M22.258 14 11 20.5 22.258 27" clip-path="url(#V)" transform="translate(1460 690)"/><text xml:space="preserve" x="55.417" y="33.817" stroke="none" clip-path="url(#V)" font-family="sans-serif" font-size="14" transform="translate(1460 690)">required_phase</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#V)" font-family="sans-serif" font-size="14" transform="translate(1460 690)">0..1</text><path fill="none" d="M179.5 20.5h-169M168.742 14 180 20.5 168.742 27" clip-path="url(#V)" transform="translate(1460 510)"/><text xml:space="preserve" x="135.541" y="33.817" stroke="none" clip-path="url(#V)" font-family="sans-serif" font-size="14" transform="translate(1460 510)">0..*</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#V)" font-family="sans-serif" font-size="14" transform="translate(1460 510)">questions</text><path fill="none" d="M239.5 200.5h-229M10.5 200.5v-190M228.742 194 240 200.5l-11.258 6.5" clip-path="url(#aj)" transform="translate(1040 670)"/><text xml:space="preserve" x="195.541" y="213.817" stroke="none" clip-path="url(#aj)" font-family="sans-serif" font-size="14" transform="translate(1040 670)">0..*</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#aj)" font-family="sans-serif" font-size="14" transform="translate(1040 670)">tags</text><path fill="none" d="M149.5 370.5h-139M10.5 370.5v-360M138.742 364 150 370.5l-11.258 6.5" clip-path="url(#ak)" transform="translate(920 670)"/><text xml:space="preserve" x="105.541" y="383.817" stroke="none" clip-path="url(#ak)" font-family="sans-serif" font-size="14" transform="translate(920 670)">0..*</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#ak)" font-family="sans-serif" font-size="14" transform="translate(920 670)">integrations</text><path fill="none" d="M199.5 20.5h-189M188.742 14 200 20.5 188.742 27" clip-path="url(#al)" transform="translate(1080 620)"/><text xml:space="preserve" x="155.541" y="33.817" stroke="none" clip-path="url(#al)" font-family="sans-serif" font-size="14" transform="translate(1080 620)">0..*</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#al)" font-family="sans-serif" font-size="14" transform="translate(1080 620)">phases</text><path fill="none" d="M189.5 10.5h-89M100.5 10.5v170M100.5 180.5h-90M178.742 4 190 10.5 178.742 17" clip-path="url(#am)" transform="translate(1080 320)"/><text xml:space="preserve" x="145.541" y="23.817" stroke="none" clip-path="url(#am)" font-family="sans-serif" font-size="14" transform="translate(1080 320)">0..*</text><text xml:space="preserve" x="29" y="193.817" stroke="none" clip-path="url(#am)" font-family="sans-serif" font-size="14" transform="translate(1080 320)">metrics</text><path fill="none" d="M199.5 20.5h-189M188.742 14 200 20.5 188.742 27" clip-path="url(#al)" transform="translate(1080 530)"/><text xml:space="preserve" x="155.541" y="33.817" stroke="none" clip-path="url(#al)" font-family="sans-serif" font-size="14" transform="translate(1080 530)">0..*</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#al)" font-family="sans-serif" font-size="14" transform="translate(1080 530)">chapters</text><path fill="none" d="M10.5 20.5h160M170.5 20.5v39M164 48.742 170.5 60l6.5-11.258" clip-path="url(#an)" transform="translate(740 420)"/><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#an)" font-family="sans-serif" font-size="14" transform="translate(740 420)">km</text><text xml:space="preserve" x="174" y="44" stroke="none" clip-path="url(#an)" font-family="sans-serif" font-size="14" transform="translate(740 420)">1</text><path fill="none" d="M10.5 10.5v99M4 98.742 10.5 110 17 98.742" clip-path="url(#ao)" transform="translate(1350 170)"/><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#ao)" font-family="sans-serif" font-size="14" transform="translate(1350 170)">metric</text><text xml:space="preserve" x="14" y="94" stroke="none" clip-path="url(#ao)" font-family="sans-serif" font-size="14" transform="translate(1350 170)">1</text><path fill="none" d="M10.5 11.5v329M10.5 340.5h200M210.5 340.5v50M4 22.258 10.5 11 17 22.258" clip-path="url(#ap)" transform="translate(1100 100)"/><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#ap)" font-family="sans-serif" font-size="14" transform="translate(1100 100)">0..*</text><text xml:space="preserve" x="214" y="374" stroke="none" clip-path="url(#ap)" font-family="sans-serif" font-size="14" transform="translate(1100 100)">reports</text><path fill="none" d="M10.5 20.5h160M170.5 20.5v39M164 48.742 170.5 60l6.5-11.258" clip-path="url(#aq)" transform="translate(1190 50)"/><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#aq)" font-family="sans-serif" font-size="14" transform="translate(1190 50)">metrics</text><text xml:space="preserve" x="174" y="44" stroke="none" clip-path="url(#aq)" font-family="sans-serif" font-size="14" transform="translate(1190 50)">0..1</text><path fill="none" d="M10.5 20.5h299M298.742 27 310 20.5 298.742 14" clip-path="url(#ar)" transform="translate(1190 10)"/><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#ar)" font-family="sans-serif" font-size="14" transform="translate(1190 10)">indications</text><text xml:space="preserve" x="265.541" y="33.817" stroke="none" clip-path="url(#ar)" font-family="sans-serif" font-size="14" transform="translate(1190 10)">0..*</text><path fill="none" d="M239.5 20.5h-229M228.742 14 240 20.5 228.742 27" clip-path="url(#X)" transform="translate(740 10)"/><text xml:space="preserve" x="211.148" y="33.817" stroke="none" clip-path="url(#X)" font-family="sans-serif" font-size="14" transform="translate(740 10)">1</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#X)" font-family="sans-serif" font-size="14" transform="translate(740 10)">total_report</text><path fill="none" d="M10.5 120.5v-109M17 22.258 10.5 11 4 22.258" clip-path="url(#as)" transform="translate(620 100)"/><text xml:space="preserve" x="14" y="104" stroke="none" clip-path="url(#as)" font-family="sans-serif" font-size="14" transform="translate(620 100)">report</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#as)" font-family="sans-serif" font-size="14" transform="translate(620 100)">1</text><path fill="none" d="M160.5 20.5h-149M22.258 14 11 20.5 22.258 27" clip-path="url(#at)" transform="translate(370 230)"/><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#at)" font-family="sans-serif" font-size="14" transform="translate(370 230)">1</text><text xml:space="preserve" x="118.952" y="33.817" stroke="none" clip-path="url(#at)" font-family="sans-serif" font-size="14" transform="translate(370 230)">cfg</text><path fill="none" d="M160.5 20.5h-149M22.258 14 11 20.5 22.258 27" clip-path="url(#at)" transform="translate(370 320)"/><text xml:space="preserve" x="115.418" y="33.817" stroke="none" clip-path="url(#at)" font-family="sans-serif" font-size="14" transform="translate(370 320)">doc</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#at)" font-family="sans-serif" font-size="14" transform="translate(370 320)">1</text><path fill="none" d="M160.5 20.5h-149M22.258 14 11 20.5 22.258 27" clip-path="url(#at)" transform="translate(370 440)"/><text xml:space="preserve" x="116.942" y="33.817" stroke="none" clip-path="url(#at)" font-family="sans-serif" font-size="14" transform="translate(370 440)">org</text><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#at)" font-family="sans-serif" font-size="14" transform="translate(370 440)">1</text><path fill="none" d="M170.5 10.5v80M170.5 90.5h-159M22.258 84 11 90.5 22.258 97" clip-path="url(#au)" transform="translate(370 490)"/><text xml:space="preserve" x="174" y="38.817" stroke="none" clip-path="url(#au)" font-family="sans-serif" font-size="14" transform="translate(370 490)">pkg</text><text xml:space="preserve" x="29" y="103.817" stroke="none" clip-path="url(#au)" font-family="sans-serif" font-size="14" transform="translate(370 490)">1</text><g fill="#357546" stroke="#357546"><path fill="none" d="M10.5 10.5v119M4 118.742 10.5 130l6.5-11.258" clip-path="url(#av)" transform="translate(790 1020)"/><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#av)" font-family="sans-serif" font-size="14" transform="translate(790 1020)">replies</text><text xml:space="preserve" x="14" y="114" stroke="none" clip-path="url(#av)" font-family="sans-serif" font-size="14" transform="translate(790 1020)">0..*</text></g><path fill="none" d="M10.5 20.5h189M188.742 27 200 20.5 188.742 14" clip-path="url(#al)" transform="translate(370 910)"/><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#al)" font-family="sans-serif" font-size="14" transform="translate(370 910)">replies</text><text xml:space="preserve" x="171.148" y="33.817" stroke="none" clip-path="url(#al)" font-family="sans-serif" font-size="14" transform="translate(370 910)">1</text><path fill="none" d="M10.5 299.5v-39M10.5 260.5h300M310.5 260.5v-250M17 288.742 10.5 300 4 288.742" clip-path="url(#aw)" transform="translate(270 490)"/><text xml:space="preserve" x="14" y="284" stroke="none" clip-path="url(#aw)" font-family="sans-serif" font-size="14" transform="translate(270 490)">1</text><text xml:space="preserve" x="314" y="38.817" stroke="none" clip-path="url(#aw)" font-family="sans-serif" font-size="14" transform="translate(270 490)">qtn</text><path fill="none" d="M10.5 11.5v179M10.5 190.5h100M4 22.258 10.5 11 17 22.258" clip-path="url(#ax)" transform="translate(40 710)"/><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#ax)" font-family="sans-serif" font-size="14" transform="translate(40 710)">1</text><text xml:space="preserve" x="16.596" y="203.817" stroke="none" clip-path="url(#ax)" font-family="sans-serif" font-size="14" transform="translate(40 710)">created_by</text><path fill="none" d="M10.5 89.5v-79M17 78.742 10.5 90 4 78.742" clip-path="url(#ay)" transform="translate(230 960)"/><text xml:space="preserve" x="14" y="74" stroke="none" clip-path="url(#ay)" font-family="sans-serif" font-size="14" transform="translate(230 960)">0..*</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#ay)" font-family="sans-serif" font-size="14" transform="translate(230 960)">versions</text><path fill="none" d="M159.5 70.5h-149M10.5 70.5v-60M148.742 64 160 70.5 148.742 77" clip-path="url(#az)" transform="translate(230 1190)"/><text xml:space="preserve" x="113.436" y="83.817" stroke="none" clip-path="url(#az)" font-family="sans-serif" font-size="14" transform="translate(230 1190)">0..1</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#az)" font-family="sans-serif" font-size="14" transform="translate(230 1190)">created_by</text><path fill="none" d="M11.5 20.5h139M22.258 27 11 20.5 22.258 14" clip-path="url(#aA)" transform="translate(570 1210)"/><text xml:space="preserve" x="29" y="33.817" stroke="none" clip-path="url(#aA)" font-family="sans-serif" font-size="14" transform="translate(570 1210)">0..1</text><text xml:space="preserve" x="56.596" y="33.817" stroke="none" clip-path="url(#aA)" font-family="sans-serif" font-size="14" transform="translate(570 1210)">created_by</text><path fill="none" d="M370.5 11.5v49M370.5 60.5h-360M10.5 60.5v30" clip-path="url(#aB)" transform="translate(430 1270)"/><path fill="#fff" stroke="none" d="M364 22.258 370.5 11l6.5 11.258Z" clip-path="url(#aB)" transform="translate(430 1270)"/><path fill="none" d="M364 22.258 370.5 11l6.5 11.258Z" clip-path="url(#aB)" transform="translate(430 1270)"/><path fill="none" d="M190.5 11.5v49M190.5 60.5h-180M10.5 60.5v30" clip-path="url(#aC)" transform="translate(610 1270)"/><path fill="#fff" stroke="none" d="M184 22.258 190.5 11l6.5 11.258Z" clip-path="url(#aC)" transform="translate(610 1270)"/><path fill="none" d="M184 22.258 190.5 11l6.5 11.258Z" clip-path="url(#aC)" transform="translate(610 1270)"/><path fill="none" d="M10.5 11.5v79" clip-path="url(#aD)" transform="translate(790 1270)"/><path fill="#fff" stroke="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#aD)" transform="translate(790 1270)"/><path fill="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#aD)" transform="translate(790 1270)"/><path fill="none" d="M10.5 11.5v49M10.5 60.5h200M210.5 60.5v30" clip-path="url(#aE)" transform="translate(790 1270)"/><path fill="#fff" stroke="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#aE)" transform="translate(790 1270)"/><path fill="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#aE)" transform="translate(790 1270)"/><path fill="none" d="M10.5 11.5v49M10.5 60.5h400M410.5 60.5v30" clip-path="url(#aF)" transform="translate(790 1270)"/><path fill="#fff" stroke="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#aF)" transform="translate(790 1270)"/><path fill="none" d="M4 22.258 10.5 11 17 22.258Z" clip-path="url(#aF)" transform="translate(790 1270)"/><path fill="none" d="M11.5 10.5h39M50.5 10.5v160M50.5 170.5h20" clip-path="url(#aG)" transform="translate(2000 610)"/><path fill="#fff" stroke="none" d="M22.258 17 11 10.5 22.258 4Z" clip-path="url(#aG)" transform="translate(2000 610)"/><path fill="none" d="M22.258 17 11 10.5 22.258 4Z" clip-path="url(#aG)" transform="translate(2000 610)"/><path fill="none" d="M11.5 100.5h39M50.5 100.5v-90M50.5 10.5h20" clip-path="url(#R)" transform="translate(2000 520)"/><path fill="#fff" stroke="none" d="M22.258 107 11 100.5 22.258 94Z" clip-path="url(#R)" transform="translate(2000 520)"/><path fill="none" d="M22.258 107 11 100.5 22.258 94Z" clip-path="url(#R)" transform="translate(2000 520)"/><path fill="none" d="M11.5 180.5h39M50.5 180.5v-170M50.5 10.5h20" clip-path="url(#aH)" transform="translate(2000 440)"/><path fill="#fff" stroke="none" d="M22.258 187 11 180.5l11.258-6.5Z" clip-path="url(#aH)" transform="translate(2000 440)"/><path fill="none" d="M22.258 187 11 180.5l11.258-6.5Z" clip-path="url(#aH)" transform="translate(2000 440)"/><path fill="none" d="M11.5 10.5h39M50.5 10.5v80M50.5 90.5h20" clip-path="url(#aI)" transform="translate(2000 610)"/><path fill="#fff" stroke="none" d="M22.258 17 11 10.5 22.258 4Z" clip-path="url(#aI)" transform="translate(2000 610)"/><path fill="none" d="M22.258 17 11 10.5 22.258 4Z" clip-path="url(#aI)" transform="translate(2000 610)"/><path fill="none" d="M11.5 10.5h59" clip-path="url(#S)" transform="translate(2000 610)"/><path fill="#fff" stroke="none" d="M22.258 17 11 10.5 22.258 4Z" clip-path="url(#S)" transform="translate(2000 610)"/><path fill="none" d="M22.258 17 11 10.5 22.258 4Z" clip-path="url(#S)" transform="translate(2000 610)"/><path fill="none" d="M10.5 89.5v-79M17 78.742 10.5 90 4 78.742" clip-path="url(#ay)" transform="translate(2150 800)"/><text xml:space="preserve" x="14" y="74" stroke="none" clip-path="url(#ay)" font-family="sans-serif" font-size="14" transform="translate(2150 800)">0..*</text><text xml:space="preserve" x="14" y="38.817" stroke="none" clip-path="url(#ay)" font-family="sans-serif" font-size="14" transform="translate(2150 800)">choices</text><path fill="none" d="M11.5 70.5h179M190.5 70.5v-60M22.258 77 11 70.5 22.258 64" clip-path="url(#aJ)" transform="translate(1460 800)"/><text xml:space="preserve" x="29" y="83.817" stroke="none" clip-path="url(#aJ)" font-family="sans-serif" font-size="14" transform="translate(1460 800)">0..*</text><text xml:space="preserve" x="194" y="38.817" stroke="none" clip-path="url(#aJ)" font-family="sans-serif" font-size="14" transform="translate(1460 800)">tags</text></svg> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + fill-opacity="1" + color-rendering="auto" + color-interpolation="auto" + text-rendering="auto" + stroke="black" + stroke-linecap="square" + width="2680" + stroke-miterlimit="10" + shape-rendering="auto" + stroke-opacity="1" + fill="black" + stroke-dasharray="none" + font-weight="normal" + stroke-width="1" + viewBox="-20 -20 2680 1570" + height="1570" + font-family="'Dialog'" + font-style="normal" + stroke-linejoin="miter" + font-size="12px" + stroke-dashoffset="0" + image-rendering="auto" + version="1.1" + id="svg663" + sodipodi:docname="document-context.svg" + inkscape:version="1.3.2 (091e20e, 2023-11-25)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview663" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#d1d1d1" + inkscape:zoom="0.15031847" + inkscape:cx="1247.3517" + inkscape:cy="874.80932" + inkscape:window-width="1440" + inkscape:window-height="786" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:window-maximized="1" + inkscape:current-layer="svg663" /> + <!--Generated by the Batik Graphics2D SVG Generator--> + <defs + id="genericDefs" /> + <rect + style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:5.31093;stroke-linecap:round;stroke-linejoin:round" + id="rect1371" + width="2680" + height="1570" + x="-20" + y="-20" /> + <g + id="g663"> + <defs + id="defs1"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1"> + <path + d="M0 0 L2147483647 0 L2147483647 2147483647 L0 2147483647 L0 0 Z" + id="path1" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2"> + <path + d="M0 0 L0 100 L170 100 L170 0 Z" + id="path2" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath3"> + <path + d="M0 0 L0 70 L170 70 L170 0 Z" + id="path3" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4"> + <path + d="M0 0 L0 110 L190 110 L190 0 Z" + id="path4" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5"> + <path + d="M0 0 L0 90 L160 90 L160 0 Z" + id="path5" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6"> + <path + d="M0 0 L0 60 L190 60 L190 0 Z" + id="path6" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath7"> + <path + d="M0 0 L0 170 L190 170 L190 0 Z" + id="path7" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath8"> + <path + d="M0 0 L0 70 L220 70 L220 0 Z" + id="path8" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath9"> + <path + d="M0 0 L0 90 L180 90 L180 0 Z" + id="path9" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath10"> + <path + d="M0 0 L0 100 L190 100 L190 0 Z" + id="path10" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath11"> + <path + d="M0 0 L0 110 L220 110 L220 0 Z" + id="path11" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath12"> + <path + d="M0 0 L0 150 L190 150 L190 0 Z" + id="path12" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath13"> + <path + d="M0 0 L0 70 L200 70 L200 0 Z" + id="path13" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath14"> + <path + d="M0 0 L0 150 L250 150 L250 0 Z" + id="path14" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath15"> + <path + d="M0 0 L0 80 L130 80 L130 0 Z" + id="path15" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath16"> + <path + d="M0 0 L0 90 L230 90 L230 0 Z" + id="path16" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath17"> + <path + d="M0 0 L0 130 L160 130 L160 0 Z" + id="path17" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath18"> + <path + d="M0 0 L0 150 L330 150 L330 0 Z" + id="path18" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath19"> + <path + d="M0 0 L0 130 L190 130 L190 0 Z" + id="path19" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath20"> + <path + d="M0 0 L0 210 L170 210 L170 0 Z" + id="path20" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath21"> + <path + d="M0 0 L0 220 L230 220 L230 0 Z" + id="path21" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath22"> + <path + d="M0 0 L0 150 L230 150 L230 0 Z" + id="path22" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath23"> + <path + d="M0 0 L0 180 L160 180 L160 0 Z" + id="path23" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath24"> + <path + d="M0 0 L0 100 L160 100 L160 0 Z" + id="path24" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath25"> + <path + d="M0 0 L0 140 L200 140 L200 0 Z" + id="path25" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath26"> + <path + d="M0 0 L0 50 L160 50 L160 0 Z" + id="path26" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath27"> + <path + d="M0 0 L0 130 L250 130 L250 0 Z" + id="path27" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath28"> + <path + d="M0 0 L0 90 L140 90 L140 0 Z" + id="path28" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath29"> + <path + d="M0 0 L0 190 L220 190 L220 0 Z" + id="path29" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath30"> + <path + d="M0 0 L0 180 L190 180 L190 0 Z" + id="path30" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31"> + <path + d="M0 0 L0 110 L200 110 L200 0 Z" + id="path31" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath32"> + <path + d="M0 0 L0 50 L190 50 L190 0 Z" + id="path32" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath33"> + <path + d="M0 0 L0 320 L370 320 L370 0 Z" + id="path33" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath34"> + <path + d="M0 0 L0 210 L280 210 L280 0 Z" + id="path34" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath35"> + <path + d="M0 0 L0 310 L220 310 L220 0 Z" + id="path35" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath36"> + <path + d="M0 0 L0 350 L200 350 L200 0 Z" + id="path36" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath37"> + <path + d="M0 0 L0 140 L250 140 L250 0 Z" + id="path37" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath38"> + <path + d="M0 0 L0 200 L130 200 L130 0 Z" + id="path38" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath39"> + <path + d="M0 0 L0 670 L900 670 L900 0 Z" + id="path39" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath40"> + <path + d="M0 0 L0 100 L220 100 L220 0 Z" + id="path40" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath41"> + <path + d="M0 0 L0 130 L110 130 L110 0 Z" + id="path41" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath42"> + <path + d="M0 0 L0 150 L90 150 L90 0 Z" + id="path42" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath43"> + <path + d="M0 0 L0 320 L70 320 L70 0 Z" + id="path43" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath44"> + <path + d="M0 0 L0 200 L620 200 L620 0 Z" + id="path44" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath45"> + <path + d="M0 0 L0 100 L70 100 L70 0 Z" + id="path45" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath46"> + <path + d="M0 0 L0 510 L720 510 L720 0 Z" + id="path46" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath47"> + <path + d="M0 0 L0 130 L1030 130 L1030 0 Z" + id="path47" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath48"> + <path + d="M0 0 L0 80 L140 80 L140 0 Z" + id="path48" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath49"> + <path + d="M0 0 L0 70 L150 70 L150 0 Z" + id="path49" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath50"> + <path + d="M0 0 L0 70 L180 70 L180 0 Z" + id="path50" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51"> + <path + d="M0 0 L0 80 L30 80 L30 0 Z" + id="path51" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52"> + <path + d="M0 0 L0 320 L100 320 L100 0 Z" + id="path52" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath53"> + <path + d="M0 0 L0 460 L160 460 L160 0 Z" + id="path53" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath54"> + <path + d="M0 0 L0 320 L50 320 L50 0 Z" + id="path54" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath55"> + <path + d="M0 0 L0 120 L90 120 L90 0 Z" + id="path55" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56"> + <path + d="M0 0 L0 30 L90 30 L90 0 Z" + id="path56" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath57"> + <path + d="M0 0 L0 200 L310 200 L310 0 Z" + id="path57" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath58"> + <path + d="M0 0 L0 200 L410 200 L410 0 Z" + id="path58" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath59"> + <path + d="M0 0 L0 50 L200 50 L200 0 Z" + id="path59" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath60"> + <path + d="M0 0 L0 410 L290 410 L290 0 Z" + id="path60" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath61"> + <path + d="M0 0 L0 50 L260 50 L260 0 Z" + id="path61" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath62"> + <path + d="M0 0 L0 410 L70 410 L70 0 Z" + id="path62" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath63"> + <path + d="M0 0 L0 60 L150 60 L150 0 Z" + id="path63" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath64"> + <path + d="M0 0 L0 100 L40 100 L40 0 Z" + id="path64" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath65"> + <path + d="M0 0 L0 140 L930 140 L930 0 Z" + id="path65" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath66"> + <path + d="M0 0 L0 260 L610 260 L610 0 Z" + id="path66" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath67"> + <path + d="M0 0 L0 550 L1960 550 L1960 0 Z" + id="path67" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath68"> + <path + d="M0 0 L0 180 L290 180 L290 0 Z" + id="path68" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath69"> + <path + d="M0 0 L0 240 L850 240 L850 0 Z" + id="path69" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath70"> + <path + d="M0 0 L0 940 L1320 940 L1320 0 Z" + id="path70" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath71"> + <path + d="M0 0 L0 150 L140 150 L140 0 Z" + id="path71" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath72"> + <path + d="M0 0 L0 350 L1120 350 L1120 0 Z" + id="path72" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath73"> + <path + d="M0 0 L0 220 L260 220 L260 0 Z" + id="path73" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath74"> + <path + d="M0 0 L0 390 L170 390 L170 0 Z" + id="path74" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath75"> + <path + d="M0 0 L0 50 L220 50 L220 0 Z" + id="path75" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath76"> + <path + d="M0 0 L0 210 L210 210 L210 0 Z" + id="path76" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath77"> + <path + d="M0 0 L0 80 L200 80 L200 0 Z" + id="path77" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath78"> + <path + d="M0 0 L0 130 L70 130 L70 0 Z" + id="path78" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath79"> + <path + d="M0 0 L0 410 L280 410 L280 0 Z" + id="path79" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath80"> + <path + d="M0 0 L0 80 L220 80 L220 0 Z" + id="path80" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath81"> + <path + d="M0 0 L0 50 L330 50 L330 0 Z" + id="path81" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath82"> + <path + d="M0 0 L0 110 L70 110 L70 0 Z" + id="path82" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath83"> + <path + d="M0 0 L0 50 L180 50 L180 0 Z" + id="path83" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath84"> + <path + d="M0 0 L0 120 L210 120 L210 0 Z" + id="path84" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath85"> + <path + d="M0 0 L0 150 L70 150 L70 0 Z" + id="path85" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath86"> + <path + d="M0 0 L0 320 L350 320 L350 0 Z" + id="path86" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath87"> + <path + d="M0 0 L0 220 L130 220 L130 0 Z" + id="path87" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath88"> + <path + d="M0 0 L0 100 L80 100 L80 0 Z" + id="path88" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath89"> + <path + d="M0 0 L0 70 L190 70 L190 0 Z" + id="path89" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath90"> + <path + d="M0 0 L0 100 L140 100 L140 0 Z" + id="path90" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath91"> + <path + d="M0 0 L0 110 L570 110 L570 0 Z" + id="path91" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath92"> + <path + d="M0 0 L0 110 L210 110 L210 0 Z" + id="path92" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath93"> + <path + d="M0 0 L0 110 L30 110 L30 0 Z" + id="path93" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath94"> + <path + d="M0 0 L0 110 L230 110 L230 0 Z" + id="path94" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath95"> + <path + d="M0 0 L0 110 L450 110 L450 0 Z" + id="path95" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath96"> + <path + d="M0 0 L0 210 L90 210 L90 0 Z" + id="path96" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath97"> + <path + d="M0 0 L0 70 L90 70 L90 0 Z" + id="path97" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath98"> + <path + d="M0 0 L0 220 L90 220 L90 0 Z" + id="path98" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath99"> + <path + d="M0 0 L0 140 L90 140 L90 0 Z" + id="path99" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath100"> + <path + d="M0 0 L0 100 L240 100 L240 0 Z" + id="path100" /> + </clipPath> + </defs> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(0,90)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g100"> + <rect + x="0.5" + width="168.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath2)" + stroke="none" + id="rect100" /> + </g> + <g + transform="translate(0,90)" + id="g105"> + <rect + fill="none" + x="0.5" + width="168.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath2)" + id="rect101" /> + <text + x="48" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath2)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text101">UserGroup</text> + <path + fill="none" + d="M1 23.8174 L169 23.8174" + clip-path="url(#clipPath2)" + id="path101" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath2)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text102">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath2)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text103">name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath2)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text104">description: Optional[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath2)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text105">private: bool</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(210,40)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g106"> + <rect + x="0.5" + width="168.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath3)" + stroke="none" + id="rect105" /> + </g> + <g + transform="translate(210,40)" + id="g108"> + <rect + fill="none" + x="0.5" + width="168.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath3)" + id="rect106" /> + <text + x="27" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath3)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text106">GroupPermission</text> + <path + fill="none" + d="M1 23.8174 L169 23.8174" + clip-path="url(#clipPath3)" + id="path106" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath3)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text107">group: UserGroup</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath3)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text108">permissions: list[str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(210,130)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g109"> + <rect + x="0.5" + width="168.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath3)" + stroke="none" + id="rect108" /> + </g> + <g + transform="translate(210,130)" + id="g111"> + <rect + fill="none" + x="0.5" + width="168.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath3)" + id="rect109" /> + <text + x="32" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath3)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text109">UserPermission</text> + <path + fill="none" + d="M1 23.8174 L169 23.8174" + clip-path="url(#clipPath3)" + id="path109" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath3)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text110">user: User</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath3)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text111">permissions: list[str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1890,1330)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g112"> + <rect + x="0.5" + width="188.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath4)" + stroke="none" + id="rect111" /> + </g> + <g + transform="translate(1890,1330)" + id="g116"> + <rect + fill="none" + x="0.5" + width="188.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath4)" + id="rect112" /> + <text + x="48" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text112">ResourcePage</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath4)" + id="path112" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text113">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text114">title: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text115">content: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text116">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1570,1330)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g117"> + <rect + x="0.5" + width="188.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath4)" + stroke="none" + id="rect116" /> + </g> + <g + transform="translate(1570,1330)" + id="g122"> + <rect + fill="none" + x="0.5" + width="188.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath4)" + id="rect117" /> + <text + x="30" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text117">ResourceCollection</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath4)" + id="path117" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text118">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text119">title: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text120">page_uuids: list[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text121">pages: list[ResourcePage]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text122">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(360,1360)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g123"> + <rect + x="0.5" + width="158.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath5)" + stroke="none" + id="rect122" /> + </g> + <g + transform="translate(360,1360)" + id="g126"> + <rect + fill="none" + x="0.5" + width="158.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath5)" + id="rect123" /> + <text + x="26" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text123">ItemSelectReply</text> + <path + fill="none" + d="M1 23.8174 L159 23.8174" + clip-path="url(#clipPath5)" + id="path123" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text124">item_uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text125">item_title: str</text> + <path + fill="none" + d="M1 60.4521 L159 60.4521" + clip-path="url(#clipPath5)" + id="path125" /> + <text + x="5" + font-size="14px" + y="75.2695" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text126">value: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2070,470)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g127"> + <rect + x="0.5" + width="188.5" + height="58.5" + y="0.5" + clip-path="url(#clipPath6)" + stroke="none" + id="rect126" /> + </g> + <g + transform="translate(2070,470)" + id="g129"> + <rect + fill="none" + x="0.5" + width="188.5" + height="58.5" + y="0.5" + clip-path="url(#clipPath6)" + id="rect127" /> + <text + x="29" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text127">ItemSelectQuestion</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath6)" + id="path127" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text128">list_question_uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text129">list_question: ListQuestion</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1070,1200)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g130"> + <rect + x="0.5" + width="188.5" + height="58.5" + y="0.5" + clip-path="url(#clipPath6)" + stroke="none" + id="rect129" /> + </g> + <g + transform="translate(1070,1200)" + id="g131"> + <rect + fill="none" + x="0.5" + width="188.5" + height="58.5" + y="0.5" + clip-path="url(#clipPath6)" + id="rect130" /> + <text + x="34" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text130">WidgetIntegration</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath6)" + id="path130" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text131">widget_url: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1300,1100)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g132"> + <rect + x="0.5" + width="188.5" + height="168.5" + y="0.5" + clip-path="url(#clipPath7)" + stroke="none" + id="rect131" /> + </g> + <g + transform="translate(1300,1100)" + id="g140"> + <rect + fill="none" + x="0.5" + width="188.5" + height="168.5" + y="0.5" + clip-path="url(#clipPath7)" + id="rect132" /> + <text + x="46" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text132">ApiIntegration</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath7)" + id="path132" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text133">rq_url: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text134">rq_method: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text135">rq_headers: dict[str,str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text136">rq_body: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text137">rq_empty_search: bool</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text138">rs_list_field: Optional[str]</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text139">rs_item_id: Optional[str]</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath7)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text140">rs_item_template: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1680,1190)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g141"> + <rect + x="0.5" + width="218.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath8)" + stroke="none" + id="rect140" /> + </g> + <g + transform="translate(1680,1190)" + id="g143"> + <rect + fill="none" + x="0.5" + width="218.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath8)" + id="rect141" /> + <text + x="29" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath8)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text141">ResourcePageReference</text> + <path + fill="none" + d="M1 23.8174 L219 23.8174" + clip-path="url(#clipPath8)" + id="path141" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath8)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text142">resource_page_uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath8)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text143">resource_page: ResourcePage</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1680,1100)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g144"> + <rect + x="0.5" + width="218.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath8)" + stroke="none" + id="rect143" /> + </g> + <g + transform="translate(1680,1100)" + id="g146"> + <rect + fill="none" + x="0.5" + width="218.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath8)" + id="rect144" /> + <text + x="63" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath8)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text144">URLReference</text> + <path + fill="none" + d="M1 23.8174 L219 23.8174" + clip-path="url(#clipPath8)" + id="path144" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath8)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text145">label: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath8)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text146">url: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1960,1100)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g147"> + <rect + x="0.5" + width="178.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath9)" + stroke="none" + id="rect146" /> + </g> + <g + transform="translate(1960,1100)" + id="g150"> + <rect + fill="none" + x="0.5" + width="178.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath9)" + id="rect147" /> + <text + x="55" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath9)" + font-family="sans-serif" + font-style="italic" + stroke="none" + xml:space="preserve" + id="text147">Reference</text> + <path + fill="none" + d="M1 23.8174 L179 23.8174" + clip-path="url(#clipPath9)" + id="path147" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath9)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text148">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath9)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text149">type: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath9)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text150">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1280,930)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g151"> + <rect + x="0.5" + width="188.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath10)" + stroke="none" + id="rect150" /> + </g> + <g + transform="translate(1280,930)" + id="g155"> + <rect + fill="none" + x="0.5" + width="188.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath10)" + id="rect151" /> + <text + x="73" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text151">Expert</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath10)" + id="path151" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text152">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text153">name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text154">email: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text155">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(980,0)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g156"> + <rect + x="0.5" + width="218.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath11)" + stroke="none" + id="rect155" /> + </g> + <g + transform="translate(980,0)" + id="g159"> + <rect + fill="none" + x="0.5" + width="218.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath11)" + id="rect156" /> + <text + x="72" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text156">ReportItem</text> + <path + fill="none" + d="M1 23.8174 L219 23.8174" + clip-path="url(#clipPath11)" + id="path156" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text157">indications: list[ReportIndication]</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text158">metrics: list[ReportMetric]</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text159">chapter: Optional[Chapter]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1500,0)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g160"> + <rect + x="0.5" + width="188.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath12)" + stroke="none" + id="rect159" /> + </g> + <g + transform="translate(1500,0)" + id="g167"> + <rect + fill="none" + x="0.5" + width="188.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath12)" + id="rect160" /> + <text + x="38" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text160">ReportIndication</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath12)" + id="path160" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text161">indication_type: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text162">answered: int</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text163">unanswered: int</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text164">total: int</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text165">percentage: float</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text166">is_for_phase: bool</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath12)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text167">is_overall: bool</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1270,110)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g168"> + <rect + x="0.5" + width="198.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath13)" + stroke="none" + id="rect167" /> + </g> + <g + transform="translate(1270,110)" + id="g170"> + <rect + fill="none" + x="0.5" + width="198.5" + height="68.5" + y="0.5" + clip-path="url(#clipPath13)" + id="rect168" /> + <text + x="56" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath13)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text168">ReportMetric</text> + <path + fill="none" + d="M1 23.8174 L199 23.8174" + clip-path="url(#clipPath13)" + id="path168" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath13)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text169">measure: float</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath13)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text170">metric: Metric</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(530,0)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g171"> + <rect + x="0.5" + width="218.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath11)" + stroke="none" + id="rect170" /> + </g> + <g + transform="translate(530,0)" + id="g176"> + <rect + fill="none" + x="0.5" + width="218.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath11)" + id="rect171" /> + <text + x="87" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text171">Report</text> + <path + fill="none" + d="M1 23.8174 L219 23.8174" + clip-path="url(#clipPath11)" + id="path171" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text172">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text173">total_report: ReportItem</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text174">chapter_reports: list[ReportItem]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text175">created_at: datetime</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath11)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text176">updated_at: datetime</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2380,430)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g177"> + <rect + x="0.5" + width="248.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath14)" + stroke="none" + id="rect176" /> + </g> + <g + transform="translate(2380,430)" + id="g184"> + <rect + fill="none" + x="0.5" + width="248.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath14)" + id="rect177" /> + <text + x="100" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text177">Answer</text> + <path + fill="none" + d="M1 23.8174 L249 23.8174" + clip-path="url(#clipPath14)" + id="path177" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text178">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text179">label: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text180">advice: Optional[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text181">metric_measures: list[MetricMeasure]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text182">followups: list[Question]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text183">parent: OptionsQuestion</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath14)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text184">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2070,890)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g185"> + <rect + x="0.5" + width="188.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath10)" + stroke="none" + id="rect184" /> + </g> + <g + transform="translate(2070,890)" + id="g189"> + <rect + fill="none" + x="0.5" + width="188.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath10)" + id="rect185" /> + <text + x="72" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text185">Choice</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath10)" + id="path185" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text186">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text187">label: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text188">parent: MultiChoiceQuestion</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath10)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text189">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2470,230)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g190"> + <rect + x="0.5" + width="128.5" + height="78.5" + y="0.5" + clip-path="url(#clipPath15)" + stroke="none" + id="rect189" /> + </g> + <g + transform="translate(2470,230)" + id="g193"> + <rect + fill="none" + x="0.5" + width="128.5" + height="78.5" + y="0.5" + clip-path="url(#clipPath15)" + id="rect190" /> + <text + x="15" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath15)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text190">MetricMeasure</text> + <path + fill="none" + d="M1 23.8174 L129 23.8174" + clip-path="url(#clipPath15)" + id="path190" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath15)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text191">measure: float</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath15)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text192">weight: float</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath15)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text193">metric: Metric</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(900,1360)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g194"> + <rect + x="0.5" + width="228.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath16)" + stroke="none" + id="rect193" /> + </g> + <g + transform="translate(900,1360)" + id="g197"> + <rect + fill="none" + x="0.5" + width="228.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath16)" + id="rect194" /> + <text + x="76" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath16)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text194">StringReply</text> + <path + fill="none" + d="M1 23.8174 L229 23.8174" + clip-path="url(#clipPath16)" + id="path194" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath16)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text195">value: str</text> + <path + fill="none" + d="M1 44.6348 L229 44.6348" + clip-path="url(#clipPath16)" + id="path195" /> + <text + x="5" + font-size="14px" + y="59.4521" + clip-path="url(#clipPath16)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text196">as_number: Optional[float]</text> + <text + x="5" + font-size="14px" + y="75.2695" + clip-path="url(#clipPath16)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text197">as_datetime: Optional[datetime]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(180,1360)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g198"> + <rect + x="0.5" + width="158.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath5)" + stroke="none" + id="rect197" /> + </g> + <g + transform="translate(180,1360)" + id="g201"> + <rect + fill="none" + x="0.5" + width="158.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath5)" + id="rect198" /> + <text + x="21" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text198">MultiChoiceReply</text> + <path + fill="none" + d="M1 23.8174 L159 23.8174" + clip-path="url(#clipPath5)" + id="path198" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text199">choice_uuids: list[str]</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text200">choices: list[Choice]</text> + <path + fill="none" + d="M1 60.4521 L159 60.4521" + clip-path="url(#clipPath5)" + id="path200" /> + <text + x="5" + font-size="14px" + y="75.2695" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text201">value: list[str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(540,1360)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g202"> + <rect + x="0.5" + width="158.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath5)" + stroke="none" + id="rect201" /> + </g> + <g + transform="translate(540,1360)" + id="g204"> + <rect + fill="none" + x="0.5" + width="158.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath5)" + id="rect202" /> + <text + x="34" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text202">ItemListReply</text> + <path + fill="none" + d="M1 23.8174 L159 23.8174" + clip-path="url(#clipPath5)" + id="path202" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text203">items: list[str]</text> + <path + fill="none" + d="M1 44.6348 L159 44.6348" + clip-path="url(#clipPath5)" + id="path203" /> + <text + x="5" + font-size="14px" + y="59.4521" + clip-path="url(#clipPath5)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text204">value: list[str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(720,1360)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g205"> + <rect + x="0.5" + width="158.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath17)" + stroke="none" + id="rect204" /> + </g> + <g + transform="translate(720,1360)" + id="g211"> + <rect + fill="none" + x="0.5" + width="158.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath17)" + id="rect205" /> + <text + x="24" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath17)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text205">IntegrationReply</text> + <path + fill="none" + d="M1 23.8174 L159 23.8174" + clip-path="url(#clipPath17)" + id="path205" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath17)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text206">value: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath17)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text207">item_id: Optional[str]</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath17)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text208">is_plain: bool</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath17)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text209">is_integration: bool</text> + <path + fill="none" + d="M1 92.0869 L159 92.0869" + clip-path="url(#clipPath17)" + id="path209" /> + <text + x="5" + font-size="14px" + y="106.9043" + clip-path="url(#clipPath17)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text210">id: Optional[str]</text> + <text + x="5" + font-size="14px" + y="122.7217" + clip-path="url(#clipPath17)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text211">url: Optional[str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(570,880)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g212"> + <rect + x="0.5" + width="328.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath18)" + stroke="none" + id="rect211" /> + </g> + <g + transform="translate(570,880)" + id="g219"> + <rect + fill="none" + x="0.5" + width="328.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath18)" + id="rect212" /> + <text + x="107" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text212">RepliesContainer</text> + <path + fill="none" + d="M1 23.8174 L329 23.8174" + clip-path="url(#clipPath18)" + id="path212" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text213">replies: dict[str, Reply]</text> + <path + fill="none" + d="M1 44.6348 L329 44.6348" + clip-path="url(#clipPath18)" + id="path213" /> + <text + x="5" + font-size="14px" + y="59.4521" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text214">get(path: str) -> Optional[Reply]</text> + <text + x="5" + font-size="14px" + y="75.2695" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text215">values(path: str) -> Iterable[Reply]</text> + <text + x="5" + font-size="14px" + y="91.0869" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text216">keys(path: str) -> Iterable[str]</text> + <text + x="5" + font-size="14px" + y="106.9043" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text217">items(path: str) -> ItemsView[str,Reply]</text> + <text + x="5" + font-size="14px" + y="122.7217" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text218">iterate_by_prefix(path_prefix: str): Iterable[Reply]</text> + <text + x="5" + font-size="14px" + y="138.5391" + clip-path="url(#clipPath18)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text219">iterate_by_suffix(path_suffix: str): Iterable[Reply]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(400,1150)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g220"> + <rect + x="0.5" + width="188.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath19)" + stroke="none" + id="rect219" /> + </g> + <g + transform="translate(400,1150)" + id="g225"> + <rect + fill="none" + x="0.5" + width="188.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath19)" + id="rect220" /> + <text + x="49" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text220">SimpleAuthor</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath19)" + id="path220" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text221">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text222">first_name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text223">last_name: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text224">image_url: Optional[str]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text225">gravatar_hash: Optional[str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(0,510)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g226"> + <rect + x="0.5" + width="168.5" + height="208.5" + y="0.5" + clip-path="url(#clipPath20)" + stroke="none" + id="rect225" /> + </g> + <g + transform="translate(0,510)" + id="g237"> + <rect + fill="none" + x="0.5" + width="168.5" + height="208.5" + y="0.5" + clip-path="url(#clipPath20)" + id="rect226" /> + <text + x="69" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text226">User</text> + <path + fill="none" + d="M1 23.8174 L169 23.8174" + clip-path="url(#clipPath20)" + id="path226" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text227">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text228">first_name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text229">last_name: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text230">email: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text231">role: str</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text232">image_url: Optional[str]</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text233">affiliation: Optional[str]</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text234">permissions: list[str]</text> + <text + x="5" + font-size="14px" + y="165.1738" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text235">sources: list[str]</text> + <text + x="5" + font-size="14px" + y="180.9912" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text236">created_at: datetime</text> + <text + x="5" + font-size="14px" + y="196.8086" + clip-path="url(#clipPath20)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text237">updated_at: datetime</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(150,790)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g238"> + <rect + x="0.5" + width="228.5" + height="218.5" + y="0.5" + clip-path="url(#clipPath21)" + stroke="none" + id="rect237" /> + </g> + <g + transform="translate(150,790)" + id="g250"> + <rect + fill="none" + x="0.5" + width="228.5" + height="218.5" + y="0.5" + clip-path="url(#clipPath21)" + id="rect238" /> + <text + x="67" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text238">Questionnaire</text> + <path + fill="none" + d="M1 23.8174 L229 23.8174" + clip-path="url(#clipPath21)" + id="path238" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text239">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text240">name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text241">description: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text242">project_tags: list[str]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text243">version: QuestionnaireVersion</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text244">versions: list[QuestionnaireVersion]</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text245">todos: list[str]</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text246">phase: Optional[Phase]</text> + <text + x="5" + font-size="14px" + y="165.1738" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text247">replies: RepliesContainer</text> + <text + x="5" + font-size="14px" + y="180.9912" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text248">created_by: User</text> + <text + x="5" + font-size="14px" + y="196.8086" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text249">created_at: datetime</text> + <text + x="5" + font-size="14px" + y="212.626" + clip-path="url(#clipPath21)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text250">updated_at: datetime</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(150,1080)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g251"> + <rect + x="0.5" + width="228.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath22)" + stroke="none" + id="rect250" /> + </g> + <g + transform="translate(150,1080)" + id="g258"> + <rect + fill="none" + x="0.5" + width="228.5" + height="148.5" + y="0.5" + clip-path="url(#clipPath22)" + id="rect251" /> + <text + x="41" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text251">QuestionnaireVersion</text> + <path + fill="none" + d="M1 23.8174 L229 23.8174" + clip-path="url(#clipPath22)" + id="path251" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text252">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text253">event_uuid: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text254">name: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text255">description: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text256">created_by: Optional[SimpleAuthor]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text257">created_at: datetime</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath22)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text258">updated_at: datetime</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(220,540)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g259"> + <rect + x="0.5" + width="158.5" + height="178.5" + y="0.5" + clip-path="url(#clipPath23)" + stroke="none" + id="rect258" /> + </g> + <g + transform="translate(220,540)" + id="g268"> + <rect + fill="none" + x="0.5" + width="158.5" + height="178.5" + y="0.5" + clip-path="url(#clipPath23)" + id="rect259" /> + <text + x="52" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text259">Package</text> + <path + fill="none" + d="M1 23.8174 L159 23.8174" + clip-path="url(#clipPath23)" + id="path259" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text260">id: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text261">organization_id: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text262">km_id: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text263">version: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text264">versions: list[str]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text265">name: str</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text266">description: str</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text267">created_at: datetime</text> + <path + fill="none" + d="M1 155.3564 L159 155.3564" + clip-path="url(#clipPath23)" + id="path267" /> + <text + x="5" + font-size="14px" + y="170.1738" + clip-path="url(#clipPath23)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text268">org_id: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(220,430)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g269"> + <rect + x="0.5" + width="158.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath24)" + stroke="none" + id="rect268" /> + </g> + <g + transform="translate(220,430)" + id="g273"> + <rect + fill="none" + x="0.5" + width="158.5" + height="98.5" + y="0.5" + clip-path="url(#clipPath24)" + id="rect269" /> + <text + x="35" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath24)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text269">Organization</text> + <path + fill="none" + d="M1 23.8174 L159 23.8174" + clip-path="url(#clipPath24)" + id="path269" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath24)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text270">id: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath24)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text271">name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath24)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text272">description: Optional[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath24)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text273">affiliation: list[str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(180,280)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g274"> + <rect + x="0.5" + width="198.5" + height="138.5" + y="0.5" + clip-path="url(#clipPath25)" + stroke="none" + id="rect273" /> + </g> + <g + transform="translate(180,280)" + id="g281"> + <rect + fill="none" + x="0.5" + width="198.5" + height="138.5" + y="0.5" + clip-path="url(#clipPath25)" + id="rect274" /> + <text + x="65" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text274">Document</text> + <path + fill="none" + d="M1 23.8174 L199 23.8174" + clip-path="url(#clipPath25)" + id="path274" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text275">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text276">name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text277">document_template_id: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text278">format_uuid: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text279">created_by: User</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text280">created_at: datetime</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath25)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text281">updated_at: datetime</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(220,220)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g282"> + <rect + x="0.5" + width="158.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath26)" + stroke="none" + id="rect281" /> + </g> + <g + transform="translate(220,220)" + id="g283"> + <rect + fill="none" + x="0.5" + width="158.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath26)" + id="rect282" /> + <text + x="30" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath26)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text282">ContextConfig</text> + <path + fill="none" + d="M1 23.8174 L159 23.8174" + clip-path="url(#clipPath26)" + id="path282" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath26)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text283">client_url: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(700,1150)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g284"> + <rect + x="0.5" + width="248.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath27)" + stroke="none" + id="rect283" /> + </g> + <g + transform="translate(700,1150)" + id="g290"> + <rect + fill="none" + x="0.5" + width="248.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath27)" + id="rect284" /> + <text + x="105" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath27)" + font-family="sans-serif" + font-style="italic" + stroke="none" + xml:space="preserve" + id="text284">Reply</text> + <path + fill="none" + d="M1 23.8174 L249 23.8174" + clip-path="url(#clipPath27)" + id="path284" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath27)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text285">path: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath27)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text286">fragments: list[str]</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath27)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text287">reply_type: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath27)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text288">question: Question</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath27)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text289">created_by: Optional[SimpleAuthor]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath27)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text290">created_at: datetime</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1150,1360)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g291"> + <rect + x="0.5" + width="138.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath28)" + stroke="none" + id="rect290" /> + </g> + <g + transform="translate(1150,1360)" + id="g294"> + <rect + fill="none" + x="0.5" + width="138.5" + height="88.5" + y="0.5" + clip-path="url(#clipPath28)" + id="rect291" /> + <text + x="26" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath28)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text291">AnswerReply</text> + <path + fill="none" + d="M1 23.8174 L139 23.8174" + clip-path="url(#clipPath28)" + id="path291" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath28)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text292">answer_uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath28)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text293">answer: Answer</text> + <path + fill="none" + d="M1 60.4521 L139 60.4521" + clip-path="url(#clipPath28)" + id="path293" /> + <text + x="5" + font-size="14px" + y="75.2695" + clip-path="url(#clipPath28)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text294">value: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(870,220)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g295"> + <rect + x="0.5" + width="218.5" + height="188.5" + y="0.5" + clip-path="url(#clipPath29)" + stroke="none" + id="rect294" /> + </g> + <g + transform="translate(870,220)" + id="g305"> + <rect + fill="none" + x="0.5" + width="218.5" + height="188.5" + y="0.5" + clip-path="url(#clipPath29)" + id="rect295" /> + <text + x="27" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text295">KnowledgeModelEntities</text> + <path + fill="none" + d="M1 23.8174 L219 23.8174" + clip-path="url(#clipPath29)" + id="path295" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text296">answers: dict[str,Answer]</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text297">chapters: dict[str,Chapter]</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text298">choices: dict[str,Choice]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text299">experts: dict[str,Expert]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text300">integrations: dict[str,Integration]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text301">metrics: dict[str,Metric]</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text302">phases: dict[str,Phase]</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text303">questions: dict[str,Question]</text> + <text + x="5" + font-size="14px" + y="165.1738" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text304">references: dict[str,Reference]</text> + <text + x="5" + font-size="14px" + y="180.9912" + clip-path="url(#clipPath29)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text305">tags: dict[str,Tag]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1280,810)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g306"> + <rect + x="0.5" + width="188.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath4)" + stroke="none" + id="rect305" /> + </g> + <g + transform="translate(1280,810)" + id="g311"> + <rect + fill="none" + x="0.5" + width="188.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath4)" + id="rect306" /> + <text + x="82" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text306">Tag</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath4)" + id="path306" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text307">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text308">name: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text309">description: Optional[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text310">color: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath4)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text311">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1070,970)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g312"> + <rect + x="0.5" + width="188.5" + height="178.5" + y="0.5" + clip-path="url(#clipPath30)" + stroke="none" + id="rect311" /> + </g> + <g + transform="translate(1070,970)" + id="g321"> + <rect + fill="none" + x="0.5" + width="188.5" + height="178.5" + y="0.5" + clip-path="url(#clipPath30)" + id="rect312" /> + <text + x="56" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath30)" + font-family="sans-serif" + font-style="italic" + stroke="none" + xml:space="preserve" + id="text312">Integration</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath30)" + id="path312" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text313">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text314">id: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text315">name: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text316">type: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text317">logo: Optional[str]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text318">props: dict[str,str]</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text319">item_url: Optional[str]</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text320">annotations: dict[str,str]</text> + <path + fill="none" + d="M1 155.3564 L189 155.3564" + clip-path="url(#clipPath30)" + id="path320" /> + <text + x="5" + font-size="14px" + y="170.1738" + clip-path="url(#clipPath30)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text321">item(item_id: str) -> str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1270,280)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g322"> + <rect + x="0.5" + width="198.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath31)" + stroke="none" + id="rect321" /> + </g> + <g + transform="translate(1270,280)" + id="g327"> + <rect + fill="none" + x="0.5" + width="198.5" + height="108.5" + y="0.5" + clip-path="url(#clipPath31)" + id="rect322" /> + <text + x="78" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath31)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text322">Metric</text> + <path + fill="none" + d="M1 23.8174 L199 23.8174" + clip-path="url(#clipPath31)" + id="path322" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath31)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text323">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath31)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text324">title: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath31)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text325">description: Optional[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath31)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text326">abbreviation: str</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath31)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text327">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1280,630)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g328"> + <rect + x="0.5" + width="188.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath19)" + stroke="none" + id="rect327" /> + </g> + <g + transform="translate(1280,630)" + id="g333"> + <rect + fill="none" + x="0.5" + width="188.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath19)" + id="rect328" /> + <text + x="75" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text328">Phase</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath19)" + id="path328" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text329">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text330">title: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text331">description: Optional[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text332">order: int</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text333">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2070,690)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g334"> + <rect + x="0.5" + width="188.5" + height="58.5" + y="0.5" + clip-path="url(#clipPath6)" + stroke="none" + id="rect333" /> + </g> + <g + transform="translate(2070,690)" + id="g336"> + <rect + fill="none" + x="0.5" + width="188.5" + height="58.5" + y="0.5" + clip-path="url(#clipPath6)" + id="rect334" /> + <text + x="27" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text334">IntegrationQuestion</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath6)" + id="path334" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text335">integration: Integration</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath6)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text336">props: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2070,770)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g337"> + <rect + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + stroke="none" + id="rect336" /> + </g> + <g + transform="translate(2070,770)" + id="g338"> + <rect + fill="none" + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + id="rect337" /> + <text + x="24" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text337">MultiChoiceQuestion</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath32)" + id="path337" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text338">choices: list[Choice]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2070,400)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g339"> + <rect + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + stroke="none" + id="rect338" /> + </g> + <g + transform="translate(2070,400)" + id="g340"> + <rect + fill="none" + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + id="rect339" /> + <text + x="52" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text339">ListQuestion</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath32)" + id="path339" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text340">followups: list[Question]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2070,620)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g341"> + <rect + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + stroke="none" + id="rect340" /> + </g> + <g + transform="translate(2070,620)" + id="g342"> + <rect + fill="none" + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + id="rect341" /> + <text + x="45" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text341">ValueQuestion</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath32)" + id="path341" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text342">value_type: str</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(2070,550)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g343"> + <rect + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + stroke="none" + id="rect342" /> + </g> + <g + transform="translate(2070,550)" + id="g344"> + <rect + fill="none" + x="0.5" + width="188.5" + height="48.5" + y="0.5" + clip-path="url(#clipPath32)" + id="rect343" /> + <text + x="37" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text343">OptionsQuestion</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath32)" + id="path343" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath32)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text344">answers: list[Answer]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1640,490)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g345"> + <rect + x="0.5" + width="368.5" + height="318.5" + y="0.5" + clip-path="url(#clipPath33)" + stroke="none" + id="rect344" /> + </g> + <g + transform="translate(1640,490)" + id="g359"> + <rect + fill="none" + x="0.5" + width="368.5" + height="318.5" + y="0.5" + clip-path="url(#clipPath33)" + id="rect345" /> + <text + x="153" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath33)" + font-family="sans-serif" + font-style="italic" + stroke="none" + xml:space="preserve" + id="text345">Question</text> + <path + fill="none" + d="M1 23.8174 L369 23.8174" + clip-path="url(#clipPath33)" + id="path345" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text346">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text347">type: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text348">title: str</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text349">text: Optional[str]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text350">experts: list[Expert]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text351">references: list[Reference]</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text352">tags: list[Tag]</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text353">required_phase: Optional[Phase]</text> + <text + x="5" + font-size="14px" + y="165.1738" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text354">is_required: bool</text> + <text + x="5" + font-size="14px" + y="180.9912" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text355">replies: dict[str, Reply]</text> + <text + x="5" + font-size="14px" + y="196.8086" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text356">parent: Union[Chapter,ListQuestion,Answer]</text> + <text + x="5" + font-size="14px" + y="212.626" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text357">annotations: dict[str,str]</text> + <path + fill="none" + d="M1 218.626 L369 218.626" + clip-path="url(#clipPath33)" + id="path357" /> + <text + x="5" + font-size="14px" + y="233.4434" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text358">url_references: list[URLReference]</text> + <text + x="5" + font-size="14px" + y="249.2607" + clip-path="url(#clipPath33)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text359">resource_page_references: list[ResourcePageReference]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(1280,490)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g360"> + <rect + x="0.5" + width="188.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath19)" + stroke="none" + id="rect359" /> + </g> + <g + transform="translate(1280,490)" + id="g366"> + <rect + fill="none" + x="0.5" + width="188.5" + height="128.5" + y="0.5" + clip-path="url(#clipPath19)" + id="rect360" /> + <text + x="68" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text360">Chapter</text> + <path + fill="none" + d="M1 23.8174 L189 23.8174" + clip-path="url(#clipPath19)" + id="path360" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text361">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text362">title: str</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text363">text: Optional[str]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text364">questions: list[Question]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text365">reports: list[ReportItem]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath19)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text366">annotations: dict[str,str]</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(810,480)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g367"> + <rect + x="0.5" + width="278.5" + height="208.5" + y="0.5" + clip-path="url(#clipPath34)" + stroke="none" + id="rect366" /> + </g> + <g + transform="translate(810,480)" + id="g378"> + <rect + fill="none" + x="0.5" + width="278.5" + height="208.5" + y="0.5" + clip-path="url(#clipPath34)" + id="rect367" /> + <text + x="82" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text367">KnowledgeModel</text> + <path + fill="none" + d="M1 23.8174 L279 23.8174" + clip-path="url(#clipPath34)" + id="path367" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text368">uuid: str</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text369">chapters: list[Chapter]</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text370">integrations: list[Integration]</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text371">metrics: list[Metric]</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text372">phases: list[Phase]</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text373">resource_collections: list[ResourceCollections]</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text374">tags: list[Tag]</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text375">entities: KnowledgeModelEntities</text> + <text + x="5" + font-size="14px" + y="165.1738" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text376">annotations: dict[str,str]</text> + <path + fill="none" + d="M1 171.1738 L279 171.1738" + clip-path="url(#clipPath34)" + id="path376" /> + <text + x="5" + font-size="14px" + y="185.9912" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text377">a: dict[str,str]</text> + <text + x="5" + font-size="14px" + y="201.8086" + clip-path="url(#clipPath34)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text378">e: KnowledgeModelEntities</text> + </g> + <g + fill="rgb(255,255,255)" + fill-opacity="0" + transform="translate(530,190)" + stroke-opacity="0" + stroke="rgb(255,255,255)" + id="g379"> + <rect + x="0.5" + width="218.5" + height="308.5" + y="0.5" + clip-path="url(#clipPath35)" + stroke="none" + id="rect378" /> + </g> + <g + transform="translate(530,190)" + id="g396"> + <rect + fill="none" + x="0.5" + width="218.5" + height="308.5" + y="0.5" + clip-path="url(#clipPath35)" + id="rect379" /> + <text + x="45" + font-size="14px" + y="17.8174" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + font-weight="bold" + xml:space="preserve" + id="text379">DocumentContext</text> + <path + fill="none" + d="M1 23.8174 L219 23.8174" + clip-path="url(#clipPath35)" + id="path379" /> + <text + x="5" + font-size="14px" + y="38.6348" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text380">config: ContextConfig</text> + <text + x="5" + font-size="14px" + y="54.4521" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text381">current_phase: Optional[Phase]</text> + <text + x="5" + font-size="14px" + y="70.2695" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text382">document: Document</text> + <text + x="5" + font-size="14px" + y="86.0869" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text383">km: KnowledgeModel</text> + <text + x="5" + font-size="14px" + y="101.9043" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text384">organization: Organization</text> + <text + x="5" + font-size="14px" + y="117.7217" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text385">package: Package</text> + <text + x="5" + font-size="14px" + y="133.5391" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text386">questionnaire: Questionnaire</text> + <text + x="5" + font-size="14px" + y="149.3564" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text387">report: Report</text> + <text + x="5" + font-size="14px" + y="165.1738" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text388">users: list[UserPermission]</text> + <text + x="5" + font-size="14px" + y="180.9912" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text389">groups: list[GroupPermissions]</text> + <path + fill="none" + d="M1 186.9912 L219 186.9912" + clip-path="url(#clipPath35)" + id="path389" /> + <text + x="5" + font-size="14px" + y="201.8086" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text390">e: KnowledgeModelEntities</text> + <text + x="5" + font-size="14px" + y="217.626" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text391">cfg: ContextConfig</text> + <text + x="5" + font-size="14px" + y="233.4434" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text392">doc: Document</text> + <text + x="5" + font-size="14px" + y="249.2607" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text393">qtn: Questionnaire</text> + <text + x="5" + font-size="14px" + y="265.0781" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text394">org: Organization</text> + <text + x="5" + font-size="14px" + y="280.8955" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text395">pkg: Package</text> + <text + x="5" + font-size="14px" + y="296.7129" + clip-path="url(#clipPath35)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text396">replies: RepliesContainer</text> + </g> + <g + transform="translate(30,40)" + id="g399"> + <path + fill="none" + d="M10.5 49.5 L10.5 20.5" + clip-path="url(#clipPath13)" + id="path396" /> + <path + fill="none" + d="M10.5 20.5 L180.5 20.5" + clip-path="url(#clipPath13)" + id="path397" /> + <path + fill="none" + d="M17 38.7417 L10.5 50 L4 38.7417" + clip-path="url(#clipPath13)" + id="path398" /> + <text + x="14" + font-size="14px" + y="34" + clip-path="url(#clipPath13)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text398">1</text> + <text + x="119.4424" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath13)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text399">group</text> + </g> + <g + transform="translate(30,180)" + id="g404"> + <path + fill="none" + d="M10.5 329.5 L10.5 80.5" + clip-path="url(#clipPath36)" + id="path399" /> + <path + fill="none" + d="M10.5 80.5 L160.5 80.5" + clip-path="url(#clipPath36)" + id="path400" /> + <path + fill="none" + d="M160.5 80.5 L160.5 10.5" + clip-path="url(#clipPath36)" + id="path401" /> + <path + fill="none" + d="M160.5 10.5 L180.5 10.5" + clip-path="url(#clipPath36)" + id="path402" /> + <path + fill="none" + d="M17 318.7417 L10.5 330 L4 318.7417" + clip-path="url(#clipPath36)" + id="path403" /> + <text + x="14" + font-size="14px" + y="314" + clip-path="url(#clipPath36)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text403">1</text> + <text + x="130.6465" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath36)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text404">user</text> + </g> + <g + transform="translate(370,70)" + id="g409"> + <path + fill="none" + d="M180.5 120.5 L180.5 100.5" + clip-path="url(#clipPath37)" + id="path404" /> + <path + fill="none" + d="M180.5 100.5 L130.5 100.5" + clip-path="url(#clipPath37)" + id="path405" /> + <path + fill="none" + d="M130.5 100.5 L130.5 10.5" + clip-path="url(#clipPath37)" + id="path406" /> + <path + fill="none" + d="M130.5 10.5 L11.5 10.5" + clip-path="url(#clipPath37)" + id="path407" /> + <path + fill="none" + d="M22.2583 4 L11 10.5 L22.2583 17" + clip-path="url(#clipPath37)" + id="path408" /> + <text + x="29" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath37)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text408">*</text> + <text + x="184" + font-size="14px" + y="104" + clip-path="url(#clipPath37)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text409">groups</text> + </g> + <g + transform="translate(370,160)" + id="g413"> + <path + fill="none" + d="M160.5 60.5 L60.5 60.5" + clip-path="url(#clipPath9)" + id="path409" /> + <path + fill="none" + d="M60.5 60.5 L60.5 10.5" + clip-path="url(#clipPath9)" + id="path410" /> + <path + fill="none" + d="M60.5 10.5 L11.5 10.5" + clip-path="url(#clipPath9)" + id="path411" /> + <path + fill="none" + d="M22.2583 4 L11 10.5 L22.2583 17" + clip-path="url(#clipPath9)" + id="path412" /> + <text + x="29" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath9)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text412">*</text> + <text + x="103.5098" + font-size="14px" + y="73.8174" + clip-path="url(#clipPath9)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text413">users</text> + </g> + <g + transform="translate(70,330)" + id="g416"> + <path + fill="none" + d="M10.5 179.5 L10.5 10.5" + clip-path="url(#clipPath38)" + id="path413" /> + <path + fill="none" + d="M10.5 10.5 L110.5 10.5" + clip-path="url(#clipPath38)" + id="path414" /> + <path + fill="none" + d="M17 168.7417 L10.5 180 L4 168.7417" + clip-path="url(#clipPath38)" + id="path415" /> + <text + x="14" + font-size="14px" + y="164" + clip-path="url(#clipPath38)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text415">1</text> + <text + x="16.5957" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath38)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text416">created_by</text> + </g> + <g + transform="translate(810,680)" + id="g425"> + <path + fill="none" + d="M860.5 649.5 L860.5 620.5" + clip-path="url(#clipPath39)" + id="path416" /> + <path + fill="none" + d="M860.5 620.5 L230.5 620.5" + clip-path="url(#clipPath39)" + id="path417" /> + <path + fill="none" + d="M230.5 620.5 L230.5 420.5" + clip-path="url(#clipPath39)" + id="path418" /> + <path + fill="none" + d="M230.5 420.5 L110.5 420.5" + clip-path="url(#clipPath39)" + id="path419" /> + <path + fill="none" + d="M110.5 420.5 L110.5 160.5" + clip-path="url(#clipPath39)" + id="path420" /> + <path + fill="none" + d="M110.5 160.5 L10.5 160.5" + clip-path="url(#clipPath39)" + id="path421" /> + <path + fill="none" + d="M10.5 160.5 L10.5 10.5" + clip-path="url(#clipPath39)" + id="path422" /> + <path + fill="none" + d="M867 638.7417 L860.5 650 L854 638.7417" + clip-path="url(#clipPath39)" + id="path423" /> + <text + x="864" + font-size="14px" + y="634" + clip-path="url(#clipPath39)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text423">0..*</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath39)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text424">resource_</text> + <text + x="14" + font-size="14px" + y="51.6348" + clip-path="url(#clipPath39)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text425">collections</text> + </g> + <g + transform="translate(1810,1250)" + id="g429"> + <path + fill="none" + d="M180.5 79.5 L180.5 40.5" + clip-path="url(#clipPath40)" + id="path425" /> + <path + fill="none" + d="M180.5 40.5 L10.5 40.5" + clip-path="url(#clipPath40)" + id="path426" /> + <path + fill="none" + d="M10.5 40.5 L10.5 10.5" + clip-path="url(#clipPath40)" + id="path427" /> + <path + fill="none" + d="M187 68.7417 L180.5 80 L174 68.7417" + clip-path="url(#clipPath40)" + id="path428" /> + <text + x="184" + font-size="14px" + y="64" + clip-path="url(#clipPath40)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text428">0..*</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath40)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text429">resource_page</text> + </g> + <g + transform="translate(1750,1370)" + id="g431"> + <path + fill="none" + d="M139.5 20.5 L10.5 20.5" + clip-path="url(#clipPath26)" + id="path429" /> + <path + fill="none" + d="M128.7417 14 L140 20.5 L128.7417 27" + clip-path="url(#clipPath26)" + id="path430" /> + <text + x="95.541" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath26)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text430">0..*</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath26)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text431">pages</text> + </g> + <g + transform="translate(2250,400)" + id="g435"> + <path + fill="none" + d="M10.5 100.5 L60.5 100.5" + clip-path="url(#clipPath41)" + id="path431" /> + <path + fill="none" + d="M60.5 100.5 L60.5 10.5" + clip-path="url(#clipPath41)" + id="path432" /> + <path + fill="none" + d="M60.5 10.5 L11.5 10.5" + clip-path="url(#clipPath41)" + id="path433" /> + <path + fill="none" + d="M22.2583 4 L11 10.5 L22.2583 17" + clip-path="url(#clipPath41)" + id="path434" /> + <text + x="29" + font-size="14px" + y="113.8174" + clip-path="url(#clipPath41)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text434">followups</text> + <text + x="29" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath41)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text435">0..1</text> + </g> + <g + transform="translate(2000,490)" + id="g439"> + <path + fill="none" + d="M11.5 130.5 L50.5 130.5" + clip-path="url(#clipPath42)" + id="path435" /> + <path + fill="none" + d="M50.5 130.5 L50.5 10.5" + clip-path="url(#clipPath42)" + id="path436" /> + <path + fill="none" + d="M50.5 10.5 L70.5 10.5" + clip-path="url(#clipPath42)" + id="path437" /> + <path + fill="white" + d="M22.2583 137 L11 130.5 L22.2583 124 Z" + clip-path="url(#clipPath42)" + stroke="none" + id="path438" /> + <path + fill="none" + d="M22.2583 137 L11 130.5 L22.2583 124 Z" + clip-path="url(#clipPath42)" + id="path439" /> + </g> + <g + stroke-dasharray="1,2" + stroke-miterlimit="5" + transform="translate(1960,800)" + stroke-linecap="butt" + id="g441"> + <path + fill="none" + d="M10.5 300.5 L10.5 11.5" + clip-path="url(#clipPath43)" + id="path440" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M17 22.2583 L10.5 11 L4 22.2583" + clip-path="url(#clipPath43)" + stroke-linecap="square" + id="path441" /> + </g> + <g + font-family="sans-serif" + font-size="14px" + transform="translate(1960,800)" + id="g442"> + <text + x="14" + xml:space="preserve" + y="38.8174" + clip-path="url(#clipPath43)" + stroke="none" + id="text441">1</text> + <text + x="14" + xml:space="preserve" + y="284" + clip-path="url(#clipPath43)" + stroke="none" + id="text442">parent</text> + </g> + <g + stroke-dasharray="1,2" + stroke-miterlimit="5" + transform="translate(1830,310)" + stroke-linecap="butt" + id="g445"> + <path + fill="none" + d="M570.5 119.5 L570.5 20.5" + clip-path="url(#clipPath44)" + id="path442" /> + <path + fill="none" + d="M570.5 20.5 L10.5 20.5" + clip-path="url(#clipPath44)" + id="path443" /> + <path + fill="none" + d="M10.5 20.5 L10.5 180.5" + clip-path="url(#clipPath44)" + id="path444" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M577 108.7417 L570.5 120 L564 108.7417" + clip-path="url(#clipPath44)" + stroke-linecap="square" + id="path445" /> + </g> + <g + font-family="sans-serif" + font-size="14px" + transform="translate(1830,310)" + id="g446"> + <text + x="574" + xml:space="preserve" + y="104" + clip-path="url(#clipPath44)" + stroke="none" + id="text445">0..1</text> + <text + x="14" + xml:space="preserve" + y="164" + clip-path="url(#clipPath44)" + stroke="none" + id="text446">parent</text> + </g> + <g + stroke-dasharray="1,2" + stroke-miterlimit="5" + transform="translate(2100,810)" + stroke-linecap="butt" + id="g447"> + <path + fill="none" + d="M10.5 80.5 L10.5 11.5" + clip-path="url(#clipPath45)" + id="path446" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M17 22.2583 L10.5 11 L4 22.2583" + clip-path="url(#clipPath45)" + stroke-linecap="square" + id="path447" /> + </g> + <g + font-family="sans-serif" + font-size="14px" + transform="translate(2100,810)" + id="g448"> + <text + x="14" + xml:space="preserve" + y="38.8174" + clip-path="url(#clipPath45)" + stroke="none" + id="text447">1</text> + <text + x="14" + xml:space="preserve" + y="64" + clip-path="url(#clipPath45)" + stroke="none" + id="text448">parent</text> + </g> + <g + fill="rgb(53,117,70)" + stroke-miterlimit="5" + stroke-dasharray="1,2" + transform="translate(940,780)" + stroke-linecap="butt" + stroke="rgb(53,117,70)" + id="g451"> + <path + fill="none" + d="M699.5 20.5 L70.5 20.5" + clip-path="url(#clipPath46)" + id="path448" /> + <path + fill="none" + d="M70.5 20.5 L70.5 480.5" + clip-path="url(#clipPath46)" + id="path449" /> + <path + fill="none" + d="M70.5 480.5 L10.5 480.5" + clip-path="url(#clipPath46)" + id="path450" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M688.7417 14 L700 20.5 L688.7417 27" + clip-path="url(#clipPath46)" + stroke-linecap="square" + id="path451" /> + </g> + <g + fill="rgb(53,117,70)" + font-size="14px" + font-family="sans-serif" + transform="translate(940,780)" + stroke="rgb(53,117,70)" + id="g452"> + <text + x="671.1475" + xml:space="preserve" + y="33.8174" + clip-path="url(#clipPath46)" + stroke="none" + id="text451">1</text> + <text + x="29" + xml:space="preserve" + y="493.8174" + clip-path="url(#clipPath46)" + stroke="none" + id="text452">question</text> + </g> + <g + transform="translate(1460,240)" + id="g456"> + <path + fill="none" + d="M1010.5 20.5 L150.5 20.5" + clip-path="url(#clipPath47)" + id="path452" /> + <path + fill="none" + d="M150.5 20.5 L150.5 100.5" + clip-path="url(#clipPath47)" + id="path453" /> + <path + fill="none" + d="M150.5 100.5 L11.5 100.5" + clip-path="url(#clipPath47)" + id="path454" /> + <path + fill="none" + d="M22.2583 94 L11 100.5 L22.2583 107" + clip-path="url(#clipPath47)" + id="path455" /> + <text + x="946.9473" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath47)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text455">metric</text> + <text + x="29" + font-size="14px" + y="113.8174" + clip-path="url(#clipPath47)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text456">1</text> + </g> + <g + stroke-dasharray="1,2" + stroke-miterlimit="5" + transform="translate(2250,520)" + stroke-linecap="butt" + id="g459"> + <path + fill="none" + d="M120.5 10.5 L50.5 10.5" + clip-path="url(#clipPath48)" + id="path456" /> + <path + fill="none" + d="M50.5 10.5 L50.5 50.5" + clip-path="url(#clipPath48)" + id="path457" /> + <path + fill="none" + d="M50.5 50.5 L11.5 50.5" + clip-path="url(#clipPath48)" + id="path458" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M22.2583 44 L11 50.5 L22.2583 57" + clip-path="url(#clipPath48)" + stroke-linecap="square" + id="path459" /> + </g> + <g + font-family="sans-serif" + font-size="14px" + transform="translate(2250,520)" + id="g460"> + <text + x="29" + xml:space="preserve" + y="63.8174" + clip-path="url(#clipPath48)" + stroke="none" + id="text459">0..1</text> + <text + x="56.0039" + xml:space="preserve" + y="23.8174" + clip-path="url(#clipPath48)" + stroke="none" + id="text460">parent</text> + </g> + <g + transform="translate(2250,550)" + id="g464"> + <path + fill="none" + d="M10.5 40.5 L70.5 40.5" + clip-path="url(#clipPath49)" + id="path460" /> + <path + fill="none" + d="M70.5 40.5 L70.5 10.5" + clip-path="url(#clipPath49)" + id="path461" /> + <path + fill="none" + d="M70.5 10.5 L129.5 10.5" + clip-path="url(#clipPath49)" + id="path462" /> + <path + fill="none" + d="M118.7417 17 L130 10.5 L118.7417 4" + clip-path="url(#clipPath49)" + id="path463" /> + <text + x="29" + font-size="14px" + y="53.8174" + clip-path="url(#clipPath49)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text463">answers</text> + <text + x="85.541" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath49)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text464">0..*</text> + </g> + <g + transform="translate(1150,1140)" + id="g467"> + <path + fill="none" + d="M10.5 11.5 L10.5 50.5" + clip-path="url(#clipPath50)" + id="path464" /> + <path + fill="none" + d="M10.5 50.5 L160.5 50.5" + clip-path="url(#clipPath50)" + id="path465" /> + <path + fill="white" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath50)" + stroke="none" + id="path466" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath50)" + id="path467" /> + </g> + <g + transform="translate(1150,1140)" + id="g470"> + <path + fill="none" + d="M10.5 11.5 L10.5 60.5" + clip-path="url(#clipPath51)" + id="path468" /> + <path + fill="white" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath51)" + stroke="none" + id="path469" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath51)" + id="path470" /> + </g> + <g + transform="translate(1990,800)" + id="g475"> + <path + fill="none" + d="M50.5 299.5 L50.5 190.5" + clip-path="url(#clipPath52)" + id="path471" /> + <path + fill="none" + d="M50.5 190.5 L10.5 190.5" + clip-path="url(#clipPath52)" + id="path472" /> + <path + fill="none" + d="M10.5 190.5 L10.5 10.5" + clip-path="url(#clipPath52)" + id="path473" /> + <path + fill="none" + d="M57 288.7417 L50.5 300 L44 288.7417" + clip-path="url(#clipPath52)" + id="path474" /> + <text + x="54" + font-size="14px" + y="284" + clip-path="url(#clipPath52)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text474">0..*</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath52)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text475">references</text> + </g> + <g + fill="blue" + stroke-miterlimit="5" + stroke-dasharray="1,2" + transform="translate(1630,800)" + stroke-linecap="butt" + stroke="blue" + id="g479"> + <path + fill="none" + d="M49.5 430.5 L30.5 430.5" + clip-path="url(#clipPath53)" + id="path475" /> + <path + fill="none" + d="M30.5 430.5 L30.5 270.5" + clip-path="url(#clipPath53)" + id="path476" /> + <path + fill="none" + d="M30.5 270.5 L140.5 270.5" + clip-path="url(#clipPath53)" + id="path477" /> + <path + fill="none" + d="M140.5 270.5 L140.5 10.5" + clip-path="url(#clipPath53)" + id="path478" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M38.7417 424 L50 430.5 L38.7417 437" + clip-path="url(#clipPath53)" + stroke-linecap="square" + id="path479" /> + </g> + <g + fill="blue" + font-size="14px" + font-family="sans-serif" + transform="translate(1630,800)" + stroke="blue" + id="g480"> + <text + x="5.541" + xml:space="preserve" + y="443.8174" + clip-path="url(#clipPath53)" + stroke="none" + id="text479">0..*</text> + </g> + <g + fill="blue" + stroke-miterlimit="5" + stroke-dasharray="1,2" + transform="translate(1790,800)" + stroke-linecap="butt" + stroke="blue" + id="g481"> + <path + fill="none" + d="M10.5 299.5 L10.5 10.5" + clip-path="url(#clipPath54)" + id="path480" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M17 288.7417 L10.5 300 L4 288.7417" + clip-path="url(#clipPath54)" + stroke-linecap="square" + id="path481" /> + </g> + <g + fill="blue" + font-size="14px" + font-family="sans-serif" + transform="translate(1790,800)" + stroke="blue" + id="g482"> + <text + x="14" + xml:space="preserve" + y="284" + clip-path="url(#clipPath54)" + stroke="none" + id="text481">0..*</text> + </g> + <g + transform="translate(1890,1130)" + id="g486"> + <path + fill="none" + d="M69.5 10.5 L30.5 10.5" + clip-path="url(#clipPath55)" + id="path482" /> + <path + fill="none" + d="M30.5 10.5 L30.5 100.5" + clip-path="url(#clipPath55)" + id="path483" /> + <path + fill="none" + d="M30.5 100.5 L10.5 100.5" + clip-path="url(#clipPath55)" + id="path484" /> + <path + fill="white" + d="M58.7417 4 L70 10.5 L58.7417 17 Z" + clip-path="url(#clipPath55)" + stroke="none" + id="path485" /> + <path + fill="none" + d="M58.7417 4 L70 10.5 L58.7417 17 Z" + clip-path="url(#clipPath55)" + id="path486" /> + </g> + <g + transform="translate(1890,1130)" + id="g489"> + <path + fill="none" + d="M69.5 10.5 L10.5 10.5" + clip-path="url(#clipPath56)" + id="path487" /> + <path + fill="white" + d="M58.7417 4 L70 10.5 L58.7417 17 Z" + clip-path="url(#clipPath56)" + stroke="none" + id="path488" /> + <path + fill="none" + d="M58.7417 4 L70 10.5 L58.7417 17 Z" + clip-path="url(#clipPath56)" + id="path489" /> + </g> + <g + transform="translate(1460,800)" + id="g493"> + <path + fill="none" + d="M11.5 170.5 L240.5 170.5" + clip-path="url(#clipPath57)" + id="path490" /> + <path + fill="none" + d="M240.5 170.5 L240.5 10.5" + clip-path="url(#clipPath57)" + id="path491" /> + <path + fill="none" + d="M22.2583 177 L11 170.5 L22.2583 164" + clip-path="url(#clipPath57)" + id="path492" /> + <text + x="29" + font-size="14px" + y="183.8174" + clip-path="url(#clipPath57)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text492">0..*</text> + <text + x="244" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath57)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text493">experts</text> + </g> + <g + stroke-dasharray="1,2" + stroke-miterlimit="5" + transform="translate(1830,310)" + stroke-linecap="butt" + id="g496"> + <path + fill="none" + d="M360.5 89.5 L360.5 20.5" + clip-path="url(#clipPath58)" + id="path493" /> + <path + fill="none" + d="M360.5 20.5 L10.5 20.5" + clip-path="url(#clipPath58)" + id="path494" /> + <path + fill="none" + d="M10.5 20.5 L10.5 180.5" + clip-path="url(#clipPath58)" + id="path495" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M367 78.7417 L360.5 90 L354 78.7417" + clip-path="url(#clipPath58)" + stroke-linecap="square" + id="path496" /> + </g> + <g + font-family="sans-serif" + font-size="14px" + transform="translate(1830,310)" + id="g497"> + <text + x="364" + xml:space="preserve" + y="74" + clip-path="url(#clipPath58)" + stroke="none" + id="text496">0..1</text> + <text + x="14" + xml:space="preserve" + y="164" + clip-path="url(#clipPath58)" + stroke="none" + id="text497">parent</text> + </g> + <g + stroke-dasharray="1,2" + stroke-miterlimit="5" + transform="translate(1460,550)" + stroke-linecap="butt" + id="g498"> + <path + fill="none" + d="M11.5 20.5 L180.5 20.5" + clip-path="url(#clipPath59)" + id="path497" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M22.2583 27 L11 20.5 L22.2583 14" + clip-path="url(#clipPath59)" + stroke-linecap="square" + id="path498" /> + </g> + <g + font-family="sans-serif" + font-size="14px" + transform="translate(1460,550)" + id="g499"> + <text + x="29" + xml:space="preserve" + y="33.8174" + clip-path="url(#clipPath59)" + stroke="none" + id="text498">0..1</text> + <text + x="116.0039" + xml:space="preserve" + y="33.8174" + clip-path="url(#clipPath59)" + stroke="none" + id="text499">parent</text> + </g> + <g + stroke-dasharray="1,2" + stroke-miterlimit="5" + transform="translate(1140,100)" + stroke-linecap="butt" + id="g502"> + <path + fill="none" + d="M10.5 10.5 L10.5 320.5" + clip-path="url(#clipPath60)" + id="path499" /> + <path + fill="none" + d="M10.5 320.5 L240.5 320.5" + clip-path="url(#clipPath60)" + id="path500" /> + <path + fill="none" + d="M240.5 320.5 L240.5 389.5" + clip-path="url(#clipPath60)" + id="path501" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M234 378.7417 L240.5 390 L247 378.7417" + clip-path="url(#clipPath60)" + stroke-linecap="square" + id="path502" /> + </g> + <g + font-family="sans-serif" + font-size="14px" + transform="translate(1140,100)" + id="g503"> + <text + x="244" + xml:space="preserve" + y="374" + clip-path="url(#clipPath60)" + stroke="none" + id="text502">0..1</text> + <text + x="14" + xml:space="preserve" + y="38.8174" + clip-path="url(#clipPath60)" + stroke="none" + id="text503">chapter</text> + </g> + <g + fill="rgb(53,117,70)" + transform="translate(940,750)" + stroke="rgb(53,117,70)" + id="g507"> + <path + fill="none" + d="M700.5 20.5 L50.5 20.5" + clip-path="url(#clipPath46)" + id="path503" /> + <path + fill="none" + d="M50.5 20.5 L50.5 480.5" + clip-path="url(#clipPath46)" + id="path504" /> + <path + fill="none" + d="M50.5 480.5 L11.5 480.5" + clip-path="url(#clipPath46)" + id="path505" /> + <path + fill="none" + d="M22.2583 474 L11 480.5 L22.2583 487" + clip-path="url(#clipPath46)" + id="path506" /> + <text + x="634.6299" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath46)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text506">replies</text> + <text + x="29" + font-size="14px" + y="493.8174" + clip-path="url(#clipPath46)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text507">0..*</text> + </g> + <g + transform="translate(740,60)" + id="g509"> + <path + fill="none" + d="M239.5 20.5 L10.5 20.5" + clip-path="url(#clipPath61)" + id="path507" /> + <path + fill="none" + d="M228.7417 14 L240 20.5 L228.7417 27" + clip-path="url(#clipPath61)" + id="path508" /> + <text + x="195.541" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath61)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text508">0..*</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath61)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text509">chapter_reports</text> + </g> + <g + fill="blue" + stroke-miterlimit="5" + stroke-dasharray="1,2" + transform="translate(610,490)" + stroke-linecap="butt" + stroke="blue" + id="g510"> + <path + fill="none" + d="M10.5 389.5 L10.5 10.5" + clip-path="url(#clipPath62)" + id="path509" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M17 378.7417 L10.5 390 L4 378.7417" + clip-path="url(#clipPath62)" + stroke-linecap="square" + id="path510" /> + </g> + <g + fill="blue" + font-size="14px" + font-family="sans-serif" + transform="translate(610,490)" + stroke="blue" + id="g511"> + <text + x="14" + xml:space="preserve" + y="38.8174" + clip-path="url(#clipPath62)" + stroke="none" + id="text510">replies</text> + <text + x="14" + xml:space="preserve" + y="374" + clip-path="url(#clipPath62)" + stroke="none" + id="text511">1</text> + </g> + <g + fill="blue" + stroke-miterlimit="5" + stroke-dasharray="1,2" + transform="translate(740,310)" + stroke-linecap="butt" + stroke="blue" + id="g512"> + <path + fill="none" + d="M129.5 20.5 L10.5 20.5" + clip-path="url(#clipPath63)" + id="path511" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M118.7417 14 L130 20.5 L118.7417 27" + clip-path="url(#clipPath63)" + stroke-linecap="square" + id="path512" /> + </g> + <g + fill="blue" + font-size="14px" + font-family="sans-serif" + transform="translate(740,310)" + stroke="blue" + id="g513"> + <text + x="101.1475" + xml:space="preserve" + y="33.8174" + clip-path="url(#clipPath63)" + stroke="none" + id="text512">1</text> + <text + x="29" + xml:space="preserve" + y="33.8174" + clip-path="url(#clipPath63)" + stroke="none" + id="text513">e</text> + </g> + <g + transform="translate(970,400)" + id="g515"> + <path + fill="none" + d="M10.5 11.5 L10.5 80.5" + clip-path="url(#clipPath64)" + id="path513" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583" + clip-path="url(#clipPath64)" + id="path514" /> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath64)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text514">1</text> + <text + x="14" + font-size="14px" + y="64" + clip-path="url(#clipPath64)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text515">e</text> + </g> + <g + transform="translate(370,720)" + id="g519"> + <path + fill="none" + d="M909.5 20.5 L330.5 20.5" + clip-path="url(#clipPath65)" + id="path515" /> + <path + fill="none" + d="M330.5 20.5 L330.5 110.5" + clip-path="url(#clipPath65)" + id="path516" /> + <path + fill="none" + d="M330.5 110.5 L10.5 110.5" + clip-path="url(#clipPath65)" + id="path517" /> + <path + fill="none" + d="M898.7417 14 L910 20.5 L898.7417 27" + clip-path="url(#clipPath65)" + id="path518" /> + <text + x="29" + font-size="14px" + y="123.8174" + clip-path="url(#clipPath65)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text518">phase</text> + <text + x="863.4355" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath65)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text519">0..1</text> + </g> + <g + fill="blue" + stroke-miterlimit="5" + stroke-dasharray="1,2" + transform="translate(690,490)" + stroke-linecap="butt" + stroke="blue" + id="g521"> + <path + fill="none" + d="M589.5 230.5 L10.5 230.5" + clip-path="url(#clipPath66)" + id="path519" /> + <path + fill="none" + d="M10.5 230.5 L10.5 10.5" + clip-path="url(#clipPath66)" + id="path520" /> + <path + fill="none" + stroke-miterlimit="10" + stroke-dasharray="none" + d="M578.7417 224 L590 230.5 L578.7417 237" + clip-path="url(#clipPath66)" + stroke-linecap="square" + id="path521" /> + </g> + <g + fill="blue" + font-size="14px" + font-family="sans-serif" + transform="translate(690,490)" + stroke="blue" + id="g522"> + <text + x="14" + xml:space="preserve" + y="38.8174" + clip-path="url(#clipPath66)" + stroke="none" + id="text521">current_phase</text> + <text + x="543.4355" + xml:space="preserve" + y="243.8174" + clip-path="url(#clipPath66)" + stroke="none" + id="text522">0..1</text> + </g> + <g + transform="translate(250,980)" + id="g526"> + <path + fill="none" + d="M10.5 470.5 L10.5 520.5" + clip-path="url(#clipPath67)" + id="path522" /> + <path + fill="none" + d="M10.5 520.5 L1920.5 520.5" + clip-path="url(#clipPath67)" + id="path523" /> + <path + fill="none" + d="M1920.5 520.5 L1920.5 11.5" + clip-path="url(#clipPath67)" + id="path524" /> + <path + fill="none" + d="M1927 22.2583 L1920.5 11 L1914 22.2583" + clip-path="url(#clipPath67)" + id="path525" /> + <text + x="14" + font-size="14px" + y="498.8174" + clip-path="url(#clipPath67)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text525">choices</text> + <text + x="1924" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath67)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text526">0..*</text> + </g> + <g + transform="translate(1890,330)" + id="g530"> + <path + fill="none" + d="M210.5 70.5 L210.5 20.5" + clip-path="url(#clipPath68)" + id="path526" /> + <path + fill="none" + d="M210.5 20.5 L10.5 20.5" + clip-path="url(#clipPath68)" + id="path527" /> + <path + fill="none" + d="M10.5 20.5 L10.5 159.5" + clip-path="url(#clipPath68)" + id="path528" /> + <path + fill="none" + d="M4 148.7417 L10.5 160 L17 148.7417" + clip-path="url(#clipPath68)" + id="path529" /> + <text + x="214" + font-size="14px" + y="54" + clip-path="url(#clipPath68)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text529">followups</text> + <text + x="14" + font-size="14px" + y="144" + clip-path="url(#clipPath68)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text530">0..*</text> + </g> + <g + transform="translate(1660,270)" + id="g534"> + <path + fill="none" + d="M770.5 160.5 L770.5 20.5" + clip-path="url(#clipPath69)" + id="path530" /> + <path + fill="none" + d="M770.5 20.5 L10.5 20.5" + clip-path="url(#clipPath69)" + id="path531" /> + <path + fill="none" + d="M10.5 20.5 L10.5 219.5" + clip-path="url(#clipPath69)" + id="path532" /> + <path + fill="none" + d="M4 208.7417 L10.5 220 L17 208.7417" + clip-path="url(#clipPath69)" + id="path533" /> + <text + x="774" + font-size="14px" + y="144" + clip-path="url(#clipPath69)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text533">followups</text> + <text + x="14" + font-size="14px" + y="204" + clip-path="url(#clipPath69)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text534">0..*</text> + </g> + <g + transform="translate(1210,570)" + id="g538"> + <path + fill="none" + d="M10.5 880.5 L10.5 910.5" + clip-path="url(#clipPath70)" + id="path534" /> + <path + fill="none" + d="M10.5 910.5 L1290.5 910.5" + clip-path="url(#clipPath70)" + id="path535" /> + <path + fill="none" + d="M1290.5 910.5 L1290.5 11.5" + clip-path="url(#clipPath70)" + id="path536" /> + <path + fill="none" + d="M1297 22.2583 L1290.5 11 L1284 22.2583" + clip-path="url(#clipPath70)" + id="path537" /> + <text + x="14" + font-size="14px" + y="908.8174" + clip-path="url(#clipPath70)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text537">answer</text> + <text + x="1294" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath70)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text538">1</text> + </g> + <g + transform="translate(2500,300)" + id="g540"> + <path + fill="none" + d="M10.5 130.5 L10.5 11.5" + clip-path="url(#clipPath71)" + id="path538" /> + <path + fill="none" + d="M17 22.2583 L10.5 11 L4 22.2583" + clip-path="url(#clipPath71)" + id="path539" /> + <text + x="14" + font-size="14px" + y="114" + clip-path="url(#clipPath71)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text539">metric_measures</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath71)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text540">0..*</text> + </g> + <g + transform="translate(1250,720)" + id="g544"> + <path + fill="none" + d="M1010.5 10.5 L1090.5 10.5" + clip-path="url(#clipPath72)" + id="path540" /> + <path + fill="none" + d="M1090.5 10.5 L1090.5 320.5" + clip-path="url(#clipPath72)" + id="path541" /> + <path + fill="none" + d="M1090.5 320.5 L11.5 320.5" + clip-path="url(#clipPath72)" + id="path542" /> + <path + fill="none" + d="M22.2583 314 L11 320.5 L22.2583 327" + clip-path="url(#clipPath72)" + id="path543" /> + <text + x="1029" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath72)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text543">integration</text> + <text + x="29" + font-size="14px" + y="333.8174" + clip-path="url(#clipPath72)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text544">1</text> + </g> + <g + transform="translate(1460,690)" + id="g546"> + <path + fill="none" + d="M180.5 20.5 L11.5 20.5" + clip-path="url(#clipPath59)" + id="path544" /> + <path + fill="none" + d="M22.2583 14 L11 20.5 L22.2583 27" + clip-path="url(#clipPath59)" + id="path545" /> + <text + x="55.417" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath59)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text545">required_phase</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath59)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text546">0..1</text> + </g> + <g + transform="translate(1460,510)" + id="g548"> + <path + fill="none" + d="M179.5 20.5 L10.5 20.5" + clip-path="url(#clipPath59)" + id="path546" /> + <path + fill="none" + d="M168.7417 14 L180 20.5 L168.7417 27" + clip-path="url(#clipPath59)" + id="path547" /> + <text + x="135.541" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath59)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text547">0..*</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath59)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text548">questions</text> + </g> + <g + transform="translate(1040,680)" + id="g551"> + <path + fill="none" + d="M239.5 190.5 L10.5 190.5" + clip-path="url(#clipPath73)" + id="path548" /> + <path + fill="none" + d="M10.5 190.5 L10.5 10.5" + clip-path="url(#clipPath73)" + id="path549" /> + <path + fill="none" + d="M228.7417 184 L240 190.5 L228.7417 197" + clip-path="url(#clipPath73)" + id="path550" /> + <text + x="195.541" + font-size="14px" + y="203.8174" + clip-path="url(#clipPath73)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text550">0..*</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath73)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text551">tags</text> + </g> + <g + transform="translate(920,680)" + id="g554"> + <path + fill="none" + d="M149.5 360.5 L10.5 360.5" + clip-path="url(#clipPath74)" + id="path551" /> + <path + fill="none" + d="M10.5 360.5 L10.5 10.5" + clip-path="url(#clipPath74)" + id="path552" /> + <path + fill="none" + d="M138.7417 354 L150 360.5 L138.7417 367" + clip-path="url(#clipPath74)" + id="path553" /> + <text + x="105.541" + font-size="14px" + y="373.8174" + clip-path="url(#clipPath74)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text553">0..*</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath74)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text554">integrations</text> + </g> + <g + transform="translate(1080,620)" + id="g556"> + <path + fill="none" + d="M199.5 20.5 L10.5 20.5" + clip-path="url(#clipPath75)" + id="path554" /> + <path + fill="none" + d="M188.7417 14 L200 20.5 L188.7417 27" + clip-path="url(#clipPath75)" + id="path555" /> + <text + x="155.541" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath75)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text555">0..*</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath75)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text556">phases</text> + </g> + <g + transform="translate(1080,320)" + id="g560"> + <path + fill="none" + d="M189.5 10.5 L100.5 10.5" + clip-path="url(#clipPath76)" + id="path556" /> + <path + fill="none" + d="M100.5 10.5 L100.5 180.5" + clip-path="url(#clipPath76)" + id="path557" /> + <path + fill="none" + d="M100.5 180.5 L10.5 180.5" + clip-path="url(#clipPath76)" + id="path558" /> + <path + fill="none" + d="M178.7417 4 L190 10.5 L178.7417 17" + clip-path="url(#clipPath76)" + id="path559" /> + <text + x="145.541" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath76)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text559">0..*</text> + <text + x="29" + font-size="14px" + y="193.8174" + clip-path="url(#clipPath76)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text560">metrics</text> + </g> + <g + transform="translate(1080,530)" + id="g562"> + <path + fill="none" + d="M199.5 20.5 L10.5 20.5" + clip-path="url(#clipPath75)" + id="path560" /> + <path + fill="none" + d="M188.7417 14 L200 20.5 L188.7417 27" + clip-path="url(#clipPath75)" + id="path561" /> + <text + x="155.541" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath75)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text561">0..*</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath75)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text562">chapters</text> + </g> + <g + transform="translate(740,420)" + id="g565"> + <path + fill="none" + d="M10.5 20.5 L170.5 20.5" + clip-path="url(#clipPath77)" + id="path562" /> + <path + fill="none" + d="M170.5 20.5 L170.5 59.5" + clip-path="url(#clipPath77)" + id="path563" /> + <path + fill="none" + d="M164 48.7417 L170.5 60 L177 48.7417" + clip-path="url(#clipPath77)" + id="path564" /> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath77)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text564">km</text> + <text + x="174" + font-size="14px" + y="44" + clip-path="url(#clipPath77)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text565">1</text> + </g> + <g + transform="translate(1350,170)" + id="g567"> + <path + fill="none" + d="M10.5 10.5 L10.5 109.5" + clip-path="url(#clipPath78)" + id="path565" /> + <path + fill="none" + d="M4 98.7417 L10.5 110 L17 98.7417" + clip-path="url(#clipPath78)" + id="path566" /> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath78)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text566">metric</text> + <text + x="14" + font-size="14px" + y="94" + clip-path="url(#clipPath78)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text567">1</text> + </g> + <g + transform="translate(1100,100)" + id="g571"> + <path + fill="none" + d="M10.5 11.5 L10.5 340.5" + clip-path="url(#clipPath79)" + id="path567" /> + <path + fill="none" + d="M10.5 340.5 L210.5 340.5" + clip-path="url(#clipPath79)" + id="path568" /> + <path + fill="none" + d="M210.5 340.5 L210.5 390.5" + clip-path="url(#clipPath79)" + id="path569" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583" + clip-path="url(#clipPath79)" + id="path570" /> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath79)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text570">0..*</text> + <text + x="214" + font-size="14px" + y="374" + clip-path="url(#clipPath79)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text571">reports</text> + </g> + <g + transform="translate(1190,50)" + id="g574"> + <path + fill="none" + d="M10.5 20.5 L170.5 20.5" + clip-path="url(#clipPath80)" + id="path571" /> + <path + fill="none" + d="M170.5 20.5 L170.5 59.5" + clip-path="url(#clipPath80)" + id="path572" /> + <path + fill="none" + d="M164 48.7417 L170.5 60 L177 48.7417" + clip-path="url(#clipPath80)" + id="path573" /> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath80)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text573">metrics</text> + <text + x="174" + font-size="14px" + y="44" + clip-path="url(#clipPath80)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text574">0..1</text> + </g> + <g + transform="translate(1190,10)" + id="g576"> + <path + fill="none" + d="M10.5 20.5 L309.5 20.5" + clip-path="url(#clipPath81)" + id="path574" /> + <path + fill="none" + d="M298.7417 27 L310 20.5 L298.7417 14" + clip-path="url(#clipPath81)" + id="path575" /> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath81)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text575">indications</text> + <text + x="265.541" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath81)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text576">0..*</text> + </g> + <g + transform="translate(740,10)" + id="g578"> + <path + fill="none" + d="M239.5 20.5 L10.5 20.5" + clip-path="url(#clipPath61)" + id="path576" /> + <path + fill="none" + d="M228.7417 14 L240 20.5 L228.7417 27" + clip-path="url(#clipPath61)" + id="path577" /> + <text + x="211.1475" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath61)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text577">1</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath61)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text578">total_report</text> + </g> + <g + transform="translate(620,100)" + id="g580"> + <path + fill="none" + d="M10.5 90.5 L10.5 11.5" + clip-path="url(#clipPath82)" + id="path578" /> + <path + fill="none" + d="M17 22.2583 L10.5 11 L4 22.2583" + clip-path="url(#clipPath82)" + id="path579" /> + <text + x="14" + font-size="14px" + y="74" + clip-path="url(#clipPath82)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text579">report</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath82)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text580">1</text> + </g> + <g + transform="translate(370,230)" + id="g582"> + <path + fill="none" + d="M160.5 20.5 L11.5 20.5" + clip-path="url(#clipPath83)" + id="path580" /> + <path + fill="none" + d="M22.2583 14 L11 20.5 L22.2583 27" + clip-path="url(#clipPath83)" + id="path581" /> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath83)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text581">1</text> + <text + x="118.9521" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath83)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text582">cfg</text> + </g> + <g + transform="translate(370,320)" + id="g584"> + <path + fill="none" + d="M160.5 20.5 L11.5 20.5" + clip-path="url(#clipPath83)" + id="path582" /> + <path + fill="none" + d="M22.2583 14 L11 20.5 L22.2583 27" + clip-path="url(#clipPath83)" + id="path583" /> + <text + x="115.418" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath83)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text583">doc</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath83)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text584">1</text> + </g> + <g + transform="translate(370,450)" + id="g586"> + <path + fill="none" + d="M160.5 20.5 L11.5 20.5" + clip-path="url(#clipPath83)" + id="path584" /> + <path + fill="none" + d="M22.2583 14 L11 20.5 L22.2583 27" + clip-path="url(#clipPath83)" + id="path585" /> + <text + x="116.9424" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath83)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text585">org</text> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath83)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text586">1</text> + </g> + <g + transform="translate(370,490)" + id="g589"> + <path + fill="none" + d="M170.5 10.5 L170.5 90.5" + clip-path="url(#clipPath84)" + id="path586" /> + <path + fill="none" + d="M170.5 90.5 L11.5 90.5" + clip-path="url(#clipPath84)" + id="path587" /> + <path + fill="none" + d="M22.2583 84 L11 90.5 L22.2583 97" + clip-path="url(#clipPath84)" + id="path588" /> + <text + x="174" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath84)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text588">pkg</text> + <text + x="29" + font-size="14px" + y="103.8174" + clip-path="url(#clipPath84)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text589">1</text> + </g> + <g + fill="rgb(53,117,70)" + transform="translate(790,1020)" + stroke="rgb(53,117,70)" + id="g591"> + <path + fill="none" + d="M10.5 10.5 L10.5 129.5" + clip-path="url(#clipPath85)" + id="path589" /> + <path + fill="none" + d="M4 118.7417 L10.5 130 L17 118.7417" + clip-path="url(#clipPath85)" + id="path590" /> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath85)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text590">replies</text> + <text + x="14" + font-size="14px" + y="114" + clip-path="url(#clipPath85)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text591">0..*</text> + </g> + <g + transform="translate(370,910)" + id="g593"> + <path + fill="none" + d="M10.5 20.5 L199.5 20.5" + clip-path="url(#clipPath75)" + id="path591" /> + <path + fill="none" + d="M188.7417 27 L200 20.5 L188.7417 14" + clip-path="url(#clipPath75)" + id="path592" /> + <text + x="29" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath75)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text592">replies</text> + <text + x="171.1475" + font-size="14px" + y="33.8174" + clip-path="url(#clipPath75)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text593">1</text> + </g> + <g + transform="translate(270,490)" + id="g597"> + <path + fill="none" + d="M10.5 299.5 L10.5 260.5" + clip-path="url(#clipPath86)" + id="path593" /> + <path + fill="none" + d="M10.5 260.5 L310.5 260.5" + clip-path="url(#clipPath86)" + id="path594" /> + <path + fill="none" + d="M310.5 260.5 L310.5 10.5" + clip-path="url(#clipPath86)" + id="path595" /> + <path + fill="none" + d="M17 288.7417 L10.5 300 L4 288.7417" + clip-path="url(#clipPath86)" + id="path596" /> + <text + x="14" + font-size="14px" + y="284" + clip-path="url(#clipPath86)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text596">1</text> + <text + x="314" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath86)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text597">qtn</text> + </g> + <g + transform="translate(40,710)" + id="g600"> + <path + fill="none" + d="M10.5 11.5 L10.5 190.5" + clip-path="url(#clipPath87)" + id="path597" /> + <path + fill="none" + d="M10.5 190.5 L110.5 190.5" + clip-path="url(#clipPath87)" + id="path598" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583" + clip-path="url(#clipPath87)" + id="path599" /> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath87)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text599">1</text> + <text + x="16.5957" + font-size="14px" + y="203.8174" + clip-path="url(#clipPath87)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text600">created_by</text> + </g> + <g + transform="translate(230,1000)" + id="g602"> + <path + fill="none" + d="M10.5 79.5 L10.5 10.5" + clip-path="url(#clipPath88)" + id="path600" /> + <path + fill="none" + d="M17 68.7417 L10.5 80 L4 68.7417" + clip-path="url(#clipPath88)" + id="path601" /> + <text + x="14" + font-size="14px" + y="64" + clip-path="url(#clipPath88)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text601">0..*</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath88)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text602">versions</text> + </g> + <g + transform="translate(230,1220)" + id="g605"> + <path + fill="none" + d="M169.5 40.5 L10.5 40.5" + clip-path="url(#clipPath89)" + id="path602" /> + <path + fill="none" + d="M10.5 40.5 L10.5 10.5" + clip-path="url(#clipPath89)" + id="path603" /> + <path + fill="none" + d="M158.7417 34 L170 40.5 L158.7417 47" + clip-path="url(#clipPath89)" + id="path604" /> + <text + x="123.4355" + font-size="14px" + y="53.8174" + clip-path="url(#clipPath89)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text604">0..1</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath89)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text605">created_by</text> + </g> + <g + transform="translate(580,1180)" + id="g609"> + <path + fill="none" + d="M11.5 10.5 L60.5 10.5" + clip-path="url(#clipPath90)" + id="path605" /> + <path + fill="none" + d="M60.5 10.5 L60.5 70.5" + clip-path="url(#clipPath90)" + id="path606" /> + <path + fill="none" + d="M60.5 70.5 L120.5 70.5" + clip-path="url(#clipPath90)" + id="path607" /> + <path + fill="none" + d="M22.2583 17 L11 10.5 L22.2583 4" + clip-path="url(#clipPath90)" + id="path608" /> + <text + x="29" + font-size="14px" + y="23.8174" + clip-path="url(#clipPath90)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text608">0..1</text> + <text + x="26.5957" + font-size="14px" + y="83.8174" + clip-path="url(#clipPath90)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text609">created_by</text> + </g> + <g + transform="translate(250,1270)" + id="g613"> + <path + fill="none" + d="M550.5 11.5 L550.5 60.5" + clip-path="url(#clipPath91)" + id="path609" /> + <path + fill="none" + d="M550.5 60.5 L10.5 60.5" + clip-path="url(#clipPath91)" + id="path610" /> + <path + fill="none" + d="M10.5 60.5 L10.5 90.5" + clip-path="url(#clipPath91)" + id="path611" /> + <path + fill="white" + d="M544 22.2583 L550.5 11 L557 22.2583 Z" + clip-path="url(#clipPath91)" + stroke="none" + id="path612" /> + <path + fill="none" + d="M544 22.2583 L550.5 11 L557 22.2583 Z" + clip-path="url(#clipPath91)" + id="path613" /> + </g> + <g + transform="translate(610,1270)" + id="g618"> + <path + fill="none" + d="M190.5 11.5 L190.5 60.5" + clip-path="url(#clipPath92)" + id="path614" /> + <path + fill="none" + d="M190.5 60.5 L10.5 60.5" + clip-path="url(#clipPath92)" + id="path615" /> + <path + fill="none" + d="M10.5 60.5 L10.5 90.5" + clip-path="url(#clipPath92)" + id="path616" /> + <path + fill="white" + d="M184 22.2583 L190.5 11 L197 22.2583 Z" + clip-path="url(#clipPath92)" + stroke="none" + id="path617" /> + <path + fill="none" + d="M184 22.2583 L190.5 11 L197 22.2583 Z" + clip-path="url(#clipPath92)" + id="path618" /> + </g> + <g + transform="translate(790,1270)" + id="g621"> + <path + fill="none" + d="M10.5 11.5 L10.5 90.5" + clip-path="url(#clipPath93)" + id="path619" /> + <path + fill="white" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath93)" + stroke="none" + id="path620" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath93)" + id="path621" /> + </g> + <g + transform="translate(790,1270)" + id="g626"> + <path + fill="none" + d="M10.5 11.5 L10.5 60.5" + clip-path="url(#clipPath94)" + id="path622" /> + <path + fill="none" + d="M10.5 60.5 L210.5 60.5" + clip-path="url(#clipPath94)" + id="path623" /> + <path + fill="none" + d="M210.5 60.5 L210.5 90.5" + clip-path="url(#clipPath94)" + id="path624" /> + <path + fill="white" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath94)" + stroke="none" + id="path625" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath94)" + id="path626" /> + </g> + <g + transform="translate(790,1270)" + id="g631"> + <path + fill="none" + d="M10.5 11.5 L10.5 60.5" + clip-path="url(#clipPath95)" + id="path627" /> + <path + fill="none" + d="M10.5 60.5 L430.5 60.5" + clip-path="url(#clipPath95)" + id="path628" /> + <path + fill="none" + d="M430.5 60.5 L430.5 90.5" + clip-path="url(#clipPath95)" + id="path629" /> + <path + fill="white" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath95)" + stroke="none" + id="path630" /> + <path + fill="none" + d="M4 22.2583 L10.5 11 L17 22.2583 Z" + clip-path="url(#clipPath95)" + id="path631" /> + </g> + <g + transform="translate(2000,610)" + id="g636"> + <path + fill="none" + d="M11.5 10.5 L50.5 10.5" + clip-path="url(#clipPath96)" + id="path632" /> + <path + fill="none" + d="M50.5 10.5 L50.5 190.5" + clip-path="url(#clipPath96)" + id="path633" /> + <path + fill="none" + d="M50.5 190.5 L70.5 190.5" + clip-path="url(#clipPath96)" + id="path634" /> + <path + fill="white" + d="M22.2583 17 L11 10.5 L22.2583 4 Z" + clip-path="url(#clipPath96)" + stroke="none" + id="path635" /> + <path + fill="none" + d="M22.2583 17 L11 10.5 L22.2583 4 Z" + clip-path="url(#clipPath96)" + id="path636" /> + </g> + <g + transform="translate(2000,570)" + id="g641"> + <path + fill="none" + d="M11.5 50.5 L50.5 50.5" + clip-path="url(#clipPath97)" + id="path637" /> + <path + fill="none" + d="M50.5 50.5 L50.5 10.5" + clip-path="url(#clipPath97)" + id="path638" /> + <path + fill="none" + d="M50.5 10.5 L70.5 10.5" + clip-path="url(#clipPath97)" + id="path639" /> + <path + fill="white" + d="M22.2583 57 L11 50.5 L22.2583 44 Z" + clip-path="url(#clipPath97)" + stroke="none" + id="path640" /> + <path + fill="none" + d="M22.2583 57 L11 50.5 L22.2583 44 Z" + clip-path="url(#clipPath97)" + id="path641" /> + </g> + <g + transform="translate(2000,420)" + id="g646"> + <path + fill="none" + d="M11.5 200.5 L50.5 200.5" + clip-path="url(#clipPath98)" + id="path642" /> + <path + fill="none" + d="M50.5 200.5 L50.5 10.5" + clip-path="url(#clipPath98)" + id="path643" /> + <path + fill="none" + d="M50.5 10.5 L70.5 10.5" + clip-path="url(#clipPath98)" + id="path644" /> + <path + fill="white" + d="M22.2583 207 L11 200.5 L22.2583 194 Z" + clip-path="url(#clipPath98)" + stroke="none" + id="path645" /> + <path + fill="none" + d="M22.2583 207 L11 200.5 L22.2583 194 Z" + clip-path="url(#clipPath98)" + id="path646" /> + </g> + <g + transform="translate(2000,610)" + id="g651"> + <path + fill="none" + d="M11.5 10.5 L50.5 10.5" + clip-path="url(#clipPath99)" + id="path647" /> + <path + fill="none" + d="M50.5 10.5 L50.5 120.5" + clip-path="url(#clipPath99)" + id="path648" /> + <path + fill="none" + d="M50.5 120.5 L70.5 120.5" + clip-path="url(#clipPath99)" + id="path649" /> + <path + fill="white" + d="M22.2583 17 L11 10.5 L22.2583 4 Z" + clip-path="url(#clipPath99)" + stroke="none" + id="path650" /> + <path + fill="none" + d="M22.2583 17 L11 10.5 L22.2583 4 Z" + clip-path="url(#clipPath99)" + id="path651" /> + </g> + <g + transform="translate(2000,610)" + id="g656"> + <path + fill="none" + d="M11.5 10.5 L50.5 10.5" + clip-path="url(#clipPath97)" + id="path652" /> + <path + fill="none" + d="M50.5 10.5 L50.5 50.5" + clip-path="url(#clipPath97)" + id="path653" /> + <path + fill="none" + d="M50.5 50.5 L70.5 50.5" + clip-path="url(#clipPath97)" + id="path654" /> + <path + fill="white" + d="M22.2583 17 L11 10.5 L22.2583 4 Z" + clip-path="url(#clipPath97)" + stroke="none" + id="path655" /> + <path + fill="none" + d="M22.2583 17 L11 10.5 L22.2583 4 Z" + clip-path="url(#clipPath97)" + id="path656" /> + </g> + <g + transform="translate(2160,810)" + id="g659"> + <path + fill="none" + d="M10.5 79.5 L10.5 10.5" + clip-path="url(#clipPath88)" + id="path657" /> + <path + fill="none" + d="M17 68.7417 L10.5 80 L4 68.7417" + clip-path="url(#clipPath88)" + id="path658" /> + <text + x="14" + font-size="14px" + y="64" + clip-path="url(#clipPath88)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text658">0..*</text> + <text + x="14" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath88)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text659">choices</text> + </g> + <g + transform="translate(1460,800)" + id="g662"> + <path + fill="none" + d="M11.5 70.5 L190.5 70.5" + clip-path="url(#clipPath100)" + id="path659" /> + <path + fill="none" + d="M190.5 70.5 L190.5 10.5" + clip-path="url(#clipPath100)" + id="path660" /> + <path + fill="none" + d="M22.2583 77 L11 70.5 L22.2583 64" + clip-path="url(#clipPath100)" + id="path661" /> + <text + x="29" + font-size="14px" + y="83.8174" + clip-path="url(#clipPath100)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text661">0..*</text> + <text + x="194" + font-size="14px" + y="38.8174" + clip-path="url(#clipPath100)" + font-family="sans-serif" + stroke="none" + xml:space="preserve" + id="text662">tags</text> + </g> + </g> +</svg> diff --git a/docs/more/development/document-templates/document-context.uxf b/docs/more/development/document-templates/document-context.uxf index 617dcb1f..4d8816f8 100644 --- a/docs/more/development/document-templates/document-context.uxf +++ b/docs/more/development/document-templates/document-context.uxf @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<diagram program="umlet" version="15.0.0"> +<diagram program="umlet" version="15.1"> <zoom_level>8</zoom_level> <element> <id>UMLClass</id> <coordinates> <x>424</x> - <y>176</y> + <y>152</y> <w>176</w> - <h>224</h> + <h>248</h> </coordinates> <panel_attributes>*DocumentContext* -- @@ -19,6 +19,8 @@ organization: Organization package: Package questionnaire: Questionnaire report: Report +users: list[UserPermission] +groups: list[GroupPermissions] -- e: KnowledgeModelEntities cfg: ContextConfig @@ -32,10 +34,10 @@ replies: RepliesContainer</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>696</x> + <x>648</x> <y>384</y> - <w>176</w> - <h>160</h> + <w>224</w> + <h>168</h> </coordinates> <panel_attributes>KnowledgeModel -- @@ -44,6 +46,7 @@ chapters: list[Chapter] integrations: list[Integration] metrics: list[Metric] phases: list[Phase] +resource_collections: list[ResourceCollections] tags: list[Tag] entities: KnowledgeModelEntities annotations: dict[str,str] @@ -102,9 +105,9 @@ resource_page_references: list[ResourcePageReference]</panel_attributes> <id>UMLClass</id> <coordinates> <x>1656</x> - <y>400</y> - <w>144</w> - <h>48</h> + <y>440</y> + <w>152</w> + <h>40</h> </coordinates> <panel_attributes>OptionsQuestion -- @@ -115,9 +118,9 @@ answers: list[Answer]</panel_attributes> <id>UMLClass</id> <coordinates> <x>1656</x> - <y>464</y> - <w>144</w> - <h>48</h> + <y>496</y> + <w>152</w> + <h>40</h> </coordinates> <panel_attributes>ValueQuestion -- @@ -128,9 +131,9 @@ value_type: str</panel_attributes> <id>UMLClass</id> <coordinates> <x>1656</x> - <y>336</y> - <w>144</w> - <h>48</h> + <y>320</y> + <w>152</w> + <h>40</h> </coordinates> <panel_attributes>ListQuestion -- @@ -141,9 +144,9 @@ followups: list[Question]</panel_attributes> <id>UMLClass</id> <coordinates> <x>1656</x> - <y>600</y> - <w>144</w> - <h>48</h> + <y>616</y> + <w>152</w> + <h>40</h> </coordinates> <panel_attributes>MultiChoiceQuestion -- @@ -154,9 +157,9 @@ choices: list[Choice]</panel_attributes> <id>UMLClass</id> <coordinates> <x>1656</x> - <y>528</y> - <w>144</w> - <h>56</h> + <y>552</y> + <w>152</w> + <h>48</h> </coordinates> <panel_attributes>IntegrationQuestion -- @@ -262,7 +265,7 @@ tags: dict[str,Tag]</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>904</x> + <x>920</x> <y>1088</y> <w>112</w> <h>72</h> @@ -278,9 +281,9 @@ value: str</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>576</x> + <x>560</x> <y>920</y> - <w>184</w> + <w>200</w> <h>104</h> </coordinates> <panel_attributes>/Reply/ @@ -309,14 +312,18 @@ client_url: str</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>176</x> - <y>240</y> - <w>128</w> - <h>64</h> + <x>144</x> + <y>224</y> + <w>160</w> + <h>112</h> </coordinates> <panel_attributes>Document -- uuid: str +name: str +document_template_id: str +format_uuid: str +created_by: User created_at: datetime updated_at: datetime</panel_attributes> <additional_attributes/> @@ -325,7 +332,7 @@ updated_at: datetime</panel_attributes> <id>UMLClass</id> <coordinates> <x>176</x> - <y>328</y> + <y>344</y> <w>128</w> <h>80</h> </coordinates> @@ -363,7 +370,7 @@ org_id: str</panel_attributes> <id>UMLClass</id> <coordinates> <x>120</x> - <y>840</y> + <y>864</y> <w>184</w> <h>120</h> </coordinates> @@ -384,7 +391,7 @@ updated_at: datetime</panel_attributes> <x>120</x> <y>632</y> <w>184</w> - <h>144</h> + <h>176</h> </coordinates> <panel_attributes>Questionnaire -- @@ -394,9 +401,12 @@ description: str project_tags: list[str] version: QuestionnaireVersion versions: list[QuestionnaireVersion] +todos: list[str] phase: Optional[Phase] replies: RepliesContainer -created_by: User</panel_attributes> +created_by: User +created_at: datetime +updated_at: datetime</panel_attributes> <additional_attributes/> </element> <element> @@ -425,7 +435,7 @@ updated_at: datetime</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>312</x> + <x>320</x> <y>920</y> <w>152</w> <h>104</h> @@ -496,7 +506,7 @@ value: list[str]</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>288</x> + <x>144</x> <y>1088</y> <w>128</w> <h>72</h> @@ -514,7 +524,7 @@ value: list[str]</panel_attributes> <coordinates> <x>720</x> <y>1088</y> - <w>168</w> + <w>184</w> <h>72</h> </coordinates> <panel_attributes>StringReply @@ -543,7 +553,7 @@ metric: Metric</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>1648</x> + <x>1656</x> <y>712</y> <w>152</w> <h>80</h> @@ -657,17 +667,17 @@ m2=tags <element> <id>Relation</id> <coordinates> - <x>1720</x> - <y>640</y> + <x>1728</x> + <y>648</y> <w>64</w> - <h>88</h> + <h>80</h> </coordinates> <panel_attributes>lt=<- m1=0..* m2=choices </panel_attributes> - <additional_attributes>10.0;90.0;10.0;10.0</additional_attributes> + <additional_attributes>10.0;80.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -675,10 +685,10 @@ m2=choices <x>1600</x> <y>488</y> <w>72</w> - <h>24</h> + <h>56</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;10.0;70.0;10.0</additional_attributes> + <additional_attributes>10.0;10.0;50.0;10.0;50.0;50.0;70.0;50.0</additional_attributes> </element> <element> <id>Relation</id> @@ -686,32 +696,32 @@ m2=choices <x>1600</x> <y>488</y> <w>72</w> - <h>88</h> + <h>112</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;10.0;50.0;10.0;50.0;90.0;70.0;90.0</additional_attributes> + <additional_attributes>10.0;10.0;50.0;10.0;50.0;120.0;70.0;120.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>1600</x> - <y>352</y> + <y>336</y> <w>72</w> - <h>160</h> + <h>176</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;180.0;50.0;180.0;50.0;10.0;70.0;10.0</additional_attributes> + <additional_attributes>10.0;200.0;50.0;200.0;50.0;10.0;70.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>1600</x> - <y>416</y> + <y>456</y> <w>72</w> - <h>96</h> + <h>56</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;100.0;50.0;100.0;50.0;10.0;70.0;10.0</additional_attributes> + <additional_attributes>10.0;50.0;50.0;50.0;50.0;10.0;70.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -719,21 +729,21 @@ m2=choices <x>1600</x> <y>488</y> <w>72</w> - <h>152</h> + <h>168</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;10.0;50.0;10.0;50.0;170.0;70.0;170.0</additional_attributes> + <additional_attributes>10.0;10.0;50.0;10.0;50.0;190.0;70.0;190.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>632</x> <y>1016</y> - <w>344</w> + <w>360</w> <h>88</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;10.0;10.0;60.0;410.0;60.0;410.0;90.0</additional_attributes> + <additional_attributes>10.0;10.0;10.0;60.0;430.0;60.0;430.0;90.0</additional_attributes> </element> <element> <id>Relation</id> @@ -771,58 +781,58 @@ m2=choices <element> <id>Relation</id> <coordinates> - <x>344</x> + <x>200</x> <y>1016</y> - <w>312</w> + <w>456</w> <h>88</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>370.0;10.0;370.0;60.0;10.0;60.0;10.0;90.0</additional_attributes> + <additional_attributes>550.0;10.0;550.0;60.0;10.0;60.0;10.0;90.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> - <x>456</x> - <y>968</y> - <w>136</w> - <h>40</h> + <x>464</x> + <y>944</y> + <w>112</w> + <h>80</h> </coordinates> <panel_attributes>lt=<- m1=0..1 m2=created_by </panel_attributes> - <additional_attributes>10.0;20.0;150.0;20.0</additional_attributes> + <additional_attributes>10.0;10.0;60.0;10.0;60.0;70.0;120.0;70.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>184</x> - <y>952</y> - <w>144</w> - <h>80</h> + <y>976</y> + <w>152</w> + <h>56</h> </coordinates> <panel_attributes>lt=<- m1=0..1 m2=created_by </panel_attributes> - <additional_attributes>160.0;70.0;10.0;70.0;10.0;10.0</additional_attributes> + <additional_attributes>170.0;40.0;10.0;40.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>184</x> - <y>768</y> + <y>800</y> <w>64</w> - <h>88</h> + <h>80</h> </coordinates> <panel_attributes>lt=<- m1=0..* m2=versions </panel_attributes> - <additional_attributes>10.0;90.0;10.0;10.0</additional_attributes> + <additional_attributes>10.0;80.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -902,7 +912,7 @@ m2=1 <id>Relation</id> <coordinates> <x>296</x> - <y>352</y> + <y>360</y> <w>144</w> <h>40</h> </coordinates> @@ -949,14 +959,14 @@ m1=cfg <x>496</x> <y>80</y> <w>56</w> - <h>112</h> + <h>88</h> </coordinates> <panel_attributes>lt=-> m1=report m2=1 </panel_attributes> - <additional_attributes>10.0;120.0;10.0;10.0</additional_attributes> + <additional_attributes>10.0;90.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1096,31 +1106,31 @@ m2=phases <id>Relation</id> <coordinates> <x>736</x> - <y>536</y> + <y>544</y> <w>136</w> - <h>320</h> + <h>312</h> </coordinates> <panel_attributes>lt=<- m1=0..* m2=integrations </panel_attributes> - <additional_attributes>150.0;370.0;10.0;370.0;10.0;10.0</additional_attributes> + <additional_attributes>150.0;360.0;10.0;360.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>832</x> - <y>536</y> + <y>544</y> <w>208</w> - <h>184</h> + <h>176</h> </coordinates> <panel_attributes>lt=<- m1=0..* m2=tags </panel_attributes> - <additional_attributes>240.0;200.0;10.0;200.0;10.0;10.0</additional_attributes> + <additional_attributes>240.0;190.0;10.0;190.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1156,16 +1166,16 @@ m2=0..1 <id>Relation</id> <coordinates> <x>1000</x> - <y>552</y> - <w>888</w> - <h>304</h> + <y>576</y> + <w>896</w> + <h>280</h> </coordinates> <panel_attributes>lt=-> m1=integration m2=1 </panel_attributes> - <additional_attributes>1000.0;10.0;1090.0;10.0;1090.0;350.0;10.0;350.0</additional_attributes> + <additional_attributes>1010.0;10.0;1090.0;10.0;1090.0;320.0;10.0;320.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1184,17 +1194,17 @@ m2=0..* <element> <id>Relation</id> <coordinates> - <x>1008</x> + <x>968</x> <y>456</y> - <w>1016</w> - <h>688</h> + <w>1056</w> + <h>752</h> </coordinates> <panel_attributes>lt=-> m1=answer m2=1 </panel_attributes> - <additional_attributes>10.0;830.0;1240.0;830.0;1240.0;10.0</additional_attributes> + <additional_attributes>10.0;880.0;10.0;910.0;1290.0;910.0;1290.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1222,14 +1232,14 @@ m2=0..* m1=followups m2=0..* </panel_attributes> - <additional_attributes>210.0;90.0;210.0;20.0;10.0;20.0;10.0;160.0</additional_attributes> + <additional_attributes>210.0;70.0;210.0;20.0;10.0;20.0;10.0;160.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> - <x>344</x> + <x>200</x> <y>784</y> - <w>1416</w> + <w>1568</w> <h>440</h> </coordinates> <panel_attributes>lt=-> @@ -1237,7 +1247,7 @@ m1=choices m2=0..* </panel_attributes> - <additional_attributes>10.0;470.0;10.0;520.0;1730.0;520.0;1730.0;10.0</additional_attributes> + <additional_attributes>10.0;470.0;10.0;520.0;1920.0;520.0;1920.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1385,7 +1395,7 @@ m2=parent m1=0..1 m2=parent </panel_attributes> - <additional_attributes>360.0;110.0;360.0;20.0;10.0;20.0;10.0;180.0</additional_attributes> + <additional_attributes>360.0;90.0;360.0;20.0;10.0;20.0;10.0;180.0</additional_attributes> </element> <element> <id>UMLClass</id> @@ -1408,7 +1418,7 @@ annotations: dict[str,str]</panel_attributes> <coordinates> <x>1568</x> <y>880</y> - <w>136</w> + <w>144</w> <h>72</h> </coordinates> <panel_attributes>/Reference/ @@ -1435,9 +1445,9 @@ m2=experts <element> <id>UMLClass</id> <coordinates> - <x>1360</x> + <x>1344</x> <y>880</y> - <w>160</w> + <w>176</w> <h>56</h> </coordinates> <panel_attributes>URLReference @@ -1449,14 +1459,15 @@ url: str</panel_attributes> <element> <id>UMLClass</id> <coordinates> - <x>1360</x> + <x>1344</x> <y>952</y> - <w>160</w> + <w>176</w> <h>56</h> </coordinates> <panel_attributes>ResourcePageReference -- -short_uuid: str</panel_attributes> +resource_page_uuid: str +resource_page: ResourcePage</panel_attributes> <additional_attributes/> </element> <element> @@ -1499,9 +1510,9 @@ m1=0..* <element> <id>Relation</id> <coordinates> - <x>1320</x> + <x>1304</x> <y>640</y> - <w>112</w> + <w>128</w> <h>368</h> </coordinates> <panel_attributes>lt=<.. @@ -1509,7 +1520,7 @@ fg=blue m2= m1=0..* </panel_attributes> - <additional_attributes>50.0;430.0;10.0;430.0;10.0;270.0;120.0;270.0;120.0;10.0</additional_attributes> + <additional_attributes>50.0;430.0;30.0;430.0;30.0;270.0;140.0;270.0;140.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1529,8 +1540,8 @@ m2=references <element> <id>UMLClass</id> <coordinates> - <x>1048</x> - <y>976</y> + <x>1040</x> + <y>880</y> <w>152</w> <h>136</h> </coordinates> @@ -1551,7 +1562,7 @@ rs_item_template: str <id>UMLClass</id> <coordinates> <x>856</x> - <y>976</y> + <y>960</y> <w>152</w> <h>48</h> </coordinates> @@ -1566,49 +1577,49 @@ widget_url: str</panel_attributes> <x>920</x> <y>912</y> <w>24</w> - <h>80</h> + <h>64</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;10.0;10.0;80.0</additional_attributes> + <additional_attributes>10.0;10.0;10.0;60.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>920</x> <y>912</y> - <w>216</w> - <h>80</h> + <w>144</w> + <h>56</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> - <additional_attributes>10.0;10.0;10.0;50.0;250.0;50.0;250.0;80.0</additional_attributes> + <additional_attributes>10.0;10.0;10.0;50.0;160.0;50.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> - <x>1792</x> - <y>376</y> - <w>128</w> - <h>88</h> + <x>1800</x> + <y>440</y> + <w>120</w> + <h>56</h> </coordinates> <panel_attributes>lt=-> m1=answers m2=0..* </panel_attributes> - <additional_attributes>10.0;80.0;80.0;80.0;80.0;10.0;140.0;10.0</additional_attributes> + <additional_attributes>10.0;40.0;70.0;40.0;70.0;10.0;130.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> - <x>1792</x> - <y>352</y> - <w>128</w> - <h>88</h> + <x>1800</x> + <y>416</y> + <w>112</w> + <h>64</h> </coordinates> <panel_attributes>lt=..> m2=0..1 m1=parent </panel_attributes> - <additional_attributes>140.0;10.0;50.0;10.0;50.0;80.0;10.0;80.0</additional_attributes> + <additional_attributes>120.0;10.0;50.0;10.0;50.0;50.0;10.0;50.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1642,16 +1653,16 @@ fg=#357546 <element> <id>Relation</id> <coordinates> - <x>1672</x> - <y>640</y> + <x>1680</x> + <y>648</y> <w>56</w> - <h>88</h> + <h>80</h> </coordinates> <panel_attributes>lt=..> m2=1 m1=parent </panel_attributes> - <additional_attributes>10.0;90.0;10.0;10.0</additional_attributes> + <additional_attributes>10.0;80.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> @@ -1681,4 +1692,258 @@ m1=parent </panel_attributes> <additional_attributes>10.0;300.0;10.0;10.0</additional_attributes> </element> + <element> + <id>UMLClass</id> + <coordinates> + <x>1656</x> + <y>376</y> + <w>152</w> + <h>48</h> + </coordinates> + <panel_attributes>ItemSelectQuestion +-- +list_question_uuid: str +list_question: ListQuestion</panel_attributes> + <additional_attributes/> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>1600</x> + <y>392</y> + <w>72</w> + <h>120</h> + </coordinates> + <panel_attributes>lt=<<-</panel_attributes> + <additional_attributes>10.0;130.0;50.0;130.0;50.0;10.0;70.0;10.0</additional_attributes> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>1800</x> + <y>320</y> + <w>88</w> + <h>104</h> + </coordinates> + <panel_attributes>lt=-> +m1=followups +m2=0..1 +</panel_attributes> + <additional_attributes>10.0;100.0;60.0;100.0;60.0;10.0;10.0;10.0</additional_attributes> + </element> + <element> + <id>UMLClass</id> + <coordinates> + <x>288</x> + <y>1088</y> + <w>128</w> + <h>72</h> + </coordinates> + <panel_attributes>ItemSelectReply +-- +item_uuid: str +item_title: str +-- +value: str</panel_attributes> + <additional_attributes/> + </element> + <element> + <id>UMLClass</id> + <coordinates> + <x>1256</x> + <y>1064</y> + <w>152</w> + <h>88</h> + </coordinates> + <panel_attributes>ResourceCollection +-- +uuid: str +title: str +page_uuids: list[str] +pages: list[ResourcePage] +annotations: dict[str,str] +</panel_attributes> + <additional_attributes/> + </element> + <element> + <id>UMLClass</id> + <coordinates> + <x>1512</x> + <y>1064</y> + <w>152</w> + <h>88</h> + </coordinates> + <panel_attributes>ResourcePage +-- +uuid: str +title: str +content: str +annotations: dict[str,str] +</panel_attributes> + <additional_attributes/> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>1400</x> + <y>1096</y> + <w>128</w> + <h>40</h> + </coordinates> + <panel_attributes>lt=<- +m1=0..* +m2=pages + +</panel_attributes> + <additional_attributes>140.0;20.0;10.0;20.0</additional_attributes> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>1448</x> + <y>1000</y> + <w>176</w> + <h>80</h> + </coordinates> + <panel_attributes>lt=<- +m1=0..* +m2=resource_page + +</panel_attributes> + <additional_attributes>180.0;80.0;180.0;40.0;10.0;40.0;10.0;10.0</additional_attributes> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>648</x> + <y>544</y> + <w>720</w> + <h>536</h> + </coordinates> + <panel_attributes>lt=<- +m1=0..* +m2=resource_\ncollections + +</panel_attributes> + <additional_attributes>860.0;650.0;860.0;620.0;230.0;620.0;230.0;420.0;110.0;420.0;110.0;160.0;10.0;160.0;10.0;10.0</additional_attributes> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>56</x> + <y>264</y> + <w>104</w> + <h>160</h> + </coordinates> + <panel_attributes>lt=<- +m1=1 +m2=created_by + +</panel_attributes> + <additional_attributes>10.0;180.0;10.0;10.0;110.0;10.0</additional_attributes> + </element> + <element> + <id>UMLClass</id> + <coordinates> + <x>168</x> + <y>104</y> + <w>136</w> + <h>56</h> + </coordinates> + <panel_attributes>UserPermission +-- +user: User +permissions: list[str]</panel_attributes> + <additional_attributes/> + </element> + <element> + <id>UMLClass</id> + <coordinates> + <x>168</x> + <y>32</y> + <w>136</w> + <h>56</h> + </coordinates> + <panel_attributes>GroupPermission +-- +group: UserGroup +permissions: list[str]</panel_attributes> + <additional_attributes/> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>296</x> + <y>128</y> + <w>144</w> + <h>72</h> + </coordinates> + <panel_attributes>lt=-> +m2=* +m1=users + +</panel_attributes> + <additional_attributes>160.0;60.0;60.0;60.0;60.0;10.0;10.0;10.0</additional_attributes> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>296</x> + <y>56</y> + <w>200</w> + <h>112</h> + </coordinates> + <panel_attributes>lt=-> +m2=* +m1=groups + +</panel_attributes> + <additional_attributes>180.0;120.0;180.0;100.0;130.0;100.0;130.0;10.0;10.0;10.0</additional_attributes> + </element> + <element> + <id>UMLClass</id> + <coordinates> + <x>0</x> + <y>72</y> + <w>136</w> + <h>80</h> + </coordinates> + <panel_attributes>UserGroup +-- +uuid: str +name: str +description: Optional[str] +private: bool</panel_attributes> + <additional_attributes/> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>24</x> + <y>144</y> + <w>160</w> + <h>280</h> + </coordinates> + <panel_attributes>lt=<- +m1=1 +m2=user + +</panel_attributes> + <additional_attributes>10.0;330.0;10.0;80.0;160.0;80.0;160.0;10.0;180.0;10.0</additional_attributes> + </element> + <element> + <id>Relation</id> + <coordinates> + <x>24</x> + <y>32</y> + <w>160</w> + <h>56</h> + </coordinates> + <panel_attributes>lt=<- +m1=1 +m2=group + +</panel_attributes> + <additional_attributes>10.0;50.0;10.0;20.0;180.0;20.0</additional_attributes> + </element> </diagram> diff --git a/docs/more/development/document-templates/index.rst b/docs/more/development/document-templates/index.rst index bbb4376a..df6d2713 100644 --- a/docs/more/development/document-templates/index.rst +++ b/docs/more/development/document-templates/index.rst @@ -29,3 +29,4 @@ Examples document-context tdk Template Specification<specification> + Development Notes<dev-notes> diff --git a/docs/more/development/document-templates/specification.rst b/docs/more/development/document-templates/specification.rst index 38c4014e..bdabdf7a 100644 --- a/docs/more/development/document-templates/specification.rst +++ b/docs/more/development/document-templates/specification.rst @@ -86,11 +86,27 @@ Those are local-only metadata used for development of the template. You can use * ``files``: list of patterns to specify files that are part of the document template (it uses Git wildcard-match patterns, so you can also exclude files or directories) -Template Metamodels -=================== +.. _document-template-metamodel-versions: + +Document Template Metamodel Versions +==================================== Here are described the changes in metamodel for template specification as well as :doc:`document context<document-context>` so developers can easily update their templates to a newer metamodel version when needed. It is also possible to check JSON schemas in higher detail, see :doc:`../metamodel-schemas`. +Version 14 (since 4.10.0) +------------------------- + +* Rearranged and enriched document context for clarity and completeness. If you are using the :ref:`object-oriented document context <document-context-obj>` (via ``to_context_obj``), the changes will not affect you and you can start using new attributes/types); otherwise, you need to reflect the following changes in the passed document context ``ctx``: + + * ``config``, ``knowledgeModel``, ``package``, and ``report`` of context stay the same; + * ``uuid``, ``createdAt``, and ``updatedAt`` are moved to new ``document`` object that contains additional fields, namely ``createdBy``, ``documentTemplateId``, ``formatUuid``, and ``name``; + * ``questionnaireUuid`` (and other ``questionnaire*`` fields) and ``createdBy`` are moved to new ``questionnaire`` object where are additional fields, namely ``labels``, ``createdAt``, and ``updatedAt``; + * ``documentTemplateMetamodelVersion`` is renamed to ``metamodelVersion``; + * there are new lists ``users`` and ``groups`` containing the information about sharing and permissions of the project (i.e. what users have access to the project and with what permissions). + +* Added item select questions. +* Added resource collections and pages, incl. change in resource page references. + Version 13 (since 4.3.0) ------------------------ diff --git a/docs/more/development/metamodel-schemas.rst b/docs/more/development/metamodel-schemas.rst index 3364a200..2943dfe4 100644 --- a/docs/more/development/metamodel-schemas.rst +++ b/docs/more/development/metamodel-schemas.rst @@ -11,72 +11,76 @@ KM Package (.km file) File for import and export of Knowledge Models is a JSON file that contains all KM packages (lists of change events with additional metadata). The structure of events is versioned using the KM metamodel version number and migrations in |project_name| automatically update the KMs when needed. As said, files according to this schema can be exported from :doc:`../../application/knowledge-models/list/index` or :doc:`../../application/knowledge-models/list/detail` and then used for :doc:`../../application/knowledge-models/list/import`. -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| Metamodel Version | Schema file | Changes (brief) | Since | -+===================+===============================================================================================================+=========================================+===========+ -| 14 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v14.json>`__ | Optional Integration fields | 4.1.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 13 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v13.json>`__ | New question value types | 3.12.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 12 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v12.json>`__ | Enhanced integration (e.g. widget type) | 3.10.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 11 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v11.json>`__ | Annotations and timestamps for events | 3.8.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 10 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v10.json>`__ | Integrations with item template | 3.6.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 9 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v9.json>`__ | Annotations | 3.5.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 8 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v8.json>`__ | Metrics and phases are part of KM | 3.2.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 7 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v7.json>`__ | KM name attribute removed | 2.13.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 6 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v6.json>`__ | Multi-choice question type added | 2.11.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 5 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v5.json>`__ | Move event | 2.0.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 4 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v4.json>`__ | Refactored KM, optional chapter text | 1.10.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 3 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v3.json>`__ | Changed integration question fields | 1.8.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 2 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v2.json>`__ | Changed phases representation | 1.7.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 1 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v1.json>`__ | Initial versioned metamodel | 1.6.0 | -+-------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| Metamodel Version | Schema file | Changes (brief) | Since | ++===================+===============================================================================================================+======================================================+===========+ +| 15 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v15.json>`__ | Item select question, resource collections and pages | 4.10.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 14 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v14.json>`__ | Optional Integration fields | 4.1.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 13 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v13.json>`__ | New question value types | 3.12.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 12 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v12.json>`__ | Enhanced integration (e.g. widget type) | 3.10.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 11 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v11.json>`__ | Annotations and timestamps for events | 3.8.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 10 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v10.json>`__ | Integrations with item template | 3.6.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 9 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v9.json>`__ | Annotations | 3.5.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 8 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v8.json>`__ | Metrics and phases are part of KM | 3.2.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 7 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v7.json>`__ | KM name attribute removed | 2.13.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 6 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v6.json>`__ | Multi-choice question type added | 2.11.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 5 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v5.json>`__ | Move event | 2.0.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 4 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v4.json>`__ | Refactored KM, optional chapter text | 1.10.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 3 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v3.json>`__ | Changed integration question fields | 1.8.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 2 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v2.json>`__ | Changed phases representation | 1.7.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ +| 1 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/km-package/kmp_schema_v1.json>`__ | Initial versioned metamodel | 1.6.0 | ++-------------------+---------------------------------------------------------------------------------------------------------------+------------------------------------------------------+-----------+ Document Context ================ Document Context is provided to the document templates by document worker. It contains all relevant data about project/questionnaire with replies, related knowledge model, author, and more. As KM evolves, the context may evolve as well. It is versioned using the Template metamodel version number. A document template must support the metamodel that is in the current |project_name| instance. It is needed to know how the document context looks like especially for :doc:`./document-templates/index`. -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| Metamodel Version | Schema file | Changes (brief) | Since | -+===================+========================================================================================================================+=========================================+===========+ -| 13 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v13.json>`__ | Removed states from templates | 4.3.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 12 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v12.json>`__ | Optional Integration fields | 4.1.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 11 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v11.json>`__ | Change template metadata | 3.20.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 10 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v10.json>`__ | New question value types | 3.12.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 9 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v9.json>`__ | Enhanced integration (e.g. widget type) | 3.10.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 8 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v8.json>`__ | Annotations change | 3.8.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 7 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v7.json>`__ | Project tags and description | 3.7.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 6 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v6.json>`__ | Integrations with item template | 3.6.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 5 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v5.json>`__ | Annotations | 3.5.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 4 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v4.json>`__ | Metrics and phases | 3.2.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 3 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v3.json>`__ | Project versions | 2.12.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 2 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v2.json>`__ | Reply provenance | 2.6.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 1 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v1.json>`__ | Initial versioned metamodel | 2.5.0 | -+-------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| Metamodel Version | Schema file | Changes (brief) | Since | ++===================+========================================================================================================================+===================================================+===========+ +| 14 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v14.json>`__ | new KM entities, project details, and restructure | 4.10.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 13 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v13.json>`__ | Removed states from templates | 4.3.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 12 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v12.json>`__ | Optional Integration fields | 4.1.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 11 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v11.json>`__ | Change template metadata | 3.20.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 10 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v10.json>`__ | New question value types | 3.12.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 9 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v9.json>`__ | Enhanced integration (e.g. widget type) | 3.10.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 8 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v8.json>`__ | Annotations change | 3.8.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 7 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v7.json>`__ | Project tags and description | 3.7.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 6 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v6.json>`__ | Integrations with item template | 3.6.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 5 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v5.json>`__ | Annotations | 3.5.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 4 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v4.json>`__ | Metrics and phases | 3.2.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 3 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v3.json>`__ | Project versions | 2.12.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 2 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v2.json>`__ | Reply provenance | 2.6.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 1 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/doc-context/doc_context_schema_v1.json>`__ | Initial versioned metamodel | 2.5.0 | ++-------------------+------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ Template (.json file) ===================== @@ -87,32 +91,34 @@ Each template has its descriptor file ``template.json`` which contains all the i Between versions 1 and 5, the structure of ``template.json`` is still the same. Only the document context has been changed. -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| Metamodel Version | Schema file | Changes (brief) | Since | -+===================+============================================================================================================================+=========================================+===========+ -| 13 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v13.json>`__ | Removed states from templates | 4.3.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 12 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v12.json>`__ | Optional Integration fields | 4.1.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 11 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v11.json>`__ | Change template metadata | 3.20.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 10 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v10.json>`__ | New question value types | 3.12.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 9 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v9.json>`__ | Enhanced integration (e.g. widget type) | 3.10.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 8 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v8.json>`__ | Annotations change | 3.8.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 7 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v7.json>`__ | Project tags and description | 3.7.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 6 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v6.json>`__ | Integrations with item template | 3.6.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 5 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v5.json>`__ | Annotations | 3.5.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 4 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v4.json>`__ | Metrics and phases | 3.2.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 3 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v3.json>`__ | Project versions | 2.12.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 2 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v2.json>`__ | Reply provenance | 2.6.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ -| 1 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v1.json>`__ | Initial versioned metamodel | 2.5.0 | -+-------------------+----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------+-----------+ ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| Metamodel Version | Schema file | Changes (brief) | Since | ++===================+============================================================================================================================+===================================================+===========+ +| 14 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v14.json>`__ | new KM entities, project details, and restructure | 4.10.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 13 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v13.json>`__ | Removed states from templates | 4.3.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 12 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v12.json>`__ | Optional Integration fields | 4.1.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 11 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v11.json>`__ | Change template metadata | 3.20.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 10 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v10.json>`__ | New question value types | 3.12.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 9 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v9.json>`__ | Enhanced integration (e.g. widget type) | 3.10.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 8 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v8.json>`__ | Annotations change | 3.8.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 7 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v7.json>`__ | Project tags and description | 3.7.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 6 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v6.json>`__ | Integrations with item template | 3.6.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 5 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v5.json>`__ | Annotations | 3.5.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 4 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v4.json>`__ | Metrics and phases | 3.2.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 3 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v3.json>`__ | Project versions | 2.12.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 2 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v2.json>`__ | Reply provenance | 2.6.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ +| 1 | `JSON Schema <https://github.com/ds-wizard/dsw-schemas/blob/master/schemas/template-json/template_json_schema_v1.json>`__ | Initial versioned metamodel | 2.5.0 | ++-------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+-----------+ diff --git a/docs/more/self-hosted-dsw/upgrade-guidelines.rst b/docs/more/self-hosted-dsw/upgrade-guidelines.rst index bcb8bb78..8513635f 100644 --- a/docs/more/self-hosted-dsw/upgrade-guidelines.rst +++ b/docs/more/self-hosted-dsw/upgrade-guidelines.rst @@ -43,6 +43,12 @@ Usually, nothing special is required for the upgrade. Internal structure changes Make sure to stop ``document-worker`` and ``mailer`` before upgrading to the next version. Run ``wizard-server`` first, then run the workers. Otherwise the database migrations might not work correctly. +4.9.X to 4.10.X +--------------- + +- Document template metamodel version is raised (from 13 to 14) and requires updates in document templates, for details check :ref:`document-template-metamodel-versions`. + + 4.8.X to 4.9.X ----------------