dsp-tools 9.1.0.post11__py3-none-any.whl → 18.3.0.post13__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 (316) hide show
  1. dsp_tools/__init__.py +4 -0
  2. dsp_tools/cli/args.py +36 -0
  3. dsp_tools/cli/call_action.py +51 -231
  4. dsp_tools/cli/call_action_files_only.py +101 -0
  5. dsp_tools/cli/call_action_with_network.py +207 -0
  6. dsp_tools/cli/create_parsers.py +156 -58
  7. dsp_tools/cli/entry_point.py +56 -26
  8. dsp_tools/cli/utils.py +87 -0
  9. dsp_tools/clients/CLAUDE.md +420 -0
  10. dsp_tools/clients/authentication_client.py +14 -0
  11. dsp_tools/clients/authentication_client_live.py +66 -0
  12. dsp_tools/{utils → clients}/connection.py +2 -18
  13. dsp_tools/clients/connection_live.py +233 -0
  14. dsp_tools/clients/fuseki_metrics.py +60 -0
  15. dsp_tools/clients/group_user_clients.py +35 -0
  16. dsp_tools/clients/group_user_clients_live.py +181 -0
  17. dsp_tools/clients/legal_info_client.py +23 -0
  18. dsp_tools/clients/legal_info_client_live.py +132 -0
  19. dsp_tools/clients/list_client.py +49 -0
  20. dsp_tools/clients/list_client_live.py +166 -0
  21. dsp_tools/clients/metadata_client.py +24 -0
  22. dsp_tools/clients/metadata_client_live.py +47 -0
  23. dsp_tools/clients/ontology_clients.py +49 -0
  24. dsp_tools/clients/ontology_create_client_live.py +166 -0
  25. dsp_tools/clients/ontology_get_client_live.py +80 -0
  26. dsp_tools/clients/permissions_client.py +68 -0
  27. dsp_tools/clients/project_client.py +16 -0
  28. dsp_tools/clients/project_client_live.py +66 -0
  29. dsp_tools/commands/create/communicate_problems.py +24 -0
  30. dsp_tools/commands/create/create.py +134 -0
  31. dsp_tools/commands/create/create_on_server/cardinalities.py +111 -0
  32. dsp_tools/commands/create/create_on_server/classes.py +99 -0
  33. dsp_tools/commands/create/create_on_server/complete_ontologies.py +116 -0
  34. dsp_tools/commands/create/create_on_server/default_permissions.py +134 -0
  35. dsp_tools/commands/create/create_on_server/group_users.py +165 -0
  36. dsp_tools/commands/create/create_on_server/lists.py +163 -0
  37. dsp_tools/commands/create/create_on_server/mappers.py +12 -0
  38. dsp_tools/commands/create/create_on_server/onto_utils.py +74 -0
  39. dsp_tools/commands/create/create_on_server/ontology.py +52 -0
  40. dsp_tools/commands/create/create_on_server/project.py +68 -0
  41. dsp_tools/commands/create/create_on_server/properties.py +119 -0
  42. dsp_tools/commands/create/exceptions.py +29 -0
  43. dsp_tools/commands/create/lists_only.py +66 -0
  44. dsp_tools/commands/create/models/create_problems.py +87 -0
  45. dsp_tools/commands/create/models/parsed_ontology.py +88 -0
  46. dsp_tools/commands/create/models/parsed_project.py +81 -0
  47. dsp_tools/commands/create/models/rdf_ontology.py +12 -0
  48. dsp_tools/commands/create/models/server_project_info.py +100 -0
  49. dsp_tools/commands/create/parsing/parse_lists.py +45 -0
  50. dsp_tools/commands/create/parsing/parse_ontology.py +243 -0
  51. dsp_tools/commands/create/parsing/parse_project.py +149 -0
  52. dsp_tools/commands/create/parsing/parsing_utils.py +40 -0
  53. dsp_tools/commands/create/project_validate.py +595 -0
  54. dsp_tools/commands/create/serialisation/ontology.py +119 -0
  55. dsp_tools/commands/create/serialisation/project.py +44 -0
  56. dsp_tools/commands/excel2json/CLAUDE.md +101 -0
  57. dsp_tools/commands/excel2json/json_header.py +57 -23
  58. dsp_tools/commands/excel2json/{new_lists → lists}/compliance_checks.py +26 -26
  59. dsp_tools/commands/excel2json/{new_lists/make_new_lists.py → lists/make_lists.py} +19 -18
  60. dsp_tools/commands/excel2json/{new_lists → lists}/models/input_error.py +1 -12
  61. dsp_tools/commands/excel2json/{new_lists → lists}/models/serialise.py +9 -5
  62. dsp_tools/commands/excel2json/{new_lists → lists}/utils.py +4 -4
  63. dsp_tools/commands/excel2json/models/input_error.py +31 -11
  64. dsp_tools/commands/excel2json/models/json_header.py +53 -15
  65. dsp_tools/commands/excel2json/models/ontology.py +4 -3
  66. dsp_tools/commands/excel2json/{lists.py → old_lists.py} +26 -112
  67. dsp_tools/commands/excel2json/project.py +78 -34
  68. dsp_tools/commands/excel2json/properties.py +57 -36
  69. dsp_tools/commands/excel2json/resources.py +32 -12
  70. dsp_tools/commands/excel2json/utils.py +20 -1
  71. dsp_tools/commands/excel2xml/__init__.py +2 -2
  72. dsp_tools/commands/excel2xml/excel2xml_cli.py +7 -15
  73. dsp_tools/commands/excel2xml/excel2xml_lib.py +138 -493
  74. dsp_tools/commands/excel2xml/propertyelement.py +5 -5
  75. dsp_tools/commands/{project → get}/get.py +29 -13
  76. dsp_tools/commands/get/get_permissions.py +257 -0
  77. dsp_tools/commands/get/get_permissions_legacy.py +89 -0
  78. dsp_tools/commands/{project/models → get/legacy_models}/context.py +6 -6
  79. dsp_tools/commands/{project/models → get/legacy_models}/group.py +5 -10
  80. dsp_tools/commands/{project/models → get/legacy_models}/listnode.py +5 -35
  81. dsp_tools/commands/{project/models → get/legacy_models}/model.py +1 -1
  82. dsp_tools/commands/{project/models → get/legacy_models}/ontology.py +9 -14
  83. dsp_tools/commands/{project/models → get/legacy_models}/project.py +13 -6
  84. dsp_tools/commands/{project/models → get/legacy_models}/propertyclass.py +9 -16
  85. dsp_tools/commands/{project/models → get/legacy_models}/resourceclass.py +8 -46
  86. dsp_tools/commands/{project/models → get/legacy_models}/user.py +19 -60
  87. dsp_tools/commands/get/models/permissions_models.py +10 -0
  88. dsp_tools/commands/id2iri.py +20 -10
  89. dsp_tools/commands/ingest_xmlupload/bulk_ingest_client.py +81 -56
  90. dsp_tools/commands/ingest_xmlupload/create_resources/apply_ingest_id.py +4 -10
  91. dsp_tools/commands/ingest_xmlupload/create_resources/upload_xml.py +97 -37
  92. dsp_tools/commands/ingest_xmlupload/create_resources/user_information.py +2 -2
  93. dsp_tools/commands/ingest_xmlupload/ingest_files/ingest_files.py +9 -10
  94. dsp_tools/commands/ingest_xmlupload/upload_files/filechecker.py +3 -3
  95. dsp_tools/commands/ingest_xmlupload/upload_files/input_error.py +2 -10
  96. dsp_tools/commands/ingest_xmlupload/upload_files/upload_failures.py +12 -2
  97. dsp_tools/commands/ingest_xmlupload/upload_files/upload_files.py +8 -9
  98. dsp_tools/commands/resume_xmlupload/resume_xmlupload.py +18 -18
  99. dsp_tools/commands/start_stack.py +126 -77
  100. dsp_tools/commands/update_legal/CLAUDE.md +344 -0
  101. dsp_tools/commands/update_legal/__init__.py +0 -0
  102. dsp_tools/commands/update_legal/core.py +182 -0
  103. dsp_tools/commands/update_legal/csv_operations.py +135 -0
  104. dsp_tools/commands/update_legal/models.py +87 -0
  105. dsp_tools/commands/update_legal/xml_operations.py +247 -0
  106. dsp_tools/commands/validate_data/CLAUDE.md +159 -0
  107. dsp_tools/commands/validate_data/__init__.py +0 -0
  108. dsp_tools/commands/validate_data/constants.py +59 -0
  109. dsp_tools/commands/validate_data/mappers.py +143 -0
  110. dsp_tools/commands/validate_data/models/__init__.py +0 -0
  111. dsp_tools/commands/validate_data/models/api_responses.py +45 -0
  112. dsp_tools/commands/validate_data/models/input_problems.py +119 -0
  113. dsp_tools/commands/validate_data/models/rdf_like_data.py +117 -0
  114. dsp_tools/commands/validate_data/models/validation.py +106 -0
  115. dsp_tools/commands/validate_data/prepare_data/__init__.py +0 -0
  116. dsp_tools/commands/validate_data/prepare_data/get_rdf_like_data.py +296 -0
  117. dsp_tools/commands/validate_data/prepare_data/make_data_graph.py +91 -0
  118. dsp_tools/commands/validate_data/prepare_data/prepare_data.py +184 -0
  119. dsp_tools/commands/validate_data/process_validation_report/__init__.py +0 -0
  120. dsp_tools/commands/validate_data/process_validation_report/get_user_validation_message.py +358 -0
  121. dsp_tools/commands/validate_data/process_validation_report/query_validation_result.py +507 -0
  122. dsp_tools/commands/validate_data/process_validation_report/reformat_validation_results.py +150 -0
  123. dsp_tools/commands/validate_data/shacl_cli_validator.py +70 -0
  124. dsp_tools/commands/validate_data/sparql/__init__.py +0 -0
  125. dsp_tools/commands/{xml_validate/sparql/resource_shacl.py → validate_data/sparql/cardinality_shacl.py} +45 -47
  126. dsp_tools/commands/validate_data/sparql/construct_shacl.py +92 -0
  127. dsp_tools/commands/validate_data/sparql/legal_info_shacl.py +36 -0
  128. dsp_tools/commands/validate_data/sparql/value_shacl.py +357 -0
  129. dsp_tools/commands/validate_data/utils.py +59 -0
  130. dsp_tools/commands/validate_data/validate_data.py +283 -0
  131. dsp_tools/commands/validate_data/validation/__init__.py +0 -0
  132. dsp_tools/commands/validate_data/validation/check_duplicate_files.py +55 -0
  133. dsp_tools/commands/validate_data/validation/check_for_unknown_classes.py +67 -0
  134. dsp_tools/commands/validate_data/validation/get_validation_report.py +94 -0
  135. dsp_tools/commands/validate_data/validation/validate_ontology.py +107 -0
  136. dsp_tools/commands/xmlupload/CLAUDE.md +292 -0
  137. dsp_tools/commands/xmlupload/make_rdf_graph/__init__.py +0 -0
  138. dsp_tools/commands/xmlupload/make_rdf_graph/constants.py +63 -0
  139. dsp_tools/commands/xmlupload/make_rdf_graph/jsonld_utils.py +44 -0
  140. dsp_tools/commands/xmlupload/make_rdf_graph/make_file_value.py +77 -0
  141. dsp_tools/commands/xmlupload/make_rdf_graph/make_resource_and_values.py +114 -0
  142. dsp_tools/commands/xmlupload/make_rdf_graph/make_values.py +262 -0
  143. dsp_tools/commands/xmlupload/models/bitstream_info.py +18 -0
  144. dsp_tools/commands/xmlupload/models/formatted_text_value.py +0 -25
  145. dsp_tools/commands/xmlupload/models/ingest.py +56 -70
  146. dsp_tools/commands/xmlupload/models/input_problems.py +6 -14
  147. dsp_tools/commands/xmlupload/models/lookup_models.py +21 -0
  148. dsp_tools/commands/xmlupload/models/permission.py +0 -39
  149. dsp_tools/commands/xmlupload/models/{deserialise/xmlpermission.py → permissions_parsed.py} +2 -2
  150. dsp_tools/commands/xmlupload/models/processed/__init__.py +0 -0
  151. dsp_tools/commands/xmlupload/models/processed/file_values.py +29 -0
  152. dsp_tools/commands/xmlupload/models/processed/res.py +27 -0
  153. dsp_tools/commands/xmlupload/models/processed/values.py +101 -0
  154. dsp_tools/commands/xmlupload/models/rdf_models.py +26 -0
  155. dsp_tools/commands/xmlupload/models/upload_clients.py +3 -3
  156. dsp_tools/commands/xmlupload/models/upload_state.py +2 -4
  157. dsp_tools/commands/xmlupload/prepare_xml_input/__init__.py +0 -0
  158. dsp_tools/commands/xmlupload/{ark2iri.py → prepare_xml_input/ark2iri.py} +1 -1
  159. dsp_tools/commands/xmlupload/prepare_xml_input/get_processed_resources.py +252 -0
  160. dsp_tools/commands/xmlupload/{iiif_uri_validator.py → prepare_xml_input/iiif_uri_validator.py} +2 -14
  161. dsp_tools/commands/xmlupload/{list_client.py → prepare_xml_input/list_client.py} +15 -10
  162. dsp_tools/commands/xmlupload/prepare_xml_input/prepare_xml_input.py +67 -0
  163. dsp_tools/commands/xmlupload/prepare_xml_input/read_validate_xml_file.py +58 -0
  164. dsp_tools/commands/xmlupload/prepare_xml_input/transform_input_values.py +118 -0
  165. dsp_tools/commands/xmlupload/resource_create_client.py +7 -468
  166. dsp_tools/commands/xmlupload/richtext_id2iri.py +37 -0
  167. dsp_tools/commands/xmlupload/stash/{construct_and_analyze_graph.py → analyse_circular_reference_graph.py} +64 -157
  168. dsp_tools/commands/xmlupload/stash/create_info_for_graph.py +53 -0
  169. dsp_tools/commands/xmlupload/stash/graph_models.py +13 -8
  170. dsp_tools/commands/xmlupload/stash/stash_circular_references.py +48 -115
  171. dsp_tools/commands/xmlupload/stash/stash_models.py +4 -9
  172. dsp_tools/commands/xmlupload/stash/upload_stashed_resptr_props.py +34 -40
  173. dsp_tools/commands/xmlupload/stash/upload_stashed_xml_texts.py +98 -108
  174. dsp_tools/commands/xmlupload/upload_config.py +8 -0
  175. dsp_tools/commands/xmlupload/write_diagnostic_info.py +14 -9
  176. dsp_tools/commands/xmlupload/xmlupload.py +214 -192
  177. dsp_tools/config/__init__.py +0 -0
  178. dsp_tools/config/logger_config.py +69 -0
  179. dsp_tools/{utils → config}/warnings_config.py +4 -1
  180. dsp_tools/error/__init__.py +0 -0
  181. dsp_tools/error/custom_warnings.py +39 -0
  182. dsp_tools/error/exceptions.py +204 -0
  183. dsp_tools/error/problems.py +10 -0
  184. dsp_tools/error/xmllib_errors.py +20 -0
  185. dsp_tools/error/xmllib_warnings.py +54 -0
  186. dsp_tools/error/xmllib_warnings_util.py +159 -0
  187. dsp_tools/error/xsd_validation_error_msg.py +19 -0
  188. dsp_tools/legacy_models/__init__.py +0 -0
  189. dsp_tools/{models → legacy_models}/datetimestamp.py +7 -7
  190. dsp_tools/{models → legacy_models}/langstring.py +1 -1
  191. dsp_tools/{models → legacy_models}/projectContext.py +4 -4
  192. dsp_tools/resources/schema/data.xsd +108 -83
  193. dsp_tools/resources/schema/lists-only.json +4 -23
  194. dsp_tools/resources/schema/project.json +80 -35
  195. dsp_tools/resources/schema/properties-only.json +1 -4
  196. dsp_tools/resources/start-stack/docker-compose.override-host.j2 +11 -0
  197. dsp_tools/resources/start-stack/docker-compose.yml +34 -30
  198. dsp_tools/resources/start-stack/dsp-app-config.json +45 -0
  199. dsp_tools/resources/start-stack/dsp-app-config.override-host.j2 +26 -0
  200. dsp_tools/resources/validate_data/api-shapes-resource-cardinalities.ttl +191 -0
  201. dsp_tools/resources/validate_data/api-shapes.ttl +804 -0
  202. dsp_tools/resources/validate_data/shacl-cli-image.yml +4 -0
  203. dsp_tools/resources/validate_data/validate-ontology.ttl +99 -0
  204. dsp_tools/utils/ansi_colors.py +32 -0
  205. dsp_tools/utils/data_formats/__init__.py +0 -0
  206. dsp_tools/utils/{date_util.py → data_formats/date_util.py} +13 -1
  207. dsp_tools/utils/data_formats/iri_util.py +30 -0
  208. dsp_tools/utils/{shared.py → data_formats/shared.py} +1 -35
  209. dsp_tools/utils/{uri_util.py → data_formats/uri_util.py} +12 -2
  210. dsp_tools/utils/fuseki_bloating.py +63 -0
  211. dsp_tools/utils/json_parsing.py +22 -0
  212. dsp_tools/utils/rdf_constants.py +42 -0
  213. dsp_tools/utils/rdflib_utils.py +10 -0
  214. dsp_tools/utils/replace_id_with_iri.py +66 -0
  215. dsp_tools/utils/request_utils.py +238 -0
  216. dsp_tools/utils/xml_parsing/__init__.py +0 -0
  217. dsp_tools/utils/xml_parsing/get_lookups.py +32 -0
  218. dsp_tools/utils/xml_parsing/get_parsed_resources.py +325 -0
  219. dsp_tools/utils/xml_parsing/models/__init__.py +0 -0
  220. dsp_tools/utils/xml_parsing/models/parsed_resource.py +76 -0
  221. dsp_tools/utils/xml_parsing/parse_clean_validate_xml.py +137 -0
  222. dsp_tools/xmllib/CLAUDE.md +302 -0
  223. dsp_tools/xmllib/__init__.py +49 -0
  224. dsp_tools/xmllib/general_functions.py +877 -0
  225. dsp_tools/xmllib/internal/__init__.py +0 -0
  226. dsp_tools/xmllib/internal/checkers.py +162 -0
  227. dsp_tools/xmllib/internal/circumvent_circular_imports.py +36 -0
  228. dsp_tools/xmllib/internal/constants.py +46 -0
  229. dsp_tools/xmllib/internal/input_converters.py +155 -0
  230. dsp_tools/xmllib/internal/serialise_file_value.py +57 -0
  231. dsp_tools/xmllib/internal/serialise_resource.py +177 -0
  232. dsp_tools/xmllib/internal/serialise_values.py +152 -0
  233. dsp_tools/xmllib/internal/type_aliases.py +11 -0
  234. dsp_tools/xmllib/models/config_options.py +28 -0
  235. dsp_tools/xmllib/models/date_formats.py +48 -0
  236. dsp_tools/xmllib/models/dsp_base_resources.py +1380 -400
  237. dsp_tools/xmllib/models/internal/__init__.py +0 -0
  238. dsp_tools/xmllib/models/internal/file_values.py +172 -0
  239. dsp_tools/xmllib/models/internal/geometry.py +162 -0
  240. dsp_tools/xmllib/models/{migration_metadata.py → internal/migration_metadata.py} +14 -10
  241. dsp_tools/xmllib/models/internal/serialise_permissions.py +66 -0
  242. dsp_tools/xmllib/models/internal/values.py +342 -0
  243. dsp_tools/xmllib/models/licenses/__init__.py +0 -0
  244. dsp_tools/xmllib/models/licenses/other.py +59 -0
  245. dsp_tools/xmllib/models/licenses/recommended.py +107 -0
  246. dsp_tools/xmllib/models/permissions.py +41 -0
  247. dsp_tools/xmllib/models/res.py +1782 -0
  248. dsp_tools/xmllib/models/root.py +313 -26
  249. dsp_tools/xmllib/value_checkers.py +310 -47
  250. dsp_tools/xmllib/value_converters.py +765 -8
  251. dsp_tools-18.3.0.post13.dist-info/METADATA +90 -0
  252. dsp_tools-18.3.0.post13.dist-info/RECORD +286 -0
  253. dsp_tools-18.3.0.post13.dist-info/WHEEL +4 -0
  254. {dsp_tools-9.1.0.post11.dist-info → dsp_tools-18.3.0.post13.dist-info}/entry_points.txt +1 -0
  255. dsp_tools/commands/project/create/project_create.py +0 -1107
  256. dsp_tools/commands/project/create/project_create_lists.py +0 -204
  257. dsp_tools/commands/project/create/project_validate.py +0 -453
  258. dsp_tools/commands/project/models/project_definition.py +0 -12
  259. dsp_tools/commands/rosetta.py +0 -124
  260. dsp_tools/commands/template.py +0 -30
  261. dsp_tools/commands/xml_validate/api_connection.py +0 -122
  262. dsp_tools/commands/xml_validate/deserialise_input.py +0 -135
  263. dsp_tools/commands/xml_validate/make_data_rdf.py +0 -193
  264. dsp_tools/commands/xml_validate/models/data_deserialised.py +0 -108
  265. dsp_tools/commands/xml_validate/models/data_rdf.py +0 -214
  266. dsp_tools/commands/xml_validate/models/input_problems.py +0 -191
  267. dsp_tools/commands/xml_validate/models/validation.py +0 -29
  268. dsp_tools/commands/xml_validate/reformat_validaton_result.py +0 -89
  269. dsp_tools/commands/xml_validate/sparql/construct_shapes.py +0 -16
  270. dsp_tools/commands/xml_validate/xml_validate.py +0 -151
  271. dsp_tools/commands/xmlupload/check_consistency_with_ontology.py +0 -253
  272. dsp_tools/commands/xmlupload/models/deserialise/deserialise_value.py +0 -236
  273. dsp_tools/commands/xmlupload/models/deserialise/xmlresource.py +0 -171
  274. dsp_tools/commands/xmlupload/models/namespace_context.py +0 -39
  275. dsp_tools/commands/xmlupload/models/ontology_lookup_models.py +0 -161
  276. dsp_tools/commands/xmlupload/models/ontology_problem_models.py +0 -178
  277. dsp_tools/commands/xmlupload/models/serialise/jsonld_serialiser.py +0 -40
  278. dsp_tools/commands/xmlupload/models/serialise/serialise_value.py +0 -51
  279. dsp_tools/commands/xmlupload/ontology_client.py +0 -92
  280. dsp_tools/commands/xmlupload/project_client.py +0 -91
  281. dsp_tools/commands/xmlupload/read_validate_xml_file.py +0 -99
  282. dsp_tools/models/custom_warnings.py +0 -31
  283. dsp_tools/models/exceptions.py +0 -90
  284. dsp_tools/resources/0100-template-repo/template.json +0 -45
  285. dsp_tools/resources/0100-template-repo/template.xml +0 -27
  286. dsp_tools/resources/start-stack/docker-compose-validation.yml +0 -5
  287. dsp_tools/resources/start-stack/start-stack-config.yml +0 -4
  288. dsp_tools/resources/xml_validate/api-shapes.ttl +0 -411
  289. dsp_tools/resources/xml_validate/replace_namespace.xslt +0 -61
  290. dsp_tools/utils/connection_live.py +0 -383
  291. dsp_tools/utils/iri_util.py +0 -14
  292. dsp_tools/utils/logger_config.py +0 -41
  293. dsp_tools/utils/set_encoder.py +0 -20
  294. dsp_tools/utils/xml_utils.py +0 -145
  295. dsp_tools/utils/xml_validation.py +0 -197
  296. dsp_tools/utils/xml_validation_models.py +0 -68
  297. dsp_tools/xmllib/models/file_values.py +0 -78
  298. dsp_tools/xmllib/models/resource.py +0 -415
  299. dsp_tools/xmllib/models/values.py +0 -428
  300. dsp_tools-9.1.0.post11.dist-info/METADATA +0 -130
  301. dsp_tools-9.1.0.post11.dist-info/RECORD +0 -167
  302. dsp_tools-9.1.0.post11.dist-info/WHEEL +0 -4
  303. dsp_tools-9.1.0.post11.dist-info/licenses/LICENSE +0 -674
  304. /dsp_tools/{commands/excel2json/new_lists → clients}/__init__.py +0 -0
  305. /dsp_tools/commands/{excel2json/new_lists/models → create}/__init__.py +0 -0
  306. /dsp_tools/commands/{project → create/create_on_server}/__init__.py +0 -0
  307. /dsp_tools/commands/{project/create → create/models}/__init__.py +0 -0
  308. /dsp_tools/commands/{project/models → create/parsing}/__init__.py +0 -0
  309. /dsp_tools/commands/{xml_validate → create/serialisation}/__init__.py +0 -0
  310. /dsp_tools/commands/{xml_validate/models → excel2json/lists}/__init__.py +0 -0
  311. /dsp_tools/commands/{xml_validate/sparql → excel2json/lists/models}/__init__.py +0 -0
  312. /dsp_tools/commands/excel2json/{new_lists → lists}/models/deserialise.py +0 -0
  313. /dsp_tools/commands/{xmlupload/models/deserialise → get}/__init__.py +0 -0
  314. /dsp_tools/commands/{xmlupload/models/serialise → get/legacy_models}/__init__.py +0 -0
  315. /dsp_tools/commands/{project/models → get/legacy_models}/helpers.py +0 -0
  316. /dsp_tools/{models → commands/get/models}/__init__.py +0 -0
