dsp-tools 17.0.0.post21__tar.gz → 17.0.0.post25__tar.gz

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.

Potentially problematic release.


This version of dsp-tools might be problematic. Click here for more details.

Files changed (265) hide show
  1. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/PKG-INFO +1 -1
  2. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/pyproject.toml +1 -1
  3. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/parsing/parsing_utils.py +2 -5
  4. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/models/api_responses.py +7 -0
  5. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/models/validation.py +1 -0
  6. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/prepare_data/make_data_graph.py +4 -1
  7. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/prepare_data/prepare_data.py +32 -5
  8. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/validate_data.py +1 -1
  9. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/validation/get_validation_report.py +2 -1
  10. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/data_formats/iri_util.py +9 -0
  11. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/xml_parsing/get_parsed_resources.py +2 -5
  12. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/docs/index.md +0 -0
  13. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/__init__.py +0 -0
  14. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/cli/__init__.py +0 -0
  15. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/cli/args.py +0 -0
  16. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/cli/call_action.py +0 -0
  17. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/cli/create_parsers.py +0 -0
  18. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/cli/entry_point.py +0 -0
  19. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/__init__.py +0 -0
  20. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/authentication_client.py +0 -0
  21. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/authentication_client_live.py +0 -0
  22. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/connection.py +0 -0
  23. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/connection_live.py +0 -0
  24. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/fuseki_metrics.py +0 -0
  25. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/legal_info_client.py +0 -0
  26. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/legal_info_client_live.py +0 -0
  27. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/metadata_client.py +0 -0
  28. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/metadata_client_live.py +0 -0
  29. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/ontology_client.py +0 -0
  30. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/clients/ontology_client_live.py +0 -0
  31. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/__init__.py +0 -0
  32. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/__init__.py +0 -0
  33. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/communicate_problems.py +0 -0
  34. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/constants.py +0 -0
  35. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/create_on_server/__init__.py +0 -0
  36. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/create_on_server/cardinalities.py +0 -0
  37. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/create_on_server/mappers.py +0 -0
  38. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/models/__init__.py +0 -0
  39. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/models/input_problems.py +0 -0
  40. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/models/parsed_ontology.py +0 -0
  41. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/models/parsed_project.py +0 -0
  42. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/models/rdf_ontology.py +0 -0
  43. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/models/server_project_info.py +0 -0
  44. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/parsing/__init__.py +0 -0
  45. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/parsing/parse_ontology.py +0 -0
  46. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/parsing/parse_project.py +0 -0
  47. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/serialisation/__init__.py +0 -0
  48. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/create/serialisation/ontology.py +0 -0
  49. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/CLAUDE.md +0 -0
  50. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/__init__.py +0 -0
  51. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/json_header.py +0 -0
  52. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/__init__.py +0 -0
  53. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/compliance_checks.py +0 -0
  54. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/make_lists.py +0 -0
  55. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/models/__init__.py +0 -0
  56. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/models/deserialise.py +0 -0
  57. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/models/input_error.py +0 -0
  58. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/models/serialise.py +0 -0
  59. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/lists/utils.py +0 -0
  60. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/models/__init__.py +0 -0
  61. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/models/input_error.py +0 -0
  62. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/models/json_header.py +0 -0
  63. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/models/list_node_name.py +0 -0
  64. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/models/ontology.py +0 -0
  65. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/old_lists.py +0 -0
  66. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/project.py +0 -0
  67. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/properties.py +0 -0
  68. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/resources.py +0 -0
  69. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2json/utils.py +0 -0
  70. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2xml/__init__.py +0 -0
  71. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2xml/excel2xml_cli.py +0 -0
  72. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2xml/excel2xml_lib.py +0 -0
  73. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/excel2xml/propertyelement.py +0 -0
  74. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/id2iri.py +0 -0
  75. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/__init__.py +0 -0
  76. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/bulk_ingest_client.py +0 -0
  77. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/create_resources/__init__.py +0 -0
  78. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/create_resources/apply_ingest_id.py +0 -0
  79. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/create_resources/upload_xml.py +0 -0
  80. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/create_resources/user_information.py +0 -0
  81. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/ingest_files/__init__.py +0 -0
  82. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/ingest_files/ingest_files.py +0 -0
  83. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/upload_files/__init__.py +0 -0
  84. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/upload_files/filechecker.py +0 -0
  85. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/upload_files/input_error.py +0 -0
  86. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/upload_files/upload_failures.py +0 -0
  87. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/ingest_xmlupload/upload_files/upload_files.py +0 -0
  88. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/__init__.py +0 -0
  89. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/create/__init__.py +0 -0
  90. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/create/parse_project.py +0 -0
  91. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/create/project_create_all.py +0 -0
  92. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/create/project_create_default_permissions.py +0 -0
  93. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/create/project_create_lists.py +0 -0
  94. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/create/project_create_ontologies.py +0 -0
  95. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/create/project_validate.py +0 -0
  96. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/get/__init__.py +0 -0
  97. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/get/get.py +0 -0
  98. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/get/get_permissions.py +0 -0
  99. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/get/get_permissions_legacy.py +0 -0
  100. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/__init__.py +0 -0
  101. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/context.py +0 -0
  102. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/group.py +0 -0
  103. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/helpers.py +0 -0
  104. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/listnode.py +0 -0
  105. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/model.py +0 -0
  106. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/ontology.py +0 -0
  107. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/project.py +0 -0
  108. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/propertyclass.py +0 -0
  109. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/resourceclass.py +0 -0
  110. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/legacy_models/user.py +0 -0
  111. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/models/__init__.py +0 -0
  112. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/models/permissions_client.py +0 -0
  113. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/models/permissions_models.py +0 -0
  114. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/project/models/project_definition.py +0 -0
  115. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/resume_xmlupload/__init__.py +0 -0
  116. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/resume_xmlupload/resume_xmlupload.py +0 -0
  117. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/start_stack.py +0 -0
  118. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/CLAUDE.md +0 -0
  119. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/__init__.py +0 -0
  120. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/api_clients.py +0 -0
  121. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/constants.py +0 -0
  122. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/mappers.py +0 -0
  123. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/models/__init__.py +0 -0
  124. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/models/input_problems.py +0 -0
  125. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/models/rdf_like_data.py +0 -0
  126. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/prepare_data/__init__.py +0 -0
  127. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/prepare_data/get_rdf_like_data.py +0 -0
  128. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/process_validation_report/__init__.py +0 -0
  129. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/process_validation_report/get_user_validation_message.py +0 -0
  130. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/process_validation_report/query_validation_result.py +0 -0
  131. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/process_validation_report/reformat_validation_results.py +0 -0
  132. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/shacl_cli_validator.py +0 -0
  133. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/sparql/__init__.py +0 -0
  134. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/sparql/cardinality_shacl.py +0 -0
  135. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/sparql/construct_shacl.py +0 -0
  136. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/sparql/legal_info_shacl.py +0 -0
  137. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/sparql/value_shacl.py +0 -0
  138. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/utils.py +0 -0
  139. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/validation/__init__.py +0 -0
  140. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/validation/check_duplicate_files.py +0 -0
  141. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/validation/check_for_unknown_classes.py +0 -0
  142. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/validate_data/validation/validate_ontology.py +0 -0
  143. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/CLAUDE.md +0 -0
  144. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/__init__.py +0 -0
  145. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/iri_resolver.py +0 -0
  146. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/make_rdf_graph/__init__.py +0 -0
  147. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/make_rdf_graph/constants.py +0 -0
  148. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/make_rdf_graph/jsonld_utils.py +0 -0
  149. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/make_rdf_graph/make_file_value.py +0 -0
  150. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/make_rdf_graph/make_resource_and_values.py +0 -0
  151. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/make_rdf_graph/make_values.py +0 -0
  152. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/__init__.py +0 -0
  153. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/bitstream_info.py +0 -0
  154. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/formatted_text_value.py +0 -0
  155. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/ingest.py +0 -0
  156. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/input_problems.py +0 -0
  157. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/lookup_models.py +0 -0
  158. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/permission.py +0 -0
  159. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/permissions_parsed.py +0 -0
  160. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/processed/__init__.py +0 -0
  161. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/processed/file_values.py +0 -0
  162. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/processed/res.py +0 -0
  163. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/processed/values.py +0 -0
  164. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/rdf_models.py +0 -0
  165. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/upload_clients.py +0 -0
  166. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/models/upload_state.py +0 -0
  167. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/__init__.py +0 -0
  168. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/ark2iri.py +0 -0
  169. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/get_processed_resources.py +0 -0
  170. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/iiif_uri_validator.py +0 -0
  171. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/list_client.py +0 -0
  172. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/prepare_xml_input.py +0 -0
  173. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/read_validate_xml_file.py +0 -0
  174. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/prepare_xml_input/transform_input_values.py +0 -0
  175. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/project_client.py +0 -0
  176. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/resource_create_client.py +0 -0
  177. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/richtext_id2iri.py +0 -0
  178. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/__init__.py +0 -0
  179. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/analyse_circular_reference_graph.py +0 -0
  180. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/create_info_for_graph.py +0 -0
  181. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/graph_models.py +0 -0
  182. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/stash_circular_references.py +0 -0
  183. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/stash_models.py +0 -0
  184. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/upload_stashed_resptr_props.py +0 -0
  185. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/stash/upload_stashed_xml_texts.py +0 -0
  186. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/upload_config.py +0 -0
  187. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/write_diagnostic_info.py +0 -0
  188. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/commands/xmlupload/xmlupload.py +0 -0
  189. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/config/__init__.py +0 -0
  190. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/config/logger_config.py +0 -0
  191. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/config/warnings_config.py +0 -0
  192. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/__init__.py +0 -0
  193. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/custom_warnings.py +0 -0
  194. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/exceptions.py +0 -0
  195. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/problems.py +0 -0
  196. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/xmllib_errors.py +0 -0
  197. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/xmllib_warnings.py +0 -0
  198. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/xmllib_warnings_util.py +0 -0
  199. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/error/xsd_validation_error_msg.py +0 -0
  200. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/legacy_models/__init__.py +0 -0
  201. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/legacy_models/datetimestamp.py +0 -0
  202. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/legacy_models/langstring.py +0 -0
  203. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/legacy_models/projectContext.py +0 -0
  204. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/py.typed +0 -0
  205. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/schema/data.xsd +0 -0
  206. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/schema/lists-only.json +0 -0
  207. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/schema/project.json +0 -0
  208. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/schema/properties-only.json +0 -0
  209. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/schema/resources-only.json +0 -0
  210. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/start-stack/docker-compose.override-host.j2 +0 -0
  211. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/start-stack/docker-compose.override.yml +0 -0
  212. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/start-stack/docker-compose.yml +0 -0
  213. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/start-stack/dsp-app-config.json +0 -0
  214. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/start-stack/dsp-app-config.override-host.j2 +0 -0
  215. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/validate_data/api-shapes-resource-cardinalities.ttl +0 -0
  216. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/validate_data/api-shapes.ttl +0 -0
  217. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/validate_data/shacl-cli-image.yml +0 -0
  218. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/resources/validate_data/validate-ontology.ttl +0 -0
  219. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/__init__.py +0 -0
  220. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/ansi_colors.py +0 -0
  221. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/data_formats/__init__.py +0 -0
  222. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/data_formats/date_util.py +0 -0
  223. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/data_formats/shared.py +0 -0
  224. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/data_formats/uri_util.py +0 -0
  225. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/fuseki_bloating.py +0 -0
  226. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/json_parsing.py +0 -0
  227. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/rdflib_constants.py +0 -0
  228. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/rdflib_utils.py +0 -0
  229. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/replace_id_with_iri.py +0 -0
  230. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/request_utils.py +0 -0
  231. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/xml_parsing/__init__.py +0 -0
  232. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/xml_parsing/get_lookups.py +0 -0
  233. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/xml_parsing/models/__init__.py +0 -0
  234. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/xml_parsing/models/parsed_resource.py +0 -0
  235. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/utils/xml_parsing/parse_clean_validate_xml.py +0 -0
  236. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/CLAUDE.md +0 -0
  237. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/__init__.py +0 -0
  238. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/general_functions.py +0 -0
  239. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/__init__.py +0 -0
  240. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/checkers.py +0 -0
  241. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/circumvent_circular_imports.py +0 -0
  242. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/constants.py +0 -0
  243. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/input_converters.py +0 -0
  244. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/serialise_file_value.py +0 -0
  245. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/serialise_resource.py +0 -0
  246. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/serialise_values.py +0 -0
  247. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/internal/type_aliases.py +0 -0
  248. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/__init__.py +0 -0
  249. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/config_options.py +0 -0
  250. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/date_formats.py +0 -0
  251. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/dsp_base_resources.py +0 -0
  252. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/internal/__init__.py +0 -0
  253. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/internal/file_values.py +0 -0
  254. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/internal/geometry.py +0 -0
  255. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/internal/migration_metadata.py +0 -0
  256. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/internal/serialise_permissions.py +0 -0
  257. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/internal/values.py +0 -0
  258. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/licenses/__init__.py +0 -0
  259. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/licenses/other.py +0 -0
  260. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/licenses/recommended.py +0 -0
  261. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/permissions.py +0 -0
  262. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/res.py +0 -0
  263. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/models/root.py +0 -0
  264. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/value_checkers.py +0 -0
  265. {dsp_tools-17.0.0.post21 → dsp_tools-17.0.0.post25}/src/dsp_tools/xmllib/value_converters.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dsp-tools
