{"data":{"markdownRemark":{"html":"<h1 id=\"loading-data\"><a href=\"#loading-data\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Loading Data</h1>\n<p>This part will get you started with populating models using data.</p>\n<h2 id=\"loading-agents-from-data\"><a href=\"#loading-agents-from-data\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Loading agents from data</h2>\n<p>Let's take a simplified version of the agent class <code class=\"language-text\">City</code> and let's say you have the following kind of data where each <code class=\"language-text\">City</code> has:</p>\n<ul>\n<li>a <code class=\"language-text\">name</code>, that is a <code class=\"language-text\">String</code></li>\n<li>a <code class=\"language-text\">population</code>, that is an <code class=\"language-text\">int</code></li>\n<li>a <code class=\"language-text\">surface</code>, that is a <code class=\"language-text\">float</code></li>\n</ul>\n<p>More precisely the data is organised like so:</p>\n<table class=\"ui celled table\">\n  <thead>\n    <tr>\n      <th>id</th>\n      <th>name</th>\n      <th>population</th>      \n      <th>surface</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>23323443</td>\n      <td>Kodiak</td>\n      <td>783 904</td>\n      <td>20 229</td>\n    </tr>\n    <tr>\n      <td>48217039</td>\n      <td>Firebrick</td>\n      <td>13 003</td>\n      <td>4320</td>\n     </tr>\n    <tr>\n      <td>37410058</td>\n      <td>Onalaska</td>\n      <td>2 377 843</td>      \n      <td>61 839</td>\n     </tr>\n     <tr>\n        <td>93749281</td>\n        <td>Ak-Chin Village</td>\n        <td>453 150</td>\n        <td>17 323</td>\n      </tr>\n    <tr>\n      <td>55283047</td>\n      <td>Blacktail</td>\n      <td>1 921 613</td>\n      <td>49 315</td>\n     </tr>\n    <tr>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>      \n      <td>...</td>\n     </tr>\n  </tbody>\n</table>\n<p>Here, there is an <em>additional field</em> called <code class=\"language-text\">id</code> (which is a unique number)  that identifies each record.</p>\n<div class=\"ui segment  warning message\">\n<h4>On the type of data supported</h4>\nThe Simudyne SDK supports consistent schema of data : the records present in your data should not be duplicated and there must exist a field that identifies each individual record.\n<p>Each record will be mapped to an agent, and each field of a record, except the indexing field (that is defaulted to id), will be mapped to the eponymous agent attribute.</p>\n<p>Hence, if your data does not have a field identifying each of your record, you should add a new id column to your dataset to use.</p>\n</div>\n<p>We can come up with a simplified version of the Agent class <code class=\"language-text\">City</code> described above to match this data:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/loading-a8333558205d561aa4210ed80e0bae16-dfac6.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block; padding: 20px; max-width: 145px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 149.6688741721854%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAeABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAIDBAEF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAH26NcBmEzKuZ0Vqr//xAAcEAEAAQQDAAAAAAAAAAAAAAABAgADEDIREiH/2gAIAQEAAQUCuai5Aw6xq7sy971OXL//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAYEAACAwAAAAAAAAAAAAAAAAAgIQABEf/aAAgBAQAGPwJSmOF//8QAGxABAAMAAwEAAAAAAAAAAAAAAQARIRAxQVH/2gAIAQEAAT8hSO1MEW1Zw04wa4d/ONqlLeymGNHvssCis8hCN7gBumb+9T//2gAMAwEAAgADAAAAEEfKMf/EABkRAQACAwAAAAAAAAAAAAAAAAEAEBEhMf/aAAgBAwEBPxATFbhyf//EABgRAQEAAwAAAAAAAAAAAAAAAAEAEBEx/9oACAECAQE/EE24Y5f/xAAfEAEBAAICAQUAAAAAAAAAAAABEQAhMVFhEEGBobH/2gAIAQEAAT8Q3V6A9OCAsLFrsvvPr0AME6cdy+xprKd5AUQB5PPGQLoFgnymM4DOl5cUO4rJkK0bOPzAJOkcHbn/2Q=='); background-size: cover; display: block;\"\n    >\n      <picture>\n        <source\n          srcset=\"/static/loading-a8333558205d561aa4210ed80e0bae16-aa052.webp 173w,\n/static/loading-a8333558205d561aa4210ed80e0bae16-d769f.webp 345w,\n/static/loading-a8333558205d561aa4210ed80e0bae16-f6581.webp 604w\"\n          sizes=\"(max-width: 145px) 100vw, 145px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/loading-a8333558205d561aa4210ed80e0bae16-89287.jpg 173w,\n/static/loading-a8333558205d561aa4210ed80e0bae16-92d86.jpg 345w,\n/static/loading-a8333558205d561aa4210ed80e0bae16-dfac6.jpg 604w\"\n          sizes=\"(max-width: 145px) 100vw, 145px\"\n          type=\"image/jpeg\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n          src=\"/static/loading-a8333558205d561aa4210ed80e0bae16-dfac6.jpg\"\n          alt=\"loading\"\n          title=\"\"\n          src=\"/static/loading-a8333558205d561aa4210ed80e0bae16-dfac6.jpg\"\n        />\n      </picture>\n      </span>\n  </span>\n  \n  </a>\n    </p>\n<p>To import data, you have to annotate your fields like so so that records in your data can be mapped to Cities.</p>\n<p class=\"code-header\">Class definition (Java)</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">City</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Agent</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token annotation punctuation\">@Constant</span>\n  String name<span class=\"token punctuation\">;</span>\n\n  <span class=\"token annotation punctuation\">@Constant</span>\n  <span class=\"token keyword\">int</span> population<span class=\"token punctuation\">;</span>\n\n  <span class=\"token annotation punctuation\">@Constant</span>\n  <span class=\"token keyword\">float</span> surface<span class=\"token punctuation\">;</span>\n\n  <span class=\"token comment\">//...</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Finally, to import your agents in your model, you have to use the system loadGroup() method.</p>\n<p>You have to specify a Source to use ; this object is dedicated to import data from your file or data base. Let's use a CSVSource to import the data from a CSV file !</p>\n<div class=\"ui segment info message\">\n<h4>Is there only Source for CSV (CSVSource) out there ?</h4>\nIn our example we suppose the data is stored in a CSV so we use a CSVSource to trigger it. However, you can use other Source -- like JDBCSource -- to import data from other data storage. Check the dedicated section in the following.\n</div>\n<div class=\"ui segment warning message\"><h4>Windows user</h4>The `/` in the paths needs to be replaced with `\\`.</div>\n<p class=\"code-header\">Creating data group (Java)</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token comment\">// Creating a Source to import data -- you can use another type of source too</span>\nCSVSource citySource <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">CSVSource</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"/path/to/myCities.csv\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\nGroup<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>City<span class=\"token punctuation\">></span></span> cities <span class=\"token operator\">=</span> <span class=\"token function\">loadGroup</span><span class=\"token punctuation\">(</span>City<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">,</span> citySource<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>And now, all the Cities contains as records in your data are imported into your model !</p>\n<div class=\"ui segment warning message\">\n<h4>On IDs present in data vs IDs used in the AgentBasedModel</h4>\nThe IDs present in the AgentBasedModel when importing data are not used any more as data gets remapped to agent that are given a new ID adapted to the state of the system.\n<p>Thus, IDs present in your data still remain important as they identify agents; but won't be used in the system once the records are imported.</p>\n</div>\n<div class=\"ui segment warning message\">\n<h4>What if I do not have enough of fields for the agent that I want to model ?</h4>\nIf you do not have enough fields in your dataset compared to what you would like to have in your model for an agent class, this is not restrictive to use data import. The fields present into your data will be mapped to some of the fields of your agents, leaving the remaining ones with their default values.\n</div>\n<h2 id=\"creating-links-from-data\"><a href=\"#creating-links-from-data\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Creating Links from Data</h2>\n<p>Let's now imagine that you want to introduce Roads between your Cities.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/links_from_data-104b759c4849a32469dd90befc5c5d86-dfac6.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block; padding: 20px; max-width: 145px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 276.65562913907286%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAA3ABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAIDBAEF/8QAFwEBAQEBAAAAAAAAAAAAAAAAAQIAA//aAAwDAQACEAMQAAAB9ujXAZhMxznVSSnbHsWLHDs9RF6Rcf/EABwQAQACAwEBAQAAAAAAAAAAAAEAAgMQETISIf/aAAgBAQABBQLJ35F2Bp81mX0jP3t63sw0vIWNZGFglPH/xAAWEQEBAQAAAAAAAAAAAAAAAAABECD/2gAIAQMBAT8B0E//xAAXEQEAAwAAAAAAAAAAAAAAAAAQAREg/9oACAECAQE/ASsSf//EABsQAAICAwEAAAAAAAAAAAAAAAABETEQICFB/9oACAEBAAY/AuC7rGaKK3h+oUCP/8QAHRABAAICAwEBAAAAAAAAAAAAAQARITEQQVFhsf/aAAgBAQABPyFB2p9gi2VnDThqBXBvjNaLeSUwWNHfcsDrHU9Kvbgan7uWi2vTj844HaILLR+QRLIAuiGiLJmk/9oADAMBAAIAAwAAABBHyr2cCIH/xAAZEQEAAwEBAAAAAAAAAAAAAAABABARITH/2gAIAQMBAT8QHliZMaBI+z//xAAYEQEAAwEAAAAAAAAAAAAAAAABABARIf/aAAgBAgEBPxBNaVAcmlDtf//EAB8QAQEAAgIDAAMAAAAAAAAAAAERACExQRBhoVFx0f/aAAgBAQABPxDcXoH4OCAsLFrsvc+eImg7HHcrtwayjwmRLgHce+MQNYNxPjJYDTpe3BruCuk1kpoka/3BfGjfgDWicF79+KVpCrODOxACKOG0o41PARNPOaEISpsP3McThr9c/9k='); background-size: cover; display: block;\"\n    >\n      <picture>\n        <source\n          srcset=\"/static/links_from_data-104b759c4849a32469dd90befc5c5d86-aa052.webp 173w,\n/static/links_from_data-104b759c4849a32469dd90befc5c5d86-d769f.webp 345w,\n/static/links_from_data-104b759c4849a32469dd90befc5c5d86-f6581.webp 604w\"\n          sizes=\"(max-width: 145px) 100vw, 145px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/links_from_data-104b759c4849a32469dd90befc5c5d86-89287.jpg 173w,\n/static/links_from_data-104b759c4849a32469dd90befc5c5d86-92d86.jpg 345w,\n/static/links_from_data-104b759c4849a32469dd90befc5c5d86-dfac6.jpg 604w\"\n          sizes=\"(max-width: 145px) 100vw, 145px\"\n          type=\"image/jpeg\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n          src=\"/static/links_from_data-104b759c4849a32469dd90befc5c5d86-dfac6.jpg\"\n          alt=\"links from data\"\n          title=\"\"\n          src=\"/static/links_from_data-104b759c4849a32469dd90befc5c5d86-dfac6.jpg\"\n        />\n      </picture>\n      </span>\n  </span>\n  \n  </a>\n    </p>\n<p>And let's say your have the same dataset of Cities ...</p>\n<table class=\"ui celled table\">\n  <thead>\n    <tr>\n      <th>id</th>\n      <th>name</th>\n      <th>population</th>      \n      <th>surface</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>23323443</td>\n      <td>Kodiak</td>\n      <td>783904</td>\n      <td>20229</td>\n    </tr>\n    <tr>\n      <td>48217039</td>\n      <td>Firebrick</td>\n      <td>13003</td>\n      <td>4320</td>\n     </tr>\n    <tr>\n      <td>37410058</td>\n      <td>Onalaska</td>\n      <td>2377843</td>      \n      <td>61839</td>\n     </tr>\n     <tr>\n        <td>93749281</td>\n        <td>Ak-Chin Village</td>\n        <td>453150</td>\n        <td>17323</td>\n      </tr>\n    <tr>\n      <td>55283047</td>\n      <td>Blacktail</td>\n      <td>1921613</td>\n      <td>49315</td>\n     </tr>\n    <tr>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>      \n      <td>...</td>\n     </tr>\n  </tbody>\n</table>\n<p>... and that you have another a data sets of Roads linking Cities together:</p>\n<table class=\"ui celled table\">\n  <thead>\n    <tr>\n      <th>from</th>\n      <th>to</th>\n      <th>length</th>      \n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>23323443</td>\n      <td>48217039</td>\n      <td>23.32</td>\n    </tr>\n    <tr>\n      <td>37410058</td>\n      <td>23323443</td>\n      <td>343.3</td>\n     </tr>\n    <tr>\n      <td>23323443</td>\n      <td>55283047</td>\n      <td>43.13</td>      \n     </tr>\n     <tr>\n        <td>55283047</td>\n        <td>93749281</td>\n        <td>33.38</td>\n      </tr>\n    <tr>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>      \n     </tr>\n  </tbody>\n</table>\n<p>Here, <code class=\"language-text\">from</code> and <code class=\"language-text\">to</code> identify respectively the source agents and the target agents.</p>\n<p>The remaining fields will be injected in the link at their creation. In our context, there is just one remaining field, <code class=\"language-text\">length</code>, that represent the length of a <code class=\"language-text\">Road</code> from the <code class=\"language-text\">City</code> identified by the ID from to the <code class=\"language-text\">City</code> identified by the ID <code class=\"language-text\">to</code>.</p>\n<p>You can import those links in your model and between your two groups using the <code class=\"language-text\">connect()</code> with a 'Source'.</p>\n<p class=\"code-header\">Connecting a Group Using Data (Java)</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\">CSVSource citySource <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">CSVSource</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"/path/to/myCities.csv\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nCSVSource roadSource <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">CSVSource</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"/path/to/myRoads.csv\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\nGroup<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>City<span class=\"token punctuation\">></span></span> cities <span class=\"token operator\">=</span> <span class=\"token function\">loadGroup</span><span class=\"token punctuation\">(</span>City<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">,</span> citySource<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\ncities<span class=\"token punctuation\">.</span><span class=\"token function\">loadConnections</span><span class=\"token punctuation\">(</span>cities<span class=\"token punctuation\">,</span> Road<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">,</span> roadSource<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>You can also connect two different <code class=\"language-text\">Groups</code> as well:</p>\n<p class=\"code-header\">Connect two Groups using Data</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\">CSVSource citySource <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">CSVSource</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"/path/to/myCities.csv\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nCSVSource countrySource <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">CSVSource</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"/path/to/myCountry.csv\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\nCSVSource linkSource <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">CSVSource</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"/path/to/myLinks.csv\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\nGroup<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>City<span class=\"token punctuation\">></span></span> cities <span class=\"token operator\">=</span> <span class=\"token function\">loadGroup</span><span class=\"token punctuation\">(</span>City<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">,</span> citySource<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nGroup<span class=\"token generics function\"><span class=\"token punctuation\">&lt;</span>Country<span class=\"token punctuation\">></span></span> countries <span class=\"token operator\">=</span> <span class=\"token function\">loadGroup</span><span class=\"token punctuation\">(</span>Country<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">,</span> countrySource<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\ncities<span class=\"token punctuation\">.</span><span class=\"token function\">loadConnections</span><span class=\"token punctuation\">(</span>countries<span class=\"token punctuation\">,</span> MyLink<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">,</span> linkSource<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"more-about-sources\"><a href=\"#more-about-sources\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>More about Sources</h2>\n<p>If you have data you want to import from a database, you can use a <code class=\"language-text\">JDBCSource</code> that supports <em>MySQL</em>, <em>SQLite</em> as well as <em>PostGreSQL</em>. Here is an example for <em>SQLite</em>:</p>\n<p class=\"code-header\">Using JDBC Sources (java)</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\">String connectionString <span class=\"token operator\">=</span> s<span class=\"token string\">\"jdbc:sqlite:path/to/myDataBase.db\"</span><span class=\"token punctuation\">;</span>\n\nJDBCSource citySource <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">JDBCSource</span><span class=\"token punctuation\">(</span>connectionString<span class=\"token punctuation\">,</span> <span class=\"token string\">\"Country\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"username\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"password\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p> <a href=\"https://alvinalexander.com/java/jdbc-connection-string-mysql-postgresql-sqlserver\" title=\"JDBC connection string\">Java JDBC connection string examples</a></p>\n<div class=\"ui segment info message\">\n<h4>How about supporting other Sources ?</h4>\nFor now, Source have been implemented for CSV files and relational databases. In the future, more solutions will be covered, especially non-relational databases a la NoSQL.\n</div>","headings":[{"value":"Loading Data","depth":1},{"value":"Loading agents from data","depth":2},{"value":"Creating Links from Data","depth":2},{"value":"More about Sources","depth":2}],"frontmatter":{"title":"Loading Data","toc":null,"experimental":null}},"site":{"siteMetadata":{"title":"Simudyne Docs","latestVersion":"2.6"}}},"pageContext":{"absolutePath":"/home/vsts/work/1/s/content/2.5/reference/data_management/loading.md","versioned":true,"version":"2.5","kind":"reference","pagePath":"/reference/data_management/loading","chronology":{"prev":{"name":"Data Management","path":"/reference/data_management"},"next":{"name":"Outputting Data","path":"/reference/data_management/outputting_data"}},"lastUpdated":"2026-04-21T13:56:54.861Z"}}