@@ -1,411 +0,0 @@
1
- @prefix sh: <http://www.w3.org/ns/shacl#> .
2
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
3
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
4
- @prefix owl: <http://www.w3.org/2002/07/owl#> .
5
- @prefix knora-api: <http://api.knora.org/ontology/knora-api/v2#> .
6
-
7
- @prefix api-shapes: <http://api.knora.org/ontology/knora-api/shapes/v2#> .
8
-
9
- #########################################
10
- # GENERAL SHAPES
11
- #########################################
12
-
13
- api-shapes:RDFS_label
14
- a sh:PropertyShape ;
15
- sh:name "Validates that the label is not empty." ;
16
- sh:message "The label of a resource must be a non-empty string." ;
17
- sh:targetClass knora-api:Resource ;
18
- sh:path rdfs:label ;
19
- sh:pattern "\\S+" ;
20
- sh:severity sh:Violation .
21
-
22
-
23
- api-shapes:UniqueValuesShape_ValueHas
24
- a sh:NodeShape ;
25
- sh:name "Checks that one resources does not have two identical values with the same property." ;
26
- sh:sparql [
27
- a sh:SPARQLConstraint ;
28
- sh:message "A resource may not have the same property and value more than one time." ;
29
- sh:select """
30
- PREFIX knora-api: <http://api.knora.org/ontology/knora-api/v2#>
31
- SELECT $this ?path ?value WHERE {
32
- $this ?path ?valueClass .
33
- ?prop rdfs:subPropertyOf* knora-api:valueHas .
34
- ?valueClass ?prop ?value .
35
- }
36
- GROUP BY $this ?path ?value
37
- HAVING (COUNT(?value) > 1)
38
- """ ;
39
- ] ;
40
- sh:severity sh:Violation .
41
-
42
-
43
- api-shapes:UniqueValuesShape_ValueString
44
- a sh:NodeShape ;
45
- sh:name "Checks that one resources does not have two identical values with the same property." ;
46
- sh:sparql [
47
- a sh:SPARQLConstraint ;
48
- sh:message "A resource may not have the same property and value more than one time." ;
49
- sh:select """
50
- PREFIX knora-api: <http://api.knora.org/ontology/knora-api/v2#>
51
- SELECT $this ?path ?value WHERE {
52
- $this ?path ?valueClass .
53
- ?valueClass knora-api:valueAsString ?value .
54
- }
55
- GROUP BY $this ?path ?value
56
- HAVING (COUNT(?value) > 1)
57
- """ ;
58
- ] ;
59
- sh:severity sh:Violation .
60
-
61
-
62
- #########################################
63
- # USER FACING VALUES
64
- #########################################
65
-
66
- ##############
67
- # BooleanValue
68
- ##############
69
-
70
- api-shapes:BooleanValue_ClassShape
71
- a sh:NodeShape ;
72
- sh:name "Validates the class type" ;
73
- sh:message "Object must be a of type 'BooleanValue'." ;
74
- sh:class knora-api:BooleanValue ;
75
- sh:severity sh:Violation .
76
-
77
- api-shapes:BooleanValue_NodeShape
78
- a sh:NodeShape ;
79
- sh:name "Validates the content of the value" ;
80
- sh:property [
81
- a sh:PropertyShape ;
82
- sh:path knora-api:booleanValueAsBoolean ;
83
- sh:datatype xsd:boolean ;
84
- sh:message "The value must be either 'true' or 'false'." ;
85
- ] ;
86
- sh:severity sh:Violation .
87
-
88
-
89
- ##############
90
- # ColorValue
91
- ##############
92
-
93
- api-shapes:ColorValue_ClassShape
94
- a sh:NodeShape ;
95
- sh:name "Validates the class type" ;
96
- sh:message "Object must be a of type 'ColorValue'." ;
97
- sh:class knora-api:ColorValue ;
98
- sh:severity sh:Violation .
99
-
100
- api-shapes:ColorValue_NodeShape
101
- a sh:NodeShape ;
102
- sh:name "Validates the content of the value" ;
103
- sh:property [
104
- a sh:PropertyShape ;
105
- sh:path knora-api:colorValueAsColor ;
106
- sh:pattern "^#[0-9a-f]{6}$" ;
107
- sh:message "Value must start with a '#' and end with the characters 0-9 and/or a-f." ;
108
- ] ;
109
- sh:severity sh:Violation .
110
-
111
-
112
- ##############
113
- # DateValue
114
- ##############
115
-
116
- api-shapes:DateValue_ClassShape
117
- a sh:NodeShape ;
118
- sh:name "Validates the class type" ;
119
- sh:message "Object must be a of type 'DateValue'." ;
120
- sh:class knora-api:DateValue ;
121
- sh:severity sh:Violation .
122
-
123
- api-shapes:DateValue_NodeShape
124
- a sh:NodeShape ;
125
- sh:name "Validates the content of the value" ;
126
- sh:property [
127
- a sh:PropertyShape ;
128
- sh:path knora-api:valueAsString ;
129
- sh:pattern "^((GREGORIAN|JULIAN|ISLAMIC):)?((CE|BCE|BC|AD):)?(\\d{1,4}(?:-\\d{1,2})?(?:-\\d{1,2})?)(:(CE|BCE|BC|AD))?(:\\d{1,4}(?:-\\d{1,2})?(?:-\\d{1,2})?)?$" ;
130
- sh:message "The value must be a valid date according to the DSP specification." ;
131
- ] ;
132
- sh:severity sh:Violation .
133
-
134
-
135
- ##############
136
- # DecimalValue
137
- ##############
138
-
139
- api-shapes:DecimalValue_ClassShape
140
- a sh:NodeShape ;
141
- sh:name "Validates the class type" ;
142
- sh:message "Object must be a of type 'DecimalValue'." ;
143
- sh:class knora-api:DecimalValue ;
144
- sh:severity sh:Violation .
145
-
146
- api-shapes:DecimalValue_NodeShape
147
- a sh:NodeShape ;
148
- sh:name "Validates the content of the value" ;
149
- sh:property [
150
- a sh:PropertyShape ;
151
- sh:path knora-api:decimalValueAsDecimal ;
152
- sh:datatype xsd:decimal ;
153
- sh:message "Value must be a valid decimal (floating point with a '.' as separator)." ;
154
- ] ;
155
- sh:severity sh:Violation .
156
-
157
-
158
- ##############
159
- # GeonameValue
160
- ##############
161
-
162
- api-shapes:GeonameValue_ClassShape
163
- a sh:NodeShape ;
164
- sh:name "Validates the class type" ;
165
- sh:message "Object must be a of type 'GeonameValue'." ;
166
- sh:class knora-api:GeonameValue ;
167
- sh:severity sh:Violation .
168
-
169
- api-shapes:GeonameValue_NodeShape
170
- a sh:NodeShape ;
171
- sh:name "Validates the content of the value" ;
172
- sh:property [
173
- a sh:PropertyShape ;
174
- sh:path knora-api:geonameValueAsGeonameCode ;
175
- sh:pattern "^\\d+$" ;
176
- sh:message "The GeonameValue must be a valid integer." ;
177
- ] ;
178
- sh:severity sh:Violation .
179
-
180
-
181
- ##############
182
- # IntValue
183
- ##############
184
-
185
- api-shapes:IntValue_ClassShape
186
- a sh:NodeShape ;
187
- sh:name "Validates the class type" ;
188
- sh:message "Object must be a of type 'IntValue'." ;
189
- sh:class knora-api:IntValue ;
190
- sh:severity sh:Violation .
191
-
192
- api-shapes:IntValue_NodeShape
193
- a sh:NodeShape ;
194
- sh:name "Validates the content of the value" ;
195
- sh:property [
196
- a sh:PropertyShape ;
197
- sh:path knora-api:intValueAsInt ;
198
- sh:datatype xsd:integer ;
199
- sh:message "Value must be a valid integer." ;
200
- ] ;
201
- sh:severity sh:Violation .
202
-
203
-
204
- ##############
205
- # LinkValue
206
- ##############
207
-
208
- api-shapes:LinkValue_ClassShape
209
- a sh:NodeShape ;
210
- sh:name "Validates the class type" ;
211
- sh:message "Object must be a of type 'LinkValue'." ;
212
- sh:class knora-api:LinkValue ;
213
- sh:severity sh:Violation .
214
-
215
-
216
- api-shapes:linkValueHasTargetID
217
- a owl:ObjectProperty ;
218
- rdfs:label "Property for the internal ID of the LinkValue target." ;
219
- rdfs:comment "This is to be used for validation only." .
220
-
221
-
222
- ##############
223
- # ListValue
224
- ##############
225
-
226
- # -> if we do not check the list name itself we cannot say if the problem is whether the node does not exist or the list itself
227
- api-shapes:ListValue_ClassShape
228
- a sh:NodeShape ;
229
- sh:name "Validates the class type" ;
230
- sh:message "Object must be a of type 'ListValue'." ;
231
- sh:class knora-api:ListValue ;
232
- sh:severity sh:Violation .
233
-
234
-
235
- api-shapes:listNameAsString
236
- a owl:DatatypeProperty ;
237
- rdfs:label "Property for the 'name' of a list." ;
238
- rdfs:comment "This is to be used for validation only." .
239
-
240
-
241
- api-shapes:listNodeAsString
242
- a owl:DatatypeProperty ;
243
- rdfs:label "Property for the 'name' of a list node." ;
244
- rdfs:comment "This is to be used for validation only." .
245
-
246
-
247
- ##############
248
- # TextValue
249
- ##############
250
-
251
- ###
252
- # SimpleTextValue
253
- api-shapes:SimpleTextValue_ClassShape
254
- a sh:NodeShape ;
255
- sh:name "Validates the class type" ;
256
- sh:message "Object must be a of type 'TextValue' without formatting." ;
257
- sh:severity sh:Violation .
258
-
259
- api-shapes:SimpleTextValue_NodeShape
260
- a sh:NodeShape ;
261
- sh:name "Validates the content of the value" ;
262
- sh:property [
263
- a sh:PropertyShape ;
264
- sh:path knora-api:valueAsString ;
265
- sh:pattern "\\S+" ;
266
- sh:message "Value must be a valid non-empty string." ;
267
- ] ;
268
- sh:severity sh:Violation .
269
-
270
-
271
- ###
272
- # FormattedTextValue
273
- api-shapes:FormattedTextValue_ClassShape
274
- a sh:NodeShape ;
275
- sh:name "Validates the class type" ;
276
- sh:message "Object must be a of type 'TextValue' with formatting." ;
277
- sh:severity sh:Violation .
278
-
279
- api-shapes:FormattedTextValue_NodeShape
280
- a sh:NodeShape ;
281
- sh:name "Validates the content of the value" ;
282
- sh:property [
283
- a sh:PropertyShape ;
284
- sh:path knora-api:textValueAsXml ;
285
- sh:pattern "\\S+" ;
286
- sh:message "Value must be a valid non-empty string." ;
287
- ] ;
288
- sh:severity sh:Violation .
289
-
290
-
291
- ##############
292
- # TimeValue
293
- ##############
294
-
295
- api-shapes:TimeValue_ClassShape
296
- a sh:NodeShape ;
297
- sh:name "Validates the class type" ;
298
- sh:message "Object must be a of type 'TimeValue'." ;
299
- sh:class knora-api:TimeValue ;
300
- sh:severity sh:Violation .
301
-
302
- api-shapes:TimeValue_NodeShape
303
- a sh:NodeShape ;
304
- sh:name "Validates the content of the value" ;
305
- sh:property [
306
- a sh:PropertyShape ;
307
- sh:path knora-api:timeValueAsTimeStamp ;
308
- sh:datatype xsd:dateTimeStamp ;
309
- sh:message "Value must be a valid xsd:dateTimeStamp." ;
310
- ] ;
311
- sh:severity sh:Violation .
312
-
313
- ##############
314
- # UriValue
315
- ##############
316
-
317
- api-shapes:UriValue_ClassShape
318
- a sh:NodeShape ;
319
- sh:name "Validates the class type" ;
320
- sh:message "Object must be a of type 'UriValue'." ;
321
- sh:class knora-api:UriValue ;
322
- sh:severity sh:Violation .
323
-
324
- api-shapes:UriValue_NodeShape
325
- a sh:NodeShape ;
326
- sh:name "Validates the content of the value" ;
327
- sh:property [
328
- a sh:PropertyShape ;
329
- sh:path knora-api:uriValueAsUri ;
330
- sh:datatype xsd:anyURI ;
331
- sh:message "The value must be a valid URI." ;
332
- ] ;
333
- sh:severity sh:Violation .
334
-
335
-
336
- #########################################
337
- # RESOURCES WITH FILES
338
- #########################################
339
-
340
- ###########################
341
- # ArchiveRepresentation
342
- ###########################
343
-
344
- # knora-api:ArchiveFileValue -> knora-api:hasArchiveFileValue
345
-
346
-
347
- ###########################
348
- # AudioRepresentation
349
- ###########################
350
-
351
- # knora-api:AudioFileValue -> knora-api:hasAudioFileValue
352
-
353
-
354
- ###########################
355
- # DocumentRepresentation
356
- ###########################
357
-
358
- # knora-api:DocumentFileValue -> knora-api:hasDocumentFileValue
359
-
360
-
361
- ###########################
362
- # MovingImageRepresentation
363
- ###########################
364
-
365
- # knora-api:MovingImageFileValue -> knora-api:hasMovingImageFileValue
366
-
367
-
368
- ###########################
369
- # StillImageRepresentation
370
- ###########################
371
-
372
- # knora-api:StillImageExternalFileValue -> knora-api:fileValueHasExternalUrl
373
-
374
-
375
- # knora-api:StillImageFileValue -> knora-api:hasStillImageFileValue
376
-
377
-
378
- ###########################
379
- # TextRepresentation
380
- ###########################
381
-
382
- # knora-api:TextFileValue -> knora-api:hasTextFileValue
383
-
384
-
385
- #########################################
386
- # DSP BUILT IN RESOURCES
387
- #########################################
388
-
389
- ###########################
390
- # Annotation
391
- ###########################
392
-
393
-
394
- ###########################
395
- # Region
396
- ###########################
397
-
398
-
399
- ###########################
400
- # LinkObj
401
- ###########################
402
-
403
-
404
- ###########################
405
- # VideoSegment
406
- ###########################
407
-
408
-
409
- ###########################
410
- # AudioSegment
411
- ###########################
@@ -1,61 +0,0 @@
1
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
2
- xmlns:knora="https://dasch.swiss/schema"
3
- exclude-result-prefixes="knora">
4
-
5
- <!-- Define the parameter to receive the replacement value from Python -->
6
- <xsl:param name="replacementValue"/>
7
-
8
- <xsl:template match="*">
9
- <xsl:copy>
10
- <!-- Process the attributes -->
11
- <xsl:for-each select="@*">
12
- <xsl:choose>
13
- <!-- For restype: Leave unchanged if it starts with knora-api or replacementValue -->
14
- <xsl:when test="name() = 'restype' and (starts-with(., 'http://') or starts-with(., concat('-', $replacementValue)))">
15
- <xsl:attribute name="restype">
16
- <xsl:value-of select="." />
17
- </xsl:attribute>
18
- </xsl:when>
19
- <!-- For restype: Replace the colon with the custom value if not knora-api or replacementValue -->
20
- <xsl:when test="name() = 'restype' and contains(., ':')">
21
- <xsl:attribute name="restype">
22
- <xsl:value-of select="concat(substring-before(., ':'), $replacementValue, substring-after(., ':'))" />
23
- </xsl:attribute>
24
- </xsl:when>
25
- <!-- For restype: Prepend knora-api if no colon is found and no special prefixes -->
26
- <xsl:when test="name() = 'restype' and not(contains(., ':'))">
27
- <xsl:attribute name="restype">
28
- <xsl:value-of select="concat('http://api.knora.org/ontology/knora-api/v2#', .)" />
29
- </xsl:attribute>
30
- </xsl:when>
31
- <!-- For name: Leave unchanged if it starts with knora-api or replacementValue -->
32
- <xsl:when test="name() = 'name' and (starts-with(., 'http://') or starts-with(., concat('-', $replacementValue)))">
33
- <xsl:attribute name="name">
34
- <xsl:value-of select="." />
35
- </xsl:attribute>
36
- </xsl:when>
37
- <!-- For restype: Replace the colon with the custom value if not knora-api or replacementValue -->
38
- <xsl:when test="name() = 'name' and contains(., ':')">
39
- <xsl:attribute name="name">
40
- <xsl:value-of select="concat(substring-before(., ':'), $replacementValue, substring-after(., ':'))" />
41
- </xsl:attribute>
42
- </xsl:when>
43
- <!-- For restype: Prepend knora-api if no colon is found and no special prefixes -->
44
- <xsl:when test="name() = 'name' and not(contains(., ':'))">
45
- <xsl:attribute name="name">
46
- <xsl:value-of select="concat('http://api.knora.org/ontology/knora-api/v2#', .)" />
47
- </xsl:attribute>
48
- </xsl:when>
49
- <!-- Copy other attributes unchanged -->
50
- <xsl:otherwise>
51
- <xsl:copy-of select="."/>
52
- </xsl:otherwise>
53
- </xsl:choose>
54
- </xsl:for-each>
55
-
56
- <!-- Process child elements -->
57
- <xsl:apply-templates/>
58
- </xsl:copy>
59
- </xsl:template>
60
-
61
- </xsl:stylesheet>