ose-app 0.2.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. ose_app/AppModule.py +98 -0
  2. ose_app/OntologyDataStore.py +464 -0
  3. ose_app/PermissionManager.py +78 -0
  4. ose_app/SpreadsheetSearcher.py +197 -0
  5. ose_app/__init__.py +130 -0
  6. ose_app/app.py +10 -0
  7. ose_app/constants.py +1 -0
  8. ose_app/custom_json.py +23 -0
  9. ose_app/default_config.py +39 -0
  10. ose_app/gh.py +60 -0
  11. ose_app/guards/__init__.py +0 -0
  12. ose_app/guards/verify_login.py +20 -0
  13. ose_app/guards/with_permission.py +54 -0
  14. ose_app/jinja_extensions/__init__.py +42 -0
  15. ose_app/routes/__init__.py +24 -0
  16. ose_app/routes/admin.py +108 -0
  17. ose_app/routes/api/__init__.py +23 -0
  18. ose_app/routes/api/edit.py +162 -0
  19. ose_app/routes/api/external.py +198 -0
  20. ose_app/routes/api/plugins.py +22 -0
  21. ose_app/routes/api/release.py +380 -0
  22. ose_app/routes/api/repos.py +55 -0
  23. ose_app/routes/api/scripts.py +49 -0
  24. ose_app/routes/api/search.py +19 -0
  25. ose_app/routes/api/settings.py +115 -0
  26. ose_app/routes/api/validate.py +264 -0
  27. ose_app/routes/api/visualise.py +228 -0
  28. ose_app/routes/auth.py +44 -0
  29. ose_app/routes/edit.py +690 -0
  30. ose_app/routes/main.py +100 -0
  31. ose_app/routes/search.py +42 -0
  32. ose_app/routes/status.py +10 -0
  33. ose_app/routes/visualize.py +108 -0
  34. ose_app/static/addicto.release.json +129 -0
  35. ose_app/static/bcio.release.json +321 -0
  36. ose_app/static/example.json +134 -0
  37. ose_app/static/excel-bootstrap-table-filter-bundle.js +326 -0
  38. ose_app/static/excel-bootstrap-table-filter-bundle.js.map +1 -0
  39. ose_app/static/excel-bootstrap-table-filter-bundle.min.js +2 -0
  40. ose_app/static/excel-bootstrap-table-filter-bundle.min.js.map +1 -0
  41. ose_app/static/excel-bootstrap-table-filter-style.css +78 -0
  42. ose_app/static/gmho.release.json +139 -0
  43. ose_app/static/js/admin.js +2 -0
  44. ose_app/static/js/admin.js.map +1 -0
  45. ose_app/static/js/assets/CollapsibleCard.css +1 -0
  46. ose_app/static/js/assets/editor.css +1 -0
  47. ose_app/static/js/assets/release.css +1 -0
  48. ose_app/static/js/assets/settings.css +1 -0
  49. ose_app/static/js/assets/visualise.css +1 -0
  50. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-BDr_frBe.js +2 -0
  51. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-BDr_frBe.js.map +1 -0
  52. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-MonxH8xj.js +2 -0
  53. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-MonxH8xj.js.map +1 -0
  54. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-DKAZyKKr-DTksKjtf.js +2 -0
  55. ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-DKAZyKKr-DTksKjtf.js.map +1 -0
  56. ose_app/static/js/chunks/CollapsibleCard-BQR8R54V.js +2 -0
  57. ose_app/static/js/chunks/CollapsibleCard-BQR8R54V.js.map +1 -0
  58. ose_app/static/js/chunks/CollapsibleCard-DgwkQKDg.js +2 -0
  59. ose_app/static/js/chunks/CollapsibleCard-DgwkQKDg.js.map +1 -0
  60. ose_app/static/js/chunks/CollapsibleCard-DoX0kPCZ.js +2 -0
  61. ose_app/static/js/chunks/CollapsibleCard-DoX0kPCZ.js.map +1 -0
  62. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-CBzsmnqW.js +43 -0
  63. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-CBzsmnqW.js.map +1 -0
  64. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-EcINi797.js +43 -0
  65. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-EcINi797.js.map +1 -0
  66. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-bumDOBqD.js +43 -0
  67. ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-bumDOBqD.js.map +1 -0
  68. ose_app/static/js/chunks/_plugin-vue_export-helper-DlAUqK2U.js +2 -0
  69. ose_app/static/js/chunks/_plugin-vue_export-helper-DlAUqK2U.js.map +1 -0
  70. ose_app/static/js/chunks/bootbox-D3SJ_Fwv.js +2 -0
  71. ose_app/static/js/chunks/bootbox-D3SJ_Fwv.js.map +1 -0
  72. ose_app/static/js/chunks/constants-CzBHF1EN.js +2 -0
  73. ose_app/static/js/chunks/constants-CzBHF1EN.js.map +1 -0
  74. ose_app/static/js/chunks/constants-DL6Hx3V0.js +2 -0
  75. ose_app/static/js/chunks/constants-DL6Hx3V0.js.map +1 -0
  76. ose_app/static/js/chunks/constants-DPgwRV4l.js +2 -0
  77. ose_app/static/js/chunks/constants-DPgwRV4l.js.map +1 -0
  78. ose_app/static/js/chunks/filter-Bx-PU1OL.js +18 -0
  79. ose_app/static/js/chunks/filter-Bx-PU1OL.js.map +1 -0
  80. ose_app/static/js/chunks/filter-CdAXK93b.js +18 -0
  81. ose_app/static/js/chunks/filter-CdAXK93b.js.map +1 -0
  82. ose_app/static/js/chunks/filter-CiYqP1_r.js +2 -0
  83. ose_app/static/js/chunks/filter-CiYqP1_r.js.map +1 -0
  84. ose_app/static/js/chunks/index-sLCKmIWG-B5BYNF2N.js +2 -0
  85. ose_app/static/js/chunks/index-sLCKmIWG-B5BYNF2N.js.map +1 -0
  86. ose_app/static/js/chunks/index-sLCKmIWG-Cb9lQq-c.js +9 -0
  87. ose_app/static/js/chunks/index-sLCKmIWG-Cb9lQq-c.js.map +1 -0
  88. ose_app/static/js/chunks/index-sLCKmIWG-umQeu_-w.js +3 -0
  89. ose_app/static/js/chunks/index-sLCKmIWG-umQeu_-w.js.map +1 -0
  90. ose_app/static/js/editor.js +36 -0
  91. ose_app/static/js/editor.js.map +1 -0
  92. ose_app/static/js/release.js +6 -0
  93. ose_app/static/js/release.js.map +1 -0
  94. ose_app/static/js/settings.js +2 -0
  95. ose_app/static/js/settings.js.map +1 -0
  96. ose_app/static/js/visualise.js +3 -0
  97. ose_app/static/js/visualise.js.map +1 -0
  98. ose_app/static/main.css +1 -0
  99. ose_app/static/main.css.map +7 -0
  100. ose_app/static/main.scss +147 -0
  101. ose_app/static/mindmup-editabletable.js +131 -0
  102. ose_app/static/schema/release_script.json +215 -0
  103. ose_app/static/schema/req_body_edit.json +35 -0
  104. ose_app/static/schema/req_body_guess_parent.json +38 -0
  105. ose_app/static/schema/req_body_import.json +47 -0
  106. ose_app/static/schema/req_body_release_start.json +9 -0
  107. ose_app/static/schema/req_body_visualise.json +18 -0
  108. ose_app/static/test.dot +190 -0
  109. ose_app/static/workflows/externals.yaml.jinja2 +44 -0
  110. ose_app/templates/access_show_visualisation_for_ids.html +120 -0
  111. ose_app/templates/admin/dashboard.html +18 -0
  112. ose_app/templates/admin/rebuild_index.html +85 -0
  113. ose_app/templates/admin/release.html +46 -0
  114. ose_app/templates/admin/settings.html +23 -0
  115. ose_app/templates/base.html +151 -0
  116. ose_app/templates/edit.html +21 -0
  117. ose_app/templates/edit_external.html +491 -0
  118. ose_app/templates/forbidden.html +9 -0
  119. ose_app/templates/index.html +33 -0
  120. ose_app/templates/loggedout.html +21 -0
  121. ose_app/templates/repo.html +294 -0
  122. ose_app/templates/testgeneratedbyapi.html +294 -0
  123. ose_app/templates/visualise.html +17 -0
  124. ose_app-0.2.5.dist-info/METADATA +27 -0
  125. ose_app-0.2.5.dist-info/RECORD +127 -0
  126. ose_app-0.2.5.dist-info/WHEEL +5 -0
  127. ose_app-0.2.5.dist-info/top_level.txt +1 -0