3
- Version: 17.0.0.post21
3
+ Version: 17.0.0.post25
4
4
  Summary: DSP-TOOLS is a Python package with a command line interface that helps you interact with a DaSCH service platform (DSP) server.
5
5
  Author: DaSCH - Swiss National Data and Service Center for the Humanities
6
6
  Author-email: DaSCH - Swiss National Data and Service Center for the Humanities <info@dasch.swiss>
@@ -2,7 +2,7 @@
2
2
 
3
3
  [project]
4
4
  name = "dsp-tools"
5
- version = "17.0.0.post21"
5
+ version = "17.0.0.post25"
6
6
  description = "DSP-TOOLS is a Python package with a command line interface that helps you interact with a DaSCH service platform (DSP) server."
7
7
  authors = [
8
8
  { name = "DaSCH - Swiss National Data and Service Center for the Humanities", email = "info@dasch.swiss" },
@@ -4,6 +4,7 @@ import regex
4
4
 
5
5
  from dsp_tools.commands.create.constants import KNORA_API_STR
6
6
  from dsp_tools.commands.create.constants import UNIVERSAL_PREFIXES
7
+ from dsp_tools.utils.data_formats.iri_util import make_dsp_ontology_prefix
7
8
  from dsp_tools.utils.data_formats.uri_util import is_uri
8
9
 
9
10
 
@@ -27,7 +28,7 @@ def create_prefix_lookup(project_json: dict[str, Any], api_url: str) -> dict[str
27
28
  shortcode = project_json["project"]["shortcode"]
28
29
  for onto in project_json["project"]["ontologies"]:
29
30
  onto_name = onto["name"]
30
- defined_prefixes[onto_name] = _make_dsp_ontology_prefix(api_url, shortcode, onto_name)
31
+ defined_prefixes[onto_name] = make_dsp_ontology_prefix(api_url, shortcode, onto_name)
31
32
  return defined_prefixes
32
33
 
33
34
 
@@ -37,7 +38,3 @@ def _correct_external_prefix(prefixes: dict[str, str]) -> dict[str, str]:
37
38
  continue
38
39
  prefixes[prfx] = f"{namespace}/"
39
40
  return prefixes
40
-
41
-
42
- def _make_dsp_ontology_prefix(api_url: str, shortcode: str, onto_name: str) -> str:
43
- return f"{api_url}/ontology/{shortcode}/{onto_name}/v2#"
@@ -16,6 +16,7 @@ class SHACLValidationReport:
16
16
  class ProjectDataFromApi:
17
17
  all_lists: list[OneList]
18
18
  enabled_licenses: EnabledLicenseIris
19
+ resource_iris_in_db: list[InfoForResourceInDB]
19
20
 
20
21
 
21
22
  @dataclass
@@ -50,3 +51,9 @@ class SHACLListInfo:
50
51
  @dataclass
51
52
  class EnabledLicenseIris:
52
53
  enabled_licenses: list[str]
54
+
55
+
56
+ @dataclass
57
+ class InfoForResourceInDB:
58
+ res_iri: str
59
+ res_type: str
@@ -23,6 +23,7 @@ class RDFGraphs:
23
23
  cardinality_shapes: Graph
24
24
  content_shapes: Graph
25
25
  knora_api: Graph
26
+ resources_in_db_graph: Graph
26
27
 
27
28
 
28
29
  @dataclass
@@ -48,7 +48,10 @@ def _make_one_value(val: RdfLikeValue, res_iri: URIRef) -> Graph:
48
48
  return g
49
49
  if val.knora_type == KnoraValueType.LINK_VALUE:
50
50
  link_val = val.user_facing_value if val.user_facing_value else ""
51
- triple_object: Literal | URIRef = DATA[link_val]
51
+ if link_val.startswith("http://rdfh.ch/"):
52
+ triple_object: Literal | URIRef = URIRef(link_val)
53
+ else:
54
+ triple_object = DATA[link_val]
52
55
  else:
53
56
  triple_object = _make_one_rdflib_object(val.user_facing_value, VALUE_INFO_TRIPLE_OBJECT_TYPE[val.knora_type])
54
57
  g.add((val_iri, prop_type_info.knora_prop, triple_object))
@@ -2,13 +2,18 @@ import importlib.resources
2
2
  from pathlib import Path
3
3
 
4
4
  from loguru import logger
5
+ from rdflib import RDF
5
6
  from rdflib import Graph
7
+ from rdflib import URIRef
6
8
 
7
9
  from dsp_tools.clients.authentication_client import AuthenticationClient
8
10
  from dsp_tools.clients.legal_info_client_live import LegalInfoClientLive
11
+ from dsp_tools.clients.metadata_client import MetadataRetrieval
12
+ from dsp_tools.clients.metadata_client_live import MetadataClientLive
9
13
  from dsp_tools.commands.validate_data.api_clients import ListClient
10
14
  from dsp_tools.commands.validate_data.api_clients import OntologyClient
11
15
  from dsp_tools.commands.validate_data.models.api_responses import EnabledLicenseIris
16
+ from dsp_tools.commands.validate_data.models.api_responses import InfoForResourceInDB
12
17
  from dsp_tools.commands.validate_data.models.api_responses import ListLookup
13
18
  from dsp_tools.commands.validate_data.models.api_responses import OneList
14
19
  from dsp_tools.commands.validate_data.models.api_responses import ProjectDataFromApi
@@ -42,13 +47,13 @@ def prepare_data_for_validation_from_parsed_resource(
42
47
  permission_ids: list[str],
43
48
  auth: AuthenticationClient,
44
49
  shortcode: str,
45
- ) -> tuple[RDFGraphs, set[str]]:
50
+ ) -> tuple[RDFGraphs, set[str], MetadataRetrieval]:
46
51
  used_iris = {x.res_type for x in parsed_resources}
47
- proj_info = _get_project_specific_information_from_api(auth, shortcode)
52
+ proj_info, metadata_retrieval_success = _get_project_specific_information_from_api(auth, shortcode)
48
53
  list_lookup = _make_list_lookup(proj_info.all_lists)
49
54
  data_rdf = _make_data_graph_from_parsed_resources(parsed_resources, authorship_lookup, list_lookup)
50
55
  rdf_graphs = _create_graphs(data_rdf, shortcode, auth, proj_info, permission_ids)
51
- return rdf_graphs, used_iris
56
+ return rdf_graphs, used_iris, metadata_retrieval_success
52
57
 
53
58
 
54
59
  def _make_list_lookup(project_lists: list[OneList]) -> ListLookup:
@@ -60,11 +65,23 @@ def _make_list_lookup(project_lists: list[OneList]) -> ListLookup:
60
65
  return ListLookup(lookup)
61
66
 
62
67
 
63
- def _get_project_specific_information_from_api(auth: AuthenticationClient, shortcode: str) -> ProjectDataFromApi:
68
+ def _get_project_specific_information_from_api(
69
+ auth: AuthenticationClient, shortcode: str
70
+ ) -> tuple[ProjectDataFromApi, MetadataRetrieval]:
64
71
  list_client = ListClient(auth.server, shortcode)
65
72
  all_lists = list_client.get_lists()
66
73
  enabled_licenses = _get_license_iris(shortcode, auth)
67
- return ProjectDataFromApi(all_lists, enabled_licenses)
74
+ retrieval_status, formatted_metadata = _get_metadata_info(auth, shortcode)
75
+ return ProjectDataFromApi(all_lists, enabled_licenses, formatted_metadata), retrieval_status
76
+
77
+
78
+ def _get_metadata_info(
79
+ auth: AuthenticationClient, shortcode: str
80
+ ) -> tuple[MetadataRetrieval, list[InfoForResourceInDB]]:
81
+ metadata_client = MetadataClientLive(auth.server, auth)
82
+ retrieval_status, metadata = metadata_client.get_resource_metadata(shortcode)
83
+ formatted_metadata = [InfoForResourceInDB(x["resourceIri"], x["resourceClassIri"]) for x in metadata]
84
+ return retrieval_status, formatted_metadata
68
85
 
69
86
 
70
87
  def _make_data_graph_from_parsed_resources(
@@ -99,6 +116,8 @@ def _create_graphs(
99
116
  api_card_shapes.parse(str(api_card_path))
100
117
  content_shapes = shapes.content + api_shapes
101
118
  card_shapes = shapes.cardinality + api_card_shapes
119
+ resources_in_db = _make_resource_in_db_graph(proj_info.resource_iris_in_db)
120
+ resources_in_db = _bind_prefixes_to_graph(resources_in_db, onto_iris)
102
121
  data_rdf = _bind_prefixes_to_graph(data_rdf, onto_iris)
103
122
  ontologies = _bind_prefixes_to_graph(ontologies, onto_iris)
104
123
  card_shapes = _bind_prefixes_to_graph(card_shapes, onto_iris)
@@ -110,6 +129,7 @@ def _create_graphs(
110
129
  cardinality_shapes=card_shapes,
111
130
  content_shapes=content_shapes,
112
131
  knora_api=knora_api,
132
+ resources_in_db_graph=resources_in_db,
113
133
  )
114
134
 
115
135
 
@@ -143,3 +163,10 @@ def _get_license_iris(shortcode: str, auth: AuthenticationClient) -> EnabledLice
143
163
  license_info = legal_client.get_licenses_of_a_project()
144
164
  iris = [x["id"] for x in license_info]
145
165
  return EnabledLicenseIris(iris)
166
+
167
+
168
+ def _make_resource_in_db_graph(resources_in_db: list[InfoForResourceInDB]) -> Graph:
169
+ g = Graph()
170
+ for r in resources_in_db:
171
+ g.add((URIRef(r.res_iri), RDF.type, URIRef(r.res_type)))
172
+ return g
@@ -104,7 +104,7 @@ def validate_parsed_resources(
104
104
  config: ValidateDataConfig,
105
105
  auth: AuthenticationClient,
106
106
  ) -> bool:
107
- rdf_graphs, used_iris = prepare_data_for_validation_from_parsed_resource(
107
+ rdf_graphs, used_iris, _ = prepare_data_for_validation_from_parsed_resource(
108
108
  parsed_resources=parsed_resources,
109
109
  authorship_lookup=authorship_lookup,
110
110
  permission_ids=permission_ids,
@@ -82,10 +82,11 @@ def _create_and_write_graphs(rdf_graphs: RDFGraphs, tmp_path: Path) -> None:
82
82
  card_shape_str = rdf_graphs.cardinality_shapes.serialize(format="ttl")
83
83
  content_shape_str = rdf_graphs.content_shapes.serialize(format="ttl")
84
84
  knora_api_str = rdf_graphs.knora_api.serialize(format="ttl")
85
+ res_in_db_str = rdf_graphs.resources_in_db_graph.serialize(format="ttl")
85
86
  turtle_paths_and_graphs = [
86
87
  (tmp_path / CARDINALITY_DATA_TTL, data_str),
87
88
  (tmp_path / CARDINALITY_SHACL_TTL, card_shape_str + ontos_str + knora_api_str),
88
- (tmp_path / CONTENT_DATA_TTL, data_str + ontos_str + knora_api_str),
89
+ (tmp_path / CONTENT_DATA_TTL, data_str + ontos_str + knora_api_str + res_in_db_str),
89
90
  (tmp_path / CONTENT_SHACL_TTL, content_shape_str + ontos_str + knora_api_str),
90
91
  ]
91
92
  for f_path, content in turtle_paths_and_graphs:
@@ -19,3 +19,12 @@ def from_dsp_iri_to_prefixed_iri(iri: str) -> str:
19
19
  if not (found := regex.search(dsp_iri_re, iri)):
20
20
  return iri
21
21
  return f"{found.group(1)}:{found.group(2)}"
22
+
23
+
24
+ def make_dsp_ontology_prefix(api_url: str, shortcode: str, onto_name: str) -> str:
25
+ api_fixed = convert_api_url_for_correct_iri_namespace_construction(api_url)
26
+ return f"{api_fixed}/ontology/{shortcode}/{onto_name}/v2#"
27
+
28
+
29
+ def convert_api_url_for_correct_iri_namespace_construction(api_url: str) -> str:
30
+ return regex.sub(r"^https", "http", api_url)
@@ -5,6 +5,7 @@ from lxml import etree
5
5
 
6
6
  from dsp_tools.commands.validate_data.mappers import XML_TAG_TO_VALUE_TYPE_MAPPER
7
7
  from dsp_tools.error.exceptions import InputError
8
+ from dsp_tools.utils.data_formats.iri_util import convert_api_url_for_correct_iri_namespace_construction
8
9
  from dsp_tools.utils.rdflib_constants import KNORA_API_STR
9
10
  from dsp_tools.utils.xml_parsing.models.parsed_resource import KnoraValueType
10
11
  from dsp_tools.utils.xml_parsing.models.parsed_resource import ParsedFileValue
@@ -15,7 +16,7 @@ from dsp_tools.utils.xml_parsing.models.parsed_resource import ParsedValue
15
16
 
16
17
 
17
18
  def get_parsed_resources(root: etree._Element, api_url: str) -> list[ParsedResource]:
18
- api_url = _convert_api_url_for_correct_iri_namespace_construction(api_url)
19
+ api_url = convert_api_url_for_correct_iri_namespace_construction(api_url)
19
20
  iri_lookup = _create_from_local_name_to_absolute_iri_lookup(root, api_url)
20
21
  all_res: list[ParsedResource] = []
21
22
  for res in root.iterdescendants(tag="resource"):
@@ -34,10 +35,6 @@ def get_parsed_resources(root: etree._Element, api_url: str) -> list[ParsedResou
34
35
  return all_res
35
36
 
36
37
 
37
- def _convert_api_url_for_correct_iri_namespace_construction(api_url: str) -> str:
38
- return regex.sub(r"^https", "http", api_url)
39
-
40
-
41
38
  def _create_from_local_name_to_absolute_iri_lookup(root: etree._Element, api_url: str) -> dict[str, str]:
42
39
  shortcode = root.attrib["shortcode"]
43
40
  default_ontology = root.attrib["default-ontology"]