diff --git a/src/doc/tutorials/data_model_tutorial.rst b/src/doc/tutorials/data_model_tutorial.rst new file mode 100644 index 0000000000000000000000000000000000000000..26aba4328a8ed3841b5b6e2aa8f34cb822cb6068 --- /dev/null +++ b/src/doc/tutorials/data_model_tutorial.rst @@ -0,0 +1,215 @@ +Data model tutorial +=================== + +Data models are a central concept of research data management. The +open-source framework LinkAhead makes it easy to create an `agile +data model <https://docs.indiscale.com/caosdb-server/Data-Model.html>`__ +which suits your needs, so you can profit from your collected data fast. + +.. contents:: + :local: + +Frequently asked questions about data models +-------------------------------------------- + +What is a data model? +~~~~~~~~~~~~~~~~~~~~~ + +In LinkAhead, the `data model <https://docs.indiscale.com/caosdb-server/Data-Model.html>`__ +describes in a generic way how the data is structured. This document will help you understand this +concept and how you can adjust the data model to your needs. + +Let’s give one example what we mean by the data model describing the +data structure: In experimental research, the data model may say that +each experiment has one or more experimenters and also some lab notes. + +.. figure:: img/very_simple_data_model.png + :alt: The simplest data model consists of just one RecordType + + A very simple data model, consisting of only one RecordType + +The data model may also say that there are cell culture experiments, +which *inherit* all properties of generic experiments, but in addition +have the number of dishes, the time the cell cultures were started and a +*reference* to the cell line that was used. When we talk about +references, we mean that there are other data sets (in this case cell +lines) which are not embedded directly, but only pointed at. For +example, a number of cell culture experiments may reference the same +cell line, and when someone adds a note to that cell line, this note +will be available to all cell culture experiments. + +.. figure:: img/simple_data_model.png + :alt: The first data model extended by inheritance and references + + A simple data model, with four RecordTypes + +In LinkAhead, the data model consists of *RecordTypes* and *Properties*. Each `*RecordType* +<https://docs.indiscale.com/caosdb-server/Data-Model.html#record-types>`__ corresponds to one type +of data set, for example an experiment, a cell culture experiment or a cell line. And each data set +can have `*Properties* <https://docs.indiscale.com/caosdb-server/Data-Model.html#properties>`__ +which define it further: for example +the number of dishes in a cell culture experiment, a publication +describing a cell line or the cell line which was used for an +experiment. + +And what about the data? +~~~~~~~~~~~~~~~~~~~~~~~~ + +The data model describes the generic structure of the data, but what +does this mean for your actual data? When you want to store data in +LinkAhead, you typically look for a matching *RecordType* and +then create *Record*\ s of that type. This means for example, that a +*Record* of type “Cell Culture” should have the *Properties* that the +*RecordType* provides: experimenters, lab notes, number of dishes, time +of experiment start and the used cell lines. + +.. figure:: img/data_model_and_data.png + :alt: Records are always based upon (at least) one RecordType, this defines the relationship between data model and data + + A diagram showing the relationship between RecordTypes (the data + model) and Records (the data) + +Following a data model greatly simplifies your scientific research data +management, and this is what LinkAhead is for: You know that all +(or most) of your cell culture experiments will have the same set of +properties, so you can search for all experiments where the properties +match your desired criteria, for example those with cell lines which +were described in publications of a certain author. + +What if need to change my data model? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Science moves fast, and your infrastructure should be able to follow +just as swiftly. The data model in LinkAhead was designed to be +very flexible, so it can adapt to your needs. + +There are multiple ways to modify and enhance your data model, for +example you could use the web application or program the changes with +the Python client. This document describes how to change the data model +with the LinkAhead web application. + +What happens to my data if the data model changes? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +With most systems, changing the data model is not possible without +migrating the existing data. With LinkAhead however, your +“legacy” data can simply stay where it is, it will not be modified. New +data, that you enter after changing the data model, will of course +follow your changes and adhere to your “new” data model. + +Modifying the data model in LinkAhead +------------------------------------- + +The easiest way to change the data model is to `use the LinkAhead +web +application <https://docs.indiscale.com/caosdb-webui/tutorials/edit_mode.html>`__. +But the first step is to look at the current data model (*RecordTypes* +and *Properties*) and your current situation, to find out what you need +changed. It may help to ask yourself these questions: + +- Do you want to describe data of existing types in more detail? -> :ref:`Create + *Properties*<new_property>` if necessary, then `add + <https://docs.indiscale.com/caosdb-webui/tutorials/edit_mode.html#add-properties-to-an-existing-recordtype>`__ + these *Properties* to the existing *RecordTypes*. +- Do you need to add a property more than once? -> Make that property `a list property + <https://docs.indiscale.com/caosdb-webui/tutorials/edit_mode.html#make-a-property-into-a-list>`__\ + . +- Are there completely new types of data? -> :ref:`Create a new + *RecordType* <new_recordtype>` . +- Are there new types of data which would nearly fit into an existing + RecordType, but not quite? Do you still want to keep the existing + RecordType for some purposes, but require changes or additions for + other purposes? -> :ref:`Create a new + *RecordType* <new_recordtype>` which inherits from the + existing RecordType as a parent. +- Do you have a new setup, new devices, new protocols, new software? -> + :ref:`Create a new + *RecordType* <new_recordtype>` . +- Are there *Properties* or *RecordTypes* which were created in the past, but will never be used? -> + `Delete them + <https://docs.indiscale.com/caosdb-webui/tutorials/edit_mode.html#delete-an-entity>`__. + +Once you know what you want to do, open the LinkAhead web application, log in and click on the “Edit +Mode” button in the menu. Then follow one of the instructions in the next sections or the general `Edit +Mode documentation <https://docs.indiscale.com/caosdb-webui/tutorials/edit_mode.html>`__.. + +.. figure:: img/edit_mode_button.png + :alt: The Edit Mode button appears when a user is logged in. + + A screen shot of the menu, with the Edit Mode button highlighted + +.. _new_property: + +Create a new Property +~~~~~~~~~~~~~~~~~~~~~ + +Creating the required Properties often is the first step for changes to +the data model. + +1. Check that there is no Property yet which does what you want: + + - Search for existing Properties: ``FIND PROPERTY *qualit*`` to + search for Properties with “qualit” in the name, ``FIND PROPERTY`` + for all Properties. + - Look at related RecordTypes, maybe they already use a Property + which does the thing you need. + - Ask around. If possible at least two persons. Your team mates may + have had the same thoughts already, or may know about someone who + implemented your desired Property. + +2. Activate the *Edit Mode* in the top menu. Now the edit mode toolbox + on the right hand side of the screen should be visible. +3. Click on the “Create Property” button in the toolbox. A dialog for + the new Property shows up. +4. Follow the `WebUI documentation + <https://docs.indiscale.com/caosdb-webui/tutorials/edit_mode.html#new-property>`__ for Property + creation. + +.. _new_recordtype: + +Create a new RecordType +~~~~~~~~~~~~~~~~~~~~~~~ + +1. Check that there is no RecordType yet which does what you want: + + - Search for existing RecordTypes: ``FIND RECORDTYPE *experi*`` to + search for RecordTypes with “experi” in the name, + ``FIND RECORDTYPE`` for all RecordTypes. + - Look at related RecordTypes, maybe you can inherit from one? + - Ask around. If possible at least two persons. You team mates may + have had the same thoughts already, or may know about someone who + implemented your desired RecordType. + +2. Activate the *Edit Mode* in the top menu. Now the edit mode toolbox + on the right hand side of the screen should be visible. + +3. Click on the “Create RecordType” button in the toolbox. A dialog for + the new Property shows up. + +4. Follow the `WebUI documentation + <https://docs.indiscale.com/caosdb-webui/tutorials/edit_mode.html#new-recordtype>`__ for + RecordType creation. + +What about letting users only choose from a fixed set of values (a.k.a. enums)? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You may ask yourself how you can restrict users (or yourself) to choose +property values from a fixed set. For example, entering the +experimenters in an “Experiment” record may be cumbersome and +error-prone. Or entering a chemical formula again and again may become +tedious. This is where data management tools like LinkAhead can +help you by referencing between entities. + +In this example, instead of having a TEXT Property “experimenter”, where +users need to enter the name by hand, you could create a new RecordType +“Person”. Then create a Record for each experimenter in your team. And +finally, remove the “experimenter” TEXT Property and create a new +REFERENCE Property which references to the “Person” records. Now all the +users have to do is to choose the experimenter from a drop-down menu in +LinkAhead. + +.. figure:: img/screenshot_dropdown.png + :alt: Users may choose one of multiple Persons when enums are implemented via REFERENCE Properties + + A screenshot of a drop down menu where one of multiple “Person” records may be chosen + diff --git a/src/doc/tutorials/img/data_model_and_data.png b/src/doc/tutorials/img/data_model_and_data.png new file mode 100644 index 0000000000000000000000000000000000000000..f7b0d3b8c72bf5ff36a74dc50ef386977ddb2512 Binary files /dev/null and b/src/doc/tutorials/img/data_model_and_data.png differ diff --git a/src/doc/tutorials/img/data_model_and_data.svg b/src/doc/tutorials/img/data_model_and_data.svg new file mode 100644 index 0000000000000000000000000000000000000000..5f6692c541e20d93513f0ef9b759506f35797185 --- /dev/null +++ b/src/doc/tutorials/img/data_model_and_data.svg @@ -0,0 +1,2071 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="123.13786mm" + height="55.646351mm" + viewBox="0 0 479.9487 216.88946" + version="1.2" + id="svg236" + sodipodi:docname="data_model_and_data.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)" + inkscape:export-filename="/home/daniel/indiscale/management/external/bmpg/management/documentation/data_model/how_to_datamodel/data_model_and_data.png" + inkscape:export-xdpi="412.54572" + inkscape:export-ydpi="412.54572"> + <metadata + id="metadata240"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Qt SVG Document</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1135" + id="namedview238" + showgrid="false" + inkscape:zoom="2.6127896" + inkscape:cx="232.70147" + inkscape:cy="105.15846" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" /> + <title + id="title2">Qt SVG Document</title> + <desc + id="desc4">Generated with Qt</desc> + <defs + id="defs6"> + <marker + style="overflow:visible" + id="marker3403" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path3401" /> + </marker> + <marker + style="overflow:visible" + id="marker1523" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1521" /> + </marker> + <marker + style="overflow:visible" + id="marker1333" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend" + inkscape:isstock="true"> + <path + transform="scale(-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1331" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path976" /> + </marker> + <marker + style="overflow:visible" + id="marker1523-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1521-1" /> + </marker> + </defs> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Layer 1" + transform="translate(-0.37325826,-0.37362263)"> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g8" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g10" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g12" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g18" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g20" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g26" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g36" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g38" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g44" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g50" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g56" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g62" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g64" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g66" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g68" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g70" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g72" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,64.4806)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g74" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,64.4806)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g80" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g82" + style="fill-rule:evenodd" /> + <g + id="g3044"> + <g + fill="#ffffff" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,64.4806)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g78" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="M -6,0 0,10 6,0 H -6" + id="path76" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="none" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g86" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="m -68.7281,-363.013 v -29.302" + id="path84" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + </g> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g88" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g90" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g92" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0,0.992009,-0.992009,0,197.41,178.126)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g94" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0,0.992009,-0.992009,0,197.41,178.126)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g100" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g102" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g108" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g110" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g112" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,319.539,211.365)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g114" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,319.539,211.365)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g120" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g122" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g128" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g130" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g134" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="135" + height="54" + id="rect132" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g136" + style="fill-rule:evenodd" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="54.689575" + y="14.38413" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text138" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">Experiment</text> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g144" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + vector-effect="" + points="0,18 135,18 " + id="polyline142" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g146" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g148" + style="fill-rule:evenodd" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="29.393345" + y="32.240292" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text150" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : TEXT</text> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g154" + style="fill-rule:evenodd" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="29.393345" + y="50.096455" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text156" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : FILE</text> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g160" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g162" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g164" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g166" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g168" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g174" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g184" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g186" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g192" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g194" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g196" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g198" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g200" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g206" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g216" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g218" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g224" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g226" + style="fill-rule:evenodd" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g228" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g230" + style="fill-rule:evenodd" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g232" + style="fill-rule:evenodd" /> + <g + id="g3098"> + <g + id="g3084"> + <rect + vector-effect="" + x="0.99200898" + y="93.548401" + width="186.4977" + height="89.280807" + id="rect22" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';fill:#ffffc0;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.2375;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <polyline + fill="none" + vector-effect="" + points="0,18 188,18 " + id="polyline32" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" /> + </g> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="31.640734" + y="106.94052" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text28" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">CellCultureExperiment</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="124.79668" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text40" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : TEXT</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="142.65285" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text46" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : FILE</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="160.509" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text52" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">number_of_dishes : INTEGER</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="178.36517" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text58" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">cell_line : CellLine</text> + <g + id="g1462" + transform="translate(-285.2144,-71.568939)"> + <rect + style="opacity:1;fill:#d7f4d7;stroke:#008000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect1456" + width="18.926079" + height="13.833775" + x="289.03854" + y="167.14027" + ry="4.099587" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="290.79922" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text1460" + style="fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#008000" + id="tspan1458">RT</tspan></text> + </g> + </g> + <g + id="g1470" + transform="translate(-261.77311,-164.12532)"> + <rect + style="opacity:1;fill:#d7f4d7;stroke:#008000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect1464" + width="18.926079" + height="13.833775" + x="289.03854" + y="167.14027" + ry="4.099587" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="290.79922" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text1468" + style="fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#008000" + id="tspan1466">RT</tspan></text> + </g> + <g + id="g2988"> + <g + id="g2964"> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,213.32298,2.1385369)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g2922" + style="fill:#d5f6ff;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="135" + height="54" + id="rect2920" + style="fill:#d5f6ff;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,213.32298,2.1385369)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g2926" + style="fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + vector-effect="" + points="0,18 135,18 " + id="polyline2924" + style="stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + </g> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="236.03297" + y="14.17053" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text150-3" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experiment 1</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="218.03311" + y="32.240292" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text2956" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : Sheila</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="218.03311" + y="50.096455" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text2958" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : /data/dat3.</text> + <g + id="g3122-2" + transform="translate(-73.372734,-162.59558)"> + <rect + style="opacity:1;fill:#ffd5d5;stroke:#ff0000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect3116-2" + width="15.923747" + height="13.833771" + x="289.03854" + y="167.14027" + ry="6.9168854" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="292.86172" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3120-3" + style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#ff0000" + id="tspan3118-1">R</tspan></text> + </g> + </g> + <g + id="g3006" + transform="translate(14.001362,13.026627)"> + <g + id="g2998"> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,213.32298,2.1385369)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g2992" + style="fill:#d5f6ff;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="135" + height="54" + id="rect2990" + style="fill:#d5f6ff;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,213.32298,2.1385369)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g2996" + style="fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + vector-effect="" + points="0,18 135,18 " + id="polyline2994" + style="stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + </g> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="236.0329" + y="14.17053" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3000" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experiment 2</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="218.03311" + y="32.240292" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3002" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : Sheila</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="218.03311" + y="50.096455" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3004" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : /data/dat3.</text> + <g + id="g3164" + transform="translate(-73.176703,-163.02108)"> + <rect + style="opacity:1;fill:#ffd5d5;stroke:#ff0000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect3158" + width="15.923747" + height="13.833771" + x="289.03854" + y="167.14027" + ry="6.9168854" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="292.86172" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3162" + style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#ff0000" + id="tspan3160">R</tspan></text> + </g> + </g> + <g + id="g3024" + transform="translate(28.930217,27.858633)"> + <g + id="g3016"> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,213.32298,2.1385369)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g3010" + style="fill:#d5f6ff;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="135" + height="54" + id="rect3008" + style="fill:#d5f6ff;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,213.32298,2.1385369)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g3014" + style="fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + vector-effect="" + points="0,18 135,18 " + id="polyline3012" + style="stroke:#0044aa;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + </g> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="236.03297" + y="14.17053" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3018" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experiment 3</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="218.03311" + y="32.240292" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3020" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : Sheila</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="218.03311" + y="50.096455" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3022" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : /data/dat3.</text> + <g + id="g3164-8" + transform="translate(-72.586409,-163.21016)"> + <rect + style="opacity:1;fill:#ffd5d5;stroke:#ff0000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect3158-3" + width="15.923747" + height="13.833771" + x="289.03854" + y="167.14027" + ry="6.9168854" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="292.86172" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3162-4" + style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#ff0000" + id="tspan3160-2">R</tspan></text> + </g> + </g> + <g + id="g3054" + transform="rotate(-90,117.93564,3.3018104)" + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;stroke:#0044aa;stroke-width:1.2375;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"> + <g + fill="#ffffff" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,64.4806)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g3048" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"> + <path + vector-effect="" + fill-rule="evenodd" + d="M -6,0 0,10 6,0 H -6" + id="path3046" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" /> + </g> + <g + fill="none" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g3052" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"> + <path + vector-effect="" + fill-rule="evenodd" + d="m -68.7281,-363.013 v -29.302" + id="path3050" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" /> + </g> + </g> + <g + id="g3124" + transform="translate(225.1288)"> + <g + id="g3104"> + <rect + vector-effect="" + x="0.99200898" + y="93.548401" + width="186.4977" + height="89.280807" + id="rect3100" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.2375;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" /> + <polyline + fill="none" + vector-effect="" + points="0,18 188,18 " + id="polyline3102" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" /> + </g> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="31.640734" + y="106.94052" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3106" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">my_exp 1</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="124.79668" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3108" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : Paul</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="142.65285" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3110" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : /data/cc/dat3.dat</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="160.509" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3112" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">number_of_dishes : 5</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="178.36517" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3114" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">cell_line : #123</text> + <g + id="g3122" + transform="translate(-285.2144,-71.568939)"> + <rect + style="opacity:1;fill:#ffd5d5;stroke:#ff0000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect3116" + width="15.923747" + height="13.833771" + x="289.03854" + y="167.14027" + ry="6.9168854" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="292.86172" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3120" + style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#ff0000" + id="tspan3118">R</tspan></text> + </g> + </g> + <g + id="g3259" + transform="translate(243.88467,15.856705)"> + <g + id="g3239"> + <rect + vector-effect="" + x="0.99200898" + y="93.548401" + width="186.4977" + height="89.280807" + id="rect3235" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.2375;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" /> + <polyline + fill="none" + vector-effect="" + points="0,18 188,18 " + id="polyline3237" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" /> + </g> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="31.640734" + y="106.94052" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3241" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">my_exp 2</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="124.79668" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3243" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : Paul</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="142.65285" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3245" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : /data/cc/dat3.dat</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="160.509" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3247" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">number_of_dishes : 5</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="178.36517" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3249" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">cell_line : #123</text> + <g + id="g3257" + transform="translate(-285.2144,-71.568939)"> + <rect + style="opacity:1;fill:#ffd5d5;stroke:#ff0000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect3251" + width="15.923747" + height="13.833771" + x="289.03854" + y="167.14027" + ry="6.9168854" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="292.86172" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3255" + style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#ff0000" + id="tspan3253">R</tspan></text> + </g> + </g> + <g + id="g3285" + transform="translate(259.80841,33.815492)"> + <g + id="g3265"> + <rect + vector-effect="" + x="0.99200898" + y="93.548401" + width="186.4977" + height="89.280807" + id="rect3261" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.2375;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" /> + <polyline + fill="none" + vector-effect="" + points="0,18 188,18 " + id="polyline3263" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" /> + </g> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="31.640734" + y="106.94052" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3267" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">my_exp 3</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="124.79668" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3269" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">experimenter : Paul</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="142.65285" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3271" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">lab_notes : /data/cc/dat3.dat</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="160.509" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3273" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">number_of_dishes : 5</text> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5.952054" + y="178.36517" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="400" + font-style="normal" + id="text3275" + style="fill-rule:evenodd;stroke-width:0.992009;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1">cell_line : #123</text> + <g + id="g3283" + transform="translate(-285.2144,-71.568939)"> + <rect + style="opacity:1;fill:#ffd5d5;stroke:#ff0000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect3277" + width="15.923747" + height="13.833771" + x="289.03854" + y="167.14027" + ry="6.9168854" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="292.86172" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text3281" + style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#ff0000" + id="tspan3279">R</tspan></text> + </g> + </g> + <g + id="g3295" + transform="rotate(-90,181.47795,44.53676)" + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#d5f6ff;fill-opacity:1;stroke:#0044aa;stroke-width:1.2375;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"> + <g + fill="#ffffff" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,64.4806)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g3289" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"> + <path + vector-effect="" + fill-rule="evenodd" + d="M -6,0 0,10 6,0 H -6" + id="path3287" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" /> + </g> + <g + fill="none" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g3293" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"> + <path + vector-effect="" + fill-rule="evenodd" + d="M -68.7281,-375.23969 V -392.315" + id="path3291" + style="font-variation-settings:normal;vector-effect:none;fill:#d5f6ff;fill-opacity:1;stroke:#0044aa;stroke-width:1.24747;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + sodipodi:nodetypes="cc" /> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;line-height:1.25;font-family:Stanberry;-inkscape-font-specification:Stanberry;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:0.332398" + x="421.51617" + y="20.97814" + id="text1517"><tspan + sodipodi:role="line" + id="tspan1515" + x="421.51617" + y="20.97814" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;font-family:Stanberry;-inkscape-font-specification:Stanberry;fill:#0000ff;stroke-width:0.332398">Records</tspan></text> + <path + style="fill:none;stroke:#0000ff;stroke-width:0.839441;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker1523-5);paint-order:markers fill stroke;stop-color:#000000" + d="m 441.22143,27.507131 c -1.42777,5.850954 -9.22389,11.574261 -17.31854,13.818563 -12.822,3.554995 -11.11495,0.07953 -31.34267,1.84685" + id="path1519" + sodipodi:nodetypes="csc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:0.839441;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker3403);paint-order:markers fill stroke;stop-color:#000000" + d="m 454.89862,27.912518 c 1.72938,21.926674 0.42202,29.71883 -3.7148,37.029573 -6.55276,11.580287 -13.10909,16.963606 -26.16255,32.516469" + id="path3399" + sodipodi:nodetypes="csc" /> + </g> +</svg> diff --git a/src/doc/tutorials/img/edit_entity_button.png b/src/doc/tutorials/img/edit_entity_button.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b1421035340c3351ea4bfdc25ed7cda9579ff1 Binary files /dev/null and b/src/doc/tutorials/img/edit_entity_button.png differ diff --git a/src/doc/tutorials/img/edit_mode_button.png b/src/doc/tutorials/img/edit_mode_button.png new file mode 100644 index 0000000000000000000000000000000000000000..f3764ba3af3caed2d4ae2ecf430f0c8275cd068b Binary files /dev/null and b/src/doc/tutorials/img/edit_mode_button.png differ diff --git a/src/doc/tutorials/img/screenshot_dropdown.png b/src/doc/tutorials/img/screenshot_dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..3b4e65c6ce2a70ba8a5cede12ab11bc7ef0b68d5 Binary files /dev/null and b/src/doc/tutorials/img/screenshot_dropdown.png differ diff --git a/src/doc/tutorials/img/screenshot_edit_create_delete.png b/src/doc/tutorials/img/screenshot_edit_create_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..099efa9ff28569f494e9ef543e6396e6af10e1b1 Binary files /dev/null and b/src/doc/tutorials/img/screenshot_edit_create_delete.png differ diff --git a/src/doc/tutorials/img/screenshot_menu.png b/src/doc/tutorials/img/screenshot_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..10288582cdddec16f59deaa69868538f31729ab4 Binary files /dev/null and b/src/doc/tutorials/img/screenshot_menu.png differ diff --git a/src/doc/tutorials/img/screenshot_new_recordtype.png b/src/doc/tutorials/img/screenshot_new_recordtype.png new file mode 100644 index 0000000000000000000000000000000000000000..ddb105d6d689e3b6495bdb3ec60673cb4140ca8e Binary files /dev/null and b/src/doc/tutorials/img/screenshot_new_recordtype.png differ diff --git a/src/doc/tutorials/img/simple_data_model.png b/src/doc/tutorials/img/simple_data_model.png new file mode 100644 index 0000000000000000000000000000000000000000..caa783aca63aac65bfea62e3f92d830bcb1b17f5 Binary files /dev/null and b/src/doc/tutorials/img/simple_data_model.png differ diff --git a/src/doc/tutorials/img/simple_data_model.svg b/src/doc/tutorials/img/simple_data_model.svg new file mode 100644 index 0000000000000000000000000000000000000000..80f7ddce12d7a85ceac8952b861fb7433676b486 --- /dev/null +++ b/src/doc/tutorials/img/simple_data_model.svg @@ -0,0 +1,1826 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="113.145mm" + height="72.8646mm" + viewBox="0 0 441 284" + version="1.2" + id="svg236" + sodipodi:docname="simple_data_model.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)" + inkscape:export-filename="/home/daniel/indiscale/management/external/bmpg/management/documentation/data_model/how_to_datamodel/simple_data_model.png" + inkscape:export-xdpi="448.98001" + inkscape:export-ydpi="448.98001"> + <metadata + id="metadata240"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Qt SVG Document</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1135" + id="namedview238" + showgrid="false" + inkscape:zoom="1.8023479" + inkscape:cx="156.06897" + inkscape:cy="185.47266" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" /> + <title + id="title2">Qt SVG Document</title> + <desc + id="desc4">Generated with Qt</desc> + <defs + id="defs6"> + <marker + style="overflow:visible;" + id="marker1523" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="scale(1.1) rotate(180) translate(1,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + id="path1521" /> + </marker> + <marker + style="overflow:visible;" + id="marker1423" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + transform="scale(1.1) rotate(180) translate(1,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + id="path1421" /> + </marker> + <marker + style="overflow:visible;" + id="marker1333" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Mend" + inkscape:isstock="true"> + <path + transform="scale(0.6) rotate(180) translate(0,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + id="path1331" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow2Lend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + transform="scale(1.1) rotate(180) translate(1,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + id="path988" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow1Mend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path976" /> + </marker> + </defs> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Layer 1"> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g8" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g10" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g12" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g18" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g20" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(0.992009,0,0,0.992009,158.491,454.51927)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g86" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="m -68.7281,-363.013 v -29.302" + id="path84" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g24" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="188" + height="90" + id="rect22" + style="stroke-width:1.24747354;stroke:#ff0000;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g26" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,11.30455,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g30" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="20.5" + y="13.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="text28">CellCultureExperiment</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g34" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + vector-effect="" + points="0,18 188,18 " + id="polyline32" + style="stroke-width:1.24747354;stroke:#ff0000;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g36" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g38" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g42" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="31.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text40">experimenter : TEXT</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g44" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g48" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="49.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text46">lab_notes : FILE</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g50" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g54" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="67.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text52">number_of_dishes : INTEGER</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g56" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g60" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="85.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text58">cell_line : CellLine</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g62" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g64" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g66" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,0.992009,93.5484)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g68" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g70" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g72" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,64.4806)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g74" + style="fill-rule:evenodd;" /> + <g + fill="#ffffff" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,65.338858)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g78" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="M -6,0 0,10 6,0 H -6" + id="path76" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,90.3118,64.4806)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g80" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g82" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g88" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g90" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g92" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0,0.992009,-0.992009,0,197.41,178.126)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g94" + style="fill-rule:evenodd;" /> + <g + fill="#ff0000" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(0,0.992009,-0.992009,0,197.41,178.126)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g98" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="M 0,-12.307128 -5,-2.3071266 0,7.6928736 5,-2.3071266 0,-12.307128" + id="path96" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0,0.992009,-0.992009,0,197.41,178.126)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g100" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g102" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g106" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="m 49.2327,-277.754 80.94846,-16.18789" + id="path104" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" + sodipodi:nodetypes="cc" /> + </g> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g108" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g110" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g112" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,319.539,211.365)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g114" + style="fill-rule:evenodd;" /> + <g + fill="#ff0000" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(-0.992009,0,0,-0.992009,319.539,212.22327)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g118" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="M 0,-10 -5,0 0,10 5,0 0,-10" + id="path116" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(-0.992009,0,0,-0.992009,319.539,211.365)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g120" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g122" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="round" + stroke-linejoin="round" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g126" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <path + vector-effect="" + fill-rule="evenodd" + d="m 162.345,-234.247 v 26.22" + id="path124" + style="stroke-width:1.24747354;stroke:#ff0000;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,158.491,453.661)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g128" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g130" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g134" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="135" + height="54" + id="rect132" + style="stroke-width:1.24747354;stroke:#ff0000;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g136" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g140" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="30.5" + y="13.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="text138">Experiment</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g144" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + vector-effect="" + points="0,18 135,18 " + id="polyline142" + style="stroke-width:1.24747354;stroke:#ff0000;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g146" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g148" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g152" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="31.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text150">experimenter : TEXT</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g154" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g158" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="49.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text156">lab_notes : FILE</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g160" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g162" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g164" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g166" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g168" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g172" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="100.93769" + height="36" + id="rect170" + style="stroke-width:1.24747354;stroke:#ff0000;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g174" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,254.24055,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g178" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="15.237368" + y="13.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="text176">Publication</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g182" + style="fill-rule:evenodd;stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none"> + <path + id="polyline180" + style="stroke-width:1.24747354;stroke-miterlimit:4;stroke-dasharray:none" + d="m 0,18 100.87997,0" + sodipodi:nodetypes="cc" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g184" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g186" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g190" + style="fill-rule:evenodd;"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="31.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text188">author : TEXT</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g192" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g194" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g196" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,243.928,247.296)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g198" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g200" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g206" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g216" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g218" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g224" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g226" + style="fill-rule:evenodd;" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g228" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g230" + style="fill-rule:evenodd;" /> + <g + fill="none" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g232" + style="fill-rule:evenodd;" /> + <g + id="g1454" + transform="translate(-42.278435,82.178661)"> + <rect + style="opacity:1;fill:#d7f4d7;stroke:#008000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000;" + id="rect1448" + width="18.926079" + height="13.833775" + x="289.03854" + y="167.14027" + ry="4.099587" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="290.79922" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text1452" + style="fill-rule:evenodd;stroke-width:0.992009;"><tspan + style="fill:#008000;" + id="tspan1450">RT</tspan></text> + </g> + <g + id="g1462" + transform="translate(-285.2144,-71.568939)"> + <rect + style="opacity:1;fill:#d7f4d7;stroke:#008000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000;" + id="rect1456" + width="18.926079" + height="13.833775" + x="289.03854" + y="167.14027" + ry="4.099587" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="290.79922" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text1460" + style="fill-rule:evenodd;stroke-width:0.992009;"><tspan + style="fill:#008000;" + id="tspan1458">RT</tspan></text> + </g> + <g + id="g1470" + transform="translate(-261.77311,-164.12532)"> + <rect + style="opacity:1;fill:#d7f4d7;stroke:#008000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000;" + id="rect1464" + width="18.926079" + height="13.833775" + x="289.03854" + y="167.14027" + ry="4.099587" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="290.79922" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text1468" + style="fill-rule:evenodd;stroke-width:0.992009;"><tspan + style="fill:#008000;" + id="tspan1466">RT</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;line-height:1;font-family:Stanberry;-inkscape-font-specification:Stanberry;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:0.332398;" + x="137.87466" + y="221.70712" + id="text1475"><tspan + sodipodi:role="line" + id="tspan1473" + x="137.87466" + y="221.70712" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;font-family:Stanberry;-inkscape-font-specification:Stanberry;fill:#0000ff;stroke-width:0.332398;">Reference</tspan><tspan + sodipodi:role="line" + x="137.87466" + y="238.20723" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;font-family:Stanberry;-inkscape-font-specification:Stanberry;fill:#0000ff;stroke-width:0.332398;" + id="tspan1589">Property</tspan></text> + <path + style="opacity:1;fill:none;stroke:#0000ff;stroke-width:0.839441;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker1423);paint-order:markers fill stroke;stop-color:#000000;" + d="m 186.1229,210.28948 c 0.17712,-2.11062 7.35694,-8.61449 19.32363,-10.45333 11.96668,-1.83885 12.83929,-3.99319 19.85603,-15.53642" + id="path965" + sodipodi:nodetypes="czc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;line-height:1.25;font-family:Stanberry;-inkscape-font-specification:Stanberry;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:0.332398;" + x="154.42661" + y="73.855499" + id="text1327"><tspan + sodipodi:role="line" + id="tspan1325" + x="154.42661" + y="73.855499" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;font-family:Stanberry;-inkscape-font-specification:Stanberry;fill:#0000ff;stroke-width:0.332398;">Inheritance (parent-child)</tspan></text> + <path + style="opacity:1;fill:none;stroke:#0000ff;stroke-width:0.839441;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Lend);paint-order:markers fill stroke;stop-color:#000000;" + d="M 167.21,76.655873 C 152.19021,86.915727 140.56955,89.944957 126.44292,88.765028 114.95169,87.805221 104.43934,79.510241 95.374724,73.550088" + id="path1329" + sodipodi:nodetypes="cac" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;line-height:1.25;font-family:Stanberry;-inkscape-font-specification:Stanberry;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:0.332398;" + x="252.52292" + y="112.65959" + id="text1517"><tspan + sodipodi:role="line" + id="tspan1515" + x="252.52292" + y="112.65959" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;font-family:Stanberry;-inkscape-font-specification:Stanberry;fill:#0000ff;stroke-width:0.332398;">Properties</tspan></text> + <path + style="opacity:1;fill:none;stroke:#0000ff;stroke-width:0.839441;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker1523);paint-order:markers fill stroke;stop-color:#000000;" + d="m 248.81133,110.33043 c -2.11061,0.17712 -22.14938,1.99358 -35.25122,12.5406 -13.10185,10.54701 -23.00529,13.62042 -41.71137,14.52454" + id="path1519" + sodipodi:nodetypes="czc" /> + <g + id="g4897" + transform="translate(0,-14.437559)"> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g204" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + vector-effect="" + x="0" + y="0" + width="151" + height="49.96944" + id="rect202" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g210" + style="fill-rule:evenodd"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="49.5" + y="13.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="text208">CellLine</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g214" + style="fill-rule:evenodd;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + vector-effect="" + points="0,18 151,18 " + id="polyline212" + style="stroke:#ff0000;stroke-width:1.24747;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,165.733)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g222" + style="fill-rule:evenodd"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="31.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text220">publication : Publication</text> + </g> + <g + id="g1446" + transform="translate(2.6045662,0.6156617)"> + <rect + style="opacity:1;fill:#d7f4d7;stroke:#008000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect1441" + width="18.926079" + height="13.833775" + x="289.03854" + y="167.14027" + ry="4.099587" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="290.79922" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text208-3" + style="fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#008000" + id="tspan1426">RT</tspan></text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,288.811,180.17055)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g4881" + style="fill-rule:evenodd"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="31.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text4879">note : TEXT</text> + </g> + </g> + </g> +</svg> diff --git a/src/doc/tutorials/img/simple_data_model.xmi b/src/doc/tutorials/img/simple_data_model.xmi new file mode 100644 index 0000000000000000000000000000000000000000..0f427ff3bb30666fe099351b6b16dd2b616fa765 --- /dev/null +++ b/src/doc/tutorials/img/simple_data_model.xmi @@ -0,0 +1,179 @@ +<?xml version="1.0" encoding="UTF-8"?> +<XMI verified="false" xmlns:UML="http://schema.omg.org/spec/UML/1.4" xmi.version="1.2" timestamp="2023-03-10T13:37:51"> + <XMI.header> + <XMI.documentation> + <XMI.exporter>umbrello uml modeller 2.32.2 http://umbrello.kde.org</XMI.exporter> + <XMI.exporterVersion>1.6.19</XMI.exporterVersion> + <XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding> + </XMI.documentation> + <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.4"/> + </XMI.header> + <XMI.content> + <UML:Model isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="m1" name="UML-Modell" isRoot="false"> + <UML:Namespace.ownedElement> + <UML:Stereotype isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="folder" name="folder" isRoot="false" namespace="m1" visibility="public"/> + <UML:Stereotype isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="upqb4wZPdsFug" name="W" isRoot="false" namespace="m1" visibility="public"/> + <UML:Model isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="Logical_View" name="Logical View" isRoot="false" namespace="m1" visibility="public"> + <UML:Namespace.ownedElement> + <UML:Package isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="Datatypes" name="Datatypes" isRoot="false" stereotype="folder" namespace="Logical_View" visibility="public"> + <UML:Namespace.ownedElement> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uEHGpkgpZ5zSa" name="char" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uROhWD5rBLkN7" name="int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uTEWbFbZg0H7d" name="float" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="u63bynaVhcKPQ" name="double" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="urNIscCDLp6YC" name="bool" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uEFDoBYDJxlwD" name="string" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uUN2gpYYSm0MQ" name="unsigned char" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uaOg7DtUmNa1O" name="signed char" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="u2j8VdnwnD5No" name="unsigned int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uCM9wQw4MCzTh" name="signed int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uIiIYk08Eei43" name="short int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="utj7uju3Bcryx" name="unsigned short int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="u8CREq18tOkat" name="signed short int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uq9KZiLh2fPSG" name="long int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="ul1JcLwsggvUT" name="signed long int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="urLFa80H4C1WH" name="unsigned long int" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="u2WVtsIOXYKOE" name="long double" isRoot="false" namespace="Datatypes" visibility="public"/> + <UML:DataType isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="u6fN7PqC7hndQ" name="wchar_t" isRoot="false" namespace="Datatypes" visibility="public"/> + </UML:Namespace.ownedElement> + </UML:Package> + <UML:Class isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uvUQiWatyXkSJ" name="Experiment" isRoot="false" namespace="Logical_View" visibility="public"> + <UML:Classifier.feature> + <UML:Attribute type="uefR9qLrX0KbN" isSpecification="false" xmi.id="uSJY4vfmi5BN4" name="experimenter" visibility="public"/> + <UML:Attribute type="u0du3dSxselXO" isSpecification="false" xmi.id="uFqEtWMUa5mCe" name="lab_notes" visibility="private"/> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uefR9qLrX0KbN" name="TEXT" isRoot="false" namespace="Logical_View" visibility="public"/> + <UML:Class isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="u0du3dSxselXO" name="FILE" isRoot="false" namespace="Logical_View" visibility="public"/> + <UML:Class isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uAFk8Yy0StoYm" name="CellCultureExperiment" isRoot="false" namespace="Logical_View" visibility="public"> + <UML:GeneralizableElement.generalization> + <UML:Generalization xmi.idref="u8oRooFrsWVhk"/> + </UML:GeneralizableElement.generalization> + <UML:Classifier.feature> + <UML:Attribute type="uefR9qLrX0KbN" isSpecification="false" xmi.id="uNpTs7ekpuH4I" name="experimenter" visibility="public"/> + <UML:Attribute type="u0du3dSxselXO" isSpecification="false" xmi.id="uL8s65ael2sWY" name="lab_notes" visibility="private"/> + <UML:Attribute type="ur1GkbdOwkjef" isSpecification="false" xmi.id="um6gksRKWydK1" name="number_of_dishes" visibility="public"/> + <UML:Attribute type="upcSaMWLBkK65" isSpecification="false" xmi.id="uVKvnnqgPsRga" name="cell_line" visibility="public"/> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="ur1GkbdOwkjef" name="INTEGER" isRoot="false" namespace="Logical_View" visibility="public"/> + <UML:Generalization parent="uvUQiWatyXkSJ" isSpecification="false" discriminator="" xmi.id="u8oRooFrsWVhk" child="uAFk8Yy0StoYm" name="" namespace="Logical_View" visibility="public"/> + <UML:Class isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="upcSaMWLBkK65" name="CellLine" isRoot="false" namespace="Logical_View" visibility="public"> + <UML:Classifier.feature> + <UML:Attribute type="uO0C1L9PSx1pt" isSpecification="false" xmi.id="utENdz0EM98oE" name="publication" visibility="public"/> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="uO0C1L9PSx1pt" name="Publication" isRoot="false" namespace="Logical_View" visibility="public"> + <UML:Classifier.feature> + <UML:Attribute type="uefR9qLrX0KbN" isSpecification="false" xmi.id="uBD7YB7ALmZTE" name="author" visibility="private"/> + </UML:Classifier.feature> + </UML:Class> + </UML:Namespace.ownedElement> + <XMI.extension xmi.extender="umbrello"> + <diagrams resolution="99"> + <diagram showscope="1" showstereotype="1" isopen="1" showpackage="1" textcolor="#000000" canvasheight="284.288" linecolor="#ff0000" canvaswidth="441.137" documentation="" backgroundcolor="#fcfcfc" xmi.id="u89npYrdhZ5hM" showopsig="1" showattribassocs="1" localid="-1" griddotcolor="#eff0f1" zoom="152.08749999999995" usefillcolor="1" showops="1" linewidth="0" name="Klassendiagramm" showatts="1" showpubliconly="0" fillcolor="#ffffc0" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" type="1" snapcsgrid="0" snapy="25" snapx="25" showgrid="0" snapgrid="0" showattsig="1"> + <widgets> + <classwidget showscope="0" showopsigs="602" showstereotype="1" showpackage="1" textcolor="#000000" linecolor="#ff0000" xmi.id="uvUQiWatyXkSJ" usesdiagramusefillcolor="0" showattsigs="602" localid="unUcCTIMGl5Co" usesdiagramfillcolor="0" isinstance="0" usefillcolor="1" linewidth="0" showpubliconly="0" fillcolor="#ffffc0" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" width="135" height="54" showoperations="0" showattributes="1" x="-135.137" y="-456.315" autoresize="1"/> + <classwidget showscope="0" showopsigs="602" showstereotype="1" showpackage="1" textcolor="#000000" linecolor="#ff0000" xmi.id="upcSaMWLBkK65" usesdiagramusefillcolor="0" showattsigs="602" localid="ux9toAI1KGWvY" usesdiagramfillcolor="0" isinstance="0" usefillcolor="1" linewidth="0" showpubliconly="0" fillcolor="#ffffc0" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" width="151" height="36" showoperations="0" showattributes="1" x="131.37" y="-290.247" autoresize="1"/> + <classwidget showscope="0" showopsigs="602" showstereotype="1" showpackage="1" textcolor="#000000" linecolor="#ff0000" xmi.id="uAFk8Yy0StoYm" usesdiagramusefillcolor="0" showattsigs="602" localid="uCtngsW0eC2Nm" usesdiagramfillcolor="0" isinstance="0" usefillcolor="1" linewidth="0" showpubliconly="0" fillcolor="#ffffc0" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" width="188" height="90" showoperations="0" showattributes="1" x="-158.767" y="-363.013" autoresize="1"/> + <classwidget showscope="0" showopsigs="602" showstereotype="1" showpackage="1" textcolor="#000000" linecolor="#ff0000" xmi.id="uO0C1L9PSx1pt" usesdiagramusefillcolor="0" showattsigs="602" localid="udxtFf6VgSeNQ" usesdiagramfillcolor="0" isinstance="0" usefillcolor="1" linewidth="0" showpubliconly="0" fillcolor="#ffffc0" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" width="92" height="36" showoperations="0" showattributes="1" x="86.1255" y="-208.027" autoresize="1"/> + </widgets> + <messages/> + <associations> + <assocwidget totalcountb="2" widgetaid="uAFk8Yy0StoYm" totalcounta="2" indexb="1" textcolor="none" linecolor="#ff0000" xmi.id="u8oRooFrsWVhk" usesdiagramusefillcolor="1" localid="uP6sMUUIUwAdw" seqnum="" usesdiagramfillcolor="1" usefillcolor="1" linewidth="0" indexa="1" fillcolor="none" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" widgetbid="uvUQiWatyXkSJ" type="500" autoresize="1"> + <linepath layout="Direct"> + <startpoint startx="-68.7281" starty="-363.013"/> + <endpoint endx="-68.7281" endy="-402.315"/> + </linepath> + </assocwidget> + <assocwidget totalcountb="2" widgetaid="uAFk8Yy0StoYm" totalcounta="2" indexb="1" textcolor="none" linecolor="#ff0000" xmi.id="uVKvnnqgPsRga" usesdiagramusefillcolor="1" localid="ulyMsjM0nbs3a" seqnum="" changeabilityA="900" usesdiagramfillcolor="1" visibilityA="0" usefillcolor="1" linewidth="0" indexa="1" fillcolor="none" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" changeabilityB="900" widgetbid="upcSaMWLBkK65" type="510" autoresize="1" visibilityB="0"> + <linepath layout="Direct"> + <startpoint startx="29.2327" starty="-277.754"/> + <endpoint endx="131.37" endy="-277.754"/> + </linepath> + <floatingtext showstereotype="1" textcolor="none" linecolor="#ff0000" xmi.id="uVGPB1NJvP8wt" usesdiagramusefillcolor="1" localid="uckP5Ky3TvfkT" pretext="+" usesdiagramfillcolor="1" text="cell_line" isinstance="0" usefillcolor="1" linewidth="0" fillcolor="none" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" width="63" posttext="" height="22" x="70" y="-284" autoresize="1" role="710"/> + </assocwidget> + <assocwidget totalcountb="2" widgetaid="upcSaMWLBkK65" totalcounta="2" indexb="1" textcolor="none" linecolor="#ff0000" xmi.id="utENdz0EM98oE" usesdiagramusefillcolor="1" localid="u8A6XeV5sThX3" seqnum="" changeabilityA="900" usesdiagramfillcolor="1" visibilityA="0" usefillcolor="1" linewidth="0" indexa="1" fillcolor="none" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" changeabilityB="900" widgetbid="uO0C1L9PSx1pt" type="510" autoresize="1" visibilityB="0"> + <linepath layout="Direct"> + <startpoint startx="162.345" starty="-254.247"/> + <endpoint endx="162.345" endy="-208.027"/> + </linepath> + <floatingtext showstereotype="1" textcolor="none" linecolor="#ff0000" xmi.id="ufrw1SbOcMWr9" usesdiagramusefillcolor="1" localid="uY15jzXWQtNEA" pretext="+" usesdiagramfillcolor="1" text="publication" isinstance="0" usefillcolor="1" linewidth="0" fillcolor="none" font="Noto Sans,9,-1,5,50,0,0,0,0,0,Regular" width="81" posttext="" height="22" x="103" y="-235" autoresize="1" role="710"/> + </assocwidget> + </associations> + </diagram> + </diagrams> + </XMI.extension> + </UML:Model> + <UML:Model isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="Use_Case_View" name="Use Case View" isRoot="false" namespace="m1" visibility="public"> + <UML:Namespace.ownedElement/> + </UML:Model> + <UML:Model isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="Component_View" name="Component View" isRoot="false" namespace="m1" visibility="public"> + <UML:Namespace.ownedElement/> + </UML:Model> + <UML:Model isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="Deployment_View" name="Deployment View" isRoot="false" namespace="m1" visibility="public"> + <UML:Namespace.ownedElement/> + </UML:Model> + <UML:Model isLeaf="false" isSpecification="false" isAbstract="false" xmi.id="Entity_Relationship_Model" name="Entity Relationship Model" isRoot="false" namespace="m1" visibility="public"> + <UML:Namespace.ownedElement/> + </UML:Model> + </UML:Namespace.ownedElement> + </UML:Model> + </XMI.content> + <XMI.extensions xmi.extender="umbrello"> + <docsettings viewid="u89npYrdhZ5hM" documentation="" uniqueid="u1Nwn5m62fx8p"/> + <listview> + <listitem id="Views" type="800" open="1"> + <listitem id="Use_Case_View" type="802" open="1"/> + <listitem id="Entity_Relationship_Model" type="836" open="1"/> + <listitem id="Component_View" type="821" open="1"/> + <listitem id="Logical_View" type="801" open="1"> + <listitem id="uAFk8Yy0StoYm" type="813" open="1"> + <listitem id="uVKvnnqgPsRga" type="814" open="0"/> + <listitem id="uNpTs7ekpuH4I" type="814" open="0"/> + <listitem id="uL8s65ael2sWY" type="814" open="0"/> + <listitem id="um6gksRKWydK1" type="814" open="0"/> + </listitem> + <listitem id="upcSaMWLBkK65" type="813" open="1"> + <listitem id="utENdz0EM98oE" type="814" open="0"/> + </listitem> + <listitem id="Datatypes" type="830" open="0"> + <listitem id="urNIscCDLp6YC" type="829" open="0"/> + <listitem id="uEHGpkgpZ5zSa" type="829" open="0"/> + <listitem id="u63bynaVhcKPQ" type="829" open="0"/> + <listitem id="uTEWbFbZg0H7d" type="829" open="0"/> + <listitem id="uROhWD5rBLkN7" type="829" open="0"/> + <listitem id="u2WVtsIOXYKOE" type="829" open="0"/> + <listitem id="uq9KZiLh2fPSG" type="829" open="0"/> + <listitem id="uIiIYk08Eei43" type="829" open="0"/> + <listitem id="uaOg7DtUmNa1O" type="829" open="0"/> + <listitem id="uCM9wQw4MCzTh" type="829" open="0"/> + <listitem id="ul1JcLwsggvUT" type="829" open="0"/> + <listitem id="u8CREq18tOkat" type="829" open="0"/> + <listitem id="uEFDoBYDJxlwD" type="829" open="0"/> + <listitem id="uUN2gpYYSm0MQ" type="829" open="0"/> + <listitem id="u2j8VdnwnD5No" type="829" open="0"/> + <listitem id="urLFa80H4C1WH" type="829" open="0"/> + <listitem id="utj7uju3Bcryx" type="829" open="0"/> + <listitem id="u6fN7PqC7hndQ" type="829" open="0"/> + </listitem> + <listitem id="uvUQiWatyXkSJ" type="813" open="1"> + <listitem id="uSJY4vfmi5BN4" type="814" open="0"/> + <listitem id="uFqEtWMUa5mCe" type="814" open="0"/> + </listitem> + <listitem id="u0du3dSxselXO" type="813" open="1"/> + <listitem id="ur1GkbdOwkjef" type="813" open="1"/> + <listitem id="u89npYrdhZ5hM" type="807" label="Klassendiagramm" open="0"/> + <listitem id="uO0C1L9PSx1pt" type="813" open="1"> + <listitem id="uBD7YB7ALmZTE" type="814" open="0"/> + </listitem> + <listitem id="uefR9qLrX0KbN" type="813" open="1"/> + </listitem> + <listitem id="Deployment_View" type="827" open="1"/> + </listitem> + </listview> + <codegeneration> + <codegenerator language="C++"/> + </codegeneration> + </XMI.extensions> +</XMI> diff --git a/src/doc/tutorials/img/very_simple_data_model.png b/src/doc/tutorials/img/very_simple_data_model.png new file mode 100644 index 0000000000000000000000000000000000000000..793767b95b869bf2bfb20315bd9023a1b486bac6 Binary files /dev/null and b/src/doc/tutorials/img/very_simple_data_model.png differ diff --git a/src/doc/tutorials/img/very_simple_data_model.svg b/src/doc/tutorials/img/very_simple_data_model.svg new file mode 100644 index 0000000000000000000000000000000000000000..ca1b6f923ad32c04a3302a02f16c782531e002f4 --- /dev/null +++ b/src/doc/tutorials/img/very_simple_data_model.svg @@ -0,0 +1,267 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="56.61758mm" + height="20.597263mm" + viewBox="0 0 220.67571 80.280722" + version="1.2" + id="svg236" + sodipodi:docname="very_simple_data_model.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)" + inkscape:export-filename="/home/daniel/indiscale/management/external/bmpg/management/documentation/data_model/how_to_datamodel/very_simple_data_model.png" + inkscape:export-xdpi="897.25" + inkscape:export-ydpi="897.25"> + <metadata + id="metadata240"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Qt SVG Document</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1135" + id="namedview238" + showgrid="false" + inkscape:zoom="3.6046958" + inkscape:cx="160.39549" + inkscape:cy="4.7271483" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" /> + <title + id="title2">Qt SVG Document</title> + <desc + id="desc4">Generated with Qt</desc> + <defs + id="defs6"> + <marker + style="overflow:visible" + id="marker1523" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1521" /> + </marker> + <marker + style="overflow:visible" + id="marker1333" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend" + inkscape:isstock="true"> + <path + transform="scale(-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path1331" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path976" /> + </marker> + </defs> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Layer 1" + transform="translate(-88.927441,-46.784756)"> + <g + id="g1749" + transform="translate(150.56113,71.817619)"> + <rect + x="24.4333" + y="0.99200898" + width="133.92122" + height="53.568485" + id="rect132" + style="font-style:normal;font-weight:400;font-size:12.375px;font-family:'Noto Sans';fill:#ffffc0;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.37501;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="g140" + style="fill-rule:evenodd"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="30.5" + y="13.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="700" + font-style="normal" + id="text138">Experiment</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#ff0000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g144" + style="fill-rule:evenodd;stroke-width:1.38608;stroke-miterlimit:4;stroke-dasharray:none"> + <polyline + fill="none" + points="0,18 135,18 " + id="polyline142" + style="stroke-width:1.38608;stroke-miterlimit:4;stroke-dasharray:none" /> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g152" + style="fill-rule:evenodd"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="31.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text150">experimenter : TEXT</text> + </g> + <g + fill="#ffffc0" + fill-opacity="1" + stroke="#000000" + stroke-opacity="1" + stroke-width="1" + stroke-linecap="square" + stroke-linejoin="bevel" + transform="matrix(0.992009,0,0,0.992009,24.4333,0.992009)" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="g158" + style="fill-rule:evenodd"> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="5" + y="49.5" + font-family="'Noto Sans'" + font-size="12.375px" + font-weight="400" + font-style="normal" + id="text156">lab_notes : FILE</text> + </g> + <g + id="g1470" + transform="translate(-261.77311,-164.12532)"> + <rect + style="opacity:1;fill:#d7f4d7;stroke:#008000;stroke-width:0.839788;paint-order:markers fill stroke;stop-color:#000000" + id="rect1464" + width="18.926079" + height="13.833775" + x="289.03854" + y="167.14027" + ry="4.099587" /> + <text + fill="#000000" + fill-opacity="1" + stroke="none" + xml:space="preserve" + x="290.79922" + y="178.57553" + font-family="'Noto Sans'" + font-size="12.2761px" + font-weight="700" + font-style="normal" + id="text1468" + style="fill-rule:evenodd;stroke-width:0.992009"><tspan + style="fill:#008000" + id="tspan1466">RT</tspan></text> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;line-height:1.25;font-family:Stanberry;-inkscape-font-specification:Stanberry;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:0.332398" + x="88.282906" + y="58.603783" + id="text1517"><tspan + sodipodi:role="line" + id="tspan1515" + x="88.282906" + y="58.603783" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5001px;font-family:Stanberry;-inkscape-font-specification:Stanberry;fill:#0000ff;stroke-width:0.332398">RecordType</tspan></text> + <path + style="opacity:1;fill:none;stroke:#0000ff;stroke-width:0.839441;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker1523);paint-order:markers fill stroke;stop-color:#000000" + d="m 104.62524,64.323266 c 1.42777,5.850954 10.16944,13.595229 20.72552,16.588753 15.03521,4.263734 24.20804,-2.690657 44.43576,-0.92334" + id="path1519" + sodipodi:nodetypes="csc" /> + </g> +</svg>