@@ -0,0 +1,190 @@
1
+ digraph {
2
+ OBO_ADDICTO_0000272 [label="cigarette\npack\nsize",shape=box,font=helvetica]
3
+ OBO_ADDICTO_0000852 [label=PUFFiT,shape=box,font=helvetica]
4
+ OBO_ADDICTO_0000224 [label="e-cigarette\npod\ndevice",shape=box,font=helvetica]
5
+ OBO_ADDICTO_0000536 [label="liquid\nproduct",shape=box,font=helvetica]
6
+ OBO_ADDICTO_0000625 [label="menthol\nflavoured\ne-liquid",shape=box,font=helvetica]
7
+ OBO_ADDICTO_0000256 [label="mechanical\nmod\ne-cigarette",shape=box,font=helvetica]
8
+ OBO_ADDICTO_0000855 [label="THC\nvaping\ndevice\npart",shape=box,font=helvetica]
9
+ OBO_ADDICTO_0000535 [label="heated\ntobacco-containing\nproduct\npart",shape=box,font=helvetica]
10
+ OBO_ADDICTO_0000296 [label=squonker,shape=box,font=helvetica]
11
+ OBO_ADDICTO_0000227 [label="e-cigarette\ntank",shape=box,font=helvetica]
12
+ OBO_ADDICTO_0000200 [label=cigar,shape=box,font=helvetica]
13
+ OBO_ADDICTO_0000301 [label="THC\ncontaining\ne-liquid",shape=box,font=helvetica]
14
+ OBO_ADDICTO_0000213 [label="e-cigarette\natomiser",shape=box,font=helvetica]
15
+ OBO_ADDICTO_0000285 [label="regulated\nbox\nmod\ne-cigarette",shape=box,font=helvetica]
16
+ OBO_ADDICTO_0000851 [label=Kretek,shape=box,font=helvetica]
17
+ OBO_ADDICTO_0000239 [label="flavoured\ne-liquid",shape=box,font=helvetica]
18
+ OBO_ADDICTO_0000299 [label="tank\ntype\ne-cigarette",shape=box,font=helvetica]
19
+ OBO_ADDICTO_0000247 [label="high\nnicotine\nconcentration\ne-liquid",shape=box,font=helvetica]
20
+ OBO_ADDICTO_0000827 [label="product\npart",shape=box,font=helvetica]
21
+ OBO_ADDICTO_0000283 [label="rechargeable\ncigalike\ne-cigarette",shape=box,font=helvetica]
22
+ OBO_ADDICTO_0000303 [label=tobacco,shape=box,font=helvetica]
23
+ OBO_ADDICTO_0000251 [label="licensed\nnicotine\nproduct",shape=box,font=helvetica]
24
+ OBO_ADDICTO_0000882 [label="oil\nbased\ntabletop\nvaporiser",shape=box,font=helvetica]
25
+ OBO_ADDICTO_0000212 [label="e-cigarette",shape=box,font=helvetica]
26
+ OBO_ADDICTO_0000207 [label="combustible\ntobacco-containing\nproduct",shape=box,font=helvetica]
27
+ OBO_ADDICTO_0000737 [label=blunt,shape=box,font=helvetica]
28
+ OBO_ADDICTO_0000221 [label="e-cigarette\nmod",shape=box,font=helvetica]
29
+ OBO_ADDICTO_0000294 [label="nasal\nsnuff",shape=box,font=helvetica]
30
+ OBO_ADDICTO_0000317 [label="vaping\ndevice\npart",shape=box,font=helvetica]
31
+ OBO_ADDICTO_0000308 [label="FDA-defined\ntobacco\nproduct",shape=box,font=helvetica]
32
+ OBO_ADDICTO_0000304 [label="processed\ntobacco",shape=box,font=helvetica]
33
+ OBO_ADDICTO_0000210 [label="disposable\ne-cigarette",shape=box,font=helvetica]
34
+ OBO_ADDICTO_0000287 [label="second\ngeneration\ne-cigarette",shape=box,font=helvetica]
35
+ OBO_ADDICTO_0000312 [label="tobacco-flavoured\ne-liquid",shape=box,font=helvetica]
36
+ OBO_ADDICTO_0000859 [label="e-cigarette\nproduct\nstandard",shape=box,font=helvetica]
37
+ OBO_ADDICTO_0000216 [label="e-cigarette\ncartridge",shape=box,font=helvetica]
38
+ OBO_ADDICTO_0000315 [label="vape\npen",shape=box,font=helvetica]
39
+ OBO_ADDICTO_0000753 [label="menthol\ncigarette",shape=box,font=helvetica]
40
+ OBO_ADDICTO_0000284 [label="rechargeable\ne-cigarette",shape=box,font=helvetica]
41
+ OBO_ADDICTO_0000250 [label="juul\npod",shape=box,font=helvetica]
42
+ OBO_ADDICTO_0000254 [label="manufactured\ncigarette",shape=box,font=helvetica]
43
+ OBO_ADDICTO_0000237 [label="fixed\npower\ne-cigarette\natomiser",shape=box,font=helvetica]
44
+ OBO_ADDICTO_0000201 [label=cigarette,shape=box,font=helvetica]
45
+ OBO_ADDICTO_0000817 [label="dry\nherb\nvaporiser\npen",shape=box,font=helvetica]
46
+ OBO_ADDICTO_0000858 [label="dry\nherb\ntabletop\nvaporiser",shape=box,font=helvetica]
47
+ OBO_ADDICTO_0000231 [label="electronic\nvaping\ndevice",shape=box,font=helvetica]
48
+ OBO_ADDICTO_0000190 [label="adjustable\npower\ne-cigarette\natomiser",shape=box,font=helvetica]
49
+ OBO_ADDICTO_0000267 [label="oil\nbased\nTHC\ne-liquid",shape=box,font=helvetica]
50
+ OBO_ADDICTO_0000218 [label="e-cigarette\nliquid\ncontainer",shape=box,font=helvetica]
51
+ OBO_ADDICTO_0000230 [label="e-cigarette\nwith\ndripping\natomiser",shape=box,font=helvetica]
52
+ OBO_ADDICTO_0000311 [label="tobacco-containing\nproduct",shape=box,font=helvetica]
53
+ OBO_ADDICTO_0000282 [label="rebuildable\ne-cigarette\natomiser",shape=box,font=helvetica]
54
+ OBO_ADDICTO_0000866 [label="tabletop\nvaporiser",shape=box,font=helvetica]
55
+ OBO_ADDICTO_0000214 [label="e-cigarette\nbattery",shape=box,font=helvetica]
56
+ OBO_ADDICTO_0000245 [label="heated\ntobacco-containing\nproduct",shape=box,font=helvetica]
57
+ OBO_ADDICTO_0000865 [label="portable\ncannabis\nvaporiser",shape=box,font=helvetica]
58
+ OBO_ADDICTO_0000223 [label="e-cigarette\npart",shape=box,font=helvetica]
59
+ OBO_ADDICTO_0000198 [label="chewing\ntobacco",shape=box,font=helvetica]
60
+ OBO_ADDICTO_0000302 [label="THC\nvaping\ndevice",shape=box,font=helvetica]
61
+ OBO_ADDICTO_0000812 [label="CE4\ne-cigarette\ntank",shape=box,font=helvetica]
62
+ OBO_ADDICTO_0000249 [label=iQOS,shape=box,font=helvetica]
63
+ OBO_ADDICTO_0000826 [label="nicotine\ncontaining\ne-liquid",shape=box,font=helvetica]
64
+ OBO_ADDICTO_0000266 [label="unflavoured\ne-liquid",shape=box,font=helvetica]
65
+ OBO_ADDICTO_0000257 [label="nicotine\ndelivery\nproduct",shape=box,font=helvetica]
66
+ OBO_ADDICTO_0000624 [label="mint\nflavoured\ne-liquid",shape=box,font=helvetica]
67
+ OBO_ADDICTO_0000205 [label="closed\ne-cigarette\nsystem",shape=box,font=helvetica]
68
+ OBO_ADDICTO_0000861 [label="fully\nbranded\ncigarette\npack",shape=box,font=helvetica]
69
+ OBO_ADDICTO_0000209 [label="disposable\ncigalike\ne-cigarette",shape=box,font=helvetica]
70
+ OBO_ADDICTO_0000854 [label="THC\noil",shape=box,font=helvetica]
71
+ OBO_ADDICTO_0000300 [label="THC\ncart\nvaping\ndevice",shape=box,font=helvetica]
72
+ OBO_ADDICTO_0000232 [label="e-liquid",shape=box,font=helvetica]
73
+ OBO_ADDICTO_0000626 [label="sweet\nflavoured\ne-liquid",shape=box,font=helvetica]
74
+ OBO_ADDICTO_0000316 [label="vaping\ndevice",shape=box,font=helvetica]
75
+ OBO_ADDICTO_0000853 [label="THC\nconcentrates",shape=box,font=helvetica]
76
+ OBO_ADDICTO_0000268 [label="open\ne-cigarette\nsystem",shape=box,font=helvetica]
77
+ OBO_ADDICTO_0000199 [label="cigalike\ne-cigarette",shape=box,font=helvetica]
78
+ OBO_ADDICTO_0000743 [label=cigarillo,shape=box,font=helvetica]
79
+ OBO_ADDICTO_0000222 [label="e-cigarette\nmouthpiece",shape=box,font=helvetica]
80
+ OBO_ADDICTO_0000246 [label="heated\ntobacco\nstick",shape=box,font=helvetica]
81
+ OBO_ADDICTO_0000292 [label="smokeless\ntobacco-containing\nproduct",shape=box,font=helvetica]
82
+ OBO_ADDICTO_0000271 [label="pack\nof\ncigarettes",shape=box,font=helvetica]
83
+ OBO_ADDICTO_0000813 [label="THC\nvape\npen",shape=box,font=helvetica]
84
+ OBO_ADDICTO_0000538 [label="tobacco-containing\nproduct\npart",shape=box,font=helvetica]
85
+ OBO_ADDICTO_0000220 [label="e-cigarette\nmicroprocessor",shape=box,font=helvetica]
86
+ OBO_ADDICTO_0000288 [label="shisha\npen",shape=box,font=helvetica]
87
+ OBO_ADDICTO_0000225 [label="e-cigarette\nreplaceable\ncoil",shape=box,font=helvetica]
88
+ OBO_ADDICTO_0000279 [label=product,shape=box,font=helvetica]
89
+ OBO_ADDICTO_0000295 [label="oral\nsnuff",shape=box,font=helvetica]
90
+ OBO_ADDICTO_0000240 [label="fruit\nflavoured\ne-liquid",shape=box,font=helvetica]
91
+ OBO_ADDICTO_0000250 -> OBO_ADDICTO_0000224 [label=subClassOf]
92
+ OBO_ADDICTO_0000232 -> OBO_ADDICTO_0000536 [label=subClassOf]
93
+ OBO_ADDICTO_0000854 -> OBO_ADDICTO_0000536 [label=subClassOf]
94
+ OBO_ADDICTO_0000300 -> OBO_ADDICTO_0000855 [label=subClassOf]
95
+ OBO_ADDICTO_0000743 -> OBO_ADDICTO_0000200 [label=subClassOf]
96
+ OBO_ADDICTO_0000267 -> OBO_ADDICTO_0000301 [label=subClassOf]
97
+ OBO_ADDICTO_0000237 -> OBO_ADDICTO_0000213 [label=subClassOf]
98
+ OBO_ADDICTO_0000190 -> OBO_ADDICTO_0000213 [label=subClassOf]
99
+ OBO_ADDICTO_0000282 -> OBO_ADDICTO_0000213 [label=subClassOf]
100
+ OBO_ADDICTO_0000624 -> OBO_ADDICTO_0000239 [label=subClassOf]
101
+ OBO_ADDICTO_0000312 -> OBO_ADDICTO_0000239 [label=subClassOf]
102
+ OBO_ADDICTO_0000240 -> OBO_ADDICTO_0000239 [label=subClassOf]
103
+ OBO_ADDICTO_0000626 -> OBO_ADDICTO_0000239 [label=subClassOf]
104
+ OBO_ADDICTO_0000625 -> OBO_ADDICTO_0000239 [label=subClassOf]
105
+ OBO_ADDICTO_0000535 -> OBO_ADDICTO_0000827 [label=subClassOf]
106
+ OBO_ADDICTO_0000317 -> OBO_ADDICTO_0000827 [label=subClassOf]
107
+ OBO_ADDICTO_0000311 -> OBO_ADDICTO_0000303 [label="BFO:0000051"]
108
+ OBO_ADDICTO_0000200 -> OBO_ADDICTO_0000303 [label="BFO:0000051"]
109
+ OBO_ADDICTO_0000201 -> OBO_ADDICTO_0000303 [label="BFO:0000051"]
110
+ OBO_ADDICTO_0000205 -> OBO_ADDICTO_0000212 [label=subClassOf]
111
+ OBO_ADDICTO_0000287 -> OBO_ADDICTO_0000212 [label=subClassOf]
112
+ OBO_ADDICTO_0000299 -> OBO_ADDICTO_0000212 [label=subClassOf]
113
+ OBO_ADDICTO_0000224 -> OBO_ADDICTO_0000212 [label=subClassOf]
114
+ OBO_ADDICTO_0000221 -> OBO_ADDICTO_0000212 [label=subClassOf]
115
+ OBO_ADDICTO_0000285 -> OBO_ADDICTO_0000212 [label=subClassOf]
116
+ OBO_ADDICTO_0000284 -> OBO_ADDICTO_0000212 [label=subClassOf]
117
+ OBO_ADDICTO_0000315 -> OBO_ADDICTO_0000212 [label=subClassOf]
118
+ OBO_ADDICTO_0000230 -> OBO_ADDICTO_0000212 [label=subClassOf]
119
+ OBO_ADDICTO_0000256 -> OBO_ADDICTO_0000212 [label=subClassOf]
120
+ OBO_ADDICTO_0000268 -> OBO_ADDICTO_0000212 [label=subClassOf]
121
+ OBO_ADDICTO_0000199 -> OBO_ADDICTO_0000212 [label=subClassOf]
122
+ OBO_ADDICTO_0000200 -> OBO_ADDICTO_0000207 [label=subClassOf]
123
+ OBO_ADDICTO_0000201 -> OBO_ADDICTO_0000207 [label=subClassOf]
124
+ OBO_ADDICTO_0000271 -> OBO_ADDICTO_0000207 [label=subClassOf]
125
+ OBO_ADDICTO_0000316 -> OBO_ADDICTO_0000317 [label="BFO:0000051"]
126
+ OBO_ADDICTO_0000855 -> OBO_ADDICTO_0000317 [label="BFO:0000051"]
127
+ OBO_ADDICTO_0000223 -> OBO_ADDICTO_0000317 [label=subClassOf]
128
+ OBO_ADDICTO_0000245 -> OBO_ADDICTO_0000304 [label=subClassOf]
129
+ OBO_ADDICTO_0000851 -> OBO_ADDICTO_0000201 [label=subClassOf]
130
+ OBO_ADDICTO_0000254 -> OBO_ADDICTO_0000201 [label=subClassOf]
131
+ OBO_ADDICTO_0000753 -> OBO_ADDICTO_0000201 [label=subClassOf]
132
+ OBO_ADDICTO_0000288 -> OBO_ADDICTO_0000231 [label=subClassOf]
133
+ OBO_ADDICTO_0000212 -> OBO_ADDICTO_0000231 [label=subClassOf]
134
+ OBO_ADDICTO_0000207 -> OBO_ADDICTO_0000311 [label=subClassOf]
135
+ OBO_ADDICTO_0000292 -> OBO_ADDICTO_0000311 [label=subClassOf]
136
+ OBO_ADDICTO_0000538 -> OBO_ADDICTO_0000311 [label=subClassOf]
137
+ OBO_ADDICTO_0000246 -> OBO_ADDICTO_0000311 [label=subClassOf]
138
+ OBO_ADDICTO_0000737 -> OBO_ADDICTO_0000311 [label=subClassOf]
139
+ OBO_ADDICTO_0000858 -> OBO_ADDICTO_0000866 [label=subClassOf]
140
+ OBO_ADDICTO_0000882 -> OBO_ADDICTO_0000866 [label=subClassOf]
141
+ OBO_ADDICTO_0000249 -> OBO_ADDICTO_0000245 [label=subClassOf]
142
+ OBO_ADDICTO_0000817 -> OBO_ADDICTO_0000865 [label=subClassOf]
143
+ OBO_ADDICTO_0000852 -> OBO_ADDICTO_0000865 [label=subClassOf]
144
+ OBO_ADDICTO_0000813 -> OBO_ADDICTO_0000865 [label=subClassOf]
145
+ OBO_ADDICTO_0000216 -> OBO_ADDICTO_0000223 [label=subClassOf]
146
+ OBO_ADDICTO_0000812 -> OBO_ADDICTO_0000223 [label=subClassOf]
147
+ OBO_ADDICTO_0000214 -> OBO_ADDICTO_0000223 [label=subClassOf]
148
+ OBO_ADDICTO_0000218 -> OBO_ADDICTO_0000223 [label=subClassOf]
149
+ OBO_ADDICTO_0000227 -> OBO_ADDICTO_0000223 [label=subClassOf]
150
+ OBO_ADDICTO_0000213 -> OBO_ADDICTO_0000223 [label=subClassOf]
151
+ OBO_ADDICTO_0000225 -> OBO_ADDICTO_0000223 [label=subClassOf]
152
+ OBO_ADDICTO_0000212 -> OBO_ADDICTO_0000223 [label="BFO:0000051"]
153
+ OBO_ADDICTO_0000220 -> OBO_ADDICTO_0000223 [label=subClassOf]
154
+ OBO_ADDICTO_0000222 -> OBO_ADDICTO_0000223 [label=subClassOf]
155
+ OBO_ADDICTO_0000296 -> OBO_ADDICTO_0000223 [label=subClassOf]
156
+ OBO_ADDICTO_0000866 -> OBO_ADDICTO_0000302 [label=subClassOf]
157
+ OBO_ADDICTO_0000865 -> OBO_ADDICTO_0000302 [label=subClassOf]
158
+ OBO_ADDICTO_0000855 -> OBO_ADDICTO_0000302 [label=subClassOf]
159
+ OBO_ADDICTO_0000853 -> OBO_ADDICTO_0000302 [label="RO:0000087"]
160
+ OBO_ADDICTO_0000854 -> OBO_ADDICTO_0000302 [label="RO:0000087"]
161
+ OBO_ADDICTO_0000247 -> OBO_ADDICTO_0000826 [label=subClassOf]
162
+ OBO_ADDICTO_0000251 -> OBO_ADDICTO_0000257 [label=subClassOf]
163
+ OBO_ADDICTO_0000210 -> OBO_ADDICTO_0000205 [label=subClassOf]
164
+ OBO_ADDICTO_0000209 -> OBO_ADDICTO_0000205 [label=subClassOf]
165
+ OBO_ADDICTO_0000826 -> OBO_ADDICTO_0000232 [label=subClassOf]
166
+ OBO_ADDICTO_0000239 -> OBO_ADDICTO_0000232 [label=subClassOf]
167
+ OBO_ADDICTO_0000212 -> OBO_ADDICTO_0000232 [label="RO:0001019"]
168
+ OBO_ADDICTO_0000266 -> OBO_ADDICTO_0000232 [label=subClassOf]
169
+ OBO_ADDICTO_0000301 -> OBO_ADDICTO_0000232 [label=subClassOf]
170
+ OBO_ADDICTO_0000231 -> OBO_ADDICTO_0000316 [label=subClassOf]
171
+ OBO_ADDICTO_0000302 -> OBO_ADDICTO_0000316 [label=subClassOf]
172
+ OBO_ADDICTO_0000283 -> OBO_ADDICTO_0000199 [label=subClassOf]
173
+ OBO_ADDICTO_0000245 -> OBO_ADDICTO_0000246 [label="RO:0001019"]
174
+ OBO_ADDICTO_0000295 -> OBO_ADDICTO_0000292 [label=subClassOf]
175
+ OBO_ADDICTO_0000198 -> OBO_ADDICTO_0000292 [label=subClassOf]
176
+ OBO_ADDICTO_0000294 -> OBO_ADDICTO_0000292 [label=subClassOf]
177
+ OBO_ADDICTO_0000272 -> OBO_ADDICTO_0000271 [label="IAO:0000136"]
178
+ OBO_ADDICTO_0000861 -> OBO_ADDICTO_0000271 [label=subClassOf]
179
+ OBO_ADDICTO_0000308 -> OBO_ADDICTO_0000279 [label=subClassOf]
180
+ OBO_ADDICTO_0000859 -> OBO_ADDICTO_0000279 [label=subClassOf]
181
+ OBO_ADDICTO_0000536 -> OBO_ADDICTO_0000279 [label=subClassOf]
182
+ OBO_ADDICTO_0000304 -> OBO_ADDICTO_0000279 [label=subClassOf]
183
+ OBO_ADDICTO_0000303 -> OBO_ADDICTO_0000279 [label=subClassOf]
184
+ OBO_ADDICTO_0000316 -> OBO_ADDICTO_0000279 [label=subClassOf]
185
+ OBO_ADDICTO_0000257 -> OBO_ADDICTO_0000279 [label=subClassOf]
186
+ OBO_ADDICTO_0000311 -> OBO_ADDICTO_0000279 [label=subClassOf]
187
+ OBO_ADDICTO_0000827 -> OBO_ADDICTO_0000279 [label=subClassOf]
188
+ OBO_ADDICTO_0000853 -> OBO_ADDICTO_0000279 [label=subClassOf]
189
+ }
190
+
@@ -0,0 +1,44 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - master
5
+ paths: {% for source in release_script.external.sources %}
6
+ - "{{ source.file }}"
7
+ {%- endfor %}{% if release_script.external.renameTermFile != None %}
8
+ - "{{ release_script.external.renameTermFile }}"
9
+ {%- endif %}{% if release_script.external.addParentsFile != None %}
10
+ - "{{ release_script.external.addParentsFile }}"
11
+ {%- endif %}
12
+ workflow_dispatch:
13
+ permissions:
14
+ contents: write
15
+ concurrency:
16
+ group: "build_external"
17
+ cancel-in-progress: true
18
+ jobs:
19
+ build:
20
+ runs-on: ubuntu-latest
21
+ name: Build externals
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version: '3.10'
27
+ cache: 'pip' # caching pip dependencies
28
+ - name: Install dependencies
29
+ run: pip install git+https://github.com/ontology-tools/onto-spread-ed.git
30
+ - name: Install ROBOT
31
+ run: |
32
+ curl -o /tmp/robot.jar -L https://github.com/ontodev/robot/releases/download/v1.9.7/robot.jar
33
+ curl -L https://raw.githubusercontent.com/ontodev/robot/master/bin/robot > /tmp/robot
34
+ chmod +x /tmp/robot
35
+ - name: Build externals
36
+ env:
37
+ ROBOT: /tmp/robot
38
+ run: ose externals build -vvvvv
39
+ - uses: EndBug/add-and-commit@v9 # You can change this to use a specific version.
40
+ with:
41
+ add: '.'
42
+ default_author: 'github_actions'
43
+ message: "Built external imports"
44
+ push: true
@@ -0,0 +1,120 @@
1
+ <html>
2
+ <meta charset="utf-8">
3
+ <head>
4
+ <h1 style="text-align: center;">
5
+ External access to GraphViz visualisation for a list of ID's
6
+ </h1>
7
+ </head>
8
+
9
+ <body style = "padding-bottom: 150px">
10
+ <h2>
11
+ What is this?
12
+ </h2>
13
+ <p>
14
+ We created an api which allows you to access the GraphViz visualisation for a list of ID's.
15
+ This api is accessed using a post request with the following parameters:
16
+ <ol>
17
+ <li>
18
+ The list of ID's you want to visualise, separated by spaces or new lines.
19
+ </li>
20
+ <li>
21
+ The Ontology (e.g. "AddictO", "BCIO") the ID's belong to.
22
+ </li>
23
+ </ol>
24
+ </p>
25
+ <p>
26
+ Using this url: https://onto-spread-ed.ew.r.appspot.com/api/openVisualiseAcrossSheets
27
+ </p>
28
+
29
+ <figure>
30
+ <figcaption>Example - JavaScript (XHR):</figcaption>
31
+ <pre>
32
+ <code style="text-align: left;">
33
+ var data = new FormData();
34
+ data.append("idList", "ADDICTO:0000323 ADDICTO:0000322 ADDICTO:0000324 ADDICTO:0000967 ADDICTO:0000325 ADDICTO:0000326");
35
+ data.append("repo", "AddictO");
36
+
37
+ var xhr = new XMLHttpRequest();
38
+ xhr.withCredentials = false;
39
+
40
+ xhr.addEventListener("readystatechange", function() {
41
+ if(this.readyState === 4) {
42
+ //render returned html in the same page:
43
+ var newHTML = document.open("text/html");
44
+ newHTML.write(this.responseText);
45
+ newHTML.close();
46
+ }
47
+ });
48
+
49
+ xhr.open("POST", "https://onto-spread-ed.ew.r.appspot.com/api/openVisualiseAcrossSheets");
50
+
51
+ xhr.send(data);
52
+ </code>
53
+ </pre>
54
+
55
+ </figure>
56
+
57
+
58
+ <h2>
59
+ Postman sample:
60
+ </h2>
61
+ <p>
62
+ We have created a Postman "collection" sample request. When imported into the "Postman" application,
63
+ this can be used to test out the api. Postman can also be used to generate request code in a number of
64
+ languages.
65
+ The postman application can be found <a href="https://www.getpostman.com/">here</a>.
66
+ See <a href="https://learning.postman.com/docs/sending-requests/generate-code-snippets/">this article</a>
67
+ to learn more about how to generate code snippets with Postman.
68
+ </p>
69
+ <h2>
70
+ Try an example of external access to visualisation for ids here:
71
+ </h2>
72
+ <!-- <h2 style="color: green;">
73
+ onto-spread-ed
74
+ </h2> -->
75
+ <div style="text-align: center;">
76
+ <p>
77
+ Click on the button to create
78
+ a form dynamically, then press "Submit" to access the visualisation for the selected ids.
79
+ </p>
80
+
81
+ <button onClick="ID_Fun()">
82
+ click here
83
+ </button>
84
+ </div>
85
+ <script>
86
+ function ID_Fun() {
87
+
88
+ // Create a form dynamically
89
+ form = document.createElement("FORM");
90
+ form.name = 'form';
91
+ form.method = 'POST';
92
+ form.action = 'https://onto-spread-ed.ew.r.appspot.com/api/openVisualiseAcrossSheets';
93
+
94
+ // form.action = 'http://me.mydomain.com:8080/api/openVisualiseAcrossSheets';
95
+ var input = document.createElement('input');
96
+ input.name = "idList";
97
+ input.value = "ADDICTO:0000323 ADDICTO:0000322 ADDICTO:0000324 ADDICTO:0000967 ADDICTO:0000325 ADDICTO:0000326";
98
+ form.appendChild(input);
99
+
100
+ var input2 = document.createElement('input');
101
+ input2.name = "repo";
102
+ input2.value = "AddictO";
103
+ form.appendChild(input2);
104
+
105
+ // Create a submit button
106
+ var s = document.createElement("input");
107
+ s.setAttribute("type", "submit");
108
+ s.setAttribute("value", "Submit");
109
+ // Append the button to the form
110
+ form.append(s);
111
+ // Append the form to the page
112
+ document.body.appendChild(form);
113
+ }
114
+ </script>
115
+ </body>
116
+
117
+
118
+
119
+
120
+ </html>
@@ -0,0 +1,18 @@
1
+ {% extends "base.html" %}
2
+ {% block title %}{{ config['APP_TITLE'] }}{% endblock %}
3
+ {% block head %}
4
+ {{ super() }}
5
+ {% endblock %}
6
+ {% block content %}
7
+ <div id="vue-app-dashboard">
8
+ </div>
9
+ <script>
10
+ var URLS = {
11
+ prefix: '{{config["URL_PREFIX"]}}',
12
+ release: '{{ url_for('admin.release') }}',
13
+ rebuildIndex: '{{ url_for('admin.rebuild_index') }}',
14
+ settings: '{{ url_for("admin.settings") }}'
15
+ }
16
+ </script>
17
+ <script type="module" src="{{ url_for('static', filename='js/admin.js') }}"></script>
18
+ {% endblock %}
@@ -0,0 +1,85 @@
1
+ {% extends "base.html" %}
2
+ {% block title %}{{ config['APP_TITLE'] }}{% endblock %}
3
+ {% block head %}
4
+ {{ super() }}
5
+ {% endblock %}
6
+ {% block content %}
7
+
8
+ <h1>Rebuild the index</h1>
9
+ <p>
10
+ Currently, the index has the following statistics:
11
+ </p>
12
+
13
+ <table class="table">
14
+ <thead>
15
+ <tr>
16
+ <th scope="col">Name</th>
17
+ <th scope="col">Value</th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ {% for name, value in index_stats.items() %}
22
+ {% if value is iterable and value is not string %}
23
+
24
+ <tr>
25
+ <td>{{ name.replace("_", " ") | capitalize }}</td>
26
+ <td>{{ value | first }}</td>
27
+ </tr>
28
+ {% for e in value[1:] %}
29
+ <tr>
30
+ <td></td>
31
+ <td>{{ e }}</td>
32
+ </tr>
33
+ {% endfor %}
34
+ {% else %}
35
+ <tr>
36
+ <td>{{ name.replace("_", " ") | capitalize }}</td>
37
+ <td>{{ value }}</td>
38
+ </tr>
39
+ {% endif %}
40
+ {% endfor %}
41
+
42
+ </tbody>
43
+ </table>
44
+
45
+ <button type="button" id="btn-rebuild-index" class="btn btn-danger">Rebuild the index</button>
46
+
47
+
48
+ <script type="application/javascript">
49
+ var URL_PREFIX = '{{config["URL_PREFIX"]}}';
50
+ const btn_rebuild = $("#btn-rebuild-index")
51
+ btn_rebuild.on("click", async (event) => {
52
+ let dialog = bootbox.dialog({
53
+ title: "Rebuilding...",
54
+ message: '<p class="text-center mb-0"><i class="fas fa-spin fa-cog"></i><br> This might take while. Please do not close the window or tab!</p>',
55
+ closeButton: true
56
+ });
57
+ let dialogShown$ = new Promise((resolve, _) => {
58
+ dialog.on('shown.bs.modal', () => resolve())
59
+ });
60
+
61
+ try {
62
+ const result = await fetch(URL_PREFIX + "/admin/rebuild-index", {
63
+ method: "POST"
64
+ })
65
+
66
+ let sheets = await result.json();
67
+ bootbox.dialog({
68
+ title: "Index rebuild",
69
+ message: `<p>Files included in the index:</p><ul>${sheets.map(x => "<li>" + x + "</li>").join("\n")}</ul>`,
70
+ closeButton: true,
71
+ size: 'large',
72
+ onEscape: true,
73
+ backdrop: true,
74
+ })
75
+
76
+ } catch (e) {
77
+ bootbox.alert("Something went wrong");
78
+ console.error(e)
79
+ }
80
+
81
+ await dialogShown$;
82
+ dialog.modal("hide")
83
+ })
84
+ </script>
85
+ {% endblock %}
@@ -0,0 +1,46 @@
1
+ {% extends "base.html" %}
2
+ {% block title %}{{ config['APP_TITLE'] }}{% endblock %}
3
+ {% block head %}
4
+ {{ super() }}
5
+
6
+ <link rel="stylesheet" href="{{ url_for('static', filename="js/assets/release.css") }}">
7
+
8
+ {% endblock %}
9
+ {% block content %}
10
+ {% if repo == None %}
11
+ <div class="release">
12
+
13
+
14
+ <div class="row align-stretch" style="max-width: 1080px; margin: 0 auto">
15
+
16
+ <h4>Which repository should be released?</h4>
17
+ {% for short, config in repos.items() %}
18
+ <div class="col-sm-6 col-md-4 col-lg-3 m-2">
19
+
20
+ <a class="card bg-light"
21
+ href="{{ url_for('admin.release', repo=short) }}"
22
+ style="cursor: pointer; height: 100%; text-decoration: none;; border-width: 2px 2px 4px 2px">
23
+ <div class="section p-2 text-center fs-2" style="">
24
+ {{ short }}
25
+ </div>
26
+ <div class="card-body text-center">
27
+ {{ config.full_name }}
28
+ </div>
29
+ </a>
30
+ </div>
31
+ {% endfor %}
32
+ </div>
33
+ </div>
34
+
35
+ {% else %}
36
+ <div class="release" id="vue-app-release">
37
+ </div>
38
+ <script>
39
+ var SERVER_DATA={repo: "{{repo}}" }
40
+ var URLS={prefix: '{{config["URL_PREFIX"]}}' }
41
+ </script>
42
+ <script type="module" src="{{url_for('static', filename='js/release.js')}}"></script>
43
+ {% endif %}
44
+ {% endblock %}
45
+
46
+
@@ -0,0 +1,23 @@
1
+ {% extends "base.html" %}
2
+ {% block title %}{{ config['APP_TITLE'] }}{% endblock %}
3
+ {% block head %}
4
+ {{ super() }}
5
+
6
+ <link rel="stylesheet" href="{{ url_for('static', filename="js/assets/settings.css") }}">
7
+ {% endblock %}
8
+ {% block content %}
9
+ <div id="vue-app-settings">
10
+ </div>
11
+ <script>
12
+ var URLS = {
13
+ prefix: '{{config["URL_PREFIX"]}}'
14
+ }
15
+ var SETTINGS = {
16
+ 'repositories': {{ config_service.loaded_repositories() | tojson | safe }},
17
+ 'startup_repositories': {{ config_service.startup_repositories() | tojson | safe }},
18
+ 'changing_startup_allowed': {{ config_service.changing_startup_allowed | tojson | safe }},
19
+ 'loading_new_allowed': {{ config_service.loading_new_allowed | tojson | safe }}
20
+ }
21
+ </script>
22
+ <script type="module" src="{{ url_for('static', filename='js/settings.js') }}"></script>
23
+ {% endblock %}