From 5f5abc6c4df3a4c8cad28d0862e94732a0cf94a6 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Fri, 26 Jan 2024 16:11:48 +0100 Subject: [PATCH 01/24] module submission DUMMY module used in guide for submissions --- 1870-Schliemann-001/.DS_Store | Bin 0 -> 6148 bytes 1870-Schliemann-001/.gitignore | 2 + 1870-Schliemann-001/CHANGELOG.md | 2 + 1870-Schliemann-001/LICENSE | 21 + 1870-Schliemann-001/NASSA.yml | 68 +++ 1870-Schliemann-001/README.md | 25 + .../documentation/designDetails.md | 21 + .../documentation/tableOfContents.md | 9 + .../netlogo_implementation/TroyDestroy.nlogo | 516 ++++++++++++++++ .../TroyDestroy_agents.nlogo | 549 ++++++++++++++++++ .../documentation/TroyDestroy interface.png | Bin 0 -> 8644 bytes .../TroyDestroy_agents interface.png | Bin 0 -> 9047 bytes .../documentation/instructions.md | 23 + .../documentation/tableOfContents.md | 13 + .../python_implementation/Army.py | 5 + .../python_implementation/City.py | 13 + .../python_implementation/demonstration.ipynb | 112 ++++ .../documentation/tableOfContents.md | 5 + .../python_implementation/main.py | 25 + 1870-Schliemann-001/references.bib | 9 + 20 files changed, 1418 insertions(+) create mode 100644 1870-Schliemann-001/.DS_Store create mode 100644 1870-Schliemann-001/.gitignore create mode 100644 1870-Schliemann-001/CHANGELOG.md create mode 100644 1870-Schliemann-001/LICENSE create mode 100644 1870-Schliemann-001/NASSA.yml create mode 100644 1870-Schliemann-001/README.md create mode 100644 1870-Schliemann-001/documentation/designDetails.md create mode 100644 1870-Schliemann-001/documentation/tableOfContents.md create mode 100644 1870-Schliemann-001/netlogo_implementation/TroyDestroy.nlogo create mode 100644 1870-Schliemann-001/netlogo_implementation/TroyDestroy_agents.nlogo create mode 100644 1870-Schliemann-001/netlogo_implementation/documentation/TroyDestroy interface.png create mode 100644 1870-Schliemann-001/netlogo_implementation/documentation/TroyDestroy_agents interface.png create mode 100644 1870-Schliemann-001/netlogo_implementation/documentation/instructions.md create mode 100644 1870-Schliemann-001/netlogo_implementation/documentation/tableOfContents.md create mode 100644 1870-Schliemann-001/python_implementation/Army.py create mode 100644 1870-Schliemann-001/python_implementation/City.py create mode 100644 1870-Schliemann-001/python_implementation/demonstration.ipynb create mode 100644 1870-Schliemann-001/python_implementation/documentation/tableOfContents.md create mode 100644 1870-Schliemann-001/python_implementation/main.py create mode 100644 1870-Schliemann-001/references.bib diff --git a/1870-Schliemann-001/.DS_Store b/1870-Schliemann-001/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a2bd7674e36aa048feb78cb97bf0adc738aacf61 GIT binary patch literal 6148 zcmeHKK}y3=5S^(7BO-JqEtD@Xeo3 zOsHDpLQrO4{`-Ia%unVeWHLm=lTA7%8WB+h6&xI3_&{V|bV~-oBAe{bC@7;f-Ov@( z+<X8jmCg6&}Cpxmm{hF7oYe4 z-5^^T1IEC=Vt|LqG?^f!P+PZ>lUnPbGpLC8)rw6BCcYHIS4!~-)C=rRCcrpgtq2Rm Oegr%XHW&lH%D@{e19Q&+ literal 0 HcmV?d00001 diff --git a/1870-Schliemann-001/.gitignore b/1870-Schliemann-001/.gitignore new file mode 100644 index 0000000..7a60b85 --- /dev/null +++ b/1870-Schliemann-001/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +*.pyc diff --git a/1870-Schliemann-001/CHANGELOG.md b/1870-Schliemann-001/CHANGELOG.md new file mode 100644 index 0000000..0f6941b --- /dev/null +++ b/1870-Schliemann-001/CHANGELOG.md @@ -0,0 +1,2 @@ +## 1.0.0 +- Creation of the module. \ No newline at end of file diff --git a/1870-Schliemann-001/LICENSE b/1870-Schliemann-001/LICENSE new file mode 100644 index 0000000..0e6178b --- /dev/null +++ b/1870-Schliemann-001/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/1870-Schliemann-001/NASSA.yml b/1870-Schliemann-001/NASSA.yml new file mode 100644 index 0000000..1ba3aa4 --- /dev/null +++ b/1870-Schliemann-001/NASSA.yml @@ -0,0 +1,68 @@ +id: 1870-Schliemann-001 +nassaVersion: 0.5.0 +moduleType: Algorithm +title: (DUMMY EXAMPLE) TroyDestroy. Bronze Age siege and its destructive effect on settlement +moduleVersion: 1.0.0 +contributors: + - name: Schliemann, Heinrich + roles: [ "Author", "Copyright Holder" ] + email: schliemann@email.org + - name: Angourakis, Andreas + roles: [ "Author", "Copyright Holder", "Creator" ] + email: andros.spica@gmail.com + orcid: 0000-0002-9946-8142 +lastUpdateDate: 1871-10-20 +description: > + This module takes the strength of two armies, one aggressor and another defender, and calculates the level of destruction of the defenders' city. The destructive effect over the defenders' city is proportional to the two contending strengths and a constant rate per unit of strength of the aggressor matched by the defender. +relatedModules: [ 1874-NASSA-001 ] +references: + moduleReferences: [ homers-iliad ] +domainKeywords: + regions: + - Global + - Eastern Mediterranean + periods: + - Bronze Age + - Mycenaean + subjects: + - war +modellingKeywords: + - agent + - calculation +programmingKeywords: + - Functional + - Object-oriented +implementations: + - language: NetLogo + softwareDependencies: + - NetLogo >= v6.1.1 + - gis (NetLogo extension) + - language: Python + softwareDependencies: + - Python >= v.3.9 + - math (Python module) + - random (Python module) +docsDir: documentation/ +inputs: + - name: greeks-strength, GREEKS_STRENGTH + type: integer + unit: army strength + description: The strength of the Greek army (attackers), measured in number of soldiers, units, etc. + - name: trojans-strength, TROJANS_STRENGTH + type: integer + unit: army strength + description: The strength of the Trojan army (defenders), measured in number of soldiers, units, etc. + - name: destruction-rate, DESTRUCTION_RATE + type: float + unit: city health / army strength + description: The rate of destruction per unit of attacker strength + - name: init-troy-health, TROY_HEALTH + type: float + unit: city health + description: The general state of the defenders city, measured in population, structures, etc. +outputs: + - name: troy-health, health, City.health + type: float + unit: city health + description: The general state of the defenders city, measured in population, structures, etc. +license: MIT diff --git a/1870-Schliemann-001/README.md b/1870-Schliemann-001/README.md new file mode 100644 index 0000000..a32df19 --- /dev/null +++ b/1870-Schliemann-001/README.md @@ -0,0 +1,25 @@ +# (DUMMY EXAMPLE) TroyDestroy. Bronze Age siege and its destructive effect on settlement + +*by Heinrich "Dummy" Schliemann* (NASSA submission :rocket:) + +This module takes the strength of two armies, one aggressor and another defender, and calculates the level of destruction of the defenders' city. The destructive effect over the defenders' city is proportional to the two contending strengths and a constant rate per unit of strength of the aggressor matched by the defender. + +## License + +**MIT** + +## References + +Homer. 1865. The Iliad of Homer. J. Murray (trad.). + +## Further information + +Corinthian aryballos depicting the trojan war from 1887 jahrbuchdeskaiserich 1200x500 + +This model is a algorithm implemented in NetLogo and Python 3. Disclaimer: the code might require updates since it was written in the 19th century. + +Overview of the algorithm: + +$$warEffect=-destructionRate*\frac{(attackerStrength)^2}{defenderStrength} $$ + +See full list of documentation resources in [`documentation`](documentation/tableOfContents.md). diff --git a/1870-Schliemann-001/documentation/designDetails.md b/1870-Schliemann-001/documentation/designDetails.md new file mode 100644 index 0000000..d841ae8 --- /dev/null +++ b/1870-Schliemann-001/documentation/designDetails.md @@ -0,0 +1,21 @@ +# Design details + +This module takes the strength of two armies, one aggressor and another defender, and calculates the level of destruction of the defenders' city. + +## Inputs + +Four input variables or parameters are required: +- Strength of the attacker's army +- Strength of the defender's army +- Destruction rate modulating how fast the city looses its health during the war +- Health of the defender's city, before the war + +## Output + +- Health of the defender's city, after the war + +## Core algorithm + +The destructive effect over the defenders' city is proportional to the two contending strengths and a constant rate per unit of strength of the aggressor matched by the defender. The specific mathematical formulation is: + +$$warEffect=-destructionRate*\frac{(attackerStrength)^2}{defenderStrength} $$ \ No newline at end of file diff --git a/1870-Schliemann-001/documentation/tableOfContents.md b/1870-Schliemann-001/documentation/tableOfContents.md new file mode 100644 index 0000000..46327c9 --- /dev/null +++ b/1870-Schliemann-001/documentation/tableOfContents.md @@ -0,0 +1,9 @@ +(DUMMY EXAMPLE) TroyDestroy. Bronze Age siege and its destructive effect on settlement +# General documentation +## Table of contents + +- [`designDetails.md`](designDetails.md) : free format document describing the module process, beyond the level of implementation. + +- [NetLogo implementation](/netlogo_implementation/documentation/tableOfContents.md) : documentation specific to the NetLogo implementation. + +- [Python implementation](/python_implementation/documentation/tableOfContents.md) : documentation specific to the Python implementation. \ No newline at end of file diff --git a/1870-Schliemann-001/netlogo_implementation/TroyDestroy.nlogo b/1870-Schliemann-001/netlogo_implementation/TroyDestroy.nlogo new file mode 100644 index 0000000..9a65633 --- /dev/null +++ b/1870-Schliemann-001/netlogo_implementation/TroyDestroy.nlogo @@ -0,0 +1,516 @@ +globals +[ + ;;; input + greeks-strength trojans-strength + destruction-rate + init-troy-health + + ;;; output + troy-health +] + +to setup + + ;;; load input from interface + set greeks-strength par_greeks-strength + set trojans-strength par_trojans-strength + set destruction-rate par_destruction-rate + + set init-troy-health 100 + + set troy-health init-troy-health + +end + +to resolve-trojan-war + + ;;; Resolve the destruction level based on army strengths and a destruction rate and update city health + set troy-health (get-effect-of-war troy-health greeks-strength trojans-strength destruction-rate) + +end + +to-report get-effect-of-war [ cityHealth aggressorStrength defenderStrength destructionRate ] + + ;;; Return the destruction level based on army strengths and a destruction rate + report max (list 0 (cityHealth - destructionRate * (aggressorStrength ^ 2) / defenderStrength)) + +end +@#$#@#$#@ +GRAPHICS-WINDOW +210 +10 +647 +448 +-1 +-1 +13.0 +1 +10 +1 +1 +1 +0 +1 +1 +1 +-16 +16 +-16 +16 +0 +0 +1 +ticks +30.0 + +SLIDER +25 +50 +197 +83 +par_greeks-strength +par_greeks-strength +0 +100 +100.0 +1 +1 +NIL +HORIZONTAL + +SLIDER +26 +91 +198 +124 +par_trojans-strength +par_trojans-strength +0 +100 +50.0 +1 +1 +NIL +HORIZONTAL + +SLIDER +25 +135 +202 +168 +par_destruction-rate +par_destruction-rate +0 +1 +0.42 +0.01 +1 +NIL +HORIZONTAL + +MONITOR +72 +193 +147 +238 +NIL +troy-health +17 +1 +11 + +BUTTON +73 +10 +208 +43 +NIL +resolve-trojan-war +NIL +1 +T +OBSERVER +NIL +NIL +NIL +NIL +1 + +BUTTON +6 +10 +69 +43 +NIL +setup +NIL +1 +T +OBSERVER +NIL +NIL +NIL +NIL +1 + +@#$#@#$#@ +## WHAT IS IT? + +(a general understanding of what the model is trying to show or explain) + +## HOW IT WORKS + +(what rules the agents use to create the overall behavior of the model) + +## HOW TO USE IT + +(how to use the model, including a description of each of the items in the Interface tab) + +## THINGS TO NOTICE + +(suggested things for the user to notice while running the model) + +## THINGS TO TRY + +(suggested things for the user to try to do (move sliders, switches, etc.) with the model) + +## EXTENDING THE MODEL + +(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.) + +## NETLOGO FEATURES + +(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features) + +## RELATED MODELS + +(models in the NetLogo Models Library and elsewhere which are of related interest) + +## CREDITS AND REFERENCES + +(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links) +@#$#@#$#@ +default +true +0 +Polygon -7500403 true true 150 5 40 250 150 205 260 250 + +airplane +true +0 +Polygon -7500403 true true 150 0 135 15 120 60 120 105 15 165 15 195 120 180 135 240 105 270 120 285 150 270 180 285 210 270 165 240 180 180 285 195 285 165 180 105 180 60 165 15 + +arrow +true +0 +Polygon -7500403 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150 + +box +false +0 +Polygon -7500403 true true 150 285 285 225 285 75 150 135 +Polygon -7500403 true true 150 135 15 75 150 15 285 75 +Polygon -7500403 true true 15 75 15 225 150 285 150 135 +Line -16777216 false 150 285 150 135 +Line -16777216 false 150 135 15 75 +Line -16777216 false 150 135 285 75 + +bug +true +0 +Circle -7500403 true true 96 182 108 +Circle -7500403 true true 110 127 80 +Circle -7500403 true true 110 75 80 +Line -7500403 true 150 100 80 30 +Line -7500403 true 150 100 220 30 + +butterfly +true +0 +Polygon -7500403 true true 150 165 209 199 225 225 225 255 195 270 165 255 150 240 +Polygon -7500403 true true 150 165 89 198 75 225 75 255 105 270 135 255 150 240 +Polygon -7500403 true true 139 148 100 105 55 90 25 90 10 105 10 135 25 180 40 195 85 194 139 163 +Polygon -7500403 true true 162 150 200 105 245 90 275 90 290 105 290 135 275 180 260 195 215 195 162 165 +Polygon -16777216 true false 150 255 135 225 120 150 135 120 150 105 165 120 180 150 165 225 +Circle -16777216 true false 135 90 30 +Line -16777216 false 150 105 195 60 +Line -16777216 false 150 105 105 60 + +car +false +0 +Polygon -7500403 true true 300 180 279 164 261 144 240 135 226 132 213 106 203 84 185 63 159 50 135 50 75 60 0 150 0 165 0 225 300 225 300 180 +Circle -16777216 true false 180 180 90 +Circle -16777216 true false 30 180 90 +Polygon -16777216 true false 162 80 132 78 134 135 209 135 194 105 189 96 180 89 +Circle -7500403 true true 47 195 58 +Circle -7500403 true true 195 195 58 + +circle +false +0 +Circle -7500403 true true 0 0 300 + +circle 2 +false +0 +Circle -7500403 true true 0 0 300 +Circle -16777216 true false 30 30 240 + +cow +false +0 +Polygon -7500403 true true 200 193 197 249 179 249 177 196 166 187 140 189 93 191 78 179 72 211 49 209 48 181 37 149 25 120 25 89 45 72 103 84 179 75 198 76 252 64 272 81 293 103 285 121 255 121 242 118 224 167 +Polygon -7500403 true true 73 210 86 251 62 249 48 208 +Polygon -7500403 true true 25 114 16 195 9 204 23 213 25 200 39 123 + +cylinder +false +0 +Circle -7500403 true true 0 0 300 + +dot +false +0 +Circle -7500403 true true 90 90 120 + +face happy +false +0 +Circle -7500403 true true 8 8 285 +Circle -16777216 true false 60 75 60 +Circle -16777216 true false 180 75 60 +Polygon -16777216 true false 150 255 90 239 62 213 47 191 67 179 90 203 109 218 150 225 192 218 210 203 227 181 251 194 236 217 212 240 + +face neutral +false +0 +Circle -7500403 true true 8 7 285 +Circle -16777216 true false 60 75 60 +Circle -16777216 true false 180 75 60 +Rectangle -16777216 true false 60 195 240 225 + +face sad +false +0 +Circle -7500403 true true 8 8 285 +Circle -16777216 true false 60 75 60 +Circle -16777216 true false 180 75 60 +Polygon -16777216 true false 150 168 90 184 62 210 47 232 67 244 90 220 109 205 150 198 192 205 210 220 227 242 251 229 236 206 212 183 + +fish +false +0 +Polygon -1 true false 44 131 21 87 15 86 0 120 15 150 0 180 13 214 20 212 45 166 +Polygon -1 true false 135 195 119 235 95 218 76 210 46 204 60 165 +Polygon -1 true false 75 45 83 77 71 103 86 114 166 78 135 60 +Polygon -7500403 true true 30 136 151 77 226 81 280 119 292 146 292 160 287 170 270 195 195 210 151 212 30 166 +Circle -16777216 true false 215 106 30 + +flag +false +0 +Rectangle -7500403 true true 60 15 75 300 +Polygon -7500403 true true 90 150 270 90 90 30 +Line -7500403 true 75 135 90 135 +Line -7500403 true 75 45 90 45 + +flower +false +0 +Polygon -10899396 true false 135 120 165 165 180 210 180 240 150 300 165 300 195 240 195 195 165 135 +Circle -7500403 true true 85 132 38 +Circle -7500403 true true 130 147 38 +Circle -7500403 true true 192 85 38 +Circle -7500403 true true 85 40 38 +Circle -7500403 true true 177 40 38 +Circle -7500403 true true 177 132 38 +Circle -7500403 true true 70 85 38 +Circle -7500403 true true 130 25 38 +Circle -7500403 true true 96 51 108 +Circle -16777216 true false 113 68 74 +Polygon -10899396 true false 189 233 219 188 249 173 279 188 234 218 +Polygon -10899396 true false 180 255 150 210 105 210 75 240 135 240 + +house +false +0 +Rectangle -7500403 true true 45 120 255 285 +Rectangle -16777216 true false 120 210 180 285 +Polygon -7500403 true true 15 120 150 15 285 120 +Line -16777216 false 30 120 270 120 + +leaf +false +0 +Polygon -7500403 true true 150 210 135 195 120 210 60 210 30 195 60 180 60 165 15 135 30 120 15 105 40 104 45 90 60 90 90 105 105 120 120 120 105 60 120 60 135 30 150 15 165 30 180 60 195 60 180 120 195 120 210 105 240 90 255 90 263 104 285 105 270 120 285 135 240 165 240 180 270 195 240 210 180 210 165 195 +Polygon -7500403 true true 135 195 135 240 120 255 105 255 105 285 135 285 165 240 165 195 + +line +true +0 +Line -7500403 true 150 0 150 300 + +line half +true +0 +Line -7500403 true 150 0 150 150 + +pentagon +false +0 +Polygon -7500403 true true 150 15 15 120 60 285 240 285 285 120 + +person +false +0 +Circle -7500403 true true 110 5 80 +Polygon -7500403 true true 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 +Rectangle -7500403 true true 127 79 172 94 +Polygon -7500403 true true 195 90 240 150 225 180 165 105 +Polygon -7500403 true true 105 90 60 150 75 180 135 105 + +plant +false +0 +Rectangle -7500403 true true 135 90 165 300 +Polygon -7500403 true true 135 255 90 210 45 195 75 255 135 285 +Polygon -7500403 true true 165 255 210 210 255 195 225 255 165 285 +Polygon -7500403 true true 135 180 90 135 45 120 75 180 135 210 +Polygon -7500403 true true 165 180 165 210 225 180 255 120 210 135 +Polygon -7500403 true true 135 105 90 60 45 45 75 105 135 135 +Polygon -7500403 true true 165 105 165 135 225 105 255 45 210 60 +Polygon -7500403 true true 135 90 120 45 150 15 180 45 165 90 + +sheep +false +15 +Circle -1 true true 203 65 88 +Circle -1 true true 70 65 162 +Circle -1 true true 150 105 120 +Polygon -7500403 true false 218 120 240 165 255 165 278 120 +Circle -7500403 true false 214 72 67 +Rectangle -1 true true 164 223 179 298 +Polygon -1 true true 45 285 30 285 30 240 15 195 45 210 +Circle -1 true true 3 83 150 +Rectangle -1 true true 65 221 80 296 +Polygon -1 true true 195 285 210 285 210 240 240 210 195 210 +Polygon -7500403 true false 276 85 285 105 302 99 294 83 +Polygon -7500403 true false 219 85 210 105 193 99 201 83 + +square +false +0 +Rectangle -7500403 true true 30 30 270 270 + +square 2 +false +0 +Rectangle -7500403 true true 30 30 270 270 +Rectangle -16777216 true false 60 60 240 240 + +star +false +0 +Polygon -7500403 true true 151 1 185 108 298 108 207 175 242 282 151 216 59 282 94 175 3 108 116 108 + +target +false +0 +Circle -7500403 true true 0 0 300 +Circle -16777216 true false 30 30 240 +Circle -7500403 true true 60 60 180 +Circle -16777216 true false 90 90 120 +Circle -7500403 true true 120 120 60 + +tree +false +0 +Circle -7500403 true true 118 3 94 +Rectangle -6459832 true false 120 195 180 300 +Circle -7500403 true true 65 21 108 +Circle -7500403 true true 116 41 127 +Circle -7500403 true true 45 90 120 +Circle -7500403 true true 104 74 152 + +triangle +false +0 +Polygon -7500403 true true 150 30 15 255 285 255 + +triangle 2 +false +0 +Polygon -7500403 true true 150 30 15 255 285 255 +Polygon -16777216 true false 151 99 225 223 75 224 + +truck +false +0 +Rectangle -7500403 true true 4 45 195 187 +Polygon -7500403 true true 296 193 296 150 259 134 244 104 208 104 207 194 +Rectangle -1 true false 195 60 195 105 +Polygon -16777216 true false 238 112 252 141 219 141 218 112 +Circle -16777216 true false 234 174 42 +Rectangle -7500403 true true 181 185 214 194 +Circle -16777216 true false 144 174 42 +Circle -16777216 true false 24 174 42 +Circle -7500403 false true 24 174 42 +Circle -7500403 false true 144 174 42 +Circle -7500403 false true 234 174 42 + +turtle +true +0 +Polygon -10899396 true false 215 204 240 233 246 254 228 266 215 252 193 210 +Polygon -10899396 true false 195 90 225 75 245 75 260 89 269 108 261 124 240 105 225 105 210 105 +Polygon -10899396 true false 105 90 75 75 55 75 40 89 31 108 39 124 60 105 75 105 90 105 +Polygon -10899396 true false 132 85 134 64 107 51 108 17 150 2 192 18 192 52 169 65 172 87 +Polygon -10899396 true false 85 204 60 233 54 254 72 266 85 252 107 210 +Polygon -7500403 true true 119 75 179 75 209 101 224 135 220 225 175 261 128 261 81 224 74 135 88 99 + +wheel +false +0 +Circle -7500403 true true 3 3 294 +Circle -16777216 true false 30 30 240 +Line -7500403 true 150 285 150 15 +Line -7500403 true 15 150 285 150 +Circle -7500403 true true 120 120 60 +Line -7500403 true 216 40 79 269 +Line -7500403 true 40 84 269 221 +Line -7500403 true 40 216 269 79 +Line -7500403 true 84 40 221 269 + +wolf +false +0 +Polygon -16777216 true false 253 133 245 131 245 133 +Polygon -7500403 true true 2 194 13 197 30 191 38 193 38 205 20 226 20 257 27 265 38 266 40 260 31 253 31 230 60 206 68 198 75 209 66 228 65 243 82 261 84 268 100 267 103 261 77 239 79 231 100 207 98 196 119 201 143 202 160 195 166 210 172 213 173 238 167 251 160 248 154 265 169 264 178 247 186 240 198 260 200 271 217 271 219 262 207 258 195 230 192 198 210 184 227 164 242 144 259 145 284 151 277 141 293 140 299 134 297 127 273 119 270 105 +Polygon -7500403 true true -1 195 14 180 36 166 40 153 53 140 82 131 134 133 159 126 188 115 227 108 236 102 238 98 268 86 269 92 281 87 269 103 269 113 + +x +false +0 +Polygon -7500403 true true 270 75 225 30 30 225 75 270 +Polygon -7500403 true true 30 75 75 30 270 225 225 270 +@#$#@#$#@ +NetLogo 6.2.2 +@#$#@#$#@ +@#$#@#$#@ +@#$#@#$#@ +@#$#@#$#@ +@#$#@#$#@ +default +0.0 +-0.2 0 0.0 1.0 +0.0 1 1.0 0.0 +0.2 0 0.0 1.0 +link direction +true +0 +Line -7500403 true 150 150 90 180 +Line -7500403 true 150 150 210 180 +@#$#@#$#@ +0 +@#$#@#$#@ diff --git a/1870-Schliemann-001/netlogo_implementation/TroyDestroy_agents.nlogo b/1870-Schliemann-001/netlogo_implementation/TroyDestroy_agents.nlogo new file mode 100644 index 0000000..c65748f --- /dev/null +++ b/1870-Schliemann-001/netlogo_implementation/TroyDestroy_agents.nlogo @@ -0,0 +1,549 @@ +globals +[ + ;;; input + greeks-strength trojans-strength + destruction-rate + init-troy-health + + ;;; output + troy-health +] + +breed [ cities city ] +breed [ armies army ] + +cities-own [ name health ] + +armies-own [ name strength ] + +to setup + + clear-all + + ;;; load input from interface + set greeks-strength par_greeks-strength + set trojans-strength par_trojans-strength + set destruction-rate par_destruction-rate + + set init-troy-health 100 + + ;;; create agents + create-cities 1 + [ + set name "Troy" + set health init-troy-health + ] + + create-armies 1 + [ + set name "Greeks" + set strength par_greeks-strength + ] + + create-armies 1 + [ + set name "Trojans" + set strength par_trojans-strength + ] + + reset-ticks + +end + +to resolve-trojan-war + + ;;; Resolve the destruction level based on army strengths and a destruction rate and update city health + ask cities with [ name = "Troy" ] + [ + let greeks-strength-total sum [strength] of armies with [ name = "Greeks" ] + let trojans-strength-total sum [strength] of armies with [ name = "Trojans" ] + set health (get-effect-of-war health greeks-strength-total trojans-strength-total destruction-rate) + ] + +end + +to-report get-effect-of-war [ cityHealth aggressorStrength defenderStrength destructionRate ] + + ;;; Return the destruction level based on army strengths and a destruction rate + report max (list 0 (cityHealth - destructionRate * (aggressorStrength ^ 2) / (defenderStrength))) + +end +@#$#@#$#@ +GRAPHICS-WINDOW +210 +10 +647 +448 +-1 +-1 +13.0 +1 +10 +1 +1 +1 +0 +1 +1 +1 +-16 +16 +-16 +16 +0 +0 +1 +ticks +30.0 + +SLIDER +25 +50 +197 +83 +par_greeks-strength +par_greeks-strength +0 +100 +100.0 +1 +1 +NIL +HORIZONTAL + +SLIDER +26 +91 +198 +124 +par_trojans-strength +par_trojans-strength +0 +100 +50.0 +1 +1 +NIL +HORIZONTAL + +SLIDER +25 +135 +202 +168 +par_destruction-rate +par_destruction-rate +0 +1 +0.42 +0.01 +1 +NIL +HORIZONTAL + +MONITOR +72 +193 +150 +238 +Troy's health +sum [health] of cities with [name = \"Troy\"] +17 +1 +11 + +BUTTON +73 +10 +208 +43 +NIL +resolve-trojan-war +NIL +1 +T +OBSERVER +NIL +NIL +NIL +NIL +1 + +BUTTON +6 +10 +69 +43 +NIL +setup +NIL +1 +T +OBSERVER +NIL +NIL +NIL +NIL +1 + +@#$#@#$#@ +## WHAT IS IT? + +(a general understanding of what the model is trying to show or explain) + +## HOW IT WORKS + +(what rules the agents use to create the overall behavior of the model) + +## HOW TO USE IT + +(how to use the model, including a description of each of the items in the Interface tab) + +## THINGS TO NOTICE + +(suggested things for the user to notice while running the model) + +## THINGS TO TRY + +(suggested things for the user to try to do (move sliders, switches, etc.) with the model) + +## EXTENDING THE MODEL + +(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.) + +## NETLOGO FEATURES + +(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features) + +## RELATED MODELS + +(models in the NetLogo Models Library and elsewhere which are of related interest) + +## CREDITS AND REFERENCES + +(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links) +@#$#@#$#@ +default +true +0 +Polygon -7500403 true true 150 5 40 250 150 205 260 250 + +airplane +true +0 +Polygon -7500403 true true 150 0 135 15 120 60 120 105 15 165 15 195 120 180 135 240 105 270 120 285 150 270 180 285 210 270 165 240 180 180 285 195 285 165 180 105 180 60 165 15 + +arrow +true +0 +Polygon -7500403 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150 + +box +false +0 +Polygon -7500403 true true 150 285 285 225 285 75 150 135 +Polygon -7500403 true true 150 135 15 75 150 15 285 75 +Polygon -7500403 true true 15 75 15 225 150 285 150 135 +Line -16777216 false 150 285 150 135 +Line -16777216 false 150 135 15 75 +Line -16777216 false 150 135 285 75 + +bug +true +0 +Circle -7500403 true true 96 182 108 +Circle -7500403 true true 110 127 80 +Circle -7500403 true true 110 75 80 +Line -7500403 true 150 100 80 30 +Line -7500403 true 150 100 220 30 + +butterfly +true +0 +Polygon -7500403 true true 150 165 209 199 225 225 225 255 195 270 165 255 150 240 +Polygon -7500403 true true 150 165 89 198 75 225 75 255 105 270 135 255 150 240 +Polygon -7500403 true true 139 148 100 105 55 90 25 90 10 105 10 135 25 180 40 195 85 194 139 163 +Polygon -7500403 true true 162 150 200 105 245 90 275 90 290 105 290 135 275 180 260 195 215 195 162 165 +Polygon -16777216 true false 150 255 135 225 120 150 135 120 150 105 165 120 180 150 165 225 +Circle -16777216 true false 135 90 30 +Line -16777216 false 150 105 195 60 +Line -16777216 false 150 105 105 60 + +car +false +0 +Polygon -7500403 true true 300 180 279 164 261 144 240 135 226 132 213 106 203 84 185 63 159 50 135 50 75 60 0 150 0 165 0 225 300 225 300 180 +Circle -16777216 true false 180 180 90 +Circle -16777216 true false 30 180 90 +Polygon -16777216 true false 162 80 132 78 134 135 209 135 194 105 189 96 180 89 +Circle -7500403 true true 47 195 58 +Circle -7500403 true true 195 195 58 + +circle +false +0 +Circle -7500403 true true 0 0 300 + +circle 2 +false +0 +Circle -7500403 true true 0 0 300 +Circle -16777216 true false 30 30 240 + +cow +false +0 +Polygon -7500403 true true 200 193 197 249 179 249 177 196 166 187 140 189 93 191 78 179 72 211 49 209 48 181 37 149 25 120 25 89 45 72 103 84 179 75 198 76 252 64 272 81 293 103 285 121 255 121 242 118 224 167 +Polygon -7500403 true true 73 210 86 251 62 249 48 208 +Polygon -7500403 true true 25 114 16 195 9 204 23 213 25 200 39 123 + +cylinder +false +0 +Circle -7500403 true true 0 0 300 + +dot +false +0 +Circle -7500403 true true 90 90 120 + +face happy +false +0 +Circle -7500403 true true 8 8 285 +Circle -16777216 true false 60 75 60 +Circle -16777216 true false 180 75 60 +Polygon -16777216 true false 150 255 90 239 62 213 47 191 67 179 90 203 109 218 150 225 192 218 210 203 227 181 251 194 236 217 212 240 + +face neutral +false +0 +Circle -7500403 true true 8 7 285 +Circle -16777216 true false 60 75 60 +Circle -16777216 true false 180 75 60 +Rectangle -16777216 true false 60 195 240 225 + +face sad +false +0 +Circle -7500403 true true 8 8 285 +Circle -16777216 true false 60 75 60 +Circle -16777216 true false 180 75 60 +Polygon -16777216 true false 150 168 90 184 62 210 47 232 67 244 90 220 109 205 150 198 192 205 210 220 227 242 251 229 236 206 212 183 + +fish +false +0 +Polygon -1 true false 44 131 21 87 15 86 0 120 15 150 0 180 13 214 20 212 45 166 +Polygon -1 true false 135 195 119 235 95 218 76 210 46 204 60 165 +Polygon -1 true false 75 45 83 77 71 103 86 114 166 78 135 60 +Polygon -7500403 true true 30 136 151 77 226 81 280 119 292 146 292 160 287 170 270 195 195 210 151 212 30 166 +Circle -16777216 true false 215 106 30 + +flag +false +0 +Rectangle -7500403 true true 60 15 75 300 +Polygon -7500403 true true 90 150 270 90 90 30 +Line -7500403 true 75 135 90 135 +Line -7500403 true 75 45 90 45 + +flower +false +0 +Polygon -10899396 true false 135 120 165 165 180 210 180 240 150 300 165 300 195 240 195 195 165 135 +Circle -7500403 true true 85 132 38 +Circle -7500403 true true 130 147 38 +Circle -7500403 true true 192 85 38 +Circle -7500403 true true 85 40 38 +Circle -7500403 true true 177 40 38 +Circle -7500403 true true 177 132 38 +Circle -7500403 true true 70 85 38 +Circle -7500403 true true 130 25 38 +Circle -7500403 true true 96 51 108 +Circle -16777216 true false 113 68 74 +Polygon -10899396 true false 189 233 219 188 249 173 279 188 234 218 +Polygon -10899396 true false 180 255 150 210 105 210 75 240 135 240 + +house +false +0 +Rectangle -7500403 true true 45 120 255 285 +Rectangle -16777216 true false 120 210 180 285 +Polygon -7500403 true true 15 120 150 15 285 120 +Line -16777216 false 30 120 270 120 + +leaf +false +0 +Polygon -7500403 true true 150 210 135 195 120 210 60 210 30 195 60 180 60 165 15 135 30 120 15 105 40 104 45 90 60 90 90 105 105 120 120 120 105 60 120 60 135 30 150 15 165 30 180 60 195 60 180 120 195 120 210 105 240 90 255 90 263 104 285 105 270 120 285 135 240 165 240 180 270 195 240 210 180 210 165 195 +Polygon -7500403 true true 135 195 135 240 120 255 105 255 105 285 135 285 165 240 165 195 + +line +true +0 +Line -7500403 true 150 0 150 300 + +line half +true +0 +Line -7500403 true 150 0 150 150 + +pentagon +false +0 +Polygon -7500403 true true 150 15 15 120 60 285 240 285 285 120 + +person +false +0 +Circle -7500403 true true 110 5 80 +Polygon -7500403 true true 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 +Rectangle -7500403 true true 127 79 172 94 +Polygon -7500403 true true 195 90 240 150 225 180 165 105 +Polygon -7500403 true true 105 90 60 150 75 180 135 105 + +plant +false +0 +Rectangle -7500403 true true 135 90 165 300 +Polygon -7500403 true true 135 255 90 210 45 195 75 255 135 285 +Polygon -7500403 true true 165 255 210 210 255 195 225 255 165 285 +Polygon -7500403 true true 135 180 90 135 45 120 75 180 135 210 +Polygon -7500403 true true 165 180 165 210 225 180 255 120 210 135 +Polygon -7500403 true true 135 105 90 60 45 45 75 105 135 135 +Polygon -7500403 true true 165 105 165 135 225 105 255 45 210 60 +Polygon -7500403 true true 135 90 120 45 150 15 180 45 165 90 + +sheep +false +15 +Circle -1 true true 203 65 88 +Circle -1 true true 70 65 162 +Circle -1 true true 150 105 120 +Polygon -7500403 true false 218 120 240 165 255 165 278 120 +Circle -7500403 true false 214 72 67 +Rectangle -1 true true 164 223 179 298 +Polygon -1 true true 45 285 30 285 30 240 15 195 45 210 +Circle -1 true true 3 83 150 +Rectangle -1 true true 65 221 80 296 +Polygon -1 true true 195 285 210 285 210 240 240 210 195 210 +Polygon -7500403 true false 276 85 285 105 302 99 294 83 +Polygon -7500403 true false 219 85 210 105 193 99 201 83 + +square +false +0 +Rectangle -7500403 true true 30 30 270 270 + +square 2 +false +0 +Rectangle -7500403 true true 30 30 270 270 +Rectangle -16777216 true false 60 60 240 240 + +star +false +0 +Polygon -7500403 true true 151 1 185 108 298 108 207 175 242 282 151 216 59 282 94 175 3 108 116 108 + +target +false +0 +Circle -7500403 true true 0 0 300 +Circle -16777216 true false 30 30 240 +Circle -7500403 true true 60 60 180 +Circle -16777216 true false 90 90 120 +Circle -7500403 true true 120 120 60 + +tree +false +0 +Circle -7500403 true true 118 3 94 +Rectangle -6459832 true false 120 195 180 300 +Circle -7500403 true true 65 21 108 +Circle -7500403 true true 116 41 127 +Circle -7500403 true true 45 90 120 +Circle -7500403 true true 104 74 152 + +triangle +false +0 +Polygon -7500403 true true 150 30 15 255 285 255 + +triangle 2 +false +0 +Polygon -7500403 true true 150 30 15 255 285 255 +Polygon -16777216 true false 151 99 225 223 75 224 + +truck +false +0 +Rectangle -7500403 true true 4 45 195 187 +Polygon -7500403 true true 296 193 296 150 259 134 244 104 208 104 207 194 +Rectangle -1 true false 195 60 195 105 +Polygon -16777216 true false 238 112 252 141 219 141 218 112 +Circle -16777216 true false 234 174 42 +Rectangle -7500403 true true 181 185 214 194 +Circle -16777216 true false 144 174 42 +Circle -16777216 true false 24 174 42 +Circle -7500403 false true 24 174 42 +Circle -7500403 false true 144 174 42 +Circle -7500403 false true 234 174 42 + +turtle +true +0 +Polygon -10899396 true false 215 204 240 233 246 254 228 266 215 252 193 210 +Polygon -10899396 true false 195 90 225 75 245 75 260 89 269 108 261 124 240 105 225 105 210 105 +Polygon -10899396 true false 105 90 75 75 55 75 40 89 31 108 39 124 60 105 75 105 90 105 +Polygon -10899396 true false 132 85 134 64 107 51 108 17 150 2 192 18 192 52 169 65 172 87 +Polygon -10899396 true false 85 204 60 233 54 254 72 266 85 252 107 210 +Polygon -7500403 true true 119 75 179 75 209 101 224 135 220 225 175 261 128 261 81 224 74 135 88 99 + +wheel +false +0 +Circle -7500403 true true 3 3 294 +Circle -16777216 true false 30 30 240 +Line -7500403 true 150 285 150 15 +Line -7500403 true 15 150 285 150 +Circle -7500403 true true 120 120 60 +Line -7500403 true 216 40 79 269 +Line -7500403 true 40 84 269 221 +Line -7500403 true 40 216 269 79 +Line -7500403 true 84 40 221 269 + +wolf +false +0 +Polygon -16777216 true false 253 133 245 131 245 133 +Polygon -7500403 true true 2 194 13 197 30 191 38 193 38 205 20 226 20 257 27 265 38 266 40 260 31 253 31 230 60 206 68 198 75 209 66 228 65 243 82 261 84 268 100 267 103 261 77 239 79 231 100 207 98 196 119 201 143 202 160 195 166 210 172 213 173 238 167 251 160 248 154 265 169 264 178 247 186 240 198 260 200 271 217 271 219 262 207 258 195 230 192 198 210 184 227 164 242 144 259 145 284 151 277 141 293 140 299 134 297 127 273 119 270 105 +Polygon -7500403 true true -1 195 14 180 36 166 40 153 53 140 82 131 134 133 159 126 188 115 227 108 236 102 238 98 268 86 269 92 281 87 269 103 269 113 + +x +false +0 +Polygon -7500403 true true 270 75 225 30 30 225 75 270 +Polygon -7500403 true true 30 75 75 30 270 225 225 270 +@#$#@#$#@ +NetLogo 6.2.2 +@#$#@#$#@ +@#$#@#$#@ +@#$#@#$#@ +@#$#@#$#@ +@#$#@#$#@ +default +0.0 +-0.2 0 0.0 1.0 +0.0 1 1.0 0.0 +0.2 0 0.0 1.0 +link direction +true +0 +Line -7500403 true 150 150 90 180 +Line -7500403 true 150 150 210 180 +@#$#@#$#@ +0 +@#$#@#$#@ diff --git a/1870-Schliemann-001/netlogo_implementation/documentation/TroyDestroy interface.png b/1870-Schliemann-001/netlogo_implementation/documentation/TroyDestroy interface.png new file mode 100644 index 0000000000000000000000000000000000000000..45f7f80a95f35c2f50d568fbd07f191c0d132f8d GIT binary patch literal 8644 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 Q1YCy?+WcH<;ePqQ03Me}E&u=k literal 0 HcmV?d00001 diff --git a/1870-Schliemann-001/netlogo_implementation/documentation/TroyDestroy_agents interface.png b/1870-Schliemann-001/netlogo_implementation/documentation/TroyDestroy_agents interface.png new file mode 100644 index 0000000000000000000000000000000000000000..49cec525c2109f2b539fdb7098c768ac36fab252 GIT binary patch literal 9047 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 Date: Fri, 26 Jan 2024 17:29:46 +0100 Subject: [PATCH 02/24] Update NASSA.yml --- 1870-Schliemann-001/NASSA.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/1870-Schliemann-001/NASSA.yml b/1870-Schliemann-001/NASSA.yml index 1ba3aa4..18b5897 100644 --- a/1870-Schliemann-001/NASSA.yml +++ b/1870-Schliemann-001/NASSA.yml @@ -7,6 +7,7 @@ contributors: - name: Schliemann, Heinrich roles: [ "Author", "Copyright Holder" ] email: schliemann@email.org + orcid: 0000-0002-1825-0097 - name: Angourakis, Andreas roles: [ "Author", "Copyright Holder", "Creator" ] email: andros.spica@gmail.com From 33ccc4b6f10c85dc994c623ffe30aa5e48dc0d72 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Mon, 29 Jan 2024 17:53:57 +0100 Subject: [PATCH 03/24] Update NASSA.yml --- 1870-Schliemann-001/NASSA.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1870-Schliemann-001/NASSA.yml b/1870-Schliemann-001/NASSA.yml index 18b5897..921d98f 100644 --- a/1870-Schliemann-001/NASSA.yml +++ b/1870-Schliemann-001/NASSA.yml @@ -15,7 +15,7 @@ contributors: lastUpdateDate: 1871-10-20 description: > This module takes the strength of two armies, one aggressor and another defender, and calculates the level of destruction of the defenders' city. The destructive effect over the defenders' city is proportional to the two contending strengths and a constant rate per unit of strength of the aggressor matched by the defender. -relatedModules: [ 1874-NASSA-001 ] +relatedModules: [ 1874-Schliemann-001 ] references: moduleReferences: [ homers-iliad ] domainKeywords: From 9466042903a4de8e0c74986e8d52f23c36525c0e Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Mon, 29 Jan 2024 18:07:26 +0100 Subject: [PATCH 04/24] Update NASSA.yml --- 1870-Schliemann-001/NASSA.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/1870-Schliemann-001/NASSA.yml b/1870-Schliemann-001/NASSA.yml index 921d98f..62a8065 100644 --- a/1870-Schliemann-001/NASSA.yml +++ b/1870-Schliemann-001/NASSA.yml @@ -18,6 +18,7 @@ description: > relatedModules: [ 1874-Schliemann-001 ] references: moduleReferences: [ homers-iliad ] + useExampleReferences: [ nassa_guide_submissions ] domainKeywords: regions: - Global From 04ddd2d4c744e51c5ccb7eda625726b1273d7787 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Mon, 29 Jan 2024 18:08:11 +0100 Subject: [PATCH 05/24] Update references.bib --- 1870-Schliemann-001/references.bib | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/1870-Schliemann-001/references.bib b/1870-Schliemann-001/references.bib index 34ae63a..6858af8 100644 --- a/1870-Schliemann-001/references.bib +++ b/1870-Schliemann-001/references.bib @@ -7,3 +7,11 @@ @book{homer_iliad_1865 year = {1865}, note = {Google-Books-ID: EEYbAAAAYAAJ}, } +@misc{nassa_guide_submissions, + title = {Guide for submissions | NASSA}, + url = {https://archaeology-abm.github.io/NASSA-hub/NASSA-hub/guide-for-submissions.html}, + abstract = {Network for Agent-based modelling of Socio-ecological Systems in Archaeology}, + language = {en-US}, + urldate = {2024-01-29}, + journal = {NASSA}, +} From a47dc42f38c03ab43e4314fc1ae8a6fe7037024a Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Mon, 29 Jan 2024 18:11:06 +0100 Subject: [PATCH 06/24] Update NASSA.yml --- 1870-Schliemann-001/NASSA.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1870-Schliemann-001/NASSA.yml b/1870-Schliemann-001/NASSA.yml index 62a8065..105f19e 100644 --- a/1870-Schliemann-001/NASSA.yml +++ b/1870-Schliemann-001/NASSA.yml @@ -17,7 +17,7 @@ description: > This module takes the strength of two armies, one aggressor and another defender, and calculates the level of destruction of the defenders' city. The destructive effect over the defenders' city is proportional to the two contending strengths and a constant rate per unit of strength of the aggressor matched by the defender. relatedModules: [ 1874-Schliemann-001 ] references: - moduleReferences: [ homers-iliad ] + moduleReferences: [ homer_iliad_1865 ] useExampleReferences: [ nassa_guide_submissions ] domainKeywords: regions: From a128b5082cf9a40ceae14a347000bf15b4b87225 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Fri, 16 Aug 2024 19:09:27 +0200 Subject: [PATCH 07/24] better zoom control in graph --- website_generator/package_page_template.Rmd | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website_generator/package_page_template.Rmd b/website_generator/package_page_template.Rmd index 2437263..8d65e3a 100644 --- a/website_generator/package_page_template.Rmd +++ b/website_generator/package_page_template.Rmd @@ -175,6 +175,8 @@ badge_series <- function(x, type = 'badgeLanguage') {

Input and output

+

Click on nodes for details

+ ```{r in_and_out, results='asis'} if (!is.null(nassa_yml$inputs) & !is.null(nassa_yml$outputs)) { @@ -244,6 +246,10 @@ if (!is.null(nassa_yml$inputs) & !is.null(nassa_yml$outputs)) { # initialise zoom in proportion to the number of nodes visEvents(startStabilizing = paste0("function() {this.moveTo({scale:", initZoomAdj, "})}"), type = "once") %>% visPhysics(stabilization = FALSE) %>% visInteraction( + zoomView = TRUE, + navigationButtons = TRUE, # Optional: adds zoom in/out buttons + keyboard = TRUE, # Optional: allows keyboard control + zoomSpeed = 0.5, # Adjust this value to control the zoom speed tooltipStyle = 'position: fixed;visibility:hidden;padding: 5px; font-family: verdana;font-size:14px;font-color:#000000;background-color: #f5f4ed; From e31a8c61dabb5f098e57806f274af741e683c24d Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 18:32:11 +0200 Subject: [PATCH 08/24] keyword badges filter v1 --- website_generator/generate_source.R | 20 ++++++++++-- website_generator/website_source/index.Rmd | 35 +++++++-------------- website_generator/website_source/styles.css | 18 +++++++---- 3 files changed, 42 insertions(+), 31 deletions(-) diff --git a/website_generator/generate_source.R b/website_generator/generate_source.R index f1aacf0..edd7f66 100644 --- a/website_generator/generate_source.R +++ b/website_generator/generate_source.R @@ -18,9 +18,25 @@ extract_names <- function(listOfContributorsData) { return(lapply(listOfContributorsData, function(x) x$name)) } +# badge_series <- function(x, type = 'badgeDefault') { +# if (length(x) > 0) { +# prefix <- paste0('') +# return(paste(prefix, x, '', collapse = ' ')) +# } else { +# return('') +# } +# } +# badge_series <- function(x, type = 'badgeDefault') { +# if (length(x) > 0) { +# prefix <- paste0('') +# return(paste(prefix, x, '', collapse = ' ')) +# } else { +# return('') +# } +# } badge_series <- function(x, type = 'badgeDefault') { if (length(x) > 0) { - prefix <- paste0('') + prefix <- paste0('') return(paste(prefix, x, '', collapse = ' ')) } else { return('') @@ -47,7 +63,7 @@ nassa_table <- purrr::map_dfr( badge_series(nassa_yml$modellingKeywords, type = 'badgeModelling'), badge_series(nassa_yml$programmingKeywords, type = 'badgeProgramming'), collapse = ' '), - `View` = paste0("View"), + `View` = paste0(""), ) } ) diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index 39382d9..e8d1c4c 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -14,6 +14,7 @@ +
```{r, echo=FALSE} nassa_table_print <- nassa_table[, c('lastUpdateDate', 'contributors', 'title', 'moduleVersion', 'Keywords', @@ -44,30 +45,15 @@ DT::datatable(nassa_table_print, colnames = colDisplayNames) %>% #DT::formatStyle('id', fontWeight = 'bold', width = '200px') %>% DT::formatStyle('lastUpdateDate', width = '150px') %>% - DT::formatStyle(c('moduleVersion', 'View'), textAlign = 'center', columnWidth = '50px') %>% - DT::formatStyle(0, target = 'row', - fontStyle = DT::styleRow(1, 'italic'), - color = DT::styleRow(1, 'grey')) - -# kable approach: -# knitr::kable(nassa_table[, c("id", "title", "moduleVersion", "View")], -# col.names = c("ID", "Title", "Current version", ""), -# align = c('l', 'l', 'c', 'c'), -# format = "html", -# table.attr = "class=\'moduleList\'" -# ) %>% kableExtra::kable_styling() %>% kableExtra::column_spec( -# # style specific for the ID column -# column = 1, -# width = '200px', -# bold = TRUE, -# border_right = TRUE -# ) %>% kableExtra::row_spec( -# # style specific for TEMPLATE module rows -# row = c(1), # add more row numbers when adding new templates to the library. TO-DO: possibly code an automatic filter -# color = 'grey', -# italic = TRUE -#) %>% as.character() + DT::formatStyle('moduleVersion', textAlign = 'center', columnWidth = '50px') %>% + DT::formatStyle('View', textAlign = 'center', verticalAlign = 'middle', columnWidth = '50px', fontSize = '200%') %>% + DT::formatStyle(0, target = 'row', + fontStyle = DT::styleRow(1, 'italic'), + color = DT::styleRow(1, 'grey')) ``` +
+ + @@ -95,5 +81,8 @@ DT::datatable(nassa_table_print, +
Programming + | +
diff --git a/website_generator/website_source/styles.css b/website_generator/website_source/styles.css index f754c9e..f734c24 100644 --- a/website_generator/website_source/styles.css +++ b/website_generator/website_source/styles.css @@ -2,11 +2,6 @@ body { background-color: white; } -.moduleList { - margin: auto; - border-top: 1px solid #666; - border-bottom: 1px solid #666; -} table thead th { border-bottom: 1px solid #ddd; } th, td { padding: 5px; } thead, tfoot, tr:nth-child(even) { background: #eee; } @@ -28,10 +23,16 @@ thead, tfoot, tr:nth-child(even) { background: #eee; } padding: 4px 8px; text-align: center; border-radius: 5px; + cursor: pointer; +} + +.badge:hover { + background-color: #e0e0e0; /* Light gray background on hover */ + color: #000; /* Darken text color on hover */ } #badgeModuleType { - background-color: #03989E; + background-color: #03989e; } #badgeLanguage { @@ -86,3 +87,8 @@ thead, tfoot, tr:nth-child(even) { background: #eee; } text-align: center; background-color: transparent; } + +a { + color: #03989e; + word-break: break-word; +} \ No newline at end of file From 5053262d977566bf2519014042d57c93b20a58b9 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 18:52:50 +0200 Subject: [PATCH 09/24] js include fix --- website_generator/website_source/index.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index e8d1c4c..986271a 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -53,7 +53,7 @@ DT::datatable(nassa_table_print, ``` - + From b3c807a53172b8acc56a08dfabadf04243306ca8 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 18:55:52 +0200 Subject: [PATCH 10/24] cleaning --- website_generator/generate_source.R | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/website_generator/generate_source.R b/website_generator/generate_source.R index edd7f66..25d08cd 100644 --- a/website_generator/generate_source.R +++ b/website_generator/generate_source.R @@ -18,22 +18,6 @@ extract_names <- function(listOfContributorsData) { return(lapply(listOfContributorsData, function(x) x$name)) } -# badge_series <- function(x, type = 'badgeDefault') { -# if (length(x) > 0) { -# prefix <- paste0('') -# return(paste(prefix, x, '', collapse = ' ')) -# } else { -# return('') -# } -# } -# badge_series <- function(x, type = 'badgeDefault') { -# if (length(x) > 0) { -# prefix <- paste0('') -# return(paste(prefix, x, '', collapse = ' ')) -# } else { -# return('') -# } -# } badge_series <- function(x, type = 'badgeDefault') { if (length(x) > 0) { prefix <- paste0('') From 7ae33639cb1c23096af3d112b99026d6742675fe Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 19:08:47 +0200 Subject: [PATCH 11/24] ammend gitignore --- website_generator/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/website_generator/.gitignore b/website_generator/.gitignore index 918acc0..75f6bae 100644 --- a/website_generator/.gitignore +++ b/website_generator/.gitignore @@ -4,6 +4,7 @@ !/website_source/index.Rmd !/website_source/dummy.bib !/website_source/images/* +!/website_source/js/* # History files .Rhistory From 60f5fc5da8dc6e924a1323351422810df7d22c61 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 19:24:27 +0200 Subject: [PATCH 12/24] fix js script include v2 --- website_generator/.gitignore | 2 +- website_generator/website_source/index.Rmd | 2 +- .../website_source/selectKeyword.js | 66 +++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 website_generator/website_source/selectKeyword.js diff --git a/website_generator/.gitignore b/website_generator/.gitignore index 75f6bae..d2d367d 100644 --- a/website_generator/.gitignore +++ b/website_generator/.gitignore @@ -4,7 +4,7 @@ !/website_source/index.Rmd !/website_source/dummy.bib !/website_source/images/* -!/website_source/js/* +!/website_source/selectKeyword.js # History files .Rhistory diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index 986271a..56c3d21 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -53,7 +53,7 @@ DT::datatable(nassa_table_print, ``` - +
diff --git a/website_generator/website_source/selectKeyword.js b/website_generator/website_source/selectKeyword.js new file mode 100644 index 0000000..73f0d5a --- /dev/null +++ b/website_generator/website_source/selectKeyword.js @@ -0,0 +1,66 @@ +$(document).ready(function() { + // Verify the table ID by logging it + //console.log('Table ID:', '#nassa_table_container_table'); + + // DataTable instance using the correct ID + var table = $('#nassa_table_container_table').DataTable(); + + // Check if the table is correctly initialized + //if (table) { + // console.log('DataTable initialized successfully.'); + //} else { + // console.log('Failed to initialize DataTable.'); + //} + + const searchInput = document.querySelector('#nassa_table_container input[type="search"]'); + const keywordColumnIndex = 6; // Assuming "Keywords" is the 7th column (0-indexed) + const event = new Event('input', { bubbles: true }); + + // Add click event listener to each badge + $(document).on('click', '.badge', function() { + var keyword = $(this).data('keyword'); + //console.log('Badge clicked, keyword:', keyword); // Debugging output + + // Apply the search filter with the keyword + if (keyword) { + //table.columns().search(keyword).draw(); + // Select the search input within the nassa_table_container + + + // Check if the search input exists + if (searchInput) { + // Set the value to your desired string + searchInput.value = keyword; + + // Apply a custom search to the "Keywords" column + table.column(keywordColumnIndex).search(function(data, type) { + // Check if the data in the "Keywords" column contains the exact keyword + const regex = new RegExp(`(^|,\\s*)${searchTerm}(,|$)`, 'i'); + return regex.test(data); + }); + + // Trigger the input event to apply the search filter immediately + searchInput.dispatchEvent(event); + + table.draw(); // Redraw the table to apply the custom filter + + //console.log('✔️ Search input value has been set successfully!'); + } else { + //console.error('❗ Search input not found within the specified container.'); + } + + searchInput.value = '' + } + }); + + // Optional: Add a button to reset the search filter + //$('.legend').append(''); + // Reset the search filter when 'Show All' is clicked + $(document).on('click', '#resetFilter', function() { + //console.log('Reset button clicked.'); // Debugging output + searchInput.value = '' + searchInput.dispatchEvent(event); + //table.search('').draw(); + }); + }); + \ No newline at end of file From 3c1e0499ea7f36abf2076d6a8088e10dfbb1682a Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 19:57:31 +0200 Subject: [PATCH 13/24] cleared cache --- website_generator/.gitignore | 1 + .../website_source/images/NASSA-logo.png | Bin 86178 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100644 website_generator/website_source/images/NASSA-logo.png diff --git a/website_generator/.gitignore b/website_generator/.gitignore index d2d367d..6cc4dd9 100644 --- a/website_generator/.gitignore +++ b/website_generator/.gitignore @@ -4,6 +4,7 @@ !/website_source/index.Rmd !/website_source/dummy.bib !/website_source/images/* +!/website_source/js/* !/website_source/selectKeyword.js # History files diff --git a/website_generator/website_source/images/NASSA-logo.png b/website_generator/website_source/images/NASSA-logo.png deleted file mode 100644 index b7a2cba09a1832e75e6d45d41d534ba81f3e008e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86178 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 z 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 4Wqr?_}!x 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 QxVt!V(n?aL5{4iCKdpk|Hvj+t From 1e6b88567c42f0a52dc4792064d0064d37c539e6 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 20:07:03 +0200 Subject: [PATCH 14/24] corrected gitignore exceptions --- website_generator/.gitignore | 5 ++--- .../website_source/images/NASSA-logo.png | Bin 0 -> 86178 bytes .../website_source/{ => js}/selectKeyword.js | 0 3 files changed, 2 insertions(+), 3 deletions(-) create mode 100644 website_generator/website_source/images/NASSA-logo.png rename website_generator/website_source/{ => js}/selectKeyword.js (100%) diff --git a/website_generator/.gitignore b/website_generator/.gitignore index 6cc4dd9..b8206dc 100644 --- a/website_generator/.gitignore +++ b/website_generator/.gitignore @@ -1,11 +1,10 @@ /website_source/* +!/website_source/images/ +!/website_source/js/ !/website_source/_site.yml !/website_source/styles.css !/website_source/index.Rmd !/website_source/dummy.bib -!/website_source/images/* -!/website_source/js/* -!/website_source/selectKeyword.js # History files .Rhistory diff --git a/website_generator/website_source/images/NASSA-logo.png b/website_generator/website_source/images/NASSA-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b7a2cba09a1832e75e6d45d41d534ba81f3e008e GIT binary patch literal 86178 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 z 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 4Wqr?_}!x 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 QxVt!V(n?aL5{4iCKdpk|Hvj+t literal 0 HcmV?d00001 diff --git a/website_generator/website_source/selectKeyword.js b/website_generator/website_source/js/selectKeyword.js similarity index 100% rename from website_generator/website_source/selectKeyword.js rename to website_generator/website_source/js/selectKeyword.js From b8b5db85aec05193c371b5c7d0a32c6d7f0b4a75 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Tue, 20 Aug 2024 20:13:52 +0200 Subject: [PATCH 15/24] Update index.Rmd --- website_generator/website_source/index.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index 56c3d21..e8d1c4c 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -53,7 +53,7 @@ DT::datatable(nassa_table_print, ``` - +

From f639ea3d3125c8e2a4ece87048ae2275f61f6935 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Wed, 21 Aug 2024 13:50:38 +0200 Subject: [PATCH 16/24] update gitignore --- website_generator/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website_generator/.gitignore b/website_generator/.gitignore index b8206dc..c69bd62 100644 --- a/website_generator/.gitignore +++ b/website_generator/.gitignore @@ -1,8 +1,8 @@ /website_source/* !/website_source/images/ !/website_source/js/ +!/website_source/css/ !/website_source/_site.yml -!/website_source/styles.css !/website_source/index.Rmd !/website_source/dummy.bib From d05b05507a62be14e7b5e8523c3e9a4950578cbb Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Wed, 21 Aug 2024 13:54:54 +0200 Subject: [PATCH 17/24] reset cache --- website_generator/website_source/{ => css}/styles.css | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename website_generator/website_source/{ => css}/styles.css (100%) diff --git a/website_generator/website_source/styles.css b/website_generator/website_source/css/styles.css similarity index 100% rename from website_generator/website_source/styles.css rename to website_generator/website_source/css/styles.css From 463d8c47d954a5e9fc7caff1ac146237f72cca8a Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Wed, 21 Aug 2024 17:37:25 +0200 Subject: [PATCH 18/24] layout change --- website_generator/website_source/_site.yml | 9 ++-- .../website_source/css/styles.css | 22 +++++++-- website_generator/website_source/index.Rmd | 47 +++++++------------ 3 files changed, 40 insertions(+), 38 deletions(-) diff --git a/website_generator/website_source/_site.yml b/website_generator/website_source/_site.yml index b1353d1..8e98913 100644 --- a/website_generator/website_source/_site.yml +++ b/website_generator/website_source/_site.yml @@ -5,18 +5,19 @@ navbar: - text: "Module list" icon: fa-list href: index.html - - text: "Repository" - icon: fa-github - href: https://github.com/Archaeology-ABM/NASSA-modules - text: "About" icon: fa-book href: https://archaeology-abm.github.io/NASSA-hub/library - text: "NASSA Hub" icon: fa-home href: https://archaeology-abm.github.io/NASSA-hub + right: + - text: "Repository" + icon: fa-github + href: https://github.com/Archaeology-ABM/NASSA-modules output: html_document: theme: spacelab highlight: textmate - css: styles.css + css: css/styles.css diff --git a/website_generator/website_source/css/styles.css b/website_generator/website_source/css/styles.css index f734c24..da4a5d9 100644 --- a/website_generator/website_source/css/styles.css +++ b/website_generator/website_source/css/styles.css @@ -1,5 +1,17 @@ -body { - background-color: white; +body .main-container { + max-width: 1000px; +} + +#nassa_table_container { + width: 90%; + float: left; + z-index: -10; +} +#customsidebar { + width: 9%; + float: right; + z-index: -10; + padding: 0px; } table thead th { border-bottom: 1px solid #ddd; } @@ -91,4 +103,8 @@ thead, tfoot, tr:nth-child(even) { background: #eee; } a { color: #03989e; word-break: break-word; -} \ No newline at end of file +} + +button { + min-height: 30px; +} \ No newline at end of file diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index e8d1c4c..b4bf5ba 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -53,36 +53,21 @@ DT::datatable(nassa_table_print, ``` +
+ +
+

Keyword types

+

+ Module type + Programming language + Regions + Periods + Subjects + Modelling + Programming +

+
+ -
- - - - - - - - - - -
- Keyword colour-coding: - - Module type - - Programming language - - Regions - - Periods - - Subjects - - Modelling - - Programming - - | - -
+ From ba496065db6026cafc2428ebd08a7968bd603310 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Wed, 21 Aug 2024 17:59:41 +0200 Subject: [PATCH 19/24] table display changes --- website_generator/website_source/index.Rmd | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index b4bf5ba..f7b97eb 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -16,10 +16,10 @@
```{r, echo=FALSE} -nassa_table_print <- nassa_table[, c('lastUpdateDate', 'contributors', 'title', 'moduleVersion', +nassa_table_print <- nassa_table[, c('title', 'contributors', 'moduleVersion', 'lastUpdateDate', 'Keywords', 'View')] -colDisplayNames <- c('Last update', 'Contributors', 'Title', 'Current version', +colDisplayNames <- c('Title', 'Contributors', 'Version', 'Last update', 'Keywords', '') @@ -31,6 +31,7 @@ options(DT.options = list( "$(this.api().table().header()).css({'background-color': '#03989e'});", "}" ), + fixedHeader = list(header = TRUE), # Define which columns are not to be used for sorting or searching columnDefs = list( list(targets = c(grep('moduleVersion', names(nassa_table_print)) - 1, grep('moduleVersion', names(nassa_table_print)) - 1), @@ -44,7 +45,7 @@ DT::datatable(nassa_table_print, escape = FALSE, colnames = colDisplayNames) %>% #DT::formatStyle('id', fontWeight = 'bold', width = '200px') %>% - DT::formatStyle('lastUpdateDate', width = '150px') %>% + DT::formatStyle('lastUpdateDate', width = '100px') %>% DT::formatStyle('moduleVersion', textAlign = 'center', columnWidth = '50px') %>% DT::formatStyle('View', textAlign = 'center', verticalAlign = 'middle', columnWidth = '50px', fontSize = '200%') %>% DT::formatStyle(0, target = 'row', From e9be7e7bcfeb6135750d4b7f4b534bb867bdcfe1 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Wed, 21 Aug 2024 17:59:59 +0200 Subject: [PATCH 20/24] refine search --- website_generator/website_source/js/selectKeyword.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/website_generator/website_source/js/selectKeyword.js b/website_generator/website_source/js/selectKeyword.js index 73f0d5a..b123681 100644 --- a/website_generator/website_source/js/selectKeyword.js +++ b/website_generator/website_source/js/selectKeyword.js @@ -30,7 +30,14 @@ $(document).ready(function() { // Check if the search input exists if (searchInput) { // Set the value to your desired string - searchInput.value = keyword; + if (searchInput.value.length > 0) + { + searchInput.value = searchInput.value + ' ' + keyword; + } + else + { + searchInput.value = keyword; + } // Apply a custom search to the "Keywords" column table.column(keywordColumnIndex).search(function(data, type) { @@ -48,8 +55,6 @@ $(document).ready(function() { } else { //console.error('❗ Search input not found within the specified container.'); } - - searchInput.value = '' } }); From 3d79eff387e47f966b0207ed29d380f0f8cb99c8 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Thu, 22 Aug 2024 11:02:10 +0200 Subject: [PATCH 21/24] Update page title --- website_generator/website_source/css/styles.css | 4 ++++ website_generator/website_source/index.Rmd | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/website_generator/website_source/css/styles.css b/website_generator/website_source/css/styles.css index da4a5d9..de82dae 100644 --- a/website_generator/website_source/css/styles.css +++ b/website_generator/website_source/css/styles.css @@ -2,6 +2,10 @@ body .main-container { max-width: 1000px; } +#header { + display: none; +} + #nassa_table_container { width: 90%; float: left; diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index f7b97eb..7f22164 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -1,5 +1,5 @@ --- -#title: NASSA modules +title: NASSA Library --- From d98e795398092fdd55d752aca177524119fd2882 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Fri, 23 Aug 2024 13:21:41 +0200 Subject: [PATCH 22/24] fully working keyword search + ui tuning --- website_generator/DESCRIPTION | 3 +- website_generator/generate_source.R | 3 +- website_generator/website_source/_site.yml | 13 ++-- .../website_source/css/styles.css | 9 +-- website_generator/website_source/index.Rmd | 70 +++++++++++++++---- .../website_source/js/selectKeyword.js | 30 ++++---- 6 files changed, 86 insertions(+), 42 deletions(-) diff --git a/website_generator/DESCRIPTION b/website_generator/DESCRIPTION index 886c946..4721446 100644 --- a/website_generator/DESCRIPTION +++ b/website_generator/DESCRIPTION @@ -15,4 +15,5 @@ Imports: magrittr (>= 2.0.3), purrr (>= 0.3.4), rmarkdown (>= 2.14), - yaml (>= 2.3.5) + yaml (>= 2.3.5), + stringr (>= 1.5.1) diff --git a/website_generator/generate_source.R b/website_generator/generate_source.R index 25d08cd..ac529a1 100644 --- a/website_generator/generate_source.R +++ b/website_generator/generate_source.R @@ -2,6 +2,7 @@ library(magrittr) #library(kableExtra) library(DT) library(git2r) +library(stringr) repo_path <- ".." @@ -47,7 +48,7 @@ nassa_table <- purrr::map_dfr( badge_series(nassa_yml$modellingKeywords, type = 'badgeModelling'), badge_series(nassa_yml$programmingKeywords, type = 'badgeProgramming'), collapse = ' '), - `View` = paste0(""), + `View` = paste0(""), ) } ) diff --git a/website_generator/website_source/_site.yml b/website_generator/website_source/_site.yml index 8e98913..691c886 100644 --- a/website_generator/website_source/_site.yml +++ b/website_generator/website_source/_site.yml @@ -2,19 +2,22 @@ name: "nassa-modules" navbar: # title: "NASSA Library Web User Interface" left: - - text: "Module list" + - text: "Main" icon: fa-list href: index.html - text: "About" icon: fa-book href: https://archaeology-abm.github.io/NASSA-hub/library - - text: "NASSA Hub" - icon: fa-home - href: https://archaeology-abm.github.io/NASSA-hub - right: + - text: "Guide for submissions" + icon: fa-map + href: https://archaeology-abm.github.io/NASSA-hub/guide - text: "Repository" icon: fa-github href: https://github.com/Archaeology-ABM/NASSA-modules + right: + - text: "NASSA Hub" + icon: fa-home + href: https://archaeology-abm.github.io/NASSA-hub output: html_document: theme: spacelab diff --git a/website_generator/website_source/css/styles.css b/website_generator/website_source/css/styles.css index de82dae..c57969c 100644 --- a/website_generator/website_source/css/styles.css +++ b/website_generator/website_source/css/styles.css @@ -1,5 +1,6 @@ body .main-container { - max-width: 1000px; + max-width: 1100px; + min-width: 850px; } #header { @@ -7,12 +8,12 @@ body .main-container { } #nassa_table_container { - width: 90%; + width: 87%; float: left; z-index: -10; } #customsidebar { - width: 9%; + width: 12%; float: right; z-index: -10; padding: 0px; @@ -111,4 +112,4 @@ a { button { min-height: 30px; -} \ No newline at end of file +} diff --git a/website_generator/website_source/index.Rmd b/website_generator/website_source/index.Rmd index 7f22164..d921abe 100644 --- a/website_generator/website_source/index.Rmd +++ b/website_generator/website_source/index.Rmd @@ -16,16 +16,17 @@ title: NASSA Library
```{r, echo=FALSE} -nassa_table_print <- nassa_table[, c('title', 'contributors', 'moduleVersion', 'lastUpdateDate', - 'Keywords', - 'View')] -colDisplayNames <- c('Title', 'Contributors', 'Version', 'Last update', - 'Keywords', - '') +nassa_table_print <- nassa_table[, c('View', + 'title', 'contributors', 'moduleVersion', 'lastUpdateDate', + 'Keywords')] +colDisplayNames <- c('', + 'Title', 'Contributors', 'Version', 'Last update', + 'Keywords') options(DT.options = list( pageLength = 25, language = list(search = 'Search by Last update, Contributors, Title or keyword:'), + search = list(regex = TRUE), initComplete = DT::JS( "function(settings, json) {", "$(this.api().table().header()).css({'background-color': '#03989e'});", @@ -54,18 +55,59 @@ DT::datatable(nassa_table_print, ```
+```{r, echo=FALSE} +keywords <- unlist(lapply(stringr::str_match_all(nassa_table$Keywords, "]*>(.*?)"), function(x) x[,1])) + +getTopKeywordBadgesPerID <- function(keywordList, htmlID, curtailThreshold) +{ + keywordsOfID <- keywords[stringr::str_detect(keywordList, htmlID)] + keywordNumberLevels <- length(unique(keywordsOfID)) + keywordsOfIDFreq <- sort(table(keywordsOfID), decreasing = TRUE)[1:(min(curtailThreshold, keywordNumberLevels))] + names(keywordsOfIDFreq) <- mapply(function(html, insert) { + sub("(", insert, ")
-

Keyword types

+

Module type

+

+ `r paste0(names(moduleTypeKeywordsFreq), collapse = "
" )` +

+

Language

+

+ `r paste0(names(languageKeywordsFreq), collapse = "
" )` +

+

Modelling

+

+ `r paste0(names(modellingKeywordsFreq), collapse = "
" )` +

+

Programming

+

+ `r paste0(names(programmingKeywordsFreq), collapse = "
" )` +

+

Regions

+

+ `r paste0(names(regionsKeywordsFreq), collapse = "
" )` +

+

Periods

+

+ `r paste0(names(periodsKeywordsFreq), collapse = "
" )` +

+

Subjects

- Module type - Programming language - Regions - Periods - Subjects - Modelling - Programming + `r paste0(names(subjectsKeywordsFreq), collapse = "
" )`

diff --git a/website_generator/website_source/js/selectKeyword.js b/website_generator/website_source/js/selectKeyword.js index b123681..015b60b 100644 --- a/website_generator/website_source/js/selectKeyword.js +++ b/website_generator/website_source/js/selectKeyword.js @@ -13,7 +13,7 @@ $(document).ready(function() { //} const searchInput = document.querySelector('#nassa_table_container input[type="search"]'); - const keywordColumnIndex = 6; // Assuming "Keywords" is the 7th column (0-indexed) + //const keywordColumnIndex = 6; // Assuming "Keywords" is the 7th column (0-indexed) const event = new Event('input', { bubbles: true }); // Add click event listener to each badge @@ -23,34 +23,33 @@ $(document).ready(function() { // Apply the search filter with the keyword if (keyword) { - //table.columns().search(keyword).draw(); // Select the search input within the nassa_table_container - + //table.column(keywordColumnIndex).search("^\\b" + keyword + "\\b$", true, false, true).draw(); + // Check if the search input exists if (searchInput) { + // Handle special case for single-character keywords like "R" + var searchValue; + if (keyword.length === 1) { + searchValue = '\\b' + keyword + '\\b'; // Word boundary regex for exact match + } else { + searchValue = keyword; + } + // Set the value to your desired string if (searchInput.value.length > 0) { - searchInput.value = searchInput.value + ' ' + keyword; + searchInput.value = searchInput.value + ' ' + searchValue; } else { - searchInput.value = keyword; + searchInput.value = searchValue; } - // Apply a custom search to the "Keywords" column - table.column(keywordColumnIndex).search(function(data, type) { - // Check if the data in the "Keywords" column contains the exact keyword - const regex = new RegExp(`(^|,\\s*)${searchTerm}(,|$)`, 'i'); - return regex.test(data); - }); - // Trigger the input event to apply the search filter immediately searchInput.dispatchEvent(event); - table.draw(); // Redraw the table to apply the custom filter - //console.log('✔️ Search input value has been set successfully!'); } else { //console.error('❗ Search input not found within the specified container.'); @@ -58,14 +57,11 @@ $(document).ready(function() { } }); - // Optional: Add a button to reset the search filter - //$('.legend').append(''); // Reset the search filter when 'Show All' is clicked $(document).on('click', '#resetFilter', function() { //console.log('Reset button clicked.'); // Debugging output searchInput.value = '' searchInput.dispatchEvent(event); - //table.search('').draw(); }); }); \ No newline at end of file From 183e842bedf5b5bdf7871426354ae23d7aa7417c Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Fri, 23 Aug 2024 14:20:21 +0200 Subject: [PATCH 23/24] Update package_page_template.Rmd --- website_generator/package_page_template.Rmd | 37 +++++++++------------ 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/website_generator/package_page_template.Rmd b/website_generator/package_page_template.Rmd index 8d65e3a..97fd74f 100644 --- a/website_generator/package_page_template.Rmd +++ b/website_generator/package_page_template.Rmd @@ -2,9 +2,6 @@ editor_options: chunk_output_type: console link-citations: false -output: - html_document: - css: styles.css #website_source/styles.css bibliography: "`r cur_bib <- paste0('####module_name####', '.bib'); if (file.exists(cur_bib)) { cur_bib } else { 'dummy.bib' }`" nocite: '@*' #add all items to the bibliography --- @@ -128,6 +125,17 @@ download_link <- htmltools::tags$a(
+```{r tags} +badge_series <- function(x, type = 'badgeLanguage') { + if (length(x) > 0) { + prefix <- paste0('') + return(paste(prefix, x, '', collapse = ' ')) + } else { + return('') + } +} +``` +

Module type

`r badge_series(nassa_yml$moduleType, "badgeModuleType")` @@ -136,29 +144,14 @@ download_link <- htmltools::tags$a( languages <- purrr::map(nassa_yml$implementations, function(y) { htmltools::tags$span(class = "badge", id = "badgeLanguage", y$language) }) +languages <- htmltools::tagList(languages) ``` -

Languages

+

Implementation languages

`r languages` -

Tags

- -```{r tags} -badge_series <- function(x, type = 'badgeLanguage') { - if (length(x) > 0) { - prefix <- paste0('') - return(paste(prefix, x, '', collapse = ' ')) - } else { - return('') - } -} -# ba <- function(x, type = "badgeDefault") { -# purrr::map(x, function(y) { -# htmltools::tags$span(class = "badge", id = type, y) -# }) -# } -``` +

Keywords

@@ -249,7 +242,7 @@ if (!is.null(nassa_yml$inputs) & !is.null(nassa_yml$outputs)) { zoomView = TRUE, navigationButtons = TRUE, # Optional: adds zoom in/out buttons keyboard = TRUE, # Optional: allows keyboard control - zoomSpeed = 0.5, # Adjust this value to control the zoom speed + zoomSpeed = 0.1, # Adjust this value to control the zoom speed tooltipStyle = 'position: fixed;visibility:hidden;padding: 5px; font-family: verdana;font-size:14px;font-color:#000000;background-color: #f5f4ed; From b442ec83b0dba9176cd9c6c2ba056f6dfc41f8a5 Mon Sep 17 00:00:00 2001 From: Andreas Angourakis Date: Fri, 4 Oct 2024 14:38:11 +0200 Subject: [PATCH 24/24] ensuring SPDX identifier format --- 2021-Romanowska-001/NASSA.yml | 2 +- 2022-Romanowska-002/NASSA.yml | 2 +- 2022-Vlach-001/NASSA.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/2021-Romanowska-001/NASSA.yml b/2021-Romanowska-001/NASSA.yml index 1ed2127..cc988a5 100644 --- a/2021-Romanowska-001/NASSA.yml +++ b/2021-Romanowska-001/NASSA.yml @@ -54,4 +54,4 @@ outputs: type: float (absolute position) or integer (patch coordinate) unit: no specific unit, but within world dimensions description: Current position of the agent (turtle) as x and y coordinates. -license: CC BY-SA 4.0 +license: CC-BY-SA-4.0 diff --git a/2022-Romanowska-002/NASSA.yml b/2022-Romanowska-002/NASSA.yml index f3bd59a..4bfe17f 100644 --- a/2022-Romanowska-002/NASSA.yml +++ b/2022-Romanowska-002/NASSA.yml @@ -82,4 +82,4 @@ outputs: - name: tickcounter type: integer description: simulation time step counter -license: CC BY-SA 4.0 +license: CC-BY-SA-4.0 diff --git a/2022-Vlach-001/NASSA.yml b/2022-Vlach-001/NASSA.yml index 2812cef..acef78d 100644 --- a/2022-Vlach-001/NASSA.yml +++ b/2022-Vlach-001/NASSA.yml @@ -145,4 +145,4 @@ outputs: - name: nw-mod type: float description: Network metrics':' modularity -license: CC BY-SA 4.0 +license: CC-BY-SA-4.0
Modelling:`r badge_series(nassa_yml$modellingKeywords, "badgeModelling")`